graview 0.1.30 → 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 (174) hide show
  1. package/dist/preview/chunk.2NIOHEMX.js +1 -0
  2. package/dist/preview/{chunk.XRJBLH4N.js → chunk.3AGY4QVS.js} +1 -1
  3. package/dist/preview/chunk.3HXN4BOY.js +1 -0
  4. package/dist/preview/{chunk.2CIBWZJG.js → chunk.3K6YSVHC.js} +1 -1
  5. package/dist/preview/{chunk.FWCOJDOD.js → chunk.3TVXGJTU.js} +1 -1
  6. package/dist/preview/{chunk.NDADLJE6.js → chunk.3TY5NFLY.js} +1 -1
  7. package/dist/preview/{chunk.UWGWXFWZ.js → chunk.47STJVRV.js} +1 -1
  8. package/dist/preview/{chunk.34ZMMURV.js → chunk.4HRAQNJO.js} +6 -6
  9. package/dist/preview/{chunk.QTMWHE5O.js → chunk.4HZ7QTXZ.js} +1 -1
  10. package/dist/preview/{chunk.3JGGBLRB.js → chunk.4MERAWS2.js} +1 -1
  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.XS7YFNDU.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.PAVR5TK5.js → chunk.6UGEYZAC.js} +1 -1
  20. package/dist/preview/chunk.6YCBYL2Y.js +2 -0
  21. package/dist/preview/{chunk.ZYKAS4BT.js → chunk.7GKUVQVF.js} +1 -1
  22. package/dist/preview/{chunk.T3VPD7JQ.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.D3IECJ2S.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.YLQB3KBA.js → chunk.CDP2XL66.js} +1 -1
  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.6XMEU2Q2.js → chunk.COQKECUH.js} +1 -1
  36. package/dist/preview/{chunk.QTA4ROAK.js → chunk.CWHRDBOF.js} +1 -1
  37. package/dist/preview/chunk.CX3KL2C5.js +1 -0
  38. package/dist/preview/{chunk.AK3IHFCF.js → chunk.D75KC3LL.js} +1 -1
  39. package/dist/preview/chunk.DAZ2VSRD.js +1 -0
  40. package/dist/preview/{chunk.RIEHYQLK.js → chunk.DHIUSUCL.js} +50 -24
  41. package/dist/preview/{chunk.3ADPAGPY.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.EF3XNU4O.js +1 -0
  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.3URFMWXZ.js → chunk.F6ZK7RMB.js} +2 -2
  51. package/dist/preview/chunk.FSTCX2AI.js +1 -0
  52. package/dist/preview/{chunk.HHPGWJDO.js → chunk.FWTIUYXH.js} +1 -1
  53. package/dist/preview/{chunk.6T2Q6NLO.js → chunk.G5NZVPJU.js} +1 -1
  54. package/dist/preview/{chunk.VG56IUIQ.js → chunk.GO4XBWJO.js} +1 -1
  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.26CZTUY4.js → chunk.HAIG6NVX.js} +1 -1
  60. package/dist/preview/{chunk.V7BDAGDE.js → chunk.HLTRQU4Y.js} +1 -1
  61. package/dist/preview/{chunk.VS7K3SCD.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.X37L5TN5.js → chunk.JFAOHHJJ.js} +1 -1
  66. package/dist/preview/chunk.JOOQUWLT.js +341 -0
  67. package/dist/preview/{chunk.4SJUTBDV.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.DT7LHWU2.js → chunk.LLLZEGRK.js} +1 -1
  72. package/dist/preview/chunk.LR3VDXPI.js +1 -0
  73. package/dist/preview/{chunk.WYTIOLPP.js → chunk.LXBOVRFI.js} +1 -1
  74. package/dist/preview/{chunk.42YX6NOY.js → chunk.MAF7C3VM.js} +1 -1
  75. package/dist/preview/chunk.MNP4JI33.js +5 -0
  76. package/dist/preview/{chunk.O2LK2AO7.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.DZRTOURR.js → chunk.OC6IWRQ3.js} +1 -1
  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.JN7DIFR3.js → chunk.PIP6Z563.js} +1 -1
  88. package/dist/preview/chunk.QGTSHKJL.js +1 -0
  89. package/dist/preview/chunk.QVVJRSRM.js +1 -0
  90. package/dist/preview/{chunk.L6OMEYL6.js → chunk.QYZNAUIR.js} +1 -1
  91. package/dist/preview/chunk.R6K6GF5R.js +1 -0
  92. package/dist/preview/{chunk.JTNWD2CN.js → chunk.RCKTBOY2.js} +1 -1
  93. package/dist/preview/{chunk.QNGWEV47.js → chunk.RIJUCHP4.js} +1 -1
  94. package/dist/preview/chunk.SHTJZ6UX.js +1 -0
  95. package/dist/preview/{chunk.PKK6FRZR.js → chunk.SYAEBGDC.js} +1 -1
  96. package/dist/preview/chunk.T5VG5A6V.js +1 -0
  97. package/dist/preview/{chunk.ERXSYPYL.js → chunk.TAQ764IQ.js} +1 -1
  98. package/dist/preview/chunk.TCNBCTWO.js +1 -0
  99. package/dist/preview/{chunk.HHI65WFZ.js → chunk.UATVTXZY.js} +1 -1
  100. package/dist/preview/{chunk.XSTXV6FP.js → chunk.UBFNZMUX.js} +2 -2
  101. package/dist/preview/{chunk.WAFDCOOG.js → chunk.UGFJKSHU.js} +1 -1
  102. package/dist/preview/chunk.UHUGOTUU.js +19 -0
  103. package/dist/preview/chunk.ULRW47RP.js +1 -0
  104. package/dist/preview/chunk.UNL2HIF2.js +1 -0
  105. package/dist/preview/chunk.UZGRRDHD.js +1 -0
  106. package/dist/preview/{chunk.BPWNWE7N.js → chunk.VG3O4LWB.js} +1 -1
  107. package/dist/preview/chunk.WAZ7OGBD.js +1 -0
  108. package/dist/preview/{chunk.3JNMSOFG.js → chunk.XANVHJQ4.js} +1 -1
  109. package/dist/preview/chunk.XKABS745.js +1 -0
  110. package/dist/preview/chunk.XMC7YDWT.js +1 -0
  111. package/dist/preview/chunk.XNJEFUF7.js +3 -0
  112. package/dist/preview/chunk.Y6ZNFQK3.js +6 -0
  113. package/dist/preview/{chunk.J2ITFGN3.js → chunk.YIR7PPF3.js} +1 -1
  114. package/dist/preview/index.html +51 -0
  115. package/dist/preview/page.js +6 -6
  116. package/package.json +6 -6
  117. package/dist/preview/chunk.2EXGG6BB.js +0 -1
  118. package/dist/preview/chunk.2NBYNZRD.js +0 -1
  119. package/dist/preview/chunk.2XAONC66.js +0 -1
  120. package/dist/preview/chunk.3R4W2P5X.js +0 -1
  121. package/dist/preview/chunk.3SKKIHU3.js +0 -4
  122. package/dist/preview/chunk.3VL5WECB.js +0 -1
  123. package/dist/preview/chunk.4ALKPNXM.js +0 -1
  124. package/dist/preview/chunk.4HP7UWA2.js +0 -1
  125. package/dist/preview/chunk.5U5J3ISK.js +0 -1
  126. package/dist/preview/chunk.6V2RG5JG.js +0 -5
  127. package/dist/preview/chunk.7BWT5L2L.js +0 -1
  128. package/dist/preview/chunk.C5CYZNSJ.js +0 -1
  129. package/dist/preview/chunk.CM6LOIQE.js +0 -88
  130. package/dist/preview/chunk.FDELO7NY.js +0 -116
  131. package/dist/preview/chunk.FGVKJWNS.js +0 -6
  132. package/dist/preview/chunk.GFF2FB2J.js +0 -25
  133. package/dist/preview/chunk.GLBHQFJ2.js +0 -1
  134. package/dist/preview/chunk.HSCTWAUV.js +0 -1
  135. package/dist/preview/chunk.INZUEWC5.js +0 -1
  136. package/dist/preview/chunk.JH6MU6TX.js +0 -2
  137. package/dist/preview/chunk.JISMMIMX.js +0 -1
  138. package/dist/preview/chunk.JPHNKWTY.js +0 -1
  139. package/dist/preview/chunk.K75FUIZI.js +0 -1
  140. package/dist/preview/chunk.K776HO42.js +0 -2
  141. package/dist/preview/chunk.KN3ULTGF.js +0 -1
  142. package/dist/preview/chunk.KOB6N3SL.js +0 -1
  143. package/dist/preview/chunk.KQT7WAQE.js +0 -1
  144. package/dist/preview/chunk.L4DECHXR.js +0 -327
  145. package/dist/preview/chunk.LQ7V6KEE.js +0 -1
  146. package/dist/preview/chunk.MD74YVRN.js +0 -3
  147. package/dist/preview/chunk.MGNP4LAM.js +0 -1
  148. package/dist/preview/chunk.NCTOBUCT.js +0 -1
  149. package/dist/preview/chunk.NO52VON3.js +0 -1
  150. package/dist/preview/chunk.OAF7TUMI.js +0 -1
  151. package/dist/preview/chunk.OQ4KFN6W.js +0 -1
  152. package/dist/preview/chunk.OQDETV4X.js +0 -1
  153. package/dist/preview/chunk.OXQMNIRO.js +0 -1
  154. package/dist/preview/chunk.OZNW5W4Z.js +0 -1
  155. package/dist/preview/chunk.QIAKO27D.js +0 -1
  156. package/dist/preview/chunk.R26DREVU.js +0 -1
  157. package/dist/preview/chunk.RI3PYG5T.js +0 -19
  158. package/dist/preview/chunk.RRVIXV7W.js +0 -1
  159. package/dist/preview/chunk.RYT5U3QM.js +0 -1
  160. package/dist/preview/chunk.SE5SKFQH.js +0 -1
  161. package/dist/preview/chunk.SOBC3CTN.js +0 -47
  162. package/dist/preview/chunk.SOD3PBJM.js +0 -1
  163. package/dist/preview/chunk.UDSEJKCY.js +0 -1
  164. package/dist/preview/chunk.UZWWDAGM.js +0 -14
  165. package/dist/preview/chunk.V5ZYUVMH.js +0 -1
  166. package/dist/preview/chunk.VOAZBHCG.js +0 -1
  167. package/dist/preview/chunk.VSZQXB4Q.js +0 -3
  168. package/dist/preview/chunk.W3S6UXNA.js +0 -1
  169. package/dist/preview/chunk.Y4UXEL6Y.js +0 -1
  170. package/dist/preview/chunk.YJUB4OD7.js +0 -1
  171. package/dist/preview/chunk.YNQDVGZM.js +0 -1
  172. package/dist/preview/chunk.YV2LJFGS.js +0 -1
  173. package/dist/preview/chunk.Z2YUYZT4.js +0 -1
  174. /package/dist/preview/{chunk.EYZ7MHBZ.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};
@@ -1 +1 @@
1
- import{a as g}from"./chunk.TI4OSTQV.js";import{Cb as c,Gb as y,Sa as p}from"./chunk.6V2RG5JG.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
+ 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{c as p}from"./chunk.L4DECHXR.js";import{R as c}from"./chunk.GFF2FB2J.js";import{Jb as u}from"./chunk.6V2RG5JG.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};
@@ -1 +1 @@
1
- import{g as a}from"./chunk.HHPGWJDO.js";import{c as p}from"./chunk.42YX6NOY.js";import{ta as d}from"./chunk.6V2RG5JG.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};
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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26DREVU.js";import{h as ca,i as va}from"./chunk.3SKKIHU3.js";import{a as ga}from"./chunk.HJCQ6I3S.js";import"./chunk.O2LK2AO7.js";import"./chunk.26CZTUY4.js";import"./chunk.3JNMSOFG.js";import"./chunk.OAF7TUMI.js";import"./chunk.ERXSYPYL.js";import{b as da,c as sa,d as fe,e as la}from"./chunk.J2ITFGN3.js";import{a as ea}from"./chunk.KOB6N3SL.js";import{b as ue}from"./chunk.GLBHQFJ2.js";import"./chunk.6XMEU2Q2.js";import{b as me}from"./chunk.QIAKO27D.js";import"./chunk.UT6642FC.js";import"./chunk.2CIBWZJG.js";import"./chunk.MB7LKKUD.js";import"./chunk.7BWT5L2L.js";import"./chunk.SE5SKFQH.js";import{p as ia,q as na,r as oa}from"./chunk.W3S6UXNA.js";import{b as pa}from"./chunk.4SJUTBDV.js";import{e as wa}from"./chunk.DT7LHWU2.js";import{a as La}from"./chunk.UZWWDAGM.js";import"./chunk.TI4OSTQV.js";import"./chunk.6T2Q6NLO.js";import"./chunk.EYZ7MHBZ.js";import{d as Je,e as Qe,f as Q,p as Ze}from"./chunk.KQT7WAQE.js";import"./chunk.PAVR5TK5.js";import"./chunk.OQDETV4X.js";import"./chunk.3VL5WECB.js";import"./chunk.JH6MU6TX.js";import"./chunk.WAFDCOOG.js";import{b as We,g as Xe,l as aa,r as ra,z as ta}from"./chunk.L4DECHXR.js";import{$ as se,A as Ke,G as O,J as qe,R as h,W as Ge,Y as _e,Z as $,a as Y,ga as Ue,j as ve,k as ie,n as V,o as ne,p as we,pa as Ye,qa as F,s as oe,ta as Ve,xa as je,y as Fe,ya as le,z as de}from"./chunk.GFF2FB2J.js";import{$ as te,Jb as Oe,M as Be,Z as De,bc as L,dc as P}from"./chunk.6V2RG5JG.js";import{b as p}from"./chunk.AJZBJBMO.js";function Ha(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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
45
45
  transform: translateY(-4px) scale(1.05);
46
46
  box-shadow: var(--graview-lift-high);
47
47
  position: relative;
48
- z-index: ${L.lines};
48
+ z-index: ${H.lines};
49
49
  }
50
50
 
51
51
 
@@ -59,7 +59,7 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
59
59
  left: 50%;
60
60
  top: 42px;
61
61
  transform: translateX(-50%);
62
- z-index: ${L.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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
71
71
 
72
72
  .graview-drive-in-marquee {
73
73
  display: grid;
74
- gap: ${Qe}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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
80
80
  display: grid;
81
81
  align-content: center;
82
82
  box-sizing: border-box;
83
- min-height: max(${Q/16}rem, ${Q}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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
95
95
  .graview-drive-in-thumb-press {
96
96
  position: absolute;
97
97
  inset: 0;
98
- min-height: max(${Q/16}rem, ${Q}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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
128
128
  position: absolute;
129
129
  inset: 0;
130
130
  pointer-events: none;
131
- z-index: ${L.occupants};
131
+ z-index: ${H.occupants};
132
132
  }
133
133
  .graview-figure {
134
134
  position: absolute;
@@ -184,16 +184,18 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
277
279
  transition: opacity 160ms ease;
278
280
  }
279
281
  .graview-kind-card[data-graview-emphasis="lit"] {
280
- z-index: ${L.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 he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
364
366
  position: absolute;
365
367
  inset: 0;
366
368
  pointer-events: none;
367
- z-index: ${L.seatMarks};
369
+ z-index: ${H.seatMarks};
368
370
  }
369
371
  .graview-seat-mark {
370
372
  position: absolute;
@@ -464,7 +466,7 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
464
466
  }
465
467
  .graview-ribbon-said,
466
468
  .graview-record-link-said {
467
- z-index: ${L.tieLabels};
469
+ z-index: ${H.tieLabels};
468
470
  box-sizing: border-box;
469
471
  white-space: nowrap;
470
472
  font-size: 0.8125rem;
@@ -618,7 +620,7 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
618
620
  position: absolute;
619
621
  top: -9px;
620
622
  right: 14px;
621
- z-index: ${L.tag};
623
+ z-index: ${H.tag};
622
624
  display: var(--graview-kit-tags, inline-flex);
623
625
  align-items: center;
624
626
  gap: 5px;
@@ -754,7 +756,7 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
754
756
  left: 0;
755
757
  bottom: calc(100% + 6px);
756
758
 
757
- z-index: ${P("popover")};
759
+ z-index: ${D("popover")};
758
760
  margin: 0;
759
761
  padding: 6px;
760
762
  list-style: none;
@@ -826,7 +828,7 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
826
828
  border-radius: 5px !important;
827
829
  background: var(--graview-panel) !important;
828
830
  box-shadow: 0 1px 2px rgba(0, 0, 0, ${e==="light"?"0.08":"0.3"}) !important;
829
- z-index: ${L.tag};
831
+ z-index: ${H.tag};
830
832
  }
831
833
  [data-graview-altitude] [data-graview-plot] .graview-kind-face {
832
834
  top: calc(var(--graview-front-y) + 4px) !important;
@@ -923,9 +925,11 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
923
925
  opacity: 1;
924
926
  pointer-events: auto;
925
927
  }
928
+
926
929
  [data-graview-altitude] [data-graview-plot]:hover,
927
- [data-graview-altitude] [data-graview-plot]:focus-within {
928
- z-index: ${L.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;
929
933
  }
930
934
 
931
935
  [data-graview-altitude] [data-graview-landmark]:not([data-graview-plot] *) .graview-kind-face {
@@ -935,7 +939,8 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
935
939
 
936
940
  [data-graview-altitude] .graview-drive-in {
937
941
 
938
- 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));
939
944
  padding: 4px 6px;
940
945
  border-radius: 5px;
941
946
  background: var(--graview-panel);
@@ -965,7 +970,8 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
965
970
  @container (max-width: 639px) {
966
971
  .graview-zoom,
967
972
  .graview-edge-sign {
968
- --graview-scene-foot: calc(var(--graview-sheet, 0px) + var(--graview-foot-room, 0px));
973
+
974
+ --graview-scene-foot: max(var(--graview-sheet, 0px), var(--graview-foot-room, 0px));
969
975
  }
970
976
  }
971
977
  .graview-zoom {
@@ -974,7 +980,7 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
974
980
  right: calc(16px + var(--graview-dock, 0px));
975
981
  bottom: calc(16px + var(--graview-scene-foot, var(--graview-sheet, 0px)));
976
982
 
977
- z-index: ${L.zoom};
983
+ z-index: ${H.zoom};
978
984
  display: inline-flex;
979
985
  align-items: center;
980
986
  gap: 2px;
@@ -1037,7 +1043,27 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
1037
1043
  outline: none;
1038
1044
  }
1039
1045
  [data-graview-stage="dom"] [data-graview-view] > :not([data-graview-natural]),
1040
- [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%);
1041
1067
  pointer-events: auto;
1042
1068
  }
1043
1069
 
@@ -1097,5 +1123,5 @@ import{a as he,b as xe,c as be,d as ua,e as ma,g as ye,h as fa}from"./chunk.R26D
1097
1123
  }
1098
1124
  [data-graview-connector][data-graview-activity] {
1099
1125
  animation: graview-relation 1200ms cubic-bezier(0.22, 1, 0.36, 1);
1100
- }`}function ke(e="dark",n={}){let s=Ha(e);return n.scope===void 0?s:We(s,n.scope)}var H=p(O(),1);var K=p(h(),1),Pa=le(Y(()=>import("./chunk.L6OMEYL6.js"))).part(e=>(0,K.jsx)(e.MapKey,{}),{quiet:!0});function Se(){let{store:e}=$(),{view:n}=F(),s=se(),o=(0,H.useMemo)(()=>e.graph.allEdges().length>0,[e,s]),[r,g]=(0,H.useState)(!1),m=(0,H.useId)(),w=(0,H.useRef)(null),M=(0,H.useRef)(null);return(0,H.useEffect)(()=>{if(!r)return;let c=B=>{let A=B.target;A&&(M.current?.contains(A)||w.current?.contains(A))||g(!1)};return document.addEventListener("pointerdown",c,!0),()=>document.removeEventListener("pointerdown",c,!0)},[r]),o?(0,K.jsxs)("div",{style:{display:"contents"},onKeyDown:c=>{c.key!=="Escape"||!r||(c.preventDefault(),c.stopPropagation(),g(!1),w.current?.focus({preventScroll:!0}))},children:[(0,K.jsx)("button",{ref:w,type:"button","data-testid":"lines-key","aria-expanded":r,"aria-controls":m,title:"What the lines mean",onClick:()=>g(c=>!c),style:{position:"absolute",top:60,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("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,K.jsxs)("div",{ref:M,id:m,"data-testid":"lines-key-pane","data-graview-offstage":"",style:{position:"absolute",top:98,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("rail"),width:ma,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,K.jsx)(Pa,{}):null,(0,K.jsx)(ua,{inside:!0,widthOf:ga})]}):null]}):null}var ha=p(O(),1),pe=p(h(),1);function xa(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 Na=le(Y(()=>import("./chunk.MD74YVRN.js"))),Ba=Na.part((e,n)=>(0,pe.jsx)(e.MapPanelFor,{showing:n.showing}),{what:"This panel",quiet:!0});function $e(){let{store:e,view:n,selection:s,hiddenKinds:o}=$();if(se(),!n.overview)return null;let r=xa(pa(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,pe.jsx)(ha.Suspense,{fallback:null,children:(0,pe.jsx)(Ba,{showing:r})})}var Da=p(O(),1);var N=p(h(),1);function ze(){let{view:e,go:n}=F(),{store:s,views:o,hiddenKinds:r}=$(),g=e.overview??!1,m=o.places().map(u=>u.kind).filter(u=>!r.has(u)),w=ta(e,s.schema.kinds,m),M=()=>{n(ie(V(e,!1),w))},c=(()=>{if(!w)return null;let u=Fe(w)[0],S=e.within?.view,D=(S?o.places().find(f=>f.as===S):void 0)??(u?o.places().filter(f=>f.kind===u).at(-1):void 0);return D?D.title:u?te(s.schema,u):s.graph.getNode(w)?.label??null})(),B=g?"Close the map":"Up",A=g&&c?`Close the map, down to ${c}`:B;return(0,N.jsxs)("button",{type:"button","data-testid":"overview",className:"graview-altitude-control","aria-pressed":g,"aria-label":A,title:g?A:"Up \u2014 the whole thing, from above",onClick:()=>g?M():n(V(e,!0)),style:{position:"absolute",top:14,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("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,N.jsxs)("svg",{className:"graview-altitude-mark",width:"16",height:"16",viewBox:"0 0 12 12","aria-hidden":"true",children:[(0,N.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,N.jsx)("circle",{className:"graview-altitude-mark-apex",cx:"6",cy:"4",r:"1.5",fill:"currentColor"}),(0,N.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"left",cx:"1.6",cy:"7.4",r:"1.2",fill:"currentColor"}),(0,N.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"right",cx:"10.4",cy:"7.4",r:"1.2",fill:"currentColor"})]}),(0,N.jsx)("span",{className:"graview-altitude-label",children:B})]})}var Ce=p(h(),1);function Ee(){let{administered:e}=$(),{view:n,go:s}=F(),o=e.filter(r=>r.canShow);return o.length===0?null:(0,Ce.jsx)("div",{role:"group","aria-label":"Administered","data-testid":"administered",style:{display:"flex",gap:6},children:o.map(r=>(0,Ce.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(da(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 x=p(O(),1);var l=p(h(),1);Ge({search:na,touchWeights:ia});var Oa=e=>e.about==="rule"?"rule:":e.about==="act"?"act:":e.kind;function Sa({compact:e=!1}){let{store:n,view:s,setView:o,principal:r,setMenuAt:g,brand:m,seatTalk:w}=$(),M=qe(w),c=_e(),B=Ye(),A=Ze().marks.flag,u=(0,x.useRef)(null),S=(0,x.useId)(),[D,f]=(0,x.useState)(!1),[z,Z]=(0,x.useState)(null),[q,ee]=(0,x.useState)(null),E=s.q??"";(0,x.useEffect)(()=>{let a=t=>{if(t.defaultPrevented)return;let i=t.key.toLowerCase()==="k"&&(t.metaKey||t.ctrlKey)&&!t.altKey&&!t.shiftKey,v=t.key==="/"&&!t.metaKey&&!t.ctrlKey&&!t.altKey;if(!i&&!v)return;let d=u.current;if(!d)return;let _=d.closest("[data-graview-embed]"),R=t.target,J=R===document.body||R===document.documentElement||R===window;if(_&&!(i&&J||R instanceof Node&&_.contains(R)))return;let U=document.activeElement,Ia=U instanceof HTMLInputElement||U instanceof HTMLTextAreaElement||U instanceof HTMLSelectElement||U instanceof HTMLElement&&U.isContentEditable;v&&Ia||(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(),f(!0))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]);let Le=(0,x.useMemo)(()=>q&&E.trim()?oa(n,q,c?.words??E,{principal:r,limit:4}):[],[n,E,c,q,r]),ge=(0,x.useMemo)(()=>{let a=new Map;for(let[t,i]of(c?.hits??[]).entries()){if(i.about==="act")continue;let v=Oa(i),d=a.get(v)??[];if(d.push({id:`${S}-${t}`,hit:i}),a.set(v,d),i.about==="node"&&i.id===q)for(let[_,R]of Le.entries())d.push({id:`${S}-${t}-act-${_}`,hit:R})}return[...a.entries()]},[c,Le,q,S]),I=M.drawn>0&&E.trim()?{id:`${S}-ask`,ask:E.trim()}:null,y=(0,x.useMemo)(()=>[...ge.flatMap(([,a])=>a),...I?[I]:[]],[ge,I?.ask]),T=y.find(a=>a.id===z)??y[0],He=(c?.hits??[]).filter(a=>a.about==="node").length;(0,x.useEffect)(()=>{Z(null),ee(null)},[E]);let ae=(0,x.useRef)(null);(0,x.useEffect)(()=>{let a=ae.current;if(!a)return;ae.current=null;let t=0,i=()=>{let v=document.querySelector(`[data-graview-view="aggregate:${CSS.escape(a)}"]`),d=document.activeElement;if(!(!d||d===document.body||d===document.documentElement||d===u.current||d===v))return;let R=v?.querySelector('[role="group"][aria-label="Arrange"] :is(button, input)');if(R)return R.focus({preventScroll:!0});v&&v.tabIndex>=0&&d!==v&&t>30&&v.focus({preventScroll:!0}),++t<240&&requestAnimationFrame(i)};requestAnimationFrame(i)},[s]);let G=a=>{if(a){if(Z(a.id),"ask"in a){ee(null);return}a.hit.about==="node"?ee(a.hit.id):a.hit.about!=="act"&&ee(null)}},Pe=a=>{let t=document.getElementById(S),i=t?.querySelector('[role="option"]')?.getBoundingClientRect().height??0,v=t?.clientHeight??0;return Math.min(a,i>0&&v>0?Math.max(1,Math.floor(v/i)-1):qa)};(0,x.useEffect)(()=>{z&&document.getElementById(z)?.scrollIntoView?.({block:"nearest"})},[z]);let ce=a=>{if(!a)return;if("ask"in a){w.ask(a.ask),o(i=>fe(i)),f(!1);return}let t=a.hit;switch(t.about){case"node":o(i=>ne(ie(V(i,!1),t.id),[t.id]));break;case"kind":o(i=>de(V(i,!1),oe(t.kind),{ownPicture:!0})),ae.current=t.kind;break;case"place":o(i=>Ke(i,t.kind,t.as)),ae.current=t.kind;break;case"rule":{let i=B.filter(v=>v.invariant===t.name).flatMap(v=>v.nodeIds);o(v=>ne(v,[...new Set(i)]));break}case"act":{o(v=>ne(v,[t.subject]));let i=u.current?.getBoundingClientRect();g({x:i?.left??0,y:(i?.bottom??0)+6,on:t.subject});break}}f(!1),u.current?.blur()},Aa=c?Wa(c.byKind,c.hits,n.schema):"",re=D&&E.trim().length>0,Ra=(0,x.useCallback)(()=>{let a=u.current?.closest("[data-graview-app-bar]")?.getBoundingClientRect();if(a)return{x:a.right,y:a.bottom-_a};let t=u.current?.getBoundingClientRect();return t?{x:t.right,y:t.bottom}:null},[]),Ne=je("find",{open:re,onOpenChange:a=>{a||f(!1)},...e?{at:Ra}:{}});return(0,l.jsxs)("div",{style:{position:"relative",minWidth:0,flex:"1 1 auto"},"data-testid":"find",children:[(0,l.jsx)("input",{ref:a=>{u.current=a,Ne.trigger.ref(a)},"data-graview-popover-trigger":"find",type:"search",role:"combobox","aria-label":"Find anything","aria-expanded":re,"aria-controls":S,"aria-autocomplete":"list",...re&&T?{"aria-activedescendant":T.id}:{},"data-testid":"find-box",placeholder:"Find\u2026","aria-keyshortcuts":"/ Meta+K Control+K",value:E,onChange:a=>{let t=a.target.value;f(!0),o(i=>sa(i,t.length>0?t:null))},onFocus:()=>f(!0),onBlur:()=>f(!1),onKeyDown:a=>{let t=z!==null&&T?y.indexOf(T):-1,i=d=>d!==void 0&&!("ask"in d)&&d.hit.about==="act",v=t>=0&&T!==void 0&&!("ask"in T)&&T.hit.about==="node";if(a.key==="ArrowDown"){a.preventDefault(),f(!0);let d=t+1;if(v)for(;d<y.length-1&&i(y[d]);)d+=1;G(y[Math.min(y.length-1,d)])}else if(a.key==="ArrowUp")a.preventDefault(),G(y[Math.max(0,t-1)]);else if((a.key==="PageDown"||a.key==="PageUp")&&y.length>0){a.preventDefault(),f(!0);let d=y.flatMap((J,U)=>i(J)?[]:[U]),_=Math.max(0,d.findIndex(J=>J>=Math.max(t,0))),R=a.key==="PageDown"?Pe(y.length):-Pe(y.length);G(y[d[Math.min(d.length-1,Math.max(0,(t<0?-1:_)+R))]])}else if(a.key==="ArrowRight"&&v&&i(y[t+1]))a.preventDefault(),G(y[t+1]);else if(a.key==="ArrowLeft"&&i(T)){a.preventDefault();let d=t-1;for(;d>0&&i(y[d]);)d-=1;G(y[d])}else a.key==="Enter"?(a.preventDefault(),ce(T)):a.key==="Escape"&&(a.preventDefault(),E?o(d=>fe(d)):u.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 ${E?"var(--graview-accent)":"var(--graview-edge)"}`,borderRadius:8}}),(0,l.jsx)("span",{role:"status","aria-live":"polite",style:Xe,"data-testid":"find-count",children:E.trim()?Aa:""}),(0,l.jsxs)("div",{...Ne.pane,id:S,role:"listbox","aria-label":E?`What \u201C${E}\u201D finds`:"What the words find","data-testid":"find-strip",hidden:!re,onMouseDown:a=>a.preventDefault(),style:e?{...ya,...Ua}:ya,children:[y.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",c?.words||E,"\u201D."]}):ge.map(([a,t])=>(0,l.jsxs)("div",{role:"group","aria-label":ba(a,n.schema),children:[(0,l.jsxs)("div",{role:"presentation",style:Ya,children:[a!=="rule:"?(0,l.jsx)(Ka,{kind:a,accents:m?.accents}):null,ba(a,n.schema)]}),t.map(i=>(0,l.jsx)("div",{id:i.id,role:"option","aria-selected":i===T,"data-testid":"find-hit","data-about":i.hit.about,...i.hit.about==="node"&&i.hit.near?{"data-near":""}:{},onMouseEnter:()=>G(i),onClick:()=>ce(i),style:{...ka,...i.hit.about==="act"?{paddingLeft:30}:{},background:i===T?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsx)(Fa,{hit:i.hit,flag:A})},i.id))]},a)),I?(0,l.jsx)("div",{id:I.id,role:"option","aria-selected":I===T||T?.id===I.id,"data-testid":"find-ask",onMouseEnter:()=>G(I),onClick:()=>ce(I),style:{...ka,borderTop:"1px solid var(--graview-edge)",marginTop:4,background:T?.id===I.id?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsxs)("span",{children:["Ask: ",(0,l.jsxs)("span",{style:{fontWeight:600},children:["\u2018",I.ask,"\u2019"]})]})}):null,He>Ga?(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:[Be(He)," found: another word of the name narrows them."]}):null,c&&c.searched.past===!1&&c.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 Fa({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:j,children:[" \xB7 ",e.apart]}):null,e.current?null:(0,l.jsx)("span",{style:j,children:" \xB7 past"})]}),e.near?(0,l.jsxs)("span",{style:j,"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:j,children:[e.why.reading.toLowerCase(),": ",e.why.fragment]}):null]});case"kind":return(0,l.jsxs)("span",{children:[e.label,(0,l.jsxs)("span",{style:j,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:j,children:[" \xB7 ",e.why.field==="title"?"act":`on ${e.why.fragment}`]})]})}}function Ka({kind:e,accents:n}){let s=Math.round(Oe(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 ba(e,n){return e==="rule:"?"Rules":e==="act:"?"Acts":n.tryDefinition(e)?.plural??`${e}s`}function Wa(e,n,s){let o=Object.entries(e).map(([m,w])=>De(s,m,w)),r=n.filter(m=>m.about==="kind"||m.about==="place"||m.about==="rule").length;r>0&&o.push(`${r} ${r===1?"place or rule":"places and rules"}`);let g=n.filter(m=>m.about==="node"&&m.near).length;return o.length===0?"Nothing found":`${o.join(", ")} found${g>0?`, ${g} of them near`:""}`}var qa=10,Ga=12,ya={...Ve,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"},_a=6,Ua={width:"var(--graview-bar-width, 100vw)",maxHeight:"55vh",borderRadius:0,borderLeft:"none",borderRight:"none"},Ya={display:"flex",alignItems:"center",gap:6,padding:"8px 12px 2px",fontSize:"0.6875rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},ka={display:"grid",gap:1,minHeight:32,padding:"5px 12px",alignContent:"center",cursor:"pointer",fontSize:"0.875rem",lineHeight:1.35,color:"var(--graview-ink)"},j={color:"var(--graview-ink-muted)",fontSize:"0.8125rem",fontWeight:400};var X=p(O(),1);var Te=p(La(),1);var za=p(h(),1);function $a(){let{following:e,follow:n}=$();return e?(0,za.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 Ca=p(O(),1);var b=p(h(),1);function Ea({home:e,homeLabel:n,children:s,onPicture:o=!1}){let{view:r,focus:g,show:m,go:w}=F(),{store:M}=$(),{movedByHand:c}=$(),B=c&&(r.pan!==void 0||Object.keys(r.pins).length>0),A=r.focusId&&r.focusId!==e?M.graph.getNode(r.focusId):void 0,u=z=>te(M.schema,z),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"},D=n!==void 0&&A!==void 0,f=[];if(A&&!o&&f.push({key:"focused",node:(0,b.jsxs)("button",{type:"button","data-testid":"focused",onClick:()=>w(we({...r,focusId:e},!1)),title:me(M,A.id),style:{...S,maxWidth:"min(14rem, 15vw)"},children:[(0,b.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:me(M,A.id)}),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.past&&f.push({key:"past",node:(0,b.jsxs)("button",{type:"button","data-testid":"past",onClick:()=>w(la(r,!1)),title:"Back to now \u2014 retired things leave the picture again",style:S,children:["the past",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.zoom&&f.push({key:"zoomed",node:(0,b.jsxs)("button",{type:"button","data-testid":"zoomed",onClick:()=>w(we(r,!1)),title:"Zoom back out",style:S,children:["zoomed in",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),B&&f.push({key:"moved",node:(0,b.jsx)("button",{type:"button","data-testid":"moved",onClick:()=>w(ve(r)),title:"Put the camera and everything you dragged back where the layout wanted them",style:S,children:"Reset view"})}),r.relation){let z=r.relation;f.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:()=>w(de(r,oe(z),{ownPicture:!0})),title:`Go into the ${u(z).toLowerCase()}`,"aria-label":`Go into the ${u(z).toLowerCase()}`,style:{...S,color:"var(--graview-ink)"},children:[u(z),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\u2198"})]}),(0,b.jsx)("button",{type:"button","data-testid":"raised",onClick:()=>m(null),title:`Stop showing ${u(z).toLowerCase()}`,"aria-label":`Stop showing ${u(z).toLowerCase()}`,style:{...S,minWidth:26,justifyContent:"center"},children:(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})})]})})}return o&&!D&&f.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:[D?(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,f.map(({key:z,node:Z},q)=>(0,b.jsxs)(Ca.Fragment,{children:[D||q>0?(0,b.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:"\u203A"}):null,Z]},z)),s]})}var C=p(h(),1);function Me(){let[e,n]=(0,X.useState)([]),s=(0,X.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 Ae({find:e,calls:n,seat:s,remembers:o=!1}){return e?(0,C.jsxs)(C.Fragment,{children:[(0,Te.createPortal)((0,C.jsx)(Sa,{compact:e.compact}),e.slot),e.own?(0,Te.createPortal)((0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(X.Suspense,{fallback:null,children:(0,C.jsx)(fa,{})}),(0,C.jsx)(ea,{calls:n,remembers:o,...s!==void 0?{seat:s}:{}})]}),e.own):null]}):null}function Re({home:e=null}){return(0,C.jsxs)("div",{"data-graview-scene-trail":"",style:{position:"absolute",top:14,left:14,maxWidth:"calc(100% - 150px - var(--graview-dock, 0px))",zIndex:P("overview"),display:"flex",alignItems:"center",gap:6,minWidth:0,pointerEvents:"none"},children:[(0,C.jsx)(Ea,{home:e,onPicture:!0}),(0,C.jsx)("span",{style:{pointerEvents:"auto"},children:(0,C.jsx)($a,{})})]})}var W=p(O(),1);var Ta=p(h(),1),Va=Y(()=>import("./chunk.BPWNWE7N.js"));function Ie(){let{store:e,principal:n}=$(),s=(0,W.useContext)(ra),o=(0,W.useRef)(null),r=(0,W.useRef)(!1);return(0,W.useEffect)(()=>()=>void(r.current=!0),[]),(0,W.useEffect)(()=>{let g=e.batches().length,m=Va().then(w=>w.sceneWay(e,n,s,g,o.current),()=>{});return()=>void m.then(w=>w?.(r.current))},[e,n,s]),(0,Ta.jsx)("span",{ref:o,hidden:!0})}var Ma=p(O(),1);var k=p(h(),1);function vt({address:e=!1,auto:n,seat:s,scheme:o,scope:r}){let g=(0,Ma.useMemo)(()=>`${ye({scope:`.${r}`})}
1101
- ${ke(o,{scope:`.${r}`})}`,[o,r]),m=aa(),[w,M]=Me();return(0,k.jsx)(Ue.Provider,{value:!0,children:(0,k.jsxs)("div",{"data-embed-content":"",style:{position:"relative",flex:n?`0 0 ${wa}px`:"1 1 auto",minHeight:0,containerType:"size"},children:[(0,k.jsx)("style",{children:g}),e?(0,k.jsx)(va,{}):null,(0,k.jsx)(ca,{renderer:"dom"}),(0,k.jsx)(Re,{}),(0,k.jsx)(ze,{}),(0,k.jsx)(Se,{}),(0,k.jsx)(be,{}),(0,k.jsx)(xe,{...s?{start:s}:{},onCall:M}),(0,k.jsx)($e,{}),(0,k.jsx)(he,{placement:"menu"}),(0,k.jsx)(Ae,{find:m,calls:w}),(0,k.jsx)(Ie,{}),(0,k.jsx)(ue,{face:"scene"})]})})}function wt(){return(0,k.jsx)(Ee,{})}export{vt as SceneFace,wt 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};
@@ -1,4 +1,4 @@
1
- import{a as he,b as xe,c as be,d as ie,e as I}from"./chunk.XDYAG276.js";import{c as A,e as re}from"./chunk.O2LK2AO7.js";import{a as te}from"./chunk.PAVR5TK5.js";import{$ as ne,G as U,R as Z,Z as ee}from"./chunk.GFF2FB2J.js";import{M as j,W as J,bc as Q}from"./chunk.6V2RG5JG.js";import{b as C}from"./chunk.AJZBJBMO.js";var w=C(U(),1);var P=C(U(),1),ke=(e,n)=>`graview:last-visit:${n??"anyone"}:${e.join(",")}`;function Pe(e,n,r){let t=new Set;for(let i of e)if(!(i.author.id!==void 0&&i.author.id===r)&&Date.parse(i.at)>n)for(let o of i.writes)t.add(o);return t}function oe(e,n,r){let t=ke(n,r?.id),[i]=(0,P.useState)(()=>{try{let o=globalThis.localStorage?.getItem(t);return o?Number(o):null}catch{return null}});return(0,P.useEffect)(()=>{let o=()=>{if(document.visibilityState==="hidden")try{globalThis.localStorage?.setItem(t,String(Date.now()))}catch{}};return document.addEventListener("visibilitychange",o),window.addEventListener("pagehide",o),()=>{document.removeEventListener("visibilitychange",o),window.removeEventListener("pagehide",o)}},[t]),(0,P.useMemo)(()=>i===null?new Set:Pe(e,i,r?.id),[e,i,r?.id])}function ae(e,n,r){let t=new Set;if(r===void 0)return t;t.add(r);for(let i of[...e.out(r),...e.in(r)])t.add(i.id);for(let i of n)if(i.author.id===r)for(let o of i.primitives)o.op==="add-node"&&t.add(o.node.id);return t}var g=C(Z(),1);function Se(e,n,r={x:0,y:0}){let t=(i,o)=>{let c=A(i,o,n.cell,n.tilt);return{x:n.originX+r.x+c.x,y:n.originY+r.y+c.y}};return[t(e.col,e.row),t(e.col+e.side,e.row),t(e.col+e.side,e.row+e.side),t(e.col,e.row+e.side)]}var B=e=>e.map(n=>`${n.x.toFixed(1)},${n.y.toFixed(1)}`).join(" ");function Ie({frame:e,width:n,height:r,pan:t,pinned:i,close:o,today:c,swallowed:y,chosen:p=[],onFocus:f}){let{selection:u,store:d,scheme:S,principal:x}=ee(),b=ne(),a=(0,w.useMemo)(()=>d.log.all(),[d,b]),m=oe(a,d.schema.kinds,x),$=(0,w.useMemo)(()=>ae(d.graph,a,x?.id),[d,a,x?.id]),se=te(),E=e.city,D=e.nodes.filter(l=>l.plot!==void 0&&Math.round(l.plane)===2),R=E?.cell??0,F=E?.tilt??.5,K=(0,w.useRef)(f);K.current=f;let le=(0,w.useCallback)(l=>!K.current||y?.current?!1:(K.current(l),!0),[y]),X=(0,w.useRef)(new Map),M=new Map;for(let l of D){let O=l.aggregate?.memberIds??[],v=re(d.schema,l.kind),z=s=>v?d.graph.getNode(s)?.[v.field]:void 0,L=O.filter(s=>p.includes(s)),G=`${R}|${F}|${l.plot.col},${l.plot.row},${l.plot.side}|${L.join(",")}|${O.map(s=>`${s}=${String(z(s))}`).join(",")}`,T=X.current.get(l.id);if(T&&T.key===G){M.set(l.id,T);continue}let V={cell:R,originX:0,originY:0,tilt:F},q={x:0,y:0},we=d.schema.tryDefinition(l.kind),ye=s=>{let h=d.graph.getNode(s);return h?J(we,h):s},k=v?v.values.map(()=>[]):[[]],N=v?[...v.tiers]:["waiting"];for(let s of L.length>0?[...L,...O.filter(h=>!L.includes(h))]:O){let h=v?v.values.indexOf(z(s)):0;h>=0?k[h].push(s):(k.length===N.length&&(k.push([]),N.push("waiting")),k[k.length-1].push(s))}let{blocks:pe,rests:ve}=I(l.plot,k,N.map(s=>ie[s])),me=Se(l.plot,V,q),H=v?Le(d.schema,l.kind):void 0;M.set(l.id,{key:G,tile:B(me),rests:ve.map(s=>({count:s.count,at:A(s.col,s.row,R,F)})),buildings:pe.map(s=>{let W=(H?d.graph.getNode(s.id):void 0)?.[H];return{id:s.id,tier:N[s.lane],overdue:typeof W=="string"&&N[s.lane]!=="done"&&W.slice(0,10)<(c??new Date().toISOString().slice(0,10)),name:ye(s.id),width:s.footprint*R,...Ce(s,V,q)}})})}if(X.current=M,!E)return null;let de={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible"},ge=u.join(`
1
+ import{a as he,b as xe,c as be,d as ie,e as I}from"./chunk.XDYAG276.js";import{c as A,e as re}from"./chunk.MWGGV7DE.js";import{a as te}from"./chunk.6UGEYZAC.js";import{F as U,Q as Z,Y as ee,_ as ne}from"./chunk.6QWV5MVH.js";import{N as j,X as J,cc as Q}from"./chunk.MNP4JI33.js";import{b as C}from"./chunk.AJZBJBMO.js";var w=C(U(),1);var P=C(U(),1),ke=(e,n)=>`graview:last-visit:${n??"anyone"}:${e.join(",")}`;function Pe(e,n,r){let t=new Set;for(let i of e)if(!(i.author.id!==void 0&&i.author.id===r)&&Date.parse(i.at)>n)for(let o of i.writes)t.add(o);return t}function oe(e,n,r){let t=ke(n,r?.id),[i]=(0,P.useState)(()=>{try{let o=globalThis.localStorage?.getItem(t);return o?Number(o):null}catch{return null}});return(0,P.useEffect)(()=>{let o=()=>{if(document.visibilityState==="hidden")try{globalThis.localStorage?.setItem(t,String(Date.now()))}catch{}};return document.addEventListener("visibilitychange",o),window.addEventListener("pagehide",o),()=>{document.removeEventListener("visibilitychange",o),window.removeEventListener("pagehide",o)}},[t]),(0,P.useMemo)(()=>i===null?new Set:Pe(e,i,r?.id),[e,i,r?.id])}function ae(e,n,r){let t=new Set;if(r===void 0)return t;t.add(r);for(let i of[...e.out(r),...e.in(r)])t.add(i.id);for(let i of n)if(i.author.id===r)for(let o of i.primitives)o.op==="add-node"&&t.add(o.node.id);return t}var g=C(Z(),1);function Se(e,n,r={x:0,y:0}){let t=(i,o)=>{let c=A(i,o,n.cell,n.tilt);return{x:n.originX+r.x+c.x,y:n.originY+r.y+c.y}};return[t(e.col,e.row),t(e.col+e.side,e.row),t(e.col+e.side,e.row+e.side),t(e.col,e.row+e.side)]}var B=e=>e.map(n=>`${n.x.toFixed(1)},${n.y.toFixed(1)}`).join(" ");function Ie({frame:e,width:n,height:r,pan:t,pinned:i,close:o,today:c,swallowed:y,chosen:p=[],onFocus:f}){let{selection:u,store:d,scheme:S,principal:x}=ee(),b=ne(),a=(0,w.useMemo)(()=>d.log.all(),[d,b]),m=oe(a,d.schema.kinds,x),$=(0,w.useMemo)(()=>ae(d.graph,a,x?.id),[d,a,x?.id]),se=te(),E=e.city,D=e.nodes.filter(l=>l.plot!==void 0&&Math.round(l.plane)===2),R=E?.cell??0,F=E?.tilt??.5,K=(0,w.useRef)(f);K.current=f;let le=(0,w.useCallback)(l=>!K.current||y?.current?!1:(K.current(l),!0),[y]),X=(0,w.useRef)(new Map),M=new Map;for(let l of D){let O=l.aggregate?.memberIds??[],v=re(d.schema,l.kind),z=s=>v?d.graph.getNode(s)?.[v.field]:void 0,L=O.filter(s=>p.includes(s)),G=`${R}|${F}|${l.plot.col},${l.plot.row},${l.plot.side}|${L.join(",")}|${O.map(s=>`${s}=${String(z(s))}`).join(",")}`,T=X.current.get(l.id);if(T&&T.key===G){M.set(l.id,T);continue}let V={cell:R,originX:0,originY:0,tilt:F},q={x:0,y:0},we=d.schema.tryDefinition(l.kind),ye=s=>{let h=d.graph.getNode(s);return h?J(we,h):s},k=v?v.values.map(()=>[]):[[]],N=v?[...v.tiers]:["waiting"];for(let s of L.length>0?[...L,...O.filter(h=>!L.includes(h))]:O){let h=v?v.values.indexOf(z(s)):0;h>=0?k[h].push(s):(k.length===N.length&&(k.push([]),N.push("waiting")),k[k.length-1].push(s))}let{blocks:pe,rests:ve}=I(l.plot,k,N.map(s=>ie[s])),me=Se(l.plot,V,q),H=v?Le(d.schema,l.kind):void 0;M.set(l.id,{key:G,tile:B(me),rests:ve.map(s=>({count:s.count,at:A(s.col,s.row,R,F)})),buildings:pe.map(s=>{let W=(H?d.graph.getNode(s.id):void 0)?.[H];return{id:s.id,tier:N[s.lane],overdue:typeof W=="string"&&N[s.lane]!=="done"&&W.slice(0,10)<(c??new Date().toISOString().slice(0,10)),name:ye(s.id),width:s.footprint*R,...Ce(s,V,q)}})})}if(X.current=M,!E)return null;let de={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible"},ge=u.join(`
2
2
  `),ce=se.join(`
3
3
  `),ue=m?[...m].join(`
4
4
  `):"",fe=$?[...$].join(`
@@ -0,0 +1 @@
1
+ import{c as m}from"./chunk.FWTIUYXH.js";import{$ as p,X as c,Y as u,Z as f,da as h,ea as l}from"./chunk.MNP4JI33.js";function A(t,e){let n=t.schema.kinds,r="kind"in e?e.kind:void 0;if(r!==void 0&&!n.includes(r))return`There is no kind "${r}" in this app. Its kinds are: ${n.join(", ")}.`;if(e.on==="act"&&e.act!==void 0&&t.allMutations&&!t.allMutations().some(i=>i.name===e.act))return`There is no act "${e.act}" in this app.`;let o="record"in e?e.record:void 0;if(o!==void 0&&t.graph&&!t.graph.getNode(o))return`No record "${o}" is here to be told about.`;if(o!==void 0&&r!==void 0&&t.graph&&t.graph.getNode(o)?.kind!==r)return`\u201C${o}\u201D is not ${h(r)}.`;if(e.on==="changed"&&e.kind===void 0&&e.record===void 0)return"Say which kind, or which record, to be told about.";if(e.on==="reaches"){if(e.condition.trim()==="")return"Say what it should reach: a condition like done == true.";try{m(e.condition)}catch(i){return`The condition does not read: ${i instanceof Error?i.message:String(i)}.`}}}function a(t,e){let n=t.graph?.getNode(e);return n?c(t.schema.tryDefinition(n.kind),n):e}function g(t,e){let n=t.allMutations?.().find(r=>r.name===e);return n?u(n):f(e)}function M(t,e){let{when:n}=e,r=e.alsoMine?"anyone":"someone else",o=d=>l(t.schema.tryDefinition(d),d),i=d=>{let s=o(d);return`${/^[aeiou]/i.test(s)?"an":"a"} ${s}`};switch(n.on){case"act":{let d=n.act!==void 0?`\u201C${g(t,n.act)}\u201D`:"an act";return`When ${r} runs ${d}${n.record!==void 0?` on \u201C${a(t,n.record)}\u201D`:""}`}case"created":return`When ${r} adds ${i(n.kind)}`;case"changed":return n.record!==void 0?`When ${r} changes \u201C${a(t,n.record)}\u201D`:`When ${r} changes any of the ${p(t.schema,n.kind)}`;case"reaches":return`When ${n.record!==void 0?`\u201C${a(t,n.record)}\u201D`:i(n.kind)} reaches ${n.condition}${e.alsoMine?"":" (by someone else)"}`}}export{A as a,M as b};