123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import Container, { ContainerProps } from './container.js'
- interface AtRuleRaws 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 space between the at-rule name and its parameters.
- */
- afterName?: string
- /**
- * The symbols between the last parameter and `{` for rules.
- */
- between?: string
- /**
- * Contains `true` if the last child has an (optional) semicolon.
- */
- semicolon?: boolean
- /**
- * The rule’s selector with comments.
- */
- params?: {
- value: string
- raw: string
- }
- }
- export interface AtRuleProps extends ContainerProps {
- /** Name of the at-rule. */
- name: string
- /** Parameters following the name of the at-rule. */
- params?: string | number
- /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
- raws?: AtRuleRaws
- }
- /**
- * Represents an at-rule.
- *
- * ```js
- * Once (root, { AtRule }) {
- * let media = new AtRule({ name: 'media', params: 'print' })
- * media.append(…)
- * root.append(media)
- * }
- * ```
- *
- * If it’s followed in the CSS by a {} block, this node will have
- * a nodes property representing its children.
- *
- * ```js
- * const root = postcss.parse('@charset "UTF-8"; @media print {}')
- *
- * const charset = root.first
- * charset.type //=> 'atrule'
- * charset.nodes //=> undefined
- *
- * const media = root.last
- * media.nodes //=> []
- * ```
- */
- export default class AtRule extends Container {
- type: 'atrule'
- parent: Container | undefined
- raws: AtRuleRaws
- /**
- * The at-rule’s name immediately follows the `@`.
- *
- * ```js
- * const root = postcss.parse('@media print {}')
- * media.name //=> 'media'
- * const media = root.first
- * ```
- */
- name: string
- /**
- * The at-rule’s parameters, the values that follow the at-rule’s name
- * but precede any {} block.
- *
- * ```js
- * const root = postcss.parse('@media print, screen {}')
- * const media = root.first
- * media.params //=> 'print, screen'
- * ```
- */
- params: string
- constructor(defaults?: AtRuleProps)
- assign(overrides: object | AtRuleProps): this
- clone(overrides?: Partial<AtRuleProps>): this
- cloneBefore(overrides?: Partial<AtRuleProps>): this
- cloneAfter(overrides?: Partial<AtRuleProps>): this
- }
|