graview 0.1.29 → 0.1.32

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 (195) hide show
  1. package/dist/preview/chunk.2NIOHEMX.js +1 -0
  2. package/dist/preview/{chunk.GZH6PTXN.js → chunk.3AGY4QVS.js} +1 -1
  3. package/dist/preview/chunk.3HXN4BOY.js +1 -0
  4. package/dist/preview/chunk.3K6YSVHC.js +1 -0
  5. package/dist/preview/{chunk.7D77HEIJ.js → chunk.3TVXGJTU.js} +1 -1
  6. package/dist/preview/chunk.3TY5NFLY.js +1 -0
  7. package/dist/preview/{chunk.IZW7DBK4.js → chunk.47STJVRV.js} +1 -1
  8. package/dist/preview/chunk.4HRAQNJO.js +27 -0
  9. package/dist/preview/chunk.4HZ7QTXZ.js +1 -0
  10. package/dist/preview/chunk.4MERAWS2.js +1 -0
  11. package/dist/preview/chunk.52W7WYME.js +1 -0
  12. package/dist/preview/chunk.5A4AOFOA.js +1 -0
  13. package/dist/preview/chunk.5H4VXLZF.js +88 -0
  14. package/dist/preview/{chunk.D4GOVA25.js → chunk.5T5XGILP.js} +1 -1
  15. package/dist/preview/chunk.5TVB6BUY.js +1 -0
  16. package/dist/preview/chunk.5UL7YDUD.js +1 -0
  17. package/dist/preview/chunk.63GXY2ME.js +1 -0
  18. package/dist/preview/chunk.6QWV5MVH.js +25 -0
  19. package/dist/preview/{chunk.HV6I74DF.js → chunk.6UGEYZAC.js} +1 -1
  20. package/dist/preview/chunk.6YCBYL2Y.js +2 -0
  21. package/dist/preview/chunk.7GKUVQVF.js +1 -0
  22. package/dist/preview/{chunk.QSDT2RLY.js → chunk.7T7NZZTC.js} +1 -1
  23. package/dist/preview/chunk.AKFKM4SW.js +3 -0
  24. package/dist/preview/chunk.AOSMJKLH.js +1 -0
  25. package/dist/preview/{chunk.IPBXAAQV.js → chunk.ASCLIM2P.js} +1 -1
  26. package/dist/preview/chunk.B2GLDIAS.js +1 -0
  27. package/dist/preview/chunk.BNV77BQZ.js +4 -0
  28. package/dist/preview/chunk.BOO6WVM4.js +117 -0
  29. package/dist/preview/chunk.BQ3JHEHV.js +1 -0
  30. package/dist/preview/chunk.CAVBSL27.js +1 -0
  31. package/dist/preview/chunk.CDP2XL66.js +1 -0
  32. package/dist/preview/chunk.CIPS2OGR.js +1 -0
  33. package/dist/preview/chunk.CJJLJ3KW.js +2 -0
  34. package/dist/preview/chunk.CN3UEF5N.js +90 -0
  35. package/dist/preview/chunk.COQKECUH.js +1 -0
  36. package/dist/preview/{chunk.3G5MQFZK.js → chunk.CWHRDBOF.js} +1 -1
  37. package/dist/preview/chunk.CX3KL2C5.js +1 -0
  38. package/dist/preview/chunk.D75KC3LL.js +1 -0
  39. package/dist/preview/chunk.DAZ2VSRD.js +1 -0
  40. package/dist/preview/{chunk.ONGVH3ZM.js → chunk.DHIUSUCL.js} +75 -24
  41. package/dist/preview/{chunk.44FVJOK4.js → chunk.DYSPCGXX.js} +1 -1
  42. package/dist/preview/chunk.E2YEOMPH.js +1 -0
  43. package/dist/preview/chunk.EBGAYL32.js +1 -0
  44. package/dist/preview/{chunk.HRWLR7T4.js → chunk.EF3XNU4O.js} +1 -1
  45. package/dist/preview/chunk.EJPI3ST6.js +1 -0
  46. package/dist/preview/chunk.EKPRNDUV.js +1 -0
  47. package/dist/preview/chunk.ERIT3R6N.js +1 -0
  48. package/dist/preview/chunk.EYTBDMTW.js +1 -0
  49. package/dist/preview/chunk.F6EH7HI2.js +1 -0
  50. package/dist/preview/{chunk.OGXE2RHC.js → chunk.F6ZK7RMB.js} +2 -2
  51. package/dist/preview/chunk.FSTCX2AI.js +1 -0
  52. package/dist/preview/chunk.FWTIUYXH.js +2 -0
  53. package/dist/preview/{chunk.YCA7P5MK.js → chunk.G5NZVPJU.js} +1 -1
  54. package/dist/preview/chunk.GO4XBWJO.js +9 -0
  55. package/dist/preview/chunk.GV2CQVKV.js +1 -0
  56. package/dist/preview/chunk.GYICGZMG.js +3 -0
  57. package/dist/preview/chunk.H7BST3XO.js +1 -0
  58. package/dist/preview/chunk.H7EPE74C.js +1 -0
  59. package/dist/preview/{chunk.X53HI436.js → chunk.HAIG6NVX.js} +1 -1
  60. package/dist/preview/chunk.HLTRQU4Y.js +35 -0
  61. package/dist/preview/{chunk.O4QPITBD.js → chunk.I6FPNX43.js} +1 -1
  62. package/dist/preview/chunk.IDVAR5HM.js +1 -0
  63. package/dist/preview/chunk.J25KOSNW.js +1 -0
  64. package/dist/preview/chunk.JDUJDAGA.js +1 -0
  65. package/dist/preview/chunk.JFAOHHJJ.js +1 -0
  66. package/dist/preview/chunk.JOOQUWLT.js +341 -0
  67. package/dist/preview/{chunk.ZBXOX3W3.js → chunk.JQU5GEU3.js} +1 -1
  68. package/dist/preview/chunk.K5ME5GCG.js +1 -0
  69. package/dist/preview/chunk.K7PMDSOL.js +1 -0
  70. package/dist/preview/chunk.KSES5U5B.js +1 -0
  71. package/dist/preview/chunk.LLLZEGRK.js +1 -0
  72. package/dist/preview/chunk.LR3VDXPI.js +1 -0
  73. package/dist/preview/chunk.LXBOVRFI.js +1 -0
  74. package/dist/preview/chunk.MAF7C3VM.js +2 -0
  75. package/dist/preview/chunk.MNP4JI33.js +5 -0
  76. package/dist/preview/{chunk.5AT4O4BN.js → chunk.MWGGV7DE.js} +1 -1
  77. package/dist/preview/chunk.N6OX4NEQ.js +1 -0
  78. package/dist/preview/chunk.NM6MZYFN.js +47 -0
  79. package/dist/preview/chunk.NRAYZY3X.js +1 -0
  80. package/dist/preview/chunk.NTF7FVB2.js +1 -0
  81. package/dist/preview/chunk.OC6IWRQ3.js +1 -0
  82. package/dist/preview/chunk.OF34OZ4V.js +1 -0
  83. package/dist/preview/chunk.OJGHDWI6.js +1 -0
  84. package/dist/preview/chunk.OKRNJXTV.js +1 -0
  85. package/dist/preview/chunk.PBSMLINK.js +1 -0
  86. package/dist/preview/chunk.PHKSMUIA.js +1 -0
  87. package/dist/preview/chunk.PIP6Z563.js +1 -0
  88. package/dist/preview/chunk.QGTSHKJL.js +1 -0
  89. package/dist/preview/chunk.QVVJRSRM.js +1 -0
  90. package/dist/preview/{chunk.J46KDTEZ.js → chunk.QYZNAUIR.js} +1 -1
  91. package/dist/preview/chunk.R6K6GF5R.js +1 -0
  92. package/dist/preview/chunk.RCKTBOY2.js +1 -0
  93. package/dist/preview/{chunk.CK7QWLMX.js → chunk.RIJUCHP4.js} +1 -1
  94. package/dist/preview/chunk.SHPXD6FC.js +1 -0
  95. package/dist/preview/chunk.SHTJZ6UX.js +1 -0
  96. package/dist/preview/chunk.SYAEBGDC.js +2 -0
  97. package/dist/preview/chunk.T5VG5A6V.js +1 -0
  98. package/dist/preview/{chunk.JNGUSAWX.js → chunk.TAQ764IQ.js} +17 -3
  99. package/dist/preview/chunk.TCNBCTWO.js +1 -0
  100. package/dist/preview/chunk.TI4OSTQV.js +1 -0
  101. package/dist/preview/{chunk.ZSKP6UQS.js → chunk.UATVTXZY.js} +1 -1
  102. package/dist/preview/{chunk.V6TK4LHW.js → chunk.UBFNZMUX.js} +4 -4
  103. package/dist/preview/chunk.UGFDSE37.js +1 -0
  104. package/dist/preview/chunk.UGFJKSHU.js +3 -0
  105. package/dist/preview/chunk.UHUGOTUU.js +19 -0
  106. package/dist/preview/chunk.ULRW47RP.js +1 -0
  107. package/dist/preview/chunk.UNL2HIF2.js +1 -0
  108. package/dist/preview/chunk.UZGRRDHD.js +1 -0
  109. package/dist/preview/chunk.VG3O4LWB.js +1 -0
  110. package/dist/preview/chunk.WAZ7OGBD.js +1 -0
  111. package/dist/preview/chunk.XANVHJQ4.js +1 -0
  112. package/dist/preview/chunk.XKABS745.js +1 -0
  113. package/dist/preview/chunk.XMC7YDWT.js +1 -0
  114. package/dist/preview/chunk.XNJEFUF7.js +3 -0
  115. package/dist/preview/chunk.Y6ZNFQK3.js +6 -0
  116. package/dist/preview/{chunk.QNHECGMH.js → chunk.YIR7PPF3.js} +1 -1
  117. package/dist/preview/index.html +51 -0
  118. package/dist/preview/page.js +6 -6
  119. package/package.json +6 -6
  120. package/dist/preview/chunk.2643W7FT.js +0 -1
  121. package/dist/preview/chunk.2CLPRG3I.js +0 -1
  122. package/dist/preview/chunk.2IZFIORK.js +0 -1
  123. package/dist/preview/chunk.2NCTM5K2.js +0 -2
  124. package/dist/preview/chunk.3JM2TNDD.js +0 -2
  125. package/dist/preview/chunk.4GGAPOMK.js +0 -2
  126. package/dist/preview/chunk.5JXUAMKI.js +0 -1
  127. package/dist/preview/chunk.5R66YTET.js +0 -2
  128. package/dist/preview/chunk.64P76WK4.js +0 -1
  129. package/dist/preview/chunk.7DNFXJH3.js +0 -1
  130. package/dist/preview/chunk.7PRFYYVM.js +0 -1
  131. package/dist/preview/chunk.AE5GKL4C.js +0 -1
  132. package/dist/preview/chunk.ARR75WBP.js +0 -35
  133. package/dist/preview/chunk.AVUS5LMG.js +0 -3
  134. package/dist/preview/chunk.BKPGDEES.js +0 -1
  135. package/dist/preview/chunk.BZ5OJYHU.js +0 -1
  136. package/dist/preview/chunk.COTG2IG5.js +0 -1
  137. package/dist/preview/chunk.DAA6XWLF.js +0 -1
  138. package/dist/preview/chunk.DKTCRFMS.js +0 -1
  139. package/dist/preview/chunk.DLGTFXGM.js +0 -1
  140. package/dist/preview/chunk.DN7SN6ZR.js +0 -1
  141. package/dist/preview/chunk.G4WQGTZR.js +0 -3
  142. package/dist/preview/chunk.GDA3G4U2.js +0 -6
  143. package/dist/preview/chunk.GS4T26WW.js +0 -328
  144. package/dist/preview/chunk.HFKMHLJ3.js +0 -1
  145. package/dist/preview/chunk.HGAMNIST.js +0 -1
  146. package/dist/preview/chunk.HKBKH7EK.js +0 -1
  147. package/dist/preview/chunk.HLLWKSZB.js +0 -5
  148. package/dist/preview/chunk.HONUT6OG.js +0 -1
  149. package/dist/preview/chunk.IWYUFYDJ.js +0 -1
  150. package/dist/preview/chunk.JU2ZVKMT.js +0 -2
  151. package/dist/preview/chunk.K4ZUVH2G.js +0 -1
  152. package/dist/preview/chunk.KC6UZHBM.js +0 -1
  153. package/dist/preview/chunk.KLITC55P.js +0 -1
  154. package/dist/preview/chunk.KZ2376BD.js +0 -19
  155. package/dist/preview/chunk.LYJAVUST.js +0 -1
  156. package/dist/preview/chunk.MOUGB4H6.js +0 -1
  157. package/dist/preview/chunk.MYFWM572.js +0 -1
  158. package/dist/preview/chunk.N4FBDA2W.js +0 -1
  159. package/dist/preview/chunk.O42YET3W.js +0 -1
  160. package/dist/preview/chunk.ONDILMIX.js +0 -1
  161. package/dist/preview/chunk.OQDETV4X.js +0 -1
  162. package/dist/preview/chunk.OWBEV6FR.js +0 -1
  163. package/dist/preview/chunk.OWE6OJ4P.js +0 -1
  164. package/dist/preview/chunk.OYJSFO3A.js +0 -1
  165. package/dist/preview/chunk.P62SKNJS.js +0 -27
  166. package/dist/preview/chunk.PA5HYAEO.js +0 -1
  167. package/dist/preview/chunk.PMEDLEZY.js +0 -9
  168. package/dist/preview/chunk.PTXQHHKF.js +0 -1
  169. package/dist/preview/chunk.R2D373VG.js +0 -1
  170. package/dist/preview/chunk.RB4RTBRZ.js +0 -1
  171. package/dist/preview/chunk.RCLJ4H52.js +0 -116
  172. package/dist/preview/chunk.RKRSRKF3.js +0 -1
  173. package/dist/preview/chunk.RWGLKDWH.js +0 -1
  174. package/dist/preview/chunk.SIL4KD3K.js +0 -1
  175. package/dist/preview/chunk.SS76EIMI.js +0 -1
  176. package/dist/preview/chunk.T4LY5QXO.js +0 -14
  177. package/dist/preview/chunk.UIIVEQAT.js +0 -1
  178. package/dist/preview/chunk.UTHHX2TJ.js +0 -1
  179. package/dist/preview/chunk.UWNYT7PF.js +0 -1
  180. package/dist/preview/chunk.VNBO2RXD.js +0 -1
  181. package/dist/preview/chunk.VPPUTA74.js +0 -1
  182. package/dist/preview/chunk.WKXNBHTL.js +0 -4
  183. package/dist/preview/chunk.WLRTPFAC.js +0 -1
  184. package/dist/preview/chunk.XAXJHEMD.js +0 -1
  185. package/dist/preview/chunk.XDZSTIS6.js +0 -88
  186. package/dist/preview/chunk.XXHNV24G.js +0 -1
  187. package/dist/preview/chunk.YRQZZH5V.js +0 -1
  188. package/dist/preview/chunk.YUWRZWGX.js +0 -1
  189. package/dist/preview/chunk.Z2RGLFLS.js +0 -1
  190. package/dist/preview/chunk.Z56B2JR2.js +0 -25
  191. package/dist/preview/chunk.Z5V23DQN.js +0 -3
  192. package/dist/preview/chunk.ZEGSQCSD.js +0 -1
  193. package/dist/preview/chunk.ZEVVWWNA.js +0 -44
  194. package/dist/preview/chunk.ZS4DJ76C.js +0 -1
  195. /package/dist/preview/{chunk.OHE5AMHH.js → chunk.GZHZLJBF.js} +0 -0
@@ -0,0 +1,90 @@
1
+ import{a as k,b as A,c as L,d as _,e as E,r as B,s as V,t as H,u as N,v as q}from"./chunk.OJGHDWI6.js";import"./chunk.MNP4JI33.js";import"./chunk.AJZBJBMO.js";var W=["drawElementImageToTexture","copyElementImageToTexture"],S=null,P=(r,e)=>r==="texture"?{texture:e}:{destination:{texture:e}};function Z(){return typeof globalThis>"u"?void 0:globalThis}function v(r,e){let t=[],n=Z(),o=!!(n?.navigator&&"gpu"in n.navigator);o||t.push("navigator.gpu is absent \u2014 WebGPU is unavailable.");let i=r??n?.GPUQueue?.prototype??void 0,a=null;if(i){for(let d of W)if(typeof i[d]=="function"){a=d;break}}a||t.push("No element-capture method on GPUQueue. Run Chromium 147+ with --enable-blink-features=CanvasDrawElement.");let c=e??n?.HTMLCanvasElement?.prototype??void 0,l=typeof c?.updateElementGeometry=="function";l||t.push("canvas.updateElementGeometry is absent \u2014 geometry cannot be reported.");let p=typeof c?.requestPaint=="function";p||t.push("canvas.requestPaint is absent \u2014 there is no capture-safe moment to hook.");let w=!1,h="unknown";if(typeof document<"u"){let d=document.createElement("canvas");w="layoutSubtree"in d||typeof d.captureElementImage=="function","layoutSubtree"in d?h="no":typeof d.captureElementImage=="function"&&(h="yes")}return{available:a!==null,captureMethod:a,geometrySync:l,hitTestFollowsGeometry:l?h:"no",layoutSubtree:w,paintEvents:p,webgpu:o,usable:o&&a!==null,notes:t}}var g=class extends Error{constructor(t){super(`HTML-in-Canvas is unavailable:
2
+ ${t.notes.join(`
3
+ `)}`);this.capabilities=t;this.name="PlatformUnavailableError"}};function G(r,e,t){let n=r;for(let o of W){let i=n[o];if(typeof i=="function"){if(S){i.call(n,{source:e},P(S,t));return}try{i.call(n,{source:e},P("texture",t)),S="texture"}catch(a){if(!(a instanceof TypeError)||!/texture/i.test(a.message))throw a;i.call(n,{source:e},P("destination",t)),S="destination"}return}}throw new g(v(r))}function M(r,e=!0){e?r.setAttribute("drawable",""):r.removeAttribute("drawable")}function F(r){let e=r.changedElements;return e?new Set(Array.from(e)):null}function ee(r,e){let t=r;if(typeof t.captureElementImage!="function")throw new g(v(void 0,r));return t.captureElementImage(e)}function O(r,e,t){let n=r;if(typeof n.updateElementGeometry!="function")throw new g(v(void 0,r));n.updateElementGeometry(e,t)}function te(r,e){r.clearElementGeometry?.(e)}function m(r){r.requestPaint?.()}function D(r,e=!0){let t=r;e?t.setAttribute("content","drawable"):t.removeAttribute("content"),"layoutSubtree"in t?t.layoutSubtree=e:e?t.setAttribute("layoutsubtree",""):t.removeAttribute("layoutsubtree")}var I=`
4
+ struct Plane {
5
+ // x, y, width, height in canvas pixels, after the plane transform.
6
+ rect: vec4f,
7
+ // blur radius in texels, contrast falloff 0..1, shadow strength (cast by
8
+ // the view's own panel, so unused here), and the view's own opacity \u2014 which is how a node entering or leaving the scene
9
+ // fades rather than popping.
10
+ style: vec4f,
11
+ // canvas size in pixels, and the ground color's rgb packed as xyz.
12
+ canvas: vec4f,
13
+ ground: vec4f,
14
+ }
15
+
16
+ @group(0) @binding(0) var<uniform> plane: Plane;
17
+ @group(0) @binding(1) var view_texture: texture_2d<f32>;
18
+ @group(0) @binding(2) var view_sampler: sampler;
19
+
20
+ struct VertexOut {
21
+ @builtin(position) position: vec4f,
22
+ @location(0) uv: vec2f,
23
+ }
24
+
25
+ @vertex
26
+ fn vs_main(@builtin(vertex_index) index: u32) -> VertexOut {
27
+ // Two triangles, no vertex buffer: the quad is entirely a function of the
28
+ // plane rect, so nothing has to be uploaded per frame except the uniform.
29
+ var corners = array<vec2f, 6>(
30
+ vec2f(0.0, 0.0), vec2f(1.0, 0.0), vec2f(0.0, 1.0),
31
+ vec2f(0.0, 1.0), vec2f(1.0, 0.0), vec2f(1.0, 1.0),
32
+ );
33
+ let corner = corners[index];
34
+ let pixel = plane.rect.xy + corner * plane.rect.zw;
35
+ // Canvas pixels to clip space, y down.
36
+ let ndc = vec2f(
37
+ pixel.x / plane.canvas.x * 2.0 - 1.0,
38
+ 1.0 - pixel.y / plane.canvas.y * 2.0,
39
+ );
40
+ var out: VertexOut;
41
+ out.position = vec4f(ndc, 0.0, 1.0);
42
+ out.uv = corner;
43
+ return out;
44
+ }
45
+
46
+ fn blurred(uv: vec2f, radius: f32) -> vec4f {
47
+ if (radius <= 0.0) {
48
+ return textureSample(view_texture, view_sampler, uv);
49
+ }
50
+ let size = vec2f(textureDimensions(view_texture, 0));
51
+ let step = radius / size;
52
+ var sum = vec4f(0.0);
53
+ var weight = 0.0;
54
+ // A 9-tap kernel: enough to read as depth-of-field at plane scale, cheap
55
+ // enough to run on every capture every frame.
56
+ for (var y = -1; y <= 1; y = y + 1) {
57
+ for (var x = -1; x <= 1; x = x + 1) {
58
+ let offset = vec2f(f32(x), f32(y)) * step;
59
+ let w = select(1.0, 2.0, x == 0 && y == 0);
60
+ sum = sum + textureSample(view_texture, view_sampler, uv + offset) * w;
61
+ weight = weight + w;
62
+ }
63
+ }
64
+ return sum / weight;
65
+ }
66
+
67
+ @fragment
68
+ fn fs_main(in: VertexOut) -> @location(0) vec4f {
69
+ let radius = plane.style.x;
70
+ let falloff = plane.style.y;
71
+ let opacity = plane.style.w;
72
+
73
+ let color = blurred(in.uv, radius);
74
+
75
+ // Recession dims the view toward whatever is under it \u2014 the ground \u2014 by
76
+ // the same share the DOM path's \`opacity\` does (\`recededOpacity\`), and
77
+ // the plane's shadow is the view's own panel, captured with it. Mixing
78
+ // toward a fixed ground color and darkening the quad's edges here drew a
79
+ // different picture from the DOM path's: gray bands down a light card,
80
+ // and haze of the wrong color in the other scheme.
81
+ let alpha = opacity * (1.0 - falloff * 0.55);
82
+
83
+ // A capture arrives with STRAIGHT alpha and the canvas composites
84
+ // premultiplied, so the color is multiplied by its own alpha here, once.
85
+ // Without it a panel's soft shadow \u2014 dark at a low alpha \u2014 came out
86
+ // lighter than the ground it fell on.
87
+ let a = color.a * alpha;
88
+ return vec4f(color.rgb * a, a);
89
+ }
90
+ `;var j=64,T=256,z=T/4,Q=64,b=class{constructor(e,t,n={}){this.canvas=e;this.deps=t;this.options=n;D(e,!0),this.blur=n.blur??!0,this.scheme=n.scheme??"dark",this.capabilities=v(t.gpu.device.gpu.queue,e);let o=n.platformHandlesHitTesting??this.capabilities.hitTestFollowsGeometry==="yes";this.router=new N(e,{platformHandlesHitTesting:o}),e.setAttribute("data-graview-hit",o?"platform":"router")}views=new Map;idOf=new WeakMap;resources=new Map;capturedAt={};uniforms=null;staging=new Float32Array(0);slotCount=0;nextSlot=0;freeSlots=[];reported=new Map;router;pipeline=null;sampler=null;frame=0;detachRouter=null;connectors=[];lastPlan=null;lastPlacements=[];blur;scheme;capabilities;attach(){return this.detachRouter=this.router.attach(),()=>this.detach()}detach(){this.detachRouter?.(),this.detachRouter=null}reconcile(e){let t=new Map(e.map(n=>[n.id,n]));for(let n of[...this.views.keys()])t.has(n)||this.remove(n);for(let n of e){let o=this.views.get(n.id);if(!o){this.add(n);continue}let i=o.width!==n.width||o.height!==n.height,a=o.element!==n.element||(o.dom??!1)!==(n.dom??!1);a&&this.track(n);let c=(o.opacity??1)!==(n.opacity??1),l=o.dirty||n.dirty===!0||i||a||c;this.views.set(n.id,{...n,dirty:l}),(a||i)&&delete this.capturedAt[n.id]}}add(e){if(!e.dom&&e.element.parentElement!==this.canvas)throw new Error(`View "${e.id}" must be an immediate child of the scene canvas \u2014 the capture API rejects deeper descendants. Nest inside a view, never between views.`);this.track(e),this.views.set(e.id,{...e,dirty:!0})}track(e){this.idOf.set(e.element,e.id),e.dom||M(e.element)}remove(e){let t=this.resources.get(e);t?.texture.destroy(),t&&this.freeSlots.push(t.slot),this.resources.delete(e),this.reported.delete(e),this.views.delete(e),delete this.capturedAt[e]}setBlur(e){this.blur=e}setScheme(e){this.scheme=e}setConnectors(e){this.connectors=e}invalidate(e){let t=this.views.get(e);t&&this.views.set(e,{...t,dirty:!0})}all(){return[...this.views.values()]}plan(){return this.lastPlan}placements(){return this.lastPlacements}deviceForProbe(){return this.deps.gpu.device.gpu}scheduleFrame(){m(this.canvas)}paint(e){return this.render(F(e))}render(e){let t=this.deps.gpu.device.gpu,n=t.queue;this.frame+=1;let o=this.canvas.width,i=this.canvas.height,a;if(e){a=new Set;for(let u of e){let s=this.idOf.get(u);s!==void 0&&a.add(s)}}let c=a?new Set(a):null,l=V([...this.views.values()],this.connectors,{canvasWidth:o,canvasHeight:i,capturedAt:this.capturedAt,captureBudget:this.options.captureBudget??B,scheme:this.scheme,...a?{changed:a}:{},...this.options.connectorOverrides?{connectorOverrides:this.options.connectorOverrides}:{}});this.lastPlan=l;let p=[];for(let u of l.captures){let s=this.views.get(u.viewId);if(!s)continue;let y=this.ensureResources(t,s);try{G(n,s.element,y.texture)}catch(f){if(!(f instanceof DOMException&&f.name==="InvalidStateError"))throw f;this.capturedAt[s.id]===void 0&&p.push(s.id),s.dirty||this.views.set(s.id,{...s,dirty:!0});continue}this.capturedAt[s.id]=this.frame,this.views.set(s.id,{...s,dirty:!1}),a?.delete(s.id)}for(let u of[...a??[],...l.deferred]){let s=this.views.get(u);s&&!s.dirty&&this.views.set(u,{...s,dirty:!0})}let w=t.createCommandEncoder({label:"graview-compositor"}),h=w.beginRenderPass({colorAttachments:[{view:this.deps.surface.context.getCurrentTexture().createView(),clearValue:this.options.transparent?{r:0,g:0,b:0,a:0}:this.groundColor(),loadOp:"clear",storeOp:"store"}]});h.setPipeline(this.ensurePipeline(t));let d=this.options.ground??[.957,.949,.933],U=[],x=-1;for(let u of l.draws){if(p.includes(u.viewId))continue;let s=this.resources.get(u.viewId);!s||!this.views.has(u.viewId)||(Y(this.staging,s.slot*z,u,o,i,d,this.blur),s.slot>x&&(x=s.slot),U.push(s))}x>=0&&this.uniforms&&n.writeBuffer(this.uniforms,0,this.staging.buffer,0,(x+1)*T);for(let u of U)h.setBindGroup(0,this.ensureBindGroup(t,u)),h.draw(6);let C=[];for(let u of l.placements){let s=this.views.get(u.viewId);s&&C.push({element:s.element,transform:u.transform,width:u.width,height:u.height,depth:u.depth})}if(h.end(),n.submit([w.finish()]),this.capabilities.geometrySync){let u=[];for(let s of[...l.geometry,...l.offCanvas]){let y=this.views.get(s.viewId);if(!y)continue;let f=s.transform.join(",");this.reported.get(s.viewId)!==f&&u.push({element:y.element,id:s.viewId,key:f,transform:s.transform})}for(let{element:s,id:y,key:f,transform:K}of u.slice(0,Q))O(this.canvas,s,{canvasTransform:E(K)}),this.reported.set(y,f);u.length>Q&&m(this.canvas)}return this.lastPlacements=C,this.router.setPlacements(C),p.length===0?{...l,missed:p,changed:c}:{...l,draws:l.draws.filter(u=>!p.includes(u.viewId)),missed:p,changed:c}}groundColor(){let[e,t,n]=this.options.ground??[.957,.949,.933];return{r:e,g:t,b:n,a:1}}ensurePipeline(e){if(this.pipeline)return this.pipeline;let t=e.createShaderModule({code:I,label:"graview-compositor"});return this.pipeline=e.createRenderPipeline({layout:"auto",vertex:{module:t,entryPoint:"vs_main"},fragment:{module:t,entryPoint:"fs_main",targets:[{format:navigator.gpu.getPreferredCanvasFormat(),blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"}}),this.pipeline}ensureResources(e,t){let n=Math.max(1,Math.ceil(t.width)),o=Math.max(1,Math.ceil(t.height)),i=this.resources.get(t.id);if(i&&i.width===n&&i.height===o)return i;i?.texture.destroy();let a=i?.slot??this.takeSlot(e),l={texture:e.createTexture({size:[n,o],format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT,label:`graview-view-${t.id}`}),width:n,height:o,bindGroup:null,slot:a};return this.resources.set(t.id,l),l}takeSlot(e){let t=this.freeSlots.pop();if(t!==void 0)return t;let n=this.nextSlot++;if(n>=this.slotCount){let o=Math.max(64,this.slotCount*2);this.uniforms?.destroy(),this.uniforms=e.createBuffer({size:o*T,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"graview-planes"});let i=new Float32Array(o*z);i.set(this.staging),this.staging=i,this.slotCount=o;for(let a of this.resources.values())a.bindGroup=null}return n}ensureBindGroup(e,t){return t.bindGroup||(this.sampler??=e.createSampler({magFilter:"linear",minFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}),t.bindGroup=e.createBindGroup({layout:this.ensurePipeline(e).getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.uniforms,offset:t.slot*T,size:j}},{binding:1,resource:t.texture.createView()},{binding:2,resource:this.sampler}]})),t.bindGroup}dispose(){this.detach(),this.canvas.removeAttribute("data-graview-hit");for(let e of[...this.resources.keys()])this.remove(e);this.uniforms?.destroy(),this.uniforms=null}};function ne(r,e,t,n,o=!0){let i=new Float32Array(j/4);return Y(i,0,r,e,t,n,o),i}function Y(r,e,t,n,o,i,a){r[e]=t.transform[12],r[e+1]=t.transform[13],r[e+2]=t.width,r[e+3]=t.height,r[e+4]=a?t.blur:0,r[e+5]=t.style.falloff,r[e+6]=t.style.shadow,r[e+7]=t.opacity,r[e+8]=n,r[e+9]=o,r[e+10]=0,r[e+11]=0,r[e+12]=i[0],r[e+13]=i[1],r[e+14]=i[2],r[e+15]=1}var re=3,$=4,X=1500,J=q*.75;function ie(r={}){let e=new WeakMap;return t=>{let n=e.get(t.canvas);(!n||n.disposed)&&(n=new R(t.canvas,r),e.set(t.canvas,n)),n.show(t);let o=n;return()=>o.release()}}var R=class{constructor(e,t){this.canvas=e;this.options=t;this.observer=typeof MutationObserver>"u"?null:new MutationObserver(()=>{this.stale=!0,m(this.canvas)}),this.observer?.observe(e,{childList:!0}),this.start()}disposed=!1;scene=null;compositor=null;ownDevice=null;stale=!0;onDom=new Set;lateFor=new Map;releasing=null;waiting=null;firstFrames=[];gone=!1;observer;onPaint=e=>this.paint(e);show(e){if(this.releasing&&clearTimeout(this.releasing),this.releasing=null,this.scene=e,this.stale=!0,this.compositor?.setBlur(e.blur??!0),e.scheme&&this.compositor?.setScheme(e.scheme),this.gone){e.fallBack?.();return}m(this.canvas)}release(){this.releasing&&clearTimeout(this.releasing),this.releasing=setTimeout(()=>this.dispose(),0)}async start(){try{let e=this.options.gpu;if(!e){let o=await navigator.gpu?.requestAdapter();if(!o)throw new Error("No WebGPU adapter.");let i=await o.requestDevice();this.ownDevice=i,i.lost.then(()=>{this.disposed||this.fallBack()}),e={device:{gpu:i}}}if(this.disposed)return;let t=e.device.gpu;if(!v(t.queue,this.canvas).usable)throw new Error("No element capture.");let n=this.canvas.getContext("webgpu");if(!n)throw new Error("No WebGPU context on the scene canvas.");n.configure({device:t,format:navigator.gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),this.compositor=new b(this.canvas,{gpu:e,surface:{context:n}},{transparent:!0,...this.options,blur:this.scene?.blur??this.options.blur??!0,...this.scene?.scheme?{scheme:this.scene.scheme}:{}}),this.compositor.attach(),this.canvas.addEventListener("paint",this.onPaint),this.stale=!0,this.waiting=setTimeout(()=>this.fallBack(),X),m(this.canvas)}catch{this.fallBack()}}fallBack(){if(this.gone)return;this.gone=!0,this.waiting&&clearTimeout(this.waiting),this.waiting=null,this.canvas.removeEventListener("paint",this.onPaint),this.compositor?.dispose(),this.compositor=null;let e=this.scene;e&&(e.fallBack?e.fallBack():e.drawOnDom?.(new Set(e.layout.nodes.map(t=>t.id))))}checkFirstFrame(e){let t=this.firstFrames;if(!t||(this.waiting&&clearTimeout(this.waiting),this.waiting=null,t.push(e),t.length<$))return;let n=[...t].sort((o,i)=>o-i)[Math.floor(t.length/2)];this.firstFrames=null,n>J&&this.fallBack()}paint(e){let t=this.compositor,n=this.scene;if(!t||!n)return;let o=performance.now(),i;try{this.stale&&(this.stale=!1,t.reconcile(this.views(n))),i=t.paint(e)}catch{this.fallBack();return}if(this.checkFirstFrame(performance.now()-o),this.gone)return;this.options.onFrame?.(i,t);let a=!1,c=new Set(i.deferred);for(let l of[...this.lateFor.keys()])c.has(l)||this.lateFor.delete(l);for(let l of c){if(i.changed&&!i.changed.has(l))continue;let p=(this.lateFor.get(l)??0)+1;this.lateFor.set(l,p),p>=re&&!this.onDom.has(l)&&(this.onDom.add(l),this.lateFor.delete(l),a=!0)}a&&n.drawOnDom?.(new Set(this.onDom)),(i.deferred.length>0||i.missed.length>0)&&m(this.canvas)}views(e){let t=new Map;for(let a of this.canvas.children){let c=a.getAttribute("data-graview-view");c!==null&&t.set(c,a)}let n=new Set,o=[];for(let a of H(e.layout,e.dirty).views){n.add(a.id);let c=t.get(a.id)??e.hostOf(a.id);c&&o.push({...a,element:c,...c.parentElement===this.canvas?{}:{dom:!0}})}let i=!1;for(let a of this.onDom)n.has(a)||(this.onDom.delete(a),i=!0);return i&&e.drawOnDom?.(new Set(this.onDom)),o}dispose(){this.disposed=!0,this.waiting&&clearTimeout(this.waiting),this.waiting=null,this.observer?.disconnect(),this.canvas.removeEventListener("paint",this.onPaint),this.compositor?.dispose(),this.compositor=null,this.ownDevice?.destroy(),this.ownDevice=null}};export{I as COMPOSITOR_WGSL,b as Compositor,$ as FIRST_FRAMES,J as FIRST_FRAME_BUDGET_MS,X as FIRST_PAINT_WAIT_MS,A as IDENTITY,g as PlatformUnavailableError,ie as attachGpu,G as captureElement,ee as captureElementImage,F as changedElementsOf,te as clearElementGeometry,v as detectCapabilities,k as isAffine,M as markDrawable,ne as packUniform,_ as perspectiveProbeMatrix,L as planeTransform,m as requestPaint,D as setLayoutSubtree,E as toDOMMatrix,O as updateElementGeometry};
@@ -0,0 +1 @@
1
+ import{a as g}from"./chunk.TI4OSTQV.js";import{Db as c,Hb as y,Ta as p}from"./chunk.MNP4JI33.js";function h(t,i=()=>!0){let e=c(t),n=new Set(t.map(o=>o.lineage?.suggestion));return t.filter(o=>o.suggests&&!o.withheld&&!e.has(o.id)&&!n.has(o.id)).map(({id:o,batch:s,suggests:r,intent:x,author:b,lineage:d,at:O})=>{let l=new Set;return JSON.stringify(r.map(u=>u.args),(u,a)=>(typeof a=="string"&&i(a)&&l.add(a),a)),{id:o,batch:s,calls:r,intent:x,author:b,...d?{lineage:d}:{},at:O,about:[...l]}})}function S(t,i){return t.ops.length>0&&t.ops.every(e=>e.suggests!==void 0||e.undoes!==void 0&&i(e.undoes)?.suggests!==void 0)}var f=t=>JSON.stringify([t.kind,t.id??"",t.name??""]);function I(t,i=()=>{}){let e=[];for(let n of t){if(S(n,i))continue;let o=e.at(-1);if(!y(n.author)){e.push({batch:n});continue}if(o&&"digest"in o&&f(o.digest.author)===f(n.author)){let s=[...o.digest.batches,n];e[e.length-1]={digest:{author:o.digest.author,batches:s,things:m(s),at:n.at}}}else e.push({digest:{author:n.author,batches:[n],things:m([n]),at:n.at}})}return e}var m=t=>t.reduce((i,e)=>i+(e.undone?0:e.ops.length),0);function j(t,i=new Date().toISOString().slice(0,10)){let e=t.at.slice(0,10),n=e===i?"today":`on ${new Date(`${e}T12:00:00Z`).toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:"UTC"})}`;return`Tidied ${t.things===1?"one thing":`${t.things} things`} ${n}`}var A=t=>t;function v(t,i){let e=g(t),n=e?.store??t,o=i??e?.principal,s=(o!==void 0?n.seenBy(o):n).log.all();return h(s,r=>n.graph.has(r))}function w(t,i,e){let n=v(t,e).find(o=>o.id===i);if(!n)throw new p("That suggestion is no longer waiting: it was accepted or declined, or it is not one you can see.");return n}function D(t,i,e={}){let n=g(t)?.store??t,o=e.author??A(n).by,s=w(n,i,o);return n.applyAll(s.calls,{...e,author:o,lineage:{...s.lineage,suggestion:i}})}function L(t,i,e={}){let n=g(t)?.store??t,o=e.author??A(n).by,s=w(n,i,o);return n.undo(s.batch,{...e,author:o})}export{I as a,j as b,v as c,D as d,L as e};
@@ -1 +1 @@
1
- import{d as p}from"./chunk.GS4T26WW.js";import{M as c}from"./chunk.Z56B2JR2.js";import{ob as u}from"./chunk.HLLWKSZB.js";import{b as h}from"./chunk.AJZBJBMO.js";var s={person:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="11.6" cy="5.4" r="2.5"/><path d="M7.9 12.4c0-2.1 1.7-3.8 3.7-3.8s3.7 1.7 3.7 3.8v3.2H7.9z"/><path d="M8 12.6 6.4 17.2"/><path d="M15.2 12.6 16.8 17.2"/><path d="M9.8 15.6v5"/><path d="M13.4 15.6v5"/></svg>',plot:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.6 9.4 12 4.6l9.4 4.8-9.4 4.8z"/><path d="M2.6 9.4v4.4l9.4 4.8 9.4-4.8V9.4"/><path d="M12 14.2v4.4"/><path d="M7 11.9v3"/><path d="M17 11.9v3"/></svg>',box:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M3.4 7.9 12 3.6l8.6 4.3-8.6 4.3z"/><path d="M3.4 7.9v8.2L12 20.4l8.6-4.3V7.9"/><path d="M12 12.2v8.2"/></svg>',task:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4.4 6.6 12 2.9l7.6 3.7v9.5L12 19.8 4.4 16.1z"/><path d="M12 12.4v7.4"/><path d="M4.4 6.6 12 10.3l7.6-3.7"/><path d="M8 9.6l2.4 2.4L16 8.4"/></svg>',shift:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M3.2 8.2 12 4l8.8 4.2-8.8 4.2z"/><path d="M3.2 8.2v7.2L12 19.6l8.8-4.2V8.2"/><path d="M12 12.4v7.2"/><path d="M6.6 10.8v3.4"/><path d="M9.3 12v3.4"/></svg>',list:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.8 10.4 12 6l9.2 4.4-9.2 4.4z"/><path d="M2.8 10.4v3.2L12 18l9.2-4.4v-3.2"/><path d="M6.6 8.6 15.8 13"/><path d="M9.4 7.2 18.6 11.6"/></svg>',vehicle:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.8 14.2 5 9.4l8.6-1.6 5.4 3-1 3.6z"/><path d="M2.8 14.2v2.2h2.4"/><path d="M18 16.4h1.9l.1-2.2"/><circle cx="7.6" cy="16.6" r="1.9"/><circle cx="16.1" cy="16.6" r="1.9"/><path d="M8.6 8.2 9.8 12l7.2-1"/></svg>',rule:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5.4 19.4V6.6l12 12.8z"/><path d="M5.4 6.6 7.6 5.5l12 12.8-2.2 1.1"/><path d="M5.4 19.4 7.6 18.3h12"/><path d="M5.4 10.1h1.7"/><path d="M5.4 13.3h1.7"/><path d="M5.4 16.5h1.7"/></svg>',note:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M6.2 6.2 14.8 10.5v9L6.2 15.2z"/><path d="M12.4 9.3 14.8 10.5l-.6 2.3"/><path d="M8.2 10.6 12.8 12.9"/><path d="M8.2 13.2 11.4 14.8"/></svg>'},v=Object.keys(s);function i(e){if(e)return s[e]??(e.trimStart().startsWith("<svg")?e:void 0)}var a=h(c(),1);function A({kind:e,schema:o,brand:n,size:r=16,title:t}){let f=o?.tryDefinition?.(e)?.figure,d=i(n?.figures?.[e]??f),l=Math.round(u(e,n?.accents)),g=p(d);return d?(0,a.jsx)("span",{"aria-hidden":t===void 0?"true":void 0,...t===void 0?{}:{role:"img","aria-label":t},"data-graview-figure":e,"data-graview-figure-kind":"figure",dangerouslySetInnerHTML:g,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:r,height:r,flex:"0 0 auto",color:`hsl(${l} 55% 52%)`,"--graview-figure-size":`${r}px`}}):(0,a.jsx)("span",{"aria-hidden":t===void 0?"true":void 0,...t===void 0?{}:{role:"img","aria-label":t},"data-graview-figure":e,"data-graview-figure-kind":"dot",style:{display:"inline-block",width:Math.round(r*.8),height:Math.round(r*.5),flex:"0 0 auto",background:`hsl(${l} 55% 52%)`,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)"}})}function C(e,o,n){return i(n?.figures?.[e]??o?.tryDefinition?.(e)?.figure)!==void 0}export{A as a,C as b};
1
+ import{h as p}from"./chunk.JOOQUWLT.js";import{Q as c}from"./chunk.6QWV5MVH.js";import{Kb as u}from"./chunk.MNP4JI33.js";import{b as h}from"./chunk.AJZBJBMO.js";var s={person:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="11.6" cy="5.4" r="2.5"/><path d="M7.9 12.4c0-2.1 1.7-3.8 3.7-3.8s3.7 1.7 3.7 3.8v3.2H7.9z"/><path d="M8 12.6 6.4 17.2"/><path d="M15.2 12.6 16.8 17.2"/><path d="M9.8 15.6v5"/><path d="M13.4 15.6v5"/></svg>',plot:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.6 9.4 12 4.6l9.4 4.8-9.4 4.8z"/><path d="M2.6 9.4v4.4l9.4 4.8 9.4-4.8V9.4"/><path d="M12 14.2v4.4"/><path d="M7 11.9v3"/><path d="M17 11.9v3"/></svg>',box:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M3.4 7.9 12 3.6l8.6 4.3-8.6 4.3z"/><path d="M3.4 7.9v8.2L12 20.4l8.6-4.3V7.9"/><path d="M12 12.2v8.2"/></svg>',task:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4.4 6.6 12 2.9l7.6 3.7v9.5L12 19.8 4.4 16.1z"/><path d="M12 12.4v7.4"/><path d="M4.4 6.6 12 10.3l7.6-3.7"/><path d="M8 9.6l2.4 2.4L16 8.4"/></svg>',shift:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M3.2 8.2 12 4l8.8 4.2-8.8 4.2z"/><path d="M3.2 8.2v7.2L12 19.6l8.8-4.2V8.2"/><path d="M12 12.4v7.2"/><path d="M6.6 10.8v3.4"/><path d="M9.3 12v3.4"/></svg>',list:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.8 10.4 12 6l9.2 4.4-9.2 4.4z"/><path d="M2.8 10.4v3.2L12 18l9.2-4.4v-3.2"/><path d="M6.6 8.6 15.8 13"/><path d="M9.4 7.2 18.6 11.6"/></svg>',vehicle:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.8 14.2 5 9.4l8.6-1.6 5.4 3-1 3.6z"/><path d="M2.8 14.2v2.2h2.4"/><path d="M18 16.4h1.9l.1-2.2"/><circle cx="7.6" cy="16.6" r="1.9"/><circle cx="16.1" cy="16.6" r="1.9"/><path d="M8.6 8.2 9.8 12l7.2-1"/></svg>',rule:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5.4 19.4V6.6l12 12.8z"/><path d="M5.4 6.6 7.6 5.5l12 12.8-2.2 1.1"/><path d="M5.4 19.4 7.6 18.3h12"/><path d="M5.4 10.1h1.7"/><path d="M5.4 13.3h1.7"/><path d="M5.4 16.5h1.7"/></svg>',note:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M6.2 6.2 14.8 10.5v9L6.2 15.2z"/><path d="M12.4 9.3 14.8 10.5l-.6 2.3"/><path d="M8.2 10.6 12.8 12.9"/><path d="M8.2 13.2 11.4 14.8"/></svg>'},v=Object.keys(s);function i(e){if(e)return s[e]??(e.trimStart().startsWith("<svg")?e:void 0)}var a=h(c(),1);function A({kind:e,schema:o,brand:n,size:r=16,title:t}){let f=o?.tryDefinition?.(e)?.figure,d=i(n?.figures?.[e]??f),l=Math.round(u(e,n?.accents)),g=p(d);return d?(0,a.jsx)("span",{"aria-hidden":t===void 0?"true":void 0,...t===void 0?{}:{role:"img","aria-label":t},"data-graview-figure":e,"data-graview-figure-kind":"figure",dangerouslySetInnerHTML:g,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:r,height:r,flex:"0 0 auto",color:`hsl(${l} 55% 52%)`,"--graview-figure-size":`${r}px`}}):(0,a.jsx)("span",{"aria-hidden":t===void 0?"true":void 0,...t===void 0?{}:{role:"img","aria-label":t},"data-graview-figure":e,"data-graview-figure-kind":"dot",style:{display:"inline-block",width:Math.round(r*.8),height:Math.round(r*.5),flex:"0 0 auto",background:`hsl(${l} 55% 52%)`,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)"}})}function C(e,o,n){return i(n?.figures?.[e]??o?.tryDefinition?.(e)?.figure)!==void 0}export{A as a,C as b};
@@ -0,0 +1 @@
1
+ import{b as R}from"./chunk.3HXN4BOY.js";import"./chunk.GYICGZMG.js";import"./chunk.SHTJZ6UX.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{n 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 k,Q as v,Z as g}from"./chunk.6QWV5MVH.js";import{ca as m,dc as A,fa as c}from"./chunk.MNP4JI33.js";import{b as u}from"./chunk.AJZBJBMO.js";var f=u(k(),1);var S=u(k(),1),L=(0,S.createContext)(void 0);var i=u(v(),1),W=new WeakMap,y=new WeakMap,P=(e,n)=>`${n.kind}\0${n.id??""}\0${e}`;function C(e,n,r){let o=P(n,r),p=W.get(e);p||W.set(e,p=new Map);let t=p.get(o);return t||(t=Promise.resolve().then(()=>e(n,r)).then(a=>b(a)?a:null,()=>null).then(a=>{let s=y.get(e);return s||y.set(e,s=new Map),s.set(o,a),a}),p.set(o,t)),t}function b(e){if(e===null)return!0;if(typeof e!="object"||e===void 0)return!1;if(e.denied===!0)return!0;let n=e;return typeof n.name=="string"&&n.name.trim()!==""&&typeof n.href=="string"}function h(e){if(/^https?:\/\//i.test(e))try{return new URL(e).href}catch{return}}var N=e=>h(e)??(c(e)?e:void 0),E=e=>h(e)??(e.startsWith("/")&&c(e)?e:void 0),I={kind:"human"},w={color:"var(--graview-ink-muted)"};function M({icon:e}){if(!e)return null;let n=E(e);if(n)return(0,i.jsx)("img",{src:n,alt:"",width:20,height:20,"data-graview-app-icon":"",style:{width:20,height:20,borderRadius:5,objectFit:"cover",flex:"0 0 auto"}});let r=[...e.trim()].slice(0,2).join("");return r?(0,i.jsx)("span",{"aria-hidden":"true","data-graview-app-icon":"",style:{flex:"0 0 auto",lineHeight:"20px"},children:r}):null}function V(e){let n=g(),r=(0,f.useContext)(L)??n?.resolveApp,o=n?.principal??I,p=()=>r?y.get(r)?.get(P(e,o))??"asking":null,[t,a]=(0,f.useState)(p);return(0,f.useEffect)(()=>{let s=p();if(a(s),s!=="asking"||!r)return;let l=!0;return C(r,e,o).then(d=>l&&a(d)),()=>{l=!1}},[r,e,o.kind,o.id]),t}function D({address:e,as:n="chip",nodeId:r,field:o,style:p}){let t=V(e),a={position:"relative",zIndex:A.raised,overflowWrap:"anywhere",minWidth:0,maxWidth:"100%",...p},s;if(t==="asking")s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"asking","aria-busy":"true",style:{...w,...a},children:"Linked app"});else if(t&&"denied"in t)s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"denied",style:{...w,fontStyle:"italic",...a},children:"linked app (no access)"});else if(t){let l=N(t.href),d=n==="record"?t.headline?.trim():void 0;s=(0,i.jsxs)(l?"a":"span",{"data-graview-app-link":"","data-graview-app-state":"found",...l?{href:l}:{},...!d&&t.headline?{title:t.headline}:{},style:{display:"inline-flex",alignItems:d?"flex-start":"center",minHeight:24,gap:8,color:"inherit",textUnderlineOffset:3,...a},children:[(0,i.jsx)(M,{icon:t.icon}),(0,i.jsxs)("span",{style:{display:"grid",minWidth:0},children:[(0,i.jsx)("span",{"data-graview-app-name":"",style:{fontWeight:600},children:t.name}),d?(0,i.jsx)("span",{"data-graview-app-headline":"",style:{...w,fontSize:"0.8125em",fontWeight:400},children:d}):null]})]})}else{let l=h(e);s=l?(0,i.jsx)("a",{"data-graview-app-link":"","data-graview-app-state":"plain",href:l,rel:"noopener noreferrer",target:"_blank",style:{color:"var(--graview-accent)",display:"inline-flex",alignItems:"center",minHeight:24,...a},children:e}):(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"plain",style:a,children:e})}return r&&o?(0,i.jsx)(H,{nodeId:r,field:o,address:e,drawn:s}):s}function H({nodeId:e,field:n,address:r,drawn:o}){let p=x(e).fields.some(s=>s.field===n),t=g()?.store;if(!p)return o;let a=m(t?t.schema.tryDefinition(String(t.graph.getNode(e)?.kind)):void 0,n).toLowerCase();return(0,i.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 12px",maxWidth:"100%",minWidth:0},children:[o,(0,i.jsx)("span",{style:{fontSize:"0.8125rem"},children:(0,i.jsx)(R,{nodeId:e,field:n,value:"Change",stored:r,said:`Change the ${a}`})})]})}var _=e=>(0,i.jsx)(D,{...e});export{D as AppLink,_ as drawAppLink};
@@ -0,0 +1 @@
1
+ import{g as a}from"./chunk.FWTIUYXH.js";import{c as p}from"./chunk.MAF7C3VM.js";import{ua as d}from"./chunk.MNP4JI33.js";function v(n){let r=new Map;for(let i of n.kinds){let e=n.tryDefinition(i),o=a(e),s=d(e);r.set(i,{fields:new Set(Object.keys(e?.fields?.shape??{})),edges:new Map(Object.entries(e?.edges??{}).map(([l,h])=>[l,h.cardinality??"many"])),...o?{computed:o}:{},...s.size>0?{linked:s}:{}})}let t=a(n);return t&&r.set(p,{computed:t}),r}export{v as a};
@@ -0,0 +1 @@
1
+ import{d as ie}from"./chunk.B2GLDIAS.js";import{b as Te,d as Ce}from"./chunk.6YCBYL2Y.js";import{e as je}from"./chunk.UGFJKSHU.js";import{$ as Ae,Ac as Re,Cc as De,Dc as We,H as be,Ib as te,Ka as we,Ma as E,T as R,U as ke,Vc as Me,W as B,X as L,Y as xe,Z as v,aa as Ne,gc as re,kc as Se,lc as ve,yc as Oe}from"./chunk.MNP4JI33.js";function oe(n,e){return n.display?.labels?.[e]??v(e)}function ae(n){let e=ie(n);switch(e.type){case"text":case"date":case"number":case"boolean":case"choice":return e.type;default:return}}function Ye(n,e){let t=new Map,r=n.tryDefinition(e);for(let[o,i]of Object.entries(r?.edges??{}))t.set(o,{key:o,label:i.description?R(i.description):v(o),about:"edge",far:i.to==="*"?[...n.kinds]:[...i.to]});for(let o of n.definitions)if(o.kind!==e)for(let[i,d]of Object.entries(o.edges??{}))t.has(i)||d.to!=="*"&&!d.to.includes(e)||t.set(i,{key:i,label:d.inverse?R(d.inverse):v(i),about:"edge",far:[o.kind]});return[...t.values()]}var Je=["current","past","any","flagged","clear"];function Ie(n,e){let t=n?.lifecycle;if(!t||t.retired==="date")return!1;let r=t.retired.map(String);return e.some(o=>o.key===t.field&&r.includes(o.value))}function Fe(n,e){let t=n.tryDefinition(e);if(!t)return{kind:e,sorts:[],filters:[],groups:[]};let r=new Set(t.display?.hide??[]),o=t.fields.shape??{},i=[{key:"label",label:"Name",about:"label",type:"text"}],d=[],f=[];for(let[g,p]of Object.entries(o)){if(g==="id"||g==="kind"||g==="label"||r.has(g))continue;let A=ae(p);if(!A)continue;let O=oe(t,g),N=A==="choice"?Be(p):A==="boolean"?["true","false"]:void 0,w={key:g,label:O,about:"field",type:A,...N?{options:N}:{}};i.push(w),d.push(w),(A==="boolean"||A==="choice")&&f.push(w),A==="date"&&f.push({...w,buckets:["day","week","month","year","decade"]})}for(let g of Ye(n,e))i.push(g),d.push(g),f.push(g);let l={key:"is",label:t.lifecycle?"Standing and currency":"Standing",about:"is",type:"choice",options:t.lifecycle?[...Je]:["flagged","clear"]};d.push(l);let y=t.fieldRoles?.order,u=y&&(y in o||y==="label")?{by:y,direction:"asc"}:void 0;return{kind:e,sorts:i,filters:d,groups:f,...u?{natural:u}:{}}}function vn(n,e){let t=[];for(let o of e.filters){let i=o.about==="edge"&&o.far?.length===1?n.tryDefinition(o.far[0]):void 0;if(!(!i||i.kind===e.kind))for(let[d,f]of Object.entries(i.fields.shape??{}))ae(f)!=="choice"||i.display?.hide?.includes(d)||t.push({key:`${o.key}.${d}`,label:`${o.label} \xB7 ${oe(i,d)}`,about:"via",type:"choice",options:Be(f),far:[i.kind]})}if(t.length===0)return e;let r=e.filters.filter(o=>o.about!=="is");return{...e,filters:[...r,...t,...e.filters.filter(o=>o.about==="is")]}}function On(n,e){let t=n.tryDefinition(e.kind),r=Object.entries(t?.computed??{});if(!t||r.length===0)return e;let o=r.filter(([i])=>!e.sorts.some(d=>d.key===i)).map(([i,d])=>({key:i,label:(typeof d=="object"?d.label:void 0)??oe(t,i),about:"field",type:"number"}));return{...e,sorts:[...e.sorts,...o]}}function Be(n){let e=ie(n);return e.type==="choice"?e.options:[]}var $e=n=>n,Pe=n=>n;function Ze(n,e,t){let r=new Map;for(let o of[...n.out(e,t),...n.in(e,t)])r.set(o.id,o);return[...r.values()]}function se(n,e,t){let r=n.schema.tryDefinition(e.kind);if(t.key==="is")switch(t.value){case"current":return B(r,Pe(e),n.today);case"past":return!B(r,Pe(e),n.today);case"any":return!0;case"flagged":return n.flagged?.has(e.id)??!1;case"clear":return!(n.flagged?.has(e.id)??!1);default:return!0}let o=r?.fields.shape??{};if(t.key in o){let l=we($e(e),t.key,n.today??be()),y=ae(o[t.key]);if(y==="date"){let[u,g]=t.value.split(":");if(typeof l!="string"||!g)return!1;let p=l.slice(0,10);return u==="before"?p<g:u==="after"?p>g:p===g}if(y==="boolean")return String(l)===t.value;if(y==="number"){let u=t.value.lastIndexOf(":"),g=u>0?t.value.slice(0,u):"",p=Number(t.value.slice(u+1));if(g==="at-most"||g==="at-least")return typeof l!="number"||!Number.isFinite(p)?!1:g==="at-most"?l<=p:l>=p}return String(l)===t.value}let[i,d]=t.key.split("."),f=Ze(n.graph,e.id,i);return d?f.some(l=>String($e(l)[d])===t.value):t.value==="*"?f.length>0:t.value==="none"?f.length===0:f.some(l=>l.id===t.value)}var en=5;function _e(n){return n.normalize("NFD").replace(/\p{M}+/gu,"").toLowerCase().replace(/[^\p{L}\p{N}]+/gu," ").trim()}function de(n){return _e(n).replace(/ /g,"")}var _=new Map,nn=5e4;function K(n){let e=_.get(n);if(e===void 0){_.size>=nn&&_.clear();let t=_e(n);e={tokens:t.split(" ").filter(Boolean),whole:t.replace(/ /g,"")},_.set(n,e)}return e}var D=n=>[...K(n).tokens];function j(n,e){if(e.length===0)return;let{whole:t,tokens:r}=K(n),o=e.join("");if(t.length===0)return;if(t===o)return"exact";if(e.every(d=>r.some(f=>f.startsWith(d))))return t.startsWith(o)?"prefix":e.every(d=>r.includes(d))?"word":"part"}function q(n,e,t=48){let r=n.replace(/\s+/g," ").trim();if(r.length<=t)return r;let o=e[0],i=r.normalize("NFD").replace(/\p{M}/gu,"").toLowerCase(),d=o?i.search(new RegExp(`(^|[^\\p{L}\\p{N}])${tn(o)}`,"u")):-1,f=d<0?0:d+(i[d]&&/[\p{L}\p{N}]/u.test(i[d])?0:1),l=Math.max(0,f-Math.floor(t/3));if(l>0){let u=r.lastIndexOf(" ",l);l=u<0?0:u+1}let y=Math.min(r.length,l+t);if(y<r.length){let u=r.indexOf(" ",y);y=u<0||u-y>16?y:u}return`${l>0?"\u2026":""}${r.slice(l,y).trim()}${y<r.length?"\u2026":""}`}var tn=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),rn=/^([\p{L}][\p{L}\p{N}_-]*):(\S+)$/u;function on(n){let e=[],t=[];for(let r of n.trim().split(/\s+/).filter(Boolean)){let o=rn.exec(r);o?t.push({key:o[1],value:o[2]}):e.push(r)}return{words:e.join(" "),conditions:t}}var Le=new WeakMap;function G(n,e){let t=Le.get(e);if(t&&t.definition===n)return t.texts;let r=an(n,e);return Le.set(e,{definition:n,texts:r}),r}function an(n,e){let t=L(n,e),r=[{field:"label",reading:"Name",text:t}];for(let o of Ce(e,n,{limit:Number.POSITIVE_INFINITY}))o.key==="label"||o.value===t||typeof e[o.key]!="boolean"&&r.push({field:o.key,reading:o.label,text:o.markdown?je(o.value):o.value});return r}var T={exact:0,prefix:1,word:2,part:3,field:4,near:5},ze=new Set(["a","an","the","of","and","or","for","to","in","on","at","by","with","my","our","is"]);function Ee(n){let e=n;e.length>4&&e.endsWith("ies")?e=`${e.slice(0,-3)}y`:e.length>4&&/(ss|x|ch|sh|z)es$/.test(e)?e=e.slice(0,-2):e.length>3&&e.endsWith("s")&&!/(ss|us|is)$/.test(e)&&(e=e.slice(0,-1));for(let t of["ing","ed"])if(e.length>t.length+2&&e.endsWith(t)){e=e.slice(0,-t.length),/([b-df-hj-km-np-rtv-z])\1$/.test(e)&&(e=e.slice(0,-1));break}return e.length>3&&e.endsWith("e")?e.slice(0,-1):e}function Ke(n,e,t){if(Math.abs(n.length-e.length)>t)return t+1;let r=[],o=Array.from({length:e.length+1},(i,d)=>d);for(let i=1;i<=n.length;i++){let d=[i],f=i;for(let l=1;l<=e.length;l++){let y=Math.min(o[l]+1,d[l-1]+1,o[l-1]+(n[i-1]===e[l-1]?0:1));i>1&&l>1&&n[i-1]===e[l-2]&&n[i-2]===e[l-1]&&(y=Math.min(y,r[l-2]+1)),d[l]=y,y<f&&(f=y)}if(f>t)return t+1;r=o,o=d}return o[e.length]}var z=new Map;function sn(n,e){let t=z.get(n);t||(z.size>=64&&z.clear(),z.set(n,t=new Map));let r=t.get(e);return r===void 0&&(r=dn(n,e)??null,t.set(e,r)),r??void 0}function dn(n,e){if(/\d/.test(n))return;let t=Ee(n);if(t.length>=3&&(Ee(e)===t||t.length>=4&&e.startsWith(t)))return"stem";let r=n.length<4?0:n.length<=7?1:2;if(r!==0){if(Ke(n,e,r)<=r)return"spelling";if(n.length>=5){for(let o=n.length-r;o<=n.length+r;o++)if(o<e.length&&Ke(n,e.slice(0,o),r)<=r)return"spelling"}}}function ln(n,e){let t=e.length>1?e.filter(o=>!ze.has(o)):e;if(t.length===0)return;let r;for(let o of t){let i;for(let d of n){for(let f of K(d.text).tokens){if(f.startsWith(o)){i={text:d,matched:f};break}let l=i?void 0:sn(o,f);l&&(i={text:d,matched:f,by:l})}if(i&&!i.by)break}if(!i)return;i.by&&!r&&(r={text:i.text,asked:o,matched:i.matched,by:i.by})}if(r)return{field:r.text.field,reading:r.text.reading,fragment:q(r.text.text,[r.matched]),strength:"near",asked:r.asked,matched:r.matched,by:r.by}}var cn=80;function fn(n,e,t){let r=D(e).filter(d=>!ze.has(d)).join(" ")||e,o=t===void 0?[]:D(t),i=o.length>0&&n.find(d=>o.every(f=>K(d.text).tokens.some(l=>l.startsWith(f))))||n[0];return{field:i.field,reading:i.reading,fragment:q(i.text,o),strength:"near",asked:r,matched:(t??i.text).slice(0,cn),by:"meaning"}}function He(n,e,t){let r=D(t);if(r.length===0)return;let o=G(n,e),[i,...d]=o,f=j(i.text,r);if(f)return{field:"label",reading:i.reading,fragment:q(i.text,r),strength:f};let l=p=>A=>K(A.text).tokens.some(O=>O.startsWith(p));if(!r.every(p=>o.some(l(p))))return;let y=D(i.text),u=r.find(p=>!y.some(A=>A.startsWith(p)))??r[0],g=d.find(l(u));return{field:g.field,reading:g.reading,fragment:q(g.text,[u]),strength:"field"}}var un=512,gn=64;function yn(n){let e=new Map;if(n.length===0)return e;let t=n.slice(-un),r=n[n.length-1].seq;for(let o of t){let i=Math.pow(.5,(r-o.seq)/gn);for(let d of o.writes)e.set(d,(e.get(d)??0)+i)}return e}var ce=(n,e)=>Ae({tryDefinition:()=>n},e),le=(n,e)=>Re({tryDefinition:()=>n},e);function hn(n,e,t){let r=n.tryDefinition(e),o=[{field:"plural",text:ce(r,e)},{field:"kind",text:v(e)},...r?.noun?[{field:"noun",text:r.noun}]:[]],i;for(let d of o){let f=j(d.text,t);f&&(!i||T[f]<T[i.strength])&&(i={strength:f,...d})}return i}var pn,mn=(n,e)=>(pn??=new Intl.Collator(void 0,{sensitivity:"base",numeric:!0})).compare(n,e),Ge=(n,e)=>(n.nearly??0)-(e.nearly??0)||(n.archived??0)-(e.archived??0)||n.tier-e.tier||n.inKind-e.inKind||n.near-e.near||n.past-e.past||n.touched-e.touched||n.flagged-e.flagged||mn(n.name,e.name)||(n.id<e.id?-1:n.id>e.id?1:0);function En(n,e,t={}){let r=n.schema,o=on(e),i=D(o.words),d=t.principal??{kind:"human"},f=n.kindsKeptFrom(d),l=n.modules.disabledKinds,y=o.conditions.filter(a=>a.key==="kind").map(a=>a.value),u=o.conditions.filter(a=>a.key==="is").map(a=>a.value),g=u.includes("any")||u.includes("past"),p=u.includes("past")&&!u.includes("any")&&!u.includes("current"),A=u.includes("archived")?!0:t.archived??"all",O=(a,s)=>{let c=de(s),h=r.tryDefinition(a);return de(a)===c||de(ce(h,a))===c},N=r.kinds.filter(a=>!f.has(a)&&!l.has(a)&&(t.kinds===void 0||t.kinds.includes(a))&&(y.length===0||y.some(s=>O(a,s)))),W=o.conditions.filter(a=>a.key!=="kind").map(a=>({...a,admittedBy:N.filter(s=>Fe(r,s).filters.some(c=>c.key===a.key))})),Q=W.filter(a=>a.key!=="is"),C=u.filter(a=>a==="flagged"||a==="clear"||a==="past"||a==="archived"),U={kinds:N,past:g},qe={hits:[],words:o.words,conditions:W,searched:U,byKind:{},total:0,matched:[]};if(i.length===0&&Q.length===0&&C.length===0)return qe;let V=t.today,$=t.flagged??new Set(n.violations().flatMap(a=>a.nodeIds)),Qe=t.touched??yn(n.log.all()),X=new Set;for(let a of t.from??[]){X.add(a);for(let s of n.graph.neighbors(a))X.add(s.id)}let fe=Se(n,d)?ve(n,d):void 0,Y=re.keptFrom?.(n,d)&&n.seenBy(d).graph,J=a=>Me(a,t.basePath===void 0?{}:{basePath:t.basePath}),ue={schema:r,graph:n.graph,flagged:$,...V?{today:V}:{}},S=[],P={},I=[],Z=[],H=(a,s,c,h,m,b)=>{let x=L(c,a);P[s]=(P[s]??0)+1,S.push({hit:{about:"node",id:a.id,kind:s,label:x,why:m,current:h,flagged:$.has(a.id),address:J(`${le(c,s)}/${encodeURIComponent(a.id)}`),...b===void 0?{}:{near:!0},...E(a)?{archived:!0}:{}},...b===void 0?{}:{nearly:2-b},tier:T[m.strength],inKind:s===t.inKind?0:1,near:X.has(a.id)?0:1,past:h?0:1,archived:E(a)?1:0,touched:-(Qe.get(a.id)??0),flagged:$.has(a.id)?0:1,name:x,id:a.id})};for(let a of N){let s=r.tryDefinition(a),c=W.filter(m=>m.key!=="is"&&m.admittedBy.includes(a));if(i.length===0&&c.length===0&&C.length===0)continue;let h=Ie(s,c);for(let m of n.graph.nodesOfKind(a,{archived:A})){if(fe&&!fe(m.id))continue;let b=Y?Y.getNode(m.id):m;if(!b)continue;let x=B(s,b,V);if(!g&&!h&&!x){if(i.length>0&&u.length===0&&c.every(k=>se(ue,b,k))){let k=He(s,b,o.words);k&&Z.push({node:b,kind:a,definition:s,why:k})}continue}if(p&&x||!c.every(k=>se(ue,b,k))||u.includes("flagged")&&!$.has(b.id)||u.includes("clear")&&$.has(b.id))continue;let M=i.length>0?He(s,b,o.words):c[0]?{field:c[0].key,reading:v(c[0].key),fragment:`${c[0].key}:${c[0].value}`,strength:"field"}:{field:"is",reading:"Is",fragment:`is:${C[0]}`,strength:"field"};M?H(b,a,s,x,M):i.length>0&&I.push({node:b,kind:a,definition:s,current:x})}}let ge=!1;if(Z.length>0&&S.length===0){ge=!0;for(let a of Z)H(a.node,a.kind,a.definition,!1,a.why)}let ye=t.near!==!1&&i.length>0&&S.length<en&&I.length>0,ee=new Set;if(ye)for(let a of I){let s=ln(G(a.definition,a.node),i);s&&(ee.add(a.node.id),H(a.node,a.kind,a.definition,a.current,s,s.by==="stem"?.9:.8))}let Ue=a=>a==="exact"||a==="prefix"?-1:T[a],ne=(a,s,c,h)=>({hit:a,tier:Ue(s),inKind:1,near:1,past:0,touched:0,flagged:1,name:c,id:h});if(i.length>0){for(let s of N){let c=hn(r,s,i);if(!c)continue;let h=Ne(r,s),m={field:c.field,reading:c.field==="plural"?"Plural":"Kind",fragment:c.text,strength:c.strength};S.push(ne({about:"kind",kind:s,label:h,why:m,count:P[s]??0,address:J(le(r.tryDefinition(s),s))},c.strength,h,`kind:${s}`))}let a=t.places??[];for(let s of Oe(a.filter(c=>N.includes(c.kind)))){if(s.across&&f.has(s.across))continue;let c=j(s.title,i);if(!c)continue;let h={field:"title",reading:"Title",fragment:s.title,strength:c},m=We(s,a)?le(r.tryDefinition(s.kind),s.kind).slice(1):void 0,b=J(De(s.as,m));S.push(ne({about:"place",kind:s.kind,title:s.title,as:s.as,why:h,address:b},c,s.title,`place:${s.kind}:${s.as}`))}for(let s of n.allInvariants()){let c=s.scope==="graph"?void 0:s.scope.kind;if(c&&!N.includes(c))continue;let h=s.label??v(s.name),m=j(h,i),b=m?void 0:j(v(s.name),i),x=m??b;if(!x)continue;let M={field:m?"label":"name",reading:m?"Rule":"Name",fragment:m?h:s.name,strength:x};S.push(ne({about:"rule",name:s.name,label:h,...c?{kind:c}:{},why:M},x,h,`rule:${s.name}`))}}let he=()=>{S.sort(Ge);let a=t.limit??50,s=S.slice(0,a).map(k=>k.hit),c=s.flatMap(k=>k.about==="node"?[(Y||n.graph).getNode(k.id)]:[]).filter(Boolean),h=Te(c,k=>r.tryDefinition(k)),m=s.map(k=>k.about==="node"&&h.has(k.id)?{...k,apart:h.get(k.id)}:k),b=Object.values(P).reduce((k,Xe)=>k+Xe,0),x=S.flatMap(k=>k.hit.about==="node"?[k.hit.id]:[]),M=t.subject&&N.includes(String(n.graph.getNode(t.subject)?.kind))?bn(n,t.subject,o.words,{principal:d}):[];return{hits:[...m,...M],words:o.words,conditions:W,searched:ge?{...U,past:!0}:U,byKind:{...P},total:b,matched:x}},F=he(),pe=t.rank;if(!ye||!pe)return F;let me=I.filter(a=>!ee.has(a.node.id)).map(({node:a,kind:s,definition:c})=>({id:a.id,kind:s,label:L(c,a),texts:G(c,a)}));if(me.length===0)return F;let Ve=(async()=>{let a;try{a=await pe(o.words,me)}catch{return F}let s=new Map(I.filter(h=>!ee.has(h.node.id)).map(h=>[h.node.id,h])),c=!1;for(let{id:h,score:m,matched:b}of Array.isArray(a)?a:[]){let x=s.get(h);!x||!(m>0)||(s.delete(h),c=!0,H(x.node,x.kind,x.definition,x.current,fn(G(x.definition,x.node),o.words,typeof b=="string"?b:void 0),Math.min(1,m)))}return c?he():F})();return{...F,later:Ve}}function bn(n,e,t,r={}){let o=r.principal??{kind:"human"},i=(re.keptFrom?.(n,o)?n.seenBy(o):n).graph.getNode(e);if(!i)return[];if(n.kindsKeptFrom(o).has(i.kind))return[];let d=D(t),f=L(n.schema.tryDefinition(i.kind),i),l=[];for(let u of n.allMutations()){let g=u.subject;if(!g||g.kinds!=="*"&&!g.kinds.includes(i.kind))continue;let p=u.derived?.act;if((p==="archive"||p==="merge")&&E(i)||p==="unarchive"&&!E(i)||p==="leave-alone"&&te(i)||p==="allow-tidying"&&!te(i)||!n.permits({name:u.name,args:{[g.arg]:i.id}},o).ok)continue;let A=xe(u),O=D(A),N=d.filter(Q=>O.some(C=>C.startsWith(Q))),w=N.length>0?j(A,N):void 0,W=w?{field:"title",reading:"Act",fragment:A,strength:w}:{field:"subject",reading:"On",fragment:f,strength:"field"};l.push({hit:{about:"act",name:u.name,title:A,subject:i.id,why:W,destructive:u.destructive===!0},tier:w?T[w]:T.field+1,inKind:0,near:0,past:u.destructive?1:0,touched:0,flagged:u.pinned?0:1,name:A,id:`act:${u.name}`})}l.sort(Ge);let y=l.map(u=>u.hit);return r.limit===void 0?y:y.slice(0,r.limit)}function Kn(n,e){let t=e.kinds.map((i,d)=>{let f=ce(n.tryDefinition(i),i);return d===0?f:f.toLowerCase()}),r=ke(t)||"Nothing";return e.kinds.some(i=>n.tryDefinition(i)?.lifecycle)?e.past?`${R(r)}, past ones included.`:`${R(r)}, current ones; add is:any for past ones.`:`${R(r)}.`}export{oe as a,ae as b,Ye as c,Ie as d,Fe as e,vn as f,On as g,Be as h,$e as i,Pe as j,Ze as k,se as l,de as m,on as n,He as o,yn as p,En as q,bn as r,Kn as s};
@@ -1,4 +1,4 @@
1
- import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{h as pa,i as ga}from"./chunk.WKXNBHTL.js";import"./chunk.OWE6OJ4P.js";import"./chunk.JNGUSAWX.js";import{b as na,c as oa,d as ue,e as da}from"./chunk.QNHECGMH.js";import"./chunk.RKRSRKF3.js";import{o as ra,p as ta,q as ia}from"./chunk.KC6UZHBM.js";import{a as la}from"./chunk.HJCQ6I3S.js";import{b as sa}from"./chunk.ZBXOX3W3.js";import"./chunk.5AT4O4BN.js";import"./chunk.X53HI436.js";import"./chunk.COTG2IG5.js";import{d as ca}from"./chunk.LYJAVUST.js";import{a as Ia}from"./chunk.T4LY5QXO.js";import"./chunk.YCA7P5MK.js";import{a as Je}from"./chunk.VNBO2RXD.js";import{b as we}from"./chunk.VPPUTA74.js";import"./chunk.UT6642FC.js";import"./chunk.2CLPRG3I.js";import"./chunk.MB7LKKUD.js";import"./chunk.OHE5AMHH.js";import{d as je,e as Xe,f as X,p as Qe}from"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import{A as aa,a as B,c as De,h as Ve,m as Ze,s as ea}from"./chunk.GS4T26WW.js";import{F as P,I as We,M as u,R as Fe,T as qe,U as h,W as ne,_ as Ge,ga as ve,ha as _e,i as ge,ia as K,j as te,la as Ue,m as j,n as ie,o as ce,oa as Ye,pa as U,r as Ne,x as Be,y as Ke,z as Oe}from"./chunk.Z56B2JR2.js";import{$ as re,Fb as T,Hb as L,Z as Pe,ob as He}from"./chunk.HLLWKSZB.js";import{b as l}from"./chunk.AJZBJBMO.js";function Ra(e){return`
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 ye,b as ke,c as Se,d as ya,e as ka,h as $e,i as ze,j as Ee,k as Sa}from"./chunk.FSTCX2AI.js";import{g as ha,h as xa}from"./chunk.BNV77BQZ.js";import"./chunk.TAQ764IQ.js";import{b as va,c as wa,d as be,e as ua}from"./chunk.YIR7PPF3.js";import"./chunk.EBGAYL32.js";import{p as pa,q as ga,r as ca}from"./chunk.DAZ2VSRD.js";import{a as fa}from"./chunk.HJCQ6I3S.js";import"./chunk.MWGGV7DE.js";import{b as ma}from"./chunk.JQU5GEU3.js";import"./chunk.HAIG6NVX.js";import"./chunk.UZGRRDHD.js";import"./chunk.XANVHJQ4.js";import{b as oa}from"./chunk.JDUJDAGA.js";import{b as me,d as he,e as xe}from"./chunk.LR3VDXPI.js";import"./chunk.COQKECUH.js";import{b as fe}from"./chunk.EJPI3ST6.js";import"./chunk.3K6YSVHC.js";import"./chunk.SHTJZ6UX.js";import"./chunk.UT6642FC.js";import{e as ba}from"./chunk.LLLZEGRK.js";import"./chunk.TI4OSTQV.js";import"./chunk.G5NZVPJU.js";import"./chunk.GZHZLJBF.js";import{c as ta,d as ia,e as Z,o as na}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{H as la,b as Qe,e as ea,f as aa,j as Oa,m as ra,r as da,y as sa}from"./chunk.JOOQUWLT.js";import{A as Ue,F as O,Q as f,V as je,X as Ye,Y as S,_ as le,a as Q,fa as Ve,j as we,k as ne,n as j,o as oe,oa as Xe,p as ue,pa as K,s as de,sa as Je,wa as Ze,xa as pe,y as _e,z as se}from"./chunk.6QWV5MVH.js";import{Kb as Ge,N as qe,_ as Fe,aa as ie,cc as H,ec as D}from"./chunk.MNP4JI33.js";import{b as p}from"./chunk.AJZBJBMO.js";function Ka(e){return`
2
2
 
3
3
 
4
4
  .graview-altitude-control {
@@ -45,7 +45,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
45
45
  transform: translateY(-4px) scale(1.05);
46
46
  box-shadow: var(--graview-lift-high);
47
47
  position: relative;
48
- z-index: ${T.lines};
48
+ z-index: ${H.lines};
49
49
  }
50
50
 
51
51
 
@@ -59,7 +59,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
59
59
  left: 50%;
60
60
  top: 42px;
61
61
  transform: translateX(-50%);
62
- z-index: ${T.lines};
62
+ z-index: ${H.lines};
63
63
  display: grid;
64
64
  justify-items: center;
65
65
  gap: 4px;
@@ -71,8 +71,8 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
71
71
 
72
72
  .graview-drive-in-marquee {
73
73
  display: grid;
74
- gap: ${Xe}px;
75
- width: ${je}px;
74
+ gap: ${ia}px;
75
+ width: ${ta}px;
76
76
  justify-items: stretch;
77
77
  }
78
78
  .graview-drive-in-thumb {
@@ -80,7 +80,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
80
80
  display: grid;
81
81
  align-content: center;
82
82
  box-sizing: border-box;
83
- min-height: max(${X/16}rem, ${X}px);
83
+ min-height: max(${Z/16}rem, ${Z}px);
84
84
  padding: 3px 6px 3px 10px;
85
85
  border-left: 2px solid var(--graview-edge-bright, var(--graview-edge));
86
86
  color: var(--graview-ink);
@@ -95,7 +95,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
95
95
  .graview-drive-in-thumb-press {
96
96
  position: absolute;
97
97
  inset: 0;
98
- min-height: max(${X/16}rem, ${X}px);
98
+ min-height: max(${Z/16}rem, ${Z}px);
99
99
  margin: 0;
100
100
  padding: 0;
101
101
  border: none;
@@ -128,7 +128,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
128
128
  position: absolute;
129
129
  inset: 0;
130
130
  pointer-events: none;
131
- z-index: ${T.occupants};
131
+ z-index: ${H.occupants};
132
132
  }
133
133
  .graview-figure {
134
134
  position: absolute;
@@ -184,16 +184,18 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
184
184
  pointer-events: none;
185
185
  }
186
186
 
187
+
187
188
  .graview-figure[data-graview-person] .graview-figure-body {
188
- left: -11px;
189
+ left: -12px;
189
190
  top: -24px;
190
- width: 22px;
191
+ width: 24px;
191
192
  height: 24px;
192
193
  min-height: 0;
193
194
  }
194
195
  .graview-figure[data-graview-person] .graview-figure-body svg {
195
196
  width: 22px;
196
197
  height: 24px;
198
+ margin: 0 auto;
197
199
  }
198
200
  .graview-figure[data-graview-person][data-graview-followed] .graview-figure-body {
199
201
  color: var(--graview-accent);
@@ -277,7 +279,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
277
279
  transition: opacity 160ms ease;
278
280
  }
279
281
  .graview-kind-card[data-graview-emphasis="lit"] {
280
- z-index: ${T.stage};
282
+ z-index: ${H.stage};
281
283
  }
282
284
  .graview-kind-card[data-graview-emphasis="lit"] .graview-kind-face {
283
285
  border-color: var(--graview-accent) !important;
@@ -364,7 +366,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
364
366
  position: absolute;
365
367
  inset: 0;
366
368
  pointer-events: none;
367
- z-index: ${T.seatMarks};
369
+ z-index: ${H.seatMarks};
368
370
  }
369
371
  .graview-seat-mark {
370
372
  position: absolute;
@@ -464,7 +466,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
464
466
  }
465
467
  .graview-ribbon-said,
466
468
  .graview-record-link-said {
467
- z-index: ${T.tieLabels};
469
+ z-index: ${H.tieLabels};
468
470
  box-sizing: border-box;
469
471
  white-space: nowrap;
470
472
  font-size: 0.8125rem;
@@ -496,6 +498,10 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
496
498
  .graview-record-link-end {
497
499
  fill: var(--graview-accent);
498
500
  }
501
+
502
+ .graview-record-link-said[data-graview-tie-said="waiting"] {
503
+ visibility: hidden;
504
+ }
499
505
  .graview-record-link-said {
500
506
  max-width: 260px;
501
507
  overflow: hidden;
@@ -614,7 +620,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
614
620
  position: absolute;
615
621
  top: -9px;
616
622
  right: 14px;
617
- z-index: ${T.tag};
623
+ z-index: ${H.tag};
618
624
  display: var(--graview-kit-tags, inline-flex);
619
625
  align-items: center;
620
626
  gap: 5px;
@@ -750,7 +756,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
750
756
  left: 0;
751
757
  bottom: calc(100% + 6px);
752
758
 
753
- z-index: ${L("popover")};
759
+ z-index: ${D("popover")};
754
760
  margin: 0;
755
761
  padding: 6px;
756
762
  list-style: none;
@@ -822,7 +828,7 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
822
828
  border-radius: 5px !important;
823
829
  background: var(--graview-panel) !important;
824
830
  box-shadow: 0 1px 2px rgba(0, 0, 0, ${e==="light"?"0.08":"0.3"}) !important;
825
- z-index: ${T.tag};
831
+ z-index: ${H.tag};
826
832
  }
827
833
  [data-graview-altitude] [data-graview-plot] .graview-kind-face {
828
834
  top: calc(var(--graview-front-y) + 4px) !important;
@@ -919,9 +925,11 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
919
925
  opacity: 1;
920
926
  pointer-events: auto;
921
927
  }
928
+
922
929
  [data-graview-altitude] [data-graview-plot]:hover,
923
- [data-graview-altitude] [data-graview-plot]:focus-within {
924
- z-index: ${T.opened} !important;
930
+ [data-graview-altitude] [data-graview-plot]:focus-within,
931
+ [data-graview-altitude] [data-graview-plot]:has(.graview-drive-in[data-graview-showing]) {
932
+ z-index: ${H.opened} !important;
925
933
  }
926
934
 
927
935
  [data-graview-altitude] [data-graview-landmark]:not([data-graview-plot] *) .graview-kind-face {
@@ -931,7 +939,8 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
931
939
 
932
940
  [data-graview-altitude] .graview-drive-in {
933
941
 
934
- top: calc(var(--graview-front-y, 42px) + var(--graview-plate-h, 26px));
942
+
943
+ top: calc(var(--graview-front-y, 42px) + 4px + var(--graview-plate-h, 28px));
935
944
  padding: 4px 6px;
936
945
  border-radius: 5px;
937
946
  background: var(--graview-panel);
@@ -953,13 +962,25 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
953
962
  transform: translate(-50%, -100%) scale(calc(0.55 + var(--graview-altitude) * 0.45));
954
963
  }
955
964
 
965
+
966
+ .graview-zoom,
967
+ .graview-edge-sign {
968
+ --graview-scene-foot: var(--graview-sheet, 0px);
969
+ }
970
+ @container (max-width: 639px) {
971
+ .graview-zoom,
972
+ .graview-edge-sign {
973
+
974
+ --graview-scene-foot: max(var(--graview-sheet, 0px), var(--graview-foot-room, 0px));
975
+ }
976
+ }
956
977
  .graview-zoom {
957
978
  position: absolute;
958
979
 
959
980
  right: calc(16px + var(--graview-dock, 0px));
960
- bottom: calc(16px + var(--graview-sheet, 0px));
981
+ bottom: calc(16px + var(--graview-scene-foot, var(--graview-sheet, 0px)));
961
982
 
962
- z-index: ${T.zoom};
983
+ z-index: ${H.zoom};
963
984
  display: inline-flex;
964
985
  align-items: center;
965
986
  gap: 2px;
@@ -1022,7 +1043,27 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
1022
1043
  outline: none;
1023
1044
  }
1024
1045
  [data-graview-stage="dom"] [data-graview-view] > :not([data-graview-natural]),
1025
- [data-graview-stage="dom"] [data-graview-view] > [data-graview-natural] > * {
1046
+ [data-graview-stage="dom"] [data-graview-view] > [data-graview-natural] > *,
1047
+ [data-graview-stage="gpu"][data-graview-hit="platform"] > [data-graview-view] > :not([data-graview-natural]),
1048
+ [data-graview-stage="gpu"][data-graview-hit="platform"] > [data-graview-view] > [data-graview-natural] > * {
1049
+ pointer-events: auto;
1050
+ }
1051
+
1052
+ [data-graview-altitude] [data-graview-view][data-graview-plot] > .graview-kind-card {
1053
+ pointer-events: none;
1054
+ }
1055
+ [data-graview-altitude] [data-graview-plot] > .graview-kind-card > .graview-kind-face:not([data-graview-nameplate="none"]),
1056
+ [data-graview-altitude] [data-graview-plot] > .graview-kind-card > .graview-drive-in {
1057
+ pointer-events: auto;
1058
+ }
1059
+ [data-graview-altitude] [data-graview-plot] > .graview-kind-card::before {
1060
+ content: "";
1061
+ position: absolute;
1062
+ left: 0;
1063
+ top: 0;
1064
+ width: 100%;
1065
+ height: calc(2 * var(--graview-center-y, 50%));
1066
+ clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
1026
1067
  pointer-events: auto;
1027
1068
  }
1028
1069
 
@@ -1032,6 +1073,16 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
1032
1073
  overflow-y: auto;
1033
1074
  flex-shrink: 1;
1034
1075
  }
1076
+
1077
+ [data-graview-record-focus] > :not(.graview-kind-tag) [data-graview-primitive="panel"] {
1078
+ height: auto !important;
1079
+ max-height: none !important;
1080
+ overflow: visible !important;
1081
+ flex-shrink: 0;
1082
+ }
1083
+ [data-graview-record-focus] > :not(.graview-kind-tag) [data-graview-primitive="panel"] > .graview-scroll {
1084
+ overflow: visible;
1085
+ }
1035
1086
  [data-graview-view][data-graview-selected] {
1036
1087
  filter: drop-shadow(0 0 14px var(--graview-accent-dim));
1037
1088
  }
@@ -1072,5 +1123,5 @@ import{a as me,b as fe,c as va,d as wa,f as he}from"./chunk.UIIVEQAT.js";import{
1072
1123
  }
1073
1124
  [data-graview-connector][data-graview-activity] {
1074
1125
  animation: graview-relation 1200ms cubic-bezier(0.22, 1, 0.36, 1);
1075
- }`}function xe(e="dark",t={}){let n=Ra(e);return t.scope===void 0?n:De(n,t.scope)}var A=l(P(),1);var O=l(u(),1),La=U(B(()=>import("./chunk.J46KDTEZ.js"))).part(e=>(0,O.jsx)(e.MapKey,{}),{quiet:!0});function be(){let{store:e}=h(),{view:t}=K(),n=ne(),i=(0,A.useMemo)(()=>e.graph.allEdges().length>0,[e,n]),[a,g]=(0,A.useState)(!1),v=(0,A.useId)(),c=(0,A.useRef)(null),m=(0,A.useRef)(null);return(0,A.useEffect)(()=>{if(!a)return;let s=$=>{let y=$.target;y&&(m.current?.contains(y)||c.current?.contains(y))||g(!1)};return document.addEventListener("pointerdown",s,!0),()=>document.removeEventListener("pointerdown",s,!0)},[a]),i?(0,O.jsxs)("div",{style:{display:"contents"},onKeyDown:s=>{s.key!=="Escape"||!a||(s.preventDefault(),s.stopPropagation(),g(!1),c.current?.focus({preventScroll:!0}))},children:[(0,O.jsx)("button",{ref:c,type:"button","data-testid":"lines-key","aria-expanded":a,"aria-controls":v,title:"What the lines mean",onClick:()=>g(s=>!s),style:{position:"absolute",top:60,right:"calc(14px + var(--graview-dock, 0px))",zIndex:L("overview"),height:30,padding:"0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.8125rem",color:a?"var(--graview-accent)":"var(--graview-ink-muted)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)"},children:"Key"}),a?(0,O.jsxs)("div",{ref:m,id:v,"data-testid":"lines-key-pane","data-graview-offstage":"",style:{position:"absolute",top:98,right:"calc(14px + var(--graview-dock, 0px))",zIndex:L("rail"),width:wa,maxHeight:"calc(100cqh - 120px)",overflowY:"auto",boxSizing:"border-box",padding:"8px 8px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[t.overview?(0,O.jsx)(La,{}):null,(0,O.jsx)(va,{inside:!0,widthOf:la})]}):null]}):null}var ua=l(P(),1),oe=l(u(),1);function ma(e){return e.lens!==null?{what:"lens",kind:e.lens}:e.records.length===1&&e.districts.length===0?{what:"record",id:e.records[0]}:e.districts.length===1&&e.records.length===0?{what:"district",kind:e.districts[0]}:null}var Pa=U(B(()=>import("./chunk.AVUS5LMG.js"))),Ha=Pa.part((e,t)=>(0,oe.jsx)(e.MapPanelFor,{showing:t.showing}),{what:"This panel",quiet:!0});function ye(){let{store:e,view:t,selection:n,hiddenKinds:i}=h();if(ne(),!t.overview)return null;let a=ma(sa(n,{...t,beside:!0},g=>e.graph.getNode(g)?.kind));return!a||a.what!=="record"&&(i.has(a.kind)||!e.schema.kinds.includes(a.kind))?null:(0,oe.jsx)(ua.Suspense,{fallback:null,children:(0,oe.jsx)(Ha,{showing:a})})}var D=l(P(),1),de=l(u(),1),Na="A",ke=U(B(()=>import("./chunk.4GGAPOMK.js")));var Ba=ke.part((e,t)=>(0,de.jsx)(e.InspectorPane,{...t}),{what:"This card's acts"});function Ka(e){let t=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},n=globalThis;if(n.requestIdleCallback){let a=n.requestIdleCallback(t,{timeout:5e3});return()=>n.cancelIdleCallback?.(a)}let i=setTimeout(t,2500);return()=>clearTimeout(i)}function Se({placement:e="float"}={}){let{menuAt:t,setMenuAt:n,registerActsDoor:i}=h(),{selection:a}=ve();(0,D.useEffect)(()=>{if(ke.current)return;let m=()=>{y(),ke.prefetch()},s=Ka(m),$=["pointerdown","keydown"];for(let w of $)document.addEventListener(w,m,{capture:!0,passive:!0});function y(){s();for(let w of $)document.removeEventListener(w,m,{capture:!0})}return y},[]),(0,D.useEffect)(()=>{if(e==="menu")return i({key:Na,open:m=>{let s=m.getBoundingClientRect(),$=m.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??m.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0;n({x:Math.round(s.left+Math.min(16,s.width/2)),y:Math.round(Math.min(s.bottom,s.top+36)),...$?{on:$}:{}})}}),()=>i(null)},[e,i,n]);let g=t!==null||e==="float"&&a.length>0,[v,c]=(0,D.useState)(g);return(0,D.useEffect)(()=>{g&&c(!0)},[g]),!v&&!g?null:(0,de.jsx)(D.Suspense,{fallback:null,children:(0,de.jsx)(Ba,{placement:e})})}var Oa=l(P(),1);var H=l(u(),1);function $e(){let{view:e,go:t}=K(),{store:n,views:i,hiddenKinds:a}=h(),g=e.overview??!1,v=i.places().map(w=>w.kind).filter(w=>!a.has(w)),c=aa(e,n.schema.kinds,v),m=()=>{t(te(j(e,!1),c))},s=(()=>{if(!c)return null;let w=Be(c)[0],S=e.within?.view,N=(S?i.places().find(f=>f.as===S):void 0)??(w?i.places().find(f=>f.kind===w):void 0);return N?N.title:w?re(n.schema,w):n.graph.getNode(c)?.label??null})(),$=g?"Close the map":"Up",y=g&&s?`Close the map, down to ${s}`:$;return(0,H.jsxs)("button",{type:"button","data-testid":"overview",className:"graview-altitude-control","aria-pressed":g,"aria-label":y,title:g?y:"Up \u2014 the whole thing, from above",onClick:()=>g?m():t(j(e,!0)),style:{position:"absolute",top:14,right:"calc(14px + var(--graview-dock, 0px))",zIndex:L("overview"),display:"inline-flex",alignItems:"center",justifyContent:"center",gap:7,height:38,padding:"0 13px 0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.875rem",whiteSpace:"nowrap",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)","--graview-altitude":g?1:0,...g?{color:"var(--graview-accent)"}:{}},children:[(0,H.jsxs)("svg",{className:"graview-altitude-mark",width:"16",height:"16",viewBox:"0 0 12 12","aria-hidden":"true",children:[(0,H.jsx)("ellipse",{className:"graview-altitude-mark-ring",cx:"6",cy:"6.6",rx:"5",ry:"2.6",fill:"none",stroke:"currentColor",strokeWidth:"0.9"}),(0,H.jsx)("circle",{className:"graview-altitude-mark-apex",cx:"6",cy:"4",r:"1.5",fill:"currentColor"}),(0,H.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"left",cx:"1.6",cy:"7.4",r:"1.2",fill:"currentColor"}),(0,H.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"right",cx:"10.4",cy:"7.4",r:"1.2",fill:"currentColor"})]}),(0,H.jsx)("span",{className:"graview-altitude-label",children:$})]})}var ze=l(u(),1);function Ce(){let{administered:e}=h(),{view:t,go:n}=K(),i=e.filter(a=>a.canShow);return i.length===0?null:(0,ze.jsx)("div",{role:"group","aria-label":"Administered","data-testid":"administered",style:{display:"flex",gap:6},children:i.map(a=>(0,ze.jsx)("button",{type:"button","aria-pressed":a.shown,"data-testid":`show-${a.name}`,title:a.shown?`Hide the ${a.name}'s own districts again`:a.description??`Show the ${a.name}'s own districts beside the domain`,onClick:()=>n(na(t,a.name,!a.shown)),style:{padding:"3px 11px",borderRadius:999,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:a.shown?"var(--graview-accent)":"var(--graview-edge)",color:a.shown?"var(--graview-accent)":"var(--graview-ink-muted)",background:a.shown?"var(--graview-panel)":"transparent"},children:a.shown?`Hide the ${a.name}`:`Show the ${a.name}`},a.name))})}var x=l(P(),1);var p=l(u(),1);Fe({search:ta,touchWeights:ra});var Da=e=>e.about==="rule"?"rule:":e.about==="act"?"act:":e.kind;function ba({compact:e=!1}){let{store:t,view:n,setView:i,principal:a,setMenuAt:g,brand:v,seatTalk:c}=h(),m=We(c),s=qe(),$=_e(),y=Qe().marks.flag,w=(0,x.useRef)(null),S=(0,x.useId)(),[N,f]=(0,x.useState)(!1),[_,Q]=(0,x.useState)(null),[F,J]=(0,x.useState)(null),z=n.q??"";(0,x.useEffect)(()=>{let r=d=>{if(d.defaultPrevented)return;let o=d.key.toLowerCase()==="k"&&(d.metaKey||d.ctrlKey)&&!d.altKey&&!d.shiftKey,C=d.key==="/"&&!d.metaKey&&!d.ctrlKey&&!d.altKey;if(!o&&!C)return;let R=w.current;if(!R)return;let ae=R.closest("[data-graview-embed]"),G=d.target,Aa=G===document.body||G===document.documentElement||G===window;if(ae&&!(o&&Aa||G instanceof Node&&ae.contains(G)))return;let V=document.activeElement,Ma=V instanceof HTMLInputElement||V instanceof HTMLTextAreaElement||V instanceof HTMLSelectElement||V instanceof HTMLElement&&V.isContentEditable;C&&Ma||(d.preventDefault(),R.getClientRects().length===0&&R.closest("[data-graview-app-bar]")?.querySelector('[data-testid="app-find-open"]')?.click(),R.focus({preventScroll:!0}),R.select(),f(!0))};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[]);let Re=(0,x.useMemo)(()=>F&&z.trim()?ia(t,F,s?.words??z,{principal:a,limit:4}):[],[t,z,s,F,a]),le=(0,x.useMemo)(()=>{let r=new Map;for(let[d,o]of(s?.hits??[]).entries()){if(o.about==="act")continue;let C=Da(o),R=r.get(C)??[];if(R.push({id:`${S}-${d}`,hit:o}),r.set(C,R),o.about==="node"&&o.id===F)for(let[ae,G]of Re.entries())R.push({id:`${S}-${d}-act-${ae}`,hit:G})}return[...r.entries()]},[s,Re,F,S]),E=m.drawn>0&&z.trim()?{id:`${S}-ask`,ask:z.trim()}:null,q=(0,x.useMemo)(()=>[...le.flatMap(([,r])=>r),...E?[E]:[]],[le,E?.ask]),I=q.find(r=>r.id===_)??q[0];(0,x.useEffect)(()=>{Q(null),J(null)},[z]);let Z=r=>{if(r){if(Q(r.id),"ask"in r){J(null);return}r.hit.about==="node"?J(r.hit.id):r.hit.about!=="act"&&J(null)}},pe=r=>{if(!r)return;if("ask"in r){c.ask(r.ask),i(o=>ue(o)),f(!1);return}let d=r.hit;switch(d.about){case"node":i(o=>ie(te(j(o,!1),d.id),[d.id]));break;case"kind":i(o=>Ke(o,Ne(d.kind),{ownPicture:!0,...o.q?{carry:o.q}:{}}));break;case"place":i(o=>Oe(o,d.kind,d.as));break;case"rule":{let o=$.filter(C=>C.invariant===d.name).flatMap(C=>C.nodeIds);i(C=>ie(C,[...new Set(o)]));break}case"act":{i(C=>ie(C,[d.subject]));let o=w.current?.getBoundingClientRect();g({x:o?.left??0,y:(o?.bottom??0)+6,on:d.subject});break}}f(!1),w.current?.blur()},Ea=s?qa(s.byKind,s.hits,t.schema):"",ee=N&&z.trim().length>0,Ta=(0,x.useCallback)(()=>{let r=w.current?.closest("[data-graview-app-bar]")?.getBoundingClientRect();if(r)return{x:r.right,y:r.bottom-Ga};let d=w.current?.getBoundingClientRect();return d?{x:d.right,y:d.bottom}:null},[]),Le=Ye("find",{open:ee,onOpenChange:r=>{r||f(!1)},...e?{at:Ta}:{}});return(0,p.jsxs)("div",{style:{position:"relative",minWidth:0,flex:"1 1 auto"},"data-testid":"find",children:[(0,p.jsx)("input",{ref:r=>{w.current=r,Le.trigger.ref(r)},"data-graview-popover-trigger":"find",type:"search",role:"combobox","aria-label":"Find anything","aria-expanded":ee,"aria-controls":S,"aria-autocomplete":"list",...ee&&I?{"aria-activedescendant":I.id}:{},"data-testid":"find-box",placeholder:"Find\u2026","aria-keyshortcuts":"/ Meta+K Control+K",value:z,onChange:r=>{let d=r.target.value;f(!0),i(o=>oa(o,d.length>0?d:null))},onFocus:()=>f(!0),onBlur:()=>f(!1),onKeyDown:r=>{let d=_!==null&&I?q.indexOf(I):-1;r.key==="ArrowDown"?(r.preventDefault(),f(!0),Z(q[Math.min(q.length-1,d+1)])):r.key==="ArrowUp"?(r.preventDefault(),Z(q[Math.max(0,d-1)])):r.key==="Enter"?(r.preventDefault(),pe(I)):r.key==="Escape"&&(r.preventDefault(),z?i(o=>ue(o)):w.current?.blur())},style:{width:"100%",boxSizing:"border-box",minWidth:0,height:30,padding:"0 var(--graview-bar-find-end, 10px) 0 10px",font:"inherit",fontSize:"0.875rem",color:"var(--graview-ink)",background:"var(--graview-panel)",border:`1px solid ${z?"var(--graview-accent)":"var(--graview-edge)"}`,borderRadius:8}}),(0,p.jsx)("span",{role:"status","aria-live":"polite",style:Ve,"data-testid":"find-count",children:z.trim()?Ea:""}),(0,p.jsxs)("div",{...Le.pane,id:S,role:"listbox","aria-label":z?`What \u201C${z}\u201D finds`:"What the words find","data-testid":"find-strip",hidden:!ee,onMouseDown:r=>r.preventDefault(),style:e?{...ha,..._a}:ha,children:[q.every(r=>"ask"in r)?(0,p.jsxs)("p",{role:"presentation",style:{margin:0,padding:"10px 12px",color:"var(--graview-ink-muted)",fontSize:"0.875rem"},"data-testid":"find-nothing",children:["Nothing here is called \u201C",s?.words||z,"\u201D."]}):le.map(([r,d])=>(0,p.jsxs)("div",{role:"group","aria-label":fa(r,t.schema),children:[(0,p.jsxs)("div",{role:"presentation",style:Ua,children:[r!=="rule:"?(0,p.jsx)(Fa,{kind:r,accents:v?.accents}):null,fa(r,t.schema)]}),d.map(o=>(0,p.jsx)("div",{id:o.id,role:"option","aria-selected":o===I,"data-testid":"find-hit","data-about":o.hit.about,...o.hit.about==="node"&&o.hit.near?{"data-near":""}:{},onMouseEnter:()=>Z(o),onClick:()=>pe(o),style:{...xa,...o.hit.about==="act"?{paddingLeft:30}:{},background:o===I?"var(--graview-panel-muted)":"transparent"},children:(0,p.jsx)(Wa,{hit:o.hit,flag:y})},o.id))]},r)),E?(0,p.jsx)("div",{id:E.id,role:"option","aria-selected":E===I||I?.id===E.id,"data-testid":"find-ask",onMouseEnter:()=>Z(E),onClick:()=>pe(E),style:{...xa,borderTop:"1px solid var(--graview-edge)",marginTop:4,background:I?.id===E.id?"var(--graview-panel-muted)":"transparent"},children:(0,p.jsxs)("span",{children:["Ask: ",(0,p.jsxs)("span",{style:{fontWeight:600},children:["\u2018",E.ask,"\u2019"]})]})}):null,s&&s.searched.past===!1&&s.searched.kinds.some(r=>t.schema.tryDefinition(r)?.lifecycle)?(0,p.jsx)("p",{role:"presentation",style:{margin:0,padding:"6px 12px 8px",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"Current ones; add is:any for the past."}):null]})]})}function Wa({hit:e,flag:t}){switch(e.about){case"node":return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("span",{style:{fontWeight:600,overflowWrap:"anywhere"},children:[e.flagged?(0,p.jsxs)("span",{style:{color:"var(--graview-warn)"},children:[t," "]}):null,e.label,e.apart?(0,p.jsxs)("span",{style:Y,children:[" \xB7 ",e.apart]}):null,e.current?null:(0,p.jsx)("span",{style:Y,children:" \xB7 past"})]}),e.near?(0,p.jsxs)("span",{style:Y,"data-testid":"find-near",children:["Near \u201C",e.why.asked,"\u201D",e.why.field!=="label"?` \u2014 ${e.why.reading.toLowerCase()}: ${e.why.fragment}`:""]}):e.why.field!=="label"?(0,p.jsxs)("span",{style:Y,children:[e.why.reading.toLowerCase(),": ",e.why.fragment]}):null]});case"kind":return(0,p.jsxs)("span",{children:[e.label,(0,p.jsxs)("span",{style:Y,children:[" \xB7 ",e.count," match"]})]});case"place":return(0,p.jsxs)("span",{children:["Go to ",e.title]});case"rule":return(0,p.jsxs)("span",{children:["The rule \u201C",e.label,"\u201D"]});case"act":return(0,p.jsxs)("span",{style:e.destructive?{color:"var(--graview-warn)"}:void 0,children:[e.title,(0,p.jsxs)("span",{style:Y,children:[" \xB7 ",e.why.field==="title"?"act":`on ${e.why.fragment}`]})]})}}function Fa({kind:e,accents:t}){let n=Math.round(He(e,t));return(0,p.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:2,flex:"0 0 auto",background:`hsl(${n} 55% 52%)`}})}function fa(e,t){return e==="rule:"?"Rules":e==="act:"?"Acts":t.tryDefinition(e)?.plural??`${e}s`}function qa(e,t,n){let i=Object.entries(e).map(([v,c])=>Pe(n,v,c)),a=t.filter(v=>v.about==="kind"||v.about==="place"||v.about==="rule").length;a>0&&i.push(`${a} ${a===1?"place or rule":"places and rules"}`);let g=t.filter(v=>v.about==="node"&&v.near).length;return i.length===0?"Nothing found":`${i.join(", ")} found${g>0?`, ${g} of them near`:""}`}var ha={...Ue,width:"min(26rem, calc(100vw - 24px))",maxHeight:"min(60vh, 28rem)",overflowY:"auto",boxSizing:"border-box",background:"var(--graview-panel)",borderTop:"1px solid var(--graview-edge)",borderRight:"1px solid var(--graview-edge)",borderBottom:"1px solid var(--graview-edge)",borderLeft:"1px solid var(--graview-edge)",borderRadius:10,boxShadow:"0 10px 28px rgb(0 0 0 / 0.18)",padding:"4px 0"},Ga=6,_a={width:"var(--graview-bar-width, 100vw)",maxHeight:"55vh",borderRadius:0,borderLeft:"none",borderRight:"none"},Ua={display:"flex",alignItems:"center",gap:6,padding:"8px 12px 2px",fontSize:"0.6875rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},xa={display:"grid",gap:1,minHeight:32,padding:"5px 12px",alignContent:"center",cursor:"pointer",fontSize:"0.875rem",lineHeight:1.35,color:"var(--graview-ink)"},Y={color:"var(--graview-ink-muted)",fontSize:"0.8125rem",fontWeight:400};var se=l(P(),1),Ee=l(Ia(),1);var ka=l(u(),1);function ya(){let{following:e,follow:t}=h();return e?(0,ka.jsxs)("button",{type:"button","data-testid":"following-who",onClick:()=>t(null),title:"Press, or Escape, to stop following",style:{display:"inline-flex",alignItems:"center",gap:6,minHeight:24,padding:"2px 9px",borderRadius:999,border:"1px solid var(--graview-accent)",background:"transparent",color:"var(--graview-accent)",fontSize:"0.875rem",whiteSpace:"nowrap"},children:["following ",e.name]}):null}var Sa=l(P(),1);var k=l(u(),1);function $a({home:e,homeLabel:t,children:n,onPicture:i=!1}){let{view:a,focus:g,show:v,go:c}=K(),{store:m}=h(),{movedByHand:s}=h(),$=s&&(a.pan!==void 0||Object.keys(a.pins).length>0),y=a.focusId&&a.focusId!==e?m.graph.getNode(a.focusId):void 0,w=_=>re(m.schema,_),S={display:"inline-flex",alignItems:"center",gap:6,minHeight:26,padding:"2px 6px",fontSize:"0.8125rem",borderRadius:6,border:"1px solid transparent",boxShadow:"none",background:"transparent",color:"var(--graview-ink-muted)",whiteSpace:"nowrap"},N=t!==void 0&&y!==void 0,f=[];return y&&!i&&f.push({key:"focused",node:(0,k.jsxs)("button",{type:"button","data-testid":"focused",onClick:()=>c(ce({...a,focusId:e},!1)),title:we(m,y.id),style:{...S,maxWidth:"min(14rem, 15vw)"},children:[(0,k.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:we(m,y.id)}),(0,k.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),a.past&&f.push({key:"past",node:(0,k.jsxs)("button",{type:"button","data-testid":"past",onClick:()=>c(da(a,!1)),title:"Back to now \u2014 retired things leave the picture again",style:S,children:["the past",(0,k.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),a.zoom&&f.push({key:"zoomed",node:(0,k.jsxs)("button",{type:"button","data-testid":"zoomed",onClick:()=>c(ce(a,!1)),title:"Zoom back out",style:S,children:["zoomed in",(0,k.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),$&&f.push({key:"moved",node:(0,k.jsx)("button",{type:"button","data-testid":"moved",onClick:()=>c(ge(a)),title:"Put the camera and everything you dragged back where the layout wanted them",style:S,children:"Reset view"})}),a.relation&&f.push({key:"raised",node:(0,k.jsxs)("button",{type:"button","data-testid":"raised",onClick:()=>v(null),title:`Stop showing ${w(a.relation)}`,style:S,children:[w(a.relation),(0,k.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),i&&!N&&f.length===0&&n===void 0?null:(0,k.jsxs)("nav",{"aria-label":"View","data-testid":"trail",style:{display:"flex",alignItems:"center",gap:8,fontSize:"0.875rem",minWidth:0,...i?{pointerEvents:"auto",padding:"4px 6px",borderRadius:8,background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",overflow:"hidden"}:{}},children:[N?(0,k.jsx)("button",{type:"button",onClick:()=>g(e),style:{border:"none",background:"none",padding:"3px 0",minHeight:24,whiteSpace:"nowrap",color:"var(--graview-ink-muted)"},children:t}):null,f.map(({key:_,node:Q},F)=>(0,k.jsxs)(Sa.Fragment,{children:[N||F>0?(0,k.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:"\u203A"}):null,Q]},_)),n]})}var M=l(u(),1);function Te(){let[e,t]=(0,se.useState)([]),n=(0,se.useCallback)(i=>{t(a=>{let g=i.phase!=="running"&&a[0]?.name===i.name&&a[0]?.at===i.at;return[i,...g?a.slice(1):a].slice(0,12)})},[]);return[e,n]}function Ae({find:e,calls:t,seat:n,remembers:i=!1}){return e?(0,M.jsxs)(M.Fragment,{children:[(0,Ee.createPortal)((0,M.jsx)(ba,{compact:e.compact}),e.slot),e.own?(0,Ee.createPortal)((0,M.jsx)(Je,{calls:t,remembers:i,...n!==void 0?{seat:n}:{}}),e.own):null]}):null}function Me({home:e=null}){return(0,M.jsxs)("div",{"data-graview-scene-trail":"",style:{position:"absolute",top:14,left:14,maxWidth:"calc(100% - 150px - var(--graview-dock, 0px))",zIndex:L("overview"),display:"flex",alignItems:"center",gap:6,minWidth:0,pointerEvents:"none"},children:[(0,M.jsx)($a,{home:e,onPicture:!0}),(0,M.jsx)("span",{style:{pointerEvents:"auto"},children:(0,M.jsx)(ya,{})})]})}var W=l(P(),1);var za=l(u(),1),Ya=B(()=>import("./chunk.2IZFIORK.js"));function Ie(){let{store:e,principal:t}=h(),n=(0,W.useContext)(ea),i=(0,W.useRef)(null),a=(0,W.useRef)(!1);return(0,W.useEffect)(()=>()=>void(a.current=!0),[]),(0,W.useEffect)(()=>{let g=e.batches().length,v=Ya().then(c=>c.sceneWay(e,t,n,g,i.current),()=>{});return()=>void v.then(c=>c?.(a.current))},[e,t,n]),(0,za.jsx)("span",{ref:i,hidden:!0})}var Ca=l(P(),1);var b=l(u(),1);function gt({address:e=!1,auto:t,seat:n,scheme:i,scope:a}){let g=(0,Ca.useMemo)(()=>`${he({scope:`.${a}`})}
1076
- ${xe(i,{scope:`.${a}`})}`,[i,a]),v=Ze(),[c,m]=Te();return(0,b.jsx)(Ge.Provider,{value:!0,children:(0,b.jsxs)("div",{"data-embed-content":"",style:{position:"relative",flex:t?`0 0 ${ca}px`:"1 1 auto",minHeight:0,containerType:"size"},children:[(0,b.jsx)("style",{children:g}),e?(0,b.jsx)(ga,{}):null,(0,b.jsx)(pa,{renderer:"dom"}),(0,b.jsx)(Me,{}),(0,b.jsx)($e,{}),(0,b.jsx)(be,{}),(0,b.jsx)(fe,{}),(0,b.jsx)(me,{...n?{start:n}:{},onCall:m}),(0,b.jsx)(ye,{}),(0,b.jsx)(Se,{placement:"menu"}),(0,b.jsx)(Ae,{find:v,calls:c}),(0,b.jsx)(Ie,{})]})})}function ct(){return(0,b.jsx)(Ce,{})}export{gt as SceneFace,ct as SceneKeeping};
1126
+ }`}function Ce(e="dark",n={}){let s=Ka(e);return n.scope===void 0?s:Qe(s,n.scope)}var P=p(O(),1);var W=p(f(),1),Wa=pe(Q(()=>(__graviewPreload(import.meta.url,["./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.QYZNAUIR.js")))).part(e=>(0,W.jsx)(e.MapKey,{}),{quiet:!0});function Ae(){let{store:e}=S(),{view:n}=K(),s=le(),o=(0,P.useMemo)(()=>e.graph.allEdges().length>0,[e,s]),[r,g]=(0,P.useState)(!1),u=(0,P.useId)(),v=(0,P.useRef)(null),T=(0,P.useRef)(null);return(0,P.useEffect)(()=>{if(!r)return;let z=x=>{let I=x.target;I&&(T.current?.contains(I)||v.current?.contains(I))||g(!1)};return document.addEventListener("pointerdown",z,!0),()=>document.removeEventListener("pointerdown",z,!0)},[r]),o?(0,W.jsxs)("div",{style:{display:"contents"},onKeyDown:z=>{z.key!=="Escape"||!r||(z.preventDefault(),z.stopPropagation(),g(!1),v.current?.focus({preventScroll:!0}))},children:[(0,W.jsx)("button",{ref:v,type:"button","data-testid":"lines-key","aria-expanded":r,"aria-controls":u,title:"What the lines mean",onClick:()=>g(z=>!z),style:{position:"absolute",top:60,right:"calc(14px + var(--graview-dock, 0px))",zIndex:D("overview"),height:30,padding:"0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.8125rem",color:r?"var(--graview-accent)":"var(--graview-ink-muted)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)"},children:"Key"}),r?(0,W.jsxs)("div",{ref:T,id:u,"data-testid":"lines-key-pane","data-graview-offstage":"",style:{position:"absolute",top:98,right:"calc(14px + var(--graview-dock, 0px))",zIndex:D("rail"),width:ka,maxHeight:"calc(100cqh - 120px)",overflowY:"auto",boxSizing:"border-box",padding:"8px 8px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[n.overview?(0,W.jsx)(Wa,{}):null,(0,W.jsx)(ya,{inside:!0,widthOf:fa})]}):null]}):null}var $a=p(O(),1),ge=p(f(),1);function za(e){return e.lens!==null?{what:"lens",kind:e.lens}:e.records.length===1&&e.districts.length===0?{what:"record",id:e.records[0]}:e.districts.length===1&&e.records.length===0?{what:"district",kind:e.districts[0]}:null}var qa=pe(Q(()=>(__graviewPreload(import.meta.url,["./chunk.BNV77BQZ.js","./chunk.RIJUCHP4.js","./chunk.YIR7PPF3.js","./chunk.3HXN4BOY.js","./chunk.GYICGZMG.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.3K6YSVHC.js","./chunk.SHTJZ6UX.js","./chunk.UT6642FC.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.XNJEFUF7.js")))),Fa=qa.part((e,n)=>(0,ge.jsx)(e.MapPanelFor,{showing:n.showing}),{what:"This panel",quiet:!0});function Me(){let{store:e,view:n,selection:s,hiddenKinds:o}=S();if(le(),!n.overview)return null;let r=za(ma(s,{...n,beside:!0},g=>e.graph.getNode(g)?.kind));return!r||r.what!=="record"&&(o.has(r.kind)||!e.schema.kinds.includes(r.kind))?null:(0,ge.jsx)($a.Suspense,{fallback:null,children:(0,ge.jsx)(Fa,{showing:r})})}var Ga=p(O(),1);var B=p(f(),1);function Te(){let{view:e,go:n}=K(),{store:s,views:o,hiddenKinds:r}=S(),g=e.overview??!1,u=o.places().map($=>$.kind).filter($=>!r.has($)),v=la(e,s.schema.kinds,u),T=()=>{n(ne(j(e,!1),v))},z=(()=>{if(!v)return null;let $=_e(v)[0],y=e.within?.view,C=(y?o.places().find(R=>R.as===y):void 0)??($?o.places().filter(R=>R.kind===$).at(-1):void 0);return C?C.title:$?ie(s.schema,$):s.graph.getNode(v)?.label??null})(),x=g?"Close the map":"Up",I=g&&z?`Close the map, down to ${z}`:x;return(0,B.jsxs)("button",{type:"button","data-testid":"overview",className:"graview-altitude-control","aria-pressed":g,"aria-label":I,title:g?I:"Up \u2014 the whole thing, from above",onClick:()=>g?T():n(j(e,!0)),style:{position:"absolute",top:14,right:"calc(14px + var(--graview-dock, 0px))",zIndex:D("overview"),display:"inline-flex",alignItems:"center",justifyContent:"center",gap:7,height:38,padding:"0 13px 0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.875rem",whiteSpace:"nowrap",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)","--graview-altitude":g?1:0,...g?{color:"var(--graview-accent)"}:{}},children:[(0,B.jsxs)("svg",{className:"graview-altitude-mark",width:"16",height:"16",viewBox:"0 0 12 12","aria-hidden":"true",children:[(0,B.jsx)("ellipse",{className:"graview-altitude-mark-ring",cx:"6",cy:"6.6",rx:"5",ry:"2.6",fill:"none",stroke:"currentColor",strokeWidth:"0.9"}),(0,B.jsx)("circle",{className:"graview-altitude-mark-apex",cx:"6",cy:"4",r:"1.5",fill:"currentColor"}),(0,B.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"left",cx:"1.6",cy:"7.4",r:"1.2",fill:"currentColor"}),(0,B.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"right",cx:"10.4",cy:"7.4",r:"1.2",fill:"currentColor"})]}),(0,B.jsx)("span",{className:"graview-altitude-label",children:x})]})}var Ie=p(f(),1);function Re(){let{administered:e}=S(),{view:n,go:s}=K(),o=e.filter(r=>r.canShow);return o.length===0?null:(0,Ie.jsx)("div",{role:"group","aria-label":"Administered","data-testid":"administered",style:{display:"flex",gap:6},children:o.map(r=>(0,Ie.jsx)("button",{type:"button","aria-pressed":r.shown,"data-testid":`show-${r.name}`,title:r.shown?`Hide the ${r.name}'s own districts again`:r.description??`Show the ${r.name}'s own districts beside the domain`,onClick:()=>s(va(n,r.name,!r.shown)),style:{padding:"3px 11px",borderRadius:999,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:r.shown?"var(--graview-accent)":"var(--graview-edge)",color:r.shown?"var(--graview-accent)":"var(--graview-ink-muted)",background:r.shown?"var(--graview-panel)":"transparent"},children:r.shown?`Hide the ${r.name}`:`Show the ${r.name}`},r.name))})}var h=p(O(),1);var l=p(f(),1);je({search:ga,touchWeights:pa});var _a=e=>e.about==="rule"?"rule:":e.about==="act"?"act:":e.kind;function Ma({compact:e=!1}){let{store:n,view:s,setView:o,principal:r,setMenuAt:g,brand:u,aiDesk:v,selection:T}=S(),z=aa(v),x=Ye(),I=Xe(),$=na().marks.flag,y=(0,h.useRef)(null),C=(0,h.useId)(),[R,m]=(0,h.useState)(!1),[F,ee]=(0,h.useState)(null),[X,ae]=(0,h.useState)(null),A=s.q??"";(0,h.useEffect)(()=>{let a=t=>{if(t.defaultPrevented)return;let i=t.key.toLowerCase()==="k"&&(t.metaKey||t.ctrlKey)&&!t.altKey&&!t.shiftKey,c=t.key==="/"&&!t.metaKey&&!t.ctrlKey&&!t.altKey;if(!i&&!c)return;let d=y.current;if(!d)return;let _=d.closest("[data-graview-embed]"),L=t.target,J=L===document.body||L===document.documentElement||L===window;if(_&&!(i&&J||L instanceof Node&&_.contains(L)))return;let U=document.activeElement,Ba=U instanceof HTMLInputElement||U instanceof HTMLTextAreaElement||U instanceof HTMLSelectElement||U instanceof HTMLElement&&U.isContentEditable;c&&Ba||(t.preventDefault(),d.getClientRects().length===0&&d.closest("[data-graview-app-bar]")?.querySelector('[data-testid="app-find-open"]')?.click(),d.focus({preventScroll:!0}),d.select(),m(!0))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]);let Be=(0,h.useMemo)(()=>X&&A.trim()?ca(n,X,x?.words??A,{principal:r,limit:4}):[],[n,A,x,X,r]),ce=(0,h.useMemo)(()=>{let a=new Map;for(let[t,i]of(x?.hits??[]).entries()){if(i.about==="act")continue;let c=_a(i),d=a.get(c)??[];if(d.push({id:`${C}-${t}`,hit:i}),a.set(c,d),i.about==="node"&&i.id===X)for(let[_,L]of Be.entries())d.push({id:`${C}-${t}-act-${_}`,hit:L})}return[...a.entries()]},[x,Be,X,C]),N=z&&A.trim()?{id:`${C}-ask`,ask:A.trim()}:null,k=(0,h.useMemo)(()=>[...ce.flatMap(([,a])=>a),...N?[N]:[]],[ce,N?.ask]),M=k.find(a=>a.id===F)??k[0],Oe=(x?.hits??[]).filter(a=>a.about==="node").length;(0,h.useEffect)(()=>{ee(null),ae(null)},[A]);let re=(0,h.useRef)(null);(0,h.useEffect)(()=>{let a=re.current;if(!a)return;re.current=null;let t=0,i=()=>{let c=document.querySelector(`[data-graview-view="aggregate:${CSS.escape(a)}"]`),d=document.activeElement;if(!(!d||d===document.body||d===document.documentElement||d===y.current||d===c))return;let L=c?.querySelector('[role="group"][aria-label="Arrange"] :is(button, input)');if(L)return L.focus({preventScroll:!0});c&&c.tabIndex>=0&&d!==c&&t>30&&c.focus({preventScroll:!0}),++t<240&&requestAnimationFrame(i)};requestAnimationFrame(i)},[s]);let G=a=>{if(a){if(ee(a.id),"ask"in a){ae(null);return}a.hit.about==="node"?ae(a.hit.id):a.hit.about!=="act"&&ae(null)}},Ke=a=>{let t=document.getElementById(C),i=t?.querySelector('[role="option"]')?.getBoundingClientRect().height??0,c=t?.clientHeight??0;return Math.min(a,i>0&&c>0?Math.max(1,Math.floor(c/i)-1):Ya)};(0,h.useEffect)(()=>{F&&document.getElementById(F)?.scrollIntoView?.({block:"nearest"})},[F]);let ve=a=>{if(!a)return;if("ask"in a){ea(v,{pointed:{...T[0]!==void 0?{on:T[0]}:{},about:T},asked:a.ask}),o(i=>be(i)),m(!1);return}let t=a.hit;switch(t.about){case"node":o(i=>oe(ne(j(i,!1),t.id),[t.id]));break;case"kind":o(i=>se(j(i,!1),de(t.kind),{ownPicture:!0})),re.current=t.kind;break;case"place":o(i=>Ue(i,t.kind,t.as)),re.current=t.kind;break;case"rule":{let i=I.filter(c=>c.invariant===t.name).flatMap(c=>c.nodeIds);o(c=>oe(c,[...new Set(i)]));break}case"act":{o(c=>oe(c,[t.subject]));let i=y.current?.getBoundingClientRect();g({x:i?.left??0,y:(i?.bottom??0)+6,on:t.subject});break}}m(!1),y.current?.blur()},Pa=x?ja(x.byKind,x.hits,n.schema):"",te=R&&A.trim().length>0,Da=(0,h.useCallback)(()=>{let a=y.current?.closest("[data-graview-app-bar]")?.getBoundingClientRect();if(a)return{x:a.right,y:a.bottom-Xa};let t=y.current?.getBoundingClientRect();return t?{x:t.right,y:t.bottom}:null},[]),We=Ze("find",{open:te,onOpenChange:a=>{a||m(!1)},...e?{at:Da}:{}});return(0,l.jsxs)("div",{style:{position:"relative",minWidth:0,flex:"1 1 auto"},"data-testid":"find",children:[(0,l.jsx)("input",{ref:a=>{y.current=a,We.trigger.ref(a)},"data-graview-popover-trigger":"find",type:"search",role:"combobox","aria-label":"Find anything","aria-expanded":te,"aria-controls":C,"aria-autocomplete":"list",...te&&M?{"aria-activedescendant":M.id}:{},"data-testid":"find-box",placeholder:"Find\u2026","aria-keyshortcuts":"/ Meta+K Control+K",value:A,onChange:a=>{let t=a.target.value;m(!0),o(i=>wa(i,t.length>0?t:null))},onFocus:()=>m(!0),onBlur:()=>m(!1),onKeyDown:a=>{let t=F!==null&&M?k.indexOf(M):-1,i=d=>d!==void 0&&!("ask"in d)&&d.hit.about==="act",c=t>=0&&M!==void 0&&!("ask"in M)&&M.hit.about==="node";if(a.key==="ArrowDown"){a.preventDefault(),m(!0);let d=t+1;if(c)for(;d<k.length-1&&i(k[d]);)d+=1;G(k[Math.min(k.length-1,d)])}else if(a.key==="ArrowUp")a.preventDefault(),G(k[Math.max(0,t-1)]);else if((a.key==="PageDown"||a.key==="PageUp")&&k.length>0){a.preventDefault(),m(!0);let d=k.flatMap((J,U)=>i(J)?[]:[U]),_=Math.max(0,d.findIndex(J=>J>=Math.max(t,0))),L=a.key==="PageDown"?Ke(k.length):-Ke(k.length);G(k[d[Math.min(d.length-1,Math.max(0,(t<0?-1:_)+L))]])}else if(a.key==="ArrowRight"&&c&&i(k[t+1]))a.preventDefault(),G(k[t+1]);else if(a.key==="ArrowLeft"&&i(M)){a.preventDefault();let d=t-1;for(;d>0&&i(k[d]);)d-=1;G(k[d])}else a.key==="Enter"?(a.preventDefault(),ve(M)):a.key==="Escape"&&(a.preventDefault(),A?o(d=>be(d)):y.current?.blur())},style:{width:"100%",boxSizing:"border-box",minWidth:0,height:30,padding:"0 var(--graview-bar-find-end, 10px) 0 10px",font:"inherit",fontSize:"0.875rem",color:"var(--graview-ink)",background:"var(--graview-panel)",border:`1px solid ${A?"var(--graview-accent)":"var(--graview-edge)"}`,borderRadius:8}}),(0,l.jsx)("span",{role:"status","aria-live":"polite",style:ra,"data-testid":"find-count",children:A.trim()?Pa:""}),(0,l.jsxs)("div",{...We.pane,id:C,role:"listbox","aria-label":A?`What \u201C${A}\u201D finds`:"What the words find","data-testid":"find-strip",hidden:!te,onMouseDown:a=>a.preventDefault(),style:e?{...Ca,...Ja}:Ca,children:[k.every(a=>"ask"in a)?(0,l.jsxs)("p",{role:"presentation",style:{margin:0,padding:"10px 12px",color:"var(--graview-ink-muted)",fontSize:"0.875rem"},"data-testid":"find-nothing",children:["Nothing here is called \u201C",x?.words||A,"\u201D."]}):ce.map(([a,t])=>(0,l.jsxs)("div",{role:"group","aria-label":Ea(a,n.schema),children:[(0,l.jsxs)("div",{role:"presentation",style:Za,children:[a!=="rule:"?(0,l.jsx)(Qa,{kind:a,accents:u?.accents}):null,Ea(a,n.schema)]}),t.map(i=>(0,l.jsx)("div",{id:i.id,role:"option","aria-selected":i===M,"data-testid":"find-hit","data-about":i.hit.about,...i.hit.about==="node"&&i.hit.near?{"data-near":""}:{},onMouseEnter:()=>G(i),onClick:()=>ve(i),style:{...Aa,...i.hit.about==="act"?{paddingLeft:30}:{},background:i===M?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsx)(Ua,{hit:i.hit,flag:$})},i.id))]},a)),N?(0,l.jsx)("div",{id:N.id,role:"option","aria-selected":N===M||M?.id===N.id,"data-testid":"find-ask",onMouseEnter:()=>G(N),onClick:()=>ve(N),style:{...Aa,borderTop:"1px solid var(--graview-edge)",marginTop:4,background:M?.id===N.id?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsxs)("span",{children:["Ask: ",(0,l.jsxs)("span",{style:{fontWeight:600},children:["\u2018",N.ask,"\u2019"]})]})}):null,Oe>Va?(0,l.jsxs)("p",{role:"presentation",style:{margin:0,padding:"6px 12px 2px",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},"data-testid":"find-more-words",children:[qe(Oe)," found: another word of the name narrows them."]}):null,x&&x.searched.past===!1&&x.searched.kinds.some(a=>n.schema.tryDefinition(a)?.lifecycle)?(0,l.jsx)("p",{role:"presentation",style:{margin:0,padding:"6px 12px 8px",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"Current ones; add is:any for the past."}):null]})]})}function Ua({hit:e,flag:n}){switch(e.about){case"node":return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("span",{style:{fontWeight:600,overflowWrap:"anywhere"},children:[e.flagged?(0,l.jsxs)("span",{style:{color:"var(--graview-warn)"},children:[n," "]}):null,e.label,e.apart?(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.apart]}):null,e.current?null:(0,l.jsx)("span",{style:Y,children:" \xB7 past"})]}),e.near?(0,l.jsxs)("span",{style:Y,"data-testid":"find-near",children:["Near \u201C",e.why.asked,"\u201D",e.why.field!=="label"?` \u2014 ${e.why.reading.toLowerCase()}: ${e.why.fragment}`:""]}):e.why.field!=="label"?(0,l.jsxs)("span",{style:Y,children:[e.why.reading.toLowerCase(),": ",e.why.fragment]}):null]});case"kind":return(0,l.jsxs)("span",{children:[e.label,(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.count," match"]})]});case"place":return(0,l.jsxs)("span",{children:["Go to ",e.title]});case"rule":return(0,l.jsxs)("span",{children:["The rule \u201C",e.label,"\u201D"]});case"act":return(0,l.jsxs)("span",{style:e.destructive?{color:"var(--graview-warn)"}:void 0,children:[e.title,(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.why.field==="title"?"act":`on ${e.why.fragment}`]})]})}}function Qa({kind:e,accents:n}){let s=Math.round(Ge(e,n));return(0,l.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:2,flex:"0 0 auto",background:`hsl(${s} 55% 52%)`}})}function Ea(e,n){return e==="rule:"?"Rules":e==="act:"?"Acts":n.tryDefinition(e)?.plural??`${e}s`}function ja(e,n,s){let o=Object.entries(e).map(([u,v])=>Fe(s,u,v)),r=n.filter(u=>u.about==="kind"||u.about==="place"||u.about==="rule").length;r>0&&o.push(`${r} ${r===1?"place or rule":"places and rules"}`);let g=n.filter(u=>u.about==="node"&&u.near).length;return o.length===0?"Nothing found":`${o.join(", ")} found${g>0?`, ${g} of them near`:""}`}var Ya=10,Va=12,Ca={...Je,width:"min(26rem, calc(100vw - 24px))",maxHeight:"min(60vh, 28rem)",overflowY:"auto",boxSizing:"border-box",background:"var(--graview-panel)",borderTop:"1px solid var(--graview-edge)",borderRight:"1px solid var(--graview-edge)",borderBottom:"1px solid var(--graview-edge)",borderLeft:"1px solid var(--graview-edge)",borderRadius:10,boxShadow:"0 10px 28px rgb(0 0 0 / 0.18)",padding:"4px 0"},Xa=6,Ja={width:"var(--graview-bar-width, 100vw)",maxHeight:"55vh",borderRadius:0,borderLeft:"none",borderRight:"none"},Za={display:"flex",alignItems:"center",gap:6,padding:"8px 12px 2px",fontSize:"0.6875rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},Aa={display:"grid",gap:1,minHeight:32,padding:"5px 12px",alignContent:"center",cursor:"pointer",fontSize:"0.875rem",lineHeight:1.35,color:"var(--graview-ink)"},Y={color:"var(--graview-ink-muted)",fontSize:"0.8125rem",fontWeight:400};var V=p(O(),1);var Le=p(Oa(),1);var Ia=p(f(),1);function Ta(){let{following:e,follow:n}=S();return e?(0,Ia.jsxs)("button",{type:"button","data-testid":"following-who",onClick:()=>n(null),title:"Press, or Escape, to stop following",style:{display:"inline-flex",alignItems:"center",gap:6,minHeight:24,padding:"2px 9px",borderRadius:999,border:"1px solid var(--graview-accent)",background:"transparent",color:"var(--graview-accent)",fontSize:"0.875rem",whiteSpace:"nowrap"},children:["following ",e.name]}):null}var Ra=p(O(),1);var b=p(f(),1);function La({home:e,homeLabel:n,children:s,onPicture:o=!1}){let{view:r,focus:g,show:u,go:v}=K(),{store:T}=S(),{movedByHand:z}=S(),x=z&&(r.pan!==void 0||Object.keys(r.pins).length>0),I=r.focusId&&r.focusId!==e?T.graph.getNode(r.focusId):void 0,$=m=>ie(T.schema,m),y={display:"inline-flex",alignItems:"center",gap:6,minHeight:26,padding:"2px 6px",fontSize:"0.8125rem",borderRadius:6,border:"1px solid transparent",boxShadow:"none",background:"transparent",color:"var(--graview-ink-muted)",whiteSpace:"nowrap"},C=n!==void 0&&I!==void 0,R=[];if(I&&!o&&R.push({key:"focused",node:(0,b.jsxs)("button",{type:"button","data-testid":"focused",onClick:()=>v(ue({...r,focusId:e},!1)),title:fe(T,I.id),style:{...y,maxWidth:"min(14rem, 15vw)"},children:[(0,b.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:fe(T,I.id)}),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.past&&R.push({key:"past",node:(0,b.jsxs)("button",{type:"button","data-testid":"past",onClick:()=>v(ua(r,!1)),title:"Back to now \u2014 retired things leave the picture again",style:y,children:["the past",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.zoom&&R.push({key:"zoomed",node:(0,b.jsxs)("button",{type:"button","data-testid":"zoomed",onClick:()=>v(ue(r,!1)),title:"Zoom back out",style:y,children:["zoomed in",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),x&&R.push({key:"moved",node:(0,b.jsx)("button",{type:"button","data-testid":"moved",onClick:()=>v(we(r)),title:"Put the camera and everything you dragged back where the layout wanted them",style:y,children:"Reset view"})}),r.relation){let m=r.relation;R.push({key:"raised",node:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center"},children:[(0,b.jsxs)("button",{type:"button","data-testid":"raised-into",onClick:()=>v(se(r,de(m),{ownPicture:!0})),title:`Go into the ${$(m).toLowerCase()}`,"aria-label":`Go into the ${$(m).toLowerCase()}`,style:{...y,color:"var(--graview-ink)"},children:[$(m),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\u2198"})]}),(0,b.jsx)("button",{type:"button","data-testid":"raised",onClick:()=>u(null),title:`Stop showing ${$(m).toLowerCase()}`,"aria-label":`Stop showing ${$(m).toLowerCase()}`,style:{...y,minWidth:26,justifyContent:"center"},children:(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})})]})})}return o&&!C&&R.length===0&&s===void 0?null:(0,b.jsxs)("nav",{"aria-label":"View","data-testid":"trail",style:{display:"flex",alignItems:"center",gap:8,fontSize:"0.875rem",minWidth:0,...o?{pointerEvents:"auto",padding:"4px 6px",borderRadius:8,background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",overflow:"hidden"}:{}},children:[C?(0,b.jsx)("button",{type:"button",onClick:()=>g(e),style:{border:"none",background:"none",padding:"3px 0",minHeight:24,whiteSpace:"nowrap",color:"var(--graview-ink-muted)"},children:n}):null,R.map(({key:m,node:F},ee)=>(0,b.jsxs)(Ra.Fragment,{children:[C||ee>0?(0,b.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:"\u203A"}):null,F]},m)),s]})}var E=p(f(),1);function Ne(){let[e,n]=(0,V.useState)([]),s=(0,V.useCallback)(o=>{n(r=>{let g=o.phase!=="running"&&r[0]?.name===o.name&&r[0]?.at===o.at;return[o,...g?r.slice(1):r].slice(0,12)})},[]);return[e,s]}function He({find:e,calls:n,seat:s,remembers:o=!1}){return e?(0,E.jsxs)(E.Fragment,{children:[(0,Le.createPortal)((0,E.jsx)(Ma,{compact:e.compact}),e.slot),e.own?(0,Le.createPortal)((0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(V.Suspense,{fallback:null,children:(0,E.jsx)(Sa,{})}),(0,E.jsx)(oa,{calls:n,remembers:o,...s!==void 0?{seat:s}:{}})]}),e.own):null]}):null}function Pe({home:e=null}){return(0,E.jsxs)("div",{"data-graview-scene-trail":"",style:{position:"absolute",top:14,left:14,maxWidth:"calc(100% - 150px - var(--graview-dock, 0px))",zIndex:D("overview"),display:"flex",alignItems:"center",gap:6,minWidth:0,pointerEvents:"none"},children:[(0,E.jsx)(La,{home:e,onPicture:!0}),(0,E.jsx)("span",{style:{pointerEvents:"auto"},children:(0,E.jsx)(Ta,{})})]})}var q=p(O(),1);var Na=p(f(),1),er=Q(()=>(__graviewPreload(import.meta.url,["./chunk.UGFDSE37.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.VG3O4LWB.js")));function De(){let{store:e,principal:n}=S(),s=(0,q.useContext)(sa),o=(0,q.useRef)(null),r=(0,q.useRef)(!1);return(0,q.useEffect)(()=>()=>void(r.current=!0),[]),(0,q.useEffect)(()=>{let g=e.batches().length,u=er().then(v=>v.sceneWay(e,n,s,g,o.current),()=>{});return()=>void u.then(v=>v?.(r.current))},[e,n,s]),(0,Na.jsx)("span",{ref:o,hidden:!0})}var Ha=p(O(),1);var w=p(f(),1);function At({address:e=!1,auto:n,quickAsk:s=!0,scheme:o,scope:r}){let g=(0,Ha.useMemo)(()=>`${Ee({scope:`.${r}`})}
1127
+ ${Ce(o,{scope:`.${r}`})}`,[o,r]),u=da(),[v]=Ne();return(0,w.jsx)(Ve.Provider,{value:!0,children:(0,w.jsxs)("div",{"data-embed-content":"",style:{position:"relative",flex:n?`0 0 ${ba}px`:"1 1 auto",minHeight:0,containerType:"size"},children:[(0,w.jsx)("style",{children:g}),e?(0,w.jsx)(xa,{}):null,(0,w.jsx)(ha,{}),(0,w.jsx)(Pe,{}),(0,w.jsx)(Te,{}),(0,w.jsx)(Ae,{}),(0,w.jsx)(ke,{}),(0,w.jsx)(Se,{face:"scene",on:s}),(0,w.jsx)(Me,{}),(0,w.jsx)(he,{children:(0,w.jsx)($e,{children:(0,w.jsx)(ye,{placement:"menu"})})}),(0,w.jsx)(xe,{}),(0,w.jsx)(ze,{}),(0,w.jsx)(He,{find:u,calls:v}),(0,w.jsx)(De,{}),(0,w.jsx)(me,{face:"scene"})]})})}function Mt(){return(0,w.jsx)(Re,{})}export{At as SceneFace,Mt as SceneKeeping};