| import Container, { ContainerProps } from './container.js' |
| |
| interface RuleRaws extends Record<string, unknown> { |
| /** |
| * The space symbols before the node. It also stores `*` |
| * and `_` symbols before the declaration (IE hack). |
| */ |
| before?: string |
| |
| /** |
| * The space symbols after the last child of the node to the end of the node. |
| */ |
| after?: string |
| |
| /** |
| * The symbols between the selector and `{` for rules. |
| */ |
| between?: string |
| |
| /** |
| * Contains `true` if the last child has an (optional) semicolon. |
| */ |
| semicolon?: boolean |
| |
| /** |
| * Contains `true` if there is semicolon after rule. |
| */ |
| ownSemicolon?: string |
| |
| /** |
| * The rule’s selector with comments. |
| */ |
| selector?: { |
| value: string |
| raw: string |
| } |
| } |
| |
| export interface RuleProps extends ContainerProps { |
| /** Selector or selectors of the rule. */ |
| selector?: string |
| /** Selectors of the rule represented as an array of strings. */ |
| selectors?: string[] |
| /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ |
| raws?: RuleRaws |
| } |
| |
| /** |
| * Represents a CSS rule: a selector followed by a declaration block. |
| * |
| * ```js |
| * Once (root, { Rule }) { |
| * let a = new Rule({ selector: 'a' }) |
| * a.append(…) |
| * root.append(a) |
| * } |
| * ``` |
| * |
| * ```js |
| * const root = postcss.parse('a{}') |
| * const rule = root.first |
| * rule.type //=> 'rule' |
| * rule.toString() //=> 'a{}' |
| * ``` |
| */ |
| export default class Rule extends Container { |
| type: 'rule' |
| parent: Container | undefined |
| raws: RuleRaws |
| |
| /** |
| * The rule’s full selector represented as a string. |
| * |
| * ```js |
| * const root = postcss.parse('a, b { }') |
| * const rule = root.first |
| * rule.selector //=> 'a, b' |
| * ``` |
| */ |
| selector: string |
| |
| /** |
| * An array containing the rule’s individual selectors. |
| * Groups of selectors are split at commas. |
| * |
| * ```js |
| * const root = postcss.parse('a, b { }') |
| * const rule = root.first |
| * |
| * rule.selector //=> 'a, b' |
| * rule.selectors //=> ['a', 'b'] |
| * |
| * rule.selectors = ['a', 'strong'] |
| * rule.selector //=> 'a, strong' |
| * ``` |
| */ |
| selectors: string[] |
| |
| constructor(defaults?: RuleProps) |
| assign(overrides: object | RuleProps): this |
| clone(overrides?: Partial<RuleProps>): this |
| cloneBefore(overrides?: Partial<RuleProps>): this |
| cloneAfter(overrides?: Partial<RuleProps>): this |
| } |