diff --git a/demo.html b/demo.html index 45875e3..9073cb5 100644 --- a/demo.html +++ b/demo.html @@ -250,18 +250,30 @@

Architecture Diagram

height: 600, }); + let currentAst = null; + function parseAndRender() { errorContainer.innerHTML = ''; try { - const ast = parse(editor.value); - visualizer.render(ast, viewMode.value); + currentAst = parse(editor.value); + + // Auto-select schema if no instances defined and mode not explicitly changed + if (currentAst.instances.length === 0 && viewMode.value === 'instances') { + viewMode.value = 'schema'; + } + + visualizer.render(currentAst, viewMode.value); } catch (e) { errorContainer.innerHTML = `
${e.message}
`; } } parseBtn.addEventListener('click', parseAndRender); - viewMode.addEventListener('change', parseAndRender); + viewMode.addEventListener('change', () => { + if (currentAst) { + visualizer.render(currentAst, viewMode.value); + } + }); // Parse on load parseAndRender();