@forgeax/view 0.5.0-dev.13472.92dbf4b81984 → 0.5.0-dev.13601.16969c83ee09
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 +25 -7
- package/dist/build-revision.json +1 -1
- package/dist/modules/backend.mjs +12 -12
- package/dist/modules/browser.mjs +16 -16
- package/dist/modules/chunks/{App-E3M52XTQ.mjs → App-4XQ5SNNT.mjs} +2 -2
- package/dist/modules/chunks/{chunk-3GIGTM7E.mjs → chunk-27XASYEH.mjs} +2 -2
- package/dist/modules/chunks/{chunk-UAGQZPAB.mjs → chunk-2Z5KEV6L.mjs} +2 -2
- package/dist/modules/chunks/{chunk-4NGODRIE.mjs → chunk-46UEGAXY.mjs} +4 -4
- package/dist/modules/chunks/{chunk-UZHTLAIZ.mjs → chunk-47RJSHLM.mjs} +2 -2
- package/dist/modules/chunks/{chunk-ACOMGSSB.mjs → chunk-5PHAXNFO.mjs} +2 -2
- package/dist/modules/chunks/{chunk-IXPBGENY.mjs → chunk-6I7RY73G.mjs} +3 -3
- package/dist/modules/chunks/{chunk-45ZU2HHR.mjs → chunk-B6QUJ33G.mjs} +27 -23
- package/dist/modules/chunks/chunk-B6QUJ33G.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-FKLYSAVN.mjs → chunk-CXOD7FW6.mjs} +7 -4
- package/dist/modules/chunks/chunk-CXOD7FW6.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-CRNEX7YH.mjs → chunk-D25SR5FS.mjs} +2 -2
- package/dist/modules/chunks/{chunk-CDO6LELS.mjs → chunk-D2RCKG7Q.mjs} +3 -3
- package/dist/modules/chunks/{chunk-L5EV6NEE.mjs → chunk-DWT3TA6M.mjs} +6 -6
- package/dist/modules/chunks/{chunk-MHE5EBU4.mjs → chunk-E3PJGTLI.mjs} +22 -14
- package/dist/modules/chunks/chunk-E3PJGTLI.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-3Q26HNFS.mjs → chunk-FICPCJKR.mjs} +2 -2
- package/dist/modules/chunks/{chunk-CWNB67UF.mjs → chunk-FMCHH5R4.mjs} +2 -2
- package/dist/modules/chunks/{chunk-MO5LILCP.mjs → chunk-HWZCLROY.mjs} +6 -2
- package/dist/modules/chunks/chunk-HWZCLROY.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-TTFLJHQZ.mjs → chunk-IJPWKKIU.mjs} +6 -6
- package/dist/modules/chunks/{chunk-TTFLJHQZ.mjs.map → chunk-IJPWKKIU.mjs.map} +1 -1
- package/dist/modules/chunks/{chunk-2VJPRNYB.mjs → chunk-IZAHIOFU.mjs} +4 -4
- package/dist/modules/chunks/{chunk-IBNFKPW4.mjs → chunk-JK7K7RG3.mjs} +2 -2
- package/dist/modules/chunks/{chunk-BGK4ZEQ5.mjs → chunk-KX2WU5Z6.mjs} +2 -2
- package/dist/modules/chunks/{chunk-TBZZ37VI.mjs → chunk-LZ57Y73Z.mjs} +4 -4
- package/dist/modules/chunks/{chunk-M5X56JWH.mjs → chunk-PW5CE2Y6.mjs} +3 -3
- package/dist/modules/chunks/{chunk-OHVTNEQ2.mjs → chunk-PZIAKZJC.mjs} +2 -2
- package/dist/modules/chunks/{chunk-PG4AJFDC.mjs → chunk-RJVOH7G2.mjs} +12 -12
- package/dist/modules/chunks/{chunk-N2GEQFFK.mjs → chunk-U5J7OTEB.mjs} +2 -2
- package/dist/modules/chunks/{chunk-N2GEQFFK.mjs.map → chunk-U5J7OTEB.mjs.map} +2 -2
- package/dist/modules/chunks/{chunk-JZ3V27HQ.mjs → chunk-U64FRQKP.mjs} +3 -3
- package/dist/modules/chunks/{chunk-W46L4HSP.mjs → chunk-U6UMATPV.mjs} +3 -3
- package/dist/modules/chunks/{chunk-7ICJKZYO.mjs → chunk-VKNIYV2W.mjs} +26 -21
- package/dist/modules/chunks/chunk-VKNIYV2W.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-7R6CGQDU.mjs → chunk-VW2ZF3P4.mjs} +4 -4
- package/dist/modules/chunks/{chunk-AIIYGGGC.mjs → chunk-X4NNZ5X6.mjs} +2 -2
- package/dist/modules/chunks/{chunk-5AKXNYKX.mjs → chunk-XE6ITXHT.mjs} +2 -2
- package/dist/modules/chunks/{chunk-WHVPE2P6.mjs → chunk-XMP4THLF.mjs} +4 -4
- package/dist/modules/chunks/{chunk-WHVPE2P6.mjs.map → chunk-XMP4THLF.mjs.map} +1 -1
- package/dist/modules/chunks/{chunk-BCTPTLA6.mjs → chunk-XQYF2P6M.mjs} +3 -3
- package/dist/modules/chunks/{chunk-KSF2EQTE.mjs → chunk-YCMZAYBM.mjs} +2 -2
- package/dist/modules/chunks/chunk-YCMZAYBM.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-6WCG6WPC.mjs → chunk-YNHEYXDG.mjs} +3 -3
- package/dist/modules/chunks/{chunk-7MJUWNVI.mjs → chunk-ZGOGO7SS.mjs} +1 -1
- package/dist/modules/chunks/{chunk-VXSD4FK5.mjs → chunk-ZHO2G4JR.mjs} +3 -3
- package/dist/modules/cli-contributions.mjs +3 -3
- package/dist/modules/cli.mjs +2 -2
- package/dist/modules/command-executor.mjs +2 -2
- package/dist/modules/embedded.mjs +100 -21
- package/dist/modules/embedded.mjs.map +3 -3
- package/dist/modules/frontend-root.mjs +15 -15
- package/dist/modules/index.mjs +26 -26
- package/dist/modules/plugin.mjs +14 -14
- package/dist/modules/plugins/asset/frontend.mjs +4 -4
- package/dist/modules/plugins/asset/identity.mjs +3 -3
- package/dist/modules/plugins/asset/ui.mjs +2 -2
- package/dist/modules/plugins/content-browser/ui.mjs +2 -2
- package/dist/modules/plugins/inspector/ui.mjs +2 -2
- package/dist/modules/plugins/material/frontend.mjs +4 -4
- package/dist/modules/plugins/material/identity.mjs +3 -3
- package/dist/modules/plugins/material/ui.mjs +5 -5
- package/dist/modules/plugins/mesh/frontend.mjs +4 -4
- package/dist/modules/plugins/mesh/identity.mjs +3 -3
- package/dist/modules/plugins/mesh/ui.mjs +5 -5
- package/dist/modules/plugins/plugins/ui/panel.mjs +2 -2
- package/dist/modules/plugins/plugins/ui.mjs +3 -3
- package/dist/modules/plugins/scene-tree/ui.mjs +2 -2
- package/dist/modules/plugins/texture/frontend.mjs +4 -4
- package/dist/modules/plugins/texture/identity.mjs +3 -3
- package/dist/modules/plugins/texture/ui.mjs +5 -5
- package/dist/modules/plugins/viewport/frontend.mjs +1 -1
- package/dist/modules/product.mjs +14 -14
- package/dist/modules/shell/frontend.mjs +1 -1
- package/dist/modules/start-cli.mjs +1 -1
- package/dist/modules/start.mjs +1 -1
- package/dist/modules/viewer/catalog/backend.mjs +10 -10
- package/dist/modules/viewer/catalog/frontend.mjs +14 -14
- package/dist/modules/viewer/catalog/shared.mjs +7 -7
- package/dist/modules/viewer/catalog.mjs +17 -17
- package/dist/modules/viewer-host/frontend.mjs +16 -16
- package/dist/modules/viewer.mjs +17 -17
- package/dist/modules/workspace/backend.mjs +2 -2
- package/dist/modules/workspace/broker.mjs +1 -1
- package/dist/modules/workspace/preview-surface.mjs +1 -1
- package/dist/modules/workspace/resident.mjs +1 -1
- package/dist/modules/workspace/resource-page.mjs +2 -2
- package/dist/viewer/assets/{embedded-Dv06jc6s.js → embedded-Ch4NawY-.js} +2 -2
- package/dist/viewer/assets/{embedded-Dv06jc6s.js.map → embedded-Ch4NawY-.js.map} +1 -1
- package/dist/viewer/assets/main-DUQJ1NlR.js +22 -0
- package/dist/viewer/assets/main-DUQJ1NlR.js.map +1 -0
- package/dist/viewer/assets/{panels-lazy-DjINjNT-.js → panels-lazy-DbOAvYN1.js} +3 -3
- package/dist/viewer/assets/panels-lazy-DbOAvYN1.js.map +1 -0
- package/dist/viewer/assets/panels-ui-DICIsCag.js +12 -0
- package/dist/viewer/assets/panels-ui-DICIsCag.js.map +1 -0
- package/dist/viewer/assets/style-gOtSMZif.css +2 -0
- package/dist/viewer/index.html +4 -4
- package/dist/viewer/panels.js +1 -1
- package/package.json +3 -4
- package/scripts/browser-proof-workload.mjs +0 -1
- package/scripts/verify-runtime-content-engine.mjs +12 -6
- package/dist/modules/chunks/chunk-45ZU2HHR.mjs.map +0 -7
- package/dist/modules/chunks/chunk-7ICJKZYO.mjs.map +0 -7
- package/dist/modules/chunks/chunk-FKLYSAVN.mjs.map +0 -7
- package/dist/modules/chunks/chunk-KSF2EQTE.mjs.map +0 -7
- package/dist/modules/chunks/chunk-MHE5EBU4.mjs.map +0 -7
- package/dist/modules/chunks/chunk-MO5LILCP.mjs.map +0 -7
- package/dist/viewer/assets/main-De95aP3K.js +0 -22
- package/dist/viewer/assets/main-De95aP3K.js.map +0 -1
- package/dist/viewer/assets/panels-lazy-DjINjNT-.js.map +0 -1
- package/dist/viewer/assets/panels-ui-DEJVGEKx.js +0 -12
- package/dist/viewer/assets/panels-ui-DEJVGEKx.js.map +0 -1
- package/dist/viewer/assets/style-BM0losky.css +0 -2
- package/scripts/verify-game3d-workspace.mjs +0 -318
- /package/dist/modules/chunks/{App-E3M52XTQ.mjs.map → App-4XQ5SNNT.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-3GIGTM7E.mjs.map → chunk-27XASYEH.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-UAGQZPAB.mjs.map → chunk-2Z5KEV6L.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-4NGODRIE.mjs.map → chunk-46UEGAXY.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-UZHTLAIZ.mjs.map → chunk-47RJSHLM.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-ACOMGSSB.mjs.map → chunk-5PHAXNFO.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-IXPBGENY.mjs.map → chunk-6I7RY73G.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-CRNEX7YH.mjs.map → chunk-D25SR5FS.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-CDO6LELS.mjs.map → chunk-D2RCKG7Q.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-L5EV6NEE.mjs.map → chunk-DWT3TA6M.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-3Q26HNFS.mjs.map → chunk-FICPCJKR.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-CWNB67UF.mjs.map → chunk-FMCHH5R4.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-2VJPRNYB.mjs.map → chunk-IZAHIOFU.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-IBNFKPW4.mjs.map → chunk-JK7K7RG3.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-BGK4ZEQ5.mjs.map → chunk-KX2WU5Z6.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-TBZZ37VI.mjs.map → chunk-LZ57Y73Z.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-M5X56JWH.mjs.map → chunk-PW5CE2Y6.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-OHVTNEQ2.mjs.map → chunk-PZIAKZJC.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-PG4AJFDC.mjs.map → chunk-RJVOH7G2.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-JZ3V27HQ.mjs.map → chunk-U64FRQKP.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-W46L4HSP.mjs.map → chunk-U6UMATPV.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-7R6CGQDU.mjs.map → chunk-VW2ZF3P4.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-AIIYGGGC.mjs.map → chunk-X4NNZ5X6.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-5AKXNYKX.mjs.map → chunk-XE6ITXHT.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-BCTPTLA6.mjs.map → chunk-XQYF2P6M.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-6WCG6WPC.mjs.map → chunk-YNHEYXDG.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-7MJUWNVI.mjs.map → chunk-ZGOGO7SS.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-VXSD4FK5.mjs.map → chunk-ZHO2G4JR.mjs.map} +0 -0
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import {
|
|
2
2
|
mountAssetPropertiesPanel
|
|
3
|
-
} from "./chunks/chunk-
|
|
3
|
+
} from "./chunks/chunk-2Z5KEV6L.mjs";
|
|
4
4
|
import {
|
|
5
5
|
mountTexturePreviewPanel,
|
|
6
6
|
mountTexturePropertiesPanel
|
|
7
|
-
} from "./chunks/chunk-
|
|
7
|
+
} from "./chunks/chunk-VW2ZF3P4.mjs";
|
|
8
8
|
import "./chunks/chunk-LJWOHJ5J.mjs";
|
|
9
9
|
import "./chunks/chunk-R6BDHFU3.mjs";
|
|
10
10
|
import {
|
|
11
11
|
mountMaterialPanel,
|
|
12
12
|
mountMaterialPreviewPanel,
|
|
13
13
|
mountMaterialPropertiesPanel
|
|
14
|
-
} from "./chunks/chunk-
|
|
14
|
+
} from "./chunks/chunk-IZAHIOFU.mjs";
|
|
15
15
|
import {
|
|
16
16
|
mountMeshPreviewPanel,
|
|
17
17
|
mountMeshPropertiesPanel
|
|
18
|
-
} from "./chunks/chunk-
|
|
18
|
+
} from "./chunks/chunk-46UEGAXY.mjs";
|
|
19
19
|
import "./chunks/chunk-KZUXFEY4.mjs";
|
|
20
20
|
import {
|
|
21
21
|
mountSceneTreePanel
|
|
22
|
-
} from "./chunks/chunk-
|
|
22
|
+
} from "./chunks/chunk-FICPCJKR.mjs";
|
|
23
23
|
import "./chunks/chunk-NLPIM3SO.mjs";
|
|
24
24
|
import "./chunks/chunk-LPWEUDT5.mjs";
|
|
25
25
|
import "./chunks/chunk-DVMSDYK7.mjs";
|
|
26
26
|
import {
|
|
27
27
|
mountPluginsPanel
|
|
28
|
-
} from "./chunks/chunk-
|
|
29
|
-
import "./chunks/chunk-
|
|
28
|
+
} from "./chunks/chunk-PW5CE2Y6.mjs";
|
|
29
|
+
import "./chunks/chunk-5PHAXNFO.mjs";
|
|
30
30
|
import {
|
|
31
31
|
mountInspectorPanel
|
|
32
|
-
} from "./chunks/chunk-
|
|
32
|
+
} from "./chunks/chunk-47RJSHLM.mjs";
|
|
33
33
|
import "./chunks/chunk-YHX6NYXX.mjs";
|
|
34
34
|
import "./chunks/chunk-C7KUVPDA.mjs";
|
|
35
35
|
import {
|
|
36
36
|
mountContentBrowserPanel
|
|
37
|
-
} from "./chunks/chunk-
|
|
37
|
+
} from "./chunks/chunk-VKNIYV2W.mjs";
|
|
38
38
|
import "./chunks/chunk-B65OFRMW.mjs";
|
|
39
39
|
import {
|
|
40
40
|
Button,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
showErrorNotice,
|
|
55
55
|
themeNames,
|
|
56
56
|
useTheme
|
|
57
|
-
} from "./chunks/chunk-
|
|
57
|
+
} from "./chunks/chunk-CXOD7FW6.mjs";
|
|
58
58
|
import "./chunks/chunk-LV4USO43.mjs";
|
|
59
59
|
import "./chunks/chunk-ABRO535N.mjs";
|
|
60
60
|
import "./chunks/chunk-GRSJED6K.mjs";
|
|
@@ -84,20 +84,20 @@ import {
|
|
|
84
84
|
createViewSlotRegistry
|
|
85
85
|
} from "./chunks/chunk-GQOXQ4AV.mjs";
|
|
86
86
|
import "./chunks/chunk-INTTYJVW.mjs";
|
|
87
|
-
import "./chunks/chunk-
|
|
88
|
-
import "./chunks/chunk-
|
|
87
|
+
import "./chunks/chunk-X4NNZ5X6.mjs";
|
|
88
|
+
import "./chunks/chunk-FMCHH5R4.mjs";
|
|
89
89
|
import {
|
|
90
90
|
PANEL_LAYOUT as PANEL_LAYOUT3
|
|
91
91
|
} from "./chunks/chunk-STQPRNEO.mjs";
|
|
92
|
-
import "./chunks/chunk-
|
|
92
|
+
import "./chunks/chunk-PZIAKZJC.mjs";
|
|
93
93
|
import {
|
|
94
94
|
PANEL_LAYOUT
|
|
95
95
|
} from "./chunks/chunk-QUFVUMSY.mjs";
|
|
96
96
|
import {
|
|
97
97
|
PANEL_LAYOUT as PANEL_LAYOUT2
|
|
98
98
|
} from "./chunks/chunk-HRKW766Y.mjs";
|
|
99
|
-
import "./chunks/chunk-
|
|
100
|
-
import "./chunks/chunk-
|
|
99
|
+
import "./chunks/chunk-KX2WU5Z6.mjs";
|
|
100
|
+
import "./chunks/chunk-B6QUJ33G.mjs";
|
|
101
101
|
import "./chunks/chunk-PJFFCRRD.mjs";
|
|
102
102
|
import "./chunks/chunk-IM3H4F4X.mjs";
|
|
103
103
|
import {
|
|
@@ -17662,6 +17662,13 @@ var ANIM_CLASS = "fx-edge-drawer-animating";
|
|
|
17662
17662
|
var ENSURED_EDGES = ["left", "right", "bottom"];
|
|
17663
17663
|
var PORTAL_HOST_CLASS = "fx-edge-drawer-portal-host";
|
|
17664
17664
|
var FLYOUT_CLASS = "fx-edge-drawer-flyout";
|
|
17665
|
+
var BOTTOM_SPAN_CLASS = "fx-bottom-edge-spanning";
|
|
17666
|
+
var BOTTOM_SPAN_VARS = [
|
|
17667
|
+
"--fx-bottom-edge-left",
|
|
17668
|
+
"--fx-bottom-edge-bottom",
|
|
17669
|
+
"--fx-bottom-edge-width",
|
|
17670
|
+
"--fx-bottom-edge-height"
|
|
17671
|
+
];
|
|
17665
17672
|
var DRAWER_VAR_NAMES = [
|
|
17666
17673
|
"--fx-edge-drawer-width",
|
|
17667
17674
|
"--fx-edge-drawer-height",
|
|
@@ -17989,6 +17996,39 @@ function installEdgeDrawer(api, root) {
|
|
|
17989
17996
|
}
|
|
17990
17997
|
}
|
|
17991
17998
|
};
|
|
17999
|
+
let bottomSpanSlot = null;
|
|
18000
|
+
const clearBottomSpan = () => {
|
|
18001
|
+
bottomSpanSlot?.classList.remove(BOTTOM_SPAN_CLASS);
|
|
18002
|
+
bottomSpanSlot = null;
|
|
18003
|
+
for (const name of BOTTOM_SPAN_VARS) root.style.removeProperty(name);
|
|
18004
|
+
};
|
|
18005
|
+
const syncBottomSpan = () => {
|
|
18006
|
+
const group = edgeGroups(api).find((candidate) => edgeOf(candidate) === "bottom");
|
|
18007
|
+
const slot = group?.element.parentElement;
|
|
18008
|
+
const host = root.getBoundingClientRect();
|
|
18009
|
+
if (!group || !(slot instanceof HTMLElement) || !group.panels.length || host.width <= 0) {
|
|
18010
|
+
clearBottomSpan();
|
|
18011
|
+
return;
|
|
18012
|
+
}
|
|
18013
|
+
if (bottomSpanSlot !== slot) {
|
|
18014
|
+
bottomSpanSlot?.classList.remove(BOTTOM_SPAN_CLASS);
|
|
18015
|
+
bottomSpanSlot = slot;
|
|
18016
|
+
}
|
|
18017
|
+
const strip = slot.getBoundingClientRect();
|
|
18018
|
+
root.style.setProperty("--fx-bottom-edge-left", `${host.left}px`);
|
|
18019
|
+
root.style.setProperty("--fx-bottom-edge-bottom", `${window.innerHeight - host.bottom}px`);
|
|
18020
|
+
root.style.setProperty("--fx-bottom-edge-width", `${host.width}px`);
|
|
18021
|
+
root.style.setProperty("--fx-bottom-edge-height", `${strip.height}px`);
|
|
18022
|
+
slot.classList.add(BOTTOM_SPAN_CLASS);
|
|
18023
|
+
};
|
|
18024
|
+
let bottomSpanFrame = null;
|
|
18025
|
+
const scheduleBottomSpan = () => {
|
|
18026
|
+
if (bottomSpanFrame !== null) cancelAnimationFrame(bottomSpanFrame);
|
|
18027
|
+
bottomSpanFrame = requestAnimationFrame(() => {
|
|
18028
|
+
bottomSpanFrame = null;
|
|
18029
|
+
syncBottomSpan();
|
|
18030
|
+
});
|
|
18031
|
+
};
|
|
17992
18032
|
const onClickCapture = (event) => {
|
|
17993
18033
|
const target = event.target;
|
|
17994
18034
|
const tabEl = target?.closest(".dv-tab");
|
|
@@ -18089,12 +18129,14 @@ function installEdgeDrawer(api, root) {
|
|
|
18089
18129
|
const onDragEnd = () => clearEdgeDropPreview(api);
|
|
18090
18130
|
ensureEdgeSlots();
|
|
18091
18131
|
syncEmptyEdges();
|
|
18132
|
+
syncBottomSpan();
|
|
18092
18133
|
root.addEventListener("click", onClickCapture, true);
|
|
18093
18134
|
document.addEventListener("pointerdown", onOutside, true);
|
|
18094
18135
|
document.addEventListener("dragend", onDragEnd, true);
|
|
18095
18136
|
document.addEventListener("drop", onDragEnd, true);
|
|
18096
18137
|
const layoutSub = api.onDidLayoutChange?.(() => {
|
|
18097
18138
|
syncEmptyEdges();
|
|
18139
|
+
scheduleBottomSpan();
|
|
18098
18140
|
if (openGroup) {
|
|
18099
18141
|
positionDrawer(openGroup);
|
|
18100
18142
|
if (portaledFlyout && drawerPortalHost) {
|
|
@@ -18106,7 +18148,12 @@ function installEdgeDrawer(api, root) {
|
|
|
18106
18148
|
}
|
|
18107
18149
|
}
|
|
18108
18150
|
});
|
|
18109
|
-
const panelSub = api.onDidRemovePanel?.(() =>
|
|
18151
|
+
const panelSub = api.onDidRemovePanel?.(() => {
|
|
18152
|
+
syncEmptyEdges();
|
|
18153
|
+
scheduleBottomSpan();
|
|
18154
|
+
});
|
|
18155
|
+
const hostResize = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(scheduleBottomSpan);
|
|
18156
|
+
hostResize?.observe(root);
|
|
18110
18157
|
return {
|
|
18111
18158
|
close,
|
|
18112
18159
|
forceClose,
|
|
@@ -18116,6 +18163,7 @@ function installEdgeDrawer(api, root) {
|
|
|
18116
18163
|
pinPanel,
|
|
18117
18164
|
unpinPanel,
|
|
18118
18165
|
onWillDrop,
|
|
18166
|
+
refreshBottomSpan: scheduleBottomSpan,
|
|
18119
18167
|
dispose: () => {
|
|
18120
18168
|
gripResize.dispose();
|
|
18121
18169
|
forceClose();
|
|
@@ -18132,6 +18180,9 @@ function installEdgeDrawer(api, root) {
|
|
|
18132
18180
|
document.removeEventListener("drop", onDragEnd, true);
|
|
18133
18181
|
layoutSub?.dispose?.();
|
|
18134
18182
|
panelSub?.dispose?.();
|
|
18183
|
+
hostResize?.disconnect();
|
|
18184
|
+
if (bottomSpanFrame !== null) cancelAnimationFrame(bottomSpanFrame);
|
|
18185
|
+
clearBottomSpan();
|
|
18135
18186
|
}
|
|
18136
18187
|
};
|
|
18137
18188
|
}
|
|
@@ -19828,6 +19879,7 @@ function WorkspaceProjectRecovery({ client, required }) {
|
|
|
19828
19879
|
Dialog,
|
|
19829
19880
|
{
|
|
19830
19881
|
open: true,
|
|
19882
|
+
modal: false,
|
|
19831
19883
|
dismissible: false,
|
|
19832
19884
|
className: "fx-view-project-open",
|
|
19833
19885
|
title: t2("view.projectOpen.title"),
|
|
@@ -19974,6 +20026,7 @@ function pageIdFor(pageType) {
|
|
|
19974
20026
|
function useViewPages(pageTypes, titleFor) {
|
|
19975
20027
|
const [pages, setPages] = useState4([]);
|
|
19976
20028
|
const [activePageId, setActivePageId] = useState4(null);
|
|
20029
|
+
const explicitlySelected = useRef4(false);
|
|
19977
20030
|
const typesById = useMemo3(
|
|
19978
20031
|
() => new Map(pageTypes.map((pageType) => [pageType.typeId, pageType])),
|
|
19979
20032
|
[pageTypes]
|
|
@@ -19986,22 +20039,33 @@ function useViewPages(pageTypes, titleFor) {
|
|
|
19986
20039
|
});
|
|
19987
20040
|
for (const pageType of pageTypes) {
|
|
19988
20041
|
if (pageType.initial && !next.some((page) => page.typeId === pageType.typeId)) {
|
|
19989
|
-
|
|
20042
|
+
const page = {
|
|
19990
20043
|
id: pageIdFor(pageType),
|
|
19991
20044
|
title: titleFor(pageType),
|
|
19992
20045
|
typeId: pageType.typeId,
|
|
19993
20046
|
closable: pageType.closable
|
|
20047
|
+
};
|
|
20048
|
+
const index = next.findIndex((existing) => {
|
|
20049
|
+
const type = typesById.get(existing.typeId);
|
|
20050
|
+
return type && (type.order > pageType.order || type.order === pageType.order && type.typeId > pageType.typeId);
|
|
19994
20051
|
});
|
|
20052
|
+
next.splice(index < 0 ? next.length : index, 0, page);
|
|
19995
20053
|
}
|
|
19996
20054
|
}
|
|
19997
20055
|
return next;
|
|
19998
20056
|
});
|
|
19999
20057
|
}, [pageTypes, titleFor, typesById]);
|
|
20000
20058
|
useEffect5(() => {
|
|
20059
|
+
const scene = pages.find((page) => page.typeId === VIEW_PAGE_TYPES.editor);
|
|
20060
|
+
if (scene && !explicitlySelected.current && activePageId !== scene.id) {
|
|
20061
|
+
setActivePageId(scene.id);
|
|
20062
|
+
return;
|
|
20063
|
+
}
|
|
20001
20064
|
if (pages.some((page) => page.id === activePageId)) return;
|
|
20002
20065
|
setActivePageId(pages[0]?.id ?? null);
|
|
20003
20066
|
}, [activePageId, pages]);
|
|
20004
20067
|
const selectPage = useCallback4((pageId) => {
|
|
20068
|
+
explicitlySelected.current = true;
|
|
20005
20069
|
setActivePageId(pageId);
|
|
20006
20070
|
}, []);
|
|
20007
20071
|
const closePage = useCallback4(
|
|
@@ -20019,6 +20083,7 @@ function useViewPages(pageTypes, titleFor) {
|
|
|
20019
20083
|
[activePageId]
|
|
20020
20084
|
);
|
|
20021
20085
|
const closeOthers = useCallback4((pageId) => {
|
|
20086
|
+
explicitlySelected.current = true;
|
|
20022
20087
|
setPages((current) => current.filter((page) => page.id === pageId || page.closable === false));
|
|
20023
20088
|
setActivePageId(pageId);
|
|
20024
20089
|
}, []);
|
|
@@ -20050,6 +20115,7 @@ function useViewPages(pageTypes, titleFor) {
|
|
|
20050
20115
|
singleton: pageType?.singleton === true
|
|
20051
20116
|
}, { level: plan.action === "none" ? "warn" : "info" });
|
|
20052
20117
|
if (plan.action === "focus") {
|
|
20118
|
+
explicitlySelected.current = true;
|
|
20053
20119
|
setActivePageId(plan.pageId);
|
|
20054
20120
|
return;
|
|
20055
20121
|
}
|
|
@@ -20059,6 +20125,7 @@ function useViewPages(pageTypes, titleFor) {
|
|
|
20059
20125
|
...current,
|
|
20060
20126
|
{ id, title: titleFor(pageType), typeId, closable: pageType.closable }
|
|
20061
20127
|
]);
|
|
20128
|
+
explicitlySelected.current = true;
|
|
20062
20129
|
setActivePageId(id);
|
|
20063
20130
|
}, [pages, titleFor, typesById]);
|
|
20064
20131
|
const activePage = useMemo3(
|
|
@@ -20337,6 +20404,7 @@ function DockPageWorkbench({
|
|
|
20337
20404
|
const availableWidth = dockExtent.width > 0 ? dockExtent.width : dockHostRef.current?.clientWidth ?? workbenchRef.current?.clientWidth ?? 0;
|
|
20338
20405
|
const availableHeight = dockExtent.height > 0 ? dockExtent.height : dockHostRef.current?.clientHeight ?? workbenchRef.current?.clientHeight ?? 0;
|
|
20339
20406
|
if (availableWidth > 0 && availableHeight > 0) api.layout(availableWidth, availableHeight);
|
|
20407
|
+
const hadContentBrowser = Boolean(api.getPanel("content-browser"));
|
|
20340
20408
|
reconcileDockPanels(api, claims, {
|
|
20341
20409
|
titleFor: titleForClaim,
|
|
20342
20410
|
attach: (id) => {
|
|
@@ -20353,6 +20421,17 @@ function DockPageWorkbench({
|
|
|
20353
20421
|
closeEdgeDrawer: () => edgeDrawerRef.current?.forceClose()
|
|
20354
20422
|
});
|
|
20355
20423
|
}
|
|
20424
|
+
if (!hadContentBrowser) {
|
|
20425
|
+
const panel = api.getPanel("content-browser");
|
|
20426
|
+
const bottom = api.groups.find((group) => group.api.location.type === "edge" && group.api.location.position === "bottom");
|
|
20427
|
+
if (panel && bottom) {
|
|
20428
|
+
panel.api.moveTo({ group: bottom, position: "center" });
|
|
20429
|
+
bottom.element.classList.remove("fx-edge-empty");
|
|
20430
|
+
api.setEdgeGroupVisible?.("bottom", true);
|
|
20431
|
+
bottom.api.collapse?.();
|
|
20432
|
+
edgeDrawerRef.current?.refreshBottomSpan();
|
|
20433
|
+
}
|
|
20434
|
+
}
|
|
20356
20435
|
for (const claim of claims) {
|
|
20357
20436
|
if (claim.dockTitleHidden !== true) continue;
|
|
20358
20437
|
const panel = api.getPanel(claim.id);
|
|
@@ -20745,10 +20824,10 @@ __export(panels_exports, {
|
|
|
20745
20824
|
});
|
|
20746
20825
|
|
|
20747
20826
|
// packages/viewer/src/styles.css
|
|
20748
|
-
var css3 = '/* packages/viewer/src/styles.css */\n:root {\n font-family: var(--fx-type-ui-font-family);\n font-size: var(--fx-type-ui-font-size);\n line-height: var(--fx-type-ui-line-height);\n}\nhtml,\nbody {\n margin: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background: var(--fx-color-surface-canvas);\n color: var(--fx-color-text-primary);\n}\n#root {\n position: relative;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n.fx-view-root.fx-ui {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n --fx-view-shell-chrome-height: calc(var(--fx-component-editor-row-height) + var(--fx-component-navigation-row-height));\n --fx-view-header-band-height: var(--fx-component-editor-row-height);\n --fx-view-unconfigured-offset: calc(var(--fx-ref-space-48) * 2 + var(--fx-ref-space-8) - var(--fx-ref-space-6));\n}\n.fx-view-header__recovery-feedback {\n width: 100%;\n min-width: 0;\n padding: 0 var(--fx-ref-space-10);\n align-items: center;\n border-radius: var(--fx-radius-control);\n}\n.fx-view-header__recovery-feedback .fx-feedback__body {\n display: flex;\n flex-direction: column;\n gap: 0;\n min-width: 0;\n}\n.fx-view-header__recovery-feedback .fx-feedback__body strong {\n font: var(--fx-type-compact-font-weight) var(--fx-type-compact-font-size) / var(--fx-type-compact-line-height) var(--fx-type-compact-font-family);\n}\n.fx-view-header__connection-status {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n flex-direction: column;\n align-items: flex-end;\n}\n.fx-view-connection-state {\n position: absolute;\n top: var(--fx-view-shell-chrome-height);\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 40;\n display: grid;\n place-items: center;\n overflow: auto;\n padding: var(--fx-space-section);\n background: var(--fx-color-surface-canvas);\n box-sizing: border-box;\n}\n.fx-view-connection-state > .fx-empty {\n width: min(100%, calc(var(--fx-component-panel-chat-min-width) + var(--fx-ref-space-48) + var(--fx-ref-space-32)));\n min-height: calc(var(--fx-ref-space-48) * 5 + var(--fx-ref-space-16) + var(--fx-ref-space-4));\n border: var(--fx-border-width) solid var(--fx-color-border-subtle);\n border-radius: var(--fx-radius-card);\n background: var(--fx-color-surface-sidebar);\n box-shadow: var(--fx-shadow-card);\n box-sizing: border-box;\n}\n.fx-view-connection-state__icon {\n width: var(--fx-component-control-height-default);\n height: var(--fx-component-control-height-default);\n color: var(--fx-color-status-error-fg);\n stroke-width: 1.5;\n}\n.fx-view-connection-state__description {\n display: grid;\n gap: var(--fx-ref-space-8);\n}\n.fx-view-connection-state__command {\n padding: var(--fx-border-width) var(--fx-ref-space-4);\n border-radius: var(--fx-ref-radius-4);\n background: var(--fx-color-surface-inset);\n color: var(--fx-color-text-primary);\n font-family: var(--fx-type-code-font-family);\n font-size: inherit;\n white-space: nowrap;\n}\n.fx-view-connection-state__reason {\n display: block;\n max-width: var(--fx-component-conversation-max-width);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border-radius: var(--fx-ref-radius-4);\n background: var(--fx-color-surface-inset);\n color: var(--fx-color-text-muted);\n font-size: var(--fx-ref-font-size-12);\n overflow-wrap: anywhere;\n}\n.fx-view-root > .fx-view-app {\n flex: 1 1 auto;\n min-height: 0;\n}\n.fx-view-app {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.fx-view-app > .fx-page-tab-strip {\n flex: 0 0 auto;\n}\n.fx-view-header {\n position: relative;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex: 0 0 var(--fx-view-header-band-height);\n height: var(--fx-view-header-band-height);\n padding: 0 var(--fx-ref-space-12);\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n background: var(--fx-color-surface-sidebar);\n box-sizing: border-box;\n user-select: none;\n}\n.fx-view-brand {\n display: flex;\n align-items: center;\n gap: var(--fx-ref-space-8);\n min-width: calc(var(--fx-component-panel-config-min-width) - var(--fx-ref-space-48) - var(--fx-ref-space-8));\n color: var(--fx-color-text-primary);\n}\n.fx-view-brand strong {\n font-weight: var(--fx-ref-font-weight-600);\n}\n.fx-view-header__status-slot {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--fx-component-control-height-compact);\n height: var(--fx-component-control-height-compact);\n}\n.fx-view-header__status-dot {\n width: var(--fx-ref-space-6);\n height: var(--fx-ref-space-6);\n border-radius: var(--fx-radius-pill);\n background: var(--fx-color-status-success-fg);\n}\n.fx-view-header__status-dot--connected {\n background: var(--fx-color-status-success-fg);\n}\n.fx-view-header__status-dot--connecting {\n background: var(--fx-color-status-warning-fg);\n animation: fx-view-host-status-pulse 1.4s ease-in-out infinite;\n}\n.fx-view-header__status-dot--failed {\n background: var(--fx-color-status-error-fg);\n}\n@keyframes fx-view-host-status-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.45;\n }\n}\n.fx-view-header__status-slot:focus-visible {\n outline: var(--fx-border-width) solid var(--fx-color-border-focus);\n outline-offset: var(--fx-ref-space-2);\n border-radius: var(--fx-radius-control);\n}\n.fx-view-unconfigured {\n position: absolute;\n right: var(--fx-view-unconfigured-offset);\n padding: var(--fx-ref-space-2) var(--fx-ref-space-6);\n border: var(--fx-border-width) solid var(--fx-color-status-warning-fg);\n border-radius: var(--fx-ref-radius-4);\n background: var(--fx-color-status-warning-bg);\n color: var(--fx-color-status-warning-fg);\n font-family: var(--fx-type-code-font-family);\n font-size: var(--fx-ref-font-size-12);\n line-height: var(--fx-type-caption-line-height);\n letter-spacing: var(--fx-type-caption-letter-spacing);\n}\n.fx-view-header__prefs {\n display: flex;\n align-items: center;\n gap: var(--fx-ref-space-4);\n}\n.fx-locale-trigger {\n min-width: var(--fx-ref-space-16);\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size)/ var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n letter-spacing: 0.04em;\n}\n.fx-view-main-col {\n flex: 1;\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n.fx-view-project-restoring {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--fx-ref-space-4);\n padding: var(--fx-ref-space-8);\n text-align: center;\n}\n.fx-view-workspace-row {\n position: absolute;\n inset: 0;\n display: flex;\n min-height: 0;\n width: 100%;\n overflow: hidden;\n background: var(--fx-color-surface-canvas);\n visibility: hidden;\n pointer-events: none;\n}\n.fx-view-workspace-row.is-active {\n visibility: visible;\n pointer-events: auto;\n}\n.fx-view-workspace-row[hidden] {\n display: none;\n}\n.fx-view-page-surface {\n flex: 1;\n display: grid;\n align-content: start;\n gap: var(--fx-ref-space-8);\n padding: var(--fx-space-section);\n min-height: 0;\n overflow: auto;\n}\n.fx-view-workbench {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n overflow: hidden;\n}\n.fx-view-dockview-host {\n position: relative;\n flex: 1;\n min-width: 0;\n min-height: 0;\n --fx-edge-drawer-z: 1000;\n}\n.fx-view-dockview-host,\n.fx-view-dockview-host .dv-shell.dockview-theme-abyss {\n --fx-dock-container-background: var(--fx-color-surface-canvas);\n --fx-dock-panel-background: var(--fx-color-surface-sidebar);\n --dv-background-color: var(--fx-dock-container-background);\n --dv-group-view-background-color: var(--fx-dock-panel-background);\n --dv-tabs-and-actions-container-background-color: var(--fx-color-surface-inset);\n --dv-activegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-activegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-inset);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-raised);\n --dv-activegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-activegroup-hiddenpanel-tab-color: var(--fx-color-text-secondary);\n --dv-inactivegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-inactivegroup-hiddenpanel-tab-color: var(--fx-color-text-muted);\n --dv-tab-divider-color: var(--fx-color-border-subtle);\n --dv-separator-border: var(--fx-color-border-subtle);\n --dv-active-sash-color: transparent;\n --dv-paneview-active-outline-color: var(--fx-color-brand-accent);\n --dv-drag-over-background-color: var(--fx-color-brand-soft);\n --dv-drag-over-border-color: var(--fx-color-brand-accent);\n --dv-floating-border: none;\n --dv-floating-group-border: none;\n --dv-context-menu-background-color: var(--fx-color-surface-raised);\n --dv-context-menu-color: var(--fx-color-text-secondary);\n --dv-color-abyss-dark: var(--fx-color-surface-sidebar);\n --dv-color-abyss: var(--fx-color-surface-inset);\n --dv-color-abyss-light: var(--fx-color-surface-raised);\n --dv-color-abyss-lighter: var(--fx-color-surface-raised);\n --dv-color-abyss-accent: var(--fx-color-brand-accent);\n}\n.fx-view-workbench .dv-groupview-edge {\n --fx-dock-panel-background: var(--fx-color-surface-sidebar);\n --dv-color-abyss-dark: var(--fx-color-surface-sidebar);\n --dv-color-abyss: var(--fx-color-surface-inset);\n --dv-color-abyss-light: var(--fx-color-surface-inset);\n --dv-color-abyss-lighter: var(--fx-color-surface-raised);\n --dv-color-abyss-accent: var(--fx-color-brand-accent);\n --dv-group-view-background-color: var(--fx-dock-panel-background);\n --dv-tabs-and-actions-container-background-color: var(--fx-color-surface-inset);\n --dv-activegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-activegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-inset);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-raised);\n --dv-activegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-activegroup-hiddenpanel-tab-color: var(--fx-color-text-secondary);\n --dv-inactivegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-inactivegroup-hiddenpanel-tab-color: var(--fx-color-text-muted);\n --dv-tab-divider-color: var(--fx-color-border-subtle);\n --dv-separator-border: var(--fx-color-border-subtle);\n --dv-context-menu-background-color: var(--fx-color-surface-raised);\n --dv-context-menu-color: var(--fx-color-text-secondary);\n}\n.fx-edge-drawer-portal-host {\n position: fixed;\n inset: 0;\n pointer-events: none;\n z-index: 50;\n --fx-edge-drawer-z: 1000;\n --fx-dock-panel-background: var(--fx-color-surface-sidebar);\n --dv-color-abyss-dark: var(--fx-color-surface-sidebar);\n --dv-color-abyss: var(--fx-color-surface-inset);\n --dv-color-abyss-light: var(--fx-color-surface-inset);\n --dv-color-abyss-lighter: var(--fx-color-surface-raised);\n --dv-color-abyss-accent: var(--fx-color-brand-accent);\n --dv-group-view-background-color: var(--fx-dock-panel-background);\n --dv-tabs-and-actions-container-background-color: var(--fx-color-surface-inset);\n --dv-activegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-activegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-inset);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-raised);\n --dv-activegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-activegroup-hiddenpanel-tab-color: var(--fx-color-text-secondary);\n --dv-inactivegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-inactivegroup-hiddenpanel-tab-color: var(--fx-color-text-muted);\n --dv-tab-divider-color: var(--fx-color-border-subtle);\n --dv-separator-border: var(--fx-color-border-subtle);\n --dv-context-menu-background-color: var(--fx-color-surface-raised);\n --dv-context-menu-color: var(--fx-color-text-secondary);\n}\n.fx-view-dockview {\n width: 100%;\n height: 100%;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview {\n --dv-separator-border: transparent;\n background-color: var(--fx-dock-container-background, var(--fx-color-surface-canvas));\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-groupview:not(.dv-groupview-edge),\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .groupview:not(.groupview-edge) {\n border: 0 !important;\n outline: 0;\n box-shadow: none;\n}\n.fx-view-dockview-host .dv-shell > .dv-split-view-container.dv-separator-border > .dv-view-container > .dv-view:not(:first-child)::before,\n.fx-view-dockview-host .dv-shell-middle-column > .dv-split-view-container.dv-separator-border > .dv-view-container > .dv-view:not(:first-child)::before {\n display: none;\n}\n.fx-view-dockview .dv-tabs-and-actions-container {\n height: calc(var(--fx-component-navigation-row-height) - var(--fx-ref-space-6));\n min-height: calc(var(--fx-component-navigation-row-height) - var(--fx-ref-space-6));\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n}\n.fx-view-dockview .dv-tab {\n border-radius: var(--fx-ref-radius-4) var(--fx-ref-radius-4) 0 0 !important;\n font-size: var(--fx-ref-font-size-12);\n letter-spacing: var(--fx-type-caption-letter-spacing);\n}\n.fx-view-dockview .dv-groupview:not(.dv-groupview-edge) .fx-dock-tab {\n display: flex;\n align-items: center;\n min-width: 0;\n gap: var(--fx-ref-space-6);\n}\n.fx-view-dockview .dv-groupview:not(.dv-groupview-edge) .fx-dock-tab .dv-default-tab-content {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.fx-view-dockview .fx-dock-tab-icon {\n flex: 0 0 auto;\n color: var(--fx-color-text-muted);\n}\n.fx-view-dockview .dv-tab.dv-active-tab .fx-dock-tab-icon {\n color: var(--fx-color-text-secondary);\n}\n.fx-view-dockview .fx-dock-tab .dv-default-tab-action {\n display: grid;\n place-items: center;\n width: calc(var(--fx-ref-space-16) + var(--fx-ref-space-2));\n height: calc(var(--fx-ref-space-16) + var(--fx-ref-space-2));\n min-height: calc(var(--fx-ref-space-16) + var(--fx-ref-space-2));\n margin-left: var(--fx-ref-space-2);\n padding: 0;\n border: 0;\n border-radius: var(--fx-ref-radius-4);\n color: var(--fx-color-text-muted);\n}\n.fx-view-dockview .fx-dock-tab .dv-default-tab-action:hover {\n background: var(--fx-color-surface-hover);\n color: var(--fx-color-text-primary);\n}\n.fx-view-dockview .fx-dock-tab .dv-default-tab-action.fx-edge-pin--on {\n color: var(--fx-color-brand-accent);\n}\n.fx-view-dockview-host .dv-tab:focus-within::after,\n.fx-view-dockview-host .dv-tab:focus::after {\n content: none;\n}\n.fx-view-dockview-host .dv-groupview.dv-active-group:not(.dv-groupview-edge) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab,\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.fx-view-dockview-host .dv-groupview.dv-active-group:not(.dv-groupview-edge) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab::before,\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab::before {\n content: "";\n position: absolute;\n pointer-events: none;\n z-index: 2;\n background:\n linear-gradient(\n 90deg,\n transparent 0%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 22%,\n var(--fx-color-brand-accent) 50%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 78%,\n transparent 100%);\n left: 0;\n right: 0;\n top: 1px;\n height: 1px;\n width: auto;\n}\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group.dv-groupview-header-left > .dv-tabs-and-actions-container .dv-tabs-container.dv-tabs-container-vertical > .dv-tab.dv-active-tab::before {\n top: 0;\n bottom: 0;\n left: 0;\n right: auto;\n width: 1px;\n height: auto;\n background:\n linear-gradient(\n 180deg,\n transparent 0%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 22%,\n var(--fx-color-brand-accent) 50%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 78%,\n transparent 100%);\n}\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group.dv-groupview-header-right > .dv-tabs-and-actions-container .dv-tabs-container.dv-tabs-container-vertical > .dv-tab.dv-active-tab::before {\n top: 0;\n bottom: 0;\n right: 0;\n left: auto;\n width: 1px;\n height: auto;\n background:\n linear-gradient(\n 180deg,\n transparent 0%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 22%,\n var(--fx-color-brand-accent) 50%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 78%,\n transparent 100%);\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container.dv-tabs-container-vertical {\n text-orientation: sideways;\n padding-top: var(--fx-ref-space-6);\n}\n.fx-view-workbench .dv-groupview-edge .dv-default-tab .dv-default-tab-content {\n margin: 0;\n padding: var(--fx-ref-space-2) 0;\n}\n.fx-view-workbench .dv-groupview-edge.dv-active-group:not(.fx-edge-drawer-open) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.fx-view-workbench .dv-groupview-edge.dv-inactive-group:not(.fx-edge-drawer-open) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.fx-view-workbench .dv-groupview-edge.fx-edge-empty {\n visibility: hidden;\n pointer-events: none;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container.dv-tabs-container-vertical > .dv-tab {\n min-height: 104px;\n padding: var(--fx-ref-space-10) var(--fx-ref-space-6);\n box-sizing: border-box;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container:not(.dv-tabs-container-vertical) > .dv-tab {\n min-width: 104px;\n padding: var(--fx-ref-space-6) var(--fx-ref-space-12);\n box-sizing: border-box;\n}\n.fx-view-workbench .dv-groupview-edge .dv-default-tab {\n padding: var(--fx-ref-space-4) var(--fx-ref-space-2);\n gap: var(--fx-ref-space-6);\n box-sizing: border-box;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container-vertical .fx-dock-tab-icon {\n writing-mode: horizontal-tb;\n margin-right: 0;\n margin-bottom: var(--fx-ref-space-6);\n}\n.fx-view-workbench .dv-groupview-edge .dv-default-tab-action.fx-edge-pin {\n opacity: 0;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tab:hover .dv-default-tab-action.fx-edge-pin,\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open .dv-tab.dv-active-tab .dv-default-tab-action.fx-edge-pin {\n opacity: 1;\n}\n.fx-edge-drawer-portal-host > .fx-edge-drawer-grip {\n pointer-events: auto;\n}\n.fx-view-dockview-host .dv-groupview-edge.fx-edge-drawer-open {\n position: relative;\n z-index: var(--fx-edge-drawer-z, 1000) !important;\n}\n.fx-view-dockview-host .dv-popover-anchor > * {\n z-index: calc(var(--fx-edge-drawer-z, 1000) + 1) !important;\n}\n.fx-view-dockview-host .dv-groupview-edge.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container {\n --fx-edge-drawer-inset: var(--fx-ref-space-6);\n display: block !important;\n position: fixed;\n pointer-events: auto;\n width: var(--fx-edge-drawer-width, 300px);\n height: calc(var(--fx-edge-strip-height) - 2 * var(--fx-edge-drawer-inset));\n top: calc(var(--fx-edge-strip-top) + var(--fx-edge-drawer-inset));\n z-index: 60;\n box-sizing: border-box;\n background: var(--dv-group-view-background-color, var(--fx-color-surface-sidebar));\n color: var(--fx-color-text-primary);\n border: var(--fx-border-width) solid var(--dv-separator-border, var(--fx-color-border-subtle));\n border-radius: var(--fx-ref-radius-6);\n overflow: hidden;\n}\n.fx-view-dockview-host .dv-groupview-edge.dv-groupview-header-left.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container.dv-groupview-header-left {\n left: calc(var(--fx-edge-drawer-left) - 3px);\n width: calc(var(--fx-edge-drawer-width, 300px) + 3px);\n box-shadow: 4px 0 12px color-mix(in srgb, var(--fx-color-scrim) 30%, transparent), 1px 0 3px color-mix(in srgb, var(--fx-color-scrim) 22%, transparent);\n}\n.fx-view-dockview-host .dv-groupview-edge.dv-groupview-header-right.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container.dv-groupview-header-right {\n right: calc(var(--fx-edge-drawer-right) - 3px);\n width: calc(var(--fx-edge-drawer-width, 300px) + 3px);\n box-shadow: -4px 0 12px color-mix(in srgb, var(--fx-color-scrim) 30%, transparent), -1px 0 3px color-mix(in srgb, var(--fx-color-scrim) 22%, transparent);\n}\n.fx-view-dockview-host .dv-groupview-edge.dv-groupview-header-bottom.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container.dv-groupview-header-bottom {\n top: auto;\n left: calc(var(--fx-edge-strip-left) + var(--fx-edge-drawer-inset));\n width: calc(var(--fx-edge-strip-width) - 2 * var(--fx-edge-drawer-inset));\n height: calc(var(--fx-edge-drawer-height, 300px) + 3px);\n bottom: calc(var(--fx-edge-drawer-bottom) - 3px);\n box-shadow: 0 -4px 12px color-mix(in srgb, var(--fx-color-scrim) 30%, transparent), 0 -1px 3px color-mix(in srgb, var(--fx-color-scrim) 22%, transparent);\n}\n.fx-ue-live-host .fx-ue-lifted,\n.fx-ue-live-host .dv-resize-container.fx-ue-lifted {\n box-shadow: none !important;\n}\n.fx-edge-drawer-grip {\n z-index: 61;\n background: transparent;\n transition: background 0.1s ease;\n}\n.fx-edge-drawer-grip.fx-edge-drawer-grip--dragging {\n background: var(--fx-color-brand-accent);\n}\n.fx-view-dockview-host .dv-groupview[data-fx-dock-title-state=hidden] > .dv-tabs-and-actions-container.dv-single-tab {\n height: 0 !important;\n min-height: 0 !important;\n max-height: 0 !important;\n overflow: hidden !important;\n opacity: 0;\n border: 0;\n pointer-events: none;\n}\n.fx-view-dockview-host .fx-dock-title-restore,\n.fx-edge-drawer-portal-host .fx-dock-title-restore {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 3;\n align-items: flex-start;\n justify-content: flex-start;\n width: var(--fx-component-choice-size) !important;\n height: calc(var(--fx-ref-space-16) + var(--fx-ref-space-4)) !important;\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--fx-color-text-muted);\n cursor: pointer;\n}\n.fx-view-dockview-host .fx-dock-title-restore::before,\n.fx-edge-drawer-portal-host .fx-dock-title-restore::before {\n content: "";\n width: var(--fx-ref-space-12);\n height: var(--fx-ref-space-12);\n align-self: flex-start;\n background: var(--fx-color-text-muted);\n clip-path: polygon(0 0, 100% 0, 0 100%);\n transition: background var(--fx-motion-hover) var(--fx-motion-ease);\n}\n.fx-view-dockview-host .fx-dock-title-restore:hover::before,\n.fx-view-dockview-host .fx-dock-title-restore:focus-visible::before,\n.fx-edge-drawer-portal-host .fx-dock-title-restore:hover::before,\n.fx-edge-drawer-portal-host .fx-dock-title-restore:focus-visible::before {\n background: var(--fx-color-brand-accent);\n}\n.fx-view-dockview-host .fx-dock-title-restore:focus-visible,\n.fx-edge-drawer-portal-host .fx-dock-title-restore:focus-visible {\n outline: none;\n}\n.fx-view-dockview-host .dv-groupview[data-fx-dock-title-state=hidden] .fx-dock-title-restore,\n.fx-edge-drawer-portal-host > .dv-content-container[data-fx-dock-title-state=hidden] .fx-dock-title-restore {\n display: inline-flex !important;\n}\n.fx-view-dockview-host .dv-context-menu {\n min-width: calc(var(--fx-component-menu-min-width) - var(--fx-ref-space-48));\n padding: var(--fx-ref-space-4) !important;\n border: var(--fx-border-width) solid var(--fx-color-border-default);\n border-radius: var(--fx-radius-popover);\n background: var(--dv-context-menu-background-color, var(--fx-color-surface-raised)) !important;\n color: var(--dv-context-menu-color, var(--fx-color-text-secondary)) !important;\n box-shadow: var(--fx-shadow-floating);\n}\n.fx-view-dockview-host .dv-context-menu-item {\n min-height: var(--fx-component-control-height-compact);\n gap: var(--fx-ref-space-8);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border-radius: var(--fx-ref-radius-4);\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n color: var(--dv-context-menu-color, var(--fx-color-text-secondary));\n}\n.fx-view-dockview-host .dv-context-menu-item .dv-svg,\n.fx-view-dockview-host .dv-context-menu-item svg {\n width: var(--fx-ref-space-16);\n height: var(--fx-ref-space-16);\n flex-shrink: 0;\n}\n.fx-view-dockview-host .dv-context-menu-item:not(.dv-context-menu-item--disabled):hover {\n background: var(--fx-color-action-primary-bg) !important;\n color: var(--fx-color-action-primary-fg) !important;\n}\n.fx-view-dockview-host .dv-context-menu-item:not(.dv-context-menu-item--disabled):hover .dv-svg,\n.fx-view-dockview-host .dv-context-menu-item:not(.dv-context-menu-item--disabled):hover svg {\n color: var(--fx-color-action-primary-fg);\n fill: currentcolor;\n}\n.fx-view-dockview-host .dv-context-menu-item.dv-context-menu-item--disabled {\n opacity: 0.5;\n}\n.fx-view-dockview-host .dv-context-menu-separator {\n height: var(--fx-border-width);\n margin: var(--fx-ref-space-4);\n background: var(--fx-color-border-subtle);\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash {\n background: transparent !important;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash::after {\n content: "";\n position: absolute;\n pointer-events: none;\n opacity: 0;\n background: var(--fx-color-brand-accent);\n transition: opacity 100ms ease;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash::before {\n content: "";\n position: absolute;\n inset: 0 -1px;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash::before {\n content: "";\n position: absolute;\n inset: -1px 0;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash::after {\n inset: 0 -1px;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash::after {\n inset: -1px 0;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash:hover::after,\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash:active::after,\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash.dv-sash-active::after {\n opacity: 1;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-resize-container {\n border-radius: var(--fx-ref-radius-8);\n box-shadow: var(--fx-shadow-floating);\n overflow: hidden;\n}\n.fx-view-dock-panel,\n.fx-view-slot-mount,\n.fx-view-slot-mount-host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n}\n.fx-view-dock-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--fx-color-surface-sidebar);\n}\n.fx-view-page-mount {\n position: absolute;\n inset: 0;\n z-index: 0;\n min-height: 0;\n overflow: hidden;\n background: var(--fx-color-surface-inset);\n pointer-events: none;\n}\n.fx-view-page-mount.is-active {\n z-index: 2;\n pointer-events: auto;\n}\n.fx-view-slot-mount-host > * {\n flex: 1 1 0%;\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n}\n.fx-view-page-mount > .fx-view-display-surface,\n.fx-view-slot-mount-host > .fx-view-viewport-surface {\n width: 100%;\n height: 100%;\n min-height: 0;\n flex: 1 1 auto;\n border: 0;\n background: var(--fx-color-surface-inset);\n}\n.fx-view-page-mount > .fx-view-display-surface {\n visibility: visible !important;\n}\n.fx-view-slot-chrome {\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n}\n.fx-view-slot-chrome__title {\n margin: 0;\n padding: var(--fx-ref-space-8) var(--fx-ref-space-12);\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n text-transform: uppercase;\n letter-spacing: var(--fx-type-caption-letter-spacing);\n color: var(--fx-color-text-muted);\n}\n.fx-view-slot-chrome__mount {\n min-height: var(--fx-ref-space-32);\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.fx-view-zone--left .fx-view-slot-chrome,\n.fx-view-zone--right .fx-view-slot-chrome {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.fx-view-zone--left .fx-view-slot-chrome__mount,\n.fx-view-zone--right .fx-view-slot-chrome__mount {\n flex: 1;\n min-height: calc(var(--fx-ref-space-48) * 4);\n}\n.fx-view-panel__header {\n padding: var(--fx-ref-space-8) var(--fx-ref-space-12);\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n}\n.fx-view-panel__title {\n margin: 0;\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n text-transform: uppercase;\n letter-spacing: var(--fx-type-caption-letter-spacing);\n}\n.fx-view-panel__body {\n padding: var(--fx-ref-space-8);\n}\n.fx-view-input {\n width: 100%;\n box-sizing: border-box;\n margin-bottom: var(--fx-ref-space-8);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border: var(--fx-border-width) solid var(--fx-color-border-control);\n border-radius: var(--fx-radius-control);\n background: var(--fx-color-surface-raised);\n color: inherit;\n}\n.fx-view-list,\n.fx-view-tree {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.fx-view-list__item,\n.fx-view-tree__node {\n width: 100%;\n text-align: left;\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border: 0;\n border-radius: var(--fx-radius-control);\n background: transparent;\n color: inherit;\n cursor: pointer;\n}\n.fx-view-list__item:hover,\n.fx-view-tree__node:hover {\n background: var(--fx-color-surface-hover);\n}\n.fx-view-list__item--selected,\n.fx-view-tree__node--selected {\n background: var(--fx-color-selection-bg);\n outline: var(--fx-border-width) solid var(--fx-color-selection-indicator);\n}\n.fx-view-list__item {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--fx-ref-space-2);\n}\n.fx-view-list__label,\n.fx-view-tree__label {\n font-size: var(--fx-type-compact-font-size);\n line-height: var(--fx-type-compact-line-height);\n}\n.fx-view-list__meta {\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-code-font-family);\n color: var(--fx-color-text-muted);\n}\n.fx-view-selection-summary {\n display: flex;\n flex-wrap: wrap;\n gap: var(--fx-ref-space-8);\n margin: 0 0 var(--fx-ref-space-8);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border-radius: var(--fx-radius-control);\n background: var(--fx-color-surface-raised);\n font-size: var(--fx-type-caption-font-size);\n line-height: var(--fx-type-caption-line-height);\n}\n.fx-view-selection-summary__kind {\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--fx-color-text-muted);\n}\n.fx-view-selection-summary__label {\n color: var(--fx-color-text-primary);\n}\n.fx-view-muted {\n color: var(--fx-color-text-secondary);\n font-size: var(--fx-type-ui-font-size);\n line-height: var(--fx-type-ui-line-height);\n}\n.fx-view-json {\n margin: 0;\n padding: var(--fx-ref-space-8);\n font: var(--fx-type-code-font-weight) var(--fx-type-code-font-size) / var(--fx-type-code-line-height) var(--fx-type-code-font-family);\n overflow: auto;\n max-height: 40vh;\n background: var(--fx-color-surface-inset);\n border-radius: var(--fx-radius-control);\n}\n.fx-view-content-browser-host {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1;\n}\n.fx-view-content-browser-ui {\n flex: 1;\n overflow: auto;\n}\n.fx-view-content-browser-presentation {\n flex: 1;\n min-height: calc(var(--fx-ref-space-48) * 2 + var(--fx-ref-space-24));\n position: relative;\n}\n.fx-view-dockview .dv-render-overlay:has(.fx-view-viewport-surface) {\n transform: none;\n will-change: auto;\n}\n.fx-view-viewport-surface,\n.fx-view-viewport-surface [data-forgeax-view-workspace=root],\n.fx-view-viewport-surface [data-forgeax-view-workspace=workbench],\n.fx-view-viewport-surface [data-forgeax-view-workspace=preview],\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] {\n position: relative;\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n grid-template-rows: minmax(0, 1fr);\n overflow: hidden;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] #app-shell,\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] #app {\n width: 100% !important;\n height: 100% !important;\n max-width: 100%;\n max-height: 100%;\n display: block;\n transform: none;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] #app-shell {\n position: relative;\n}\n#forgeax-fatal {\n display: none !important;\n}\n.fx-engine-fatal-banner {\n position: absolute;\n top: var(--fx-ref-space-12);\n left: 50%;\n z-index: var(--fx-layer-toast);\n box-sizing: border-box;\n display: flex;\n width: min(720px, calc(100% - var(--fx-ref-space-24)));\n max-height: 40%;\n padding: var(--fx-ref-space-8) var(--fx-ref-space-12);\n overflow: hidden;\n transform: translateX(-50%);\n align-items: flex-start;\n gap: var(--fx-space-control);\n border: var(--fx-border-width) solid var(--fx-color-status-error-fg);\n border-radius: var(--fx-radius-popover);\n background: var(--fx-color-status-error-bg);\n color: var(--fx-color-status-error-fg);\n box-shadow: var(--fx-shadow-floating);\n pointer-events: auto;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] > .fx-engine-fatal-banner {\n grid-area: 1 / 1;\n}\n.fx-engine-fatal-banner[hidden] {\n display: none;\n}\n.fx-engine-fatal-banner__message {\n margin: 0;\n flex: 1;\n min-width: 0;\n max-height: 100%;\n overflow: auto;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n font: var(--fx-type-code-font-weight) var(--fx-type-code-font-size)/var(--fx-type-code-line-height) var(--fx-type-code-font-family);\n}\n.fx-engine-fatal-banner__actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: var(--fx-ref-space-4);\n}\n';
|
|
20749
|
-
if (typeof document !== "undefined" && !document.querySelector('style[data-forgeax-css="
|
|
20827
|
+
var css3 = '/* packages/viewer/src/styles.css */\n:root {\n font-family: var(--fx-type-ui-font-family);\n font-size: var(--fx-type-ui-font-size);\n line-height: var(--fx-type-ui-line-height);\n}\nhtml,\nbody {\n margin: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background: var(--fx-color-surface-canvas);\n color: var(--fx-color-text-primary);\n}\n#root {\n position: relative;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n.fx-view-root.fx-ui {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n --fx-view-shell-chrome-height: calc(var(--fx-component-editor-row-height) + var(--fx-component-navigation-row-height));\n --fx-view-header-band-height: var(--fx-component-editor-row-height);\n --fx-view-unconfigured-offset: calc(var(--fx-ref-space-48) * 2 + var(--fx-ref-space-8) - var(--fx-ref-space-6));\n}\n.fx-view-project-open {\n position: absolute;\n inset: var(--fx-view-shell-chrome-height) 0 0;\n z-index: 40;\n height: fit-content;\n}\n.fx-view-header__recovery-feedback {\n width: 100%;\n min-width: 0;\n padding: 0 var(--fx-ref-space-10);\n align-items: center;\n border-radius: var(--fx-radius-control);\n}\n.fx-view-header__recovery-feedback .fx-feedback__body {\n display: flex;\n flex-direction: column;\n gap: 0;\n min-width: 0;\n}\n.fx-view-header__recovery-feedback .fx-feedback__body strong {\n font: var(--fx-type-compact-font-weight) var(--fx-type-compact-font-size) / var(--fx-type-compact-line-height) var(--fx-type-compact-font-family);\n}\n.fx-view-header__connection-status {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n flex-direction: column;\n align-items: flex-end;\n}\n.fx-view-connection-state {\n position: absolute;\n top: var(--fx-view-shell-chrome-height);\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 40;\n display: grid;\n place-items: center;\n overflow: auto;\n padding: var(--fx-space-section);\n background: var(--fx-color-surface-canvas);\n box-sizing: border-box;\n}\n.fx-view-connection-state > .fx-empty {\n width: min(100%, calc(var(--fx-component-panel-chat-min-width) + var(--fx-ref-space-48) + var(--fx-ref-space-32)));\n min-height: calc(var(--fx-ref-space-48) * 5 + var(--fx-ref-space-16) + var(--fx-ref-space-4));\n border: var(--fx-border-width) solid var(--fx-color-border-subtle);\n border-radius: var(--fx-radius-card);\n background: var(--fx-color-surface-sidebar);\n box-shadow: var(--fx-shadow-card);\n box-sizing: border-box;\n}\n.fx-view-connection-state__icon {\n width: var(--fx-component-control-height-default);\n height: var(--fx-component-control-height-default);\n color: var(--fx-color-status-error-fg);\n stroke-width: 1.5;\n}\n.fx-view-connection-state__description {\n display: grid;\n gap: var(--fx-ref-space-8);\n}\n.fx-view-connection-state__command {\n padding: var(--fx-border-width) var(--fx-ref-space-4);\n border-radius: var(--fx-ref-radius-4);\n background: var(--fx-color-surface-inset);\n color: var(--fx-color-text-primary);\n font-family: var(--fx-type-code-font-family);\n font-size: inherit;\n white-space: nowrap;\n}\n.fx-view-connection-state__reason {\n display: block;\n max-width: var(--fx-component-conversation-max-width);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border-radius: var(--fx-ref-radius-4);\n background: var(--fx-color-surface-inset);\n color: var(--fx-color-text-muted);\n font-size: var(--fx-ref-font-size-12);\n overflow-wrap: anywhere;\n}\n.fx-view-root > .fx-view-app {\n flex: 1 1 auto;\n min-height: 0;\n}\n.fx-view-app {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.fx-view-app > .fx-page-tab-strip {\n flex: 0 0 auto;\n}\n.fx-view-header {\n position: relative;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex: 0 0 var(--fx-view-header-band-height);\n height: var(--fx-view-header-band-height);\n padding: 0 var(--fx-ref-space-12);\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n background: var(--fx-color-surface-sidebar);\n box-sizing: border-box;\n user-select: none;\n}\n.fx-view-brand {\n display: flex;\n align-items: center;\n gap: var(--fx-ref-space-8);\n min-width: calc(var(--fx-component-panel-config-min-width) - var(--fx-ref-space-48) - var(--fx-ref-space-8));\n color: var(--fx-color-text-primary);\n}\n.fx-view-brand strong {\n font-weight: var(--fx-ref-font-weight-600);\n}\n.fx-view-header__status-slot {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--fx-component-control-height-compact);\n height: var(--fx-component-control-height-compact);\n}\n.fx-view-header__status-dot {\n width: var(--fx-ref-space-6);\n height: var(--fx-ref-space-6);\n border-radius: var(--fx-radius-pill);\n background: var(--fx-color-status-success-fg);\n}\n.fx-view-header__status-dot--connected {\n background: var(--fx-color-status-success-fg);\n}\n.fx-view-header__status-dot--connecting {\n background: var(--fx-color-status-warning-fg);\n animation: fx-view-host-status-pulse 1.4s ease-in-out infinite;\n}\n.fx-view-header__status-dot--failed {\n background: var(--fx-color-status-error-fg);\n}\n@keyframes fx-view-host-status-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.45;\n }\n}\n.fx-view-header__status-slot:focus-visible {\n outline: var(--fx-border-width) solid var(--fx-color-border-focus);\n outline-offset: var(--fx-ref-space-2);\n border-radius: var(--fx-radius-control);\n}\n.fx-view-unconfigured {\n position: absolute;\n right: var(--fx-view-unconfigured-offset);\n padding: var(--fx-ref-space-2) var(--fx-ref-space-6);\n border: var(--fx-border-width) solid var(--fx-color-status-warning-fg);\n border-radius: var(--fx-ref-radius-4);\n background: var(--fx-color-status-warning-bg);\n color: var(--fx-color-status-warning-fg);\n font-family: var(--fx-type-code-font-family);\n font-size: var(--fx-ref-font-size-12);\n line-height: var(--fx-type-caption-line-height);\n letter-spacing: var(--fx-type-caption-letter-spacing);\n}\n.fx-view-header__prefs {\n display: flex;\n align-items: center;\n gap: var(--fx-ref-space-4);\n}\n.fx-locale-trigger {\n min-width: var(--fx-ref-space-16);\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size)/ var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n letter-spacing: 0.04em;\n}\n.fx-view-main-col {\n flex: 1;\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n.fx-view-project-restoring {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--fx-ref-space-4);\n padding: var(--fx-ref-space-8);\n text-align: center;\n}\n.fx-view-workspace-row {\n position: absolute;\n inset: 0;\n display: flex;\n min-height: 0;\n width: 100%;\n overflow: hidden;\n background: var(--fx-color-surface-canvas);\n visibility: hidden;\n pointer-events: none;\n}\n.fx-view-workspace-row.is-active {\n visibility: visible;\n pointer-events: auto;\n}\n.fx-view-workspace-row[hidden] {\n display: none;\n}\n.fx-view-page-surface {\n flex: 1;\n display: grid;\n align-content: start;\n gap: var(--fx-ref-space-8);\n padding: var(--fx-space-section);\n min-height: 0;\n overflow: auto;\n}\n.fx-view-workbench {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n overflow: hidden;\n}\n.fx-view-dockview-host {\n position: relative;\n flex: 1;\n min-width: 0;\n min-height: 0;\n --fx-edge-drawer-z: 1000;\n}\n.fx-view-dockview-host,\n.fx-view-dockview-host .dv-shell.dockview-theme-abyss {\n --fx-dock-container-background: var(--fx-color-surface-canvas);\n --fx-dock-panel-background: var(--fx-color-surface-sidebar);\n --dv-background-color: var(--fx-dock-container-background);\n --dv-group-view-background-color: var(--fx-dock-panel-background);\n --dv-tabs-and-actions-container-background-color: var(--fx-color-surface-inset);\n --dv-activegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-activegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-inset);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-raised);\n --dv-activegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-activegroup-hiddenpanel-tab-color: var(--fx-color-text-secondary);\n --dv-inactivegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-inactivegroup-hiddenpanel-tab-color: var(--fx-color-text-muted);\n --dv-tab-divider-color: var(--fx-color-border-subtle);\n --dv-separator-border: var(--fx-color-border-subtle);\n --dv-active-sash-color: transparent;\n --dv-paneview-active-outline-color: var(--fx-color-brand-accent);\n --dv-drag-over-background-color: var(--fx-color-brand-soft);\n --dv-drag-over-border-color: var(--fx-color-brand-accent);\n --dv-floating-border: none;\n --dv-floating-group-border: none;\n --dv-context-menu-background-color: var(--fx-color-surface-raised);\n --dv-context-menu-color: var(--fx-color-text-secondary);\n --dv-color-abyss-dark: var(--fx-color-surface-sidebar);\n --dv-color-abyss: var(--fx-color-surface-inset);\n --dv-color-abyss-light: var(--fx-color-surface-raised);\n --dv-color-abyss-lighter: var(--fx-color-surface-raised);\n --dv-color-abyss-accent: var(--fx-color-brand-accent);\n}\n.fx-view-workbench .dv-groupview-edge {\n --fx-dock-panel-background: var(--fx-color-surface-sidebar);\n --dv-color-abyss-dark: var(--fx-color-surface-sidebar);\n --dv-color-abyss: var(--fx-color-surface-inset);\n --dv-color-abyss-light: var(--fx-color-surface-inset);\n --dv-color-abyss-lighter: var(--fx-color-surface-raised);\n --dv-color-abyss-accent: var(--fx-color-brand-accent);\n --dv-group-view-background-color: var(--fx-dock-panel-background);\n --dv-tabs-and-actions-container-background-color: var(--fx-color-surface-inset);\n --dv-activegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-activegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-inset);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-raised);\n --dv-activegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-activegroup-hiddenpanel-tab-color: var(--fx-color-text-secondary);\n --dv-inactivegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-inactivegroup-hiddenpanel-tab-color: var(--fx-color-text-muted);\n --dv-tab-divider-color: var(--fx-color-border-subtle);\n --dv-separator-border: var(--fx-color-border-subtle);\n --dv-context-menu-background-color: var(--fx-color-surface-raised);\n --dv-context-menu-color: var(--fx-color-text-secondary);\n}\n.fx-edge-drawer-portal-host {\n position: fixed;\n inset: 0;\n pointer-events: none;\n z-index: 50;\n --fx-edge-drawer-z: 1000;\n --fx-dock-panel-background: var(--fx-color-surface-sidebar);\n --dv-color-abyss-dark: var(--fx-color-surface-sidebar);\n --dv-color-abyss: var(--fx-color-surface-inset);\n --dv-color-abyss-light: var(--fx-color-surface-inset);\n --dv-color-abyss-lighter: var(--fx-color-surface-raised);\n --dv-color-abyss-accent: var(--fx-color-brand-accent);\n --dv-group-view-background-color: var(--fx-dock-panel-background);\n --dv-tabs-and-actions-container-background-color: var(--fx-color-surface-inset);\n --dv-activegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-activegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-inset);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(--fx-dock-panel-background);\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--fx-color-surface-raised);\n --dv-activegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-activegroup-hiddenpanel-tab-color: var(--fx-color-text-secondary);\n --dv-inactivegroup-visiblepanel-tab-color: var(--fx-color-text-primary);\n --dv-inactivegroup-hiddenpanel-tab-color: var(--fx-color-text-muted);\n --dv-tab-divider-color: var(--fx-color-border-subtle);\n --dv-separator-border: var(--fx-color-border-subtle);\n --dv-context-menu-background-color: var(--fx-color-surface-raised);\n --dv-context-menu-color: var(--fx-color-text-secondary);\n}\n.fx-view-dockview {\n width: 100%;\n height: 100%;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview {\n --dv-separator-border: transparent;\n background-color: var(--fx-dock-container-background, var(--fx-color-surface-canvas));\n}\n.fx-view-dockview-host .dv-view.fx-bottom-edge-spanning {\n position: fixed !important;\n left: var(--fx-bottom-edge-left) !important;\n top: auto !important;\n bottom: var(--fx-bottom-edge-bottom) !important;\n width: var(--fx-bottom-edge-width) !important;\n height: var(--fx-bottom-edge-height) !important;\n z-index: 1001;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-groupview:not(.dv-groupview-edge),\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .groupview:not(.groupview-edge) {\n border: 0 !important;\n outline: 0;\n box-shadow: none;\n}\n.fx-view-dockview-host .dv-shell > .dv-split-view-container.dv-separator-border > .dv-view-container > .dv-view:not(:first-child)::before,\n.fx-view-dockview-host .dv-shell-middle-column > .dv-split-view-container.dv-separator-border > .dv-view-container > .dv-view:not(:first-child)::before {\n display: none;\n}\n.fx-view-dockview .dv-tabs-and-actions-container {\n height: calc(var(--fx-component-navigation-row-height) - var(--fx-ref-space-6));\n min-height: calc(var(--fx-component-navigation-row-height) - var(--fx-ref-space-6));\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n}\n.fx-view-dockview .dv-tab {\n border-radius: var(--fx-ref-radius-4) var(--fx-ref-radius-4) 0 0 !important;\n font-size: var(--fx-ref-font-size-12);\n letter-spacing: var(--fx-type-caption-letter-spacing);\n}\n.fx-view-dockview .dv-groupview:not(.dv-groupview-edge) .fx-dock-tab {\n display: flex;\n align-items: center;\n min-width: 0;\n gap: var(--fx-ref-space-6);\n}\n.fx-view-dockview .dv-groupview:not(.dv-groupview-edge) .fx-dock-tab .dv-default-tab-content {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.fx-view-dockview .fx-dock-tab-icon {\n flex: 0 0 auto;\n color: var(--fx-color-text-muted);\n}\n.fx-view-dockview .dv-tab.dv-active-tab .fx-dock-tab-icon {\n color: var(--fx-color-text-secondary);\n}\n.fx-view-dockview .fx-dock-tab .dv-default-tab-action {\n display: grid;\n place-items: center;\n width: calc(var(--fx-ref-space-16) + var(--fx-ref-space-2));\n height: calc(var(--fx-ref-space-16) + var(--fx-ref-space-2));\n min-height: calc(var(--fx-ref-space-16) + var(--fx-ref-space-2));\n margin-left: var(--fx-ref-space-2);\n padding: 0;\n border: 0;\n border-radius: var(--fx-ref-radius-4);\n color: var(--fx-color-text-muted);\n}\n.fx-view-dockview .fx-dock-tab .dv-default-tab-action:hover {\n background: var(--fx-color-surface-hover);\n color: var(--fx-color-text-primary);\n}\n.fx-view-dockview .fx-dock-tab .dv-default-tab-action.fx-edge-pin--on {\n color: var(--fx-color-brand-accent);\n}\n.fx-view-dockview-host .dv-tab:focus-within::after,\n.fx-view-dockview-host .dv-tab:focus::after {\n content: none;\n}\n.fx-view-dockview-host .dv-groupview.dv-active-group:not(.dv-groupview-edge) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab,\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.fx-view-dockview-host .dv-groupview.dv-active-group:not(.dv-groupview-edge) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab::before,\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab::before {\n content: "";\n position: absolute;\n pointer-events: none;\n z-index: 2;\n background:\n linear-gradient(\n 90deg,\n transparent 0%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 22%,\n var(--fx-color-brand-accent) 50%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 78%,\n transparent 100%);\n left: 0;\n right: 0;\n top: 1px;\n height: 1px;\n width: auto;\n}\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group.dv-groupview-header-left > .dv-tabs-and-actions-container .dv-tabs-container.dv-tabs-container-vertical > .dv-tab.dv-active-tab::before {\n top: 0;\n bottom: 0;\n left: 0;\n right: auto;\n width: 1px;\n height: auto;\n background:\n linear-gradient(\n 180deg,\n transparent 0%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 22%,\n var(--fx-color-brand-accent) 50%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 78%,\n transparent 100%);\n}\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open.dv-active-group.dv-groupview-header-right > .dv-tabs-and-actions-container .dv-tabs-container.dv-tabs-container-vertical > .dv-tab.dv-active-tab::before {\n top: 0;\n bottom: 0;\n right: 0;\n left: auto;\n width: 1px;\n height: auto;\n background:\n linear-gradient(\n 180deg,\n transparent 0%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 22%,\n var(--fx-color-brand-accent) 50%,\n color-mix(in srgb, var(--fx-color-brand-accent) 55%, transparent) 78%,\n transparent 100%);\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container.dv-tabs-container-vertical {\n text-orientation: sideways;\n padding-top: var(--fx-ref-space-6);\n}\n.fx-view-workbench .dv-groupview-edge .dv-default-tab .dv-default-tab-content {\n margin: 0;\n padding: var(--fx-ref-space-2) 0;\n}\n.fx-view-workbench .dv-groupview-edge.dv-active-group:not(.fx-edge-drawer-open) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.fx-view-workbench .dv-groupview-edge.dv-inactive-group:not(.fx-edge-drawer-open) > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.fx-view-workbench .dv-groupview-edge.fx-edge-empty {\n visibility: hidden;\n pointer-events: none;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container.dv-tabs-container-vertical > .dv-tab {\n min-height: 104px;\n padding: var(--fx-ref-space-10) var(--fx-ref-space-6);\n box-sizing: border-box;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container:not(.dv-tabs-container-vertical) > .dv-tab {\n min-width: 104px;\n padding: var(--fx-ref-space-6) var(--fx-ref-space-12);\n box-sizing: border-box;\n}\n.fx-view-workbench .dv-groupview-edge .dv-default-tab {\n padding: var(--fx-ref-space-4) var(--fx-ref-space-2);\n gap: var(--fx-ref-space-6);\n box-sizing: border-box;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tabs-container-vertical .fx-dock-tab-icon {\n writing-mode: horizontal-tb;\n margin-right: 0;\n margin-bottom: var(--fx-ref-space-6);\n}\n.fx-view-workbench .dv-groupview-edge .dv-default-tab-action.fx-edge-pin {\n opacity: 0;\n}\n.fx-view-workbench .dv-groupview-edge .dv-tab:hover .dv-default-tab-action.fx-edge-pin,\n.fx-view-workbench .dv-groupview-edge.fx-edge-drawer-open .dv-tab.dv-active-tab .dv-default-tab-action.fx-edge-pin {\n opacity: 1;\n}\n.fx-edge-drawer-portal-host > .fx-edge-drawer-grip {\n pointer-events: auto;\n}\n.fx-view-dockview-host .dv-groupview-edge.fx-edge-drawer-open {\n position: relative;\n z-index: var(--fx-edge-drawer-z, 1000) !important;\n}\n.fx-view-dockview-host .dv-popover-anchor > * {\n z-index: calc(var(--fx-edge-drawer-z, 1000) + 1) !important;\n}\n.fx-view-dockview-host .dv-groupview-edge.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container {\n --fx-edge-drawer-inset: var(--fx-ref-space-6);\n display: block !important;\n position: fixed;\n pointer-events: auto;\n width: var(--fx-edge-drawer-width, 300px);\n height: calc(var(--fx-edge-strip-height) - 2 * var(--fx-edge-drawer-inset));\n top: calc(var(--fx-edge-strip-top) + var(--fx-edge-drawer-inset));\n z-index: 60;\n box-sizing: border-box;\n background: var(--dv-group-view-background-color, var(--fx-color-surface-sidebar));\n color: var(--fx-color-text-primary);\n border: var(--fx-border-width) solid var(--dv-separator-border, var(--fx-color-border-subtle));\n border-radius: var(--fx-ref-radius-6);\n overflow: hidden;\n}\n.fx-view-dockview-host .dv-groupview-edge.dv-groupview-header-left.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container.dv-groupview-header-left {\n left: calc(var(--fx-edge-drawer-left) - 3px);\n width: calc(var(--fx-edge-drawer-width, 300px) + 3px);\n box-shadow: 4px 0 12px color-mix(in srgb, var(--fx-color-scrim) 30%, transparent), 1px 0 3px color-mix(in srgb, var(--fx-color-scrim) 22%, transparent);\n}\n.fx-view-dockview-host .dv-groupview-edge.dv-groupview-header-right.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container.dv-groupview-header-right {\n right: calc(var(--fx-edge-drawer-right) - 3px);\n width: calc(var(--fx-edge-drawer-width, 300px) + 3px);\n box-shadow: -4px 0 12px color-mix(in srgb, var(--fx-color-scrim) 30%, transparent), -1px 0 3px color-mix(in srgb, var(--fx-color-scrim) 22%, transparent);\n}\n.fx-view-dockview-host .dv-groupview-edge.dv-groupview-header-bottom.fx-edge-drawer-open > .dv-content-container,\n.fx-edge-drawer-portal-host > .dv-content-container.dv-groupview-header-bottom {\n top: auto;\n left: calc(var(--fx-edge-strip-left) + var(--fx-edge-drawer-inset));\n width: calc(var(--fx-edge-strip-width) - 2 * var(--fx-edge-drawer-inset));\n height: calc(var(--fx-edge-drawer-height, 300px) + 3px);\n bottom: calc(var(--fx-edge-drawer-bottom) - 3px);\n box-shadow: 0 -4px 12px color-mix(in srgb, var(--fx-color-scrim) 30%, transparent), 0 -1px 3px color-mix(in srgb, var(--fx-color-scrim) 22%, transparent);\n}\n.fx-ue-live-host .fx-ue-lifted,\n.fx-ue-live-host .dv-resize-container.fx-ue-lifted {\n box-shadow: none !important;\n}\n.fx-edge-drawer-grip {\n z-index: 61;\n background: transparent;\n transition: background 0.1s ease;\n}\n.fx-edge-drawer-grip.fx-edge-drawer-grip--dragging {\n background: var(--fx-color-brand-accent);\n}\n.fx-view-dockview-host .dv-groupview[data-fx-dock-title-state=hidden] > .dv-tabs-and-actions-container.dv-single-tab {\n height: 0 !important;\n min-height: 0 !important;\n max-height: 0 !important;\n overflow: hidden !important;\n opacity: 0;\n border: 0;\n pointer-events: none;\n}\n.fx-view-dockview-host .fx-dock-title-restore,\n.fx-edge-drawer-portal-host .fx-dock-title-restore {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 3;\n align-items: flex-start;\n justify-content: flex-start;\n width: var(--fx-component-choice-size) !important;\n height: calc(var(--fx-ref-space-16) + var(--fx-ref-space-4)) !important;\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--fx-color-text-muted);\n cursor: pointer;\n}\n.fx-view-dockview-host .fx-dock-title-restore::before,\n.fx-edge-drawer-portal-host .fx-dock-title-restore::before {\n content: "";\n width: var(--fx-ref-space-12);\n height: var(--fx-ref-space-12);\n align-self: flex-start;\n background: var(--fx-color-text-muted);\n clip-path: polygon(0 0, 100% 0, 0 100%);\n transition: background var(--fx-motion-hover) var(--fx-motion-ease);\n}\n.fx-view-dockview-host .fx-dock-title-restore:hover::before,\n.fx-view-dockview-host .fx-dock-title-restore:focus-visible::before,\n.fx-edge-drawer-portal-host .fx-dock-title-restore:hover::before,\n.fx-edge-drawer-portal-host .fx-dock-title-restore:focus-visible::before {\n background: var(--fx-color-brand-accent);\n}\n.fx-view-dockview-host .fx-dock-title-restore:focus-visible,\n.fx-edge-drawer-portal-host .fx-dock-title-restore:focus-visible {\n outline: none;\n}\n.fx-view-dockview-host .dv-groupview[data-fx-dock-title-state=hidden] .fx-dock-title-restore,\n.fx-edge-drawer-portal-host > .dv-content-container[data-fx-dock-title-state=hidden] .fx-dock-title-restore {\n display: inline-flex !important;\n}\n.fx-view-dockview-host .dv-context-menu {\n min-width: calc(var(--fx-component-menu-min-width) - var(--fx-ref-space-48));\n padding: var(--fx-ref-space-4) !important;\n border: var(--fx-border-width) solid var(--fx-color-border-default);\n border-radius: var(--fx-radius-popover);\n background: var(--dv-context-menu-background-color, var(--fx-color-surface-raised)) !important;\n color: var(--dv-context-menu-color, var(--fx-color-text-secondary)) !important;\n box-shadow: var(--fx-shadow-floating);\n}\n.fx-view-dockview-host .dv-context-menu-item {\n min-height: var(--fx-component-control-height-compact);\n gap: var(--fx-ref-space-8);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border-radius: var(--fx-ref-radius-4);\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n color: var(--dv-context-menu-color, var(--fx-color-text-secondary));\n}\n.fx-view-dockview-host .dv-context-menu-item .dv-svg,\n.fx-view-dockview-host .dv-context-menu-item svg {\n width: var(--fx-ref-space-16);\n height: var(--fx-ref-space-16);\n flex-shrink: 0;\n}\n.fx-view-dockview-host .dv-context-menu-item:not(.dv-context-menu-item--disabled):hover {\n background: var(--fx-color-action-primary-bg) !important;\n color: var(--fx-color-action-primary-fg) !important;\n}\n.fx-view-dockview-host .dv-context-menu-item:not(.dv-context-menu-item--disabled):hover .dv-svg,\n.fx-view-dockview-host .dv-context-menu-item:not(.dv-context-menu-item--disabled):hover svg {\n color: var(--fx-color-action-primary-fg);\n fill: currentcolor;\n}\n.fx-view-dockview-host .dv-context-menu-item.dv-context-menu-item--disabled {\n opacity: 0.5;\n}\n.fx-view-dockview-host .dv-context-menu-separator {\n height: var(--fx-border-width);\n margin: var(--fx-ref-space-4);\n background: var(--fx-color-border-subtle);\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash {\n background: transparent !important;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash::after {\n content: "";\n position: absolute;\n pointer-events: none;\n opacity: 0;\n background: var(--fx-color-brand-accent);\n transition: opacity 100ms ease;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash::before {\n content: "";\n position: absolute;\n inset: 0 -1px;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash::before {\n content: "";\n position: absolute;\n inset: -1px 0;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash::after {\n inset: 0 -1px;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash::after {\n inset: -1px 0;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash:hover::after,\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash:active::after,\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-sash.dv-sash-active::after {\n opacity: 1;\n}\n.fx-view-dockview-host .fx-view-dockview .dv-dockview .dv-resize-container {\n border-radius: var(--fx-ref-radius-8);\n box-shadow: var(--fx-shadow-floating);\n overflow: hidden;\n}\n.fx-view-dock-panel,\n.fx-view-slot-mount,\n.fx-view-slot-mount-host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n}\n.fx-view-dock-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--fx-color-surface-sidebar);\n}\n.fx-view-page-mount {\n position: absolute;\n inset: 0;\n z-index: 0;\n min-height: 0;\n overflow: hidden;\n background: var(--fx-color-surface-inset);\n pointer-events: none;\n}\n.fx-view-page-mount.is-active {\n z-index: 2;\n pointer-events: auto;\n}\n.fx-view-slot-mount-host > * {\n flex: 1 1 0%;\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n}\n.fx-view-page-mount > .fx-view-display-surface,\n.fx-view-slot-mount-host > .fx-view-viewport-surface {\n width: 100%;\n height: 100%;\n min-height: 0;\n flex: 1 1 auto;\n border: 0;\n background: var(--fx-color-surface-inset);\n}\n.fx-view-page-mount > .fx-view-display-surface {\n visibility: visible !important;\n}\n.fx-view-slot-chrome {\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n}\n.fx-view-slot-chrome__title {\n margin: 0;\n padding: var(--fx-ref-space-8) var(--fx-ref-space-12);\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n text-transform: uppercase;\n letter-spacing: var(--fx-type-caption-letter-spacing);\n color: var(--fx-color-text-muted);\n}\n.fx-view-slot-chrome__mount {\n min-height: var(--fx-ref-space-32);\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.fx-view-zone--left .fx-view-slot-chrome,\n.fx-view-zone--right .fx-view-slot-chrome {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.fx-view-zone--left .fx-view-slot-chrome__mount,\n.fx-view-zone--right .fx-view-slot-chrome__mount {\n flex: 1;\n min-height: calc(var(--fx-ref-space-48) * 4);\n}\n.fx-view-panel__header {\n padding: var(--fx-ref-space-8) var(--fx-ref-space-12);\n border-bottom: var(--fx-border-width) solid var(--fx-color-border-subtle);\n}\n.fx-view-panel__title {\n margin: 0;\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-caption-font-family);\n text-transform: uppercase;\n letter-spacing: var(--fx-type-caption-letter-spacing);\n}\n.fx-view-panel__body {\n padding: var(--fx-ref-space-8);\n}\n.fx-view-input {\n width: 100%;\n box-sizing: border-box;\n margin-bottom: var(--fx-ref-space-8);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border: var(--fx-border-width) solid var(--fx-color-border-control);\n border-radius: var(--fx-radius-control);\n background: var(--fx-color-surface-raised);\n color: inherit;\n}\n.fx-view-list,\n.fx-view-tree {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.fx-view-list__item,\n.fx-view-tree__node {\n width: 100%;\n text-align: left;\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border: 0;\n border-radius: var(--fx-radius-control);\n background: transparent;\n color: inherit;\n cursor: pointer;\n}\n.fx-view-list__item:hover,\n.fx-view-tree__node:hover {\n background: var(--fx-color-surface-hover);\n}\n.fx-view-list__item--selected,\n.fx-view-tree__node--selected {\n background: var(--fx-color-selection-bg);\n outline: var(--fx-border-width) solid var(--fx-color-selection-indicator);\n}\n.fx-view-list__item {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--fx-ref-space-2);\n}\n.fx-view-list__label,\n.fx-view-tree__label {\n font-size: var(--fx-type-compact-font-size);\n line-height: var(--fx-type-compact-line-height);\n}\n.fx-view-list__meta {\n font: var(--fx-type-caption-font-weight) var(--fx-type-caption-font-size) / var(--fx-type-caption-line-height) var(--fx-type-code-font-family);\n color: var(--fx-color-text-muted);\n}\n.fx-view-selection-summary {\n display: flex;\n flex-wrap: wrap;\n gap: var(--fx-ref-space-8);\n margin: 0 0 var(--fx-ref-space-8);\n padding: var(--fx-ref-space-6) var(--fx-ref-space-8);\n border-radius: var(--fx-radius-control);\n background: var(--fx-color-surface-raised);\n font-size: var(--fx-type-caption-font-size);\n line-height: var(--fx-type-caption-line-height);\n}\n.fx-view-selection-summary__kind {\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--fx-color-text-muted);\n}\n.fx-view-selection-summary__label {\n color: var(--fx-color-text-primary);\n}\n.fx-view-muted {\n color: var(--fx-color-text-secondary);\n font-size: var(--fx-type-ui-font-size);\n line-height: var(--fx-type-ui-line-height);\n}\n.fx-view-json {\n margin: 0;\n padding: var(--fx-ref-space-8);\n font: var(--fx-type-code-font-weight) var(--fx-type-code-font-size) / var(--fx-type-code-line-height) var(--fx-type-code-font-family);\n overflow: auto;\n max-height: 40vh;\n background: var(--fx-color-surface-inset);\n border-radius: var(--fx-radius-control);\n}\n.fx-view-content-browser-host {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1;\n}\n.fx-view-content-browser-ui {\n flex: 1;\n overflow: auto;\n}\n.fx-view-content-browser-presentation {\n flex: 1;\n min-height: calc(var(--fx-ref-space-48) * 2 + var(--fx-ref-space-24));\n position: relative;\n}\n.fx-view-dockview .dv-render-overlay:has(.fx-view-viewport-surface) {\n transform: none;\n will-change: auto;\n}\n.fx-view-viewport-surface,\n.fx-view-viewport-surface [data-forgeax-view-workspace=root],\n.fx-view-viewport-surface [data-forgeax-view-workspace=workbench],\n.fx-view-viewport-surface [data-forgeax-view-workspace=preview],\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n flex: 1 1 auto;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] {\n position: relative;\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n grid-template-rows: minmax(0, 1fr);\n overflow: hidden;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] #app-shell,\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] #app {\n width: 100% !important;\n height: 100% !important;\n max-width: 100%;\n max-height: 100%;\n display: block;\n transform: none;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] #app-shell {\n position: relative;\n}\n#forgeax-fatal {\n display: none !important;\n}\n.fx-engine-fatal-banner {\n position: absolute;\n top: var(--fx-ref-space-12);\n left: 50%;\n z-index: var(--fx-layer-toast);\n box-sizing: border-box;\n display: flex;\n width: min(720px, calc(100% - var(--fx-ref-space-24)));\n max-height: 40%;\n padding: var(--fx-ref-space-8) var(--fx-ref-space-12);\n overflow: hidden;\n transform: translateX(-50%);\n align-items: flex-start;\n gap: var(--fx-space-control);\n border: var(--fx-border-width) solid var(--fx-color-status-error-fg);\n border-radius: var(--fx-radius-popover);\n background: var(--fx-color-status-error-bg);\n color: var(--fx-color-status-error-fg);\n box-shadow: var(--fx-shadow-floating);\n pointer-events: auto;\n}\n.fx-view-viewport-surface [data-forgeax-view-workspace=targets] > .fx-engine-fatal-banner {\n grid-area: 1 / 1;\n}\n.fx-engine-fatal-banner[hidden] {\n display: none;\n}\n.fx-engine-fatal-banner__message {\n margin: 0;\n flex: 1;\n min-width: 0;\n max-height: 100%;\n overflow: auto;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n font: var(--fx-type-code-font-weight) var(--fx-type-code-font-size)/var(--fx-type-code-line-height) var(--fx-type-code-font-family);\n}\n.fx-engine-fatal-banner__actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: var(--fx-ref-space-4);\n}\n';
|
|
20828
|
+
if (typeof document !== "undefined" && !document.querySelector('style[data-forgeax-css="c0fb89835ea6fd204d3177f4c3e976967d48fae31ad5ab4cadcc827e2415243b"]')) {
|
|
20750
20829
|
const style = document.createElement("style");
|
|
20751
|
-
style.dataset.forgeaxCss = "
|
|
20830
|
+
style.dataset.forgeaxCss = "c0fb89835ea6fd204d3177f4c3e976967d48fae31ad5ab4cadcc827e2415243b";
|
|
20752
20831
|
style.textContent = css3;
|
|
20753
20832
|
document.head.append(style);
|
|
20754
20833
|
}
|
|
@@ -20768,7 +20847,7 @@ if (typeof document !== "undefined" && !document.querySelector('style[data-forge
|
|
|
20768
20847
|
|
|
20769
20848
|
// ../view-plugins/rhi-debug/ui.tsx
|
|
20770
20849
|
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
20771
|
-
var TapeViewer = lazy(async () => ({ default: (await import("./chunks/App-
|
|
20850
|
+
var TapeViewer = lazy(async () => ({ default: (await import("./chunks/App-4XQ5SNNT.mjs")).App }));
|
|
20772
20851
|
function mountRhiDebugPanel({ mountElement }) {
|
|
20773
20852
|
mountElement.classList.add("fx-rhi-tool");
|
|
20774
20853
|
const root = createRoot(mountElement);
|