diff --git a/lib/index.js b/lib/index.js index 4b2f3da..f529109 100644 --- a/lib/index.js +++ b/lib/index.js @@ -17,7 +17,7 @@ var _icssReplaceSymbols = require('icss-replace-symbols'); var _icssReplaceSymbols2 = _interopRequireDefault(_icssReplaceSymbols); var matchImports = /^(.+?)\s+from\s+("[^"]*"|'[^']*'|[\w-]+)$/; -var matchValueDefinition = /(?:,\s+|^)([\w-]+):?\s+("[^"]*"|'[^']*'|\w+\([^\)]+\)|[^,]+)\s?/g; +var matchValueDefinition = /(?:\s+|^)([\w-]+):?\s+(.+?)\s*$/g; var matchImport = /^([\w-]+)(?:\s+as\s+([\w-]+))?/; var options = {}; var importIndex = 0; diff --git a/src/index.js b/src/index.js index 5b39ab0..f73d455 100644 --- a/src/index.js +++ b/src/index.js @@ -2,7 +2,7 @@ import postcss from 'postcss' import replaceSymbols, { replaceAll } from 'icss-replace-symbols' const matchImports = /^(.+?)\s+from\s+("[^"]*"|'[^']*'|[\w-]+)$/ -const matchValueDefinition = /(?:,\s+|^)([\w-]+):?\s+("[^"]*"|'[^']*'|\w+\([^\)]+\)|[^,]+)\s?/g +const matchValueDefinition = /(?:\s+|^)([\w-]+):?\s+(.+?)\s*$/g const matchImport = /^([\w-]+)(?:\s+as\s+([\w-]+))?/ let options = {} let importIndex = 0 diff --git a/test/index.js b/test/index.js index 22a0abf..1e25525 100644 --- a/test/index.js +++ b/test/index.js @@ -110,4 +110,12 @@ describe('constants', () => { ':export {\n named: red;\n 3char: #0f0;\n 6char: #00ff00;\n rgba: rgba(34, 12, 64, 0.3);\n hsla: hsla(220, 13.0%, 18.0%, 1);\n}\n' + '.foo { color: red; background-color: #0f0; border-top-color: #00ff00; border-bottom-color: rgba(34, 12, 64, 0.3); outline-color: hsla(220, 13.0%, 18.0%, 1); }') }) + + it('should allow definitions with commas in them', () => { + test( + '@value coolShadow: 0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14) ;\n' + + '.foo { box-shadow: coolShadow; }', + ':export {\n coolShadow: 0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14);\n}\n' + + '.foo { box-shadow: 0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14); }') + }) })