{"version":3,"sources":["jsdelivr-header.js","/npm/postcss-custom-values@0.0.6/index.cjs.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,SAAS,gBAAiB,GAAM,OAAQ,GAAqB,iBAAP,GAAoB,YAAa,EAAM,EAAY,QAAI,CAAI,CAEjH,IAAI,QAAU,gBAAgB,QAAQ,YAElC,OAAS,CAAC,CACZ,KAAM,SACN,MAAO,kBACN,CACD,KAAM,UACN,MAAO,mBACN,CACD,KAAM,OACN,MAAO,0BAGL,aAAe,UACnB,SAAS,WAAW,GAElB,IAAI,EAEJ,GAAI,EAAO,MAAM,cAAe,CAE9B,IAAI,EAAQ,CAAC,EAAO,MAAM,cAAc,GAAI,EAAO,MAAM,cAAc,IAEvE,IAAK,IAAI,EAAI,EAAG,EAAI,OAAO,OAAQ,IAE7B,OAAO,GAAG,OAAS,EAAM,KAC3B,EAAS,EAAO,QAAQ,aAAc,IAAM,OAAO,GAAG,MAAM,OAAS,KAErE,EAAQ,IAAI,OAAO,GAGzB,MACE,EAAQ,IAAI,OAAO,MAAQ,EAAS,MAAO,MAI7C,OAAO,CACT,CAIA,SAAS,WAAW,GAClB,IAAI,EAAW,GAgCf,OA9BA,EAAK,YAAY,SAAS,IAExB,IAAI,EAAU,CAAC,EACX,EAAa,GACb,EAAgB,mBACpB,EAAK,MAAK,IAOR,GALkB,UAAd,EAAK,OACP,EAAQ,MAAQ,EAAK,OAInB,EAAK,OAAO,MAAM,GAAgB,CACpC,IAAI,EAAQ,EAAK,OAAO,MAAM,GAAe,GAAG,MAAM,KAEtD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,EAAW,KAAK,EAAM,GAAG,OAE7B,KAGF,EAAQ,MAAQ,IAAI,OAAO,EAAW,KAAK,KAAM,KAEjD,IACI,EADa,EAAK,OAAO,WACP,QAAQ,EAAe,IAAI,OACjD,EAAQ,KAAO,WAAW,GAC1B,EAAS,KAAK,EAAQ,IAGxB,EAAS,UACF,CACT,CAEA,IAAI,MAAQ,QAAQ,OAAO,wBAAwB,IAC1C,IAEL,MAAM,EAAW,WAAW,GAE5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAI,EAAU,EAAS,GAEvB,EAAK,UAAU,EAAQ,OAAO,IAE5B,GAAI,EAAK,MAAM,MAAM,EAAQ,MAAO,CAElC,IAAI,EAAS,QAAQ,KAAK,MAAM,EAAK,OAErC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAC7B,EAAO,GAAG,MAAM,EAAQ,QACtB,EAAQ,MAAM,MAAM,SACtB,EAAO,GAAK,EAAQ,MAAM,QAAQ,QAAS,EAAO,GAAG,MAAM,EAAQ,MAAM,IAEzE,EAAO,GAAK,EAAO,GAAG,QAAQ,EAAQ,KAAM,EAAQ,QAK1D,EAAK,MAAQ,EAAO,KAAK,IAC3B,IAEJ,CAEA,EAAK,YAAY,SAAS,IACxB,EAAK,QAAQ,GACb,IAIN,OAAO,QAAU","file":"/npm/postcss-custom-values@0.0.6/index.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.19.2.\n * Original file: /npm/postcss-custom-values@0.0.6/index.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar postcss = _interopDefault(require('postcss'));\n\nvar tokens = [{\n  name: \"number\",\n  regex: /[+-]?\\d*\\.?\\d+/\n}, {\n  name: \"integer\",\n  regex: /[+-]?[1-9]\\d*|0/\n}, {\n  name: \"side\",\n  regex: /top|right|bottom|left/\n}];\n\nvar genericToken = /<(\\w+)>/;\nfunction tokenRegex(string) {\n  // Takes string where token is referenced as ident eg. layout_<direction>\n  let regex;\n\n  if (string.match(genericToken)) {\n    // Create array with regex for standard token and capture name\n    let ident = [string.match(genericToken)[0], string.match(genericToken)[1]]; // For each token definition\n\n    for (let i = 0; i < tokens.length; i++) {\n      // If defined token matches ident\n      if (tokens[i].name === ident[1]) {\n        string = string.replace(genericToken, \"(\" + tokens[i].regex.source + \")\"); // Create a regex which can be used to find matching things and capture value\n\n        regex = new RegExp(string);\n      }\n    }\n  } else {\n    regex = new RegExp(\"\\\\b\" + string + \"\\\\b\", 'gi');\n  } // Outputs regex that looks for exact match of string plus token eg. /layout_(left|right)/\n\n\n  return regex;\n} // export function tokenMatches(string, regex) {\n// \treturn string.match(regex)[1];\n// }\n\nfunction getKeyword(root) {\n  let keywords = []; // Look for every keyword definition\n\n  root.walkAtRules(\"value\", rule => {\n    // Create object so can look for keywords in CSS\n    let keyword = {};\n    let propsArray = [];\n    let propertyThing = /property\\((.+)\\)/;\n    rule.each(decl => {\n      // Grab value\n      if (decl.prop === \"value\") {\n        keyword.value = decl.value;\n      } // Grab array of properties\n\n\n      if (rule.params.match(propertyThing)) {\n        let array = rule.params.match(propertyThing)[1].split(\",\");\n\n        for (let i = 0; i < array.length; i++) {\n          propsArray.push(array[i].trim());\n        }\n      }\n    }); // Create regex to allow matching of properties\n\n    keyword.props = new RegExp(propsArray.join(\"|\"), 'i'); // Create regex to replace instances of word in declaration value\n\n    let nameString = rule.params.toString();\n    let name = nameString.replace(propertyThing, \"\").trim();\n    keyword.name = tokenRegex(name);\n    keywords.push(keyword);\n  }); // Reverse array so that keyword definitions that are declared later in document overide earlier rules\n\n  keywords.reverse();\n  return keywords;\n}\n\nvar index = postcss.plugin(\"postcss-custom-value\", () => {\n  return root => {\n    // console.log(\"root, result\", root, result);\n    const keywords = getKeyword(root); // For each keyword definition\n\n    for (let i = 0; i < keywords.length; i++) {\n      let keyword = keywords[i]; // For each declration with matching properties\n\n      root.walkDecls(keyword.props, decl => {\n        // If value\n        if (decl.value.match(keyword.name)) {\n          // Replace instances of keyword name with correct value\n          var array1 = postcss.list.space(decl.value);\n\n          for (let b = 0; b < array1.length; b++) {\n            if (array1[b].match(keyword.name)) {\n              if (keyword.value.match(/\\$0/gi)) {\n                array1[b] = keyword.value.replace(/\\$0/gi, array1[b].match(keyword.name)[1]);\n              } else {\n                array1[b] = array1[b].replace(keyword.name, keyword.value);\n              }\n            }\n          }\n\n          decl.value = array1.join(\" \");\n        }\n      });\n    }\n\n    root.walkAtRules(\"value\", rule => {\n      rule.remove();\n    });\n  };\n});\n\nmodule.exports = index;\n"]}