Files
cnc_wams/wasm-port/runtime/ui/ini-panel/workflow-overview.html

244 lines
10 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>LinuxCNC INI Workflow Overview</title>
<style>
:root {
color-scheme: light;
--bg: #f2f5f8;
--panel: #ffffff;
--border: #cfd8e1;
--text: #17212b;
--muted: #5a6875;
--accent: #1366a6;
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: "Segoe UI", "Noto Sans", sans-serif;
background: var(--bg);
color: var(--text);
}
main {
max-width: 960px;
margin: 0 auto;
padding: 24px;
display: grid;
gap: 16px;
}
.panel {
background: var(--panel);
border: 1px solid var(--border);
border-radius: 8px;
box-shadow: 0 10px 30px rgba(17, 34, 51, 0.06);
padding: 16px;
display: grid;
gap: 14px;
}
h1 {
margin: 0;
font-size: 18px;
font-weight: 600;
}
p {
margin: 0;
color: var(--muted);
font: 13px/1.5 "Segoe UI", "Noto Sans", sans-serif;
}
.overview-status {
border-top: 1px solid var(--border);
padding-top: 12px;
display: grid;
gap: 8px;
}
.overview-status dl {
margin: 0;
display: grid;
grid-template-columns: minmax(120px, 180px) 1fr;
gap: 6px 12px;
font: 13px/1.4 "Segoe UI", "Noto Sans", sans-serif;
}
.overview-status dt {
color: var(--muted);
}
.overview-status dd {
margin: 0;
color: var(--text);
overflow-wrap: anywhere;
}
</style>
</head>
<body>
<main>
<section class="panel">
<h1>LinuxCNC INI Workflow Overview</h1>
<p>Read-only shell handoff overview for mount, readonly status, and overall workflow readiness.</p>
<section class="overview-status" aria-label="Shell handoff workflow overview" data-handoff-workflow>
<p data-handoff-workflow-status>Checking shell handoff workflow summary.</p>
<dl data-handoff-workflow-rows></dl>
</section>
</section>
</main>
<script type="module">
import {
createIniPanelShellViewModel,
createIniPanelShellSessionHandoffWorkflowDomContract,
createIniPanelShellSessionHandoffWorkflowDomReadiness,
createIniPanelShellSessionHandoffWorkflowRenderState,
createIniPanelShellSessionReadinessWorkflowReport,
createIniPanelShellWorkflowOverviewContract,
createIniPanelShellWorkflowOverviewReadiness,
createIniPanelShellWorkflowOverviewEmbeddingReport,
createIniPanelShellWorkflowOverviewEmbeddingDisplayViewModel,
createIniPanelShellWorkflowOverviewEmbeddingRenderState,
createIniPanelShellWorkflowOverviewEmbeddingDomContract,
createIniPanelShellWorkflowOverviewEmbeddingDomReadiness,
mountIniPanelShellWorkflowOverviewEmbedding,
createMachineSessionPersistenceSummary,
renderIniPanelShellWorkflowOverviewEmbeddingState,
mountIniPanelShellWorkflowOverviewEmbeddingState,
createIniPanelShellWorkflowOverviewEmbeddingMountDisplayViewModel,
createIniPanelShellWorkflowOverviewEmbeddingMountRenderState,
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness,
renderIniPanelShellWorkflowOverviewEmbeddingMountState,
mountIniPanelShellWorkflowOverviewEmbeddingMountState,
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson,
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl,
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel,
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState,
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness,
renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactState,
mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactState,
renderIniPanelShellSessionHandoffWorkflowState,
mountIniPanelShellSessionHandoffWorkflow,
} from "./ui-shell.js";
const shellViewModel = createIniPanelShellViewModel();
const workflowRenderState = shellViewModel.shellSessionHandoffWorkflowRenderState;
renderIniPanelShellSessionHandoffWorkflowState(workflowRenderState, { documentRef: document });
window.linuxCncIniPanelWorkflowOverviewApi = {
getWorkflowOverviewRenderState: () => shellViewModel.shellSessionHandoffWorkflowRenderState,
getWorkflowOverviewDisplayViewModel: () => shellViewModel.shellSessionHandoffWorkflowDisplayViewModel,
getWorkflowOverviewSummary: () => shellViewModel.shellSessionHandoffWorkflowSummary,
getWorkflowOverviewSessionReadinessReport: (options) => (
createIniPanelShellSessionReadinessWorkflowReport(options ?? {
workflowSummary: shellViewModel.shellSessionHandoffWorkflowSummary,
})
),
getWorkflowOverviewApiSurfaceInventory: (options) => (
shellViewModel.createShellApiSurfaceInventory(options ?? {
launchApiManifest: shellViewModel.launchApiManifest,
controlPageApiManifest: shellViewModel.controlPage.browserApiManifest,
workflowOverviewContract: shellViewModel.shellWorkflowOverviewContract,
sessionReadinessWorkflowReport: shellViewModel.shellSessionReadinessWorkflowReport,
})
),
getWorkflowOverviewPersistenceSummary: (options) => (
createMachineSessionPersistenceSummary(options)
),
validateWorkflowOverviewReleaseReadinessArtifactJson: (artifactJson) => (
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson(artifactJson)
),
loadWorkflowOverviewReleaseReadinessArtifactUrl: (options) => (
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl(options)
),
getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel: (validation) => (
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(validation)
),
getWorkflowOverviewReleaseReadinessArtifactRenderState: (displayViewModel) => (
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState(displayViewModel)
),
getWorkflowOverviewReleaseReadinessArtifactDomContract: (options) => (
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract(options)
),
getWorkflowOverviewReleaseReadinessArtifactDomReadiness: (options) => (
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness(options ?? { documentRef: document })
),
renderWorkflowOverviewReleaseReadinessArtifactState: (renderState, options) => (
renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactState(renderState, options ?? { documentRef: document })
),
mountWorkflowOverviewReleaseReadinessArtifactState: (options) => (
mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactState(options ?? { documentRef: document })
),
getWorkflowOverviewDomContract: (options) => (
createIniPanelShellSessionHandoffWorkflowDomContract(options)
),
getWorkflowOverviewDomReadiness: (options) => (
createIniPanelShellSessionHandoffWorkflowDomReadiness(options ?? { documentRef: document })
),
renderWorkflowOverview: (renderState, options) => (
renderIniPanelShellSessionHandoffWorkflowState(
renderState ?? shellViewModel.shellSessionHandoffWorkflowRenderState,
options ?? { documentRef: document },
)
),
mountWorkflowOverview: (options) => (
mountIniPanelShellSessionHandoffWorkflow(options ?? {
renderState: shellViewModel.shellSessionHandoffWorkflowRenderState,
documentRef: document,
})
),
createWorkflowOverviewRenderState: createIniPanelShellSessionHandoffWorkflowRenderState,
getWorkflowOverviewContract: () => createIniPanelShellWorkflowOverviewContract(),
getWorkflowOverviewReadinessFromApi: () => createIniPanelShellWorkflowOverviewReadiness({
overviewApi: window.linuxCncIniPanelWorkflowOverviewApi,
}),
mountWorkflowOverviewEmbedding: (options) => (
mountIniPanelShellWorkflowOverviewEmbedding({
overviewApi: window.linuxCncIniPanelWorkflowOverviewApi,
...(options ?? {}),
})
),
getWorkflowOverviewEmbeddingReport: (embeddingResult, contract) => (
createIniPanelShellWorkflowOverviewEmbeddingReport(embeddingResult, contract)
),
getWorkflowOverviewEmbeddingDisplayViewModel: (report) => (
createIniPanelShellWorkflowOverviewEmbeddingDisplayViewModel(report)
),
getWorkflowOverviewEmbeddingRenderState: (displayViewModel) => (
createIniPanelShellWorkflowOverviewEmbeddingRenderState(displayViewModel)
),
getWorkflowOverviewEmbeddingDomContract: (options) => (
createIniPanelShellWorkflowOverviewEmbeddingDomContract(options)
),
getWorkflowOverviewEmbeddingDomReadiness: (options) => (
createIniPanelShellWorkflowOverviewEmbeddingDomReadiness(options ?? { documentRef: document })
),
renderWorkflowOverviewEmbeddingState: (renderState, options) => (
renderIniPanelShellWorkflowOverviewEmbeddingState(renderState, options ?? { documentRef: document })
),
mountWorkflowOverviewEmbeddingState: (options) => (
mountIniPanelShellWorkflowOverviewEmbeddingState(options ?? {
documentRef: document,
})
),
getWorkflowOverviewEmbeddingMountDisplayViewModel: (mountResult) => (
createIniPanelShellWorkflowOverviewEmbeddingMountDisplayViewModel(mountResult)
),
getWorkflowOverviewEmbeddingMountRenderState: (displayViewModel) => (
createIniPanelShellWorkflowOverviewEmbeddingMountRenderState(displayViewModel)
),
getWorkflowOverviewEmbeddingMountDomContract: (options) => (
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract(options)
),
getWorkflowOverviewEmbeddingMountDomReadiness: (options) => (
createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness(options ?? { documentRef: document })
),
renderWorkflowOverviewEmbeddingMountState: (renderState, options) => (
renderIniPanelShellWorkflowOverviewEmbeddingMountState(renderState, options ?? { documentRef: document })
),
mountWorkflowOverviewEmbeddingMountState: (options) => (
mountIniPanelShellWorkflowOverviewEmbeddingMountState(options ?? {
documentRef: document,
})
),
};
</script>
</body>
</html>