text: 'use strict';
  
  Object.defineProperty(exports, "__esModule", {
      value: true
  });
  /**
   * Contains helpers for safely splitting lists of CSS values,
   * preserving parentheses and quotes.
   *
   * @example
   * const list = postcss.list;
   *
   * @namespace list
   */
  var list = {
      split: function split(string, separators, last) {
          var array = [];
          var current = '';
          var split = false;
  
          var func = 0;
          var quote = false;
          var escape = false;
  
          for (var i = 0; i < string.length; i++) {
              var letter = string[i];
  
              if (quote) {
                  if (escape) {
                      escape = false;
                  } else if (letter === '\\') {
                      escape = true;
                  } else if (letter === quote) {
                      quote = false;
                  }
              } else if (letter === '"' || letter === '\'') {
                  quote = letter;
              } else if (letter === '(') {
                  func += 1;
              } else if (letter === ')') {
                  if (func > 0) func -= 1;
              } else if (func === 0) {
                  if (separators.indexOf(letter) !== -1) split = true;
              }
  
              if (split) {
                  if (current !== '') array.push(current.trim());
                  current = '';
                  split = false;
              } else {
                  current += letter;
              }
          }
  
          if (last || current !== '') array.push(current.trim());
          return array;
      },
  
  
      /**
       * Safely splits space-separated values (such as those for `background`,
       * `border-radius`, and other shorthand properties).
       *
       * @param {string} string - space-separated values
       *
       * @return {string[]} splitted values
       *
       * @example
       * postcss.list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)']
       */
      space: function space(string) {
          var spaces = [' ', '\n', '\t'];
          return list.split(string, spaces);
      },
  
  
      /**
       * Safely splits comma-separated values (such as those for `transition-*`
       * and `background` properties).
       *
       * @param {string} string - comma-separated values
       *
       * @return {string[]} splitted values
       *
       * @example
       * postcss.list.comma('black, linear-gradient(white, black)')
       * //=> ['black', 'linear-gradient(white, black)']
       */
      comma: function comma(string) {
          var comma = ',';
          return list.split(string, [comma], true);
      }
  };
  
  exports.default = list;
  module.exports = exports['default'];