import {CSSResultGroup} from "lit" import * as state from "../../nexus/state.js" import {mixin} from "./mixin.js" import {ob} from "../../tools/ob.js" import {Pipe} from "../../tools/pipe.js" import {Flat} from "../../flatstate/flat.js" import {Context} from "../../nexus/context.js" import {BaseElementClasses} from "../element.js" import {SignalTower} from "../../signals/tower.js" export namespace apply { export const css = ( (theme: CSSResultGroup) => ( (elements: E) => ( ob(elements).map(Element => mixin.css(theme)(Element)) ) ) ) export const flat = ( (flat: Flat) => ( (elements: E) => ( ob(elements).map((Element: any) => mixin.flat(flat)(Element)) ) ) ) export const signals = ( (signals: SignalTower) => ( (elements: E) => ( ob(elements).map((Element: any) => mixin.signals(signals)(Element)) ) ) ) export const reactive = ( (r = state.reactor) => ( (elements: E) => ( ob(elements).map((Element: any) => mixin.reactive(r)(Element)) ) ) ) /** @deprecated use `reactive` instead */ export const reactor = reactive /** @deprecated use `setup` instead */ export const context = ( (context: Context) => ( (elements: E) => ( Pipe.with(elements) .to(css(context.theme)) .to(reactive()) .done() as E ) ) ) export const setup = ( (...styles: CSSResultGroup[]) => ( (elements: E) => ( ob(elements).map((Element: any) => mixin.setup(...styles)(Element)) ) ) ) }