/** * DOM Adapter * Contract: js-browser-architecture-contract_v2.yaml * * Wraps all DOM access. Only adapters may access document/window directly. */ export const domAdapter = { getElementById: (id) => document.getElementById(id), querySelector: (element, selector) => element.querySelector(selector), querySelectorAll: (element, selector) => element.querySelectorAll(selector), createElement: (tagName) => document.createElement(tagName), appendChild: (parent, child) => parent.appendChild(child), removeChild: (parent, child) => parent.removeChild(child), setInnerHTML: (element, html) => { element.innerHTML = html; }, getInnerHTML: (element) => element.innerHTML, setAttribute: (element, name, value) => element.setAttribute(name, value), getAttribute: (element, name) => element.getAttribute(name), addClass: (element, className) => element.classList.add(className), removeClass: (element, className) => element.classList.remove(className), hasClass: (element, className) => element.classList.contains(className), setStyle: (element, property, value) => { element.style[property] = value; }, getTextContent: (element) => element.textContent, setTextContent: (element, text) => { element.textContent = text; } };