{"version":3,"file":"index.mjs","names":[],"sources":["../src/utilities.ts","../src/index.ts"],"sourcesContent":["const CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nconst HYPHEN_REGEX = /-([a-z])/g;\nconst NO_HYPHEN_REGEX = /^[^-]+$/;\nconst VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nconst MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n\n/**\n * Checks whether to skip camelCase.\n */\nconst skipCamelCase = (property: string) =>\n  !property ||\n  NO_HYPHEN_REGEX.test(property) ||\n  CUSTOM_PROPERTY_REGEX.test(property);\n\n/**\n * Replacer that capitalizes first character.\n */\nconst capitalize = (match: string, character: string) =>\n  character.toUpperCase();\n\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nconst trimHyphen = (match: string, prefix: string) => `${prefix}-`;\n\n/**\n * CamelCase options.\n */\nexport interface CamelCaseOptions {\n  reactCompat?: boolean;\n}\n\n/**\n * CamelCases a CSS property.\n */\nexport const camelCase = (property: string, options: CamelCaseOptions = {}) => {\n  if (skipCamelCase(property)) {\n    return property;\n  }\n\n  property = property.toLowerCase();\n\n  if (options.reactCompat) {\n    // `-ms` vendor prefix should not be capitalized\n    property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n  } else {\n    // for non-React, remove first hyphen so vendor prefix is not capitalized\n    property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n  }\n\n  return property.replace(HYPHEN_REGEX, capitalize);\n};\n","import StyleToObject from 'style-to-object';\n\nimport { camelCase, CamelCaseOptions } from './utilities';\n\ntype StyleObject = Record<string, string>;\n\ntype StyleToJSOptions = CamelCaseOptions;\n\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nexport default function StyleToJS(\n  style: string,\n  options?: StyleToJSOptions,\n): StyleObject {\n  const output: StyleObject = {};\n\n  if (!style || typeof style !== 'string') {\n    return output;\n  }\n\n  StyleToObject(style, (property, value) => {\n    // skip CSS comment\n    if (property && value) {\n      output[camelCase(property, options)] = value;\n    }\n  });\n\n  return output;\n}\n"],"mappings":";;AAAA,MAAM,wBAAwB;AAC9B,MAAM,eAAe;AACrB,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;;;;AAK/B,MAAM,iBAAiB,aACrB,CAAC,YACD,gBAAgB,KAAK,QAAQ,KAC7B,sBAAsB,KAAK,QAAQ;;;;AAKrC,MAAM,cAAc,OAAe,cACjC,UAAU,YAAY;;;;AAKxB,MAAM,cAAc,OAAe,WAAmB,GAAG,OAAO;;;;AAYhE,MAAa,aAAa,UAAkB,UAA4B,CAAC,MAAM;CAC7E,IAAI,cAAc,QAAQ,GACxB,OAAO;CAGT,WAAW,SAAS,YAAY;CAEhC,IAAI,QAAQ,aAEV,WAAW,SAAS,QAAQ,wBAAwB,UAAU;MAG9D,WAAW,SAAS,QAAQ,qBAAqB,UAAU;CAG7D,OAAO,SAAS,QAAQ,cAAc,UAAU;AAClD;;;;;;ACxCA,SAAwB,UACtB,OACA,SACa;CACb,MAAM,SAAsB,CAAC;CAE7B,IAAI,CAAC,SAAS,OAAO,UAAU,UAC7B,OAAO;CAGT,cAAc,QAAQ,UAAU,UAAU;EAExC,IAAI,YAAY,OACd,OAAO,UAAU,UAAU,OAAO,KAAK;CAE3C,CAAC;CAED,OAAO;AACT"}