import { ContainerWithChildren } from './container.js' | |
import Node from './node.js' | |
declare namespace Declaration { | |
export interface DeclarationRaws extends Record<string, unknown> { | |
/** | |
* The space symbols before the node. It also stores `*` | |
* and `_` symbols before the declaration (IE hack). | |
*/ | |
before?: string | |
/** | |
* The symbols between the property and value for declarations. | |
*/ | |
between?: string | |
/** | |
* The content of the important statement, if it is not just `!important`. | |
*/ | |
important?: string | |
/** | |
* Declaration value with comments. | |
*/ | |
value?: { | |
raw: string | |
value: string | |
} | |
} | |
export interface DeclarationProps { | |
/** Whether the declaration has an `!important` annotation. */ | |
important?: boolean | |
/** Name of the declaration. */ | |
prop: string | |
/** Information used to generate byte-to-byte equal node string as it was in the origin input. */ | |
raws?: DeclarationRaws | |
/** Value of the declaration. */ | |
value: string | |
} | |
// eslint-disable-next-line @typescript-eslint/no-use-before-define | |
export { Declaration_ as default } | |
} | |
/** | |
* It represents a class that handles | |
* [CSS declarations](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_declarations) | |
* | |
* ```js | |
* Once (root, { Declaration }) { | |
* const color = new Declaration({ prop: 'color', value: 'black' }) | |
* root.append(color) | |
* } | |
* ``` | |
* | |
* ```js | |
* const root = postcss.parse('a { color: black }') | |
* const decl = root.first?.first | |
* | |
* decl.type //=> 'decl' | |
* decl.toString() //=> ' color: black' | |
* ``` | |
*/ | |
declare class Declaration_ extends Node { | |
/** | |
* It represents a specificity of the declaration. | |
* | |
* If true, the CSS declaration will have an | |
* [important](https://developer.mozilla.org/en-US/docs/Web/CSS/important) | |
* specifier. | |
* | |
* ```js | |
* const root = postcss.parse('a { color: black !important; color: red }') | |
* | |
* root.first.first.important //=> true | |
* root.first.last.important //=> undefined | |
* ``` | |
*/ | |
important: boolean | |
parent: ContainerWithChildren | undefined | |
/** | |
* The property name for a CSS declaration. | |
* | |
* ```js | |
* const root = postcss.parse('a { color: black }') | |
* const decl = root.first.first | |
* | |
* decl.prop //=> 'color' | |
* ``` | |
*/ | |
prop: string | |
raws: Declaration.DeclarationRaws | |
type: 'decl' | |
/** | |
* The property value for a CSS declaration. | |
* | |
* Any CSS comments inside the value string will be filtered out. | |
* CSS comments present in the source value will be available in | |
* the `raws` property. | |
* | |
* Assigning new `value` would ignore the comments in `raws` | |
* property while compiling node to string. | |
* | |
* ```js | |
* const root = postcss.parse('a { color: black }') | |
* const decl = root.first.first | |
* | |
* decl.value //=> 'black' | |
* ``` | |
*/ | |
value: string | |
/** | |
* It represents a getter that returns `true` if a declaration starts with | |
* `--` or `$`, which are used to declare variables in CSS and SASS/SCSS. | |
* | |
* ```js | |
* const root = postcss.parse(':root { --one: 1 }') | |
* const one = root.first.first | |
* | |
* one.variable //=> true | |
* ``` | |
* | |
* ```js | |
* const root = postcss.parse('$one: 1') | |
* const one = root.first | |
* | |
* one.variable //=> true | |
* ``` | |
*/ | |
variable: boolean | |
constructor(defaults?: Declaration.DeclarationProps) | |
assign(overrides: Declaration.DeclarationProps | object): this | |
clone(overrides?: Partial<Declaration.DeclarationProps>): Declaration | |
cloneAfter(overrides?: Partial<Declaration.DeclarationProps>): Declaration | |
cloneBefore(overrides?: Partial<Declaration.DeclarationProps>): Declaration | |
} | |
declare class Declaration extends Declaration_ {} | |
export = Declaration | |