import { isCaptureMode, getCaptureSection } from "./state.mjs"; import { initializeInteractions } from "./interactions.js"; import { initializeFlowScenes } from "./scenes-flow.js"; import { initializeFocusScenes } from "./scenes-focus.js"; import { initializeAgent } from "./agent.js"; import { initializeSplash } from "./splash-motion.js"; /** Capture layout is settled before any controller reads geometry or starts motion. */ export function applyCapture(document, search) { if (isCaptureMode(search)) document.documentElement.dataset.capture = "true"; const captureSection = getCaptureSection(search); if (!captureSection) return; document.documentElement.dataset.isolated = "true"; document.querySelectorAll("[data-capture-section]").forEach((section) => { section.hidden = section.dataset.captureSection !== captureSection; }); } export function initializePage(document, env = window) { applyCapture(document, env.location.search); const dispose = [ initializeInteractions(document, env), initializeFlowScenes(document, env), initializeFocusScenes(document, env), ]; const agent = document.querySelector("[data-agent-demo]"); const splash = document.querySelector("[data-splash-demo]"); if (agent) dispose.push(initializeAgent(agent, env)); if (splash) dispose.push(initializeSplash(splash, env)); return () => dispose.forEach((cleanup) => cleanup()); } if (typeof document !== "undefined") initializePage(document);