const shadowSheet = new CSSStyleSheet();
shadowSheet.replaceSync(':host(:state(empty)) { display: none }');
const lightSheet = new CSSStyleSheet();
lightSheet.replaceSync(':state(empty) { display: none }');
class HiddenStateController {
    hostConnected() {
        if (!this.internals) return;
        const root = this.host.shadowRoot;
        if (root) {
            if (shadowSheet && !root.adoptedStyleSheets.includes(shadowSheet)) root.adoptedStyleSheets.push(shadowSheet);
            return;
        }
        const parent = this.host.getRootNode();
        if (lightSheet && (parent instanceof Document || parent instanceof ShadowRoot) && !parent.adoptedStyleSheets.includes(lightSheet)) parent.adoptedStyleSheets.push(lightSheet);
    }
    set isEmpty(value) {
        if (value) this.internals.states.add('empty');
        else this.internals.states.delete('empty');
    }
    get isEmpty() {
        return this.internals.states.has('empty');
    }
    constructor(host){
        this.host = host;
        this.internals = host.attachInternals();
        this.internals.states.add('empty');
        host.addController(this);
    }
}
export { HiddenStateController };
