Index: imaps-frontend/node_modules/postcss/lib/at-rule.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/at-rule.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/at-rule.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -81,4 +81,16 @@
 declare class AtRule_ extends Container {
   /**
+   * The at-rule’s name immediately follows the `@`.
+   *
+   * ```js
+   * const root  = postcss.parse('@media print {}')
+   * const media = root.first
+   * media.name //=> 'media'
+   * ```
+   */
+  get name(): string
+  set name(value: string)
+
+  /**
    * An array containing the layer’s children.
    *
@@ -99,27 +111,4 @@
    */
   nodes: Container['nodes']
-  parent: ContainerWithChildren | undefined
-
-  raws: AtRule.AtRuleRaws
-  type: 'atrule'
-  constructor(defaults?: AtRule.AtRuleProps)
-  assign(overrides: AtRule.AtRuleProps | object): this
-
-  clone(overrides?: Partial<AtRule.AtRuleProps>): this
-
-  cloneAfter(overrides?: Partial<AtRule.AtRuleProps>): this
-
-  cloneBefore(overrides?: Partial<AtRule.AtRuleProps>): this
-  /**
-   * The at-rule’s name immediately follows the `@`.
-   *
-   * ```js
-   * const root  = postcss.parse('@media print {}')
-   * const media = root.first
-   * media.name //=> 'media'
-   * ```
-   */
-  get name(): string
-  set name(value: string)
   /**
    * The at-rule’s parameters, the values that follow the at-rule’s name
@@ -134,4 +123,15 @@
   get params(): string
   set params(value: string)
+  parent: ContainerWithChildren | undefined
+
+  raws: AtRule.AtRuleRaws
+
+  type: 'atrule'
+
+  constructor(defaults?: AtRule.AtRuleProps)
+  assign(overrides: AtRule.AtRuleProps | object): this
+  clone(overrides?: Partial<AtRule.AtRuleProps>): AtRule
+  cloneAfter(overrides?: Partial<AtRule.AtRuleProps>): AtRule
+  cloneBefore(overrides?: Partial<AtRule.AtRuleProps>): AtRule
 }
 
Index: imaps-frontend/node_modules/postcss/lib/comment.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/comment.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/comment.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -49,12 +49,4 @@
   parent: Container | undefined
   raws: Comment.CommentRaws
-  type: 'comment'
-  constructor(defaults?: Comment.CommentProps)
-
-  assign(overrides: Comment.CommentProps | object): this
-
-  clone(overrides?: Partial<Comment.CommentProps>): this
-  cloneAfter(overrides?: Partial<Comment.CommentProps>): this
-  cloneBefore(overrides?: Partial<Comment.CommentProps>): this
   /**
    * The comment's text.
@@ -62,4 +54,12 @@
   get text(): string
   set text(value: string)
+
+  type: 'comment'
+
+  constructor(defaults?: Comment.CommentProps)
+  assign(overrides: Comment.CommentProps | object): this
+  clone(overrides?: Partial<Comment.CommentProps>): Comment
+  cloneAfter(overrides?: Partial<Comment.CommentProps>): Comment
+  cloneBefore(overrides?: Partial<Comment.CommentProps>): Comment
 }
 
Index: imaps-frontend/node_modules/postcss/lib/container.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/container.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/container.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -21,23 +21,10 @@
      * An array of property names.
      */
-    props?: readonly string[]
+    props?: string[]
   }
 
   export interface ContainerProps extends NodeProps {
-    nodes?: readonly (ChildProps | Node)[]
+    nodes?: (ChildNode | ChildProps)[]
   }
-
-  /**
-   * All types that can be passed into container methods to create or add a new
-   * child node.
-   */
-  export type NewChild =
-    | ChildProps
-    | Node
-    | readonly ChildProps[]
-    | readonly Node[]
-    | readonly string[]
-    | string
-    | undefined
 
   // eslint-disable-next-line @typescript-eslint/no-use-before-define
@@ -66,24 +53,4 @@
 
   /**
-   * An internal method that converts a {@link NewChild} into a list of actual
-   * child nodes that can then be added to this container.
-   *
-   * This ensures that the nodes' parent is set to this container, that they use
-   * the correct prototype chain, and that they're marked as dirty.
-   *
-   * @param mnodes The new node or nodes to add.
-   * @param sample A node from whose raws the new node's `before` raw should be
-   *               taken.
-   * @param type   This should be set to `'prepend'` if the new nodes will be
-   *               inserted at the beginning of the container.
-   * @hidden
-   */
-  protected normalize(
-    nodes: Container.NewChild,
-    sample: Node | undefined,
-    type?: 'prepend' | false
-  ): Child[]
-
-  /**
    * Inserts new nodes to the end of the container.
    *
@@ -105,10 +72,20 @@
    * @return This node for methods chain.
    */
-  append(...nodes: Container.NewChild[]): this
+  append(
+    ...nodes: (
+      | ChildProps
+      | ChildProps[]
+      | Node
+      | Node[]
+      | string
+      | string[]
+      | undefined
+    )[]
+  ): this
+
   assign(overrides: Container.ContainerProps | object): this
-  clone(overrides?: Partial<Container.ContainerProps>): this
-  cloneAfter(overrides?: Partial<Container.ContainerProps>): this
-
-  cloneBefore(overrides?: Partial<Container.ContainerProps>): this
+  clone(overrides?: Partial<Container.ContainerProps>): Container<Child>
+  cloneAfter(overrides?: Partial<Container.ContainerProps>): Container<Child>
+  cloneBefore(overrides?: Partial<Container.ContainerProps>): Container<Child>
 
   /**
@@ -148,4 +125,5 @@
     callback: (node: Child, index: number) => false | void
   ): false | undefined
+
   /**
    * Returns `true` if callback returns `true`
@@ -162,5 +140,4 @@
     condition: (node: Child, index: number, nodes: Child[]) => boolean
   ): boolean
-
   /**
    * Returns a `child`’s index within the `Container#nodes` array.
@@ -174,4 +151,5 @@
    */
   index(child: Child | number): number
+
   /**
    * Insert new node after old node within the container.
@@ -181,6 +159,15 @@
    * @return This node for methods chain.
    */
-  insertAfter(oldNode: Child | number, newNode: Container.NewChild): this
-
+  insertAfter(
+    oldNode: Child | number,
+    newNode:
+      | Child
+      | Child[]
+      | ChildProps
+      | ChildProps[]
+      | string
+      | string[]
+      | undefined
+  ): this
   /**
    * Insert new node before old node within the container.
@@ -194,5 +181,15 @@
    * @return This node for methods chain.
    */
-  insertBefore(oldNode: Child | number, newNode: Container.NewChild): this
+  insertBefore(
+    oldNode: Child | number,
+    newNode:
+      | Child
+      | Child[]
+      | ChildProps
+      | ChildProps[]
+      | string
+      | string[]
+      | undefined
+  ): this
 
   /**
@@ -233,5 +230,15 @@
    * @return This node for methods chain.
    */
-  prepend(...nodes: Container.NewChild[]): this
+  prepend(
+    ...nodes: (
+      | ChildProps
+      | ChildProps[]
+      | Node
+      | Node[]
+      | string
+      | string[]
+      | undefined
+    )[]
+  ): this
   /**
    * Add child to the end of the node.
@@ -295,6 +302,6 @@
    *
    * @param pattern      Replace pattern.
-   * @param {object} options             Options to speed up the search.
-   * @param replaced   String to replace pattern or callback
+   * @param {object} opts                Options to speed up the search.
+   * @param callback   String to replace pattern or callback
    *                                     that returns a new value. The callback
    *                                     will receive the same arguments
Index: imaps-frontend/node_modules/postcss/lib/container.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/container.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/container.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,10 +1,10 @@
 'use strict'
 
+let { isClean, my } = require('./symbols')
+let Declaration = require('./declaration')
 let Comment = require('./comment')
-let Declaration = require('./declaration')
 let Node = require('./node')
-let { isClean, my } = require('./symbols')
-
-let AtRule, parse, Root, Rule
+
+let parse, Rule, AtRule, Root
 
 function cleanSource(nodes) {
@@ -199,5 +199,5 @@
       }
       nodes = [new Declaration(nodes)]
-    } else if (nodes.selector || nodes.selectors) {
+    } else if (nodes.selector) {
       nodes = [new Rule(nodes)]
     } else if (nodes.name) {
@@ -215,6 +215,4 @@
       if (i.parent) i.parent.removeChild(i)
       if (i[isClean]) markTreeDirty(i)
-
-      if (!i.raws) i.raws = {}
       if (typeof i.raws.before === 'undefined') {
         if (sample && typeof sample.raws.before !== 'undefined') {
Index: imaps-frontend/node_modules/postcss/lib/css-syntax-error.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/css-syntax-error.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/css-syntax-error.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -53,15 +53,6 @@
     let css = this.source
     if (color == null) color = pico.isColorSupported
-
-    let aside = text => text
-    let mark = text => text
-    let highlight = text => text
-    if (color) {
-      let { bold, gray, red } = pico.createColors(true)
-      mark = text => bold(red(text))
-      aside = text => gray(text)
-      if (terminalHighlight) {
-        highlight = text => terminalHighlight(text)
-      }
+    if (terminalHighlight) {
+      if (color) css = terminalHighlight(css)
     }
 
@@ -69,5 +60,15 @@
     let start = Math.max(this.line - 3, 0)
     let end = Math.min(this.line + 2, lines.length)
+
     let maxWidth = String(end).length
+
+    let mark, aside
+    if (color) {
+      let { bold, gray, red } = pico.createColors(true)
+      mark = text => bold(red(text))
+      aside = text => gray(text)
+    } else {
+      mark = aside = str => str
+    }
 
     return lines
@@ -77,44 +78,10 @@
         let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '
         if (number === this.line) {
-          if (line.length > 160) {
-            let padding = 20
-            let subLineStart = Math.max(0, this.column - padding)
-            let subLineEnd = Math.max(
-              this.column + padding,
-              this.endColumn + padding
-            )
-            let subLine = line.slice(subLineStart, subLineEnd)
-
-            let spacing =
-              aside(gutter.replace(/\d/g, ' ')) +
-              line
-                .slice(0, Math.min(this.column - 1, padding - 1))
-                .replace(/[^\t]/g, ' ')
-
-            return (
-              mark('>') +
-              aside(gutter) +
-              highlight(subLine) +
-              '\n ' +
-              spacing +
-              mark('^')
-            )
-          }
-
           let spacing =
             aside(gutter.replace(/\d/g, ' ')) +
             line.slice(0, this.column - 1).replace(/[^\t]/g, ' ')
-
-          return (
-            mark('>') +
-            aside(gutter) +
-            highlight(line) +
-            '\n ' +
-            spacing +
-            mark('^')
-          )
+          return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^')
         }
-
-        return ' ' + aside(gutter) + highlight(line)
+        return ' ' + aside(gutter) + line
       })
       .join('\n')
Index: imaps-frontend/node_modules/postcss/lib/declaration.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/declaration.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/declaration.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -64,17 +64,4 @@
  */
 declare class Declaration_ extends Node {
-  parent: ContainerWithChildren | undefined
-  raws: Declaration.DeclarationRaws
-
-  type: 'decl'
-
-  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
   /**
    * It represents a specificity of the declaration.
@@ -92,6 +79,8 @@
    */
   get important(): boolean
+  set important(value: boolean)
 
-  set important(value: boolean)
+  parent: ContainerWithChildren | undefined
+
   /**
    * The property name for a CSS declaration.
@@ -105,6 +94,10 @@
    */
   get prop(): string
+  set prop(value: string)
 
-  set prop(value: string)
+  raws: Declaration.DeclarationRaws
+
+  type: 'decl'
+
   /**
    * The property value for a CSS declaration.
@@ -126,4 +119,5 @@
   get value(): string
   set value(value: string)
+
   /**
    * It represents a getter that returns `true` if a declaration starts with
@@ -145,4 +139,11 @@
    */
   get variable(): boolean
+  set varaible(value: string)
+
+  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
 }
 
Index: imaps-frontend/node_modules/postcss/lib/document.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/document.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/document.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -6,5 +6,5 @@
 declare namespace Document {
   export interface DocumentProps extends ContainerProps {
-    nodes?: readonly Root[]
+    nodes?: Root[]
 
     /**
@@ -43,7 +43,7 @@
 
   assign(overrides: Document.DocumentProps | object): this
-  clone(overrides?: Partial<Document.DocumentProps>): this
-  cloneAfter(overrides?: Partial<Document.DocumentProps>): this
-  cloneBefore(overrides?: Partial<Document.DocumentProps>): this
+  clone(overrides?: Partial<Document.DocumentProps>): Document
+  cloneAfter(overrides?: Partial<Document.DocumentProps>): Document
+  cloneBefore(overrides?: Partial<Document.DocumentProps>): Document
 
   /**
Index: imaps-frontend/node_modules/postcss/lib/fromJSON.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/fromJSON.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/fromJSON.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,9 +1,9 @@
 'use strict'
 
+let Declaration = require('./declaration')
+let PreviousMap = require('./previous-map')
+let Comment = require('./comment')
 let AtRule = require('./at-rule')
-let Comment = require('./comment')
-let Declaration = require('./declaration')
 let Input = require('./input')
-let PreviousMap = require('./previous-map')
 let Root = require('./root')
 let Rule = require('./rule')
Index: imaps-frontend/node_modules/postcss/lib/input.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/input.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/input.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -175,7 +175,4 @@
     endColumn?: number
   ): false | Input.FilePosition
-  /** Converts this to a JSON-friendly object representation. */
-  toJSON(): object
-
   /**
    * The CSS source identifier. Contains `Input#file` if the user
Index: imaps-frontend/node_modules/postcss/lib/input.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/input.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/input.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,12 +1,12 @@
 'use strict'
 
-let { nanoid } = require('nanoid/non-secure')
-let { isAbsolute, resolve } = require('path')
 let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
 let { fileURLToPath, pathToFileURL } = require('url')
-
+let { isAbsolute, resolve } = require('path')
+let { nanoid } = require('nanoid/non-secure')
+
+let terminalHighlight = require('./terminal-highlight')
 let CssSyntaxError = require('./css-syntax-error')
 let PreviousMap = require('./previous-map')
-let terminalHighlight = require('./terminal-highlight')
 
 let fromOffsetCache = Symbol('fromOffsetCache')
@@ -62,5 +62,5 @@
 
   error(message, line, column, opts = {}) {
-    let endColumn, endLine, result
+    let result, endLine, endColumn
 
     if (line && typeof line === 'object') {
Index: imaps-frontend/node_modules/postcss/lib/lazy-result.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/lazy-result.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/lazy-result.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,13 +1,13 @@
 'use strict'
 
+let { isClean, my } = require('./symbols')
+let MapGenerator = require('./map-generator')
+let stringify = require('./stringify')
 let Container = require('./container')
 let Document = require('./document')
-let MapGenerator = require('./map-generator')
+let warnOnce = require('./warn-once')
+let Result = require('./result')
 let parse = require('./parse')
-let Result = require('./result')
 let Root = require('./root')
-let stringify = require('./stringify')
-let { isClean, my } = require('./symbols')
-let warnOnce = require('./warn-once')
 
 const TYPE_TO_CLASS_NAME = {
Index: imaps-frontend/node_modules/postcss/lib/list.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/list.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/list.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -48,12 +48,9 @@
      * @return Split values.
      */
-    split(
-      string: string,
-      separators: readonly string[],
-      last: boolean
-    ): string[]
+    split(string: string, separators: string[], last: boolean): string[]
   }
 }
 
+// eslint-disable-next-line @typescript-eslint/no-redeclare
 declare const list: list.List
 
Index: imaps-frontend/node_modules/postcss/lib/map-generator.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/map-generator.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/map-generator.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,6 +1,6 @@
 'use strict'
 
+let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
 let { dirname, relative, resolve, sep } = require('path')
-let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
 let { pathToFileURL } = require('url')
 
@@ -71,10 +71,10 @@
         node = this.root.nodes[i]
         if (node.type !== 'comment') continue
-        if (node.text.startsWith('# sourceMappingURL=')) {
+        if (node.text.indexOf('# sourceMappingURL=') === 0) {
           this.root.removeChild(i)
         }
       }
     } else if (this.css) {
-      this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, '')
+      this.css = this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm, '')
     }
   }
@@ -144,5 +144,5 @@
     }
 
-    let last, lines
+    let lines, last
     this.stringify(this.root, (str, node, type) => {
       this.css += str
Index: imaps-frontend/node_modules/postcss/lib/no-work-result.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/no-work-result.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/no-work-result.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,8 +2,8 @@
 
 let MapGenerator = require('./map-generator')
+let stringify = require('./stringify')
+let warnOnce = require('./warn-once')
 let parse = require('./parse')
 const Result = require('./result')
-let stringify = require('./stringify')
-let warnOnce = require('./warn-once')
 
 class NoWorkResult {
Index: imaps-frontend/node_modules/postcss/lib/node.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/node.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/node.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 import { AtRuleProps } from './at-rule.js'
 import Comment, { CommentProps } from './comment.js'
-import Container, { NewChild } from './container.js'
+import Container from './container.js'
 import CssSyntaxError from './css-syntax-error.js'
 import Declaration, { DeclarationProps } from './declaration.js'
@@ -236,12 +236,4 @@
 
   /**
-   * If this node isn't already dirty, marks it and its ancestors as such. This
-   * indicates to the LazyResult processor that the {@link Root} has been
-   * modified by the current plugin and may need to be processed again by other
-   * plugins.
-   */
-  protected markDirty(): void
-
-  /**
    * Insert new node after current node to current node’s parent.
    *
@@ -255,7 +247,5 @@
    * @return This node for methods chain.
    */
-  after(
-    newNode: Node | Node.ChildProps | readonly Node[] | string | undefined
-  ): this
+  after(newNode: Node | Node.ChildProps | Node[] | string | undefined): this
 
   /**
@@ -284,7 +274,5 @@
    * @return This node for methods chain.
    */
-  before(
-    newNode: Node | Node.ChildProps | readonly Node[] | string | undefined
-  ): this
+  before(newNode: Node | Node.ChildProps | Node[] | string | undefined): this
 
   /**
@@ -316,5 +304,5 @@
    * @return Duplicate of the node instance.
    */
-  clone(overrides?: object): this
+  clone(overrides?: object): Node
 
   /**
@@ -325,5 +313,5 @@
    * @return New node.
    */
-  cloneAfter(overrides?: object): this
+  cloneAfter(overrides?: object): Node
 
   /**
@@ -339,5 +327,5 @@
    * @return New node
    */
-  cloneBefore(overrides?: object): this
+  cloneBefore(overrides?: object): Node
 
   /**
@@ -483,5 +471,12 @@
    * @return Current node to methods chain.
    */
-  replaceWith(...nodes: NewChild[]): this
+  replaceWith(
+    ...nodes: (
+      | Node.ChildNode
+      | Node.ChildNode[]
+      | Node.ChildProps
+      | Node.ChildProps[]
+    )[]
+  ): this
 
   /**
Index: imaps-frontend/node_modules/postcss/lib/node.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/node.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/node.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,8 +1,8 @@
 'use strict'
 
+let { isClean, my } = require('./symbols')
 let CssSyntaxError = require('./css-syntax-error')
 let Stringifier = require('./stringifier')
 let stringify = require('./stringify')
-let { isClean, my } = require('./symbols')
 
 function cloneNode(obj, parent) {
@@ -31,34 +31,4 @@
 
   return cloned
-}
-
-function sourceOffset(inputCSS, position) {
-  // Not all custom syntaxes support `offset` in `source.start` and `source.end`
-  if (
-    position &&
-    typeof position.offset !== 'undefined'
-  ) {
-    return position.offset;
-  }
-
-  let column = 1
-  let line = 1
-  let offset = 0
-
-  for (let i = 0; i < inputCSS.length; i++) {
-    if (line === position.line && column === position.column) {
-      offset = i
-      break
-    }
-
-    if (inputCSS[i] === '\n') {
-      column = 1
-      line += 1
-    } else {
-      column += 1
-    }
-  }
-
-  return offset
 }
 
@@ -184,9 +154,4 @@
   }
 
-  /* c8 ignore next 3 */
-  markClean() {
-    this[isClean] = true
-  }
-
   markDirty() {
     if (this[isClean]) {
@@ -205,27 +170,23 @@
   }
 
-  positionBy(opts) {
+  positionBy(opts, stringRepresentation) {
     let pos = this.source.start
     if (opts.index) {
-      pos = this.positionInside(opts.index)
+      pos = this.positionInside(opts.index, stringRepresentation)
     } else if (opts.word) {
-      let stringRepresentation = this.source.input.css.slice(
-        sourceOffset(this.source.input.css, this.source.start),
-        sourceOffset(this.source.input.css, this.source.end)
-      )
+      stringRepresentation = this.toString()
       let index = stringRepresentation.indexOf(opts.word)
-      if (index !== -1) pos = this.positionInside(index)
+      if (index !== -1) pos = this.positionInside(index, stringRepresentation)
     }
     return pos
   }
 
-  positionInside(index) {
+  positionInside(index, stringRepresentation) {
+    let string = stringRepresentation || this.toString()
     let column = this.source.start.column
     let line = this.source.start.line
-    let offset = sourceOffset(this.source.input.css, this.source.start)
-    let end = offset + index
-
-    for (let i = offset; i < end; i++) {
-      if (this.source.input.css[i] === '\n') {
+
+    for (let i = 0; i < index; i++) {
+      if (string[i] === '\n') {
         column = 1
         line += 1
@@ -251,23 +212,18 @@
     let end = this.source.end
       ? {
-          column: this.source.end.column + 1,
-          line: this.source.end.line
-        }
+        column: this.source.end.column + 1,
+        line: this.source.end.line
+      }
       : {
-          column: start.column + 1,
-          line: start.line
-        }
+        column: start.column + 1,
+        line: start.line
+      }
 
     if (opts.word) {
-      let stringRepresentation = this.source.input.css.slice(
-        sourceOffset(this.source.input.css, this.source.start),
-        sourceOffset(this.source.input.css, this.source.end)
-      )
+      let stringRepresentation = this.toString()
       let index = stringRepresentation.indexOf(opts.word)
       if (index !== -1) {
-        start = this.positionInside(index)
-        end = this.positionInside(
-          index + opts.word.length,
-        )
+        start = this.positionInside(index, stringRepresentation)
+        end = this.positionInside(index + opts.word.length, stringRepresentation)
       }
     } else {
Index: imaps-frontend/node_modules/postcss/lib/parse.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/parse.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/parse.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,6 +2,6 @@
 
 let Container = require('./container')
+let Parser = require('./parser')
 let Input = require('./input')
-let Parser = require('./parser')
 
 function parse(css, opts) {
Index: imaps-frontend/node_modules/postcss/lib/parser.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/parser.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/parser.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,10 +1,10 @@
 'use strict'
 
+let Declaration = require('./declaration')
+let tokenizer = require('./tokenize')
+let Comment = require('./comment')
 let AtRule = require('./at-rule')
-let Comment = require('./comment')
-let Declaration = require('./declaration')
 let Root = require('./root')
 let Rule = require('./rule')
-let tokenizer = require('./tokenize')
 
 const SAFE_COMMENT_NEIGHBOR = {
@@ -144,5 +144,5 @@
   colon(tokens) {
     let brackets = 0
-    let prev, token, type
+    let token, type, prev
     for (let [i, element] of tokens.entries()) {
       token = element
@@ -268,10 +268,10 @@
         for (let j = i; j > 0; j--) {
           let type = cache[j][0]
-          if (str.trim().startsWith('!') && type !== 'space') {
+          if (str.trim().indexOf('!') === 0 && type !== 'space') {
             break
           }
           str = cache.pop()[1] + str
         }
-        if (str.trim().startsWith('!')) {
+        if (str.trim().indexOf('!') === 0) {
           node.important = true
           node.raws.important = str
Index: imaps-frontend/node_modules/postcss/lib/postcss.d.mts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/postcss.d.mts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/postcss.d.mts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -10,4 +10,5 @@
   parse,
   list,
+
   document,
   comment,
@@ -16,4 +17,5 @@
   decl,
   root,
+
   CssSyntaxError,
   Declaration,
@@ -66,4 +68,5 @@
 
   // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here.
-  type LazyResult
+  type LazyResult,
+
 } from './postcss.js'
Index: imaps-frontend/node_modules/postcss/lib/postcss.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/postcss.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/postcss.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,5 @@
 import AtRule, { AtRuleProps } from './at-rule.js'
 import Comment, { CommentProps } from './comment.js'
-import Container, { ContainerProps, NewChild } from './container.js'
+import Container, { ContainerProps } from './container.js'
 import CssSyntaxError from './css-syntax-error.js'
 import Declaration, { DeclarationProps } from './declaration.js'
@@ -29,20 +29,11 @@
   helper: postcss.Helpers
 ) => Promise<void> | void
-type RootProcessor = (
-  root: Root,
-  helper: postcss.Helpers
-) => Promise<void> | void
+type RootProcessor = (root: Root, helper: postcss.Helpers) => Promise<void> | void
 type DeclarationProcessor = (
   decl: Declaration,
   helper: postcss.Helpers
 ) => Promise<void> | void
-type RuleProcessor = (
-  rule: Rule,
-  helper: postcss.Helpers
-) => Promise<void> | void
-type AtRuleProcessor = (
-  atRule: AtRule,
-  helper: postcss.Helpers
-) => Promise<void> | void
+type RuleProcessor = (rule: Rule, helper: postcss.Helpers) => Promise<void> | void
+type AtRuleProcessor = (atRule: AtRule, helper: postcss.Helpers) => Promise<void> | void
 type CommentProcessor = (
   comment: Comment,
@@ -171,5 +162,4 @@
     list,
     Message,
-    NewChild,
     Node,
     NodeErrorOptions,
@@ -187,7 +177,7 @@
   }
 
-  export type SourceMap = {
+  export type SourceMap = SourceMapGenerator & {
     toJSON(): RawSourceMap
-  } & SourceMapGenerator
+  }
 
   export type Helpers = { postcss: Postcss; result: Result } & Postcss
@@ -446,7 +436,5 @@
  * @return Processor to process multiple CSS.
  */
-declare function postcss(
-  plugins?: readonly postcss.AcceptedPlugin[]
-): Processor
+declare function postcss(plugins?: postcss.AcceptedPlugin[]): Processor
 declare function postcss(...plugins: postcss.AcceptedPlugin[]): Processor
 
Index: imaps-frontend/node_modules/postcss/lib/postcss.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/postcss.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/postcss.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,22 +1,22 @@
 'use strict'
 
-let AtRule = require('./at-rule')
-let Comment = require('./comment')
-let Container = require('./container')
 let CssSyntaxError = require('./css-syntax-error')
 let Declaration = require('./declaration')
+let LazyResult = require('./lazy-result')
+let Container = require('./container')
+let Processor = require('./processor')
+let stringify = require('./stringify')
+let fromJSON = require('./fromJSON')
 let Document = require('./document')
-let fromJSON = require('./fromJSON')
+let Warning = require('./warning')
+let Comment = require('./comment')
+let AtRule = require('./at-rule')
+let Result = require('./result.js')
 let Input = require('./input')
-let LazyResult = require('./lazy-result')
+let parse = require('./parse')
 let list = require('./list')
+let Rule = require('./rule')
+let Root = require('./root')
 let Node = require('./node')
-let parse = require('./parse')
-let Processor = require('./processor')
-let Result = require('./result.js')
-let Root = require('./root')
-let Rule = require('./rule')
-let stringify = require('./stringify')
-let Warning = require('./warning')
 
 function postcss(...plugins) {
Index: imaps-frontend/node_modules/postcss/lib/previous-map.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/previous-map.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/previous-map.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,7 +1,7 @@
 'use strict'
 
+let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
 let { existsSync, readFileSync } = require('fs')
 let { dirname, join } = require('path')
-let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
 
 function fromBase64(str) {
@@ -42,12 +42,10 @@
     let uri = /^data:application\/json,/
 
-    let uriMatch = text.match(charsetUri) || text.match(uri)
-    if (uriMatch) {
-      return decodeURIComponent(text.substr(uriMatch[0].length))
+    if (charsetUri.test(text) || uri.test(text)) {
+      return decodeURIComponent(text.substr(RegExp.lastMatch.length))
     }
 
-    let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)
-    if (baseUriMatch) {
-      return fromBase64(text.substr(baseUriMatch[0].length))
+    if (baseCharsetUri.test(text) || baseUri.test(text)) {
+      return fromBase64(text.substr(RegExp.lastMatch.length))
     }
 
@@ -70,5 +68,5 @@
 
   loadAnnotation(css) {
-    let comments = css.match(/\/\*\s*# sourceMappingURL=/g)
+    let comments = css.match(/\/\*\s*# sourceMappingURL=/gm)
     if (!comments) return
 
Index: imaps-frontend/node_modules/postcss/lib/processor.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/processor.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/processor.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -52,5 +52,5 @@
    * @param plugins PostCSS plugins
    */
-  constructor(plugins?: readonly AcceptedPlugin[])
+  constructor(plugins?: AcceptedPlugin[])
 
   /**
Index: imaps-frontend/node_modules/postcss/lib/processor.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/processor.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/processor.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,12 +1,12 @@
 'use strict'
 
+let NoWorkResult = require('./no-work-result')
+let LazyResult = require('./lazy-result')
 let Document = require('./document')
-let LazyResult = require('./lazy-result')
-let NoWorkResult = require('./no-work-result')
 let Root = require('./root')
 
 class Processor {
   constructor(plugins = []) {
-    this.version = '8.4.49'
+    this.version = '8.4.40'
     this.plugins = this.normalize(plugins)
   }
Index: imaps-frontend/node_modules/postcss/lib/result.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/result.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/result.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -39,4 +39,5 @@
     plugin?: string
   }
+
 
   // eslint-disable-next-line @typescript-eslint/no-use-before-define
Index: imaps-frontend/node_modules/postcss/lib/root.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/root.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/root.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -63,7 +63,7 @@
 
   assign(overrides: object | Root.RootProps): this
-  clone(overrides?: Partial<Root.RootProps>): this
-  cloneAfter(overrides?: Partial<Root.RootProps>): this
-  cloneBefore(overrides?: Partial<Root.RootProps>): this
+  clone(overrides?: Partial<Root.RootProps>): Root
+  cloneAfter(overrides?: Partial<Root.RootProps>): Root
+  cloneBefore(overrides?: Partial<Root.RootProps>): Root
 
   /**
@@ -77,5 +77,5 @@
    * ```
    *
-   * @param options Options.
+   * @param opts Options.
    * @return Result with current root’s CSS.
    */
Index: imaps-frontend/node_modules/postcss/lib/rule.d.ts
===================================================================
--- imaps-frontend/node_modules/postcss/lib/rule.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/rule.d.ts	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -41,19 +41,12 @@
   }
 
-  export type RuleProps = {
+  export interface RuleProps extends ContainerProps {
     /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
     raws?: RuleRaws
-  } & (
-      | {
-          /** Selector or selectors of the rule. */
-          selector: string
-          selectors?: never
-        }
-      | {
-          selector?: never
-          /** Selectors of the rule represented as an array of strings. */
-          selectors: readonly string[]
-        }
-    ) & ContainerProps
+    /** Selector or selectors of the rule. */
+    selector?: string
+    /** Selectors of the rule represented as an array of strings. */
+    selectors?: string[]
+  }
 
   // eslint-disable-next-line @typescript-eslint/no-use-before-define
@@ -83,13 +76,4 @@
   parent: ContainerWithChildren | undefined
   raws: Rule.RuleRaws
-  type: 'rule'
-  constructor(defaults?: Rule.RuleProps)
-
-  assign(overrides: object | Rule.RuleProps): this
-  clone(overrides?: Partial<Rule.RuleProps>): this
-
-  cloneAfter(overrides?: Partial<Rule.RuleProps>): this
-
-  cloneBefore(overrides?: Partial<Rule.RuleProps>): this
   /**
    * The rule’s full selector represented as a string.
@@ -102,5 +86,6 @@
    */
   get selector(): string
-  set selector(value: string)
+  set selector(value: string);
+
   /**
    * An array containing the rule’s individual selectors.
@@ -119,5 +104,13 @@
    */
   get selectors(): string[]
-  set selectors(values: string[])
+  set selectors(values: string[]);
+
+  type: 'rule'
+
+  constructor(defaults?: Rule.RuleProps)
+  assign(overrides: object | Rule.RuleProps): this
+  clone(overrides?: Partial<Rule.RuleProps>): Rule
+  cloneAfter(overrides?: Partial<Rule.RuleProps>): Rule
+  cloneBefore(overrides?: Partial<Rule.RuleProps>): Rule
 }
 
Index: imaps-frontend/node_modules/postcss/lib/tokenize.js
===================================================================
--- imaps-frontend/node_modules/postcss/lib/tokenize.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/lib/tokenize.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -30,6 +30,6 @@
   let ignore = options.ignoreErrors
 
-  let code, content, escape, next, quote
-  let currentToken, escaped, escapePos, n, prev
+  let code, next, quote, content, escape
+  let escaped, escapePos, prev, n, currentToken
 
   let length = css.length
Index: imaps-frontend/node_modules/postcss/package.json
===================================================================
--- imaps-frontend/node_modules/postcss/package.json	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/postcss/package.json	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,47 +1,5 @@
 {
-  "_from": "postcss@^8.4.49",
-  "_id": "postcss@8.4.49",
-  "_inBundle": false,
-  "_integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
-  "_location": "/postcss",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "postcss@^8.4.49",
-    "name": "postcss",
-    "escapedName": "postcss",
-    "rawSpec": "^8.4.49",
-    "saveSpec": null,
-    "fetchSpec": "^8.4.49"
-  },
-  "_requiredBy": [
-    "/vite"
-  ],
-  "_resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
-  "_shasum": "4ea479048ab059ab3ae61d082190fabfd994fe19",
-  "_spec": "postcss@^8.4.49",
-  "_where": "/home/stevetosak/Proekt/IMaps/imaps-frontend/node_modules/vite",
-  "author": {
-    "name": "Andrey Sitnik",
-    "email": "andrey@sitnik.ru"
-  },
-  "browser": {
-    "./lib/terminal-highlight": false,
-    "source-map-js": false,
-    "path": false,
-    "url": false,
-    "fs": false
-  },
-  "bugs": {
-    "url": "https://github.com/postcss/postcss/issues"
-  },
-  "bundleDependencies": false,
-  "dependencies": {
-    "nanoid": "^3.3.7",
-    "picocolors": "^1.1.1",
-    "source-map-js": "^1.2.1"
-  },
-  "deprecated": false,
+  "name": "postcss",
+  "version": "8.4.40",
   "description": "Tool for transforming styles with JS plugins",
   "engines": {
@@ -82,4 +40,17 @@
     "./package.json": "./package.json"
   },
+  "main": "./lib/postcss.js",
+  "types": "./lib/postcss.d.ts",
+  "keywords": [
+    "css",
+    "postcss",
+    "rework",
+    "preprocessor",
+    "parser",
+    "source map",
+    "transform",
+    "manipulation",
+    "transpiler"
+  ],
   "funding": [
     {
@@ -96,24 +67,22 @@
     }
   ],
+  "author": "Andrey Sitnik <andrey@sitnik.ru>",
+  "license": "MIT",
   "homepage": "https://postcss.org/",
-  "keywords": [
-    "css",
-    "postcss",
-    "rework",
-    "preprocessor",
-    "parser",
-    "source map",
-    "transform",
-    "manipulation",
-    "transpiler"
-  ],
-  "license": "MIT",
-  "main": "./lib/postcss.js",
-  "name": "postcss",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/postcss/postcss.git"
+  "repository": "postcss/postcss",
+  "bugs": {
+    "url": "https://github.com/postcss/postcss/issues"
   },
-  "types": "./lib/postcss.d.ts",
-  "version": "8.4.49"
+  "dependencies": {
+    "nanoid": "^3.3.7",
+    "picocolors": "^1.0.1",
+    "source-map-js": "^1.2.0"
+  },
+  "browser": {
+    "./lib/terminal-highlight": false,
+    "source-map-js": false,
+    "path": false,
+    "url": false,
+    "fs": false
+  }
 }
