Jacob Schmidt bdc1e36e63 Implement interactive garage UI with service-based client bridge
- replace placeholder garage interaction with real UI open flow
- add catalog/session/UI bridge services for hydrate, sync, store, and retrieve actions
- migrate garage web UI bundle to new app shell/runtime structure
- align org/store function naming with shared init and UI bridge patterns
2026-03-14 03:06:18 -05:00

65 lines
2.2 KiB
HTML

<!-- Generated by tools/build-webui.mjs for garage UI index. Do not edit directly. -->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FORGE Vehicle Garage</title>
<script>
window.ForgeSiteConfig = {
addonName: "garage",
logLabel: "Garage UI",
styles: ["garage-ui.css"],
commonScripts: ["forge-webui.js"],
scripts: ["garage-ui.js"],
};
(function loadForgeSiteLoader() {
const armaLoaderPath =
"forge\\forge_client\\addons\\common\\ui\\_site\\forge-site-loader.js";
const browserLoaderPath =
"../../../common/ui/_site/forge-site-loader.js";
function appendScript(js) {
const script = document.createElement("script");
script.text = js;
document.head.appendChild(script);
}
function requestLoader() {
if (
typeof A3API !== "undefined" &&
A3API &&
typeof A3API.RequestFile === "function"
) {
return A3API.RequestFile(armaLoaderPath);
}
return fetch(browserLoaderPath).then((response) => {
if (!response.ok) {
throw new Error(
"Failed to load " + browserLoaderPath,
);
}
return response.text();
});
}
requestLoader()
.then(appendScript)
.catch((error) => {
console.error(
"[Garage UI] Failed to load Forge site loader.",
error,
);
});
})();
</script>
</head>
<body>
<div id="app"></div>
</body>
</html>