text: import { c as componentOnReady } from './helpers.js';
  
  const attachComponent = async (delegate, container, component, cssClasses, componentProps) => {
    if (delegate) {
      return delegate.attachViewToDom(container, component, componentProps, cssClasses);
    }
    if (typeof component !== 'string' && !(component instanceof HTMLElement)) {
      throw new Error('framework delegate is missing');
    }
    const el = (typeof component === 'string')
      ? container.ownerDocument && container.ownerDocument.createElement(component)
      : component;
    if (cssClasses) {
      cssClasses.forEach(c => el.classList.add(c));
    }
    if (componentProps) {
      Object.assign(el, componentProps);
    }
    container.appendChild(el);
    await new Promise(resolve => componentOnReady(el, resolve));
    return el;
  };
  const detachComponent = (delegate, element) => {
    if (element) {
      if (delegate) {
        const container = element.parentElement;
        return delegate.removeViewFromDom(container, element);
      }
      element.remove();
    }
    return Promise.resolve();
  };
  
  export { attachComponent as a, detachComponent as d };
  