152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 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 {
 | |
|   parent: ContainerWithChildren | undefined
 | |
|   raws: Declaration.DeclarationRaws
 | |
| 
 | |
|   type: 'decl'
 | |
| 
 | |
|   /**
 | |
|    * 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
 | |
|    * ```
 | |
|    */
 | |
|   get important(): boolean
 | |
|   set important(value: boolean)
 | |
| 
 | |
|   /**
 | |
|    * The property name for a CSS declaration.
 | |
|    *
 | |
|    * ```js
 | |
|    * const root = postcss.parse('a { color: black }')
 | |
|    * const decl = root.first.first
 | |
|    *
 | |
|    * decl.prop //=> 'color'
 | |
|    * ```
 | |
|    */
 | |
|   get prop(): string
 | |
| 
 | |
|   set prop(value: string)
 | |
| 
 | |
|   /**
 | |
|    * 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'
 | |
|    * ```
 | |
|    */
 | |
|   get value(): string
 | |
|   set value(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
 | |
|    * ```
 | |
|    */
 | |
|   get variable(): boolean
 | |
|   constructor(defaults?: Declaration.DeclarationProps)
 | |
| 
 | |
|   assign(overrides: Declaration.DeclarationProps | object): this
 | |
|   clone(overrides?: Partial<Declaration.DeclarationProps>): this
 | |
|   cloneAfter(overrides?: Partial<Declaration.DeclarationProps>): this
 | |
|   cloneBefore(overrides?: Partial<Declaration.DeclarationProps>): this
 | |
| }
 | |
| 
 | |
| declare class Declaration extends Declaration_ {}
 | |
| 
 | |
| export = Declaration
 |