@popcorn245/cornfield-components 0.50.0 → 0.51.0
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.
- package/README.md +6 -2
- package/dist/chunks/corn-map-B240mjGE.js +122 -0
- package/dist/chunks/corn-review-CJ4u6APS.js +4417 -0
- package/dist/chunks/{_corn-default-tokens-BpIL6q5N.js → engine-ClfnAsgM.js} +990 -1044
- package/dist/chunks/{corn-map-CMNEW1lH.js → map-B6AeKeiu.js} +772 -887
- package/dist/chunks/review-source-CPiFTfyc.js +60 -0
- package/dist/chunks/scope-Dg_uzefP.js +136 -0
- package/dist/chunks/source-address-B7hYRgt8.js +251 -0
- package/dist/chunks/status-CYQD5PwL.js +614 -0
- package/dist/corn-map.js +1 -1
- package/dist/corn-review.js +1 -0
- package/dist/corn-scope.js +3 -3
- package/dist/index.js +5 -4
- package/dist/manifest.json +57 -22
- package/dist/tokens.css +2 -0
- package/dist/types/components.d.ts +135 -0
- package/dist/types/corn-review.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/version.json +1 -1
- package/package.json +5 -1
- package/dist/chunks/scope-CmIkJ1qf.js +0 -847
|
@@ -78,7 +78,6 @@ function e() {
|
|
|
78
78
|
scenario: null,
|
|
79
79
|
forgeLit: null,
|
|
80
80
|
runsMap: null,
|
|
81
|
-
threadIndex: null,
|
|
82
81
|
sceneVersion: 0
|
|
83
82
|
};
|
|
84
83
|
}
|
|
@@ -96,7 +95,7 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
96
95
|
}, y = () => s ? s.nodeType === 9 ? s.documentElement : s.nodeType === 11 ? s.host : s : null, b = o || e(), x = b.selectedNode || null, S = b.selectedEdge || null, C = {
|
|
97
96
|
node: x,
|
|
98
97
|
edge: S
|
|
99
|
-
}, w = [], T = !1,
|
|
98
|
+
}, w = [], T = !1, E = (e, t) => (e.node ? e.node.id : null) !== (t.node ? t.node.id : null) || e.edge !== t.edge, D = (e) => {
|
|
100
99
|
if (w.push(e), !T) {
|
|
101
100
|
T = !0;
|
|
102
101
|
try {
|
|
@@ -105,9 +104,9 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
105
104
|
node: x,
|
|
106
105
|
edge: S
|
|
107
106
|
};
|
|
108
|
-
if (p || !
|
|
107
|
+
if (p || !E(C, t)) continue;
|
|
109
108
|
let n = C;
|
|
110
|
-
C = t,
|
|
109
|
+
C = t, k.emit("selection", {
|
|
111
110
|
...t,
|
|
112
111
|
previous: n,
|
|
113
112
|
source: e
|
|
@@ -117,17 +116,17 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
117
116
|
T = !1;
|
|
118
117
|
}
|
|
119
118
|
}
|
|
120
|
-
},
|
|
119
|
+
}, O = (e, t, n, r) => {
|
|
121
120
|
let i = {
|
|
122
121
|
node: x,
|
|
123
122
|
edge: S
|
|
124
123
|
};
|
|
125
124
|
x = e || null, S = t || null;
|
|
126
|
-
let a =
|
|
125
|
+
let a = E(i, {
|
|
127
126
|
node: x,
|
|
128
127
|
edge: S
|
|
129
128
|
}), o = !1, s = () => {
|
|
130
|
-
o || (o = !0, a &&
|
|
129
|
+
o || (o = !0, a && D(n));
|
|
131
130
|
};
|
|
132
131
|
return r || s(), {
|
|
133
132
|
changed: a,
|
|
@@ -140,17 +139,17 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
140
139
|
configurable: !0,
|
|
141
140
|
get: () => x,
|
|
142
141
|
set: (e) => {
|
|
143
|
-
|
|
142
|
+
O(e, S, "state", !1);
|
|
144
143
|
}
|
|
145
144
|
}), Object.defineProperty(b, "selectedEdge", {
|
|
146
145
|
enumerable: !0,
|
|
147
146
|
configurable: !0,
|
|
148
147
|
get: () => S,
|
|
149
148
|
set: (e) => {
|
|
150
|
-
|
|
149
|
+
O(x, e, "state", !1);
|
|
151
150
|
}
|
|
152
151
|
});
|
|
153
|
-
let
|
|
152
|
+
let k = {
|
|
154
153
|
root: s,
|
|
155
154
|
doc: c,
|
|
156
155
|
win: l,
|
|
@@ -162,7 +161,7 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
162
161
|
return (m || globalThis.fetch)(typeof e == "string" ? v(e) : e, t);
|
|
163
162
|
},
|
|
164
163
|
touchScene() {
|
|
165
|
-
|
|
164
|
+
k.state.sceneVersion++;
|
|
166
165
|
let e = u.get("scene");
|
|
167
166
|
e && e.forEach((e) => e());
|
|
168
167
|
},
|
|
@@ -179,13 +178,13 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
179
178
|
if (n !== void 0) return n;
|
|
180
179
|
}
|
|
181
180
|
},
|
|
182
|
-
setSelection: (e, t = null, { source: n = "api", quiet: r = !1 } = {}) =>
|
|
181
|
+
setSelection: (e, t = null, { source: n = "api", quiet: r = !1 } = {}) => O(e, t, n, r),
|
|
183
182
|
el: (e) => s ? s.querySelector(`[id="${String(e).replace(/["\\]/g, "\\$&")}"]`) : null,
|
|
184
183
|
attach(e) {
|
|
185
184
|
if (g) throw Error("This instance already has a map");
|
|
186
|
-
g = e, s = e,
|
|
185
|
+
g = e, s = e, k.root = e;
|
|
187
186
|
let t = () => {
|
|
188
|
-
g === e && (g = null, s = h,
|
|
187
|
+
g === e && (g = null, s = h, k.root = h, k.release(t), p || k.emit("attach:released"));
|
|
189
188
|
};
|
|
190
189
|
return d.push(t), t;
|
|
191
190
|
},
|
|
@@ -206,21 +205,24 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
206
205
|
dpr: () => l && l.devicePixelRatio || 1,
|
|
207
206
|
hidden: () => !(!c || !c.hidden && c.visibilityState !== "hidden"),
|
|
208
207
|
onShown(e) {
|
|
209
|
-
return c ?
|
|
210
|
-
|
|
208
|
+
return c ? k.listen(c, "visibilitychange", () => {
|
|
209
|
+
k.hidden() || e();
|
|
211
210
|
}) : () => {};
|
|
212
211
|
},
|
|
213
212
|
offline: () => !!(l && l.navigator && l.navigator.onLine === !1),
|
|
214
213
|
onNetwork(e) {
|
|
215
214
|
if (!l) return () => {};
|
|
216
|
-
let t = [
|
|
215
|
+
let t = [k.listen(l, "offline", () => e(!0)), k.listen(l, "online", () => e(!1))];
|
|
217
216
|
return () => t.forEach((e) => e());
|
|
218
217
|
},
|
|
219
|
-
onWindowFocus: (e) => l ?
|
|
220
|
-
onPageHide: (e) => l ?
|
|
218
|
+
onWindowFocus: (e) => l ? k.listen(l, "focus", () => e()) : () => {},
|
|
219
|
+
onPageHide: (e) => l ? k.listen(l, "pagehide", () => e()) : () => {},
|
|
220
|
+
onResize: (e) => l ? k.listen(l, "resize", () => e()) : () => {},
|
|
221
|
+
onPageShow: (e) => l ? k.listen(l, "pageshow", () => e()) : () => {},
|
|
222
|
+
onPageFocus: (e) => c ? k.listen(c, "focusin", (t) => e(t)) : () => {},
|
|
221
223
|
onHide(e) {
|
|
222
|
-
return c ?
|
|
223
|
-
|
|
224
|
+
return c ? k.listen(c, "visibilitychange", () => {
|
|
225
|
+
k.hidden() && e();
|
|
224
226
|
}) : () => {};
|
|
225
227
|
},
|
|
226
228
|
store: {
|
|
@@ -245,7 +247,7 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
245
247
|
listen(e, t, n, r) {
|
|
246
248
|
e.addEventListener(t, n, r);
|
|
247
249
|
let i = () => {
|
|
248
|
-
e.removeEventListener(t, n, r),
|
|
250
|
+
e.removeEventListener(t, n, r), k.release(i);
|
|
249
251
|
};
|
|
250
252
|
return d.push(i), i;
|
|
251
253
|
},
|
|
@@ -257,7 +259,7 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
257
259
|
t >= 0 && d.splice(t, 1);
|
|
258
260
|
},
|
|
259
261
|
slot(e, t) {
|
|
260
|
-
return f.has(e) || f.set(e, t(
|
|
262
|
+
return f.has(e) || f.set(e, t(k)), f.get(e);
|
|
261
263
|
},
|
|
262
264
|
get ended() {
|
|
263
265
|
return p;
|
|
@@ -272,9 +274,9 @@ function n({ root: n = null, base: r = "", fetch: i, strings: a = {}, state: o }
|
|
|
272
274
|
u.clear(), f.clear();
|
|
273
275
|
}
|
|
274
276
|
},
|
|
275
|
-
viewEdges: () =>
|
|
277
|
+
viewEdges: () => k.state.view === "dataflow" && k.state.flow ? k.state.flow.edges : k.state.edges
|
|
276
278
|
};
|
|
277
|
-
return
|
|
279
|
+
return k;
|
|
278
280
|
}
|
|
279
281
|
// ../explorer/flow-style.js
|
|
280
282
|
var r = {
|
|
@@ -346,303 +348,27 @@ var r = {
|
|
|
346
348
|
color: "#a8a29e",
|
|
347
349
|
label: "App → the stack that serves its domain"
|
|
348
350
|
}
|
|
349
|
-
}, i = (e) => r[e.kind === "flow" ? e.flow : e.kind] || r.sync, a =
|
|
350
|
-
|
|
351
|
-
"
|
|
352
|
-
">": ">",
|
|
353
|
-
"\"": """,
|
|
354
|
-
"'": "'"
|
|
355
|
-
};
|
|
356
|
-
function o(e) {
|
|
357
|
-
return String(e ?? "").replace(/[&<>"']/g, (e) => a[e]);
|
|
351
|
+
}, i = (e) => r[e.kind === "flow" ? e.flow : e.kind] || r.sync, a = (e) => e.mark === "edit" ? e.editOp || "none" : e.mark || "none", o = (e) => !!e && !!e.mark && e.mark !== "none";
|
|
352
|
+
function s(e, t) {
|
|
353
|
+
return e === "before" ? a(t) !== "added" : e !== "after" || a(t) !== "removed";
|
|
358
354
|
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
"merged",
|
|
362
|
-
"closed",
|
|
363
|
-
"draft",
|
|
364
|
-
"queued",
|
|
365
|
-
"running",
|
|
366
|
-
"requested",
|
|
367
|
-
"claimed",
|
|
368
|
-
"working",
|
|
369
|
-
"waiting",
|
|
370
|
-
"done",
|
|
371
|
-
"failed",
|
|
372
|
-
"stopped",
|
|
373
|
-
"success",
|
|
374
|
-
"failure",
|
|
375
|
-
"added",
|
|
376
|
-
"changed",
|
|
377
|
-
"removed",
|
|
378
|
-
"edit",
|
|
379
|
-
"sent-back"
|
|
380
|
-
]), Object.freeze([
|
|
381
|
-
"added",
|
|
382
|
-
"changed",
|
|
383
|
-
"removed",
|
|
384
|
-
"edit"
|
|
385
|
-
]), Object.freeze([
|
|
386
|
-
"requested",
|
|
387
|
-
"claimed",
|
|
388
|
-
"working",
|
|
389
|
-
"waiting",
|
|
390
|
-
"done",
|
|
391
|
-
"failed",
|
|
392
|
-
"stopped"
|
|
393
|
-
]), Object.freeze({
|
|
394
|
-
quiet: "waiting",
|
|
395
|
-
"stop-requested": "stopped",
|
|
396
|
-
neutral: "done",
|
|
397
|
-
skipped: "done",
|
|
398
|
-
cancelled: "stopped",
|
|
399
|
-
approved: "success",
|
|
400
|
-
unreviewed: "waiting",
|
|
401
|
-
changed: "waiting",
|
|
402
|
-
missing: "failure",
|
|
403
|
-
allowed: "success",
|
|
404
|
-
refused: "failure",
|
|
405
|
-
mismatch: "failure",
|
|
406
|
-
pending: "running",
|
|
407
|
-
ok: "success",
|
|
408
|
-
bad: "failure",
|
|
409
|
-
stale: "waiting",
|
|
410
|
-
off: "stopped",
|
|
411
|
-
error: "failure",
|
|
412
|
-
idle: "running"
|
|
413
|
-
}), Object.freeze({
|
|
414
|
-
requested: "<circle cx=\"6\" cy=\"6\" r=\"4.2\" stroke-dasharray=\"2 1.8\"/>",
|
|
415
|
-
queued: "<circle cx=\"6\" cy=\"6\" r=\"4.2\" stroke-dasharray=\"2 1.8\"/>",
|
|
416
|
-
claimed: "<circle cx=\"6\" cy=\"6\" r=\"4.2\"/><circle cx=\"6\" cy=\"6\" r=\"1.4\" fill=\"currentColor\" stroke=\"none\"/>",
|
|
417
|
-
working: "<path class=\"hx-state-spin\" d=\"M6 1.8a4.2 4.2 0 1 1-4.2 4.2\"/>",
|
|
418
|
-
running: "<path class=\"hx-state-spin\" d=\"M6 1.8a4.2 4.2 0 1 1-4.2 4.2\"/>",
|
|
419
|
-
waiting: "<path d=\"M6 1.2L11 10.4H1Z\" stroke-linejoin=\"round\"/><path d=\"M6 4.6v2.7M6 8.6v.1\"/>",
|
|
420
|
-
done: "<path d=\"M2 6.4l2.6 2.6L10 3.4\"/>",
|
|
421
|
-
success: "<path d=\"M2 6.4l2.6 2.6L10 3.4\"/>",
|
|
422
|
-
failed: "<path d=\"M2.6 2.6l6.8 6.8M9.4 2.6L2.6 9.4\"/>",
|
|
423
|
-
failure: "<path d=\"M2.6 2.6l6.8 6.8M9.4 2.6L2.6 9.4\"/>",
|
|
424
|
-
stopped: "<rect x=\"2.4\" y=\"2.4\" width=\"7.2\" height=\"7.2\" rx=\"1\" fill=\"currentColor\"/>",
|
|
425
|
-
neutral: "<path d=\"M2.4 6h7.2\"/>",
|
|
426
|
-
skipped: "<path d=\"M2.4 6h7.2\"/>",
|
|
427
|
-
cancelled: "<circle cx=\"6\" cy=\"6\" r=\"4.2\"/><path d=\"M3 9L9 3\"/>",
|
|
428
|
-
"sent-back": "<path d=\"M4.6 2.2L2 4.8l2.6 2.6\"/><path d=\"M2.2 4.8H7a2.8 2.8 0 0 1 0 5.6H4.6\"/>"
|
|
429
|
-
}), Object.freeze([
|
|
430
|
-
["code", "Code: a branch and a pull request"],
|
|
431
|
-
["summary", "Summary of the conversation"],
|
|
432
|
-
["brief", "A brief for another run"],
|
|
433
|
-
["proposal", "A proposal drafted from the thread"]
|
|
434
|
-
]), Object.freeze({
|
|
435
|
-
merged: "done",
|
|
436
|
-
closed: "stopped",
|
|
437
|
-
quiet: "waiting",
|
|
438
|
-
"stop-requested": "stopped"
|
|
439
|
-
}), Object.freeze([
|
|
440
|
-
"minutes",
|
|
441
|
-
"turns",
|
|
442
|
-
"cost",
|
|
443
|
-
"tokens"
|
|
444
|
-
]);
|
|
445
|
-
// ../core/strings.js
|
|
446
|
-
var s = Object.freeze({
|
|
447
|
-
layers: "Layers",
|
|
448
|
-
layersAll: "All",
|
|
449
|
-
layersNone: "None",
|
|
450
|
-
overlays: "Overlays",
|
|
451
|
-
dataFlow: "Flow",
|
|
452
|
-
house: "House",
|
|
453
|
-
proposals: "Proposals",
|
|
454
|
-
issuesAndPrs: "Work",
|
|
455
|
-
searchPlaceholder: "Search...",
|
|
456
|
-
searchNoMatch: "No match for",
|
|
457
|
-
signOut: "Sign out",
|
|
458
|
-
poweredBy: "powered by cornfield",
|
|
459
|
-
before: "Before",
|
|
460
|
-
diff: "Diff",
|
|
461
|
-
after: "After",
|
|
462
|
-
closeProposal: "Close",
|
|
463
|
-
approve: "Approve",
|
|
464
|
-
sendBack: "Send back",
|
|
465
|
-
sendBackWithNote: "Send back with this note",
|
|
466
|
-
approveAnyway: "Approve anyway",
|
|
467
|
-
sendBackAnyway: "Send back anyway",
|
|
468
|
-
undo: "Undo",
|
|
469
|
-
approved: "Approved",
|
|
470
|
-
myEdits: "My edits",
|
|
471
|
-
showWholeMap: "Show the whole map",
|
|
472
|
-
wholeMap: "Whole map",
|
|
473
|
-
hiddenWhileReviewing: "hidden while reviewing",
|
|
474
|
-
yourEdits: "Your edits",
|
|
475
|
-
cancelLanding: "Cancel landing",
|
|
476
|
-
queueIt: "Queue it",
|
|
477
|
-
reviewNoteLabel: "Note for the drafting agent",
|
|
478
|
-
reviewNotePlaceholder: "What should change?",
|
|
479
|
-
openSpecsList: "Open the Specs list",
|
|
480
|
-
changes: "Changes",
|
|
481
|
-
personasAndScenarios: "Personas and scenarios",
|
|
482
|
-
scenarios: "Scenarios",
|
|
483
|
-
anyone: "Anyone",
|
|
484
|
-
notInAnyScenario: "Not in any scenario",
|
|
485
|
-
steps: "Steps",
|
|
486
|
-
previousStep: "Previous",
|
|
487
|
-
nextStep: "Next",
|
|
488
|
-
pause: "Pause",
|
|
489
|
-
play: "Play",
|
|
490
|
-
playAgain: "Play again",
|
|
491
|
-
nextScenario: "Next scenario",
|
|
492
|
-
notChecked: "Not checked",
|
|
493
|
-
tabSpecs: "Specs",
|
|
494
|
-
tabPulls: "PRs",
|
|
495
|
-
tabIssues: "Issues",
|
|
496
|
-
tabThreads: "Threads",
|
|
497
|
-
tabRuns: "Runs",
|
|
498
|
-
tabDeploys: "Deploys",
|
|
499
|
-
waitingOnYou: "waiting on you",
|
|
500
|
-
toDecide: "To decide",
|
|
501
|
-
withAgent: "With the agent",
|
|
502
|
-
approvedGroup: "Approved",
|
|
503
|
-
drafts: "Drafts",
|
|
504
|
-
needsYou: "Needs you",
|
|
505
|
-
inMotion: "In motion",
|
|
506
|
-
finished: "Finished",
|
|
507
|
-
answer: "Answer",
|
|
508
|
-
newIdea: "New idea",
|
|
509
|
-
landIt: "Land it",
|
|
510
|
-
startAgent: "Start an agent",
|
|
511
|
-
askRunner: "Ask the runner",
|
|
512
|
-
startAgain: "Start again",
|
|
513
|
-
stop: "Stop",
|
|
514
|
-
continueRun: "Continue",
|
|
515
|
-
reply: "Reply",
|
|
516
|
-
openFile: "Open file",
|
|
517
|
-
openRoute: "Open route",
|
|
518
|
-
startRun: "Start a run",
|
|
519
|
-
copySpec: "Copy Spec",
|
|
520
|
-
frame: "Frame them",
|
|
521
|
-
throughChildren: "Include its children's lines",
|
|
522
|
-
hintInspect: "Click a node to see what it is",
|
|
523
|
-
hintInspectTouch: "Tap a node to see what it is",
|
|
524
|
-
hintDrag: "Drag nodes to move • Double-click to inspect",
|
|
525
|
-
hintDragTouch: "Drag nodes to move • Double-tap to inspect",
|
|
526
|
-
hintDataFlow: "Data flow: browser → servers → API → tables → services → outside",
|
|
527
|
-
loading: "Loading topology.json …",
|
|
528
|
-
errorTitle: "The map could not be loaded",
|
|
529
|
-
retry: "Retry",
|
|
530
|
-
sourceLoading: "Loading the map …",
|
|
531
|
-
sourceSignedOut: "You are not signed in to cornfield",
|
|
532
|
-
sourceSignInText: "This map is behind cornfield's sign-in.",
|
|
533
|
-
sourceNotMaintainer: "This map is for the project's maintainers",
|
|
534
|
-
sourceNotMaintainerText: "You are signed in to cornfield, but not as a maintainer.",
|
|
535
|
-
sourceSignIn: "Sign in to cornfield",
|
|
536
|
-
sourceNotListed: "This page is not listed by that cornfield",
|
|
537
|
-
sourceNotListedHint: "Add this origin to embed.origins on the server:",
|
|
538
|
-
sourceOffline: "The map cannot be reached",
|
|
539
|
-
sourceOfflineText: "Check the connection, then try again.",
|
|
540
|
-
sourceBadAddress: "That is not the address of a cornfield server",
|
|
541
|
-
sourceVersion: "This map and its server are different versions",
|
|
542
|
-
sourceSecondMap: "This scope already has a map"
|
|
543
|
-
}), c = (e) => typeof e == "string" && Object.hasOwn(s, e), l = /* @__PURE__ */ RegExp("[\\u0000-\\u001f\\u007f-\\u009f\\u2028\\u2029]");
|
|
544
|
-
function u(e) {
|
|
545
|
-
return typeof e == "string" ? e.trim() ? l.test(e) ? "is one line of plain text (no line break or control character)" : [...e].length > 80 ? "is at most 80 characters" : null : "is empty (leave the key out to keep the default)" : "is text";
|
|
546
|
-
}
|
|
547
|
-
// ../explorer/engine/strings.js
|
|
548
|
-
var d = (e, t) => c(t) && Object.hasOwn(e.strings, t) && !u(e.strings[t]);
|
|
549
|
-
function f(e, t) {
|
|
550
|
-
for (let t of Object.keys(e.strings)) delete e.strings[t];
|
|
551
|
-
if (t && typeof t == "object" && !Array.isArray(t)) for (let [n, r] of Object.entries(t)) c(n) && !u(r) && (e.strings[n] = r);
|
|
552
|
-
}
|
|
553
|
-
function p(e, t) {
|
|
554
|
-
return d(e, t) ? e.strings[t] : c(t) ? s[t] : String(t);
|
|
555
|
-
}
|
|
556
|
-
var m = [
|
|
557
|
-
["data-corn-string", (e, t) => {
|
|
558
|
-
e.textContent = t;
|
|
559
|
-
}],
|
|
560
|
-
["data-corn-string-aria-label", (e, t) => e.setAttribute("aria-label", t)],
|
|
561
|
-
["data-corn-string-placeholder", (e, t) => e.setAttribute("placeholder", t)]
|
|
562
|
-
];
|
|
563
|
-
function h(e, t = e.root) {
|
|
564
|
-
if (t && typeof t.querySelectorAll == "function") for (let [n, r] of m) for (let i of t.querySelectorAll(`[${n}]`)) {
|
|
565
|
-
let t = i.getAttribute(n);
|
|
566
|
-
d(e, t) && r(i, e.strings[t]);
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
Object.freeze([
|
|
570
|
-
{
|
|
571
|
-
key: "decide",
|
|
572
|
-
title: "toDecide"
|
|
573
|
-
},
|
|
574
|
-
{
|
|
575
|
-
key: "agent",
|
|
576
|
-
title: "withAgent"
|
|
577
|
-
},
|
|
578
|
-
{
|
|
579
|
-
key: "approved",
|
|
580
|
-
title: "approvedGroup"
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
key: "drafts",
|
|
584
|
-
title: "drafts"
|
|
585
|
-
}
|
|
586
|
-
]), Object.freeze([
|
|
587
|
-
{
|
|
588
|
-
key: "needs",
|
|
589
|
-
title: "needsYou"
|
|
590
|
-
},
|
|
591
|
-
{
|
|
592
|
-
key: "motion",
|
|
593
|
-
title: "inMotion"
|
|
594
|
-
},
|
|
595
|
-
{
|
|
596
|
-
key: "finished",
|
|
597
|
-
title: "finished"
|
|
598
|
-
}
|
|
599
|
-
]), Object.freeze([
|
|
600
|
-
"to-decide",
|
|
601
|
-
"changed",
|
|
602
|
-
"sent-back",
|
|
603
|
-
"approved",
|
|
604
|
-
"draft-pr",
|
|
605
|
-
"local",
|
|
606
|
-
"unknown"
|
|
607
|
-
]), Object.freeze({
|
|
608
|
-
"to-decide": "To decide",
|
|
609
|
-
changed: "Changed since approved",
|
|
610
|
-
"sent-back": "Sent back",
|
|
611
|
-
approved: "Approved",
|
|
612
|
-
"draft-pr": "Draft PR",
|
|
613
|
-
local: "Local",
|
|
614
|
-
unknown: "Review state unknown"
|
|
615
|
-
}), Object.freeze({
|
|
616
|
-
"to-decide": "waiting",
|
|
617
|
-
changed: "waiting",
|
|
618
|
-
"sent-back": "sent-back",
|
|
619
|
-
approved: "success",
|
|
620
|
-
"draft-pr": "draft",
|
|
621
|
-
local: "draft",
|
|
622
|
-
unknown: "failure"
|
|
623
|
-
});
|
|
624
|
-
// ../explorer/proposal-model.js
|
|
625
|
-
var g = (e) => !!e && !!e.mark && e.mark !== "none", _ = (e) => e.mark === "edit" ? e.editOp || "none" : e.mark || "none";
|
|
626
|
-
function v(e, t) {
|
|
627
|
-
return e === "before" ? _(t) !== "added" : e !== "after" || _(t) !== "removed";
|
|
355
|
+
function c(e, t) {
|
|
356
|
+
return s(e, t);
|
|
628
357
|
}
|
|
629
|
-
function
|
|
630
|
-
return v(e, t);
|
|
631
|
-
}
|
|
632
|
-
function b(e, t) {
|
|
358
|
+
function l(e, t) {
|
|
633
359
|
let n = t.mark || "none";
|
|
634
360
|
return n === "edit" ? "edit" : e === "diff" ? n : "none";
|
|
635
361
|
}
|
|
636
|
-
function
|
|
362
|
+
function u(e) {
|
|
637
363
|
if (e.mark !== "changed" || !e.before) return e;
|
|
638
364
|
let t = { ...e };
|
|
639
365
|
for (let [n, r] of Object.entries(e.before)) r === null ? delete t[n] : t[n] = r;
|
|
640
366
|
return t;
|
|
641
367
|
}
|
|
642
|
-
function
|
|
368
|
+
function d(e, t) {
|
|
643
369
|
let n = /* @__PURE__ */ new Set();
|
|
644
|
-
for (let t of e)
|
|
645
|
-
for (let e of t)
|
|
370
|
+
for (let t of e) o(t) && n.add(t.id);
|
|
371
|
+
for (let e of t) o(e) && (n.add(e.from), n.add(e.to));
|
|
646
372
|
let r = new Set(n);
|
|
647
373
|
for (let e of t) {
|
|
648
374
|
let t = !e.kind && !e.dashed;
|
|
@@ -653,45 +379,48 @@ function S(e, t) {
|
|
|
653
379
|
near: r
|
|
654
380
|
};
|
|
655
381
|
}
|
|
656
|
-
var
|
|
657
|
-
function
|
|
658
|
-
let r = new Map(e.map((e) => [e.id, e])), i = e.filter((e) =>
|
|
659
|
-
if (!
|
|
660
|
-
let
|
|
661
|
-
let n = t.find((t) =>
|
|
382
|
+
var f = (e) => !e.kind && !e.dashed;
|
|
383
|
+
function p(e, t, { gap: n = 74 } = {}) {
|
|
384
|
+
let r = new Map(e.map((e) => [e.id, e])), i = e.filter((e) => a(e) !== "added"), o = e.filter((e) => a(e) === "added");
|
|
385
|
+
if (!o.length) return;
|
|
386
|
+
let s = new Set(i.map((e) => e.id)), c = (e) => {
|
|
387
|
+
let n = t.find((t) => f(t) && t.to === e.id && r.has(t.from));
|
|
662
388
|
if (n) return n.from;
|
|
663
389
|
let i = t.find((t) => t.from === e.id && r.has(t.to) || t.to === e.id && r.has(t.from));
|
|
664
390
|
return i ? i.from === e.id ? i.to : i.from : null;
|
|
665
|
-
},
|
|
391
|
+
}, l = (e, t) => i.every((r) => Math.hypot(r.x - e, r.y - t) >= n), u = (e, t, r) => {
|
|
666
392
|
let i = t === 0 && r === 0 ? -Math.PI / 2 : Math.atan2(r, t) || -Math.PI / 2, a = null;
|
|
667
393
|
for (let o = 96; o <= 576; o += 40) {
|
|
668
394
|
let s = Math.max(8, Math.round(2 * Math.PI * o / n));
|
|
669
395
|
for (let n = 0; n < s; n++) {
|
|
670
|
-
let
|
|
396
|
+
let c = Math.ceil(n / 2) * (n % 2 ? 1 : -1) * (2 * Math.PI / s), u = t + Math.cos(i + c) * o, d = r + Math.sin(i + c) * o;
|
|
671
397
|
if (a ||= {
|
|
672
398
|
x: u,
|
|
673
399
|
y: d
|
|
674
|
-
},
|
|
400
|
+
}, l(u, d)) {
|
|
675
401
|
e.x = u, e.y = d;
|
|
676
402
|
return;
|
|
677
403
|
}
|
|
678
404
|
}
|
|
679
405
|
}
|
|
680
406
|
e.x = a.x, e.y = a.y;
|
|
681
|
-
},
|
|
682
|
-
for (let e = 0; e <=
|
|
407
|
+
}, d = o.slice();
|
|
408
|
+
for (let e = 0; e <= o.length && d.length; e++) {
|
|
683
409
|
let e = [];
|
|
684
|
-
for (let t of
|
|
685
|
-
let n = r.get(
|
|
686
|
-
n &&
|
|
410
|
+
for (let t of d) {
|
|
411
|
+
let n = r.get(c(t));
|
|
412
|
+
n && s.has(n.id) ? (u(t, n.x, n.y), i.push(t), s.add(t.id)) : e.push(t);
|
|
687
413
|
}
|
|
688
|
-
if (e.length ===
|
|
689
|
-
|
|
414
|
+
if (e.length === d.length) break;
|
|
415
|
+
d = e;
|
|
690
416
|
}
|
|
691
|
-
for (let e of
|
|
417
|
+
for (let e of d) u(e, 0, 0), i.push(e);
|
|
418
|
+
}
|
|
419
|
+
function m(e) {
|
|
420
|
+
if (e) for (let t of e.tiers) t.nodes = [...t.nodes.filter((e) => a(e) !== "added"), ...t.nodes.filter((e) => a(e) === "added")];
|
|
692
421
|
}
|
|
693
|
-
var
|
|
694
|
-
function
|
|
422
|
+
var h = 50;
|
|
423
|
+
function g(e, t) {
|
|
695
424
|
let n = new Map(t.tiers.map((e) => [e.key, e]));
|
|
696
425
|
if (e.tiers.some((e) => e.nodes.length && !n.get(e.key)?.nodes.length)) return !1;
|
|
697
426
|
let r = new Map(t.tiers.filter((e) => e.nodes.length).map((e, n) => [e.key, t.headers[n]])), i = new Map(t.tiers.flatMap((e) => e.nodes).map((e) => [e.id, e]));
|
|
@@ -705,7 +434,7 @@ function ee(e, t) {
|
|
|
705
434
|
t.x = e.x, t.y = e.y, t.r = e.r;
|
|
706
435
|
}
|
|
707
436
|
if (!n.length) continue;
|
|
708
|
-
let o = r.get(t.key).rows, s = Math.max(...e.map((e) => e.x)), c = (e) => (e - (o - 1) / 2) *
|
|
437
|
+
let o = r.get(t.key).rows, s = Math.max(...e.map((e) => e.x)), c = (e) => (e - (o - 1) / 2) * h, l = new Set(e.filter((e) => e.x === s).map((e) => Math.round(e.y))), u = 0;
|
|
709
438
|
for (let e of n) {
|
|
710
439
|
for (; l.has(Math.round(c(u)));) u++;
|
|
711
440
|
e.x = s, e.y = c(u), l.add(Math.round(e.y)), a = Math.min(a, -(e.y + 40));
|
|
@@ -713,8 +442,7 @@ function ee(e, t) {
|
|
|
713
442
|
}
|
|
714
443
|
return e.top = a, !0;
|
|
715
444
|
}
|
|
716
|
-
|
|
717
|
-
var E = {
|
|
445
|
+
var _ = {
|
|
718
446
|
root: {
|
|
719
447
|
color: "#f59e0b",
|
|
720
448
|
r: 28
|
|
@@ -799,7 +527,7 @@ var E = {
|
|
|
799
527
|
color: "#f7ed81",
|
|
800
528
|
r: 16
|
|
801
529
|
}
|
|
802
|
-
},
|
|
530
|
+
}, v = Object.freeze({
|
|
803
531
|
root: "circle",
|
|
804
532
|
app: "circle",
|
|
805
533
|
page: "circle",
|
|
@@ -821,24 +549,68 @@ var E = {
|
|
|
821
549
|
floor: "square",
|
|
822
550
|
room: "square",
|
|
823
551
|
persona: "diamond"
|
|
824
|
-
}),
|
|
552
|
+
}), y = Object.freeze([
|
|
825
553
|
"circle",
|
|
826
554
|
"rounded-square",
|
|
827
555
|
"hexagon",
|
|
828
556
|
"square",
|
|
829
557
|
"diamond"
|
|
830
|
-
]),
|
|
558
|
+
]), b = (e) => typeof e == "string" && Object.hasOwn(v, e) ? v[e] : "circle", x = [
|
|
559
|
+
"outbox",
|
|
560
|
+
"changes",
|
|
561
|
+
"trigger",
|
|
562
|
+
"sync",
|
|
563
|
+
"model",
|
|
564
|
+
"rom",
|
|
565
|
+
"read",
|
|
566
|
+
"build",
|
|
567
|
+
"api"
|
|
568
|
+
], S = ["reads", "writes"], C = [
|
|
831
569
|
"calls",
|
|
832
570
|
"triggers",
|
|
833
571
|
"delivers"
|
|
834
|
-
],
|
|
835
|
-
|
|
836
|
-
...
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
572
|
+
], w = ["runs-on"], T = [
|
|
573
|
+
"flow",
|
|
574
|
+
...S,
|
|
575
|
+
"uses",
|
|
576
|
+
"extends",
|
|
577
|
+
...C,
|
|
578
|
+
...w
|
|
579
|
+
], E = [
|
|
580
|
+
"camera",
|
|
581
|
+
"phone",
|
|
582
|
+
"nfc-tag",
|
|
583
|
+
"home-assistant"
|
|
584
|
+
], D = ["floor", "room"], O = "live-", k = (e) => `persona-${e}`;
|
|
585
|
+
function ee(e) {
|
|
586
|
+
if (typeof e != "string" || !e.startsWith("live-")) return null;
|
|
587
|
+
let t = e.slice(5);
|
|
588
|
+
for (let e of D) if (t.startsWith(`${e}-`) && t.length > e.length + 1) return {
|
|
589
|
+
type: e,
|
|
590
|
+
id: t.slice(e.length + 1)
|
|
591
|
+
};
|
|
592
|
+
if (!t.startsWith("device-")) return null;
|
|
593
|
+
let n = t.slice(7), r = E.find((e) => n.startsWith(`${e}-`) && n.length > e.length + 1);
|
|
594
|
+
return r ? {
|
|
595
|
+
type: "device",
|
|
596
|
+
kind: r,
|
|
597
|
+
id: n.slice(r.length + 1)
|
|
598
|
+
} : null;
|
|
599
|
+
}
|
|
600
|
+
function te(e) {
|
|
601
|
+
return e ? typeof e.id == "string" && e.id.startsWith("live-") ? !0 : D.includes(e.type) || e.type === "device" && !e.file : !1;
|
|
602
|
+
}
|
|
603
|
+
var ne = ["cloud", "web"], re = [
|
|
604
|
+
"run",
|
|
605
|
+
"deploy",
|
|
606
|
+
"renew"
|
|
607
|
+
], ie = ["browser"];
|
|
608
|
+
function ae(e, t, n) {
|
|
609
|
+
let r = [], i = n?.type === "external" && (n.kind === void 0 || n.kind === "cloud");
|
|
610
|
+
return e.when !== void 0 && (re.includes(e.when) || r.push(`has when "${e.when}". Valid values: ${re.join(", ")}`), e.kind === "calls" ? i || r.push("has \"when\" but does not go into a cloud node: only an outage of a cloud service is timed.") : r.push("has \"when\", which goes only on a calls edge.")), e.side !== void 0 && (ie.includes(e.side) || r.push(`has side "${e.side}". Valid values: ${ie.join(", ")}`), e.kind === "calls" ? (t?.type !== "app" || n?.type !== "external") && r.push("has \"side\", which goes only on an app -> external calls edge (the visitor's browser makes the call).") : r.push("has \"side\", which goes only on a calls edge.")), r;
|
|
611
|
+
}
|
|
840
612
|
// ../explorer/cloud-model.js
|
|
841
|
-
var
|
|
613
|
+
var A = {
|
|
842
614
|
run: {
|
|
843
615
|
title: "Breaks now",
|
|
844
616
|
legend: "No tick: breaks as soon as it is down",
|
|
@@ -857,45 +629,45 @@ var k = {
|
|
|
857
629
|
ticks: 2,
|
|
858
630
|
color: "#a78bfa"
|
|
859
631
|
}
|
|
860
|
-
},
|
|
632
|
+
}, oe = (e) => e && Object.hasOwn(A, e.when) ? e.when : "run", se = (e) => e && e.kind === "calls" ? A[oe(e)].ticks : 0, ce = (e) => e && e.kind === "web" ? "web" : "cloud", j = Object.keys(A), le = Object.fromEntries(j.map((e, t) => [e, t])), ue = /* @__PURE__ */ new Set([
|
|
861
633
|
"persona",
|
|
862
634
|
"room",
|
|
863
635
|
"floor"
|
|
864
|
-
]),
|
|
636
|
+
]), de = [
|
|
865
637
|
"external",
|
|
866
638
|
"machine",
|
|
867
639
|
"container",
|
|
868
640
|
"service",
|
|
869
641
|
"page",
|
|
870
642
|
"app"
|
|
871
|
-
],
|
|
872
|
-
let t =
|
|
873
|
-
return t < 0 ?
|
|
874
|
-
},
|
|
643
|
+
], fe = (e) => {
|
|
644
|
+
let t = de.indexOf(e);
|
|
645
|
+
return t < 0 ? de.length : t;
|
|
646
|
+
}, pe = {
|
|
875
647
|
color: "#050608",
|
|
876
648
|
halo: "child"
|
|
877
|
-
},
|
|
649
|
+
}, me = {
|
|
878
650
|
alpha: .92,
|
|
879
651
|
glow: 10,
|
|
880
652
|
edgeAlpha: .9,
|
|
881
653
|
edgeWidth: 2.2
|
|
882
|
-
},
|
|
883
|
-
function
|
|
654
|
+
}, he = (e, t) => `${e}->${t}`;
|
|
655
|
+
function ge(e, t, n) {
|
|
884
656
|
let r = new Map(t.map((e) => [e.id, e])), i = [...new Set(Array.isArray(e) ? e : [])].filter((e) => r.has(e)), a = new Set(i), o = /* @__PURE__ */ new Map(), s = (e, t) => {
|
|
885
657
|
o.has(e) || o.set(e, []), o.get(e).push(t);
|
|
886
658
|
}, c = /* @__PURE__ */ new Map();
|
|
887
659
|
for (let e of n) if (e && e.from && e.to) {
|
|
888
660
|
if (e.kind === "calls") s(e.to, {
|
|
889
661
|
from: e.from,
|
|
890
|
-
rank:
|
|
662
|
+
rank: le[oe(e)],
|
|
891
663
|
browser: e.side === "browser",
|
|
892
|
-
key:
|
|
664
|
+
key: he(e.from, e.to)
|
|
893
665
|
});
|
|
894
666
|
else if (e.kind === "triggers" && (r.get(e.from) || {}).type === "page" && (r.get(e.to) || {}).type === "service") s(e.to, {
|
|
895
667
|
from: e.from,
|
|
896
668
|
rank: 0,
|
|
897
669
|
browser: !1,
|
|
898
|
-
key:
|
|
670
|
+
key: he(e.from, e.to)
|
|
899
671
|
});
|
|
900
672
|
else if (e.kind === "runs-on" && Array.isArray(e.mappings)) for (let t of e.mappings) {
|
|
901
673
|
if (!t || !t.service) continue;
|
|
@@ -913,7 +685,7 @@ function he(e, t, n) {
|
|
|
913
685
|
key: null
|
|
914
686
|
}));
|
|
915
687
|
return i.length ? [...t, ...i] : t;
|
|
916
|
-
}, u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f =
|
|
688
|
+
}, u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = j.map(() => []);
|
|
917
689
|
i.forEach((e) => f[0].push({
|
|
918
690
|
id: e,
|
|
919
691
|
rank: 0,
|
|
@@ -923,13 +695,13 @@ function he(e, t, n) {
|
|
|
923
695
|
let { id: n, rank: i, browser: o } = f[e][t], s = u.get(n);
|
|
924
696
|
if (!(s && (s.rank < i || s.rank === i && s.browser !== o))) for (let e of l(n)) {
|
|
925
697
|
let t = r.get(e.from);
|
|
926
|
-
if (!t || a.has(e.from) ||
|
|
698
|
+
if (!t || a.has(e.from) || ue.has(t.type)) continue;
|
|
927
699
|
let n = Math.max(i, e.rank), s = o || e.browser;
|
|
928
|
-
e.key && (!d.has(e.key) ||
|
|
700
|
+
e.key && (!d.has(e.key) || le[d.get(e.key)] > n) && d.set(e.key, j[n]);
|
|
929
701
|
let c = u.get(e.from);
|
|
930
702
|
c && (c.rank < n || c.rank === n && (!c.browser || s)) || (u.set(e.from, {
|
|
931
703
|
rank: n,
|
|
932
|
-
when:
|
|
704
|
+
when: j[n],
|
|
933
705
|
browser: s
|
|
934
706
|
}), f[n].push({
|
|
935
707
|
id: e.from,
|
|
@@ -946,8 +718,8 @@ function he(e, t, n) {
|
|
|
946
718
|
down: i,
|
|
947
719
|
hits: p,
|
|
948
720
|
edges: d,
|
|
949
|
-
groups:
|
|
950
|
-
let t = [...p].filter(([, t]) => t.when === e).map(([e]) => e).sort((e, t) =>
|
|
721
|
+
groups: j.map((e) => {
|
|
722
|
+
let t = [...p].filter(([, t]) => t.when === e).map(([e]) => e).sort((e, t) => fe(r.get(e).type) - fe(r.get(t).type) || m(e).localeCompare(m(t))), { title: n, color: i } = A[e];
|
|
951
723
|
return {
|
|
952
724
|
when: e,
|
|
953
725
|
title: n,
|
|
@@ -957,25 +729,25 @@ function he(e, t, n) {
|
|
|
957
729
|
}).filter((e) => e.ids.length)
|
|
958
730
|
};
|
|
959
731
|
}
|
|
960
|
-
var
|
|
961
|
-
function
|
|
732
|
+
var M = null;
|
|
733
|
+
function _e(e, t, n) {
|
|
962
734
|
let r = e && Array.isArray(e.down) ? e.down : [];
|
|
963
735
|
if (!r.length) return null;
|
|
964
736
|
let i = r.join("\0");
|
|
965
|
-
return
|
|
737
|
+
return M && M.key === i && M.nodes === t && M.edges === n || (M = {
|
|
966
738
|
key: i,
|
|
967
739
|
nodes: t,
|
|
968
740
|
edges: n,
|
|
969
|
-
radius:
|
|
970
|
-
}),
|
|
741
|
+
radius: ge(r, t, n)
|
|
742
|
+
}), M.radius;
|
|
971
743
|
}
|
|
972
|
-
function
|
|
744
|
+
function ve(e, t) {
|
|
973
745
|
if (!t) return;
|
|
974
746
|
let n = new Set(t.down);
|
|
975
747
|
for (let r of e.nodes) {
|
|
976
748
|
if (n.has(r.id)) {
|
|
977
749
|
Object.assign(r, {
|
|
978
|
-
color:
|
|
750
|
+
color: pe.color,
|
|
979
751
|
alpha: 1,
|
|
980
752
|
labelAlpha: 1,
|
|
981
753
|
labelColor: "#f8fafc",
|
|
@@ -983,114 +755,114 @@ function _e(e, t) {
|
|
|
983
755
|
labelStrike: !0,
|
|
984
756
|
connected: !0,
|
|
985
757
|
glow: 0
|
|
986
|
-
}), r.halo === "none" && (r.halo =
|
|
758
|
+
}), r.halo === "none" && (r.halo = pe.halo);
|
|
987
759
|
continue;
|
|
988
760
|
}
|
|
989
761
|
let e = t.hits.get(r.id);
|
|
990
762
|
if (!e) continue;
|
|
991
|
-
let i = Math.max(r.alpha,
|
|
763
|
+
let i = Math.max(r.alpha, me.alpha);
|
|
992
764
|
Object.assign(r, {
|
|
993
|
-
color:
|
|
765
|
+
color: A[e.when].color,
|
|
994
766
|
alpha: i,
|
|
995
767
|
labelAlpha: i,
|
|
996
768
|
labelColor: "#f8fafc",
|
|
997
769
|
labelKeep: !0,
|
|
998
770
|
connected: !0,
|
|
999
|
-
glow: Math.max(r.glow || 0,
|
|
771
|
+
glow: Math.max(r.glow || 0, me.glow)
|
|
1000
772
|
});
|
|
1001
773
|
}
|
|
1002
774
|
for (let n of e.edges) {
|
|
1003
|
-
let e = t.edges.get(
|
|
775
|
+
let e = t.edges.get(he(n.from, n.to));
|
|
1004
776
|
if (!e) continue;
|
|
1005
|
-
let r =
|
|
1006
|
-
n.color = r, n.glow && (n.glowColor = r), n.alpha = Math.max(n.alpha,
|
|
777
|
+
let r = A[e].color;
|
|
778
|
+
n.color = r, n.glow && (n.glowColor = r), n.alpha = Math.max(n.alpha, me.edgeAlpha), n.width = Math.max(n.width, me.edgeWidth), n.packet &&= {
|
|
1007
779
|
...n.packet,
|
|
1008
780
|
glowColor: r
|
|
1009
781
|
};
|
|
1010
782
|
}
|
|
1011
783
|
}
|
|
1012
784
|
// ../explorer/house-model.js
|
|
1013
|
-
var
|
|
785
|
+
var ye = /* @__PURE__ */ new Set([
|
|
1014
786
|
"container",
|
|
1015
787
|
"stack",
|
|
1016
788
|
"machine"
|
|
1017
789
|
]);
|
|
1018
|
-
function
|
|
790
|
+
function be(e, t) {
|
|
1019
791
|
return !!(e.house && e.house.shown && e.house.shown.has(t.id));
|
|
1020
792
|
}
|
|
1021
|
-
var
|
|
1022
|
-
function
|
|
793
|
+
var xe = null;
|
|
794
|
+
function Se(e) {
|
|
1023
795
|
let t = e.house && e.house.cloudLines;
|
|
1024
|
-
return !t || !t.length ? e.edges : (
|
|
796
|
+
return !t || !t.length ? e.edges : (xe && xe.edges === e.edges && xe.lines === t || (xe = {
|
|
1025
797
|
edges: e.edges,
|
|
1026
798
|
lines: t,
|
|
1027
799
|
all: [...e.edges, ...t]
|
|
1028
|
-
}),
|
|
800
|
+
}), xe.all);
|
|
1029
801
|
}
|
|
1030
|
-
function
|
|
1031
|
-
return e.kind === "runs-on" || e.kind === "delivers" ? "flow" : e.kind === "calls" && n && n.type === "external" ? e.rolled || !(t &&
|
|
802
|
+
function Ce(e, t, n) {
|
|
803
|
+
return e.kind === "runs-on" || e.kind === "delivers" ? "flow" : e.kind === "calls" && n && n.type === "external" ? e.rolled || !(t && ye.has(t.type)) ? "flow" : null : !e.kind && !e.dashed && t && t.type === "persona" && n && n.type === "device" || !e.kind && e.dashed && t && (t.type === "container" || t.type === "external") && n && n.type === "device" ? "link" : null;
|
|
1032
804
|
}
|
|
1033
|
-
var
|
|
805
|
+
var we = [
|
|
1034
806
|
"persona",
|
|
1035
807
|
"machine",
|
|
1036
808
|
"stack",
|
|
1037
809
|
"floor",
|
|
1038
810
|
"external"
|
|
1039
811
|
];
|
|
1040
|
-
function
|
|
812
|
+
function Te(e, t) {
|
|
1041
813
|
let n = t.house;
|
|
1042
814
|
e.decor.rings = [], e.decor.lanes = n && n.lanes ? n.lanes : [];
|
|
1043
|
-
for (let t of e.nodes) t.type === "room" ? (t.label = "", t.labelKeep = !1) :
|
|
1044
|
-
return n && n.cloudIds && n.cloudIds.size &&
|
|
815
|
+
for (let t of e.nodes) t.type === "room" ? (t.label = "", t.labelKeep = !1) : we.includes(t.type) && (t.labelKeep = !0);
|
|
816
|
+
return n && n.cloudIds && n.cloudIds.size && Ae(e, t), e;
|
|
1045
817
|
}
|
|
1046
|
-
var
|
|
818
|
+
var Ee = {
|
|
1047
819
|
run: .9,
|
|
1048
820
|
deploy: .25,
|
|
1049
821
|
renew: .9
|
|
1050
|
-
},
|
|
822
|
+
}, De = {
|
|
1051
823
|
alpha: .9,
|
|
1052
824
|
width: 2.2
|
|
1053
|
-
},
|
|
1054
|
-
function
|
|
1055
|
-
let n = t.house, r = t.scenario ?
|
|
825
|
+
}, Oe = Object.keys(A), ke = (e) => Oe.find((t) => A[t].ticks === (e.ticks || 0)) || "run";
|
|
826
|
+
function Ae(e, t) {
|
|
827
|
+
let n = t.house, r = t.scenario ? _e(t.scenario, t.nodes, t.edges) : null, i = !t.scenario && !!t.selectedNode, a = new Map((n.cloudLines || []).map((e) => [`${e.from}->${e.to}|${e.when}`, e])), o = r ? new Set(r.down) : null;
|
|
1056
828
|
e.edges = e.edges.filter((e) => {
|
|
1057
829
|
if (e.kind !== "calls" || !n.cloudIds.has(e.to)) return !0;
|
|
1058
|
-
let t =
|
|
830
|
+
let t = ke(e);
|
|
1059
831
|
if (r) {
|
|
1060
832
|
let i = a.get(`${e.from}->${e.to}|${t}`), s = o.has(e.to) ? "run" : r.hits.has(e.to) ? r.hits.get(e.to).when : null;
|
|
1061
833
|
if (i && s) {
|
|
1062
|
-
let n =
|
|
834
|
+
let n = Oe[Math.max(Oe.indexOf(s), Oe.indexOf(t))];
|
|
1063
835
|
return Object.assign(e, {
|
|
1064
|
-
color:
|
|
1065
|
-
alpha: Math.max(e.alpha,
|
|
1066
|
-
width: Math.max(e.width,
|
|
836
|
+
color: A[n].color,
|
|
837
|
+
alpha: Math.max(e.alpha, De.alpha),
|
|
838
|
+
width: Math.max(e.width, De.width)
|
|
1067
839
|
}), e.glow && (e.glowColor = e.color), !0;
|
|
1068
840
|
}
|
|
1069
841
|
return !n.phone || r.edges.has(`${e.from}->${e.to}`);
|
|
1070
842
|
}
|
|
1071
|
-
return i ? !n.phone || e.alpha >= .5 : !n.phone && (e.alpha =
|
|
843
|
+
return i ? !n.phone || e.alpha >= .5 : !n.phone && (e.alpha = Ee[t], !0);
|
|
1072
844
|
});
|
|
1073
845
|
}
|
|
1074
|
-
// ../explorer/
|
|
1075
|
-
var
|
|
846
|
+
// ../explorer/verdict-paint.js
|
|
847
|
+
var je = {
|
|
1076
848
|
allowed: "#4ade80",
|
|
1077
849
|
refused: "#ff2d55",
|
|
1078
850
|
mismatch: "#fbbf24"
|
|
1079
|
-
},
|
|
1080
|
-
function
|
|
851
|
+
}, Me = 18, Ne = 4.5;
|
|
852
|
+
function Pe(e, t) {
|
|
1081
853
|
return e.from !== t.from || e.to !== t.to ? !1 : t.kind ? e.kind === t.kind && (!t.flow || e.key.split("|")[2] === t.flow) : e.kind === "ownership" || e.kind === "usage";
|
|
1082
854
|
}
|
|
1083
|
-
function
|
|
855
|
+
function Fe(e, t) {
|
|
1084
856
|
let n = t && t.verdict;
|
|
1085
857
|
if (!n || t.done) return;
|
|
1086
|
-
let r = n.mismatch ?
|
|
858
|
+
let r = n.mismatch ? je.mismatch : je[n.state];
|
|
1087
859
|
if (!r) return;
|
|
1088
860
|
let { node: i, edge: a } = t.current;
|
|
1089
861
|
if (i !== void 0) {
|
|
1090
862
|
let t = e.nodes.find((e) => e.id === i);
|
|
1091
|
-
t && (t.color = r, t.glow = Math.max(t.glow || 0,
|
|
863
|
+
t && (t.color = r, t.glow = Math.max(t.glow || 0, Me));
|
|
1092
864
|
} else a && e.edges.forEach((e) => {
|
|
1093
|
-
|
|
865
|
+
Pe(e, a) && (e.color = r, e.glowColor = r, e.glow = Math.max(e.glow || 0, Me), e.width = Math.max(e.width || 0, Ne), e.packet &&= n.state === "refused" && !n.mismatch ? {
|
|
1094
866
|
...e.packet,
|
|
1095
867
|
color: r,
|
|
1096
868
|
glowColor: r,
|
|
@@ -1103,26 +875,26 @@ function Ne(e, t) {
|
|
|
1103
875
|
});
|
|
1104
876
|
}
|
|
1105
877
|
// ../core/layers.js
|
|
1106
|
-
var
|
|
878
|
+
var Ie = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/, Le = Object.freeze([
|
|
1107
879
|
"key",
|
|
1108
880
|
"label",
|
|
1109
881
|
"desc",
|
|
1110
882
|
"match"
|
|
1111
|
-
]),
|
|
883
|
+
]), Re = Object.freeze([
|
|
1112
884
|
"type",
|
|
1113
885
|
"kind",
|
|
1114
886
|
"parent",
|
|
1115
887
|
"field"
|
|
1116
|
-
]),
|
|
888
|
+
]), ze = Object.freeze([
|
|
1117
889
|
"add",
|
|
1118
890
|
"off",
|
|
1119
891
|
"order"
|
|
1120
|
-
]),
|
|
892
|
+
]), Be = /^[A-Za-z][A-Za-z0-9_]*$/, Ve = Object.freeze([
|
|
1121
893
|
"root",
|
|
1122
894
|
"external",
|
|
1123
895
|
"floor",
|
|
1124
896
|
"room"
|
|
1125
|
-
]),
|
|
897
|
+
]), He = Object.freeze([
|
|
1126
898
|
{
|
|
1127
899
|
key: "app",
|
|
1128
900
|
label: "Apps",
|
|
@@ -1266,91 +1038,91 @@ var Pe = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/, Fe = Object.freeze([
|
|
|
1266
1038
|
match: { type: "persona" },
|
|
1267
1039
|
live: !0
|
|
1268
1040
|
}
|
|
1269
|
-
]),
|
|
1270
|
-
|
|
1271
|
-
n ?
|
|
1041
|
+
]), Ue = Object.freeze(He.map((e) => e.key)), We = new Set(Ue), Ge = Object.keys(_), N = (e) => typeof e == "object" && !!e && !Array.isArray(e), Ke = /* @__PURE__ */ RegExp("[\\u0000-\\u001f\\u007f-\\u009f\\u2028\\u2029]"), P = (e) => typeof e == "string" ? `"${e.length > 40 ? `${e.slice(0, 40)}…` : e}"` : typeof e == "number" || typeof e == "boolean" ? String(e) : Array.isArray(e) ? "a list" : e === null ? "null" : typeof e, qe = (e) => typeof e == "string" && e.length > 0 && e.length <= 80 && !Ke.test(e) || typeof e == "number" && Number.isFinite(e) || typeof e == "boolean", Je = /^[a-z0-9]+(-[a-z0-9]+)*$/, Ye = new Set(Ge), Xe = (e, t) => Ye.has(e) && typeof t == "string" && t.length <= 32 && Je.test(t) ? `--corn-map-kind-${e}-${t}` : null, Ze = (e) => typeof e == "string" && e.length <= 32 && Ie.test(e) ? `--corn-map-group-${e}` : null, Qe = ({ type: e, kind: t, layer: n, group: r }) => [
|
|
1042
|
+
Xe(e, t),
|
|
1043
|
+
n ? Ze(n) : null,
|
|
1272
1044
|
`--corn-map-node-${e}`,
|
|
1273
1045
|
`--corn-map-group-${r || e}`
|
|
1274
1046
|
].filter(Boolean);
|
|
1275
|
-
function
|
|
1047
|
+
function $e(e) {
|
|
1276
1048
|
if (typeof e != "string") return null;
|
|
1277
|
-
if (
|
|
1049
|
+
if (Ye.has(e)) return { type: e };
|
|
1278
1050
|
let t = e.indexOf(":");
|
|
1279
1051
|
if (t < 0) return null;
|
|
1280
1052
|
let n = e.slice(0, t), r = e.slice(t + 1);
|
|
1281
|
-
return n === "layer" ?
|
|
1053
|
+
return n === "layer" ? Ie.test(r) && r.length <= 32 ? { layer: r } : null : Ye.has(n) && Je.test(r) && r.length <= 32 ? {
|
|
1282
1054
|
type: n,
|
|
1283
1055
|
kind: r
|
|
1284
1056
|
} : null;
|
|
1285
1057
|
}
|
|
1286
|
-
function
|
|
1058
|
+
function et(e, t, n) {
|
|
1287
1059
|
let r = [];
|
|
1288
|
-
return typeof t == "string" &&
|
|
1060
|
+
return typeof t == "string" && Je.test(t) && t.length <= 32 && r.push(`${e}:${t}`), n && r.push(`layer:${n}`), r.push(e), r;
|
|
1289
1061
|
}
|
|
1290
|
-
var
|
|
1291
|
-
function
|
|
1292
|
-
let t =
|
|
1062
|
+
var tt = /* @__PURE__ */ new WeakMap();
|
|
1063
|
+
function nt(e) {
|
|
1064
|
+
let t = tt.get(e);
|
|
1293
1065
|
if (t && t.length === e.length) return t.map;
|
|
1294
1066
|
let n = /* @__PURE__ */ new Map();
|
|
1295
1067
|
for (let t of e) t && !t.dashed && !t.kind && t.from && t.to && t.from !== t.to && !n.has(t.to) && n.set(t.to, t.from);
|
|
1296
|
-
return
|
|
1068
|
+
return tt.set(e, {
|
|
1297
1069
|
length: e.length,
|
|
1298
1070
|
map: n
|
|
1299
1071
|
}), n;
|
|
1300
1072
|
}
|
|
1301
|
-
var
|
|
1302
|
-
function
|
|
1303
|
-
if (!
|
|
1073
|
+
var F = (e, t) => Array.isArray(e) ? e.includes(t) : e === t;
|
|
1074
|
+
function rt(e, t, n) {
|
|
1075
|
+
if (!N(e)) return !1;
|
|
1304
1076
|
let r = !1;
|
|
1305
|
-
if (e.type !== void 0 && (r = !0, !
|
|
1077
|
+
if (e.type !== void 0 && (r = !0, !F(e.type, t.type)) || e.kind !== void 0 && (r = !0, !F(e.kind, t.kind)) || e.parent !== void 0 && (r = !0, !n || !F(e.parent, n(t)))) return !1;
|
|
1306
1078
|
if (e.field !== void 0) {
|
|
1307
1079
|
r = !0;
|
|
1308
1080
|
for (let n of Object.keys(e.field)) {
|
|
1309
1081
|
if (!Object.hasOwn(t, n)) return !1;
|
|
1310
1082
|
let r = t[n], i = e.field[n];
|
|
1311
|
-
if (!(Array.isArray(r) ? r.some((e) =>
|
|
1083
|
+
if (!(Array.isArray(r) ? r.some((e) => F(i, e)) : F(i, r))) return !1;
|
|
1312
1084
|
}
|
|
1313
1085
|
}
|
|
1314
1086
|
return r;
|
|
1315
1087
|
}
|
|
1316
|
-
var
|
|
1317
|
-
function
|
|
1088
|
+
var it = [...He.filter((e) => e.match)].sort((e, t) => Number("kind" in t.match) - Number("kind" in e.match));
|
|
1089
|
+
function at(e) {
|
|
1318
1090
|
if (e.type === "root") return null;
|
|
1319
1091
|
if (e.type === "external") return e.kind === "web" ? "web" : "cloud";
|
|
1320
|
-
for (let t of
|
|
1092
|
+
for (let t of it) if (rt(t.match, e)) return t.key;
|
|
1321
1093
|
return e.type;
|
|
1322
1094
|
}
|
|
1323
|
-
function
|
|
1095
|
+
function ot(e, t, n) {
|
|
1324
1096
|
if (!e || !e.length || t.type === "root") return null;
|
|
1325
|
-
for (let r of e) if (
|
|
1097
|
+
for (let r of e) if (rt(r.match, t, n)) return r.key;
|
|
1326
1098
|
return null;
|
|
1327
1099
|
}
|
|
1328
|
-
var
|
|
1329
|
-
let t = (Array.isArray(e) ? e : []).map((e) =>
|
|
1330
|
-
return `${
|
|
1100
|
+
var st = (e, t, n) => ot(e, t, n) || at(t), ct = `${Ge.slice(0, 5).join(", ")}, …`, lt = (e) => {
|
|
1101
|
+
let t = (Array.isArray(e) ? e : []).map((e) => N(e) && typeof e.key == "string" ? e.key : null).filter((e) => e && Ie.test(e));
|
|
1102
|
+
return `${Ue.slice(0, 3).join(", ")}, …${t.length ? `, ${t[t.length - 1]}` : ""}`;
|
|
1331
1103
|
};
|
|
1332
|
-
function
|
|
1104
|
+
function ut(e, t, n, r) {
|
|
1333
1105
|
return Array.isArray(n) ? (n.length ? n.length > 20 && r.push(`${e}.${t} has ${n.length} values: at most 20.`) : r.push(`${e}.${t} is an empty list: give at least one value, or leave the key out.`), n.length <= 20 ? n : []) : [n];
|
|
1334
1106
|
}
|
|
1335
|
-
function
|
|
1336
|
-
if (!
|
|
1107
|
+
function dt(e, t, n) {
|
|
1108
|
+
if (!N(t)) n.push(`${e}.match is { type, kind, parent, field }: say at least one of them.`);
|
|
1337
1109
|
else {
|
|
1338
|
-
for (let r of Object.keys(t))
|
|
1339
|
-
if (!Object.keys(t).some((e) =>
|
|
1110
|
+
for (let r of Object.keys(t)) Re.includes(r) || n.push(`${e}.match has unknown key "${r}": known: ${Re.join(", ")}. A match is data: no pattern, no function.`);
|
|
1111
|
+
if (!Object.keys(t).some((e) => Re.includes(e))) Object.keys(t).length || n.push(`${e}.match is empty: say at least one of ${Re.join(", ")}.`);
|
|
1340
1112
|
else {
|
|
1341
|
-
if ("type" in t) for (let r of
|
|
1342
|
-
if ("kind" in t) for (let r of
|
|
1343
|
-
if ("parent" in t) for (let r of
|
|
1113
|
+
if ("type" in t) for (let r of ut(`${e}.match`, "type", t.type, n)) typeof r == "string" && Ge.includes(r) || n.push(`${e}.match.type ${P(r)} is not a node type (${ct}).`);
|
|
1114
|
+
if ("kind" in t) for (let r of ut(`${e}.match`, "kind", t.kind, n)) (typeof r != "string" || !r || r.length > 80 || Ke.test(r)) && n.push(`${e}.match.kind ${P(r)}: a kind is text, one line, at most 80 characters.`);
|
|
1115
|
+
if ("parent" in t) for (let r of ut(`${e}.match`, "parent", t.parent, n)) (typeof r != "string" || !r || r.length > 200 || Ke.test(r)) && n.push(`${e}.match.parent ${P(r)}: a parent is a node id (text), like "pkg-core".`);
|
|
1344
1116
|
if ("field" in t) {
|
|
1345
1117
|
let r = t.field;
|
|
1346
|
-
if (!
|
|
1118
|
+
if (!N(r)) {
|
|
1347
1119
|
n.push(`${e}.match.field is { name: value }: a node field and the value (or list of values) it must have.`);
|
|
1348
1120
|
return;
|
|
1349
1121
|
}
|
|
1350
1122
|
let i = Object.keys(r);
|
|
1351
1123
|
i.length || n.push(`${e}.match.field is empty: name a field, like { audience: 'household' }.`), i.length > 4 && n.push(`${e}.match.field names ${i.length} fields: at most 4.`);
|
|
1352
1124
|
for (let t of i.slice(0, 20)) {
|
|
1353
|
-
if (!
|
|
1125
|
+
if (!Be.test(t) || t.length > 40) {
|
|
1354
1126
|
n.push(`${e}.match.field "${t.slice(0, 40)}": a field name is letters, digits and "_", starting with a letter.`);
|
|
1355
1127
|
continue;
|
|
1356
1128
|
}
|
|
@@ -1363,17 +1135,17 @@ function ct(e, t, n) {
|
|
|
1363
1135
|
continue;
|
|
1364
1136
|
}
|
|
1365
1137
|
let i = Array.isArray(r[t]) ? r[t] : [r[t]];
|
|
1366
|
-
Array.isArray(r[t]) && (!i.length || i.length > 20) ? n.push(`${e}.match.field.${t} is a list of ${i.length}: one to 20 values.`) : i.every(
|
|
1138
|
+
Array.isArray(r[t]) && (!i.length || i.length > 20) ? n.push(`${e}.match.field.${t} is a list of ${i.length}: one to 20 values.`) : i.every(qe) || n.push(`${e}.match.field.${t}: a value is text, a number, true or false, or a list of them.`);
|
|
1367
1139
|
}
|
|
1368
1140
|
}
|
|
1369
1141
|
}
|
|
1370
1142
|
}
|
|
1371
1143
|
}
|
|
1372
|
-
function
|
|
1144
|
+
function ft(e) {
|
|
1373
1145
|
if (e === void 0) return [];
|
|
1374
|
-
if (!
|
|
1146
|
+
if (!N(e)) return ["\"layers\" is an object: { add: [{ key, label, match }], off: [keys], order: [keys] }."];
|
|
1375
1147
|
let t = [];
|
|
1376
|
-
for (let n of Object.keys(e))
|
|
1148
|
+
for (let n of Object.keys(e)) ze.includes(n) || t.push(`layers has unknown key "${n}": known: ${ze.join(", ")}.`);
|
|
1377
1149
|
let n = e.add;
|
|
1378
1150
|
n !== void 0 && !Array.isArray(n) && t.push("layers.add is a list of project layers: [{ key, label, desc?, match }].");
|
|
1379
1151
|
let r = Array.isArray(n) ? n : [];
|
|
@@ -1381,24 +1153,24 @@ function lt(e) {
|
|
|
1381
1153
|
let i = /* @__PURE__ */ new Map();
|
|
1382
1154
|
r.slice(0, 100).forEach((e, n) => {
|
|
1383
1155
|
let r = `layers.add[${n}]`;
|
|
1384
|
-
if (!
|
|
1156
|
+
if (!N(e)) {
|
|
1385
1157
|
t.push(`${r} is { key, label, desc?, match }.`);
|
|
1386
1158
|
return;
|
|
1387
1159
|
}
|
|
1388
1160
|
for (let n of Object.keys(e)) {
|
|
1389
|
-
if (
|
|
1161
|
+
if (Le.includes(n)) continue;
|
|
1390
1162
|
let e = /^colou?r$|^icon$|^fill$/i.test(n) ? " Colours and icons are the theme's." : n === "on" || n === "hide" ? " Whether a layer starts off is layers.off." : "";
|
|
1391
|
-
t.push(`${r} has unknown key "${n}": known: ${
|
|
1163
|
+
t.push(`${r} has unknown key "${n}": known: ${Le.join(", ")}.${e}`);
|
|
1392
1164
|
}
|
|
1393
1165
|
let a = e.key;
|
|
1394
|
-
typeof a == "string" ?
|
|
1166
|
+
typeof a == "string" ? We.has(a) ? t.push(`${r}.key ${P(a)} is a starting layer: pick another key.`) : Ve.includes(a) ? t.push(`${r}.key ${P(a)} is reserved (a node type): pick another key.`) : !Ie.test(a) || a.length > 32 ? t.push(`${r}.key ${P(a)}: lower-case words joined by "-", like "edge-stack"${a.length > 32 ? ", at most 32 characters" : ""}.`) : i.has(a) ? t.push(`${r}.key ${P(a)} is also layers.add[${i.get(a)}].key: a key is used once.`) : i.set(a, n) : t.push(`${r}.key is required: lower-case words joined by "-", like "edge-stack".`);
|
|
1395
1167
|
let o = (n, i, a) => {
|
|
1396
1168
|
let o = e[n];
|
|
1397
|
-
o === void 0 ? a && t.push(`${r}.${n} is required: plain text, one line, at most ${i} characters.`) : typeof o != "string" || !o.trim() ? t.push(`${r}.${n} ${
|
|
1169
|
+
o === void 0 ? a && t.push(`${r}.${n} is required: plain text, one line, at most ${i} characters.`) : typeof o != "string" || !o.trim() ? t.push(`${r}.${n} ${P(o)}: plain text, one line, at most ${i} characters.`) : Ke.test(o) ? t.push(`${r}.${n}: one line of plain text (no line break or control character).`) : [...o].length > i && t.push(`${r}.${n} is ${[...o].length} characters: at most ${i}.`);
|
|
1398
1170
|
};
|
|
1399
|
-
o("label", 40, !0), o("desc", 120, !1), e.match === void 0 ? t.push(`${r}.match is required: say at least one of ${
|
|
1171
|
+
o("label", 40, !0), o("desc", 120, !1), e.match === void 0 ? t.push(`${r}.match is required: say at least one of ${Re.join(", ")}.`) : dt(r, e.match, t);
|
|
1400
1172
|
});
|
|
1401
|
-
let a = /* @__PURE__ */ new Set([...
|
|
1173
|
+
let a = /* @__PURE__ */ new Set([...Ue, ...r.map((e) => N(e) && typeof e.key == "string" ? e.key : null).filter(Boolean)]);
|
|
1402
1174
|
for (let r of ["off", "order"]) {
|
|
1403
1175
|
let i = e[r];
|
|
1404
1176
|
if (i === void 0) continue;
|
|
@@ -1408,18 +1180,18 @@ function lt(e) {
|
|
|
1408
1180
|
}
|
|
1409
1181
|
let o = /* @__PURE__ */ new Set();
|
|
1410
1182
|
i.forEach((e) => {
|
|
1411
|
-
typeof e != "string" || !a.has(e) ? t.push(`layers.${r} ${
|
|
1183
|
+
typeof e != "string" || !a.has(e) ? t.push(`layers.${r} ${P(e)} is not a layer (${lt(n)}).`) : o.has(e) && t.push(`layers.${r} ${P(e)} is listed twice.`), o.add(e);
|
|
1412
1184
|
});
|
|
1413
1185
|
}
|
|
1414
1186
|
return t;
|
|
1415
1187
|
}
|
|
1416
|
-
function
|
|
1188
|
+
function pt(e) {
|
|
1417
1189
|
let t = {
|
|
1418
1190
|
add: [],
|
|
1419
1191
|
off: [],
|
|
1420
1192
|
order: []
|
|
1421
1193
|
};
|
|
1422
|
-
if (!
|
|
1194
|
+
if (!N(e) || ft(e).length) return t;
|
|
1423
1195
|
let n = (e) => Array.isArray(e) ? e.slice(0, 20) : e;
|
|
1424
1196
|
return {
|
|
1425
1197
|
add: (e.add || []).map((e) => {
|
|
@@ -1436,7 +1208,15 @@ function ut(e) {
|
|
|
1436
1208
|
order: [...e.order || []]
|
|
1437
1209
|
};
|
|
1438
1210
|
}
|
|
1439
|
-
function
|
|
1211
|
+
function mt(e, t, n = []) {
|
|
1212
|
+
let r = [...e, ...t], i = new Map(r.map((e) => [e.key, e])), a = [];
|
|
1213
|
+
for (let e of n) {
|
|
1214
|
+
let t = i.get(e);
|
|
1215
|
+
t && !a.includes(t) && a.push(t);
|
|
1216
|
+
}
|
|
1217
|
+
return [...a, ...r.filter((e) => !a.includes(e))];
|
|
1218
|
+
}
|
|
1219
|
+
function ht(e) {
|
|
1440
1220
|
let t = /* @__PURE__ */ new Map();
|
|
1441
1221
|
for (let n of e) typeof n.kind == "string" && n.kind && (t.has(n.type) || t.set(n.type, /* @__PURE__ */ new Set()), t.get(n.type).add(n.kind));
|
|
1442
1222
|
let n = /* @__PURE__ */ new Map();
|
|
@@ -1450,71 +1230,71 @@ function dt(e) {
|
|
|
1450
1230
|
return n;
|
|
1451
1231
|
}
|
|
1452
1232
|
// ../explorer/layer-model.js
|
|
1453
|
-
var
|
|
1454
|
-
function
|
|
1233
|
+
var gt = (e) => (e.projectLayers || []).some((e) => e.match && e.match.parent !== void 0) ? (t) => nt(e.edges || []).get(t.id) : void 0;
|
|
1234
|
+
function _t(e, t) {
|
|
1455
1235
|
let n = e.projectLayers;
|
|
1456
|
-
return !n || !n.length ? null :
|
|
1236
|
+
return !n || !n.length ? null : ot(n, t, gt(e));
|
|
1457
1237
|
}
|
|
1458
|
-
var
|
|
1459
|
-
function
|
|
1460
|
-
let t = e.edges || [], n =
|
|
1238
|
+
var vt = (e, t) => st(e.projectLayers || [], t, gt(e)), yt = /* @__PURE__ */ new WeakMap();
|
|
1239
|
+
function bt(e) {
|
|
1240
|
+
let t = e.edges || [], n = yt.get(e.nodes);
|
|
1461
1241
|
if (n && n.edges === t && n.n === e.nodes.length && n.e === t.length) return n.touched;
|
|
1462
|
-
let r =
|
|
1463
|
-
return
|
|
1242
|
+
let r = d(e.nodes, t).touched;
|
|
1243
|
+
return yt.set(e.nodes, {
|
|
1464
1244
|
edges: t,
|
|
1465
1245
|
n: e.nodes.length,
|
|
1466
1246
|
e: t.length,
|
|
1467
1247
|
touched: r
|
|
1468
1248
|
}), r;
|
|
1469
1249
|
}
|
|
1470
|
-
var
|
|
1471
|
-
function
|
|
1250
|
+
var xt = (e, t) => !!e.proposal && bt(e).has(t.id), St = /* @__PURE__ */ new WeakMap();
|
|
1251
|
+
function Ct(e, t) {
|
|
1472
1252
|
if (typeof t.kind != "string" || !t.kind || t.type === "external") return "";
|
|
1473
|
-
let n =
|
|
1253
|
+
let n = St.get(e.nodes);
|
|
1474
1254
|
n && n.n === e.nodes.length || (n = {
|
|
1475
1255
|
n: e.nodes.length,
|
|
1476
|
-
map:
|
|
1477
|
-
},
|
|
1256
|
+
map: ht(e.nodes)
|
|
1257
|
+
}, St.set(e.nodes, n));
|
|
1478
1258
|
let r = n.map.get(t.type);
|
|
1479
1259
|
return r && r.get(t.kind) || "";
|
|
1480
1260
|
}
|
|
1481
|
-
var
|
|
1261
|
+
var wt = Object.freeze({
|
|
1482
1262
|
core: ["pkg"],
|
|
1483
1263
|
store: ["flow"],
|
|
1484
1264
|
rom: ["flow"]
|
|
1485
|
-
}),
|
|
1486
|
-
function
|
|
1487
|
-
let { touched: i } =
|
|
1265
|
+
}), Tt = (e) => !!e && !!e.mark && e.mark !== "none";
|
|
1266
|
+
function Et({ nodes: e, edges: t, rowOf: n, flight: r = null }) {
|
|
1267
|
+
let { touched: i } = d(e, t), a = /* @__PURE__ */ new Set();
|
|
1488
1268
|
for (let t of e) {
|
|
1489
1269
|
if (!i.has(t.id)) continue;
|
|
1490
1270
|
let e = n(t);
|
|
1491
1271
|
if (e) {
|
|
1492
1272
|
a.add(e);
|
|
1493
|
-
for (let t of
|
|
1273
|
+
for (let t of wt[e] || []) a.add(t);
|
|
1494
1274
|
}
|
|
1495
1275
|
r && r.has(t.id) && a.add("runs");
|
|
1496
1276
|
}
|
|
1497
|
-
for (let e of t)
|
|
1277
|
+
for (let e of t) Tt(e) && e.kind === "flow" && a.add("flow");
|
|
1498
1278
|
return a;
|
|
1499
1279
|
}
|
|
1500
|
-
function
|
|
1280
|
+
function Dt({ active: e, touched: t, universe: n, review: r }) {
|
|
1501
1281
|
let i = { ...e };
|
|
1502
1282
|
if (!r.whole && t.size) for (let e of n) i[e] = t.has(e);
|
|
1503
1283
|
return Object.assign(i, r.manual || {}, r.step || {}), i;
|
|
1504
1284
|
}
|
|
1505
|
-
var
|
|
1506
|
-
function
|
|
1507
|
-
let t = e.nodes, n = e.edges || [], r = e.runsMap ? e.runsMap.flight : null, i =
|
|
1285
|
+
var Ot = /* @__PURE__ */ new WeakMap();
|
|
1286
|
+
function kt(e) {
|
|
1287
|
+
let t = e.nodes, n = e.edges || [], r = e.runsMap ? e.runsMap.flight : null, i = Ot.get(t);
|
|
1508
1288
|
if (i && i.edges === n && i.n === t.length && i.e === n.length && i.flight === r && i.project === e.projectLayers) return i;
|
|
1509
|
-
let a =
|
|
1289
|
+
let a = Et({
|
|
1510
1290
|
nodes: t,
|
|
1511
1291
|
edges: n,
|
|
1512
|
-
rowOf: (t) =>
|
|
1292
|
+
rowOf: (t) => vt(e, t),
|
|
1513
1293
|
flight: r
|
|
1514
1294
|
}), o = /* @__PURE__ */ new Set([
|
|
1515
|
-
...
|
|
1295
|
+
...He.map((e) => e.key),
|
|
1516
1296
|
...(e.projectLayers || []).map((e) => e.key),
|
|
1517
|
-
...t.map((t) =>
|
|
1297
|
+
...t.map((t) => vt(e, t)).filter(Boolean)
|
|
1518
1298
|
]), s = {
|
|
1519
1299
|
edges: n,
|
|
1520
1300
|
n: t.length,
|
|
@@ -1524,21 +1304,21 @@ function Tt(e) {
|
|
|
1524
1304
|
touched: a,
|
|
1525
1305
|
universe: o
|
|
1526
1306
|
};
|
|
1527
|
-
return
|
|
1307
|
+
return Ot.set(t, s), s;
|
|
1528
1308
|
}
|
|
1529
|
-
var
|
|
1530
|
-
function
|
|
1309
|
+
var At = /* @__PURE__ */ new WeakMap();
|
|
1310
|
+
function I(e) {
|
|
1531
1311
|
let t = e.review;
|
|
1532
1312
|
if (!t || !e.proposal) return e.activeLayers;
|
|
1533
|
-
let n =
|
|
1313
|
+
let n = At.get(t);
|
|
1534
1314
|
if (n && n.rev === t.rev && n.version === e.sceneVersion && n.active === e.activeLayers && n.nodes === e.nodes) return n.out;
|
|
1535
|
-
let { touched: r, universe: i } =
|
|
1315
|
+
let { touched: r, universe: i } = kt(e), a = Dt({
|
|
1536
1316
|
active: e.activeLayers,
|
|
1537
1317
|
touched: r,
|
|
1538
1318
|
universe: i,
|
|
1539
1319
|
review: t
|
|
1540
1320
|
});
|
|
1541
|
-
return
|
|
1321
|
+
return At.set(t, {
|
|
1542
1322
|
rev: t.rev,
|
|
1543
1323
|
version: e.sceneVersion,
|
|
1544
1324
|
active: e.activeLayers,
|
|
@@ -1546,7 +1326,12 @@ function Dt(e) {
|
|
|
1546
1326
|
out: a
|
|
1547
1327
|
}), a;
|
|
1548
1328
|
}
|
|
1549
|
-
var
|
|
1329
|
+
var jt = (e, t) => I(e)[t] !== !1;
|
|
1330
|
+
function Mt(e, t) {
|
|
1331
|
+
let n = e.review;
|
|
1332
|
+
return !n || !e.proposal || n.whole || e.activeLayers[t] === !1 || Object.hasOwn(n.manual || {}, t) || Object.hasOwn(n.step || {}, t) ? !1 : I(e)[t] === !1;
|
|
1333
|
+
}
|
|
1334
|
+
var Nt = (e) => !!e.review && !!e.proposal && !e.review.whole && bt(e).size > 0, Pt = Object.freeze({
|
|
1550
1335
|
aliceblue: "#f0f8ff",
|
|
1551
1336
|
antiquewhite: "#faebd7",
|
|
1552
1337
|
aqua: "#00ffff",
|
|
@@ -1695,8 +1480,8 @@ var Ot = (e) => !!e.review && !!e.proposal && !e.review.whole && gt(e).size > 0,
|
|
|
1695
1480
|
whitesmoke: "#f5f5f5",
|
|
1696
1481
|
yellow: "#ffff00",
|
|
1697
1482
|
yellowgreen: "#9acd32"
|
|
1698
|
-
}),
|
|
1699
|
-
function
|
|
1483
|
+
}), Ft = "[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?", It = (e, t, n) => Math.min(n, Math.max(t, e));
|
|
1484
|
+
function Lt(e, t) {
|
|
1700
1485
|
let n = RegExp(`^${t}\\(`, "i").exec(e);
|
|
1701
1486
|
if (!n || !e.endsWith(")")) return null;
|
|
1702
1487
|
let r = 0;
|
|
@@ -1704,19 +1489,19 @@ function Mt(e, t) {
|
|
|
1704
1489
|
else if (e[t] === ")" && --r === 0 && t !== e.length - 1) return null;
|
|
1705
1490
|
return r === 0 ? e.slice(n[0].length, -1) : null;
|
|
1706
1491
|
}
|
|
1707
|
-
function
|
|
1492
|
+
function Rt(e, t) {
|
|
1708
1493
|
let n = [], r = 0, i = 0;
|
|
1709
1494
|
for (let a = 0; a < e.length; a++) e[a] === "(" ? r++ : e[a] === ")" ? r-- : e[a] === t && r === 0 && (n.push(e.slice(i, a)), i = a + 1);
|
|
1710
1495
|
return n.push(e.slice(i)), n;
|
|
1711
1496
|
}
|
|
1712
|
-
var
|
|
1713
|
-
let n = RegExp(`^(${
|
|
1497
|
+
var zt = (e, t) => {
|
|
1498
|
+
let n = RegExp(`^(${Ft})(%?)$`, "i").exec(e);
|
|
1714
1499
|
return n ? n[2] ? Number(n[1]) / 100 * t : Number(n[1]) : null;
|
|
1715
|
-
},
|
|
1716
|
-
let t =
|
|
1717
|
-
return t === null ? null :
|
|
1500
|
+
}, Bt = (e) => e === void 0 ? 1 : (() => {
|
|
1501
|
+
let t = zt(e, 1);
|
|
1502
|
+
return t === null ? null : It(t, 0, 1);
|
|
1718
1503
|
})();
|
|
1719
|
-
function
|
|
1504
|
+
function Vt(e, t, n) {
|
|
1720
1505
|
let r = (t) => (t + e / 30) % 12, i = t * Math.min(n, 1 - n), a = (e) => n - i * Math.max(-1, Math.min(r(e) - 3, Math.min(9 - r(e), 1)));
|
|
1721
1506
|
return [
|
|
1722
1507
|
a(0) * 255,
|
|
@@ -1724,7 +1509,7 @@ function It(e, t, n) {
|
|
|
1724
1509
|
a(4) * 255
|
|
1725
1510
|
];
|
|
1726
1511
|
}
|
|
1727
|
-
function
|
|
1512
|
+
function Ht(e) {
|
|
1728
1513
|
let t = e.trim();
|
|
1729
1514
|
if (t.includes(",")) {
|
|
1730
1515
|
let e = t.split(/\s*,\s*/);
|
|
@@ -1733,7 +1518,7 @@ function Lt(e) {
|
|
|
1733
1518
|
let n = /^(\S+)\s+(\S+)\s+([^\s/]+)(?:\s*\/\s*(\S+))?$/.exec(t);
|
|
1734
1519
|
return n && !n.slice(1, 4).some((e) => e.includes("/")) ? n.slice(1, n[4] === void 0 ? 4 : 5) : null;
|
|
1735
1520
|
}
|
|
1736
|
-
function
|
|
1521
|
+
function Ut(e, t = 0) {
|
|
1737
1522
|
let n = String(e).trim().toLowerCase();
|
|
1738
1523
|
if (n === "transparent") return [
|
|
1739
1524
|
0,
|
|
@@ -1741,7 +1526,7 @@ function Rt(e, t = 0) {
|
|
|
1741
1526
|
0,
|
|
1742
1527
|
0
|
|
1743
1528
|
];
|
|
1744
|
-
if (
|
|
1529
|
+
if (Pt[n]) return Ut(Pt[n], t);
|
|
1745
1530
|
let r = /^#([0-9a-f]{3,4})$/.exec(n);
|
|
1746
1531
|
if (r) {
|
|
1747
1532
|
let e = [...r[1]].map((e) => parseInt(e + e, 16));
|
|
@@ -1761,26 +1546,26 @@ function Rt(e, t = 0) {
|
|
|
1761
1546
|
e.length === 8 ? parseInt(e.slice(6, 8), 16) / 255 : 1
|
|
1762
1547
|
];
|
|
1763
1548
|
}
|
|
1764
|
-
let i =
|
|
1549
|
+
let i = Lt(n, "rgba?");
|
|
1765
1550
|
if (i !== null) {
|
|
1766
|
-
let e =
|
|
1551
|
+
let e = Ht(i);
|
|
1767
1552
|
if (!e) return null;
|
|
1768
|
-
let t = e.slice(0, 3).map((e) =>
|
|
1769
|
-
return t.some((e) => e === null) || n === null ? null : [...t.map((e) =>
|
|
1553
|
+
let t = e.slice(0, 3).map((e) => zt(e, 255)), n = Bt(e[3]);
|
|
1554
|
+
return t.some((e) => e === null) || n === null ? null : [...t.map((e) => It(e, 0, 255)), n];
|
|
1770
1555
|
}
|
|
1771
|
-
let a =
|
|
1556
|
+
let a = Lt(n, "hsla?");
|
|
1772
1557
|
if (a !== null) {
|
|
1773
|
-
let e =
|
|
1558
|
+
let e = Ht(a);
|
|
1774
1559
|
if (!e) return null;
|
|
1775
|
-
let t = RegExp(`^(${
|
|
1776
|
-
return !t || n === null || r === null || i === null ? null : [...
|
|
1560
|
+
let t = RegExp(`^(${Ft})(?:deg)?$`).exec(e[0]), n = /%$/.test(e[1]) ? zt(e[1], 1) : null, r = /%$/.test(e[2]) ? zt(e[2], 1) : null, i = Bt(e[3]);
|
|
1561
|
+
return !t || n === null || r === null || i === null ? null : [...Vt((Number(t[1]) % 360 + 360) % 360, It(n, 0, 1), It(r, 0, 1)), i];
|
|
1777
1562
|
}
|
|
1778
|
-
let o = t < 8 ?
|
|
1563
|
+
let o = t < 8 ? Lt(n, "color-mix") : null;
|
|
1779
1564
|
if (o !== null) {
|
|
1780
|
-
let e =
|
|
1565
|
+
let e = Rt(o, ",").map((e) => e.trim());
|
|
1781
1566
|
if (e.length !== 3 || !/^in\s+srgb$/.test(e[0])) return null;
|
|
1782
1567
|
let n = (e) => {
|
|
1783
|
-
let n = /^(\d*\.?\d+)%\s+(.+)$/.exec(e), r = /^(.+?)\s+(\d*\.?\d+)%$/.exec(e), [i, a] = n ? [n[2], n[1]] : r ? [r[1], r[2]] : [e, null], o =
|
|
1568
|
+
let n = /^(\d*\.?\d+)%\s+(.+)$/.exec(e), r = /^(.+?)\s+(\d*\.?\d+)%$/.exec(e), [i, a] = n ? [n[2], n[1]] : r ? [r[1], r[2]] : [e, null], o = Ut(i, t + 1);
|
|
1784
1569
|
return o && {
|
|
1785
1570
|
c: o,
|
|
1786
1571
|
p: a === null ? null : Number(a) / 100
|
|
@@ -1788,27 +1573,27 @@ function Rt(e, t = 0) {
|
|
|
1788
1573
|
}, r = n(e[1]), i = n(e[2]);
|
|
1789
1574
|
if (!r || !i || r.p !== null && (r.p < 0 || r.p > 1) || i.p !== null && (i.p < 0 || i.p > 1)) return null;
|
|
1790
1575
|
let a = r.p ?? (i.p === null ? .5 : 1 - i.p), s = i.p ?? 1 - a;
|
|
1791
|
-
return a + s <= 0 ? null :
|
|
1576
|
+
return a + s <= 0 ? null : Gt(r.c, a, i.c, s);
|
|
1792
1577
|
}
|
|
1793
1578
|
return null;
|
|
1794
1579
|
}
|
|
1795
|
-
function
|
|
1580
|
+
function Wt(e) {
|
|
1796
1581
|
if (String(e).length > 4096) return null;
|
|
1797
1582
|
try {
|
|
1798
|
-
return
|
|
1583
|
+
return Ut(e);
|
|
1799
1584
|
} catch {
|
|
1800
1585
|
return null;
|
|
1801
1586
|
}
|
|
1802
1587
|
}
|
|
1803
1588
|
function L(e) {
|
|
1804
|
-
return
|
|
1589
|
+
return Wt(e) ?? [
|
|
1805
1590
|
0,
|
|
1806
1591
|
0,
|
|
1807
1592
|
0,
|
|
1808
1593
|
0
|
|
1809
1594
|
];
|
|
1810
1595
|
}
|
|
1811
|
-
function
|
|
1596
|
+
function Gt(e, t, n, r) {
|
|
1812
1597
|
let i = t + r, [a, o] = [t / i, r / i], s = e[3] * a + n[3] * o, c = (t) => s === 0 ? 0 : (e[t] * e[3] * a + n[t] * n[3] * o) / s;
|
|
1813
1598
|
return [
|
|
1814
1599
|
c(0),
|
|
@@ -1817,10 +1602,10 @@ function Bt(e, t, n, r) {
|
|
|
1817
1602
|
s * Math.min(1, i)
|
|
1818
1603
|
];
|
|
1819
1604
|
}
|
|
1820
|
-
var
|
|
1605
|
+
var Kt = (e) => {
|
|
1821
1606
|
let t = e / 255;
|
|
1822
1607
|
return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
|
|
1823
|
-
},
|
|
1608
|
+
}, qt = ([e, t, n]) => .2126 * Kt(e) + .7152 * Kt(t) + .0722 * Kt(n), Jt = (e, t) => (Math.max(e, t) + .05) / (Math.min(e, t) + .05), R = Object.freeze({
|
|
1824
1609
|
dark: Object.freeze({
|
|
1825
1610
|
added: "#2dd4bf",
|
|
1826
1611
|
changed: "#fbbf24",
|
|
@@ -1833,10 +1618,10 @@ var Vt = (e) => {
|
|
|
1833
1618
|
removed: "#e20b0b",
|
|
1834
1619
|
edit: "#6839f6"
|
|
1835
1620
|
})
|
|
1836
|
-
}),
|
|
1837
|
-
light:
|
|
1621
|
+
}), Yt = .85, Xt = .9, Zt = .6, Qt = .45, $t = Object.freeze({
|
|
1622
|
+
light: Zt,
|
|
1838
1623
|
dark: .5
|
|
1839
|
-
}),
|
|
1624
|
+
}), en = Object.freeze({
|
|
1840
1625
|
added: Object.freeze({
|
|
1841
1626
|
ringDash: Object.freeze([5, 4]),
|
|
1842
1627
|
edgeDash: Object.freeze([7, 5]),
|
|
@@ -1857,14 +1642,14 @@ var Vt = (e) => {
|
|
|
1857
1642
|
edgeDash: Object.freeze([12, 4]),
|
|
1858
1643
|
strike: !1
|
|
1859
1644
|
})
|
|
1860
|
-
}),
|
|
1645
|
+
}), tn = "#f4f6fa", nn = {
|
|
1861
1646
|
mark: 3.2,
|
|
1862
1647
|
text: 4.8
|
|
1863
|
-
},
|
|
1864
|
-
function
|
|
1648
|
+
}, rn = .16, an = 1.35, on = .11;
|
|
1649
|
+
function sn(e, t) {
|
|
1865
1650
|
return e === "light" || e === "dark" ? e : t ? "light" : "dark";
|
|
1866
1651
|
}
|
|
1867
|
-
function
|
|
1652
|
+
function cn([e, t, n]) {
|
|
1868
1653
|
let r = e / 255, i = t / 255, a = n / 255, o = Math.max(r, i, a), s = Math.min(r, i, a), c = (o + s) / 2;
|
|
1869
1654
|
if (o === s) return [
|
|
1870
1655
|
0,
|
|
@@ -1878,7 +1663,7 @@ function nn([e, t, n]) {
|
|
|
1878
1663
|
c
|
|
1879
1664
|
];
|
|
1880
1665
|
}
|
|
1881
|
-
function
|
|
1666
|
+
function ln([e, t, n]) {
|
|
1882
1667
|
let r = (t) => (t + e / 30) % 12, i = t * Math.min(n, 1 - n), a = (e) => n - i * Math.max(-1, Math.min(r(e) - 3, 9 - r(e), 1));
|
|
1883
1668
|
return [
|
|
1884
1669
|
a(0),
|
|
@@ -1886,64 +1671,64 @@ function rn([e, t, n]) {
|
|
|
1886
1671
|
a(4)
|
|
1887
1672
|
].map((e) => Math.round(e * 255));
|
|
1888
1673
|
}
|
|
1889
|
-
var
|
|
1674
|
+
var un = (e) => `#${e.map((e) => e.toString(16).padStart(2, "0")).join("")}`, dn = (e, t) => t >= 1 ? un(e) : `rgba(${e.join(", ")}, ${+t.toFixed(3)})`, fn = qt(L(tn)), pn = /* @__PURE__ */ new Map();
|
|
1890
1675
|
function z(e, t = "mark") {
|
|
1891
|
-
let n = `${t}|${e}`, r =
|
|
1676
|
+
let n = `${t}|${e}`, r = pn.get(n);
|
|
1892
1677
|
if (r !== void 0) return r;
|
|
1893
|
-
let i =
|
|
1894
|
-
return
|
|
1678
|
+
let i = mn(e, t);
|
|
1679
|
+
return pn.set(n, i), i;
|
|
1895
1680
|
}
|
|
1896
|
-
function
|
|
1681
|
+
function mn(e, t) {
|
|
1897
1682
|
if (typeof e != "string") return e;
|
|
1898
1683
|
let [n, r, i, a] = L(e);
|
|
1899
1684
|
if (a === 0) return e;
|
|
1900
|
-
let [o, s, c] =
|
|
1685
|
+
let [o, s, c] = cn([
|
|
1901
1686
|
n,
|
|
1902
1687
|
r,
|
|
1903
1688
|
i
|
|
1904
1689
|
]);
|
|
1905
|
-
if ((Math.max(n, r, i) - Math.min(n, r, i)) / 255 <
|
|
1690
|
+
if ((Math.max(n, r, i) - Math.min(n, r, i)) / 255 < rn && c > .5) return dn(ln([
|
|
1906
1691
|
o,
|
|
1907
1692
|
s,
|
|
1908
|
-
Math.max(
|
|
1693
|
+
Math.max(on, 1 - c)
|
|
1909
1694
|
]), a);
|
|
1910
|
-
let l =
|
|
1911
|
-
if (
|
|
1695
|
+
let l = nn[t] || nn.mark;
|
|
1696
|
+
if (Jt(qt([
|
|
1912
1697
|
n,
|
|
1913
1698
|
r,
|
|
1914
1699
|
i
|
|
1915
|
-
]),
|
|
1700
|
+
]), fn) >= l) return e;
|
|
1916
1701
|
let u = 0, d = c;
|
|
1917
1702
|
for (let e = 0; e < 20; e++) {
|
|
1918
1703
|
let e = (u + d) / 2;
|
|
1919
|
-
|
|
1704
|
+
Jt(qt(ln([
|
|
1920
1705
|
o,
|
|
1921
1706
|
s,
|
|
1922
1707
|
e
|
|
1923
|
-
])),
|
|
1708
|
+
])), fn) >= l ? u = e : d = e;
|
|
1924
1709
|
}
|
|
1925
|
-
return
|
|
1710
|
+
return dn(ln([
|
|
1926
1711
|
o,
|
|
1927
1712
|
s,
|
|
1928
1713
|
u
|
|
1929
1714
|
]), a);
|
|
1930
1715
|
}
|
|
1931
|
-
var
|
|
1716
|
+
var hn = (e, t, n = "mark") => t === "light" ? z(e, n) : e, gn = (e) => {
|
|
1932
1717
|
e && (e.color = z(e.color, "text"));
|
|
1933
1718
|
};
|
|
1934
|
-
function
|
|
1719
|
+
function _n(e) {
|
|
1935
1720
|
e.theme = "light";
|
|
1936
1721
|
for (let t of e.nodes) t.color = z(t.color), t.labelColor = z(t.labelColor, "text");
|
|
1937
1722
|
for (let t of e.edges) {
|
|
1938
1723
|
if (t.mark && t.mark !== "none") t.color = R.dark[t.mark] === t.color ? R.light[t.mark] : z(t.color);
|
|
1939
1724
|
else {
|
|
1940
|
-
t.alpha < 1 && (t.alpha = Math.min(1, t.alpha *
|
|
1725
|
+
t.alpha < 1 && (t.alpha = Math.min(1, t.alpha * an)), t.color = z(t.color);
|
|
1941
1726
|
let [e, n, r, i] = L(t.color);
|
|
1942
|
-
i > 0 && i < 1 && (t.color =
|
|
1727
|
+
i > 0 && i < 1 && (t.color = dn([
|
|
1943
1728
|
e,
|
|
1944
1729
|
n,
|
|
1945
1730
|
r
|
|
1946
|
-
], Math.min(1, i *
|
|
1731
|
+
], Math.min(1, i * an)));
|
|
1947
1732
|
}
|
|
1948
1733
|
t.glowColor &&= z(t.glowColor), t.label &&= {
|
|
1949
1734
|
...t.label,
|
|
@@ -1971,49 +1756,49 @@ function dn(e) {
|
|
|
1971
1756
|
"title",
|
|
1972
1757
|
"note",
|
|
1973
1758
|
"arrow"
|
|
1974
|
-
]) t[e] && (t[e] = { ...t[e] },
|
|
1759
|
+
]) t[e] && (t[e] = { ...t[e] }, gn(t[e]));
|
|
1975
1760
|
return t;
|
|
1976
1761
|
}), e;
|
|
1977
1762
|
}
|
|
1978
|
-
var
|
|
1979
|
-
Object.freeze(Object.keys(
|
|
1980
|
-
var
|
|
1981
|
-
function
|
|
1763
|
+
var vn = 1.2, yn = 96, bn = 24, xn = "glyph:", Sn = "#ffffff", Cn = "#0b1220";
|
|
1764
|
+
Object.freeze(Object.keys(_));
|
|
1765
|
+
var wn = (e) => typeof e == "string" && Object.hasOwn(_, e), Tn = (e, t) => `${xn}${e}|${t}`, En = (e) => typeof e == "string" && e.startsWith(xn);
|
|
1766
|
+
function Dn(e) {
|
|
1982
1767
|
let t = e.slice(6), n = t.indexOf("|");
|
|
1983
1768
|
return {
|
|
1984
1769
|
type: t.slice(0, n),
|
|
1985
1770
|
ink: t.slice(n + 1)
|
|
1986
1771
|
};
|
|
1987
1772
|
}
|
|
1988
|
-
var
|
|
1773
|
+
var On = ([e, t, n]) => {
|
|
1989
1774
|
let r = (e) => {
|
|
1990
1775
|
let t = e / 255;
|
|
1991
1776
|
return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
|
|
1992
1777
|
};
|
|
1993
1778
|
return .2126 * r(e) + .7152 * r(t) + .0722 * r(n);
|
|
1994
|
-
},
|
|
1779
|
+
}, kn = (e, t) => {
|
|
1995
1780
|
let [n, r] = e > t ? [e, t] : [t, e];
|
|
1996
1781
|
return (n + .05) / (r + .05);
|
|
1997
1782
|
};
|
|
1998
|
-
function
|
|
1999
|
-
let t =
|
|
2000
|
-
return
|
|
1783
|
+
function An(e) {
|
|
1784
|
+
let t = On(L(e));
|
|
1785
|
+
return kn(1, t) >= kn(On(L("#0b1220")), t) ? Sn : Cn;
|
|
2001
1786
|
}
|
|
2002
|
-
var
|
|
1787
|
+
var jn = (e, t) => t && t.values && t.values["--corn-map-glyph"] || An(e.color), Mn = (e, t) => !!e.glyph && !e.icon && !e.letters && e.r * 2 * t >= 14, Nn = {
|
|
2003
1788
|
root: (e) => {
|
|
2004
|
-
|
|
1789
|
+
Pn(e, 12, 12, 8), V(e, 12, 12, 3.2);
|
|
2005
1790
|
},
|
|
2006
1791
|
app: (e) => {
|
|
2007
|
-
e.beginPath(), e.rect(3.5, 5, 17, 14), e.stroke(),
|
|
1792
|
+
e.beginPath(), e.rect(3.5, 5, 17, 14), e.stroke(), B(e, 3.5, 9.5, 20.5, 9.5);
|
|
2008
1793
|
},
|
|
2009
1794
|
page: (e) => {
|
|
2010
|
-
e.beginPath(), e.rect(6, 3.5, 12, 17), e.stroke(),
|
|
1795
|
+
e.beginPath(), e.rect(6, 3.5, 12, 17), e.stroke(), B(e, 9, 9, 15, 9), B(e, 9, 12.5, 15, 12.5), B(e, 9, 16, 13, 16);
|
|
2011
1796
|
},
|
|
2012
1797
|
pkg: (e) => {
|
|
2013
|
-
e.beginPath(), e.rect(4, 7, 16, 13), e.stroke(),
|
|
1798
|
+
e.beginPath(), e.rect(4, 7, 16, 13), e.stroke(), B(e, 4, 12, 20, 12), B(e, 12, 7, 12, 12);
|
|
2014
1799
|
},
|
|
2015
1800
|
core: (e) => {
|
|
2016
|
-
|
|
1801
|
+
Pn(e, 12, 12, 8.2), V(e, 12, 12, 4);
|
|
2017
1802
|
},
|
|
2018
1803
|
token: (e) => {
|
|
2019
1804
|
for (let [t, n] of [
|
|
@@ -2024,13 +1809,13 @@ var wn = (e, t) => t && t.values && t.values["--corn-map-glyph"] || Cn(e.color),
|
|
|
2024
1809
|
]) e.fillRect(t, n, 6, 6);
|
|
2025
1810
|
},
|
|
2026
1811
|
atom: (e) => {
|
|
2027
|
-
e.beginPath(), e.ellipse(12, 12, 9.5, 4, -.5, 0, Math.PI * 2), e.stroke(),
|
|
1812
|
+
e.beginPath(), e.ellipse(12, 12, 9.5, 4, -.5, 0, Math.PI * 2), e.stroke(), V(e, 12, 12, 3);
|
|
2028
1813
|
},
|
|
2029
1814
|
molecule: (e) => {
|
|
2030
|
-
|
|
1815
|
+
B(e, 7, 16, 17, 8), V(e, 7, 16, 4), V(e, 17, 8, 4);
|
|
2031
1816
|
},
|
|
2032
1817
|
tool: (e) => {
|
|
2033
|
-
|
|
1818
|
+
B(e, 12, 4, 12, 20), B(e, 4, 12, 20, 12);
|
|
2034
1819
|
},
|
|
2035
1820
|
rom: (e) => {
|
|
2036
1821
|
e.beginPath(), e.arc(12, 12, 7.5, .4, Math.PI * 1.6), e.stroke(), e.beginPath(), e.moveTo(14.5, 2.5), e.lineTo(20, 5.5), e.lineTo(14, 8.5), e.closePath(), e.fill();
|
|
@@ -2039,13 +1824,13 @@ var wn = (e, t) => t && t.values && t.values["--corn-map-glyph"] || Cn(e.color),
|
|
|
2039
1824
|
e.beginPath(), e.moveTo(13.5, 2.5), e.lineTo(6, 13.5), e.lineTo(11.5, 13.5), e.lineTo(10, 21.5), e.lineTo(18, 9.5), e.lineTo(12.5, 9.5), e.closePath(), e.fill();
|
|
2040
1825
|
},
|
|
2041
1826
|
store: (e) => {
|
|
2042
|
-
e.beginPath(), e.ellipse(12, 6.5, 7.5, 3, 0, 0, Math.PI * 2), e.stroke(),
|
|
1827
|
+
e.beginPath(), e.ellipse(12, 6.5, 7.5, 3, 0, 0, Math.PI * 2), e.stroke(), B(e, 4.5, 6.5, 4.5, 17.5), B(e, 19.5, 6.5, 19.5, 17.5), e.beginPath(), e.ellipse(12, 17.5, 7.5, 3, 0, 0, Math.PI), e.stroke();
|
|
2043
1828
|
},
|
|
2044
1829
|
table: (e) => {
|
|
2045
|
-
e.beginPath(), e.rect(4, 5, 16, 14), e.stroke(),
|
|
1830
|
+
e.beginPath(), e.rect(4, 5, 16, 14), e.stroke(), B(e, 4, 10, 20, 10), B(e, 12, 10, 12, 19);
|
|
2046
1831
|
},
|
|
2047
1832
|
external: (e) => {
|
|
2048
|
-
|
|
1833
|
+
B(e, 7, 17, 17, 7), e.beginPath(), e.moveTo(9.5, 6.5), e.lineTo(17.5, 6.5), e.lineTo(17.5, 14.5), e.stroke();
|
|
2049
1834
|
},
|
|
2050
1835
|
stack: (e) => {
|
|
2051
1836
|
for (let t of [
|
|
@@ -2055,56 +1840,56 @@ var wn = (e, t) => t && t.values && t.values["--corn-map-glyph"] || Cn(e.color),
|
|
|
2055
1840
|
]) e.fillRect(4, t, 16, 3.5);
|
|
2056
1841
|
},
|
|
2057
1842
|
machine: (e) => {
|
|
2058
|
-
e.beginPath(), e.rect(3.5, 4.5, 17, 11), e.stroke(),
|
|
1843
|
+
e.beginPath(), e.rect(3.5, 4.5, 17, 11), e.stroke(), B(e, 12, 15.5, 12, 19.5), B(e, 7.5, 19.5, 16.5, 19.5);
|
|
2059
1844
|
},
|
|
2060
1845
|
container: (e) => {
|
|
2061
1846
|
e.beginPath(), e.rect(4, 4, 16, 16), e.stroke(), e.fillRect(8.5, 8.5, 7, 7);
|
|
2062
1847
|
},
|
|
2063
1848
|
device: (e) => {
|
|
2064
|
-
e.beginPath(), e.rect(7.5, 3, 9, 18), e.stroke(),
|
|
1849
|
+
e.beginPath(), e.rect(7.5, 3, 9, 18), e.stroke(), V(e, 12, 17.5, 1.3);
|
|
2065
1850
|
},
|
|
2066
1851
|
floor: (e) => {
|
|
2067
1852
|
e.beginPath(), e.moveTo(3.5, 20.5), e.lineTo(3.5, 15.5), e.lineTo(9, 15.5), e.lineTo(9, 10.5), e.lineTo(14.5, 10.5), e.lineTo(14.5, 5.5), e.lineTo(20.5, 5.5), e.stroke();
|
|
2068
1853
|
},
|
|
2069
1854
|
room: (e) => {
|
|
2070
|
-
e.beginPath(), e.rect(6.5, 3.5, 11, 17), e.stroke(),
|
|
1855
|
+
e.beginPath(), e.rect(6.5, 3.5, 11, 17), e.stroke(), V(e, 14.5, 12.5, 1.4);
|
|
2071
1856
|
},
|
|
2072
1857
|
persona: (e) => {
|
|
2073
|
-
|
|
1858
|
+
V(e, 12, 8, 3.8), e.beginPath(), e.arc(12, 21, 8, Math.PI * 1.15, Math.PI * 1.85), e.stroke();
|
|
2074
1859
|
}
|
|
2075
1860
|
};
|
|
2076
|
-
function
|
|
1861
|
+
function B(e, t, n, r, i) {
|
|
2077
1862
|
e.beginPath(), e.moveTo(t, n), e.lineTo(r, i), e.stroke();
|
|
2078
1863
|
}
|
|
2079
|
-
function
|
|
1864
|
+
function Pn(e, t, n, r) {
|
|
2080
1865
|
e.beginPath(), e.arc(t, n, r, 0, Math.PI * 2), e.stroke();
|
|
2081
1866
|
}
|
|
2082
|
-
function
|
|
1867
|
+
function V(e, t, n, r) {
|
|
2083
1868
|
e.beginPath(), e.arc(t, n, r, 0, Math.PI * 2), e.fill();
|
|
2084
1869
|
}
|
|
2085
|
-
function
|
|
2086
|
-
let i =
|
|
1870
|
+
function Fn(e, t, n, r) {
|
|
1871
|
+
let i = Nn[t];
|
|
2087
1872
|
if (!i) return;
|
|
2088
|
-
let a = n /
|
|
1873
|
+
let a = n / bn;
|
|
2089
1874
|
e.save(), e.scale(a, a), e.lineWidth = 2.4, e.lineCap = "round", e.lineJoin = "round", e.strokeStyle = r, e.fillStyle = r, i(e), e.restore();
|
|
2090
1875
|
}
|
|
2091
|
-
var
|
|
2092
|
-
function
|
|
2093
|
-
if (!
|
|
2094
|
-
let n =
|
|
2095
|
-
if (
|
|
2096
|
-
if (
|
|
1876
|
+
var In = /* @__PURE__ */ new Map();
|
|
1877
|
+
function Ln(e, t) {
|
|
1878
|
+
if (!wn(e) || typeof t != "string") return null;
|
|
1879
|
+
let n = Tn(e, t);
|
|
1880
|
+
if (In.has(n)) return In.get(n);
|
|
1881
|
+
if (In.size >= 64) return null;
|
|
2097
1882
|
let r = null;
|
|
2098
1883
|
try {
|
|
2099
|
-
let n = typeof OffscreenCanvas < "u" ? new OffscreenCanvas(
|
|
2100
|
-
width:
|
|
2101
|
-
height:
|
|
1884
|
+
let n = typeof OffscreenCanvas < "u" ? new OffscreenCanvas(yn, yn) : typeof document < "u" ? Object.assign(document.createElement("canvas"), {
|
|
1885
|
+
width: yn,
|
|
1886
|
+
height: yn
|
|
2102
1887
|
}) : null, i = n && n.getContext && n.getContext("2d");
|
|
2103
|
-
i && i.stroke && (
|
|
1888
|
+
i && i.stroke && (Fn(i, e, yn, t), r = n);
|
|
2104
1889
|
} catch {
|
|
2105
1890
|
r = null;
|
|
2106
1891
|
}
|
|
2107
|
-
return
|
|
1892
|
+
return In.set(n, r), r;
|
|
2108
1893
|
}
|
|
2109
1894
|
Object.freeze([
|
|
2110
1895
|
"pulls",
|
|
@@ -2137,21 +1922,21 @@ Object.freeze([
|
|
|
2137
1922
|
["other", "Cancelled or skipped"]
|
|
2138
1923
|
]
|
|
2139
1924
|
});
|
|
2140
|
-
var
|
|
2141
|
-
function
|
|
1925
|
+
var Rn = .2, zn = "#f87171";
|
|
1926
|
+
function Bn(e, t) {
|
|
2142
1927
|
if (!t || !t.changed.size && !t.failing.size) return;
|
|
2143
1928
|
let n = (e) => t.changed.has(e) || t.failing.has(e);
|
|
2144
|
-
for (let r of e.nodes) n(r.id) ? (r.alpha = 1, r.labelAlpha = 1, r.glow = Math.max(r.glow, 14), r.labelKeep = !0, r.halo !== "selected" && (r.halo = "match"), t.failing.has(r.id) && (r.color =
|
|
2145
|
-
for (let t of e.edges) !n(t.from) && !n(t.to) && (t.alpha = Math.min(t.alpha,
|
|
1929
|
+
for (let r of e.nodes) n(r.id) ? (r.alpha = 1, r.labelAlpha = 1, r.glow = Math.max(r.glow, 14), r.labelKeep = !0, r.halo !== "selected" && (r.halo = "match"), t.failing.has(r.id) && (r.color = zn)) : (r.alpha = Math.min(r.alpha, Rn), r.labelAlpha = r.alpha, r.glow = 0);
|
|
1930
|
+
for (let t of e.edges) !n(t.from) && !n(t.to) && (t.alpha = Math.min(t.alpha, Rn / 2));
|
|
2146
1931
|
}
|
|
2147
1932
|
// ../explorer/search-model.js
|
|
2148
|
-
var
|
|
1933
|
+
var Vn = Object.freeze({
|
|
2149
1934
|
labelStart: 0,
|
|
2150
1935
|
wordStart: 1,
|
|
2151
1936
|
label: 2,
|
|
2152
1937
|
idOrFile: 3,
|
|
2153
1938
|
typeOrKind: 4
|
|
2154
|
-
}),
|
|
1939
|
+
}), Hn = Object.freeze({
|
|
2155
1940
|
root: "Root",
|
|
2156
1941
|
app: "Apps",
|
|
2157
1942
|
pkg: "Packages",
|
|
@@ -2173,55 +1958,55 @@ var U = Object.freeze({
|
|
|
2173
1958
|
floor: "House",
|
|
2174
1959
|
room: "House",
|
|
2175
1960
|
persona: "People"
|
|
2176
|
-
}),
|
|
2177
|
-
function
|
|
1961
|
+
}), Un = (e) => e && e.charAt(0).toUpperCase() + e.slice(1), Wn = (e) => Hn[e.type] || Un(String(e.type || "")), H = (e) => typeof e == "string" ? e.toLowerCase() : "", Gn = /[^\p{L}\p{N}]+/u;
|
|
1962
|
+
function Kn(e, t) {
|
|
2178
1963
|
let n = String(t || "").toLowerCase();
|
|
2179
1964
|
if (!n) return -1;
|
|
2180
|
-
let r =
|
|
2181
|
-
return r.startsWith(n) ?
|
|
1965
|
+
let r = H(e.label);
|
|
1966
|
+
return r.startsWith(n) ? Vn.labelStart : r.split(Gn).some((e) => e && e.startsWith(n)) ? Vn.wordStart : r.includes(n) ? Vn.label : H(e.id).includes(n) || H(e.file).includes(n) ? Vn.idOrFile : H(e.type).includes(n) || H(Wn(e)).includes(n) || H(e.kind).includes(n) ? Vn.typeOrKind : -1;
|
|
2182
1967
|
}
|
|
2183
|
-
function
|
|
1968
|
+
function qn(e, t) {
|
|
2184
1969
|
let n = String(t || "").trim().toLowerCase(), r = /* @__PURE__ */ new Set();
|
|
2185
1970
|
if (!n) return r;
|
|
2186
|
-
for (let t of e)
|
|
1971
|
+
for (let t of e) Kn(t, n) >= 0 && r.add(t.id);
|
|
2187
1972
|
return r;
|
|
2188
1973
|
}
|
|
2189
1974
|
// ../explorer/css-color.js
|
|
2190
|
-
var
|
|
2191
|
-
function
|
|
2192
|
-
if (
|
|
2193
|
-
|
|
1975
|
+
var U, Jn = /* @__PURE__ */ new Map();
|
|
1976
|
+
function Yn() {
|
|
1977
|
+
if (U !== void 0) return U;
|
|
1978
|
+
U = null;
|
|
2194
1979
|
try {
|
|
2195
|
-
typeof document < "u" && (
|
|
1980
|
+
typeof document < "u" && (U = document.createElement("canvas").getContext("2d", { willReadFrequently: !0 }) || null);
|
|
2196
1981
|
} catch {
|
|
2197
|
-
|
|
1982
|
+
U = null;
|
|
2198
1983
|
}
|
|
2199
|
-
return
|
|
1984
|
+
return U;
|
|
2200
1985
|
}
|
|
2201
|
-
function
|
|
1986
|
+
function Xn(e) {
|
|
2202
1987
|
let t = typeof e == "string" ? e.trim() : "";
|
|
2203
1988
|
if (!t || t.toLowerCase() === "auto") return null;
|
|
2204
|
-
if (
|
|
1989
|
+
if (Qn(t)) return t;
|
|
2205
1990
|
if (/^transparent$/i.test(t)) return "rgba(0, 0, 0, 0)";
|
|
2206
|
-
if (
|
|
2207
|
-
let n = null, r =
|
|
1991
|
+
if (Jn.has(t)) return Jn.get(t);
|
|
1992
|
+
let n = null, r = Zn(t) && !/currentcolor/i.test(t) ? Yn() : null;
|
|
2208
1993
|
if (r) try {
|
|
2209
1994
|
let e = (e) => (r.fillStyle = e, r.fillStyle = t, String(r.fillStyle)), i = e("#010203"), a = i === "#010203" && e("#040506") === "#040506" ? null : i;
|
|
2210
|
-
n = a === null ? null :
|
|
1995
|
+
n = a === null ? null : er(a) ? a : tr(r, t);
|
|
2211
1996
|
} catch {
|
|
2212
1997
|
n = null;
|
|
2213
1998
|
}
|
|
2214
|
-
return
|
|
1999
|
+
return Jn.set(t, n), n;
|
|
2215
2000
|
}
|
|
2216
|
-
function
|
|
2001
|
+
function Zn(e) {
|
|
2217
2002
|
try {
|
|
2218
2003
|
return typeof CSS > "u" || typeof CSS.supports != "function" || CSS.supports("color", e);
|
|
2219
2004
|
} catch {
|
|
2220
2005
|
return !1;
|
|
2221
2006
|
}
|
|
2222
2007
|
}
|
|
2223
|
-
function
|
|
2224
|
-
if (!
|
|
2008
|
+
function Qn(e) {
|
|
2009
|
+
if (!er(e)) return !1;
|
|
2225
2010
|
let t = /^rgba?\(/i.test(e.trim()) ? e.slice(e.indexOf("(") + 1, e.lastIndexOf(")")).split(",").map(Number) : null;
|
|
2226
2011
|
if (t && (t.slice(0, 3).some((e) => !(e >= 0 && e <= 255)) || t.length > 3 && !(t[3] > 0 && t[3] <= 1))) return !1;
|
|
2227
2012
|
let [n, r, i, a] = L(e);
|
|
@@ -2231,30 +2016,30 @@ function Wn(e) {
|
|
|
2231
2016
|
i
|
|
2232
2017
|
].every((e) => Number.isFinite(e) && e >= 0 && e <= 255) && Number.isFinite(a) && a > 0 && a <= 1;
|
|
2233
2018
|
}
|
|
2234
|
-
var
|
|
2235
|
-
function
|
|
2019
|
+
var $n = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$|^rgba?\(\s*[\d.]+\s*,\s*[\d.]+\s*,\s*[\d.]+\s*(?:,\s*[\d.]+\s*)?\)$/i, er = (e) => $n.test(e.trim());
|
|
2020
|
+
function tr(e, t) {
|
|
2236
2021
|
if (!e.getImageData || !e.fillRect) return null;
|
|
2237
2022
|
e.clearRect(0, 0, 1, 1), e.fillStyle = t, e.fillRect(0, 0, 1, 1);
|
|
2238
2023
|
let [n, r, i, a] = e.getImageData(0, 0, 1, 1).data;
|
|
2239
|
-
return
|
|
2024
|
+
return nr(n, r, i, a / 255);
|
|
2240
2025
|
}
|
|
2241
|
-
var
|
|
2242
|
-
function
|
|
2026
|
+
var nr = (e, t, n, r) => `rgba(${e}, ${t}, ${n}, ${+r.toFixed(3)})`;
|
|
2027
|
+
function rr(e) {
|
|
2243
2028
|
if (typeof e != "string" || e.length > 200) return null;
|
|
2244
2029
|
let t = e.trim();
|
|
2245
|
-
return !t || /^(?:auto|currentcolor)$/i.test(t) ? null :
|
|
2030
|
+
return !t || /^(?:auto|currentcolor)$/i.test(t) ? null : Xn(t) || (Yn() === null && Wt(t) ? t : null);
|
|
2246
2031
|
}
|
|
2247
2032
|
// ../explorer/camera.js
|
|
2248
|
-
var
|
|
2249
|
-
function
|
|
2250
|
-
let a =
|
|
2033
|
+
var W = .25, ir = .005, ar = (e, t = W) => Math.max(Math.max(ir, Math.min(t, W)), Math.min(3, e)), or = (e, t, n) => t < e ? Math.min(e, ar(t, n)) : ar(t, n);
|
|
2034
|
+
function sr(e, t, n, r, i = W) {
|
|
2035
|
+
let a = or(e.zoom, e.zoom * t, i), o = (n - e.x) / e.zoom, s = (r - e.y) / e.zoom;
|
|
2251
2036
|
return {
|
|
2252
2037
|
x: n - o * a,
|
|
2253
2038
|
y: r - s * a,
|
|
2254
2039
|
zoom: a
|
|
2255
2040
|
};
|
|
2256
2041
|
}
|
|
2257
|
-
var
|
|
2042
|
+
var cr = (e, t, n) => ({
|
|
2258
2043
|
x: e.x,
|
|
2259
2044
|
y: e.y,
|
|
2260
2045
|
zoom: e.zoom,
|
|
@@ -2264,15 +2049,15 @@ var er = (e, t, n) => ({
|
|
|
2264
2049
|
y: n.y
|
|
2265
2050
|
}
|
|
2266
2051
|
});
|
|
2267
|
-
function
|
|
2268
|
-
let i =
|
|
2052
|
+
function lr(e, t, n, r = W) {
|
|
2053
|
+
let i = or(e.zoom, e.zoom * (t / e.dist), r), a = (e.mid.x - e.x) / e.zoom, o = (e.mid.y - e.y) / e.zoom;
|
|
2269
2054
|
return {
|
|
2270
2055
|
x: n.x - a * i,
|
|
2271
2056
|
y: n.y - o * i,
|
|
2272
2057
|
zoom: i
|
|
2273
2058
|
};
|
|
2274
2059
|
}
|
|
2275
|
-
function
|
|
2060
|
+
function ur(e, t, n = {}, r = 120) {
|
|
2276
2061
|
let i = (e, t = 0, n = 0) => {
|
|
2277
2062
|
let i = Math.max(0, t), a = Math.max(0, n), o = Math.max(0, e - r), s = i + a > o && i + a > 0 ? o / (i + a) : 1;
|
|
2278
2063
|
return [i * s, a * s];
|
|
@@ -2284,7 +2069,7 @@ function nr(e, t, n = {}, r = 120) {
|
|
|
2284
2069
|
height: Math.max(0, t - a - o)
|
|
2285
2070
|
};
|
|
2286
2071
|
}
|
|
2287
|
-
var
|
|
2072
|
+
var dr = (e) => {
|
|
2288
2073
|
let t = e.r || 18;
|
|
2289
2074
|
return {
|
|
2290
2075
|
left: e.x - t - 25,
|
|
@@ -2292,15 +2077,15 @@ var rr = (e) => {
|
|
|
2292
2077
|
top: e.y - t - 25,
|
|
2293
2078
|
bottom: e.y + t + 35
|
|
2294
2079
|
};
|
|
2295
|
-
},
|
|
2296
|
-
function
|
|
2080
|
+
}, fr = (e, t) => Math.min(e, t.width / 4, t.height / 4);
|
|
2081
|
+
function pr(e, t, { padding: n = 40, maxZoom: r = 1, minZoom: i = W } = {}) {
|
|
2297
2082
|
if (!e.length) return null;
|
|
2298
2083
|
let a = Infinity, o = -Infinity, s = Infinity, c = -Infinity;
|
|
2299
2084
|
for (let t of e) {
|
|
2300
|
-
let e =
|
|
2085
|
+
let e = dr(t);
|
|
2301
2086
|
a = Math.min(a, e.left), o = Math.max(o, e.right), s = Math.min(s, e.top), c = Math.max(c, e.bottom);
|
|
2302
2087
|
}
|
|
2303
|
-
let l =
|
|
2088
|
+
let l = fr(n, t), u = Math.min((t.width - l * 2) / (o - a), (t.height - l * 2) / (c - s)), d = Math.max(i, Math.min(r, u));
|
|
2304
2089
|
return {
|
|
2305
2090
|
x: t.x + t.width / 2 - (a + o) / 2 * d,
|
|
2306
2091
|
y: t.y + t.height / 2 - (s + c) / 2 * d,
|
|
@@ -2308,7 +2093,7 @@ function ar(e, t, { padding: n = 40, maxZoom: r = 1, minZoom: i = K } = {}) {
|
|
|
2308
2093
|
};
|
|
2309
2094
|
}
|
|
2310
2095
|
// ../explorer/selection-model.js
|
|
2311
|
-
var
|
|
2096
|
+
var mr = Object.freeze({
|
|
2312
2097
|
ownership: {
|
|
2313
2098
|
panel: "Owns",
|
|
2314
2099
|
edge: "owns"
|
|
@@ -2353,8 +2138,8 @@ var or = Object.freeze({
|
|
|
2353
2138
|
panel: "Extends",
|
|
2354
2139
|
edge: "extends"
|
|
2355
2140
|
}
|
|
2356
|
-
}),
|
|
2357
|
-
function
|
|
2141
|
+
}), hr = (e) => e.kind || (e.dashed ? "usage" : "ownership"), gr = (e) => `${e.from}->${e.to}`, _r = (e) => Object.hasOwn(mr, e) ? mr[e].edge : String(e);
|
|
2142
|
+
function vr(e, t, { throughChildren: n = !1, kind: r = null } = {}) {
|
|
2358
2143
|
if (!e) return null;
|
|
2359
2144
|
let i = e.id, a = /* @__PURE__ */ new Set();
|
|
2360
2145
|
for (let e of t) !e.kind && !e.dashed && e.from === i && a.add(e.to);
|
|
@@ -2362,11 +2147,11 @@ function ur(e, t, { throughChildren: n = !1, kind: r = null } = {}) {
|
|
|
2362
2147
|
for (let e of t) (o ? o.has(e.from) || o.has(e.to) : e.from === i || e.to === i) && s.push(e);
|
|
2363
2148
|
let c = /* @__PURE__ */ new Map();
|
|
2364
2149
|
for (let e of s) {
|
|
2365
|
-
let t =
|
|
2150
|
+
let t = hr(e);
|
|
2366
2151
|
c.set(t, (c.get(t) || 0) + 1);
|
|
2367
2152
|
}
|
|
2368
|
-
let l = r && c.has(r) ? r : null, u = l ? s.filter((e) =>
|
|
2369
|
-
for (let e of u) d.add(e.from), d.add(e.to), f.add(
|
|
2153
|
+
let l = r && c.has(r) ? r : null, u = l ? s.filter((e) => hr(e) === l) : s, d = /* @__PURE__ */ new Set([i]), f = /* @__PURE__ */ new Set();
|
|
2154
|
+
for (let e of u) d.add(e.from), d.add(e.to), f.add(gr(e));
|
|
2370
2155
|
return {
|
|
2371
2156
|
connectedNodeIds: d,
|
|
2372
2157
|
connectedEdgeKeys: f,
|
|
@@ -2378,8 +2163,20 @@ function ur(e, t, { throughChildren: n = !1, kind: r = null } = {}) {
|
|
|
2378
2163
|
throughChildren: n
|
|
2379
2164
|
};
|
|
2380
2165
|
}
|
|
2381
|
-
|
|
2382
|
-
|
|
2166
|
+
var yr = (e, t) => ({
|
|
2167
|
+
x: e.x + t.x * e.zoom,
|
|
2168
|
+
y: e.y + t.y * e.zoom
|
|
2169
|
+
});
|
|
2170
|
+
function br(e, t, n) {
|
|
2171
|
+
let r = 0;
|
|
2172
|
+
for (let i of e) {
|
|
2173
|
+
let e = yr(t, i);
|
|
2174
|
+
(e.x < n.x || e.x > n.x + n.width || e.y < n.y || e.y > n.y + n.height) && r++;
|
|
2175
|
+
}
|
|
2176
|
+
return r;
|
|
2177
|
+
}
|
|
2178
|
+
function xr(e, t, n, { padding: r = 40 } = {}) {
|
|
2179
|
+
let i = pr(t.length ? t : [e], n, {
|
|
2383
2180
|
padding: r,
|
|
2384
2181
|
maxZoom: 1,
|
|
2385
2182
|
minZoom: 1e-4
|
|
@@ -2395,7 +2192,7 @@ function dr(e, t, n, { padding: r = 40 } = {}) {
|
|
|
2395
2192
|
};
|
|
2396
2193
|
}
|
|
2397
2194
|
// ../explorer/scene.js
|
|
2398
|
-
var
|
|
2195
|
+
var Sr = [
|
|
2399
2196
|
"root",
|
|
2400
2197
|
"app",
|
|
2401
2198
|
"pkg",
|
|
@@ -2403,7 +2200,7 @@ var fr = [
|
|
|
2403
2200
|
"store",
|
|
2404
2201
|
"rom",
|
|
2405
2202
|
"floor"
|
|
2406
|
-
],
|
|
2203
|
+
], Cr = "\"Segoe UI\", -apple-system, BlinkMacSystemFont, Roboto, sans-serif", wr = "\"Segoe UI\", -apple-system, sans-serif", Tr = .32, Er = "#ffffff", Dr = .07, Or = {
|
|
2407
2204
|
node: {
|
|
2408
2205
|
color: "rgba(9, 13, 22, 0.85)",
|
|
2409
2206
|
width: 3.5
|
|
@@ -2412,10 +2209,10 @@ var fr = [
|
|
|
2412
2209
|
color: "rgba(9, 13, 22, 0.9)",
|
|
2413
2210
|
width: 3
|
|
2414
2211
|
}
|
|
2415
|
-
},
|
|
2212
|
+
}, kr = {
|
|
2416
2213
|
length: 9,
|
|
2417
2214
|
spread: .45
|
|
2418
|
-
},
|
|
2215
|
+
}, Ar = Object.freeze({
|
|
2419
2216
|
flow: "chevron",
|
|
2420
2217
|
reads: "chevron",
|
|
2421
2218
|
writes: "chevron",
|
|
@@ -2425,7 +2222,7 @@ var fr = [
|
|
|
2425
2222
|
"runs-on": "bar",
|
|
2426
2223
|
uses: "diamond",
|
|
2427
2224
|
extends: "diamond"
|
|
2428
|
-
}),
|
|
2225
|
+
}), jr = Object.freeze({
|
|
2429
2226
|
strokeWidth: 1.8,
|
|
2430
2227
|
barHalf: 5,
|
|
2431
2228
|
diamondHalf: 6,
|
|
@@ -2433,20 +2230,20 @@ var fr = [
|
|
|
2433
2230
|
tickHalf: 4,
|
|
2434
2231
|
tickWidth: 1.6,
|
|
2435
2232
|
tickGap: 6
|
|
2436
|
-
}),
|
|
2233
|
+
}), G = Object.freeze({
|
|
2437
2234
|
roundedHalf: .9,
|
|
2438
2235
|
roundedCorner: .3,
|
|
2439
2236
|
hexInradius: .9,
|
|
2440
2237
|
squareHalf: .86,
|
|
2441
2238
|
squareCorner: .12,
|
|
2442
2239
|
diamondHalf: 1.15
|
|
2443
|
-
}),
|
|
2240
|
+
}), Mr = Object.freeze({
|
|
2444
2241
|
circle: 1,
|
|
2445
|
-
"rounded-square": (
|
|
2446
|
-
hexagon:
|
|
2447
|
-
square: (
|
|
2448
|
-
diamond:
|
|
2449
|
-
}),
|
|
2242
|
+
"rounded-square": (G.roundedHalf - G.roundedCorner) * Math.SQRT2 + G.roundedCorner,
|
|
2243
|
+
hexagon: G.hexInradius / Math.cos(Math.PI / 6),
|
|
2244
|
+
square: (G.squareHalf - G.squareCorner) * Math.SQRT2 + G.squareCorner,
|
|
2245
|
+
diamond: G.diamondHalf
|
|
2246
|
+
}), Nr = Object.freeze([7, 5]), Pr = Object.freeze([1.5, 4]), Fr = {
|
|
2450
2247
|
selected: {
|
|
2451
2248
|
fill: "rgba(99, 102, 241, 0.55)",
|
|
2452
2249
|
fillR: 8,
|
|
@@ -2468,17 +2265,17 @@ var fr = [
|
|
|
2468
2265
|
ringR: 5,
|
|
2469
2266
|
ringWidth: 1.2
|
|
2470
2267
|
}
|
|
2471
|
-
},
|
|
2268
|
+
}, Ir = {
|
|
2472
2269
|
halfLength: 7,
|
|
2473
2270
|
width: 2
|
|
2474
|
-
},
|
|
2271
|
+
}, Lr = {
|
|
2475
2272
|
color: "#ffffff",
|
|
2476
2273
|
radius: 3.5,
|
|
2477
2274
|
glow: 10,
|
|
2478
2275
|
cycleMs: 2600
|
|
2479
|
-
},
|
|
2276
|
+
}, K = {
|
|
2480
2277
|
added: {
|
|
2481
|
-
...
|
|
2278
|
+
...en.added,
|
|
2482
2279
|
color: R.dark.added,
|
|
2483
2280
|
ringR: 9,
|
|
2484
2281
|
ringWidth: 2,
|
|
@@ -2486,7 +2283,7 @@ var fr = [
|
|
|
2486
2283
|
alpha: 1
|
|
2487
2284
|
},
|
|
2488
2285
|
changed: {
|
|
2489
|
-
...
|
|
2286
|
+
...en.changed,
|
|
2490
2287
|
color: R.dark.changed,
|
|
2491
2288
|
ringR: 9,
|
|
2492
2289
|
ringWidth: 2.5,
|
|
@@ -2494,15 +2291,15 @@ var fr = [
|
|
|
2494
2291
|
alpha: 1
|
|
2495
2292
|
},
|
|
2496
2293
|
removed: {
|
|
2497
|
-
...
|
|
2294
|
+
...en.removed,
|
|
2498
2295
|
color: R.dark.removed,
|
|
2499
2296
|
ringR: 9,
|
|
2500
2297
|
ringWidth: 2,
|
|
2501
2298
|
edgeWidth: 2,
|
|
2502
|
-
alpha:
|
|
2299
|
+
alpha: Yt
|
|
2503
2300
|
},
|
|
2504
2301
|
edit: {
|
|
2505
|
-
...
|
|
2302
|
+
...en.edit,
|
|
2506
2303
|
color: R.dark.edit,
|
|
2507
2304
|
ringR: 9,
|
|
2508
2305
|
ringWidth: 3,
|
|
@@ -2510,10 +2307,10 @@ var fr = [
|
|
|
2510
2307
|
alpha: 1
|
|
2511
2308
|
}
|
|
2512
2309
|
};
|
|
2513
|
-
function
|
|
2514
|
-
return e === "light" ?
|
|
2310
|
+
function Rr(e) {
|
|
2311
|
+
return e === "light" ? Vr : Br;
|
|
2515
2312
|
}
|
|
2516
|
-
var
|
|
2313
|
+
var zr = (e) => {
|
|
2517
2314
|
let t = { ...e };
|
|
2518
2315
|
for (let e of [
|
|
2519
2316
|
"fill",
|
|
@@ -2521,18 +2318,18 @@ var kr = (e) => {
|
|
|
2521
2318
|
"color"
|
|
2522
2319
|
]) typeof t[e] == "string" && (t[e] = z(t[e]));
|
|
2523
2320
|
return t;
|
|
2524
|
-
},
|
|
2525
|
-
halo:
|
|
2526
|
-
mark:
|
|
2527
|
-
core:
|
|
2528
|
-
labelOutline:
|
|
2529
|
-
}),
|
|
2530
|
-
halo: Object.fromEntries(Object.entries(
|
|
2531
|
-
mark: Object.fromEntries(Object.entries(
|
|
2321
|
+
}, Br = Object.freeze({
|
|
2322
|
+
halo: Fr,
|
|
2323
|
+
mark: K,
|
|
2324
|
+
core: Er,
|
|
2325
|
+
labelOutline: Or
|
|
2326
|
+
}), Vr = Object.freeze({
|
|
2327
|
+
halo: Object.fromEntries(Object.entries(Fr).map(([e, t]) => [e, zr(t)])),
|
|
2328
|
+
mark: Object.fromEntries(Object.entries(K).map(([e, t]) => [e, {
|
|
2532
2329
|
...t,
|
|
2533
2330
|
color: R.light[e]
|
|
2534
2331
|
}])),
|
|
2535
|
-
core:
|
|
2332
|
+
core: Er,
|
|
2536
2333
|
labelOutline: {
|
|
2537
2334
|
node: {
|
|
2538
2335
|
color: "rgba(244, 246, 250, 0.9)",
|
|
@@ -2543,28 +2340,28 @@ var kr = (e) => {
|
|
|
2543
2340
|
width: 3
|
|
2544
2341
|
}
|
|
2545
2342
|
}
|
|
2546
|
-
}),
|
|
2343
|
+
}), Hr = {
|
|
2547
2344
|
ring: 1.8,
|
|
2548
2345
|
edge: 1.6,
|
|
2549
2346
|
gap: 4
|
|
2550
|
-
},
|
|
2551
|
-
function
|
|
2552
|
-
return e.proposal && !
|
|
2347
|
+
}, Ur = .28;
|
|
2348
|
+
function q(e, t, { viewer: n = !1 } = {}) {
|
|
2349
|
+
return e.proposal && !s(e.proposalView || "diff", t) ? !1 : e.view === "dataflow" ? !!e.flow && e.flow.ids.has(t.id) : e.view === "house" ? be(e, t) : t.type === "root" || Wr(e, t, n ? e.activeLayers : I(e)) || xt(e, t);
|
|
2553
2350
|
}
|
|
2554
|
-
function
|
|
2555
|
-
let r =
|
|
2556
|
-
return r ? n[r] !== !1 : t.type === "core" ? (n.pkg || n.atom) && n.core !== !1 : t.type === "store" ? n.flow !== !1 && n.store !== !1 : t.type === "rom" ? n.rom !== !1 && n.flow !== !1 : t.type === "floor" || t.type === "room" ? n.house !== !1 : t.type === "external" ? n[
|
|
2351
|
+
function Wr(e, t, n = I(e)) {
|
|
2352
|
+
let r = _t(e, t);
|
|
2353
|
+
return r ? n[r] !== !1 : t.type === "core" ? (n.pkg || n.atom) && n.core !== !1 : t.type === "store" ? n.flow !== !1 && n.store !== !1 : t.type === "rom" ? n.rom !== !1 && n.flow !== !1 : t.type === "floor" || t.type === "room" ? n.house !== !1 : t.type === "external" ? n[ce(t)] !== !1 : n[t.type] !== !1;
|
|
2557
2354
|
}
|
|
2558
|
-
var
|
|
2559
|
-
function
|
|
2560
|
-
return
|
|
2355
|
+
var Gr = (e) => e.view === "dataflow" && e.flow ? e.flow.edges : e.view === "house" ? Se(e) : e.edges;
|
|
2356
|
+
function Kr(e, t, n) {
|
|
2357
|
+
return vr(e, t, n);
|
|
2561
2358
|
}
|
|
2562
|
-
function
|
|
2563
|
-
let t = e.scenario, n = new Set(t.visited.nodes), r = new Set(t.visited.edgeList.map(
|
|
2359
|
+
function qr(e) {
|
|
2360
|
+
let t = e.scenario, n = new Set(t.visited.nodes), r = new Set(t.visited.edgeList.map(J));
|
|
2564
2361
|
t.linkNodes && e.edges.forEach((e) => {
|
|
2565
|
-
n.has(e.from) && n.has(e.to) && r.add(
|
|
2362
|
+
n.has(e.from) && n.has(e.to) && r.add(J(e));
|
|
2566
2363
|
});
|
|
2567
|
-
let i =
|
|
2364
|
+
let i = _e(t, e.nodes, e.edges);
|
|
2568
2365
|
i && (i.down.forEach((e) => n.add(e)), i.hits.forEach((e, t) => n.add(t)), i.edges.forEach((e, t) => r.add(t)));
|
|
2569
2366
|
let { node: a, edge: o } = t.current, s = a === void 0 ? o ? o.kind === "writes" ? o.from : o.to : void 0 : a;
|
|
2570
2367
|
return {
|
|
@@ -2574,7 +2371,7 @@ function Lr(e) {
|
|
|
2574
2371
|
selectedId: s
|
|
2575
2372
|
};
|
|
2576
2373
|
}
|
|
2577
|
-
function
|
|
2374
|
+
function Jr(e, t, n) {
|
|
2578
2375
|
let r = n.x - t.x, i = n.y - t.y, a = Math.hypot(r, i) || 1, o = e.bend === void 0 ? .18 : e.bend, s = {
|
|
2579
2376
|
x: (t.x + n.x) / 2 + -i / a * a * o,
|
|
2580
2377
|
y: (t.y + n.y) / 2 + r / a * a * o
|
|
@@ -2591,14 +2388,14 @@ function Rr(e, t, n) {
|
|
|
2591
2388
|
c: s
|
|
2592
2389
|
};
|
|
2593
2390
|
}
|
|
2594
|
-
function
|
|
2391
|
+
function Yr(e, t, n, r) {
|
|
2595
2392
|
let i = 1 - r;
|
|
2596
2393
|
return {
|
|
2597
2394
|
x: i * i * e.x + 2 * i * r * t.x + r * r * n.x,
|
|
2598
2395
|
y: i * i * e.y + 2 * i * r * t.y + r * r * n.y
|
|
2599
2396
|
};
|
|
2600
2397
|
}
|
|
2601
|
-
function
|
|
2398
|
+
function Xr(e, t) {
|
|
2602
2399
|
let n = {
|
|
2603
2400
|
x: e.x1,
|
|
2604
2401
|
y: e.y1
|
|
@@ -2606,7 +2403,7 @@ function Br(e, t) {
|
|
|
2606
2403
|
x: e.x2,
|
|
2607
2404
|
y: e.y2
|
|
2608
2405
|
};
|
|
2609
|
-
return
|
|
2406
|
+
return Yr(n, e.curve ? {
|
|
2610
2407
|
x: e.curve.cx,
|
|
2611
2408
|
y: e.curve.cy
|
|
2612
2409
|
} : {
|
|
@@ -2614,16 +2411,16 @@ function Br(e, t) {
|
|
|
2614
2411
|
y: (n.y + r.y) / 2
|
|
2615
2412
|
}, r, t);
|
|
2616
2413
|
}
|
|
2617
|
-
function
|
|
2618
|
-
return
|
|
2414
|
+
function Zr(e, t) {
|
|
2415
|
+
return Xr(e, (t / 1e3 * e.packet.speed + e.packet.phase) % 1);
|
|
2619
2416
|
}
|
|
2620
|
-
var
|
|
2621
|
-
function
|
|
2622
|
-
let s = e.kind === "reads" || e.kind === "writes", c = i(e), l = !r || r.connectedEdgeKeys.has(
|
|
2417
|
+
var Qr = (e) => e.kind || (e.dashed ? "usage" : "ownership"), $r = (e) => `${e.from}->${e.to}${e.kind ? `|${e.kind}` : e.dashed ? "|dashed" : ""}${e.kind === "flow" && e.flow ? `|${e.flow}` : ""}`, J = (e) => `${e.from}->${e.to}`;
|
|
2418
|
+
function ei(e, t, n, r, a, o) {
|
|
2419
|
+
let s = e.kind === "reads" || e.kind === "writes", c = i(e), l = !r || r.connectedEdgeKeys.has(J(e)), u = e.status !== "live", { a: d, b: f, c: p } = Jr(e, t, n), m = !!r && l, h = Qr(e), g = null;
|
|
2623
2420
|
if (r && l) {
|
|
2624
|
-
let t =
|
|
2421
|
+
let t = Yr(d, p, f, .5);
|
|
2625
2422
|
g = {
|
|
2626
|
-
text: e.count !== void 0 && e.label ? e.label :
|
|
2423
|
+
text: e.count !== void 0 && e.label ? e.label : _r(h),
|
|
2627
2424
|
x: t.x,
|
|
2628
2425
|
y: t.y,
|
|
2629
2426
|
color: c.color,
|
|
@@ -2634,19 +2431,19 @@ function Wr(e, t, n, r, a, o) {
|
|
|
2634
2431
|
if ((r ? l : a) && !o) {
|
|
2635
2432
|
let t = e.phase === void 0 ? (e.from.length * 7 + e.to.length * 13) % 10 / 10 : e.phase;
|
|
2636
2433
|
_ = {
|
|
2637
|
-
color:
|
|
2434
|
+
color: Lr.color,
|
|
2638
2435
|
glowColor: c.color,
|
|
2639
|
-
radius:
|
|
2640
|
-
glow:
|
|
2641
|
-
speed: 1e3 /
|
|
2436
|
+
radius: Lr.radius,
|
|
2437
|
+
glow: Lr.glow,
|
|
2438
|
+
speed: 1e3 / Lr.cycleMs,
|
|
2642
2439
|
phase: t
|
|
2643
2440
|
};
|
|
2644
2441
|
}
|
|
2645
2442
|
return {
|
|
2646
|
-
key:
|
|
2443
|
+
key: $r(e),
|
|
2647
2444
|
from: e.from,
|
|
2648
2445
|
to: e.to,
|
|
2649
|
-
kind:
|
|
2446
|
+
kind: Qr(e),
|
|
2650
2447
|
x1: d.x,
|
|
2651
2448
|
y1: d.y,
|
|
2652
2449
|
x2: f.x,
|
|
@@ -2656,14 +2453,14 @@ function Wr(e, t, n, r, a, o) {
|
|
|
2656
2453
|
color: c.color,
|
|
2657
2454
|
width: m ? 2.4 : a && !s ? 2 : 1.6,
|
|
2658
2455
|
alpha: r ? l ? 1 : .04 : a ? s ? .2 : .65 : s ? .12 : .45,
|
|
2659
|
-
dash: u ?
|
|
2660
|
-
ticks:
|
|
2456
|
+
dash: u ? Nr : null,
|
|
2457
|
+
ticks: se(e),
|
|
2661
2458
|
curve: {
|
|
2662
2459
|
cx: p.x,
|
|
2663
2460
|
cy: p.y
|
|
2664
2461
|
},
|
|
2665
2462
|
arrow: !0,
|
|
2666
|
-
end: Object.hasOwn(
|
|
2463
|
+
end: Object.hasOwn(Ar, h) ? Ar[h] : "triangle",
|
|
2667
2464
|
glow: m ? 8 : 0,
|
|
2668
2465
|
glowColor: m ? c.color : null,
|
|
2669
2466
|
label: g,
|
|
@@ -2672,13 +2469,13 @@ function Wr(e, t, n, r, a, o) {
|
|
|
2672
2469
|
live: !!e.live
|
|
2673
2470
|
};
|
|
2674
2471
|
}
|
|
2675
|
-
function
|
|
2676
|
-
let i = !r || r.connectedEdgeKeys.has(
|
|
2677
|
-
return r ? i ? e.dashed ? (a = "#818cf8", o = 2, c = 8, l = "rgba(129, 140, 248, 0.7)", s =
|
|
2678
|
-
key:
|
|
2472
|
+
function ti(e, t, n, r) {
|
|
2473
|
+
let i = !r || r.connectedEdgeKeys.has(J(e)), a, o, s = null, c = 0, l = null;
|
|
2474
|
+
return r ? i ? e.dashed ? (a = "#818cf8", o = 2, c = 8, l = "rgba(129, 140, 248, 0.7)", s = Pr) : (a = "#ffffff", o = 2.4, c = 10, l = "rgba(255, 255, 255, 0.8)") : (a = "rgba(255, 255, 255, 0.02)", o = .8, s = e.dashed ? Pr : null) : e.dashed ? (a = "rgba(129, 140, 248, 0.35)", o = 1.2, s = Pr) : (a = "rgba(255, 255, 255, 0.16)", o = 1.4), {
|
|
2475
|
+
key: $r(e),
|
|
2679
2476
|
from: e.from,
|
|
2680
2477
|
to: e.to,
|
|
2681
|
-
kind:
|
|
2478
|
+
kind: Qr(e),
|
|
2682
2479
|
x1: t.x,
|
|
2683
2480
|
y1: t.y,
|
|
2684
2481
|
x2: n.x,
|
|
@@ -2701,7 +2498,7 @@ function Gr(e, t, n, r) {
|
|
|
2701
2498
|
live: !!e.live
|
|
2702
2499
|
};
|
|
2703
2500
|
}
|
|
2704
|
-
var
|
|
2501
|
+
var ni = [
|
|
2705
2502
|
"flow",
|
|
2706
2503
|
"reads",
|
|
2707
2504
|
"writes",
|
|
@@ -2711,85 +2508,85 @@ var Kr = [
|
|
|
2711
2508
|
"delivers",
|
|
2712
2509
|
"uses",
|
|
2713
2510
|
"extends"
|
|
2714
|
-
],
|
|
2715
|
-
function
|
|
2511
|
+
], ri = (e) => e.proposal ? e.proposalView || "diff" : null;
|
|
2512
|
+
function ii(e, t, n, r = !1, i = !1) {
|
|
2716
2513
|
if (e.mark = t, t === "none") {
|
|
2717
|
-
(n === "diff" || i) && (e.alpha *=
|
|
2514
|
+
(n === "diff" || i) && (e.alpha *= Ur, e.glow = 0, e.packet = null), i && (e.greyed = !0);
|
|
2718
2515
|
return;
|
|
2719
2516
|
}
|
|
2720
|
-
let a =
|
|
2721
|
-
e.color = a.color, e.dash = r ?
|
|
2517
|
+
let a = K[t];
|
|
2518
|
+
e.color = a.color, e.dash = r ? K.removed.edgeDash : a.edgeDash, e.width = Math.max(e.width, a.edgeWidth), e.alpha >= .1 && (e.alpha = Math.max(e.alpha, Xt) * (r ? K.removed.alpha : a.alpha)), e.glow && (e.glowColor = a.color);
|
|
2722
2519
|
}
|
|
2723
|
-
function
|
|
2724
|
-
let { nodes: r } = e, i =
|
|
2520
|
+
function ai(e, t, n) {
|
|
2521
|
+
let { nodes: r } = e, i = I(e), a = Nt(e), o = new Map(r.map((e) => [e.id, e])), s = e.view === "dataflow", d = [], f = (e) => !!t && t.connectedEdgeKeys.has(J(e)), p = (e, r, i) => d.push(ei(e, r, i, t, s, n)), m = ri(e), h = (n) => {
|
|
2725
2522
|
let r = o.get(n.from), a = o.get(n.to);
|
|
2726
|
-
if (r && a &&
|
|
2727
|
-
if (s) return
|
|
2523
|
+
if (r && a && q(e, r) && q(e, a)) {
|
|
2524
|
+
if (s) return p(n, r, a);
|
|
2728
2525
|
if (e.view === "house") {
|
|
2729
|
-
let e =
|
|
2730
|
-
e === "flow" ?
|
|
2731
|
-
} else n.kind === "flow" ? i.flow !== !1 &&
|
|
2526
|
+
let e = Ce(n, r, a);
|
|
2527
|
+
e === "flow" ? p(n, r, a) : e === "link" && d.push(ti(n, r, a, t));
|
|
2528
|
+
} else n.kind === "flow" ? i.flow !== !1 && p(n, r, a) : n.kind === "reads" || n.kind === "writes" ? i.table !== !1 && p(n, r, a) : n.kind === "runs-on" ? (i.stack !== !1 || a.type === "machine") && p(n, r, a) : n.kind === "calls" || n.kind === "triggers" || n.kind === "delivers" ? (r.type !== "page" || n.kind !== "calls" || f(n)) && p(n, r, a) : n.kind === "uses" || n.kind === "extends" ? f(n) && p(n, r, a) : d.push(ti(n, r, a, t));
|
|
2732
2529
|
}
|
|
2733
2530
|
};
|
|
2734
|
-
return
|
|
2735
|
-
if (
|
|
2736
|
-
let r =
|
|
2737
|
-
if (i === "none")
|
|
2531
|
+
return Gr(e).forEach((n) => {
|
|
2532
|
+
if (m && !c(m, n)) return;
|
|
2533
|
+
let r = m === "before" ? u(n) : n, i = m ? l(m, n) : "none", f = d.length;
|
|
2534
|
+
if (i === "none") h(r);
|
|
2738
2535
|
else {
|
|
2739
2536
|
let n = o.get(r.from), i = o.get(r.to);
|
|
2740
|
-
if (!n || !i || !
|
|
2741
|
-
s ||
|
|
2537
|
+
if (!n || !i || !q(e, n) || !q(e, i)) return;
|
|
2538
|
+
s || ni.includes(r.kind) ? p(r, n, i) : d.push(ti(r, n, i, t));
|
|
2742
2539
|
}
|
|
2743
|
-
for (let e =
|
|
2744
|
-
}),
|
|
2540
|
+
for (let e = f; e < d.length; e++) ii(d[e], i, m, i === "edit" && n.editOp === "removed", a);
|
|
2541
|
+
}), d;
|
|
2745
2542
|
}
|
|
2746
|
-
var
|
|
2747
|
-
function
|
|
2748
|
-
let { nodes: n, selectedNode: r, searchQuery: i } = e, a = i ?
|
|
2543
|
+
var oi = (e) => e.type === "floor" || e.type === "room" ? "house" : e.type === "external" ? ce(e) : e.type, si = (e) => rr(e.color) ?? (_[e.type] || _.external).color;
|
|
2544
|
+
function ci(e, t) {
|
|
2545
|
+
let { nodes: n, selectedNode: r, searchQuery: i } = e, a = i ? qn(n, i) : null, o = !!a && n.some((t) => a.has(t.id) && q(e, t)), s = [], c = ri(e), f = Nt(e), p = c === "diff" || c && f ? d(n, Gr(e)) : null;
|
|
2749
2546
|
return n.forEach((n) => {
|
|
2750
|
-
if (!
|
|
2751
|
-
let i = c === "before" ?
|
|
2752
|
-
o && !d && !
|
|
2753
|
-
let
|
|
2754
|
-
|
|
2755
|
-
let
|
|
2547
|
+
if (!q(e, n)) return;
|
|
2548
|
+
let i = c === "before" ? u(n) : n, d = !!a && a.has(n.id), m = d && e.searchCurrent === n.id, h = !!r && r.id === n.id, g = !t || t.connectedNodeIds.has(n.id), _ = t && t.childIds ? t.childIds.has(n.id) : !1, v = c ? l(c, n) : "none", y = K[v], x = v === "edit" && n.editOp === "removed", S = t && !g && !(o && d) ? Dr : 1;
|
|
2549
|
+
o && !d && !h && !(t && g) && (S = Dr);
|
|
2550
|
+
let C = f && !!p && !p.touched.has(n.id);
|
|
2551
|
+
p && !p.touched.has(n.id) && (S = Math.min(S, C ? Qt : Ur)), y && (S *= x ? K.removed.alpha : y.alpha);
|
|
2552
|
+
let w = i.type === "root" || i.type === "app", T = Ct(e, i), E = _t(e, i);
|
|
2756
2553
|
s.push({
|
|
2757
2554
|
id: n.id,
|
|
2758
2555
|
type: i.type,
|
|
2759
|
-
group:
|
|
2556
|
+
group: oi(i),
|
|
2760
2557
|
...typeof i.kind == "string" && i.kind ? { kind: i.kind } : {},
|
|
2761
|
-
...
|
|
2762
|
-
shape:
|
|
2763
|
-
hitR: i.r *
|
|
2764
|
-
...
|
|
2765
|
-
...
|
|
2558
|
+
...T ? { letters: T } : {},
|
|
2559
|
+
shape: b(i.type),
|
|
2560
|
+
hitR: i.r * Mr[b(i.type)],
|
|
2561
|
+
...wn(i.type) ? { glyph: i.type } : {},
|
|
2562
|
+
...E ? { layer: E } : {},
|
|
2766
2563
|
x: n.x,
|
|
2767
2564
|
y: n.y,
|
|
2768
2565
|
r: i.r,
|
|
2769
|
-
color:
|
|
2770
|
-
alpha:
|
|
2771
|
-
glow:
|
|
2772
|
-
halo: d ? "match" :
|
|
2773
|
-
mark:
|
|
2774
|
-
...
|
|
2775
|
-
selected:
|
|
2566
|
+
color: si(i),
|
|
2567
|
+
alpha: S,
|
|
2568
|
+
glow: g && S >= .5 ? w ? 15 : 9 : 0,
|
|
2569
|
+
halo: d ? "match" : h ? "selected" : _ ? "child" : "none",
|
|
2570
|
+
mark: v,
|
|
2571
|
+
...C ? { greyed: !0 } : {},
|
|
2572
|
+
selected: h,
|
|
2776
2573
|
match: d,
|
|
2777
|
-
current:
|
|
2778
|
-
connected:
|
|
2574
|
+
current: m,
|
|
2575
|
+
connected: g,
|
|
2779
2576
|
degree: n.degree || 0,
|
|
2780
2577
|
label: i.label,
|
|
2781
|
-
labelSize:
|
|
2782
|
-
labelBold:
|
|
2783
|
-
labelAlpha:
|
|
2784
|
-
labelColor:
|
|
2785
|
-
labelKeep:
|
|
2786
|
-
labelStrike: !!
|
|
2578
|
+
labelSize: w && !C ? 12 : 11,
|
|
2579
|
+
labelBold: w && !C,
|
|
2580
|
+
labelAlpha: C && (!t || g) ? $t[e.theme === "light" ? "light" : "dark"] : p && !p.touched.has(n.id) && (!t || g) ? Math.max(S, Zt) : S,
|
|
2581
|
+
labelColor: g ? "#f8fafc" : "rgba(255, 255, 255, 0.3)",
|
|
2582
|
+
labelKeep: Sr.includes(i.type) && !C || h || d || v !== "none" || !!(t && g),
|
|
2583
|
+
labelStrike: !!y && (y.strike || x),
|
|
2787
2584
|
live: !!n.live,
|
|
2788
2585
|
box: n.box || null
|
|
2789
2586
|
});
|
|
2790
2587
|
}), s;
|
|
2791
2588
|
}
|
|
2792
|
-
function
|
|
2589
|
+
function li(e) {
|
|
2793
2590
|
let { rings: t, selectedNode: n } = e, r = {
|
|
2794
2591
|
color: n ? "rgba(66, 153, 225, 0.04)" : "rgba(66, 153, 225, 0.14)",
|
|
2795
2592
|
width: 1,
|
|
@@ -2811,7 +2608,7 @@ function $r(e) {
|
|
|
2811
2608
|
...i
|
|
2812
2609
|
})))];
|
|
2813
2610
|
}
|
|
2814
|
-
function
|
|
2611
|
+
function ui(e) {
|
|
2815
2612
|
let t = -e.top + 40;
|
|
2816
2613
|
return e.headers.map((n, r) => {
|
|
2817
2614
|
let i = e.headers[r + 1];
|
|
@@ -2851,44 +2648,44 @@ function ei(e) {
|
|
|
2851
2648
|
};
|
|
2852
2649
|
});
|
|
2853
2650
|
}
|
|
2854
|
-
var
|
|
2651
|
+
var di = .55, fi = .5, pi = {
|
|
2855
2652
|
color: "#ffffff",
|
|
2856
2653
|
radius: 4.5,
|
|
2857
2654
|
glow: 12
|
|
2858
|
-
},
|
|
2655
|
+
}, mi = {
|
|
2859
2656
|
width: 3.6,
|
|
2860
2657
|
glow: 14
|
|
2861
2658
|
};
|
|
2862
|
-
function
|
|
2659
|
+
function hi(e, t) {
|
|
2863
2660
|
return e.from !== t.from || e.to !== t.to ? !1 : t.kind ? e.kind === t.kind && (!t.flow || e.key.split("|")[2] === t.flow) : e.kind === "ownership" || e.kind === "usage";
|
|
2864
2661
|
}
|
|
2865
|
-
function
|
|
2662
|
+
function gi(e, t, n = {}) {
|
|
2866
2663
|
if (t.done) return;
|
|
2867
2664
|
let { node: r, edge: i, at: a } = t.current, o = new Set(r === void 0 ? i ? [i.from, i.to] : [] : [r]);
|
|
2868
2665
|
a !== void 0 && o.add(a), e.nodes.forEach((e) => {
|
|
2869
|
-
e.connected && (o.has(e.id) ? (r !== void 0 || e.id === a) && e.halo !== "match" && (e.halo = "selected") : (e.alpha =
|
|
2666
|
+
e.connected && (o.has(e.id) ? (r !== void 0 || e.id === a) && e.halo !== "match" && (e.halo = "selected") : (e.alpha = di, e.labelAlpha = di));
|
|
2870
2667
|
});
|
|
2871
|
-
let s = new Set(t.visited.edgeList.map(
|
|
2668
|
+
let s = new Set(t.visited.edgeList.map(J)), c = (e) => s.has(J(e)) || t.linkNodes && t.visited.nodes.has(e.from) && t.visited.nodes.has(e.to);
|
|
2872
2669
|
e.edges.forEach((e) => {
|
|
2873
|
-
if (i &&
|
|
2874
|
-
e.alpha = 1, e.width = Math.max(e.width,
|
|
2670
|
+
if (i && hi(e, i)) {
|
|
2671
|
+
e.alpha = 1, e.width = Math.max(e.width, mi.width), e.glow = mi.glow, e.glowColor = e.glowColor || e.color;
|
|
2875
2672
|
let r = 1e3 / t.stepMs, i = t.stepStartMs == null ? 0 : (-t.stepStartMs / 1e3 * r % 1 + 1) % 1;
|
|
2876
2673
|
e.packet = n.reduceMotion ? null : {
|
|
2877
|
-
...
|
|
2674
|
+
...pi,
|
|
2878
2675
|
glowColor: e.color,
|
|
2879
2676
|
speed: r,
|
|
2880
2677
|
phase: i
|
|
2881
2678
|
};
|
|
2882
|
-
} else c(e) && (e.alpha =
|
|
2679
|
+
} else c(e) && (e.alpha = fi, e.packet = null);
|
|
2883
2680
|
});
|
|
2884
2681
|
}
|
|
2885
|
-
function
|
|
2886
|
-
let n = e.view === "dataflow", r = e.scenario ?
|
|
2682
|
+
function _i(e, t = {}) {
|
|
2683
|
+
let n = e.view === "dataflow", r = e.scenario ? qr(e) : e.selectedNode ? Kr(e.selectedNode, Gr(e), {
|
|
2887
2684
|
throughChildren: !!e.throughChildren,
|
|
2888
2685
|
kind: e.selectedKind || null
|
|
2889
|
-
}) : null, i = n && e.flow ?
|
|
2890
|
-
nodes:
|
|
2891
|
-
edges:
|
|
2686
|
+
}) : null, i = n && e.flow ? ui(e.flow) : [], a = !(n && e.flow) && !e.isFreeform ? li(e) : [], o = {
|
|
2687
|
+
nodes: ci(e, r),
|
|
2688
|
+
edges: ai(e, r, !!t.reduceMotion),
|
|
2892
2689
|
decor: {
|
|
2893
2690
|
grid: {
|
|
2894
2691
|
size: 48,
|
|
@@ -2907,18 +2704,18 @@ function si(e, t = {}) {
|
|
|
2907
2704
|
theme: "dark",
|
|
2908
2705
|
version: e.sceneVersion || 0
|
|
2909
2706
|
};
|
|
2910
|
-
e.view === "house" &&
|
|
2707
|
+
e.view === "house" && Te(o, e), e.scenario && gi(o, e.scenario, t), o.greying = o.nodes.some((e) => e.greyed) || o.edges.some((e) => e.greyed);
|
|
2911
2708
|
let s = {
|
|
2912
2709
|
nodes: o.nodes.map((e) => e.color),
|
|
2913
2710
|
edges: o.edges.map((e) => e.color)
|
|
2914
2711
|
};
|
|
2915
|
-
return e.scenario &&
|
|
2712
|
+
return e.scenario && ve(o, _e(e.scenario, e.nodes, e.edges)), e.scenario && Fe(o, e.scenario), e.forgeLit && Bn(o, e.forgeLit), o.nodes.forEach((e, t) => {
|
|
2916
2713
|
s.nodes.length === o.nodes.length && e.color !== s.nodes[t] && o.painted.nodes.add(e.id);
|
|
2917
2714
|
}), o.edges.forEach((e, t) => {
|
|
2918
2715
|
s.edges.length === o.edges.length && e.color !== s.edges[t] && o.painted.edges.add(e.key);
|
|
2919
|
-
}), e.theme === "light" &&
|
|
2716
|
+
}), e.theme === "light" && _n(o), o;
|
|
2920
2717
|
}
|
|
2921
|
-
function
|
|
2718
|
+
function vi(e = _i) {
|
|
2922
2719
|
let t = null, n, r = {
|
|
2923
2720
|
builds: 0,
|
|
2924
2721
|
get(i) {
|
|
@@ -2928,7 +2725,7 @@ function ci(e = si) {
|
|
|
2928
2725
|
return r;
|
|
2929
2726
|
}
|
|
2930
2727
|
// ../explorer/engine/map-style.js
|
|
2931
|
-
var
|
|
2728
|
+
var yi = Object.freeze(Object.keys(_)), bi = Object.freeze([
|
|
2932
2729
|
"app",
|
|
2933
2730
|
"pkg",
|
|
2934
2731
|
"page",
|
|
@@ -2947,7 +2744,7 @@ var li = Object.freeze(Object.keys(E)), ui = Object.freeze([
|
|
|
2947
2744
|
"device",
|
|
2948
2745
|
"house",
|
|
2949
2746
|
"persona"
|
|
2950
|
-
]),
|
|
2747
|
+
]), xi = Object.freeze([
|
|
2951
2748
|
"ownership",
|
|
2952
2749
|
"usage",
|
|
2953
2750
|
"flow",
|
|
@@ -2959,33 +2756,33 @@ var li = Object.freeze(Object.keys(E)), ui = Object.freeze([
|
|
|
2959
2756
|
"runs-on",
|
|
2960
2757
|
"uses",
|
|
2961
2758
|
"extends"
|
|
2962
|
-
]),
|
|
2759
|
+
]), Si = Object.freeze([
|
|
2963
2760
|
"added",
|
|
2964
2761
|
"changed",
|
|
2965
2762
|
"removed",
|
|
2966
2763
|
"edit"
|
|
2967
|
-
]),
|
|
2764
|
+
]), Ci = Object.freeze([
|
|
2968
2765
|
"selected",
|
|
2969
2766
|
"match",
|
|
2970
2767
|
"lit"
|
|
2971
|
-
]),
|
|
2972
|
-
...
|
|
2973
|
-
...
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
...
|
|
2980
|
-
...
|
|
2981
|
-
...
|
|
2768
|
+
]), wi = "--corn-map-stroke", Ti = "--corn-map-label", Ei = "--corn-map-label-halo", Di = "--corn-map-font", Oi = "--corn-map-edge-width", ki = "--corn-map-glow", Ai = "--corn-map-label-min", ji = "--corn-map-grey", Mi = "--corn-map-grey-alpha", Ni = "--corn-map-glyph", Pi = 1.6, Fi = 1.5, Ii = 1.2, Li = (e) => `--corn-map-node-${e}`, Ri = (e) => `--corn-map-group-${e}`, zi = (e) => `--corn-map-edge-${e}`, Y = (e) => `--corn-map-${e}`, Bi = Object.freeze([
|
|
2769
|
+
...yi.map(Li),
|
|
2770
|
+
...bi.map(Ri),
|
|
2771
|
+
wi,
|
|
2772
|
+
Ti,
|
|
2773
|
+
Ei,
|
|
2774
|
+
Ni,
|
|
2775
|
+
ji,
|
|
2776
|
+
...xi.map(zi),
|
|
2777
|
+
...Si.map(Y),
|
|
2778
|
+
...Ci.map(Y)
|
|
2982
2779
|
]);
|
|
2983
|
-
function
|
|
2780
|
+
function X(e, t) {
|
|
2984
2781
|
let [n, r, i, a] = L(e), o = L(t)[3];
|
|
2985
|
-
return o >= 1 ? e :
|
|
2782
|
+
return o >= 1 ? e : nr(n, r, i, a * o);
|
|
2986
2783
|
}
|
|
2987
|
-
var
|
|
2988
|
-
function
|
|
2784
|
+
var Vi = /^(?:serif|sans-serif|monospace|cursive|fantasy|system-ui|ui-serif|ui-sans-serif|ui-monospace|ui-rounded|emoji|math|fangsong)$/i, Hi = /^(?:-apple-system|BlinkMacSystemFont)$/;
|
|
2785
|
+
function Ui(e) {
|
|
2989
2786
|
let t = typeof e == "string" ? e.trim() : "";
|
|
2990
2787
|
if (!t || t.length > 200 || t.toLowerCase() === "auto" || /[();:{}<>@\\/\u0000-\u001f\u007f]|\burl\b|\bvar\b|\bexpression\b|\bimport\b/i.test(t)) return null;
|
|
2991
2788
|
let n = t.split(",").map((e) => e.trim());
|
|
@@ -2994,46 +2791,46 @@ function Ni(e) {
|
|
|
2994
2791
|
for (let e of n) {
|
|
2995
2792
|
let t = /^"([A-Za-z0-9 ._+-]{1,60})"$|^'([A-Za-z0-9 ._+-]{1,60})'$/.exec(e), n = t ? (t[1] ?? t[2]).trim() : /^-?[A-Za-z][A-Za-z0-9 _-]{0,59}$/.test(e) ? e.replace(/\s+/g, " ") : null;
|
|
2996
2793
|
if (!n) return null;
|
|
2997
|
-
r.push(
|
|
2794
|
+
r.push(Vi.test(n) ? n.toLowerCase() : Hi.test(n) ? n : `"${n}"`);
|
|
2998
2795
|
}
|
|
2999
2796
|
return r.join(", ");
|
|
3000
2797
|
}
|
|
3001
|
-
function
|
|
2798
|
+
function Wi(e, t) {
|
|
3002
2799
|
let n = /^\s*(\d*\.?\d+)(?:px)?\s*$/i.exec(String(e ?? "")), r = n ? parseFloat(n[1]) : NaN;
|
|
3003
2800
|
return Number.isFinite(r) && r > 0 && r <= t ? r : null;
|
|
3004
2801
|
}
|
|
3005
|
-
function
|
|
3006
|
-
let t =
|
|
2802
|
+
function Gi(e) {
|
|
2803
|
+
let t = Wi(e, 24);
|
|
3007
2804
|
return t !== null && t >= 9 ? t : null;
|
|
3008
2805
|
}
|
|
3009
|
-
function
|
|
2806
|
+
function Ki(e) {
|
|
3010
2807
|
let t = /^\s*(\d*\.?\d+)(px)?\s*$/i.exec(String(e ?? ""));
|
|
3011
2808
|
if (!t) return null;
|
|
3012
2809
|
let n = parseFloat(t[1]);
|
|
3013
2810
|
return t[2] && n !== 0 ? null : Number.isFinite(n) && n >= 0 && n <= 4 ? n : null;
|
|
3014
2811
|
}
|
|
3015
|
-
function
|
|
2812
|
+
function qi(e) {
|
|
3016
2813
|
let t = /^\s*(\d*\.?\d+)\s*$/.exec(String(e ?? "")), n = t ? parseFloat(t[1]) : NaN;
|
|
3017
2814
|
return Number.isFinite(n) && n >= .1 && n <= 1 ? n : null;
|
|
3018
2815
|
}
|
|
3019
|
-
function
|
|
2816
|
+
function Ji(e, t = []) {
|
|
3020
2817
|
let n = {};
|
|
3021
|
-
for (let r of [...
|
|
3022
|
-
let t =
|
|
2818
|
+
for (let r of [...Bi, ...t]) {
|
|
2819
|
+
let t = Xn(e(r));
|
|
3023
2820
|
t && (n[r] = t);
|
|
3024
2821
|
}
|
|
3025
2822
|
let r = parseFloat(String(e("--corn-map-stroke-width") ?? ""));
|
|
3026
2823
|
return {
|
|
3027
2824
|
values: n,
|
|
3028
|
-
strokeWidth: Number.isFinite(r) && r >= 0 ? r :
|
|
3029
|
-
font:
|
|
3030
|
-
edgeWidth:
|
|
3031
|
-
glow:
|
|
3032
|
-
labelMin:
|
|
3033
|
-
greyAlpha:
|
|
2825
|
+
strokeWidth: Number.isFinite(r) && r >= 0 ? r : Fi,
|
|
2826
|
+
font: Ui(e(Di)),
|
|
2827
|
+
edgeWidth: Wi(e(Oi), 12),
|
|
2828
|
+
glow: Ki(e(ki)),
|
|
2829
|
+
labelMin: Gi(e(Ai)),
|
|
2830
|
+
greyAlpha: qi(e(Mi))
|
|
3034
2831
|
};
|
|
3035
2832
|
}
|
|
3036
|
-
function
|
|
2833
|
+
function Yi(e, t = "") {
|
|
3037
2834
|
return new Promise((n, r) => {
|
|
3038
2835
|
if (typeof Image > "u") {
|
|
3039
2836
|
r(/* @__PURE__ */ Error("no Image"));
|
|
@@ -3043,10 +2840,10 @@ function zi(e, t = "") {
|
|
|
3043
2840
|
t && (i.crossOrigin = t), i.onload = () => i.naturalWidth > 0 && i.naturalHeight > 0 ? n(i) : r(/* @__PURE__ */ Error(`${e} has no size`)), i.onerror = () => r(/* @__PURE__ */ Error(`${e} did not load`)), i.src = e;
|
|
3044
2841
|
});
|
|
3045
2842
|
}
|
|
3046
|
-
function
|
|
2843
|
+
function Xi(e, { load: t = Yi, onChange: n = () => {}, warn: r = (e) => console.warn(e) } = {}) {
|
|
3047
2844
|
let i = /* @__PURE__ */ new Map(), a = 0;
|
|
3048
2845
|
for (let [o, s] of Object.entries(e || {})) {
|
|
3049
|
-
if (
|
|
2846
|
+
if (!$e(o) || typeof s != "string" || !s.startsWith("/cornfield/theme/assets/") || s.includes("..")) continue;
|
|
3050
2847
|
let e = {
|
|
3051
2848
|
status: "loading",
|
|
3052
2849
|
image: null
|
|
@@ -3067,18 +2864,18 @@ function Bi(e, { load: t = zi, onChange: n = () => {}, warn: r = (e) => console.
|
|
|
3067
2864
|
anyReady: () => a > 0
|
|
3068
2865
|
};
|
|
3069
2866
|
}
|
|
3070
|
-
var
|
|
2867
|
+
var Zi = {
|
|
3071
2868
|
values: {},
|
|
3072
|
-
strokeWidth:
|
|
2869
|
+
strokeWidth: Fi,
|
|
3073
2870
|
font: null,
|
|
3074
2871
|
edgeWidth: null,
|
|
3075
2872
|
glow: null,
|
|
3076
2873
|
labelMin: null,
|
|
3077
2874
|
greyAlpha: null
|
|
3078
|
-
},
|
|
2875
|
+
}, Qi = Object.freeze({
|
|
3079
2876
|
version: 0,
|
|
3080
2877
|
values: Object.freeze({}),
|
|
3081
|
-
strokeWidth:
|
|
2878
|
+
strokeWidth: Fi,
|
|
3082
2879
|
font: null,
|
|
3083
2880
|
edgeWidth: null,
|
|
3084
2881
|
glow: null,
|
|
@@ -3087,9 +2884,9 @@ var Vi = {
|
|
|
3087
2884
|
icons: null,
|
|
3088
2885
|
pixelated: !1,
|
|
3089
2886
|
plain: !0
|
|
3090
|
-
}),
|
|
3091
|
-
function
|
|
3092
|
-
let t =
|
|
2887
|
+
}), $i = 500;
|
|
2888
|
+
function ea(e) {
|
|
2889
|
+
let t = Zi, n = null, r = !1, i = 0, a = [], o = /* @__PURE__ */ new Set(), s = () => {
|
|
3093
2890
|
let e = !Object.keys(t.values).length && !(n && n.anyReady()) && t.font === null && t.edgeWidth === null && t.glow === null && t.labelMin === null && t.greyAlpha === null;
|
|
3094
2891
|
return Object.freeze({
|
|
3095
2892
|
version: i,
|
|
@@ -3116,12 +2913,12 @@ function Wi(e) {
|
|
|
3116
2913
|
return o.add(e), () => o.delete(e);
|
|
3117
2914
|
},
|
|
3118
2915
|
setSubjects({ kinds: e = [], layers: t = [] } = {}) {
|
|
3119
|
-
let n = [...new Set([...e.map(([e, t]) =>
|
|
2916
|
+
let n = [...new Set([...e.map(([e, t]) => Xe(e, t)), ...t.map((e) => Ze(e))].filter(Boolean))].sort().slice(0, $i);
|
|
3120
2917
|
return n.length === a.length && n.every((e, t) => e === a[t]) ? !1 : (a = n, d.refresh());
|
|
3121
2918
|
},
|
|
3122
2919
|
refresh(n = e.tokenReader()) {
|
|
3123
2920
|
if (!n) return !1;
|
|
3124
|
-
let r =
|
|
2921
|
+
let r = Ji(n, a);
|
|
3125
2922
|
if (r.strokeWidth === t.strokeWidth && r.font === t.font && r.edgeWidth === t.edgeWidth && r.glow === t.glow && r.labelMin === t.labelMin && Object.keys(r.values).length === Object.keys(t.values).length && Object.entries(r.values).every(([e, n]) => t.values[e] === n)) return !1;
|
|
3126
2923
|
t = r, u();
|
|
3127
2924
|
try {
|
|
@@ -3133,8 +2930,8 @@ function Wi(e) {
|
|
|
3133
2930
|
setIcons(t, i = {}) {
|
|
3134
2931
|
let a = t && t.icons && typeof t.icons == "object" ? t.icons : {};
|
|
3135
2932
|
r = !!(t && t.pixelated === !0);
|
|
3136
|
-
let o = e.base ? "anonymous" : "", s = i.load || ((t) =>
|
|
3137
|
-
return n = Object.keys(a).length ?
|
|
2933
|
+
let o = e.base ? "anonymous" : "", s = i.load || ((t) => Yi(e.url(t), o));
|
|
2934
|
+
return n = Object.keys(a).length ? Xi(a, {
|
|
3138
2935
|
...i,
|
|
3139
2936
|
load: s,
|
|
3140
2937
|
onChange: () => {
|
|
@@ -3147,7 +2944,7 @@ function Wi(e) {
|
|
|
3147
2944
|
return r && r.setAttribute && (t && t.pixelated === !0 ? r.setAttribute("data-pixelated", "") : r.removeAttribute("data-pixelated")), d.setIcons(t, n);
|
|
3148
2945
|
},
|
|
3149
2946
|
reset() {
|
|
3150
|
-
t =
|
|
2947
|
+
t = Zi, n = null, r = !1, a = [], u();
|
|
3151
2948
|
},
|
|
3152
2949
|
watch() {
|
|
3153
2950
|
let n = () => {
|
|
@@ -3185,12 +2982,12 @@ function Wi(e) {
|
|
|
3185
2982
|
};
|
|
3186
2983
|
return d;
|
|
3187
2984
|
}
|
|
3188
|
-
var
|
|
2985
|
+
var ta = (e) => e.slot("map-style", ea), na = (e, t) => {
|
|
3189
2986
|
for (let n of t) if (e[n]) return e[n];
|
|
3190
2987
|
return null;
|
|
3191
|
-
},
|
|
3192
|
-
function
|
|
3193
|
-
let n = t.edgeWidth == null ? 1 : t.edgeWidth /
|
|
2988
|
+
}, ra = Qe, ia = (e, t) => na(e, ra(t));
|
|
2989
|
+
function aa(e, t) {
|
|
2990
|
+
let n = t.edgeWidth == null ? 1 : t.edgeWidth / Pi, r = t.glow == null ? 1 : t.glow;
|
|
3194
2991
|
if (n === 1 && r === 1) return e;
|
|
3195
2992
|
let i = {
|
|
3196
2993
|
...e,
|
|
@@ -3202,46 +2999,46 @@ function Yi(e, t) {
|
|
|
3202
2999
|
glow: e.packet.glow * r
|
|
3203
3000
|
}), i;
|
|
3204
3001
|
}
|
|
3205
|
-
function
|
|
3002
|
+
function oa(e, t, n) {
|
|
3206
3003
|
let { values: r } = t;
|
|
3207
3004
|
if (e.mark && e.mark !== "none") {
|
|
3208
|
-
let n = r[
|
|
3209
|
-
return
|
|
3005
|
+
let n = r[Y(e.mark)];
|
|
3006
|
+
return aa(n ? {
|
|
3210
3007
|
...e,
|
|
3211
3008
|
color: n,
|
|
3212
3009
|
glowColor: e.glowColor ? n : e.glowColor
|
|
3213
3010
|
} : e, t);
|
|
3214
3011
|
}
|
|
3215
|
-
if (n.has(e.key)) return
|
|
3216
|
-
let i = !e.curve && e.glow > 0 && !e.arrow && r[
|
|
3217
|
-
if (!i) return
|
|
3012
|
+
if (n.has(e.key)) return aa(e, t);
|
|
3013
|
+
let i = !e.curve && e.glow > 0 && !e.arrow && r[Y("lit")] || r[zi(e.kind)];
|
|
3014
|
+
if (!i) return aa(e, t);
|
|
3218
3015
|
let a = {
|
|
3219
3016
|
...e,
|
|
3220
|
-
color:
|
|
3017
|
+
color: X(i, e.color)
|
|
3221
3018
|
};
|
|
3222
|
-
return e.glowColor && (a.glowColor =
|
|
3019
|
+
return e.glowColor && (a.glowColor = X(i, e.glowColor)), e.packet && (a.packet = {
|
|
3223
3020
|
...e.packet,
|
|
3224
|
-
glowColor:
|
|
3225
|
-
}),
|
|
3021
|
+
glowColor: X(i, e.packet.glowColor)
|
|
3022
|
+
}), aa(a, t);
|
|
3226
3023
|
}
|
|
3227
|
-
function
|
|
3024
|
+
function sa(e) {
|
|
3228
3025
|
let [t, n, r, i] = L(e), a = Math.round(.2126 * t + .7152 * n + .0722 * r);
|
|
3229
|
-
return i >= 1 ? `rgb(${a}, ${a}, ${a})` :
|
|
3026
|
+
return i >= 1 ? `rgb(${a}, ${a}, ${a})` : nr(a, a, a, i);
|
|
3230
3027
|
}
|
|
3231
|
-
function
|
|
3232
|
-
let { values: n } = t, r = n[
|
|
3028
|
+
function ca(e, t) {
|
|
3029
|
+
let { values: n } = t, r = n[ji], i = t.greyAlpha == null ? 1 : t.greyAlpha / Qt, a = (e) => r ? X(r, e) : sa(e), o = n[Ti], s = n[wi], c = e.painted || {
|
|
3233
3030
|
nodes: /* @__PURE__ */ new Set(),
|
|
3234
3031
|
edges: /* @__PURE__ */ new Set()
|
|
3235
3032
|
}, l = e.nodes.map((e) => {
|
|
3236
|
-
let r = !c.nodes.has(e.id) &&
|
|
3033
|
+
let r = !c.nodes.has(e.id) && ia(n, e), l = t.icons && et(e.type, e.kind, e.layer).find((e) => t.icons.get(e)) || null, u = t.glow != null && t.glow !== 1 && e.glow > 0, d = !!e.greyed && !c.nodes.has(e.id);
|
|
3237
3034
|
if (!r && !o && !s && !l && !u && !d) return e;
|
|
3238
3035
|
let f = { ...e };
|
|
3239
|
-
return u && (f.glow = e.glow * t.glow), r && (f.color = r), o && (f.labelColor =
|
|
3036
|
+
return u && (f.glow = e.glow * t.glow), r && (f.color = r), o && (f.labelColor = X(o, e.labelColor)), s && t.strokeWidth > 0 && (f.stroke = {
|
|
3240
3037
|
color: d ? a(s) : s,
|
|
3241
3038
|
width: t.strokeWidth
|
|
3242
3039
|
}), l && !d && (f.icon = l), d && (f.color = a(f.color), f.alpha = Math.min(1, e.alpha * i)), f;
|
|
3243
3040
|
}), u = e.edges.map((e) => {
|
|
3244
|
-
let n =
|
|
3041
|
+
let n = oa(e, t, c.edges);
|
|
3245
3042
|
return !e.greyed || c.edges.has(e.key) ? n : {
|
|
3246
3043
|
...n,
|
|
3247
3044
|
color: a(n.color),
|
|
@@ -3254,9 +3051,9 @@ function Qi(e, t) {
|
|
|
3254
3051
|
edges: u
|
|
3255
3052
|
};
|
|
3256
3053
|
t.font && (d.labelFont = t.font), t.labelMin != null && (d.labelMin = t.labelMin);
|
|
3257
|
-
let f = n[
|
|
3054
|
+
let f = n[Ei];
|
|
3258
3055
|
if (f) {
|
|
3259
|
-
let { node: t, edge: n } =
|
|
3056
|
+
let { node: t, edge: n } = Rr(e.theme).labelOutline;
|
|
3260
3057
|
d.labelOutline = {
|
|
3261
3058
|
node: {
|
|
3262
3059
|
...t,
|
|
@@ -3270,34 +3067,34 @@ function Qi(e, t) {
|
|
|
3270
3067
|
}
|
|
3271
3068
|
return d;
|
|
3272
3069
|
}
|
|
3273
|
-
var
|
|
3274
|
-
function
|
|
3070
|
+
var la = /* @__PURE__ */ new WeakMap();
|
|
3071
|
+
function ua(e, t) {
|
|
3275
3072
|
if (!t || t.plain && !e.greying) return e;
|
|
3276
|
-
let n =
|
|
3073
|
+
let n = la.get(e);
|
|
3277
3074
|
if (n && n.style === t) return n.out;
|
|
3278
|
-
let r =
|
|
3279
|
-
return
|
|
3075
|
+
let r = ca(e, t);
|
|
3076
|
+
return la.set(e, {
|
|
3280
3077
|
style: t,
|
|
3281
3078
|
out: r
|
|
3282
3079
|
}), r;
|
|
3283
3080
|
}
|
|
3284
|
-
var
|
|
3285
|
-
function
|
|
3081
|
+
var da = /* @__PURE__ */ new WeakMap();
|
|
3082
|
+
function fa(e, t) {
|
|
3286
3083
|
if (!t || t.plain) return e;
|
|
3287
|
-
let n =
|
|
3084
|
+
let n = da.get(e);
|
|
3288
3085
|
if (n && n.style === t) return n.out;
|
|
3289
3086
|
let { values: r } = t, i = { ...e.halo };
|
|
3290
3087
|
for (let e of ["selected", "match"]) {
|
|
3291
|
-
let t = r[
|
|
3088
|
+
let t = r[Y(e)];
|
|
3292
3089
|
t && (i[e] = {
|
|
3293
3090
|
...i[e],
|
|
3294
3091
|
ring: t,
|
|
3295
|
-
fill: i[e].fill ?
|
|
3092
|
+
fill: i[e].fill ? X(t, i[e].fill) : i[e].fill
|
|
3296
3093
|
});
|
|
3297
3094
|
}
|
|
3298
3095
|
let a = { ...e.mark };
|
|
3299
|
-
for (let e of
|
|
3300
|
-
let t = r[
|
|
3096
|
+
for (let e of Si) {
|
|
3097
|
+
let t = r[Y(e)];
|
|
3301
3098
|
t && (a[e] = {
|
|
3302
3099
|
...a[e],
|
|
3303
3100
|
color: t
|
|
@@ -3308,13 +3105,13 @@ function na(e, t) {
|
|
|
3308
3105
|
halo: i,
|
|
3309
3106
|
mark: a
|
|
3310
3107
|
};
|
|
3311
|
-
return
|
|
3108
|
+
return da.set(e, {
|
|
3312
3109
|
style: t,
|
|
3313
3110
|
out: o
|
|
3314
3111
|
}), o;
|
|
3315
3112
|
}
|
|
3316
3113
|
// ../explorer/engine/layout.js
|
|
3317
|
-
function
|
|
3114
|
+
function pa(e) {
|
|
3318
3115
|
let { state: t } = e;
|
|
3319
3116
|
e.touchScene();
|
|
3320
3117
|
let n = {};
|
|
@@ -3329,18 +3126,18 @@ function ra(e) {
|
|
|
3329
3126
|
e.r = Math.max(12, Math.round(e.baseR + r)), e.scaleDelta = r;
|
|
3330
3127
|
});
|
|
3331
3128
|
}
|
|
3332
|
-
var
|
|
3333
|
-
function
|
|
3129
|
+
var ma = "\"Segoe UI\", -apple-system, sans-serif";
|
|
3130
|
+
function ha(e, t) {
|
|
3334
3131
|
let { ctx: n } = e.state;
|
|
3335
|
-
n.save(), n.font = `${t.type === "root" || t.type === "app" ? "bold 12px" : "11px"} ${
|
|
3132
|
+
n.save(), n.font = `${t.type === "root" || t.type === "app" ? "bold 12px" : "11px"} ${ma}`;
|
|
3336
3133
|
let r = n.measureText(t.label || "").width;
|
|
3337
3134
|
return n.restore(), r;
|
|
3338
3135
|
}
|
|
3339
|
-
var
|
|
3136
|
+
var ga = [
|
|
3340
3137
|
"store",
|
|
3341
3138
|
"table",
|
|
3342
3139
|
"rom"
|
|
3343
|
-
],
|
|
3140
|
+
], _a = [
|
|
3344
3141
|
"core",
|
|
3345
3142
|
"atom",
|
|
3346
3143
|
"molecule",
|
|
@@ -3354,8 +3151,8 @@ var oa = [
|
|
|
3354
3151
|
"tool",
|
|
3355
3152
|
"app",
|
|
3356
3153
|
"pkg"
|
|
3357
|
-
],
|
|
3358
|
-
function
|
|
3154
|
+
], va = 64;
|
|
3155
|
+
function ya(e, { first: t = 110, gap: n = 76, spacing: r = 90 } = {}) {
|
|
3359
3156
|
let i = [], a = [], o = 0, s = 0;
|
|
3360
3157
|
for (; o < e.length;) {
|
|
3361
3158
|
let c = t + s * n, l = Math.max(1, Math.floor(2 * Math.PI * c / r)), u = Math.min(l, e.length - o), d = (e) => Array.from({ length: u }, (t, n) => -Math.PI / 2 + e + n / u * Math.PI * 2).some((e) => Math.abs(Math.atan2(Math.sin(e - Math.PI / 2), Math.cos(e - Math.PI / 2))) < .35), f = s % 2 ? Math.PI / u : 0;
|
|
@@ -3374,23 +3171,23 @@ function la(e, { first: t = 110, gap: n = 76, spacing: r = 90 } = {}) {
|
|
|
3374
3171
|
radii: a
|
|
3375
3172
|
};
|
|
3376
3173
|
}
|
|
3377
|
-
function
|
|
3174
|
+
function ba(e, t, n, r, i = /* @__PURE__ */ new Set(), a = 0) {
|
|
3378
3175
|
let o = [], s = [];
|
|
3379
3176
|
e.forEach((e) => {
|
|
3380
|
-
let c = i.has(e.id) || a >=
|
|
3177
|
+
let c = i.has(e.id) || a >= va ? [] : t(e);
|
|
3381
3178
|
if (!c.length) {
|
|
3382
3179
|
s.push(e);
|
|
3383
3180
|
return;
|
|
3384
3181
|
}
|
|
3385
3182
|
i.add(e.id);
|
|
3386
|
-
let l =
|
|
3183
|
+
let l = ba(c.sort(r), t, n, r, i, a + 1);
|
|
3387
3184
|
o.push({
|
|
3388
3185
|
c: e,
|
|
3389
3186
|
sub: l,
|
|
3390
3187
|
fp: l.extent
|
|
3391
3188
|
});
|
|
3392
3189
|
}), o.sort((e, t) => t.fp - e.fp);
|
|
3393
|
-
let c =
|
|
3190
|
+
let c = ya(s, { spacing: n(e) }), l = {
|
|
3394
3191
|
children: [...s],
|
|
3395
3192
|
offsets: [...c.offsets],
|
|
3396
3193
|
radii: c.radii,
|
|
@@ -3417,7 +3214,7 @@ function ua(e, t, n, r, i = /* @__PURE__ */ new Set(), a = 0) {
|
|
|
3417
3214
|
}
|
|
3418
3215
|
return l;
|
|
3419
3216
|
}
|
|
3420
|
-
function
|
|
3217
|
+
function xa(e, t, n, r) {
|
|
3421
3218
|
e.children.forEach((i, a) => {
|
|
3422
3219
|
i.x = t + e.offsets[a].x, i.y = n + e.offsets[a].y;
|
|
3423
3220
|
let o = e.subs[a];
|
|
@@ -3425,13 +3222,13 @@ function da(e, t, n, r) {
|
|
|
3425
3222
|
x: i.x,
|
|
3426
3223
|
y: i.y,
|
|
3427
3224
|
radii: o.radii
|
|
3428
|
-
}),
|
|
3225
|
+
}), xa(o, i.x, i.y, r));
|
|
3429
3226
|
});
|
|
3430
3227
|
}
|
|
3431
|
-
var
|
|
3432
|
-
function
|
|
3228
|
+
var Sa = 2;
|
|
3229
|
+
function Ca(e, t) {
|
|
3433
3230
|
let n = null;
|
|
3434
|
-
for (let r = 0; r < 360; r +=
|
|
3231
|
+
for (let r = 0; r < 360; r += Sa) {
|
|
3435
3232
|
let i = -Math.PI / 2 + r * Math.PI / 180, a = Math.cos(i), o = Math.sin(i), s = [];
|
|
3436
3233
|
for (let n of e) {
|
|
3437
3234
|
let e = a * n.x + o * n.y, r = n.r + t, i = e * e - (n.x * n.x + n.y * n.y) + r * r;
|
|
@@ -3448,7 +3245,7 @@ function pa(e, t) {
|
|
|
3448
3245
|
}
|
|
3449
3246
|
return n;
|
|
3450
3247
|
}
|
|
3451
|
-
function
|
|
3248
|
+
function wa(e) {
|
|
3452
3249
|
let { state: t } = e;
|
|
3453
3250
|
e.touchScene();
|
|
3454
3251
|
let { nodes: n, edges: r } = t;
|
|
@@ -3474,16 +3271,16 @@ function ma(e) {
|
|
|
3474
3271
|
});
|
|
3475
3272
|
let s = n.find((e) => e.id === "root");
|
|
3476
3273
|
s && (s.x = 0, s.y = 0);
|
|
3477
|
-
let c = (e) =>
|
|
3274
|
+
let c = (e) => ga.includes(e.type), l = new Set(Object.values(o)), u = new Set(n.filter((e) => o[e.id] && !c(e)).map((e) => o[e.id])), d = new Set(n.filter((e) => e.id !== "root" && (c(e) ? l.has(e.id) && (!o[e.id] || o[e.id] === "root") && (e.type === "store" || u.has(e.id)) : o[e.id] === "root" || !o[e.id] && (l.has(e.id) || [
|
|
3478
3275
|
"app",
|
|
3479
3276
|
"pkg",
|
|
3480
3277
|
"tool",
|
|
3481
3278
|
"external",
|
|
3482
3279
|
"stack"
|
|
3483
3280
|
].includes(e.type)))).map((e) => e.id)), f = n.filter((e) => d.has(e.id) || e.id !== "root" && c(e) && u.has(e.id) && !d.has(o[e.id])), p = new Set(f.map((e) => e.id)), m = (e) => {
|
|
3484
|
-
let t =
|
|
3281
|
+
let t = _a.indexOf(e.type);
|
|
3485
3282
|
return t < 0 ? 99 : t;
|
|
3486
|
-
}, h = (e, t) => m(e) - m(t) || String(e.label).localeCompare(String(t.label)), g = n.filter((e) => c(e) && !p.has(e.id) && !p.has(o[e.id])).sort((e, t) =>
|
|
3283
|
+
}, h = (e, t) => m(e) - m(t) || String(e.label).localeCompare(String(t.label)), g = n.filter((e) => c(e) && !p.has(e.id) && !p.has(o[e.id])).sort((e, t) => ga.indexOf(e.type) - ga.indexOf(t.type) || String(e.label).localeCompare(String(t.label))), _ = Math.max(110, ...g.map((t) => ha(e, t) + 24)), v = Math.max(150, g.length * _ / (2 * Math.PI));
|
|
3487
3284
|
g.forEach((e, t) => {
|
|
3488
3285
|
let n = -Math.PI / 2 + t / Math.max(1, g.length) * Math.PI * 2;
|
|
3489
3286
|
e.x = Math.cos(n) * v, e.y = Math.sin(n) * v;
|
|
@@ -3494,10 +3291,10 @@ function ma(e) {
|
|
|
3494
3291
|
y: 0,
|
|
3495
3292
|
r: v
|
|
3496
3293
|
});
|
|
3497
|
-
let b = (e) => e.id === "root" ? [] : n.filter((t) => o[t.id] === e.id && !p.has(t.id) && !c(t) && t.id !== "root"), x = (t) => Math.min(170, Math.max(84, ...t.map((t) =>
|
|
3294
|
+
let b = (e) => e.id === "root" ? [] : n.filter((t) => o[t.id] === e.id && !p.has(t.id) && !c(t) && t.id !== "root"), x = (t) => Math.min(170, Math.max(84, ...t.map((t) => ha(e, t) * .8 + 26))), S = /* @__PURE__ */ new Map();
|
|
3498
3295
|
f.forEach((e) => {
|
|
3499
3296
|
let t = n.filter((t) => o[t.id] === e.id && !p.has(t.id)).sort(h);
|
|
3500
|
-
t.length && S.set(e.id,
|
|
3297
|
+
t.length && S.set(e.id, ba(t, b, x, h, /* @__PURE__ */ new Set([e.id])));
|
|
3501
3298
|
});
|
|
3502
3299
|
let C = f.filter((e) => S.has(e.id)).sort((e, t) => S.get(t.id).extent - S.get(e.id).extent || String(e.label).localeCompare(String(t.label))), w = [{
|
|
3503
3300
|
x: 0,
|
|
@@ -3505,7 +3302,7 @@ function ma(e) {
|
|
|
3505
3302
|
r: y
|
|
3506
3303
|
}], T = y;
|
|
3507
3304
|
C.forEach((e) => {
|
|
3508
|
-
let t = S.get(e.id), n =
|
|
3305
|
+
let t = S.get(e.id), n = Ca(w, t.extent + 35);
|
|
3509
3306
|
e.x = n.x, e.y = n.y, w.push({
|
|
3510
3307
|
x: e.x,
|
|
3511
3308
|
y: e.y,
|
|
@@ -3514,46 +3311,46 @@ function ma(e) {
|
|
|
3514
3311
|
x: e.x,
|
|
3515
3312
|
y: e.y,
|
|
3516
3313
|
radii: t.radii
|
|
3517
|
-
}),
|
|
3314
|
+
}), xa(t, e.x, e.y, i.clusters);
|
|
3518
3315
|
});
|
|
3519
|
-
let
|
|
3520
|
-
|
|
3521
|
-
let n = -Math.PI / 2 + t / Math.max(1,
|
|
3522
|
-
e.x = Math.cos(n) *
|
|
3523
|
-
}),
|
|
3316
|
+
let E = n.filter((e) => e.id !== "root" && !o[e.id] && !c(e) && !p.has(e.id)), D = [...f.filter((e) => !S.has(e.id)), ...E].sort(h), O = Math.max(120, ...D.map((t) => ha(e, t) + 30)), k = Math.max(T + 90, D.length * O / (2 * Math.PI));
|
|
3317
|
+
D.forEach((e, t) => {
|
|
3318
|
+
let n = -Math.PI / 2 + t / Math.max(1, D.length) * Math.PI * 2;
|
|
3319
|
+
e.x = Math.cos(n) * k, e.y = Math.sin(n) * k;
|
|
3320
|
+
}), D.length && i.rings.push({
|
|
3524
3321
|
x: 0,
|
|
3525
3322
|
y: 0,
|
|
3526
|
-
r:
|
|
3323
|
+
r: k
|
|
3527
3324
|
});
|
|
3528
|
-
let
|
|
3325
|
+
let ee = (e) => e.id === "root" || e.x !== 0 || e.y !== 0, te = /* @__PURE__ */ new Map();
|
|
3529
3326
|
n.forEach((e) => {
|
|
3530
3327
|
let t = o[e.id];
|
|
3531
|
-
!
|
|
3328
|
+
!ee(e) && t && (te.get(t) || te.set(t, []).get(t)).push(e);
|
|
3532
3329
|
});
|
|
3533
|
-
let
|
|
3534
|
-
|
|
3535
|
-
let n =
|
|
3536
|
-
if (!n || !
|
|
3537
|
-
let r =
|
|
3330
|
+
let ne = new Map(n.map((e) => [e.id, e]));
|
|
3331
|
+
te.forEach((e, t) => {
|
|
3332
|
+
let n = ne.get(t);
|
|
3333
|
+
if (!n || !ee(n) || e.every(ee)) return;
|
|
3334
|
+
let r = ba(e.sort(h), b, x, h, /* @__PURE__ */ new Set([t]));
|
|
3538
3335
|
i.clusters.push({
|
|
3539
3336
|
x: n.x,
|
|
3540
3337
|
y: n.y,
|
|
3541
3338
|
radii: r.radii
|
|
3542
|
-
}),
|
|
3339
|
+
}), xa(r, n.x, n.y, i.clusters);
|
|
3543
3340
|
});
|
|
3544
3341
|
}
|
|
3545
|
-
var
|
|
3546
|
-
function
|
|
3342
|
+
var Ta = 50, Ea = 110, Da = 15;
|
|
3343
|
+
function Oa(e, t) {
|
|
3547
3344
|
e.touchScene();
|
|
3548
3345
|
let n = 0;
|
|
3549
3346
|
t.headers = [];
|
|
3550
3347
|
let r = [];
|
|
3551
3348
|
t.tiers.forEach((i) => {
|
|
3552
3349
|
if (!i.nodes.length) return;
|
|
3553
|
-
let a = Math.ceil(i.nodes.length /
|
|
3350
|
+
let a = Math.ceil(i.nodes.length / Da), o = Math.ceil(i.nodes.length / a), s = Math.max(70, ...i.nodes.map((t) => ha(e, t) + 30)), c = n;
|
|
3554
3351
|
i.nodes.forEach((e, t) => {
|
|
3555
3352
|
let n = Math.floor(t / o), i = t % o;
|
|
3556
|
-
e.x = c + n * s + s / 2, e.y = (i - (o - 1) / 2) *
|
|
3353
|
+
e.x = c + n * s + s / 2, e.y = (i - (o - 1) / 2) * Ta, r.push(e);
|
|
3557
3354
|
});
|
|
3558
3355
|
let l = a * s;
|
|
3559
3356
|
t.headers.push({
|
|
@@ -3563,20 +3360,20 @@ function va(e, t) {
|
|
|
3563
3360
|
left: c,
|
|
3564
3361
|
right: c + l,
|
|
3565
3362
|
rows: o
|
|
3566
|
-
}), n += l +
|
|
3567
|
-
}), t.top = -((Math.max(1, ...t.headers.map((e) => e.rows)) - 1) / 2) *
|
|
3568
|
-
let i = (n -
|
|
3363
|
+
}), n += l + Ea;
|
|
3364
|
+
}), t.top = -((Math.max(1, ...t.headers.map((e) => e.rows)) - 1) / 2) * Ta - 70;
|
|
3365
|
+
let i = (n - Ea) / 2;
|
|
3569
3366
|
r.forEach((e) => {
|
|
3570
3367
|
e.x -= i;
|
|
3571
3368
|
}), t.headers.forEach((e) => {
|
|
3572
3369
|
e.x -= i, e.left -= i, e.right -= i;
|
|
3573
3370
|
});
|
|
3574
3371
|
}
|
|
3575
|
-
var
|
|
3576
|
-
function
|
|
3577
|
-
e.store.set(
|
|
3372
|
+
var ka = "cornfield-freeform-positions";
|
|
3373
|
+
function Aa(e) {
|
|
3374
|
+
e.store.set(ka, JSON.stringify(e.state.freeformPositions));
|
|
3578
3375
|
}
|
|
3579
|
-
function
|
|
3376
|
+
function ja(e) {
|
|
3580
3377
|
let { state: t } = e;
|
|
3581
3378
|
e.touchScene();
|
|
3582
3379
|
let n = 0;
|
|
@@ -3585,64 +3382,188 @@ function xa(e) {
|
|
|
3585
3382
|
r && (e.x = r.x, e.y = r.y, n++);
|
|
3586
3383
|
}), n > 0;
|
|
3587
3384
|
}
|
|
3588
|
-
function
|
|
3589
|
-
|
|
3385
|
+
function Ma(e) {
|
|
3386
|
+
wa(e), e.state.isFreeform && ja(e);
|
|
3387
|
+
}
|
|
3388
|
+
// ../core/strings.js
|
|
3389
|
+
var Na = Object.freeze({
|
|
3390
|
+
layers: "Layers",
|
|
3391
|
+
layersAll: "All",
|
|
3392
|
+
layersNone: "None",
|
|
3393
|
+
overlays: "Overlays",
|
|
3394
|
+
dataFlow: "Flow",
|
|
3395
|
+
house: "House",
|
|
3396
|
+
proposals: "Proposals",
|
|
3397
|
+
issuesAndPrs: "Work",
|
|
3398
|
+
searchPlaceholder: "Search...",
|
|
3399
|
+
searchNoMatch: "No match for",
|
|
3400
|
+
signOut: "Sign out",
|
|
3401
|
+
poweredBy: "powered by cornfield",
|
|
3402
|
+
before: "Before",
|
|
3403
|
+
diff: "Diff",
|
|
3404
|
+
after: "After",
|
|
3405
|
+
closeProposal: "Close",
|
|
3406
|
+
approve: "Approve",
|
|
3407
|
+
sendBack: "Send back",
|
|
3408
|
+
sendBackWithNote: "Send back with this note",
|
|
3409
|
+
approveAnyway: "Approve anyway",
|
|
3410
|
+
sendBackAnyway: "Send back anyway",
|
|
3411
|
+
undo: "Undo",
|
|
3412
|
+
approved: "Approved",
|
|
3413
|
+
myEdits: "My edits",
|
|
3414
|
+
showWholeMap: "Show the whole map",
|
|
3415
|
+
wholeMap: "Whole map",
|
|
3416
|
+
hiddenWhileReviewing: "hidden while reviewing",
|
|
3417
|
+
yourEdits: "Your edits",
|
|
3418
|
+
cancelLanding: "Cancel landing",
|
|
3419
|
+
queueIt: "Queue it",
|
|
3420
|
+
reviewNoteLabel: "Note for the drafting agent",
|
|
3421
|
+
reviewNotePlaceholder: "What should change?",
|
|
3422
|
+
openSpecsList: "Open the Specs list",
|
|
3423
|
+
changes: "Changes",
|
|
3424
|
+
personasAndScenarios: "Personas and scenarios",
|
|
3425
|
+
scenarios: "Scenarios",
|
|
3426
|
+
anyone: "Anyone",
|
|
3427
|
+
notInAnyScenario: "Not in any scenario",
|
|
3428
|
+
steps: "Steps",
|
|
3429
|
+
previousStep: "Previous",
|
|
3430
|
+
nextStep: "Next",
|
|
3431
|
+
pause: "Pause",
|
|
3432
|
+
play: "Play",
|
|
3433
|
+
playAgain: "Play again",
|
|
3434
|
+
nextScenario: "Next scenario",
|
|
3435
|
+
notChecked: "Not checked",
|
|
3436
|
+
tabSpecs: "Specs",
|
|
3437
|
+
tabPulls: "PRs",
|
|
3438
|
+
tabIssues: "Issues",
|
|
3439
|
+
tabThreads: "Threads",
|
|
3440
|
+
tabRuns: "Runs",
|
|
3441
|
+
tabDeploys: "Deploys",
|
|
3442
|
+
waitingOnYou: "waiting on you",
|
|
3443
|
+
toDecide: "To decide",
|
|
3444
|
+
withAgent: "With the agent",
|
|
3445
|
+
approvedGroup: "Approved",
|
|
3446
|
+
drafts: "Drafts",
|
|
3447
|
+
needsYou: "Needs you",
|
|
3448
|
+
inMotion: "In motion",
|
|
3449
|
+
finished: "Finished",
|
|
3450
|
+
answer: "Answer",
|
|
3451
|
+
newIdea: "New idea",
|
|
3452
|
+
landIt: "Land it",
|
|
3453
|
+
startAgent: "Start an agent",
|
|
3454
|
+
askRunner: "Ask the runner",
|
|
3455
|
+
startAgain: "Start again",
|
|
3456
|
+
stop: "Stop",
|
|
3457
|
+
continueRun: "Continue",
|
|
3458
|
+
reply: "Reply",
|
|
3459
|
+
openFile: "Open file",
|
|
3460
|
+
openRoute: "Open route",
|
|
3461
|
+
startRun: "Start a run",
|
|
3462
|
+
copySpec: "Copy Spec",
|
|
3463
|
+
frame: "Frame them",
|
|
3464
|
+
throughChildren: "Include its children's lines",
|
|
3465
|
+
hintInspect: "Click a node to see what it is",
|
|
3466
|
+
hintInspectTouch: "Tap a node to see what it is",
|
|
3467
|
+
hintDrag: "Drag nodes to move • Double-click to inspect",
|
|
3468
|
+
hintDragTouch: "Drag nodes to move • Double-tap to inspect",
|
|
3469
|
+
hintDataFlow: "Data flow: browser → servers → API → tables → services → outside",
|
|
3470
|
+
loading: "Loading topology.json …",
|
|
3471
|
+
errorTitle: "The map could not be loaded",
|
|
3472
|
+
retry: "Retry",
|
|
3473
|
+
sourceLoading: "Loading the map …",
|
|
3474
|
+
sourceSignedOut: "You are not signed in to cornfield",
|
|
3475
|
+
sourceSignInText: "This map is behind cornfield's sign-in.",
|
|
3476
|
+
sourceNotMaintainer: "This map is for the project's maintainers",
|
|
3477
|
+
sourceNotMaintainerText: "You are signed in to cornfield, but not as a maintainer.",
|
|
3478
|
+
sourceSignIn: "Sign in to cornfield",
|
|
3479
|
+
sourceNotListed: "This page is not listed by that cornfield",
|
|
3480
|
+
sourceNotListedHint: "Add this origin to embed.origins on the server:",
|
|
3481
|
+
sourceOffline: "The map cannot be reached",
|
|
3482
|
+
sourceOfflineText: "Check the connection, then try again.",
|
|
3483
|
+
sourceBadAddress: "That is not the address of a cornfield server",
|
|
3484
|
+
sourceVersion: "This map and its server are different versions",
|
|
3485
|
+
sourceSecondMap: "This scope already has a map"
|
|
3486
|
+
}), Pa = (e) => typeof e == "string" && Object.hasOwn(Na, e), Fa = /* @__PURE__ */ RegExp("[\\u0000-\\u001f\\u007f-\\u009f\\u2028\\u2029]");
|
|
3487
|
+
function Ia(e) {
|
|
3488
|
+
return typeof e == "string" ? e.trim() ? Fa.test(e) ? "is one line of plain text (no line break or control character)" : [...e].length > 80 ? "is at most 80 characters" : null : "is empty (leave the key out to keep the default)" : "is text";
|
|
3489
|
+
}
|
|
3490
|
+
// ../explorer/engine/strings.js
|
|
3491
|
+
var Z = (e, t) => Pa(t) && Object.hasOwn(e.strings, t) && !Ia(e.strings[t]);
|
|
3492
|
+
function La(e, t) {
|
|
3493
|
+
for (let t of Object.keys(e.strings)) delete e.strings[t];
|
|
3494
|
+
if (t && typeof t == "object" && !Array.isArray(t)) for (let [n, r] of Object.entries(t)) Pa(n) && !Ia(r) && (e.strings[n] = r);
|
|
3495
|
+
}
|
|
3496
|
+
function Q(e, t) {
|
|
3497
|
+
return Z(e, t) ? e.strings[t] : Pa(t) ? Na[t] : String(t);
|
|
3498
|
+
}
|
|
3499
|
+
var Ra = [
|
|
3500
|
+
["data-corn-string", (e, t) => {
|
|
3501
|
+
e.textContent = t;
|
|
3502
|
+
}],
|
|
3503
|
+
["data-corn-string-aria-label", (e, t) => e.setAttribute("aria-label", t)],
|
|
3504
|
+
["data-corn-string-placeholder", (e, t) => e.setAttribute("placeholder", t)]
|
|
3505
|
+
];
|
|
3506
|
+
function za(e, t = e.root) {
|
|
3507
|
+
if (t && typeof t.querySelectorAll == "function") for (let [n, r] of Ra) for (let i of t.querySelectorAll(`[${n}]`)) {
|
|
3508
|
+
let t = i.getAttribute(n);
|
|
3509
|
+
Z(e, t) && r(i, e.strings[t]);
|
|
3510
|
+
}
|
|
3590
3511
|
}
|
|
3591
3512
|
// ../explorer/engine/hint.js
|
|
3592
|
-
var
|
|
3593
|
-
function
|
|
3513
|
+
var Ba = "cornfield:hint-done";
|
|
3514
|
+
function Va(e) {
|
|
3594
3515
|
try {
|
|
3595
3516
|
return !!(e && e.matchMedia && e.matchMedia("(pointer: coarse)").matches);
|
|
3596
3517
|
} catch {
|
|
3597
3518
|
return !1;
|
|
3598
3519
|
}
|
|
3599
3520
|
}
|
|
3600
|
-
function
|
|
3521
|
+
function Ha(e, t, n) {
|
|
3601
3522
|
return n && (t.set || !e.set) ? t.text : e.text;
|
|
3602
3523
|
}
|
|
3603
|
-
function
|
|
3524
|
+
function Ua(e, t = Va(e.win)) {
|
|
3604
3525
|
let { state: n } = e;
|
|
3605
|
-
return n.view === "dataflow" ?
|
|
3606
|
-
text:
|
|
3607
|
-
set:
|
|
3526
|
+
return n.view === "dataflow" ? Q(e, "hintDataFlow") : n.isFreeform ? Ha({
|
|
3527
|
+
text: Q(e, "hintDrag"),
|
|
3528
|
+
set: Z(e, "hintDrag")
|
|
3608
3529
|
}, {
|
|
3609
|
-
text:
|
|
3610
|
-
set:
|
|
3611
|
-
}, t) :
|
|
3612
|
-
text:
|
|
3613
|
-
set:
|
|
3530
|
+
text: Q(e, "hintDragTouch"),
|
|
3531
|
+
set: Z(e, "hintDragTouch")
|
|
3532
|
+
}, t) : Ha({
|
|
3533
|
+
text: Q(e, "hintInspect"),
|
|
3534
|
+
set: Z(e, "hintInspect")
|
|
3614
3535
|
}, {
|
|
3615
|
-
text:
|
|
3616
|
-
set:
|
|
3536
|
+
text: Q(e, "hintInspectTouch"),
|
|
3537
|
+
set: Z(e, "hintInspectTouch")
|
|
3617
3538
|
}, t);
|
|
3618
3539
|
}
|
|
3619
|
-
var
|
|
3540
|
+
var Wa = (e) => {
|
|
3620
3541
|
try {
|
|
3621
3542
|
return e.win ? e.win.sessionStorage : null;
|
|
3622
3543
|
} catch {
|
|
3623
3544
|
return null;
|
|
3624
3545
|
}
|
|
3625
|
-
},
|
|
3546
|
+
}, Ga = (e) => e.slot("hint", () => {
|
|
3626
3547
|
let t = { dismissed: !1 };
|
|
3627
3548
|
try {
|
|
3628
|
-
let n =
|
|
3549
|
+
let n = Wa(e);
|
|
3629
3550
|
t.dismissed = !!n && n.getItem("cornfield:hint-done") === "1";
|
|
3630
3551
|
} catch {
|
|
3631
3552
|
t.dismissed = !1;
|
|
3632
3553
|
}
|
|
3633
3554
|
return t;
|
|
3634
3555
|
});
|
|
3635
|
-
function
|
|
3636
|
-
let t =
|
|
3556
|
+
function Ka(e) {
|
|
3557
|
+
let t = Ga(e);
|
|
3637
3558
|
if (!t.dismissed && (t.dismissed = !0, e.el("instruction-badge-text"))) {
|
|
3638
3559
|
try {
|
|
3639
|
-
let t =
|
|
3640
|
-
t && t.setItem(
|
|
3560
|
+
let t = Wa(e);
|
|
3561
|
+
t && t.setItem(Ba, "1");
|
|
3641
3562
|
} catch {}
|
|
3642
|
-
|
|
3563
|
+
Ja(e);
|
|
3643
3564
|
}
|
|
3644
3565
|
}
|
|
3645
|
-
function
|
|
3566
|
+
function qa(e) {
|
|
3646
3567
|
let t = (t) => e.el(t), n = t("proposal-bar");
|
|
3647
3568
|
if (n && !n.hidden) return !0;
|
|
3648
3569
|
let r = t("spec-drawer");
|
|
@@ -3650,22 +3571,22 @@ function Aa(e) {
|
|
|
3650
3571
|
let i = t("forge-panel");
|
|
3651
3572
|
return i && i.classList.contains("forge-open") ? !0 : !!(e.root && e.root.querySelector("[data-corn=\"scenario-player\"]"));
|
|
3652
3573
|
}
|
|
3653
|
-
function
|
|
3654
|
-
let t = e.el("instruction-badge-text"), n =
|
|
3574
|
+
function Ja(e) {
|
|
3575
|
+
let t = e.el("instruction-badge-text"), n = Ua(e);
|
|
3655
3576
|
t && t.textContent !== n && (t.textContent = n);
|
|
3656
3577
|
let r = t && t.closest("[data-corn=\"hint\"]");
|
|
3657
3578
|
if (!r) return;
|
|
3658
|
-
let i =
|
|
3579
|
+
let i = qa(e) || Ga(e).dismissed && e.state.view !== "dataflow";
|
|
3659
3580
|
r.hidden !== i && (r.hidden = i);
|
|
3660
3581
|
}
|
|
3661
3582
|
// ../explorer/sheet-model.js
|
|
3662
|
-
var
|
|
3583
|
+
var Ya = .35, Xa = Object.freeze({
|
|
3663
3584
|
proposal: "review",
|
|
3664
3585
|
player: "review",
|
|
3665
3586
|
forge: "other",
|
|
3666
3587
|
drawer: "other"
|
|
3667
|
-
}),
|
|
3668
|
-
function
|
|
3588
|
+
}), Za = /* @__PURE__ */ new Set(["other"]), Qa = (e, t = 0) => Math.max(0, Math.floor(e - Math.ceil(e * Ya) - t * 44));
|
|
3589
|
+
function $a(e = Xa) {
|
|
3669
3590
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), r = null, i = (t) => e[t] || t;
|
|
3670
3591
|
return {
|
|
3671
3592
|
add: (e) => {
|
|
@@ -3676,7 +3597,7 @@ function Pa(e = Ma) {
|
|
|
3676
3597
|
},
|
|
3677
3598
|
has: (e) => t.has(e),
|
|
3678
3599
|
show(e) {
|
|
3679
|
-
if (!t.has(e) || (n.add(e), !
|
|
3600
|
+
if (!t.has(e) || (n.add(e), !Za.has(i(e)))) return [];
|
|
3680
3601
|
let a = [...n].filter((t) => t !== e && i(t) === i(e));
|
|
3681
3602
|
for (let e of a) n.delete(e), r === e && (r = null);
|
|
3682
3603
|
return a;
|
|
@@ -3709,9 +3630,11 @@ function Pa(e = Ma) {
|
|
|
3709
3630
|
ids: () => [...t]
|
|
3710
3631
|
};
|
|
3711
3632
|
}
|
|
3712
|
-
|
|
3633
|
+
// ../explorer/engine/map-rect.js
|
|
3634
|
+
var eo = "(max-width: 767px)";
|
|
3635
|
+
function to(e) {
|
|
3713
3636
|
return e.slot("sheets", () => ({
|
|
3714
|
-
model:
|
|
3637
|
+
model: $a(),
|
|
3715
3638
|
elements: /* @__PURE__ */ new Map(),
|
|
3716
3639
|
options: /* @__PURE__ */ new Map(),
|
|
3717
3640
|
offs: /* @__PURE__ */ new Map(),
|
|
@@ -3725,26 +3648,26 @@ function Fa(e) {
|
|
|
3725
3648
|
documentWired: !1
|
|
3726
3649
|
}));
|
|
3727
3650
|
}
|
|
3728
|
-
var
|
|
3729
|
-
let { box: t } =
|
|
3730
|
-
return t ? t.isConnected && t.clientWidth > 0 && t.clientWidth <
|
|
3731
|
-
},
|
|
3732
|
-
function
|
|
3733
|
-
let t =
|
|
3651
|
+
var no = 768, ro = (e) => {
|
|
3652
|
+
let { box: t } = to(e);
|
|
3653
|
+
return t ? t.isConnected && t.clientWidth > 0 && t.clientWidth < no : !!(e.win && typeof e.win.matchMedia == "function" && e.win.matchMedia("(max-width: 767px)").matches);
|
|
3654
|
+
}, io = (e, t) => t.dock && t.dock.parentElement || (e.state.canvas ? e.state.canvas.parentElement : null);
|
|
3655
|
+
function ao(e) {
|
|
3656
|
+
let t = to(e), { state: n } = e;
|
|
3734
3657
|
if (!t.dock || !t.dock.isConnected) return n.coveredBottom || 0;
|
|
3735
|
-
let r =
|
|
3658
|
+
let r = ro(e) ? Math.round(t.dock.offsetHeight || 0) : 0;
|
|
3736
3659
|
n.coveredBottom = r;
|
|
3737
|
-
let i =
|
|
3660
|
+
let i = io(e, t);
|
|
3738
3661
|
return i && i.style.setProperty("--hx-covered", `${r}px`), r !== t.lastCovered && (t.lastCovered = r, t.listeners.forEach((e) => e())), r;
|
|
3739
3662
|
}
|
|
3740
|
-
function
|
|
3663
|
+
function oo(e) {
|
|
3741
3664
|
let { state: t } = e, n = {
|
|
3742
3665
|
top: 0,
|
|
3743
3666
|
bottom: 0,
|
|
3744
3667
|
left: 0,
|
|
3745
3668
|
right: 0
|
|
3746
3669
|
}, r = t.canvas, i = (e) => !!e && !e.hidden && e.isConnected;
|
|
3747
|
-
if (
|
|
3670
|
+
if (ro(e)) n.bottom = ao(e) + 8;
|
|
3748
3671
|
else if (r && typeof r.getBoundingClientRect == "function") {
|
|
3749
3672
|
let t = r.getBoundingClientRect(), a = e.el("proposal-bar");
|
|
3750
3673
|
i(a) && (n.top = Math.max(0, a.getBoundingClientRect().bottom - t.top) + 8);
|
|
@@ -3757,9 +3680,9 @@ function Ba(e) {
|
|
|
3757
3680
|
let l = e.root ? e.root.querySelector(".hx-player") : null;
|
|
3758
3681
|
i(l) && (n.bottom = Math.max(0, t.bottom - l.getBoundingClientRect().top) + 8);
|
|
3759
3682
|
}
|
|
3760
|
-
return
|
|
3683
|
+
return ur(t.width || 0, t.height || 0, n);
|
|
3761
3684
|
}
|
|
3762
|
-
function
|
|
3685
|
+
function so(e) {
|
|
3763
3686
|
return e.slot("fly", () => {
|
|
3764
3687
|
let t = { glide: null };
|
|
3765
3688
|
return t.tick = (n) => {
|
|
@@ -3774,36 +3697,48 @@ function Va(e) {
|
|
|
3774
3697
|
}) : null, t.off && e.own(t.off), t;
|
|
3775
3698
|
});
|
|
3776
3699
|
}
|
|
3777
|
-
function
|
|
3700
|
+
function co(e, t) {
|
|
3778
3701
|
if (!t) return;
|
|
3779
|
-
let n =
|
|
3702
|
+
let n = so(e), { state: r } = e;
|
|
3780
3703
|
e.reducedMotion || !r.width ? (Object.assign(r.camera, t), n.glide = null, e.map.render()) : (n.glide = {
|
|
3781
3704
|
to: { ...t },
|
|
3782
3705
|
last: null
|
|
3783
3706
|
}, e.map.ensureFlowLoop());
|
|
3784
3707
|
}
|
|
3785
|
-
function
|
|
3786
|
-
|
|
3708
|
+
function lo(e) {
|
|
3709
|
+
so(e).glide = null;
|
|
3787
3710
|
}
|
|
3788
3711
|
// ../explorer/selection-view.js
|
|
3789
|
-
function
|
|
3712
|
+
function uo(e) {
|
|
3790
3713
|
return !e.state.selectedNode || e.state.scenario ? [] : e.map.getScene().nodes.filter((e) => e.connected);
|
|
3791
3714
|
}
|
|
3792
|
-
function
|
|
3715
|
+
function fo(e) {
|
|
3716
|
+
let { state: t } = e;
|
|
3717
|
+
if (!t.selectedNode) return {
|
|
3718
|
+
connected: 0,
|
|
3719
|
+
off: 0
|
|
3720
|
+
};
|
|
3721
|
+
let n = uo(e).filter((e) => e.id !== t.selectedNode.id);
|
|
3722
|
+
return {
|
|
3723
|
+
connected: n.length,
|
|
3724
|
+
off: n.length ? br(n, t.camera, oo(e)) : 0
|
|
3725
|
+
};
|
|
3726
|
+
}
|
|
3727
|
+
function po(e) {
|
|
3793
3728
|
let t = e.state.selectedNode;
|
|
3794
3729
|
if (!t) return null;
|
|
3795
|
-
let n =
|
|
3796
|
-
return
|
|
3730
|
+
let n = xr(t, uo(e), oo(e), { padding: e.map.fitPadding() });
|
|
3731
|
+
return co(e, {
|
|
3797
3732
|
x: n.x,
|
|
3798
3733
|
y: n.y,
|
|
3799
3734
|
zoom: n.zoom
|
|
3800
3735
|
}), n;
|
|
3801
3736
|
}
|
|
3802
3737
|
// ../explorer/engine/selection.js
|
|
3803
|
-
function
|
|
3738
|
+
function mo(e, t, { frame: n = !1, source: r = "api" } = {}) {
|
|
3804
3739
|
if (!t) return;
|
|
3805
3740
|
let { state: i } = e;
|
|
3806
|
-
e.emit("scenario:clear"),
|
|
3741
|
+
e.emit("scenario:clear"), Ka(e), i.selectedNode && i.selectedNode.id === t.id || (i.selectedKind = null);
|
|
3807
3742
|
let a = e.setSelection(t, null, {
|
|
3808
3743
|
source: r,
|
|
3809
3744
|
quiet: !0
|
|
@@ -3811,9 +3746,9 @@ function Ka(e, t, { frame: n = !1, source: r = "api" } = {}) {
|
|
|
3811
3746
|
e.touchScene(), e.map.render(), a.announce(), e.emit("node:show", {
|
|
3812
3747
|
node: t,
|
|
3813
3748
|
frame: n
|
|
3814
|
-
}), n &&
|
|
3749
|
+
}), n && po(e);
|
|
3815
3750
|
}
|
|
3816
|
-
function
|
|
3751
|
+
function ho(e, { source: t = "api" } = {}) {
|
|
3817
3752
|
e.emit("scenario:clear");
|
|
3818
3753
|
let n = e.setSelection(null, null, {
|
|
3819
3754
|
source: t,
|
|
@@ -3821,16 +3756,16 @@ function qa(e, { source: t = "api" } = {}) {
|
|
|
3821
3756
|
});
|
|
3822
3757
|
e.touchScene(), e.map.render(), e.emit("node:close"), n.announce();
|
|
3823
3758
|
}
|
|
3824
|
-
var
|
|
3759
|
+
var go = 1.25, _o = {
|
|
3825
3760
|
ArrowLeft: [-1, 0],
|
|
3826
3761
|
ArrowRight: [1, 0],
|
|
3827
3762
|
ArrowUp: [0, -1],
|
|
3828
3763
|
ArrowDown: [0, 1]
|
|
3829
3764
|
};
|
|
3830
|
-
function
|
|
3765
|
+
function vo(e, t = {}) {
|
|
3831
3766
|
let { shift: n = !1, alt: r = !1, ctrl: i = !1, meta: a = !1, scenario: o = !1, freeform: s = !1, selected: c = !1 } = t;
|
|
3832
3767
|
if (i || a) return null;
|
|
3833
|
-
let l =
|
|
3768
|
+
let l = _o[e];
|
|
3834
3769
|
if (l) {
|
|
3835
3770
|
if (r) return s && c ? {
|
|
3836
3771
|
type: "move",
|
|
@@ -3850,12 +3785,12 @@ function Xa(e, t = {}) {
|
|
|
3850
3785
|
case "+":
|
|
3851
3786
|
case "=": return {
|
|
3852
3787
|
type: "zoom",
|
|
3853
|
-
factor:
|
|
3788
|
+
factor: go
|
|
3854
3789
|
};
|
|
3855
3790
|
case "-":
|
|
3856
3791
|
case "_": return {
|
|
3857
3792
|
type: "zoom",
|
|
3858
|
-
factor: 1 /
|
|
3793
|
+
factor: 1 / go
|
|
3859
3794
|
};
|
|
3860
3795
|
case "0": return { type: "fit" };
|
|
3861
3796
|
case "n":
|
|
@@ -3879,21 +3814,21 @@ function Xa(e, t = {}) {
|
|
|
3879
3814
|
default: return null;
|
|
3880
3815
|
}
|
|
3881
3816
|
}
|
|
3882
|
-
function
|
|
3817
|
+
function yo(e) {
|
|
3883
3818
|
return [...e].sort((e, t) => Math.floor(e.y / 40) - Math.floor(t.y / 40) || e.x - t.x || (e.id < t.id ? -1 : +(e.id > t.id)));
|
|
3884
3819
|
}
|
|
3885
|
-
function
|
|
3820
|
+
function bo(e, t, n) {
|
|
3886
3821
|
if (!e.length) return null;
|
|
3887
3822
|
let r = t == null ? -1 : e.findIndex((e) => e.id === t);
|
|
3888
3823
|
if (r < 0) return n >= 0 ? e[0] : e[e.length - 1];
|
|
3889
3824
|
let i = e.length;
|
|
3890
3825
|
return e[((r + n) % i + i) % i];
|
|
3891
3826
|
}
|
|
3892
|
-
function
|
|
3827
|
+
function xo(e, t, n) {
|
|
3893
3828
|
let r = e.type === "external" ? "outside service" : e.type, i = Number.isFinite(e.degree) ? `, ${e.degree} ${e.degree === 1 ? "connection" : "connections"}` : "", a = Number.isFinite(t) && Number.isFinite(n) ? `, ${n + 1} of ${t}` : "";
|
|
3894
3829
|
return `${e.label}, ${r}${i}${a}`;
|
|
3895
3830
|
}
|
|
3896
|
-
var
|
|
3831
|
+
var So = (e) => `Zoom ${Math.round(e * 100)} percent`;
|
|
3897
3832
|
// ../explorer/engine/keyboard.js
|
|
3898
3833
|
function $(e, t) {
|
|
3899
3834
|
let n = e.slot("announce", () => {
|
|
@@ -3906,32 +3841,32 @@ function $(e, t) {
|
|
|
3906
3841
|
r.textContent = t;
|
|
3907
3842
|
}, 30));
|
|
3908
3843
|
}
|
|
3909
|
-
var
|
|
3910
|
-
function
|
|
3911
|
-
t ? (
|
|
3844
|
+
var Co = (e) => yo(e.state.nodes.filter((t) => e.map.isNodeVisible(t)));
|
|
3845
|
+
function wo(e, t, n) {
|
|
3846
|
+
t ? (mo(e, t, {
|
|
3912
3847
|
frame: !0,
|
|
3913
3848
|
source: "keyboard"
|
|
3914
|
-
}), $(e,
|
|
3849
|
+
}), $(e, xo(t, n.length, n.indexOf(t)))) : $(e, e.el("legend-dropdown") ? "No nodes are shown. Turn a layer on in the Layers menu." : "No nodes are shown.");
|
|
3915
3850
|
}
|
|
3916
|
-
function
|
|
3851
|
+
function To(e) {
|
|
3917
3852
|
let { state: t } = e;
|
|
3918
3853
|
if (!t.selectedNode) return;
|
|
3919
|
-
let n =
|
|
3854
|
+
let n = po(e);
|
|
3920
3855
|
if (!n) return;
|
|
3921
|
-
let r = Math.max(0,
|
|
3856
|
+
let r = Math.max(0, uo(e).length - 1);
|
|
3922
3857
|
$(e, n.framed ? `Framed ${t.selectedNode.label} and ${r} connected` : `${t.selectedNode.label} centred: ${r} connected, too spread out to frame together`);
|
|
3923
3858
|
}
|
|
3924
|
-
function
|
|
3859
|
+
function Eo(e, t, n) {
|
|
3925
3860
|
let { state: r } = e, i = r.selectedNode;
|
|
3926
3861
|
i && (i.x += t, i.y += n, r.freeformPositions[i.id] = {
|
|
3927
3862
|
x: i.x,
|
|
3928
3863
|
y: i.y
|
|
3929
|
-
}, e.touchScene(),
|
|
3864
|
+
}, e.touchScene(), Aa(e), e.map.render(), $(e, `Moved ${i.label}`));
|
|
3930
3865
|
}
|
|
3931
|
-
function
|
|
3866
|
+
function Do(e, t) {
|
|
3932
3867
|
let { state: n, map: r } = e;
|
|
3933
3868
|
if (t.target !== n.canvas || t.defaultPrevented) return;
|
|
3934
|
-
let i =
|
|
3869
|
+
let i = vo(t.key, {
|
|
3935
3870
|
shift: t.shiftKey,
|
|
3936
3871
|
alt: t.altKey,
|
|
3937
3872
|
ctrl: t.ctrlKey,
|
|
@@ -3948,52 +3883,52 @@ function ao(e, t) {
|
|
|
3948
3883
|
a.x += i.dx, a.y += i.dy, r.render();
|
|
3949
3884
|
break;
|
|
3950
3885
|
case "zoom":
|
|
3951
|
-
Object.assign(a,
|
|
3886
|
+
Object.assign(a, sr(a, i.factor, o / 2, s / 2, r.getMinZoom())), r.render(), $(e, So(a.zoom));
|
|
3952
3887
|
break;
|
|
3953
3888
|
case "fit":
|
|
3954
|
-
r.fitGraphToViewport(r.fitPadding()), $(e, `The whole map. ${
|
|
3889
|
+
r.fitGraphToViewport(r.fitPadding()), $(e, `The whole map. ${So(a.zoom)}`);
|
|
3955
3890
|
break;
|
|
3956
3891
|
case "step": {
|
|
3957
3892
|
if (e.ask("search:active") && e.ask("search:step", i.by)) break;
|
|
3958
|
-
let t =
|
|
3959
|
-
|
|
3893
|
+
let t = Co(e);
|
|
3894
|
+
wo(e, bo(t, n.selectedNode && n.selectedNode.id, i.by), t);
|
|
3960
3895
|
break;
|
|
3961
3896
|
}
|
|
3962
3897
|
case "first":
|
|
3963
3898
|
case "last": {
|
|
3964
|
-
let t =
|
|
3965
|
-
|
|
3899
|
+
let t = Co(e);
|
|
3900
|
+
wo(e, i.type === "first" ? t[0] : t[t.length - 1], t);
|
|
3966
3901
|
break;
|
|
3967
3902
|
}
|
|
3968
3903
|
case "frame":
|
|
3969
|
-
|
|
3904
|
+
To(e);
|
|
3970
3905
|
break;
|
|
3971
3906
|
case "open":
|
|
3972
3907
|
e.emit("node:focus");
|
|
3973
3908
|
break;
|
|
3974
3909
|
case "close":
|
|
3975
|
-
|
|
3910
|
+
ho(e, { source: "keyboard" }), $(e, e.el("spec-drawer") ? "Panel closed" : "Selection cleared");
|
|
3976
3911
|
break;
|
|
3977
|
-
case "move":
|
|
3912
|
+
case "move": Eo(e, i.dx, i.dy);
|
|
3978
3913
|
}
|
|
3979
3914
|
}
|
|
3980
|
-
function
|
|
3915
|
+
function Oo(e) {
|
|
3981
3916
|
let t = e.slot("keyboard", () => ({ off: null }));
|
|
3982
|
-
!t.off && e.state.canvas && (t.off = e.listen(e.state.canvas, "keydown", (t) =>
|
|
3917
|
+
!t.off && e.state.canvas && (t.off = e.listen(e.state.canvas, "keydown", (t) => Do(e, t)));
|
|
3983
3918
|
}
|
|
3984
|
-
function
|
|
3919
|
+
function ko(e) {
|
|
3985
3920
|
let t = e.slot("keyboard", () => ({ off: null }));
|
|
3986
3921
|
t.off && t.off(), t.off = null;
|
|
3987
3922
|
}
|
|
3988
3923
|
// ../explorer/engine/piece.js
|
|
3989
|
-
var
|
|
3990
|
-
function
|
|
3991
|
-
return String(e).replace(/<[a-zA-Z][^<>]*>/g, (e) => /\spart=/.test(e) ? e : e.replace(
|
|
3924
|
+
var Ao = /* @__PURE__ */ RegExp("\\sdata-corn=\\\"([^\\\"]+)\\\"");
|
|
3925
|
+
function jo(e) {
|
|
3926
|
+
return String(e).replace(/<[a-zA-Z][^<>]*>/g, (e) => /\spart=/.test(e) ? e : e.replace(Ao, (e, t) => ` data-corn=\"${t}\" part=\"${t}\"`));
|
|
3992
3927
|
}
|
|
3993
|
-
function
|
|
3928
|
+
function Mo(e) {
|
|
3994
3929
|
for (let t of e.querySelectorAll("[data-corn]:not([part])")) t.setAttribute("part", t.getAttribute("data-corn"));
|
|
3995
3930
|
}
|
|
3996
|
-
function
|
|
3931
|
+
function No(e) {
|
|
3997
3932
|
let t = [], n = !1, r = {
|
|
3998
3933
|
listen(n, r, i, a) {
|
|
3999
3934
|
let o = e.listen(n, r, i, a);
|
|
@@ -4016,7 +3951,7 @@ function fo(e) {
|
|
|
4016
3951
|
let r = e.win && e.win.MutationObserver;
|
|
4017
3952
|
if (!r) return;
|
|
4018
3953
|
let i = new r((e) => {
|
|
4019
|
-
for (let t of e) for (let e of t.addedNodes) e.nodeType === 1 && (e.hasAttribute("data-corn") && !e.hasAttribute("part") && e.setAttribute("part", e.getAttribute("data-corn")),
|
|
3954
|
+
for (let t of e) for (let e of t.addedNodes) e.nodeType === 1 && (e.hasAttribute("data-corn") && !e.hasAttribute("part") && e.setAttribute("part", e.getAttribute("data-corn")), Mo(e));
|
|
4020
3955
|
});
|
|
4021
3956
|
for (let e of n) i.observe(e, {
|
|
4022
3957
|
childList: !0,
|
|
@@ -4034,57 +3969,68 @@ function fo(e) {
|
|
|
4034
3969
|
};
|
|
4035
3970
|
return e.own(r.destroy), r;
|
|
4036
3971
|
}
|
|
4037
|
-
function
|
|
3972
|
+
function Po(e, t, n, r, i) {
|
|
4038
3973
|
let a = e.doc.createElement("template");
|
|
4039
|
-
a.innerHTML =
|
|
3974
|
+
a.innerHTML = jo(n), za(e, a.content);
|
|
4040
3975
|
let o = [...a.content.children], s = r && i ? r[i] : null;
|
|
4041
3976
|
if (s && s.parentNode) {
|
|
4042
|
-
let t =
|
|
4043
|
-
s.parentNode.insertBefore(a.content, s), t &&
|
|
3977
|
+
let t = Fo(s);
|
|
3978
|
+
s.parentNode.insertBefore(a.content, s), t && Io(e, t, o);
|
|
4044
3979
|
} else t.append(a.content);
|
|
4045
3980
|
return o;
|
|
4046
3981
|
}
|
|
4047
|
-
function
|
|
3982
|
+
function Fo(e) {
|
|
4048
3983
|
let t = [], n = `corn-placeholder:${String(e.data || "").replace(/^corn-piece:/, "")}`;
|
|
4049
3984
|
for (let r = e.previousSibling; r; r = r.previousSibling) if (t.push(r), r.nodeType === 8 && r.data === n) return t;
|
|
4050
3985
|
return null;
|
|
4051
3986
|
}
|
|
4052
|
-
function
|
|
3987
|
+
function Io(e, t, n) {
|
|
4053
3988
|
let r = (e) => e.flatMap((e) => e.nodeType === 1 ? [...e.matches("button, input") ? [e] : [], ...e.querySelectorAll("button, input")] : []), i = r(t.slice().reverse()), a = r(n), o = e.active();
|
|
4054
3989
|
i.forEach((e, t) => {
|
|
4055
3990
|
let n = a[t];
|
|
4056
3991
|
n && n.tagName === e.tagName && (e.tagName === "INPUT" && e.value && (n.value = e.value), e === o && n.focus());
|
|
4057
3992
|
}), t.forEach((e) => e.remove());
|
|
4058
3993
|
}
|
|
3994
|
+
// ../core/text.js
|
|
3995
|
+
var Lo = {
|
|
3996
|
+
"&": "&",
|
|
3997
|
+
"<": "<",
|
|
3998
|
+
">": ">",
|
|
3999
|
+
"\"": """,
|
|
4000
|
+
"'": "'"
|
|
4001
|
+
};
|
|
4002
|
+
function Ro(e) {
|
|
4003
|
+
return String(e ?? "").replace(/[&<>"']/g, (e) => Lo[e]);
|
|
4004
|
+
}
|
|
4059
4005
|
// ../explorer/pieces/adopt-tokens.js
|
|
4060
|
-
var
|
|
4061
|
-
function
|
|
4006
|
+
var zo = Symbol.for("cornfield.default-tokens"), Bo = "data-corn-default-tokens";
|
|
4007
|
+
function Vo(e, t) {
|
|
4062
4008
|
if (!e || !t) return !1;
|
|
4063
4009
|
let n = e.nodeType === 9 ? e : e.ownerDocument, r = e.adoptedStyleSheets;
|
|
4064
4010
|
if (Array.isArray(r) && n && n.defaultView && typeof n.defaultView.CSSStyleSheet == "function" && "replaceSync" in n.defaultView.CSSStyleSheet.prototype) {
|
|
4065
|
-
if (r.some((e) => e && e[
|
|
4011
|
+
if (r.some((e) => e && e[zo])) return !1;
|
|
4066
4012
|
let i = new n.defaultView.CSSStyleSheet();
|
|
4067
|
-
return i.replaceSync(t), i[
|
|
4013
|
+
return i.replaceSync(t), i[zo] = !0, e.adoptedStyleSheets = [...r, i], !0;
|
|
4068
4014
|
}
|
|
4069
4015
|
let i = e.nodeType === 9 ? e.head : e;
|
|
4070
|
-
if (!i || i.querySelector(`style[${
|
|
4016
|
+
if (!i || i.querySelector(`style[${Bo}]`)) return !1;
|
|
4071
4017
|
let a = n.createElement("style");
|
|
4072
|
-
return a.setAttribute(
|
|
4018
|
+
return a.setAttribute(Bo, ""), a.textContent = t, i.prepend(a), !0;
|
|
4073
4019
|
}
|
|
4074
4020
|
// ../explorer/pieces/scope-link.js
|
|
4075
|
-
var
|
|
4021
|
+
var Ho = "corn-scope-request", Uo = "corn-scope-changed", Wo = (e) => e.slot("scope", () => ({
|
|
4076
4022
|
theme: "auto",
|
|
4077
4023
|
serverTheme: null,
|
|
4078
4024
|
host: null,
|
|
4079
4025
|
source: null,
|
|
4080
4026
|
mountStatus: null
|
|
4081
|
-
})),
|
|
4082
|
-
let t =
|
|
4027
|
+
})), Go = (e) => {
|
|
4028
|
+
let t = Wo(e);
|
|
4083
4029
|
return t.host ? t : null;
|
|
4084
4030
|
};
|
|
4085
|
-
function
|
|
4031
|
+
function Ko(e, t) {
|
|
4086
4032
|
let n = null;
|
|
4087
|
-
e.dispatchEvent(new CustomEvent(
|
|
4033
|
+
e.dispatchEvent(new CustomEvent(Ho, {
|
|
4088
4034
|
bubbles: !0,
|
|
4089
4035
|
composed: !0,
|
|
4090
4036
|
detail: {
|
|
@@ -4095,16 +4041,16 @@ function Co(e, t) {
|
|
|
4095
4041
|
}
|
|
4096
4042
|
}));
|
|
4097
4043
|
let r = () => t();
|
|
4098
|
-
e.addEventListener(
|
|
4044
|
+
e.addEventListener(Uo, r);
|
|
4099
4045
|
let i = !1;
|
|
4100
4046
|
return {
|
|
4101
4047
|
inst: n ? n.inst : null,
|
|
4102
4048
|
scope: n ? n.scope : null,
|
|
4103
4049
|
leave() {
|
|
4104
|
-
i || (i = !0, e.removeEventListener(
|
|
4050
|
+
i || (i = !0, e.removeEventListener(Uo, r), n && n.release());
|
|
4105
4051
|
}
|
|
4106
4052
|
};
|
|
4107
4053
|
}
|
|
4108
4054
|
// \0corn-default-tokens
|
|
4109
|
-
var wo = "/* cornfield's default design tokens, generated from explorer/tokens.css by components/scripts/tokens.mjs: do not edit.\n Every selector is :where(...), at zero specificity: any ordinary rule of yours (on :root, or on one element) overrides it. */\n\n:where(:root) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-blur: 16px;\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-text-on-accent: #fff;\n --corn-mockup-ground: #fff;\n --corn-accent: #4f46e5;\n --corn-accent-hover: #6265f1;\n --corn-accent-text: #98a1fa;\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --corn-font-display: var(--corn-font);\n --corn-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, \"Liberation Mono\", monospace;\n --corn-font-num: var(--corn-font);\n --corn-text-2xs: 10px;\n --corn-text-xs: 11px;\n --corn-text-sm: 12px;\n --corn-text-md: 13px;\n --corn-text-base: 14px;\n --corn-text-lg: 15px;\n --corn-text-xl: 20px;\n --corn-radius-xs: 3px;\n --corn-radius-sm: 6px;\n --corn-radius: 10px;\n --corn-radius-lg: 14px;\n --corn-radius-pill: 999px;\n --corn-border: 1px;\n --corn-border-strong: 2px;\n --corn-focus-width: 2px;\n --corn-focus-offset: 2px;\n --corn-space: 4px;\n --corn-space-1: var(--corn-space);\n --corn-space-2: 6px;\n --corn-space-3: 8px;\n --corn-space-4: 12px;\n --corn-space-5: 16px;\n --corn-space-6: 24px;\n --corn-control-height: 32px;\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-map-stroke: auto;\n --corn-map-stroke-width: 1.5px;\n --corn-map-label: auto;\n --corn-map-label-halo: auto;\n --corn-map-collision: var(--corn-warn);\n --corn-map-font: auto;\n --corn-map-edge-width: auto;\n --corn-map-glow: auto;\n --corn-map-label-min: auto;\n --corn-map-glyph: auto;\n --corn-map-grey: auto;\n --corn-map-grey-alpha: auto;\n --corn-map-added: auto;\n --corn-map-changed: auto;\n --corn-map-removed: auto;\n --corn-map-edit: auto;\n --corn-map-selected: auto;\n --corn-map-match: auto;\n --corn-map-lit: auto;\n --corn-map-edge-ownership: auto;\n --corn-map-edge-usage: auto;\n --corn-map-edge-flow: auto;\n --corn-map-edge-reads: auto;\n --corn-map-edge-writes: auto;\n --corn-map-edge-calls: auto;\n --corn-map-edge-triggers: auto;\n --corn-map-edge-delivers: auto;\n --corn-map-edge-runs-on: auto;\n --corn-map-edge-uses: auto;\n --corn-map-edge-extends: auto;\n --corn-map-node-root: auto;\n --corn-map-node-app: auto;\n --corn-map-node-page: auto;\n --corn-map-node-pkg: auto;\n --corn-map-node-core: auto;\n --corn-map-node-token: auto;\n --corn-map-node-atom: auto;\n --corn-map-node-molecule: auto;\n --corn-map-node-tool: auto;\n --corn-map-node-store: auto;\n --corn-map-node-table: auto;\n --corn-map-node-rom: auto;\n --corn-map-node-service: auto;\n --corn-map-node-external: auto;\n --corn-map-node-stack: auto;\n --corn-map-node-machine: auto;\n --corn-map-node-container: auto;\n --corn-map-node-persona: auto;\n --corn-map-node-device: auto;\n --corn-map-node-floor: auto;\n --corn-map-node-room: auto;\n --corn-map-group-app: auto;\n --corn-map-group-pkg: auto;\n --corn-map-group-page: auto;\n --corn-map-group-atom: auto;\n --corn-map-group-molecule: auto;\n --corn-map-group-token: auto;\n --corn-map-group-tool: auto;\n --corn-map-group-table: auto;\n --corn-map-group-rom: auto;\n --corn-map-group-service: auto;\n --corn-map-group-cloud: auto;\n --corn-map-group-web: auto;\n --corn-map-group-stack: auto;\n --corn-map-group-machine: auto;\n --corn-map-group-container: auto;\n --corn-map-group-device: auto;\n --corn-map-group-house: auto;\n --corn-map-group-persona: auto;\n}\n\n@media (prefers-color-scheme: light) {\n :where(:root:not([data-theme=\"dark\"])) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n }\n}\n\n:where(:root[data-theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n}\n\n@media (max-width: 767px) {\n :where(:root) {\n --corn-control-height: 44px;\n }\n}\n\n@media (max-width: 639px) {\n :where(:root) {\n --corn-panel-pad: var(--corn-space-5);\n }\n}\n\n:where(:root) {\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"light\" on an element: this mode's tokens, on the element itself */\n:where(corn-map[theme=\"light\"]),\n:where(corn-scope[theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"dark\" on an element: this mode's tokens, on the element itself */\n:where(corn-map[theme=\"dark\"]),\n:where(corn-scope[theme=\"dark\"]) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-accent-text: #98a1fa;\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n";
|
|
4110
|
-
export {
|
|
4055
|
+
var qo = "/* cornfield's default design tokens, generated from explorer/tokens.css by components/scripts/tokens.mjs: do not edit.\n Every selector is :where(...), at zero specificity: any ordinary rule of yours (on :root, or on one element) overrides it. */\n\n:where(:root) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-blur: 16px;\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-text-on-accent: #fff;\n --corn-mockup-ground: #fff;\n --corn-accent: #4f46e5;\n --corn-accent-hover: #6265f1;\n --corn-accent-text: #98a1fa;\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --corn-font-display: var(--corn-font);\n --corn-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, \"Liberation Mono\", monospace;\n --corn-font-num: var(--corn-font);\n --corn-text-2xs: 10px;\n --corn-text-xs: 11px;\n --corn-text-sm: 12px;\n --corn-text-md: 13px;\n --corn-text-base: 14px;\n --corn-text-lg: 15px;\n --corn-text-xl: 20px;\n --corn-radius-xs: 3px;\n --corn-radius-sm: 6px;\n --corn-radius: 10px;\n --corn-radius-lg: 14px;\n --corn-radius-pill: 999px;\n --corn-border: 1px;\n --corn-border-strong: 2px;\n --corn-focus-width: 2px;\n --corn-focus-offset: 2px;\n --corn-space: 4px;\n --corn-space-1: var(--corn-space);\n --corn-space-2: 6px;\n --corn-space-3: 8px;\n --corn-space-4: 12px;\n --corn-space-5: 16px;\n --corn-space-6: 24px;\n --corn-control-height: 32px;\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-map-stroke: auto;\n --corn-map-stroke-width: 1.5px;\n --corn-map-label: auto;\n --corn-map-label-halo: auto;\n --corn-map-collision: var(--corn-warn);\n --corn-map-font: auto;\n --corn-map-edge-width: auto;\n --corn-map-glow: auto;\n --corn-map-label-min: auto;\n --corn-map-glyph: auto;\n --corn-map-grey: auto;\n --corn-map-grey-alpha: auto;\n --corn-map-added: auto;\n --corn-map-changed: auto;\n --corn-map-removed: auto;\n --corn-map-edit: auto;\n --corn-map-selected: auto;\n --corn-map-match: auto;\n --corn-map-lit: auto;\n --corn-map-edge-ownership: auto;\n --corn-map-edge-usage: auto;\n --corn-map-edge-flow: auto;\n --corn-map-edge-reads: auto;\n --corn-map-edge-writes: auto;\n --corn-map-edge-calls: auto;\n --corn-map-edge-triggers: auto;\n --corn-map-edge-delivers: auto;\n --corn-map-edge-runs-on: auto;\n --corn-map-edge-uses: auto;\n --corn-map-edge-extends: auto;\n --corn-map-node-root: auto;\n --corn-map-node-app: auto;\n --corn-map-node-page: auto;\n --corn-map-node-pkg: auto;\n --corn-map-node-core: auto;\n --corn-map-node-token: auto;\n --corn-map-node-atom: auto;\n --corn-map-node-molecule: auto;\n --corn-map-node-tool: auto;\n --corn-map-node-store: auto;\n --corn-map-node-table: auto;\n --corn-map-node-rom: auto;\n --corn-map-node-service: auto;\n --corn-map-node-external: auto;\n --corn-map-node-stack: auto;\n --corn-map-node-machine: auto;\n --corn-map-node-container: auto;\n --corn-map-node-persona: auto;\n --corn-map-node-device: auto;\n --corn-map-node-floor: auto;\n --corn-map-node-room: auto;\n --corn-map-group-app: auto;\n --corn-map-group-pkg: auto;\n --corn-map-group-page: auto;\n --corn-map-group-atom: auto;\n --corn-map-group-molecule: auto;\n --corn-map-group-token: auto;\n --corn-map-group-tool: auto;\n --corn-map-group-table: auto;\n --corn-map-group-rom: auto;\n --corn-map-group-service: auto;\n --corn-map-group-cloud: auto;\n --corn-map-group-web: auto;\n --corn-map-group-stack: auto;\n --corn-map-group-machine: auto;\n --corn-map-group-container: auto;\n --corn-map-group-device: auto;\n --corn-map-group-house: auto;\n --corn-map-group-persona: auto;\n}\n\n@media (prefers-color-scheme: light) {\n :where(:root:not([data-theme=\"dark\"])) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n }\n}\n\n:where(:root[data-theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n}\n\n@media (max-width: 767px) {\n :where(:root) {\n --corn-control-height: 44px;\n }\n}\n\n@media (max-width: 639px) {\n :where(:root) {\n --corn-panel-pad: var(--corn-space-5);\n }\n}\n\n:where(:root) {\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"light\" on an element: this mode's tokens, on the element itself */\n:where(corn-map[theme=\"light\"]),\n:where(corn-review[theme=\"light\"]),\n:where(corn-scope[theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"dark\" on an element: this mode's tokens, on the element itself */\n:where(corn-map[theme=\"dark\"]),\n:where(corn-review[theme=\"dark\"]),\n:where(corn-scope[theme=\"dark\"]) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-accent-text: #98a1fa;\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n";
|
|
4056
|
+
export { Xr as $, ae as $t, Q as A, L as At, ta as B, at as Bt, ao as C, Tn as Ct, Qa as D, Mn as Dt, oo as E, En as Et, Ni as F, vt as Ft, jr as G, oe as Gt, kr as H, fe as Ht, Ii as I, xt as It, Sr as J, ne as Jt, wr as K, E as Kt, Qi as L, He as Lt, Oa as M, I as Mt, Ma as N, _t as Nt, za as O, sn as Ot, Aa as P, Mt as Pt, vi as Q, y as Qt, ia as R, pt as Rt, ro as S, jn as St, io as T, An as Tt, Tr as U, A as Ut, ua as V, ge as Vt, Ir as W, ce as Wt, G as X, O as Xt, Hr as Y, x as Yt, _i as Z, _ as Zt, ho as _, Xn as _t, Ko as a, m as an, Zr as at, lo as b, Sn as bt, Ro as c, d as cn, hr as ct, No as d, dr as dt, te as en, si as et, jo as f, pr as ft, ko as g, sr as gt, Oo as h, cr as ht, Wo as i, a as in, Rr as it, pa as j, jt, La as k, hn as kt, Mo as l, n as ln, ir as lt, To as m, lr as mt, Uo as n, k as nn, oi as nt, Go as o, g as on, mr as ot, $ as p, fr as pt, Cr as q, T as qt, Ho as r, o as rn, q as rt, Vo as s, p as sn, vr as st, qo as t, ee as tn, Kr as tt, Po as u, W as ut, mo as v, vn as vt, to as w, Dn as wt, eo as x, Ln as xt, fo as y, Cn as yt, fa as z, mt as zt };
|