graview 0.1.21 → 0.1.22

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 (78) hide show
  1. package/README.md +22 -4
  2. package/dist/index.d.ts +7 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +14 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/preview/chunk.2F7OKRDK.js +9 -0
  7. package/dist/preview/chunk.3HEJZPJM.js +1040 -0
  8. package/dist/preview/chunk.3MLQ3Q5X.js +1 -0
  9. package/dist/preview/chunk.4CDEIDKB.js +1 -0
  10. package/dist/preview/chunk.4HGBVU5B.js +1 -0
  11. package/dist/preview/chunk.4JSMCNF7.js +1 -0
  12. package/dist/preview/chunk.4UQLZ7VW.js +1 -0
  13. package/dist/preview/chunk.5JNXQHN4.js +1 -0
  14. package/dist/preview/chunk.5MAMCKVU.js +1 -0
  15. package/dist/preview/chunk.6C7SJJQO.js +1 -0
  16. package/dist/preview/chunk.6CLHFNDM.js +321 -0
  17. package/dist/preview/chunk.6KJSFIO7.js +1 -0
  18. package/dist/preview/chunk.75WDSWXL.js +20 -0
  19. package/dist/preview/chunk.7YC34AIK.js +1 -0
  20. package/dist/preview/chunk.7YCQZJGB.js +1 -0
  21. package/dist/preview/chunk.ACZGK7LQ.js +1 -0
  22. package/dist/preview/chunk.AHDOKM4O.js +1 -0
  23. package/dist/preview/chunk.AJZBJBMO.js +1 -0
  24. package/dist/preview/chunk.AZG6V3PF.js +1 -0
  25. package/dist/preview/chunk.AZYJTNSM.js +107 -0
  26. package/dist/preview/chunk.BQV62QEL.js +61 -0
  27. package/dist/preview/chunk.CJQL7AHT.js +3 -0
  28. package/dist/preview/chunk.DAKED3WK.js +1 -0
  29. package/dist/preview/chunk.DJ26NOOW.js +1 -0
  30. package/dist/preview/chunk.DN4D4HGX.js +1 -0
  31. package/dist/preview/chunk.DO4P2UK4.js +1 -0
  32. package/dist/preview/chunk.ELEHYYCN.js +1 -0
  33. package/dist/preview/chunk.ENMNLR73.js +2 -0
  34. package/dist/preview/chunk.EQOU4POV.js +1 -0
  35. package/dist/preview/chunk.FLDFRFDH.js +23 -0
  36. package/dist/preview/chunk.FLJP3BGP.js +1 -0
  37. package/dist/preview/chunk.G4JJXA63.js +1 -0
  38. package/dist/preview/chunk.HCK6IHGP.js +1 -0
  39. package/dist/preview/chunk.IKT7JQUW.js +14 -0
  40. package/dist/preview/chunk.JE4VH767.js +16 -0
  41. package/dist/preview/chunk.K7UJG5II.js +1 -0
  42. package/dist/preview/chunk.KFLY4MAT.js +1 -0
  43. package/dist/preview/chunk.KWYU5NPM.js +1 -0
  44. package/dist/preview/chunk.L5G5DTFX.js +1 -0
  45. package/dist/preview/chunk.LGUV2J6Q.js +1 -0
  46. package/dist/preview/chunk.LSLFKW4M.js +1 -0
  47. package/dist/preview/chunk.LZQZP2PD.js +2 -0
  48. package/dist/preview/chunk.M4XNUM2A.js +6 -0
  49. package/dist/preview/chunk.MRK6QJV5.js +25 -0
  50. package/dist/preview/chunk.NOXC454O.js +1 -0
  51. package/dist/preview/chunk.ONDILMIX.js +1 -0
  52. package/dist/preview/chunk.OR6ZWN76.js +1 -0
  53. package/dist/preview/chunk.PC6FAJF5.js +1 -0
  54. package/dist/preview/chunk.Q5WEOX3Q.js +1 -0
  55. package/dist/preview/chunk.Q7WQ5UIE.js +1 -0
  56. package/dist/preview/chunk.R5K7NK4U.js +1 -0
  57. package/dist/preview/chunk.SCLIBKLS.js +1 -0
  58. package/dist/preview/chunk.SQD7ZPEJ.js +1 -0
  59. package/dist/preview/chunk.THBP5EES.js +1 -0
  60. package/dist/preview/chunk.UNRYIETM.js +1 -0
  61. package/dist/preview/chunk.VNC6H6IM.js +1 -0
  62. package/dist/preview/chunk.VRXWNUDR.js +1 -0
  63. package/dist/preview/chunk.VVZ2Z7OS.js +29 -0
  64. package/dist/preview/chunk.WGNF4E67.js +1 -0
  65. package/dist/preview/chunk.WTF3CP76.js +1 -0
  66. package/dist/preview/chunk.WWRWXFYR.js +0 -0
  67. package/dist/preview/chunk.XEJS2VS5.js +8 -0
  68. package/dist/preview/chunk.XYZ7KAMZ.js +1 -0
  69. package/dist/preview/chunk.Y235YZSZ.js +8 -0
  70. package/dist/preview/chunk.YAONM74M.js +19 -0
  71. package/dist/preview/chunk.YSYT3ASK.js +1 -0
  72. package/dist/preview/chunk.YU64JSAL.js +1 -0
  73. package/dist/preview/chunk.ZFUQA3KT.js +1 -0
  74. package/dist/preview/chunk.ZKUXPS44.js +2 -0
  75. package/dist/preview/chunk.ZQZ557VR.js +1 -0
  76. package/dist/preview/index.html +13 -0
  77. package/dist/preview/page.js +34 -0
  78. package/package.json +7 -7
@@ -0,0 +1,1040 @@
1
+ import{a as Be,b as Oe,c as qt,d as _t,f as We}from"./chunk.NOXC454O.js";import{h as Pt,i as Dt,j as Wt,k as Ft}from"./chunk.XEJS2VS5.js";import{a as Bt,b as Ot}from"./chunk.4UQLZ7VW.js";import"./chunk.DN4D4HGX.js";import"./chunk.DJ26NOOW.js";import"./chunk.SQD7ZPEJ.js";import{d as Kt}from"./chunk.LSLFKW4M.js";import{a as na}from"./chunk.IKT7JQUW.js";import{b as Lt}from"./chunk.AZG6V3PF.js";import{b as Et,i as Ht}from"./chunk.6CLHFNDM.js";import{b as Mt}from"./chunk.WGNF4E67.js";import"./chunk.R5K7NK4U.js";import{a as It}from"./chunk.L5G5DTFX.js";import{a as Rt,b as Q}from"./chunk.VRXWNUDR.js";import"./chunk.BQV62QEL.js";import{l as Nt}from"./chunk.DAKED3WK.js";import"./chunk.WWRWXFYR.js";import"./chunk.ZFUQA3KT.js";import"./chunk.DO4P2UK4.js";import"./chunk.6KJSFIO7.js";import"./chunk.FLJP3BGP.js";import"./chunk.ENMNLR73.js";import"./chunk.LZQZP2PD.js";import"./chunk.ACZGK7LQ.js";import"./chunk.AHDOKM4O.js";import"./chunk.LGUV2J6Q.js";import{Aa as ze,B as yt,E as kt,F as St,G as $t,K as he,W as zt,a as wt,ba as Ct,ca as T,ea as At,i as ht,j as ye,m as we,n as mt,o as ft,p as ke,pa as De,q as bt,qa as Tt,r as Se,ra as de,s as Ne,ua as $e,v as Pe,xa as Ee,y as xt}from"./chunk.4JSMCNF7.js";import{$ as gt,N as lt,P as xe,Q as dt,S as Me,T as Le,Va as ct,aa as pt,ab as ut,hb as vt,sb as W,ub as F}from"./chunk.Y235YZSZ.js";import{a as ae,b as E}from"./chunk.MRK6QJV5.js";import{b as w}from"./chunk.AJZBJBMO.js";var Ce=t=>`${t.saturation}% ${t.lightness}%`,Ut=t=>`${Ce(t)} / ${t.alpha}`;function la(t){let a=vt(t);return`
2
+
3
+
4
+ .graview-altitude-control {
5
+ --graview-altitude: 0;
6
+ transition:
7
+ --graview-altitude 640ms cubic-bezier(0.33, 0, 0.2, 1),
8
+ color 240ms ease,
9
+ border-color 240ms ease;
10
+ }
11
+ .graview-altitude-mark * {
12
+ transform-box: fill-box;
13
+ transform-origin: center;
14
+ }
15
+
16
+ .graview-altitude-mark-ring {
17
+ transform: scaleX(calc(1 - 0.48 * var(--graview-altitude)));
18
+ opacity: calc(0.55 + 0.4 * var(--graview-altitude));
19
+ }
20
+ .graview-altitude-mark-apex {
21
+ transform: translateY(calc(2.6px * var(--graview-altitude)));
22
+ }
23
+
24
+ .graview-altitude-mark-wing {
25
+ opacity: calc(0.75 * (1 - var(--graview-altitude)));
26
+ }
27
+ .graview-altitude-mark-wing[data-side="left"] {
28
+ transform: translate(calc(4.4px * var(--graview-altitude)), calc(-0.8px * var(--graview-altitude)));
29
+ }
30
+ .graview-altitude-mark-wing[data-side="right"] {
31
+ transform: translate(calc(-4.4px * var(--graview-altitude)), calc(-0.8px * var(--graview-altitude)));
32
+ }
33
+
34
+
35
+ .graview-kind-card {
36
+ height: 100%;
37
+ transition: transform 170ms cubic-bezier(0.22, 1, 0.36, 1), height 170ms ease,
38
+ box-shadow 170ms ease;
39
+
40
+ overflow: clip;
41
+ }
42
+ .graview-kind-card:hover,
43
+ .graview-kind-card:focus-within {
44
+ height: auto;
45
+ transform: translateY(-4px) scale(1.05);
46
+ box-shadow: var(--graview-lift-high);
47
+ position: relative;
48
+ z-index: ${W.lines};
49
+ }
50
+
51
+
52
+ .graview-kind-open { display: none; }
53
+
54
+
55
+
56
+ .graview-drive-in {
57
+
58
+ position: absolute;
59
+ left: 50%;
60
+ top: 42px;
61
+ transform: translateX(-50%);
62
+ z-index: ${W.lines};
63
+ display: grid;
64
+ justify-items: center;
65
+ gap: 4px;
66
+ animation: graview-settle 240ms ease backwards;
67
+ }
68
+ [data-graview-landmark] .graview-drive-in {
69
+ top: 4px;
70
+ }
71
+
72
+ .graview-drive-in-marquee {
73
+ display: grid;
74
+ gap: ${2}px;
75
+ width: ${156}px;
76
+ justify-items: stretch;
77
+ }
78
+ .graview-drive-in-thumb {
79
+ position: relative;
80
+ display: grid;
81
+ align-content: center;
82
+ box-sizing: border-box;
83
+ min-height: max(${he/16}rem, ${he}px);
84
+ padding: 3px 6px 3px 10px;
85
+ border-left: 2px solid var(--graview-edge-bright, var(--graview-edge));
86
+ color: var(--graview-ink);
87
+ font: inherit;
88
+ text-align: left;
89
+ }
90
+ .graview-drive-in-thumb[data-graview-pressed] {
91
+ border-left-color: var(--graview-accent);
92
+ color: var(--graview-accent);
93
+ }
94
+
95
+ .graview-drive-in-thumb-press {
96
+ position: absolute;
97
+ inset: 0;
98
+ min-height: max(${he/16}rem, ${he}px);
99
+ margin: 0;
100
+ padding: 0;
101
+ border: none;
102
+ border-radius: 0 4px 4px 0;
103
+ background: transparent;
104
+ box-shadow: none;
105
+ cursor: pointer;
106
+ }
107
+ .graview-drive-in-thumb-press:hover {
108
+ background: color-mix(in srgb, var(--graview-accent) 8%, transparent);
109
+ }
110
+ .graview-drive-in-thumb-press:focus-visible {
111
+ outline: 2px solid var(--graview-accent);
112
+ outline-offset: 1px;
113
+ }
114
+ .graview-drive-in-thumb-title {
115
+ display: block;
116
+ font-size: 0.8125rem;
117
+ font-weight: 500;
118
+ line-height: 1.25;
119
+ overflow-wrap: anywhere;
120
+ text-shadow: 0 0 3px var(--graview-ground), 0 0 6px var(--graview-ground);
121
+ }
122
+ .graview-drive-in-thumb[data-graview-pressed] .graview-drive-in-thumb-title {
123
+ font-weight: 600;
124
+ }
125
+
126
+
127
+ .graview-occupants {
128
+ position: absolute;
129
+ inset: 0;
130
+ pointer-events: none;
131
+ z-index: ${W.occupants};
132
+ }
133
+ .graview-figure {
134
+ position: absolute;
135
+ left: 0;
136
+ top: 0;
137
+ width: 0;
138
+ height: 0;
139
+ pointer-events: none;
140
+ transition: transform 420ms cubic-bezier(0.33, 0, 0.2, 1);
141
+ will-change: transform;
142
+ }
143
+ .graview-figure-body {
144
+ position: absolute;
145
+ left: -16px;
146
+ top: -38px;
147
+ width: 32px;
148
+ height: 38px;
149
+ min-height: max(1.5rem, 24px);
150
+ padding: 0;
151
+ border: 0;
152
+ background: transparent;
153
+ color: hsl(var(--graview-hue, 200) 50% 48%);
154
+ cursor: pointer;
155
+ pointer-events: auto;
156
+ border-radius: 6px;
157
+ }
158
+ .graview-figure-body:focus-visible {
159
+ outline: 2px solid var(--graview-accent);
160
+ outline-offset: 2px;
161
+ }
162
+ .graview-figure-body svg {
163
+ display: block;
164
+ width: 32px;
165
+ height: 38px;
166
+ overflow: visible;
167
+ }
168
+ .graview-figure[data-graview-mode="following"] .graview-figure-body {
169
+ color: var(--graview-accent);
170
+ }
171
+ .graview-figure[data-graview-mode="refused"] .graview-figure-body {
172
+ color: var(--graview-warn);
173
+ }
174
+ .graview-figure-name {
175
+ position: absolute;
176
+ left: 50%;
177
+ top: 2px;
178
+ transform: translateX(-50%);
179
+ white-space: nowrap;
180
+ font-size: 0.75rem;
181
+ letter-spacing: 0.08em;
182
+ text-transform: uppercase;
183
+ color: var(--graview-ink-muted);
184
+ pointer-events: none;
185
+ }
186
+
187
+ .graview-figure[data-graview-person] .graview-figure-body {
188
+ left: -11px;
189
+ top: -24px;
190
+ width: 22px;
191
+ height: 24px;
192
+ min-height: 0;
193
+ }
194
+ .graview-figure[data-graview-person] .graview-figure-body svg {
195
+ width: 22px;
196
+ height: 24px;
197
+ }
198
+ .graview-figure[data-graview-person][data-graview-followed] .graview-figure-body {
199
+ color: var(--graview-accent);
200
+ }
201
+
202
+ .graview-figure[data-graview-theirs] .graview-figure-body {
203
+ opacity: 0.85;
204
+ }
205
+
206
+ .graview-figure-count {
207
+ position: absolute;
208
+ transform: translate(-50%, -100%);
209
+ padding: 1px 7px;
210
+ border-radius: 999px;
211
+ border: 1px solid var(--graview-edge);
212
+ background: var(--graview-float);
213
+ color: var(--graview-ink-muted);
214
+ font-size: 0.75rem;
215
+ white-space: nowrap;
216
+ pointer-events: auto;
217
+ }
218
+
219
+ .graview-presence-over {
220
+ position: absolute;
221
+ border: 2px solid hsl(var(--graview-hue, 200) 55% 52%);
222
+ border-radius: 8px;
223
+ pointer-events: none;
224
+ opacity: 0.75;
225
+ transition: left 200ms ease, top 200ms ease, width 200ms ease, height 200ms ease;
226
+ }
227
+
228
+ .graview-figure-edge {
229
+ position: absolute;
230
+ min-height: max(1.5rem, 24px);
231
+ padding: 3px 8px;
232
+ border-radius: 999px;
233
+ border: 1px solid var(--graview-edge);
234
+ background: var(--graview-float);
235
+ color: var(--graview-ink-muted);
236
+ font-size: 0.75rem;
237
+ white-space: nowrap;
238
+ pointer-events: auto;
239
+ cursor: pointer;
240
+ }
241
+
242
+ .graview-kind-members {
243
+ display: flex;
244
+ flex-direction: column;
245
+ align-items: stretch;
246
+ gap: 3px;
247
+ margin-top: 7px;
248
+ animation: graview-settle 240ms ease backwards;
249
+ }
250
+
251
+
252
+ .graview-kind-past {
253
+ display: inline-flex;
254
+ align-items: center;
255
+ flex: 0 0 auto;
256
+
257
+ min-height: max(1.5rem, 24px);
258
+ padding: 1px 8px;
259
+ margin: -3px 0;
260
+ border-radius: 999px;
261
+ border: 1px dashed var(--graview-edge);
262
+ background: none;
263
+ box-shadow: none;
264
+ color: var(--graview-ink-faint);
265
+ cursor: pointer;
266
+ font-size: 0.75rem;
267
+ white-space: nowrap;
268
+ }
269
+ .graview-kind-past:hover {
270
+ color: var(--graview-accent);
271
+ border-color: var(--graview-accent-dim);
272
+ }
273
+
274
+
275
+ .graview-kind-card[data-graview-emphasis="dimmed"] {
276
+ opacity: 0.42;
277
+ transition: opacity 160ms ease;
278
+ }
279
+ .graview-kind-card[data-graview-emphasis="lit"] {
280
+ z-index: ${W.stage};
281
+ }
282
+ .graview-kind-card[data-graview-emphasis="lit"] .graview-kind-face {
283
+ border-color: var(--graview-accent) !important;
284
+ box-shadow: 0 0 0 1px var(--graview-accent-dim);
285
+ }
286
+ .graview-kind-hits {
287
+ display: inline-flex;
288
+ align-items: center;
289
+ flex: 0 0 auto;
290
+ min-height: max(1.5rem, 24px);
291
+ padding: 1px 8px;
292
+ margin: -3px 0;
293
+ border-radius: 999px;
294
+ border: 1px solid var(--graview-accent);
295
+ background: none;
296
+ box-shadow: none;
297
+ color: var(--graview-accent);
298
+ cursor: pointer;
299
+ font-size: 0.75rem;
300
+ font-variant-numeric: tabular-nums;
301
+ white-space: nowrap;
302
+ }
303
+ @media (prefers-reduced-motion: reduce) {
304
+ .graview-kind-card[data-graview-emphasis="dimmed"] { transition: none; }
305
+ }
306
+
307
+
308
+ .graview-kind-block {
309
+ display: block;
310
+
311
+ pointer-events: none;
312
+ position: absolute;
313
+ left: 8%;
314
+ bottom: 2px;
315
+ width: 84%;
316
+ height: auto;
317
+
318
+ max-height: calc(100% - var(--graview-marquee-room, 0px));
319
+ opacity: var(--graview-altitude);
320
+ transform: translateY(calc((1 - var(--graview-altitude)) * 18px));
321
+ filter: drop-shadow(${t==="light"?"10px 7px 14px rgba(20,30,32,0.28)":"12px 8px 18px rgba(0,0,0,0.6)"});
322
+ }
323
+
324
+
325
+ .graview-kind-landmark {
326
+ display: block;
327
+ left: 50%;
328
+
329
+ bottom: 2px;
330
+ aspect-ratio: 1;
331
+
332
+ height: calc((100% - var(--graview-marquee-room, 0px)) * (0.72 + var(--graview-rise, 24) * 0.008));
333
+ width: auto;
334
+
335
+ min-height: min(5em, calc(96% - var(--graview-marquee-room, 0px)));
336
+
337
+ transform-origin: bottom center;
338
+ transform: translateX(-50%) scale(calc(0.55 + var(--graview-altitude) * 0.45));
339
+
340
+ filter: drop-shadow(${t==="light"?"6px 5px 7px rgba(20,30,32,0.16)":"7px 6px 9px rgba(0,0,0,0.45)"});
341
+ }
342
+
343
+
344
+ .graview-kind-landmark [data-graview-figure] {
345
+ width: 100% !important;
346
+ height: 100% !important;
347
+ color: hsl(var(--graview-hue, 200) ${t==="light"?"42% 44%":"45% 62%"}) !important;
348
+ }
349
+ .graview-kind-landmark svg {
350
+ width: 100%;
351
+ height: 100%;
352
+ stroke-width: 0.85;
353
+ }
354
+
355
+
356
+ .graview-kind-face {
357
+ transition: border-radius 640ms cubic-bezier(0.33, 0, 0.2, 1),
358
+ padding 640ms cubic-bezier(0.33, 0, 0.2, 1),
359
+ box-shadow 640ms ease;
360
+ }
361
+
362
+
363
+ .graview-seat-marks {
364
+ position: absolute;
365
+ inset: 0;
366
+ pointer-events: none;
367
+ z-index: ${W.seatMarks};
368
+ }
369
+ .graview-seat-mark {
370
+ position: absolute;
371
+ display: grid;
372
+ place-items: center;
373
+ width: 16px;
374
+ height: 16px;
375
+ margin: -8px 0 0 -8px;
376
+ border-radius: 999px;
377
+ border: 1px solid var(--graview-edge);
378
+ background: var(--graview-float);
379
+ color: oklch(0.62 0.16 var(--graview-hue, 250));
380
+ font-size: 0.6875rem;
381
+ line-height: 1;
382
+ box-shadow: var(--graview-lift-low);
383
+ animation: graview-seat-mark 4000ms ease-out forwards;
384
+ }
385
+
386
+ .graview-seat-asking {
387
+ position: absolute;
388
+ transform: translate(-50%, -100%);
389
+ display: inline-flex;
390
+ align-items: center;
391
+ gap: 6px;
392
+ max-width: 260px;
393
+ padding: 3px 9px 3px 6px;
394
+ border-radius: 999px;
395
+ border: 1px solid var(--graview-accent);
396
+ background: var(--graview-float);
397
+ color: var(--graview-ink);
398
+ font-size: 0.75rem;
399
+ line-height: 1.3;
400
+ box-shadow: var(--graview-lift-low);
401
+ pointer-events: auto;
402
+ }
403
+ .graview-seat-asking > [aria-hidden] {
404
+ display: grid;
405
+ place-items: center;
406
+ width: 14px;
407
+ height: 14px;
408
+ border-radius: 999px;
409
+ background: var(--graview-accent);
410
+ color: var(--graview-panel);
411
+ font-size: 0.6875rem;
412
+ }
413
+ .graview-seat-asking-said {
414
+ overflow: hidden;
415
+ text-overflow: ellipsis;
416
+ white-space: nowrap;
417
+ }
418
+
419
+ @keyframes graview-seat-mark {
420
+ 0% { opacity: 0; transform: translateY(3px) scale(0.8); }
421
+ 8% { opacity: 1; transform: none; }
422
+ 80% { opacity: 1; }
423
+ 100% { opacity: 0; }
424
+ }
425
+ @media (prefers-reduced-motion: reduce) {
426
+ .graview-figure { transition: none; }
427
+ }
428
+
429
+ [data-graview-altitude] .graview-kind-card {
430
+ overflow: visible;
431
+ }
432
+
433
+ [data-graview-altitude] .graview-kind-card:hover,
434
+ [data-graview-altitude] .graview-kind-card:focus-within {
435
+ transform: none;
436
+ box-shadow: none;
437
+ background: transparent;
438
+ }
439
+
440
+
441
+ .graview-plots {
442
+ z-index: ${W.plots};
443
+ opacity: var(--graview-altitude);
444
+ transition: opacity 640ms cubic-bezier(0.33, 0, 0.2, 1);
445
+ }
446
+ .graview-plot-tile {
447
+ fill: hsl(var(--graview-hue, 200) ${Ut(a.plot)});
448
+ stroke: hsl(var(--graview-hue, 200) ${Ut(a.plotEdge)});
449
+ stroke-width: 1;
450
+ stroke-linejoin: round;
451
+ pointer-events: auto;
452
+ cursor: pointer;
453
+ filter: drop-shadow(${t==="light"?"5px 4px 6px rgba(20,30,32,0.14)":"6px 5px 8px rgba(0,0,0,0.4)"});
454
+ transition: fill 170ms ease;
455
+ }
456
+ .graview-plot-tile:hover {
457
+ fill: hsl(var(--graview-hue, 200) 45% ${t==="light"?"58%":"48%"} / ${t==="light"?"0.2":"0.3"});
458
+ }
459
+ .graview-plot[data-graview-pinned] .graview-plot-tile {
460
+ stroke-dasharray: 4 3;
461
+ }
462
+
463
+ .graview-village { pointer-events: none; }
464
+ .graview-building polygon { stroke-width: 0.8; }
465
+ .graview-building[data-graview-flagged] .graview-iso-roof { fill: var(--graview-warn); stroke: var(--graview-warn); }
466
+ .graview-building[data-graview-selected] polygon { stroke: var(--graview-accent); stroke-width: 1.4; }
467
+ .graview-building[data-graview-selected] .graview-iso-roof { fill: color-mix(in oklab, var(--graview-accent) 45%, var(--graview-panel)); }
468
+ .graview-village-rest {
469
+ font-size: 0.75rem;
470
+ letter-spacing: 0.06em;
471
+ fill: var(--graview-ink-muted);
472
+ }
473
+
474
+ .graview-road-edge {
475
+ fill: none;
476
+ stroke: var(--graview-ink);
477
+ stroke-opacity: ${t==="light"?"0.28":"0.4"};
478
+ stroke-width: 7;
479
+ stroke-linejoin: round;
480
+ stroke-linecap: round;
481
+ }
482
+ .graview-road-bed {
483
+ fill: none;
484
+ stroke: var(--graview-ground);
485
+ stroke-width: 5;
486
+ stroke-linejoin: round;
487
+ stroke-linecap: round;
488
+ }
489
+ .graview-road[data-graview-lit] .graview-road-edge {
490
+ stroke: var(--graview-accent);
491
+ stroke-opacity: 0.9;
492
+ }
493
+
494
+ .graview-ground[data-graview-altitude] {
495
+ background:
496
+ linear-gradient(to top, color-mix(in oklab, var(--graview-ground) ${t==="light"?"93%":"88%"}, var(--graview-ink)) 0%, var(--graview-ground) 78%),
497
+ var(--graview-ground);
498
+ }
499
+
500
+
501
+ [data-graview-altitude] .graview-kind-open {
502
+ opacity: 0.5;
503
+ transition: opacity 150ms ease;
504
+ }
505
+
506
+ [data-graview-altitude] .graview-kind-open-word {
507
+ display: none;
508
+ }
509
+ [data-graview-altitude] .graview-kind-card:hover .graview-kind-open,
510
+ [data-graview-altitude] .graview-kind-card:focus-within .graview-kind-open,
511
+ [data-graview-altitude] .graview-kind-open[aria-expanded="true"] {
512
+ opacity: 1;
513
+ }
514
+ [data-graview-altitude] .graview-kind-card:hover .graview-kind-open-word,
515
+ [data-graview-altitude] .graview-kind-card:focus-within .graview-kind-open-word,
516
+ [data-graview-altitude] .graview-kind-open[aria-expanded="true"] .graview-kind-open-word {
517
+ display: inline;
518
+ }
519
+ [data-graview-altitude] .graview-kind-open {
520
+ display: inline-flex;
521
+ align-items: center;
522
+ justify-content: center;
523
+ flex: 0 0 auto;
524
+
525
+ min-height: max(1.5rem, 24px);
526
+
527
+ min-width: max(1.5rem, 24px);
528
+ padding: 1px 6px;
529
+ margin: -3px 0;
530
+
531
+ border-radius: 6px;
532
+ border: 1px solid transparent;
533
+ background: transparent;
534
+ box-shadow: none;
535
+ color: var(--graview-ink-muted);
536
+ cursor: pointer;
537
+
538
+ font-size: 0.75rem;
539
+ letter-spacing: 0.08em;
540
+ text-transform: uppercase;
541
+ line-height: 1;
542
+ white-space: nowrap;
543
+ }
544
+ [data-graview-altitude] .graview-kind-open:hover {
545
+ color: var(--graview-accent);
546
+ text-decoration: underline;
547
+ }
548
+
549
+
550
+ .graview-screen-grip {
551
+ display: none;
552
+ }
553
+ [data-graview-altitude] [data-graview-screen] .graview-screen-grip {
554
+ display: flex;
555
+ align-items: center;
556
+ gap: 8px;
557
+ position: absolute;
558
+ left: 0;
559
+ right: 0;
560
+ top: 0;
561
+
562
+ height: 32px;
563
+ padding: 0 6px 0 12px;
564
+ box-sizing: border-box;
565
+ cursor: grab;
566
+
567
+ background: var(--graview-panel-muted);
568
+ border-bottom: 1px solid var(--graview-edge);
569
+ z-index: ${W.lines};
570
+ }
571
+ [data-graview-altitude] [data-graview-screen] .graview-screen-title {
572
+ flex: 1 1 auto;
573
+ min-width: 0;
574
+ overflow: hidden;
575
+ text-overflow: ellipsis;
576
+ white-space: nowrap;
577
+ font-size: 0.8125rem;
578
+ font-weight: 600;
579
+ color: var(--graview-ink);
580
+ }
581
+ [data-graview-altitude] [data-graview-screen] .graview-screen-grip:active {
582
+ cursor: grabbing;
583
+ }
584
+ .graview-screen-fullscreen {
585
+ flex: 0 0 auto;
586
+ min-height: max(1.5rem, 24px);
587
+ padding: 1px 10px;
588
+ border-radius: 999px;
589
+ border: 1px solid var(--graview-edge);
590
+ background: var(--graview-panel);
591
+ color: var(--graview-accent);
592
+ font-size: 0.8125rem;
593
+ font-weight: 600;
594
+ white-space: nowrap;
595
+ cursor: pointer;
596
+ box-shadow: none;
597
+ }
598
+ .graview-screen-fullscreen:hover:not(:disabled) {
599
+ border-color: var(--graview-accent);
600
+ }
601
+ [data-graview-altitude] .graview-kind-members > [data-graview-pick] {
602
+ width: 100%;
603
+ box-sizing: border-box;
604
+ justify-content: flex-start;
605
+ max-width: none;
606
+ }
607
+
608
+ [data-graview-altitude] .graview-kind-face[data-graview-opened] {
609
+
610
+ display: flex !important;
611
+ flex-wrap: wrap;
612
+ justify-content: flex-start !important;
613
+ align-items: baseline !important;
614
+ column-gap: 10px;
615
+ row-gap: 2px;
616
+ border-radius: var(--graview-radius) !important;
617
+
618
+ background: var(--graview-panel) !important;
619
+ border-color: var(--graview-edge) !important;
620
+ text-shadow: none;
621
+ padding: 10px 12px 11px !important;
622
+ width: 236px;
623
+ max-width: 236px;
624
+ box-shadow: var(--graview-lift-high) !important;
625
+ }
626
+ [data-graview-altitude] .graview-kind-face[data-graview-opened] .graview-kind-members {
627
+ flex: 1 0 100%;
628
+ margin-top: 8px;
629
+ padding-top: 8px;
630
+ border-top: 1px solid var(--graview-edge);
631
+ }
632
+ [data-graview-altitude] .graview-kind-block[data-graview-opened] {
633
+ opacity: calc(var(--graview-altitude) * 0.22);
634
+ }
635
+
636
+
637
+ .graview-kind-tag {
638
+ position: absolute;
639
+ top: -9px;
640
+ right: 14px;
641
+ z-index: ${W.tag};
642
+ display: var(--graview-kit-tags, inline-flex);
643
+ align-items: center;
644
+ gap: 5px;
645
+ padding: 2px 8px;
646
+
647
+ border-radius: 4px;
648
+
649
+ border: 1px solid hsl(var(--graview-hue, 200) 45% var(--graview-tint-lightness) / 0.55);
650
+ color: hsl(var(--graview-hue, 200) 45% calc(var(--graview-tint-lightness) + ${t==="light"?"-32%":"28%"}));
651
+ background: var(--graview-float);
652
+ box-shadow: var(--graview-lift-low);
653
+ font-size: 0.6875rem;
654
+ letter-spacing: 0.14em;
655
+ text-transform: uppercase;
656
+ color: var(--graview-ink-faint);
657
+ pointer-events: none;
658
+ }
659
+
660
+
661
+ .graview-edge-hit:hover {
662
+ stroke: var(--graview-accent);
663
+ opacity: 0.3;
664
+ }
665
+
666
+
667
+
668
+ .graview-band-group {
669
+ display: grid;
670
+ align-content: center;
671
+ gap: 2px;
672
+ height: 100%;
673
+
674
+ min-height: max(1.75rem, 28px);
675
+ box-sizing: border-box;
676
+ padding: 6px 10px;
677
+ border-radius: var(--graview-radius-sm, 8px);
678
+ border: 1px solid var(--graview-edge);
679
+ background: var(--graview-panel);
680
+ color: var(--graview-ink);
681
+ overflow: hidden;
682
+ cursor: pointer;
683
+ }
684
+ .graview-band-group[data-graview-band="picture"] {
685
+ border-style: dashed;
686
+ }
687
+ .graview-band-group[data-graview-emphasis="lit"] {
688
+ border-color: var(--graview-accent);
689
+ }
690
+ .graview-band-group[data-graview-emphasis="dimmed"] {
691
+ opacity: 0.5;
692
+ }
693
+ .graview-band-group-head {
694
+ display: flex;
695
+ align-items: baseline;
696
+ gap: 6px;
697
+ min-width: 0;
698
+ }
699
+ .graview-band-group-name {
700
+ flex: 1;
701
+ min-width: 0;
702
+ font-weight: 600;
703
+ font-size: 0.9375rem;
704
+ line-height: 1.25;
705
+ white-space: nowrap;
706
+ overflow: hidden;
707
+ text-overflow: ellipsis;
708
+ }
709
+ .graview-band-group-open {
710
+ font-size: 0.75rem;
711
+ color: var(--graview-accent);
712
+ }
713
+ .graview-band-group-names {
714
+ font-size: 0.8125rem;
715
+ line-height: 1.3;
716
+ color: var(--graview-ink-muted);
717
+ white-space: nowrap;
718
+ overflow: hidden;
719
+ text-overflow: ellipsis;
720
+ }
721
+ .graview-band-group-count {
722
+ color: var(--graview-ink);
723
+ font-variant-numeric: tabular-nums;
724
+ }
725
+ .graview-beyond {
726
+ position: relative;
727
+ height: 100%;
728
+ box-sizing: border-box;
729
+ border-radius: var(--graview-radius-sm, 8px);
730
+ border: 1px solid var(--graview-edge);
731
+ background: var(--graview-panel);
732
+ }
733
+ .graview-beyond-more {
734
+ display: flex;
735
+ align-items: center;
736
+ gap: 6px;
737
+ width: 100%;
738
+ height: 100%;
739
+ min-height: max(1.75rem, 28px);
740
+ padding: var(--graview-pad-sm, 8px);
741
+ box-sizing: border-box;
742
+ border: none;
743
+ border-radius: inherit;
744
+ background: none;
745
+ color: var(--graview-ink-muted);
746
+ cursor: pointer;
747
+ font: inherit;
748
+ font-size: 0.875rem;
749
+ text-align: left;
750
+ }
751
+ .graview-beyond-more:hover,
752
+ .graview-beyond[data-graview-beyond-open] .graview-beyond-more {
753
+ color: var(--graview-accent);
754
+ background: var(--graview-wash);
755
+ }
756
+ .graview-beyond-count {
757
+ font-family: var(--graview-font-display);
758
+ font-size: 1.1875rem;
759
+ line-height: 1;
760
+ color: inherit;
761
+ }
762
+ .graview-beyond-word {
763
+ font-size: 0.75rem;
764
+ letter-spacing: 0.08em;
765
+ text-transform: uppercase;
766
+ }
767
+ .graview-beyond-chevron {
768
+ margin-left: auto;
769
+ font-size: 0.8125rem;
770
+ }
771
+
772
+ .graview-beyond-list {
773
+ position: absolute;
774
+ left: 0;
775
+ bottom: calc(100% + 6px);
776
+
777
+ z-index: ${F("popover")};
778
+ margin: 0;
779
+ padding: 6px;
780
+ list-style: none;
781
+ display: flex;
782
+ flex-direction: column;
783
+ gap: 1px;
784
+
785
+ min-width: 200px;
786
+ max-width: min(280px, 92%);
787
+ max-height: 60vh;
788
+ overflow: auto;
789
+ border-radius: var(--graview-radius-sm, 8px);
790
+ border: 1px solid var(--graview-edge);
791
+ background: var(--graview-panel);
792
+ box-shadow: 0 18px 44px -18px rgba(0, 0, 0, 0.45);
793
+ }
794
+ .graview-beyond-list button {
795
+ display: flex;
796
+ align-items: center;
797
+ gap: 10px;
798
+ width: 100%;
799
+
800
+ min-height: max(1.75rem, 28px);
801
+ padding: 0 8px;
802
+ border: none;
803
+ border-radius: var(--graview-radius-sm, 6px);
804
+ background: none;
805
+ color: var(--graview-ink);
806
+ cursor: pointer;
807
+ font: inherit;
808
+ font-size: 0.875rem;
809
+ text-align: left;
810
+ overflow-wrap: anywhere;
811
+ white-space: nowrap;
812
+ }
813
+ .graview-beyond-list button:hover {
814
+ color: var(--graview-accent);
815
+ background: var(--graview-wash);
816
+ }
817
+ .graview-beyond-list button[aria-current] {
818
+ color: var(--graview-ink-muted);
819
+ cursor: default;
820
+ }
821
+ .graview-beyond-tally {
822
+ margin-left: auto;
823
+ font-size: 0.75rem;
824
+ font-variant-numeric: tabular-nums;
825
+ color: var(--graview-ink-faint);
826
+ }
827
+ .graview-iso-roof {
828
+ fill: hsl(var(--graview-hue, 200) ${Ce(a.roof)});
829
+ stroke: ${a.roofEdge};
830
+ stroke-width: 1;
831
+ }
832
+ .graview-iso-right {
833
+ fill: hsl(var(--graview-hue, 200) ${Ce(a.right)});
834
+ }
835
+ .graview-iso-left {
836
+ fill: hsl(var(--graview-hue, 200) ${Ce(a.left)});
837
+ }
838
+
839
+ [data-graview-altitude] .graview-kind-face {
840
+ position: absolute !important;
841
+ left: 50% !important;
842
+ top: 2% !important;
843
+ transform: translateX(-50%);
844
+ width: max-content;
845
+
846
+ max-width: none;
847
+ white-space: nowrap;
848
+ height: auto !important;
849
+ flex-direction: row !important;
850
+ align-items: baseline !important;
851
+ gap: 7px !important;
852
+ padding: 3px 4px !important;
853
+
854
+ border-color: transparent !important;
855
+ border-radius: 0 !important;
856
+ background: none !important;
857
+ box-shadow: none !important;
858
+ text-shadow: 0 0 3px var(--graview-ground), 0 0 6px var(--graview-ground), 0 0 10px var(--graview-ground);
859
+ z-index: ${W.tag};
860
+ }
861
+
862
+ [data-graview-altitude] .graview-kind-face > [data-graview-tally] {
863
+ top: auto !important;
864
+ bottom: 0;
865
+ height: 2px !important;
866
+ }
867
+ [data-graview-altitude] .graview-kind-face > [data-graview-tally]:not([data-graview-broken]) {
868
+ opacity: 0;
869
+ }
870
+ [data-graview-altitude] [data-graview-plot] .graview-kind-face {
871
+ top: calc(var(--graview-front-y) - 22px) !important;
872
+ }
873
+ [data-graview-altitude] [data-graview-plot] .graview-kind-face::after {
874
+ content: "";
875
+ position: absolute;
876
+ left: 50%;
877
+ top: 100%;
878
+ width: 1px;
879
+ height: 10px;
880
+ background: var(--graview-ink-faint);
881
+ }
882
+
883
+ [data-graview-altitude] [data-graview-landmark]:not([data-graview-plot] *) .graview-kind-face {
884
+ top: 0 !important;
885
+ transform: translate(-50%, calc(-100% - 7px));
886
+ }
887
+
888
+ [data-graview-altitude] .graview-drive-in {
889
+ top: calc(var(--graview-front-y, 42px) + 12px);
890
+ }
891
+
892
+ [data-graview-altitude] .graview-kind-face[data-graview-opened] ~ .graview-drive-in {
893
+ top: calc(var(--graview-front-y, 42px) - 22px - var(--graview-marquee-room, 0px) + 8px);
894
+ }
895
+
896
+ [data-graview-altitude] [data-graview-plot] .graview-kind-landmark {
897
+ bottom: auto;
898
+ top: calc(var(--graview-center-y, 50%) + 10px);
899
+ transform: translate(-50%, -100%) scale(calc(0.55 + var(--graview-altitude) * 0.45));
900
+ }
901
+
902
+ .graview-zoom {
903
+ position: absolute;
904
+ right: 16px;
905
+ bottom: 16px;
906
+
907
+ z-index: ${W.zoom};
908
+ display: inline-flex;
909
+ align-items: center;
910
+ gap: 2px;
911
+ padding: 2px;
912
+
913
+ border-radius: 8px;
914
+ border: 1px solid transparent;
915
+ background: var(--graview-float, var(--graview-panel));
916
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
917
+ }
918
+ .graview-zoom-button {
919
+ min-width: 32px;
920
+ min-height: 32px;
921
+ border: 0;
922
+ border-radius: 6px;
923
+ background: transparent;
924
+ color: var(--graview-ink);
925
+ font: inherit;
926
+ font-size: 1.0625rem;
927
+ line-height: 1;
928
+ cursor: pointer;
929
+ }
930
+ .graview-zoom-button:hover:not(:disabled) {
931
+ background: var(--graview-edge);
932
+ }
933
+ .graview-zoom-button:disabled {
934
+ opacity: 0.35;
935
+ cursor: default;
936
+ }
937
+ .graview-zoom-level {
938
+ min-width: 3.2em;
939
+ text-align: center;
940
+ font-size: 0.8125rem;
941
+ color: var(--graview-ink-faint);
942
+ font-variant-numeric: tabular-nums;
943
+ }
944
+
945
+
946
+
947
+ [data-graview-altitude] [data-graview-screen] > [data-graview-natural],
948
+ [data-graview-altitude] [data-graview-screen] > :not([data-graview-natural]):not(.graview-kind-tag) {
949
+ outline: 2px solid color-mix(in oklab, var(--graview-ink) 60%, var(--graview-panel));
950
+ outline-offset: 0;
951
+ background: var(--graview-panel);
952
+ }
953
+ [data-graview-altitude] [data-graview-screen] > :not([data-graview-natural]):not(.graview-kind-tag) {
954
+ position: relative;
955
+ }
956
+ [data-graview-altitude] [data-graview-screen] > [data-graview-natural]::before,
957
+ [data-graview-altitude] [data-graview-screen] > [data-graview-natural]::after,
958
+ [data-graview-altitude] [data-graview-screen] > :not([data-graview-natural]):not(.graview-kind-tag)::before,
959
+ [data-graview-altitude] [data-graview-screen] > :not([data-graview-natural]):not(.graview-kind-tag)::after {
960
+ content: "";
961
+ position: absolute;
962
+ top: 100%;
963
+ width: 3px;
964
+ height: 16px;
965
+ background: color-mix(in oklab, var(--graview-ink) 60%, var(--graview-panel));
966
+ }
967
+ [data-graview-altitude] [data-graview-screen] > [data-graview-natural]::before,
968
+ [data-graview-altitude] [data-graview-screen] > :not([data-graview-natural]):not(.graview-kind-tag)::before { left: 22%; }
969
+ [data-graview-altitude] [data-graview-screen] > [data-graview-natural]::after,
970
+ [data-graview-altitude] [data-graview-screen] > :not([data-graview-natural]):not(.graview-kind-tag)::after { right: 22%; }
971
+
972
+
973
+
974
+
975
+
976
+ [data-graview-pinned] > :not([data-graview-natural]):not(.graview-kind-tag),
977
+ [data-graview-pinned] > [data-graview-natural] > * {
978
+ outline: 1px dashed var(--graview-edge-bright);
979
+ outline-offset: 3px;
980
+ border-radius: var(--graview-radius);
981
+ }
982
+
983
+ [data-graview-altitude] [data-graview-pinned] > :not([data-graview-natural]):not(.graview-kind-tag),
984
+ [data-graview-altitude] [data-graview-pinned] > [data-graview-natural] > * {
985
+ outline: none;
986
+ }
987
+ [data-graview-stage="dom"] [data-graview-view] > :not([data-graview-natural]),
988
+ [data-graview-stage="dom"] [data-graview-view] > [data-graview-natural] > * {
989
+ pointer-events: auto;
990
+ }
991
+
992
+ [data-graview-record-focus] > :not(.graview-kind-tag) {
993
+ min-height: 0;
994
+ max-height: 100%;
995
+ overflow-y: auto;
996
+ flex-shrink: 1;
997
+ }
998
+ [data-graview-view][data-graview-selected] {
999
+ filter: drop-shadow(0 0 14px var(--graview-accent-dim));
1000
+ }
1001
+ [data-graview-touched] > * {
1002
+ animation: graview-touched 1100ms cubic-bezier(0.22, 1, 0.36, 1);
1003
+ border-radius: 10px;
1004
+ }
1005
+
1006
+
1007
+ [data-graview-activity] {
1008
+ --graview-activity: var(--graview-accent);
1009
+ }
1010
+ [data-graview-activity="autonomous"] {
1011
+ --graview-activity: hsl(212 72% 62%);
1012
+ }
1013
+ [data-graview-activity="co-edited"] {
1014
+ --graview-activity: hsl(280 60% 66%);
1015
+ }
1016
+ [data-graview-activity="rule"] {
1017
+ --graview-activity: var(--graview-warn);
1018
+ }
1019
+ [data-graview-view][data-graview-wrote] > * {
1020
+ animation: graview-landed 900ms cubic-bezier(0.22, 1, 0.36, 1);
1021
+ border-radius: 10px;
1022
+ }
1023
+ [data-graview-view][data-graview-read] > :not([data-graview-natural]):not(.graview-kind-tag),
1024
+ [data-graview-view][data-graview-read] > [data-graview-natural] > * {
1025
+ outline: 1px dashed transparent;
1026
+ outline-offset: 3px;
1027
+ border-radius: 10px;
1028
+ animation: graview-considered 1800ms ease-out;
1029
+ }
1030
+
1031
+
1032
+ [data-graview-view][data-graview-broke] > * {
1033
+ box-shadow: 0 0 0 1px var(--graview-warn), 0 0 22px -6px var(--graview-warn);
1034
+ border-radius: 10px;
1035
+ }
1036
+ [data-graview-connector][data-graview-activity] {
1037
+ animation: graview-relation 1200ms cubic-bezier(0.22, 1, 0.36, 1);
1038
+ }`}function Fe(t="dark",a={}){let p=la(t);return a.scope===void 0?p:Et(p,a.scope)}var K=w(ae(),1);var ge=w(E(),1);function Ke(){let{store:t}=T(),a=At(),p=(0,K.useMemo)(()=>t.graph.allEdges().length>0,[t,a]),[s,i]=(0,K.useState)(!1),v=(0,K.useId)(),b=(0,K.useRef)(null),m=(0,K.useRef)(null);return(0,K.useEffect)(()=>{if(!s)return;let x=S=>{let L=S.target;L&&(m.current?.contains(L)||b.current?.contains(L))||i(!1)};return document.addEventListener("pointerdown",x,!0),()=>document.removeEventListener("pointerdown",x,!0)},[s]),p?(0,ge.jsxs)("div",{style:{display:"contents"},onKeyDown:x=>{x.key!=="Escape"||!s||(x.preventDefault(),x.stopPropagation(),i(!1),b.current?.focus({preventScroll:!0}))},children:[(0,ge.jsx)("button",{ref:b,type:"button","data-testid":"lines-key","aria-expanded":s,"aria-controls":v,title:"What the lines mean",onClick:()=>i(x=>!x),style:{position:"absolute",top:60,right:14,zIndex:F("overview"),height:30,padding:"0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.8125rem",color:s?"var(--graview-accent)":"var(--graview-ink-muted)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)"},children:"Key"}),s?(0,ge.jsx)("div",{ref:m,id:v,"data-testid":"lines-key-pane","data-graview-offstage":"",style:{position:"absolute",top:98,right:14,zIndex:F("rail"),width:_t,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:(0,ge.jsx)(qt,{inside:!0})}):null]}):null}var h=w(ae(),1);var l=w(E(),1),da="A";function qe({placement:t="float"}={}){let{store:a,menuAt:p,setMenuAt:s,view:i,registerActsDoor:v}=T();(0,h.useEffect)(()=>{if(t==="menu")return v({key:da,open:e=>{let o=e.getBoundingClientRect(),r=e.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??e.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0;s({x:Math.round(o.left+Math.min(16,o.width/2)),y:Math.round(Math.min(o.bottom,o.top+36)),...r?{on:r}:{}})}}),()=>v(null)},[t,v,s]);let b=(0,h.useRef)(null),m=(0,h.useRef)(null),x=(0,h.useRef)(null),S=e=>{let o=e.closest("[data-graview-asking]")?.getAttribute("data-graview-asking"),r=e.getAttribute("data-pin-for"),U=o??e.getAttribute("data-affordance")??(r===null?null:`pin:${r}`);m.current=U===null?null:{key:U,element:e}};(0,h.useEffect)(()=>{let e=b.current,o=m.current;if(o===null||document.activeElement!==document.body||o.element.isConnected)return;let r=o.key;if(!e){m.current=null,x.current?.focus();return}((r.startsWith("pin:")?e.querySelector(`[data-pin-for="${CSS.escape(r.slice(4))}"]`):null)??e.querySelector(`[data-affordance="${CSS.escape(r)}"]:not([disabled])`)??e).focus()});let[L,z]=(0,h.useState)(null);(0,h.useLayoutEffect)(()=>{let e=b.current?.offsetParent??b.current?.parentElement;if(e instanceof HTMLElement&&(x.current=e),!e)return;let o=e.getBoundingClientRect();z(r=>r&&r.left===o.left&&r.top===o.top&&r.width===o.width&&r.height===o.height?r:{left:o.left,top:o.top,width:o.width,height:o.height})});let{selection:c,set:C,clear:O}=De(),[$,J]=(0,h.useState)(()=>Bt()),Z=p?.on??c[c.length-1],G=(0,h.useMemo)(()=>({pins:$,...Z===void 0?{}:{focus:Z}}),[$,Z]),ne=(0,h.useMemo)(()=>new Set(a.allMutations().filter(e=>e.pinned).map(e=>e.name)),[a]),{affordances:f,withheld:P,observations:oe}=Wt(G),N=oe.some(e=>e.id.startsWith("schema:waits:")),{apply:Y,preview:D}=Ft(),[_,j]=(0,h.useState)(null),[Te,ie]=(0,h.useState)(!1),[fe,pe]=(0,h.useState)(!1),[n,d]=(0,h.useState)(""),[g,A]=(0,h.useState)(null),M=(0,h.useRef)([]),ee=(e,o)=>{try{return D(e,o),Y(e,o),A(null),s(null),M.current=[],!0}catch(r){return A(pt(a.schema,a.allMutations(),r)),M.current=r instanceof gt?r.issues.map(U=>String(U.path[0]??"")).filter(Boolean):[],!1}},B=[...new Set(c.flatMap(e=>{let o=a.graph.getNode(e);return o?[o.kind]:[]}))],V=B.length>0?B:[...new Set(c.flatMap(e=>yt(e)))],k=c.length===1?ht(c[0]):null,ce=k?{from:a.graph.getNode(k.from),to:a.graph.getNode(k.to)}:null,Je=k?(()=>{let e=a.schema.tryDefinition(a.graph.getNode(k.from)?.kind??"")?.edges?.[k.kind],o=a.graph.getNode(k.to);return e?.inverse&&o?`From ${Q(a,o.id)}: ${e.inverse}`:null})():null;(0,h.useEffect)(()=>{j(null),ie(!1),pe(!1),A(null),d("")},[c]);let y=p!==null,aa=t==="menu"&&!y,ue=(0,h.useRef)(p);ue.current=p;let Ze=Ee("acts",{open:y&&t==="menu",onOpenChange:e=>{e||s(null)},at:()=>ue.current?{x:ue.current.x,y:ue.current.y}:null,returnTo:()=>{let e=ue.current?.on;return e?document.querySelector(`[data-graview-view="${CSS.escape(e)}"]`):null},align:"start"}),et=(L?.width??Number.POSITIVE_INFINITY)<564;if((0,h.useLayoutEffect)(()=>{let e=b.current?.offsetParent;if(!e||!et||y)return;let o=b.current?.getBoundingClientRect().height??0,r=`${Math.round(o)+20}px`;if(e.style.paddingBottom===r)return;let U=e.style.paddingBottom;return e.style.paddingBottom=r,()=>{e.style.paddingBottom=U}}),c.length===0&&!y)return null;let tt=!(c.length===1&&c[0]===i.focusId),at=Math.max(1,Math.min(9,f.length)),se=[...f.filter(e=>e.provider==="invariant"&&!e.destructive),...f.filter(e=>e.pinned&&e.provider!=="invariant"&&!e.destructive),...f.filter(e=>!e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...f.filter(e=>e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...f.filter(e=>e.destructive)],rt=se.length>at&&!y,it=n.trim().toLowerCase(),te=rt&&it.length>0?se.filter(e=>`${e.label} ${e.why}`.toLowerCase().includes(it)):null,Re=te??(Te||y?se:se.slice(0,at)),nt=te?0:se.length-Re.length,be=[];for(let e of Re){let o=!y&&e.provider==="invariant",r=!y&&!o&&e.pinned!==void 0&&!e.destructive,U=!y&&!o&&!r&&e.ties===!0&&!e.destructive,st=o?e.why:r?"pinned":U?"its ties":null,ia=o?"violation":r||U?"ties":null,He=be[be.length-1];He&&He.heading===st?He.items.push(e):be.push({heading:st,tone:ia,items:[e]})}let Ie=f.find(e=>e.id===_),ve=c.length===1?Q(a,c[0]):null,ot=e=>{if(!ve)return e;let o=e.startsWith(`"${ve}"`)?e.slice(ve.length+2):e.startsWith(ve)?e.slice(ve.length):null;if(o===null)return e;let r=o.trimStart();return r.length===0?e:r[0].toUpperCase()+r.slice(1)},ra=new Set(y?[]:Re.filter(e=>e.provider==="invariant").map(e=>e.why)),le=oe.filter(e=>!ra.has(e.text)).map(e=>({...e,text:ot(e.text)}));return aa?null:(0,l.jsxs)("section",{...y?Ze.pane:{},ref:e=>{b.current=e,y&&Ze.pane.ref(e)},"aria-label":"Inspector","data-graview-offstage":"","data-testid":y?"context-menu":"inspector-strip",tabIndex:-1,onFocus:e=>S(e.target),onBlur:e=>{e.relatedTarget!==null&&(m.current=null)},onMouseDown:e=>e.stopPropagation(),style:{...y?$e:{position:"absolute",zIndex:F("rail")},boxSizing:"border-box",display:"flex",flexDirection:"column",gap:7,padding:"9px 12px",borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",...y?{width:300,maxHeight:"min(52cqh, 420px)",overflow:"auto"}:et?{left:10,right:10,width:"auto",bottom:10,maxHeight:"min(42cqh, 300px)",overflow:"auto"}:{left:14,top:i.overview?"min(296px, 38cqh)":44,width:236,maxHeight:i.overview?"calc(100cqh - min(296px, 38cqh) - 20px)":"calc(68cqh - 94px)",overflow:"auto"}},children:[(0,l.jsx)("h2",{style:{...ze,margin:0},children:"Inspector"}),(0,l.jsxs)("div",{style:{display:tt||!y?"flex":"none",alignItems:"baseline",flexWrap:"wrap",gap:"2px 8px",minWidth:0,paddingRight:y?0:24},children:[tt?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("strong",{style:{fontSize:"0.9375rem",whiteSpace:"nowrap"},children:c.length===1?Q(a,c[0]):`${c.length} selected`}),B.length>0||k?(0,l.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:k?"relation":B.join(" \xB7 ")}):null,c.length===1&&!k?(0,l.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:i.expanded.includes(c[0])?"\xB7 double-click closes":"\xB7 double-click opens"}):null]}):null,(0,l.jsx)("span",{style:{flex:"1 1 auto"}})]}),y?null:(0,l.jsx)("button",{type:"button",onClick:()=>{s(null),O()},"aria-label":"Clear selection",title:"Clear selection",style:{position:"absolute",top:6,right:6,flex:"0 0 auto",width:24,height:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.875rem",lineHeight:1,borderRadius:7},children:"\xD7"}),k&&ce?(0,l.jsxs)("div",{style:{display:"grid",gap:6},children:[Je?(0,l.jsx)("p",{"data-testid":"edge-said",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:Je}):null,(0,l.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[["from",ce.from],["to",ce.to]].map(([e,o],r)=>(0,l.jsxs)(h.Fragment,{children:[r===1?(0,l.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-ink-faint)"},children:"\u2192"}):null,o?(0,l.jsx)("button",{type:"button","data-testid":`edge-${e}`,onClick:()=>C([o.id]),title:`Select ${Q(a,o.id)}`,style:{fontSize:"0.8125rem",padding:"3px 9px",borderRadius:6},children:Q(a,o.id)}):(0,l.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"gone"})]},e))})]}):null,le.length>0?(0,l.jsx)("div",{"data-testid":"observations",title:le.map(e=>e.text).join(`
1039
+ `),style:{display:"grid",gap:3},children:le.slice(0,2).map(e=>(0,l.jsxs)("p",{style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[e.text,e===le[1]&&le.length>2?(0,l.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" +",le.length-2]}):null]},e.id))}):null,g?(0,l.jsx)("p",{"data-testid":"refused",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-warn)"},children:g}):null,rt?(0,l.jsx)("input",{"data-testid":"action-filter",value:n,onChange:e=>d(e.target.value),placeholder:`Filter ${se.length} actions\u2026`,"aria-label":"Filter actions",onKeyDown:e=>{if(e.key==="Escape"){e.stopPropagation(),n.length>0?d(""):e.currentTarget.blur();return}if(e.key==="Enter"&&te?.length===1){let o=te[0];if(o.destructive)return;o.open.length>0?j(o.id):ee(o)&&d("")}},style:{font:"inherit",fontSize:"0.875rem",padding:"5px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}):null,te!==null&&te.length===0?(0,l.jsxs)("p",{"data-testid":"no-matches",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:["Nothing offered here matches \u201C",n.trim(),"\u201D."]}):null,f.length===0&&!N?(0,l.jsx)("p",{"data-testid":"no-affordances",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:P.length>0?`Nothing you may do with ${k?"this relation":V.length===1?Me(Le(a.schema.tryDefinition(V[0]),V[0])):"this mix of kinds"} \u2014 ${P.length} action${P.length===1?"":"s"} withheld.`:k?`Nothing can be done with this line yet \u2014 nothing this app declares makes or breaks \u201C${dt(a.schema,a.graph.getNode(k.from)?.kind??"",k.kind,"out")}\u201D.`:`Nothing can be done with ${V.length===1?Me(Le(a.schema.tryDefinition(V[0]),V[0])):"this mix of kinds"} yet \u2014 nothing this app declares acts on ${V.length===1?"it":"them"}.`}):(0,l.jsxs)("ol",{"data-testid":"affordances",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[be.map((e,o)=>(0,l.jsxs)(h.Fragment,{children:[e.heading?(0,l.jsxs)("li",{"data-graview-heading":e.tone,style:{fontSize:"0.75rem",lineHeight:1.4,color:e.tone==="violation"?"var(--graview-warn)":"var(--graview-ink-faint)",...e.tone!=="violation"?{letterSpacing:"0.12em",textTransform:"uppercase",fontSize:"0.75rem"}:{},padding:"2px 2px 1px",marginTop:o>0?6:0},children:[e.tone==="violation"?"\u26A0 ":"",e.tone==="violation"?ot(e.heading):e.heading]}):o>0?(0,l.jsx)("li",{"aria-hidden":"true",style:{borderTop:"1px solid var(--graview-edge)",margin:"6px 0 3px"}}):null,e.items.map(r=>(0,l.jsxs)("li",{style:{display:"flex",gap:2,alignItems:"stretch"},children:[(0,l.jsxs)("button",{type:"button","data-affordance":r.id,"data-rank":r.rank,"data-graview-destructive":r.destructive||void 0,"aria-pressed":_===r.id,title:r.why,style:{padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:_===r.id?"var(--graview-accent)":y?"transparent":"var(--graview-edge)",background:y?"none":"var(--graview-panel)",boxShadow:"none",...r.destructive?{color:"var(--graview-warn)"}:{},..._===r.id?{color:"var(--graview-accent)"}:{}},onClick:()=>{if(r.open.length>0){j(_===r.id?null:r.id);return}ee(r)},children:[r.label,r.open.length>0?(0,l.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:" \u2026"}):null,te?.length===1&&te[0]?.id===r.id&&!r.destructive?(0,l.jsx)("span",{"aria-hidden":"true",title:"Enter runs it",style:{float:"right",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"\u21B5"}):null]}),(0,l.jsx)("button",{type:"button","data-testid":"pin-toggle","data-pin-for":r.mutation,"aria-pressed":r.pinned!==void 0,"aria-label":r.pinned!==void 0?`Unpin ${r.label}`:`Pin ${r.label}`,title:r.pinned==="declared"?"Pinned by the app \u2014 unpin it for yourself":r.pinned==="user"?"Unpin":"Pin to the top",onClick:()=>J(Ot($,r.mutation,ne.has(r.mutation))),style:{flex:"0 0 auto",width:24,minHeight:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.75rem",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7,color:r.pinned==="user"?"var(--graview-accent)":r.pinned==="declared"?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:r.pinned!==void 0?"\u2605":"\u2606"})]},r.id))]},`${e.heading??"plain"}-${o}`)),nt>0?(0,l.jsx)("li",{children:(0,l.jsxs)("button",{type:"button",onClick:()=>ie(!0),title:`Show all ${f.length} actions`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",nt," more"]})}):null]}),P.length>0?(0,l.jsxs)("ul",{"data-testid":"withheld",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[P.slice(0,y||fe?P.length:3).map(e=>(0,l.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,l.jsx)("button",{type:"button",disabled:!0,"data-affordance":e.id,"data-rank":e.rank,"data-withheld":e.refusal.wouldNeed.join(",")||"nobody",style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8,borderStyle:"dashed",width:"100%",textAlign:"left",background:"none"},children:(0,l.jsx)("s",{children:e.label})}),(0,l.jsx)("span",{"data-testid":"withheld-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:e.refusal.message})]},e.id)),!y&&!fe&&P.length>3?(0,l.jsx)("li",{children:(0,l.jsxs)("button",{type:"button","data-testid":"withheld-more",onClick:()=>pe(!0),title:`Show all ${P.length} actions this seat may not take`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",P.length-3," more withheld"]})}):null]}):null,Ie?(0,l.jsx)(Rt,{affordance:Ie,onApply:e=>{if(ee(Ie,e))j(null);else return M.current},onCancel:()=>j(null)}):null]})}var ga=w(ae(),1);var X=w(E(),1);function _e(){let{view:t,go:a}=de(),{store:p,views:s,hiddenKinds:i}=T(),v=t.overview??!1,b=s.places().map(z=>z.kind).filter(z=>!i.has(z)),m=Lt(t,p.schema.kinds,b),x=()=>{a(ye(we(t,!1),m))},S=(()=>{if(!m)return null;let z=kt(m)[0],c=t.within?.view,C=(c?s.places().find(O=>O.as===c):void 0)??(z?s.places().find(O=>O.kind===z):void 0);return C?C.title:z?xe(p.schema,z):p.graph.getNode(m)?.label??null})(),L=v?S?`Down to ${S}`:"Down":"Up";return(0,X.jsxs)("button",{type:"button","data-testid":"overview",className:"graview-altitude-control","aria-pressed":v,"aria-label":L,title:v?`${L} \u2014 back down into the view`:"Up \u2014 the whole thing, from above",onClick:()=>v?x():a(we(t,!0)),style:{position:"absolute",top:14,right:14,zIndex:F("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":v?1:0,...v?{color:"var(--graview-accent)"}:{}},children:[(0,X.jsxs)("svg",{className:"graview-altitude-mark",width:"16",height:"16",viewBox:"0 0 12 12","aria-hidden":"true",children:[(0,X.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,X.jsx)("circle",{className:"graview-altitude-mark-apex",cx:"6",cy:"4",r:"1.5",fill:"currentColor"}),(0,X.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"left",cx:"1.6",cy:"7.4",r:"1.2",fill:"currentColor"}),(0,X.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"right",cx:"10.4",cy:"7.4",r:"1.2",fill:"currentColor"})]}),(0,X.jsx)("span",{className:"graview-altitude-label",children:L})]})}var Ue=w(E(),1);function Ge(){let{administered:t}=T(),{view:a,go:p}=de(),s=t.filter(i=>i.canShow);return s.length===0?null:(0,Ue.jsx)("div",{role:"group","aria-label":"Administered","data-testid":"administered",style:{display:"flex",gap:6},children:s.map(i=>(0,Ue.jsx)("button",{type:"button","aria-pressed":i.shown,"data-testid":`show-${i.name}`,title:i.shown?`Hide the ${i.name}'s own districts again`:i.description??`Show the ${i.name}'s own districts beside the domain`,onClick:()=>p(mt(a,i.name,!i.shown)),style:{padding:"3px 11px",borderRadius:999,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:i.shown?"var(--graview-accent)":"var(--graview-edge)",color:i.shown?"var(--graview-accent)":"var(--graview-ink-muted)",background:i.shown?"var(--graview-panel)":"transparent"},children:i.shown?`Hide the ${i.name}`:`Show the ${i.name}`},i.name))})}var R=w(ae(),1);var u=w(E(),1),pa=t=>t.about==="rule"?"rule:":t.about==="act"?"act:":t.kind;function Vt({compact:t=!1}){let{store:a,view:p,setView:s,principal:i,setMenuAt:v,brand:b,seatTalk:m}=T(),x=zt(m),S=Ct(),L=Tt(),z=Nt().marks.flag,c=(0,R.useRef)(null),C=(0,R.useId)(),[O,$]=(0,R.useState)(!1),[J,Z]=(0,R.useState)(null),[G,ne]=(0,R.useState)(null),f=p.q??"";(0,R.useEffect)(()=>{let n=d=>{if(d.defaultPrevented)return;let g=d.key.toLowerCase()==="k"&&(d.metaKey||d.ctrlKey)&&!d.altKey&&!d.shiftKey,A=d.key==="/"&&!d.metaKey&&!d.ctrlKey&&!d.altKey;if(!g&&!A)return;let M=c.current;if(!M)return;let ee=M.closest("[data-graview-embed]"),B=d.target,V=B===document.body||B===document.documentElement||B===window;if(ee&&!(g&&V||B instanceof Node&&ee.contains(B)))return;let k=document.activeElement,ce=k instanceof HTMLInputElement||k instanceof HTMLTextAreaElement||k instanceof HTMLSelectElement||k instanceof HTMLElement&&k.isContentEditable;A&&ce||(d.preventDefault(),M.getClientRects().length===0&&M.closest("[data-graview-app-bar]")?.querySelector('[data-testid="app-find-open"]')?.click(),M.focus({preventScroll:!0}),M.select(),$(!0))};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[]);let P=(0,R.useMemo)(()=>G&&f.trim()?ct(a,G,S?.words??f,{principal:i,limit:4}):[],[a,f,S,G,i]),oe=(0,R.useMemo)(()=>{let n=new Map;for(let[d,g]of(S?.hits??[]).entries()){if(g.about==="act")continue;let A=pa(g),M=n.get(A)??[];if(M.push({id:`${C}-${d}`,hit:g}),n.set(A,M),g.about==="node"&&g.id===G)for(let[ee,B]of P.entries())M.push({id:`${C}-${d}-act-${ee}`,hit:B})}return[...n.entries()]},[S,P,G,C]),N=x.drawn>0&&f.trim()?{id:`${C}-ask`,ask:f.trim()}:null,Y=(0,R.useMemo)(()=>[...oe.flatMap(([,n])=>n),...N?[N]:[]],[oe,N?.ask]),D=Y.find(n=>n.id===J)??Y[0];(0,R.useEffect)(()=>{Z(null),ne(null)},[f]);let _=n=>{if(n){if(Z(n.id),"ask"in n){ne(null);return}n.hit.about==="node"?ne(n.hit.id):n.hit.about!=="act"&&ne(null)}},j=n=>{if(!n)return;if("ask"in n){m.ask(n.ask),s(g=>ke(g)),$(!1);return}let d=n.hit;switch(d.about){case"node":s(g=>Se(ye(we(g,!1),d.id),[d.id]));break;case"kind":s(g=>St(g,xt(d.kind),{ownPicture:!0,...g.q?{carry:g.q}:{}}));break;case"place":s(g=>$t(g,d.kind,d.as));break;case"rule":{let g=L.filter(A=>A.invariant===d.name).flatMap(A=>A.nodeIds);s(A=>Se(A,[...new Set(g)]));break}case"act":{s(A=>Se(A,[d.subject]));let g=c.current?.getBoundingClientRect();v({x:g?.left??0,y:(g?.bottom??0)+6,on:d.subject});break}}$(!1),c.current?.blur()},Te=S?va(S.byKind,S.hits,a.schema):"",ie=O&&f.trim().length>0,fe=(0,R.useCallback)(()=>{let n=c.current?.closest("[data-graview-app-bar]")?.getBoundingClientRect();if(n)return{x:n.right,y:n.bottom-wa};let d=c.current?.getBoundingClientRect();return d?{x:d.right,y:d.bottom}:null},[]),pe=Ee("find",{open:ie,onOpenChange:n=>{n||$(!1)},...t?{at:fe}:{}});return(0,u.jsxs)("div",{style:{position:"relative",minWidth:0,flex:"1 1 auto"},"data-testid":"find",children:[(0,u.jsx)("input",{ref:n=>{c.current=n,pe.trigger.ref(n)},"data-graview-popover-trigger":"find",type:"search",role:"combobox","aria-label":"Find anything","aria-expanded":ie,"aria-controls":C,"aria-autocomplete":"list",...ie&&D?{"aria-activedescendant":D.id}:{},"data-testid":"find-box",placeholder:"Find\u2026","aria-keyshortcuts":"/ Meta+K Control+K",value:f,onChange:n=>{let d=n.target.value;$(!0),s(g=>ft(g,d.length>0?d:null))},onFocus:()=>$(!0),onBlur:()=>$(!1),onKeyDown:n=>{let d=J!==null&&D?Y.indexOf(D):-1;n.key==="ArrowDown"?(n.preventDefault(),$(!0),_(Y[Math.min(Y.length-1,d+1)])):n.key==="ArrowUp"?(n.preventDefault(),_(Y[Math.max(0,d-1)])):n.key==="Enter"?(n.preventDefault(),j(D)):n.key==="Escape"&&(n.preventDefault(),f?s(g=>ke(g)):c.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 ${f?"var(--graview-accent)":"var(--graview-edge)"}`,borderRadius:8}}),(0,u.jsx)("span",{role:"status","aria-live":"polite",style:ze,"data-testid":"find-count",children:f.trim()?Te:""}),(0,u.jsxs)("div",{...pe.pane,id:C,role:"listbox","aria-label":f?`What \u201C${f}\u201D finds`:"What the words find","data-testid":"find-strip",hidden:!ie,onMouseDown:n=>n.preventDefault(),style:t?{...Yt,...ha}:Yt,children:[Y.every(n=>"ask"in n)?(0,u.jsxs)("p",{role:"presentation",style:{margin:0,padding:"10px 12px",color:"var(--graview-ink-muted)",fontSize:"0.875rem"},"data-testid":"find-nothing",children:["Nothing here is called \u201C",S?.words||f,"\u201D."]}):oe.map(([n,d])=>(0,u.jsxs)("div",{role:"group","aria-label":Gt(n,a.schema),children:[(0,u.jsxs)("div",{role:"presentation",style:ma,children:[n!=="rule:"?(0,u.jsx)(ua,{kind:n,accents:b?.accents}):null,Gt(n,a.schema)]}),d.map(g=>(0,u.jsx)("div",{id:g.id,role:"option","aria-selected":g===D,"data-testid":"find-hit","data-about":g.hit.about,onMouseEnter:()=>_(g),onClick:()=>j(g),style:{...jt,...g.hit.about==="act"?{paddingLeft:30}:{},background:g===D?"var(--graview-panel-muted)":"transparent"},children:(0,u.jsx)(ca,{hit:g.hit,flag:z})},g.id))]},n)),N?(0,u.jsx)("div",{id:N.id,role:"option","aria-selected":N===D||D?.id===N.id,"data-testid":"find-ask",onMouseEnter:()=>_(N),onClick:()=>j(N),style:{...jt,borderTop:"1px solid var(--graview-edge)",marginTop:4,background:D?.id===N.id?"var(--graview-panel-muted)":"transparent"},children:(0,u.jsxs)("span",{children:["Ask: ",(0,u.jsxs)("span",{style:{fontWeight:600},children:["\u2018",N.ask,"\u2019"]})]})}):null,S&&S.searched.past===!1&&S.searched.kinds.some(n=>a.schema.tryDefinition(n)?.lifecycle)?(0,u.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 ca({hit:t,flag:a}){switch(t.about){case"node":return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("span",{style:{fontWeight:600,overflowWrap:"anywhere"},children:[t.flagged?(0,u.jsxs)("span",{style:{color:"var(--graview-warn)"},children:[a," "]}):null,t.label,t.apart?(0,u.jsxs)("span",{style:me,children:[" \xB7 ",t.apart]}):null,t.current?null:(0,u.jsx)("span",{style:me,children:" \xB7 past"})]}),t.why.field!=="label"?(0,u.jsxs)("span",{style:me,children:[t.why.reading.toLowerCase(),": ",t.why.fragment]}):null]});case"kind":return(0,u.jsxs)("span",{children:[t.label,(0,u.jsxs)("span",{style:me,children:[" \xB7 ",t.count," match"]})]});case"place":return(0,u.jsxs)("span",{children:["Go to ",t.title]});case"rule":return(0,u.jsxs)("span",{children:["The rule \u201C",t.label,"\u201D"]});case"act":return(0,u.jsxs)("span",{style:t.destructive?{color:"var(--graview-warn)"}:void 0,children:[t.title,(0,u.jsxs)("span",{style:me,children:[" \xB7 ",t.why.field==="title"?"act":`on ${t.why.fragment}`]})]})}}function ua({kind:t,accents:a}){let p=Math.round(ut(t,a));return(0,u.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:2,flex:"0 0 auto",background:`hsl(${p} 55% 52%)`}})}function Gt(t,a){return t==="rule:"?"Rules":t==="act:"?"Acts":a.tryDefinition(t)?.plural??`${t}s`}function va(t,a,p){let s=Object.entries(t).map(([v,b])=>lt(p,v,b)),i=a.filter(v=>v.about==="kind"||v.about==="place"||v.about==="rule").length;return i>0&&s.push(`${i} ${i===1?"place or rule":"places and rules"}`),s.length===0?"Nothing found":`${s.join(", ")} found`}var Yt={...$e,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"},wa=6,ha={width:"var(--graview-bar-width, 100vw)",maxHeight:"55vh",borderRadius:0,borderLeft:"none",borderRight:"none"},ma={display:"flex",alignItems:"center",gap:6,padding:"8px 12px 2px",fontSize:"0.6875rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},jt={display:"grid",gap:1,minHeight:32,padding:"5px 12px",alignContent:"center",cursor:"pointer",fontSize:"0.875rem",lineHeight:1.35,color:"var(--graview-ink)"},me={color:"var(--graview-ink-muted)",fontSize:"0.8125rem",fontWeight:400};var Ae=w(ae(),1),Ye=w(na(),1);var Xt=w(E(),1);function Qt(){let{following:t,follow:a}=T();return t?(0,Xt.jsxs)("button",{type:"button","data-testid":"following-who",onClick:()=>a(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 ",t.name]}):null}var Jt=w(ae(),1);var I=w(E(),1);function Zt({home:t,homeLabel:a,children:p,onPicture:s=!1}){let{view:i,focus:v,show:b,go:m}=de(),{store:x}=T(),{movedByHand:S}=T(),L=S&&(i.pan!==void 0||Object.keys(i.pins).length>0),z=i.focusId&&i.focusId!==t?x.graph.getNode(i.focusId):void 0,c=J=>xe(x.schema,J),C={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"},O=a!==void 0&&z!==void 0,$=[];return z&&!s&&$.push({key:"focused",node:(0,I.jsxs)("button",{type:"button","data-testid":"focused",onClick:()=>m(Ne({...i,focusId:t},!1)),title:Q(x,z.id),style:{...C,maxWidth:"min(14rem, 15vw)"},children:[(0,I.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:Q(x,z.id)}),(0,I.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),i.past&&$.push({key:"past",node:(0,I.jsxs)("button",{type:"button","data-testid":"past",onClick:()=>m(bt(i,!1)),title:"Back to now \u2014 retired things leave the picture again",style:C,children:["the past",(0,I.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),i.zoom&&$.push({key:"zoomed",node:(0,I.jsxs)("button",{type:"button","data-testid":"zoomed",onClick:()=>m(Ne(i,!1)),title:"Zoom back out",style:C,children:["zoomed in",(0,I.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),L&&$.push({key:"moved",node:(0,I.jsxs)("button",{type:"button","data-testid":"moved",onClick:()=>m(Pe(i)),title:"Put the camera and everything you dragged back where the layout wanted them",style:C,children:["moved",(0,I.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),i.relation&&$.push({key:"raised",node:(0,I.jsxs)("button",{type:"button","data-testid":"raised",onClick:()=>b(null),title:`Stop showing ${c(i.relation)}`,style:C,children:[c(i.relation),(0,I.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),s&&!O&&$.length===0&&p===void 0?null:(0,I.jsxs)("nav",{"aria-label":"View","data-testid":"trail",style:{display:"flex",alignItems:"center",gap:8,fontSize:"0.875rem",minWidth:0,...s?{pointerEvents:"auto",padding:"4px 6px",borderRadius:8,background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",overflow:"hidden"}:{}},children:[O?(0,I.jsx)("button",{type:"button",onClick:()=>v(t),style:{border:"none",background:"none",padding:"3px 0",minHeight:24,whiteSpace:"nowrap",color:"var(--graview-ink-muted)"},children:a}):null,$.map(({key:J,node:Z},G)=>(0,I.jsxs)(Jt.Fragment,{children:[O||G>0?(0,I.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:"\u203A"}):null,Z]},J)),p]})}var q=w(E(),1);function je(){let[t,a]=(0,Ae.useState)([]),p=(0,Ae.useCallback)(s=>{a(i=>{let v=s.phase!=="running"&&i[0]?.name===s.name&&i[0]?.at===s.at;return[s,...v?i.slice(1):i].slice(0,12)})},[]);return[t,p]}function Ve({find:t,calls:a,seat:p,remembers:s=!1}){return t?(0,q.jsxs)(q.Fragment,{children:[(0,Ye.createPortal)((0,q.jsx)(Vt,{compact:t.compact}),t.slot),t.own?(0,Ye.createPortal)((0,q.jsx)(It,{calls:a,remembers:s,...p!==void 0?{seat:p}:{}}),t.own):null]}):null}function Qe({home:t=null}){return(0,q.jsxs)("div",{"data-graview-scene-trail":"",style:{position:"absolute",top:14,left:14,maxWidth:"calc(100% - 150px)",zIndex:F("overview"),display:"flex",alignItems:"center",gap:6,minWidth:0,pointerEvents:"none"},children:[(0,q.jsx)(Zt,{home:t,onPicture:!0}),(0,q.jsx)("span",{style:{pointerEvents:"auto"},children:(0,q.jsx)(Qt,{})})]})}var re=w(ae(),1);var ea=w(E(),1),fa=wt(()=>import("./chunk.YSYT3ASK.js"));function Xe(){let{store:t,principal:a}=T(),p=(0,re.useContext)(Mt),s=(0,re.useRef)(null),i=(0,re.useRef)(!1);return(0,re.useEffect)(()=>()=>void(i.current=!0),[]),(0,re.useEffect)(()=>{let v=t.batches().length,b=fa().then(m=>m.sceneWay(t,a,p,v,s.current),()=>{});return()=>void b.then(m=>m?.(i.current))},[t,a,p]),(0,ea.jsx)("span",{ref:s,hidden:!0})}var ta=w(ae(),1);var H=w(E(),1);function Ir({address:t=!1,auto:a,seat:p,scheme:s,scope:i}){let v=(0,ta.useMemo)(()=>`${We({scope:`.${i}`})}
1040
+ ${Fe(s,{scope:`.${i}`})}`,[s,i]),b=Ht(),[m,x]=je();return(0,H.jsxs)("div",{"data-embed-content":"",style:{position:"relative",flex:a?`0 0 ${Kt}px`:"1 1 auto",minHeight:0,containerType:"size"},children:[(0,H.jsx)("style",{children:v}),t?(0,H.jsx)(Dt,{}):null,(0,H.jsx)(Pt,{renderer:"dom"}),(0,H.jsx)(Qe,{}),(0,H.jsx)(_e,{}),(0,H.jsx)(Ke,{}),(0,H.jsx)(Oe,{}),(0,H.jsx)(Be,{...p?{start:p}:{},onCall:x}),(0,H.jsx)(qe,{placement:"menu"}),(0,H.jsx)(Ve,{find:b,calls:m}),(0,H.jsx)(Xe,{})]})}function Hr(){return(0,H.jsx)(Ge,{})}export{Ir as SceneFace,Hr as SceneKeeping};