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