@paperbits/common
Version:
Paperbits common components.
38 lines (31 loc) • 1.09 kB
text/typescript
import * as Utils from "../utils";
import { StyleRule } from "./styleRule";
import { StyleMediaQuery } from "./styleMediaQuery";
export class Style {
public readonly rules: StyleRule[];
public selector: string;
public nestedStyles: Style[];
public readonly nestedGlobalStyles: Style[];
public modifierStyles: Style[];
public readonly pseudoStyles: Style[];
public readonly nestedMediaQueries: StyleMediaQuery[];
// descendant selector (space)
// child selector (>)
// adjacent sibling selector (+)
// general sibling selector (~)
constructor(selector: string) {
this.selector = Utils.camelCaseToKebabCase(selector);
this.rules = [];
this.nestedStyles = [];
this.nestedGlobalStyles = [];
this.modifierStyles = [];
this.pseudoStyles = [];
this.nestedMediaQueries = [];
}
public addRule(rule: StyleRule): void {
this.rules.push(rule);
}
public addRules(rules: StyleRule[]): void {
this.rules.push(...rules);
}
}