{"version":3,"file":"index.es.mjs","sources":["lib/maps.js","lib/validate.js","lib/value-split.js","lib/rule-name.js","lib/messages.js","lib/walk.js","index.js"],"sourcesContent":["const inline = {\n\tstart: { ltr: 'left', rtl: 'right' },\n\tend: { ltr: 'right', rtl: 'left' }\n}\n\nexport const propsThatContainPropsInValue = /^(transition(-property)?|will-change)$/i;\n\nexport const physical4Prop = [\n\t[['top', 'left', 'bottom', 'right'], 'inset'],\n\t[['margin-top', 'margin-left', 'margin-bottom', 'margin-right'], 'margin'],\n\t[['padding-top', 'padding-left', 'padding-bottom', 'padding-right'], 'padding']\n];\n\nexport const physicalShorthandProp = ['inset', 'margin', 'padding'];\n\nexport const physical2Prop = dir => [\n\t[['top', 'bottom'], 'inset-block'],\n\t[[inline.start[dir], inline.end[dir]], 'inset-inline'],\n\n\t[['margin-top', 'margin-bottom'], 'margin-block'],\n\t[[`margin-${inline.start[dir]}`, `margin-${inline.end[dir]}`], 'margin-inline'],\n\n\t[['padding-top', 'padding-bottom'], 'padding-block'],\n\t[[`padding-${inline.start[dir]}`, `padding-${inline.end[dir]}`], 'padding-inline'],\n];\n\nexport const physicalProp = dir => [\n\t[['top'], 'inset-block-start'],\n\t[['bottom'], 'inset-block-end'],\n\t[[inline.start[dir]], 'inset-inline-start'],\n\t[[inline.end[dir]], 'inset-inline-end'],\n\n\t[['margin-top'], 'margin-block-start'],\n\t[['margin-bottom'], 'margin-block-end'],\n\t[[`margin-${inline.start[dir]}`], 'margin-inline-start'],\n\t[[`margin-${inline.end[dir]}`], 'margin-inline-end'],\n\n\t[['padding-top'], 'padding-block-start'],\n\t[['padding-bottom'], 'padding-block-end'],\n\t[[`padding-${inline.start[dir]}`], 'padding-inline-start'],\n\t[[`padding-${inline.end[dir]}`], 'padding-inline-end'],\n\n\n\t// border\n\t[['border-top'], 'border-block-start'],\n\t[['border-bottom'], 'border-block-end'],\n\t[[`border-${inline.start[dir]}`], 'border-inline-start'],\n\t[[`border-${inline.end[dir]}`], 'border-inline-end'],\n\n\t[['border-top-color'], 'border-block-start-color'],\n\t[['border-top-style'], 'border-block-start-style'],\n\t[['border-top-width'], 'border-block-start-width'],\n\t[['border-bottom-color'], 'border-block-end-color'],\n\t[['border-bottom-style'], 'border-block-end-style'],\n\t[['border-bottom-width'], 'border-block-end-width'],\n\n\n\t[[`border-${inline.start[dir]}-color`], 'border-inline-start-color'],\n\t[[`border-${inline.start[dir]}-style`], 'border-inline-start-style'],\n\t[[`border-${inline.start[dir]}-width`], 'border-inline-start-width'],\n\t[[`border-${inline.end[dir]}-color`], 'border-inline-end-color'],\n\t[[`border-${inline.end[dir]}-style`], 'border-inline-end-style'],\n\t[[`border-${inline.end[dir]}-width`], 'border-inline-end-width'],\n\n\n\t[[`border-top-${inline.start[dir]}-radius`], 'border-start-start-radius'],\n\t[[`border-bottom-${inline.start[dir]}-radius`], 'border-end-start-radius'],\n\t[[`border-top-${inline.end[dir]}-radius`], 'border-start-end-radius'],\n\t[[`border-bottom-${inline.end[dir]}-radius`], 'border-end-end-radius'],\n\n\t[['height'], 'block-size'],\n\t[['min-height'], 'min-block-size'],\n\t[['max-height'], 'max-block-size'],\n\n\t[['width'], 'inline-size'],\n\t[['min-width'], 'min-inline-size'],\n\t[['max-width'], 'max-inline-size'],\n\n];\n\nexport const physicalValue = dir => [\n\t[/^clear$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^float$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^text-align$/i, {\n\t\t[inline.start[dir]]: 'start',\n\t\t[inline.end[dir]]: 'end'\n\t}]\n];\n\nexport const migrationNoneSpec = [\n\t[['margin-start'], ['margin-block-start', 'margin-inline-start']],\n\t[['margin-end'], ['margin-block-end', 'margin-inline-end']],\n\n\t[['padding-start'], ['padding-block-start', 'padding-inline-start']],\n\t[['padding-end'], ['padding-block-end', 'padding-inline-end']],\n\n\t[['inset-start'], ['inset-inline-start', 'inset-block-start']],\n\t[['inset-end'], ['inset-inline-end', 'inset-block-end']],\n];\n\n","export const validateRuleWithProps = (root, props, fn) => {\n\t// For supporting css-in-js\n\tconst { nodes = [root] } = root;\n\t// conditionally walk nodes with children\n\tif (nodes && nodes.length) {\n\t\tconst args = [];\n\n\t\tconst hasProps = props.every(prop => {\n\t\t\tconst declIndex = nodes.findIndex(child => child.type === 'decl' && child.prop === prop);\n\t\t\tconst decl = nodes[declIndex];\n\n\t\t\tif (decl) {\n\t\t\t\targs.push(decl, declIndex);\n\t\t\t}\n\n\t\t\treturn decl;\n\t\t});\n\n\t\tif (hasProps) {\n\t\t\tfn(...args);\n\t\t}\n\t}\n};\n","export const cssValueSplit = (value) => {\n\tconst ret = [];\n\tconst stack = [];\n\n\tlet part = '';\n\tlet esc = false;\n\tlet q = '';\n\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst c = value[i];\n\n\t\tif (esc) {\n\t\t\tesc = false;\n\t\t} else if (c === '\\\\') {\n\t\t\tesc = true;\n\t\t} else if (q) {\n\t\t\tif (c === q) {\n\t\t\t\tq = '';\n\t\t\t}\n\t\t} else if (c === '\\'' || c === '\"') {\n\t\t\tq = c;\n\t\t} else if (c === ' ' && stack.length === 0) {\n\t\t\tif (part) {\n\t\t\t\tret.push(part);\n\t\t\t}\n\t\t\tpart = '';\n\t\t\tcontinue;\n\n\t\t} else if (c === '(') {\n\t\t\tstack.push(')');\n\t\t} else if (c === '{') {\n\t\t\tstack.push('}');\n\t\t} else if (c === '[') {\n\t\t\tstack.push(']');\n\t\t} else if (stack.length && c === stack[stack.length - 1]) {\n\t\t\tstack.length--;\n\t\t}\n\n\t\tpart += c;\n\t}\n\n\tif (part) {\n\t\tret.push(part);\n\t}\n\n\treturn ret;\n}\n\n// console.log(cssValueSplit('3px  0 5px'));\n// -> [ '3px', '0', '5px' ]\n// console.log(cssValueSplit('3px calc(--bla, 0) 5px'));\n// -> [ '3px', 'calc(--bla, 0)', '5px' ]\n// console.log(cssValueSplit('3px map-get($spacers, 2) 5px'));\n// -> [ '3px', 'map-get($spacers, 2)', '5px' ]\n// console.log(cssValueSplit('-#{map-get($spacers, 2)} #{map-get($spacers, 3)} 5px'));\n// -> [ '-#{map-get($spacers, 2)}', '#{map-get($spacers, 3)}', '5px' ]\n// console.log(cssValueSplit('-#{function(\"something ) else\\')\\\\\" bla\", 2)} #{map-get($spacers, 3)} 5px'));\n// [ `-#{function(\"something ) else')\\\\\" bla\", 2)}`, '#{map-get($spacers, 3)}', '5px' ]\n","export default 'liberty/use-logical-spec';\n","import stylelint from 'stylelint';\nimport ruleName from './rule-name';\n\nexport default stylelint.utils.ruleMessages(ruleName, {\n\tunexpectedProp(physicalProperty, logicalProperty) {\n\t\treturn `Unexpected \"${physicalProperty}\" property. Use \"${logicalProperty}\".`;\n\t},\n\tunexpectedValue(property, physicalValue, logicalValue) {\n\t\treturn `Unexpected \"${physicalValue}\" value in \"${property}\" property. Use \"${logicalValue}\".`;\n\t},\n\tunsupportedProp(physicalProperty, logicalProperty) {\n\t\treturn `\"${physicalProperty}\" is not part of CSS specs. Use \"${logicalProperty[0]}\" and \"${logicalProperty[1]}\".`;\n\t},\n});\n","// walk all container nodes\nexport default function walk(node, fn) {\n\tif (node.nodes && node.nodes.length) {\n\t\tconst nodes = node.nodes.slice();\n\t\tconst length = nodes.length;\n\t\tlet index = -1;\n\n\t\twhile (++index < length) {\n\t\t\tconst child = nodes[index];\n\n\t\t\tif (!isDirRule(child)) {\n\t\t\t\tfn(child);\n\n\t\t\t\twalk(child, fn);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst dirSelectorRegExp = /:dir\\(ltr|rtl\\)/i;\nconst isDirRule = node => node.type === 'rule' && dirSelectorRegExp.test(node.selector);\n","import stylelint from 'stylelint';\nimport { physicalProp, physical2Prop, physicalShorthandProp, physical4Prop, physicalValue, migrationNoneSpec, propsThatContainPropsInValue } from './lib/maps';\nimport { validateRuleWithProps } from './lib/validate';\nimport { cssValueSplit } from './lib/value-split';\nimport ruleName from './lib/rule-name';\nimport messages from './lib/messages';\nimport walk from './lib/walk';\n\nconst reportedDecls = new WeakMap();\n\n// Ignore autofix on those expression value\nconst expressionRegex = /^\\$\\{.*\\}$/g;\n\nfunction ruleFunc(method, opts, context) {\n\tconst propExceptions = [].concat(Object(opts).except || []);\n\tconst isAutofixable = (node) => isContextAutofixing(context) && !expressionRegex.test(node.value);\n\tconst dir = /^rtl$/i.test(Object(opts).direction) ? 'rtl' : 'ltr';\n\n\treturn (root, result) => {\n\t\t// validate the method\n\t\tconst isMethodValid = stylelint.utils.validateOptions(result, ruleName, {\n\t\t\tactual: method,\n\t\t\tpossible() {\n\t\t\t\treturn isMethodIndifferent(method) ||\n\t\t\t\t\tisMethodAlways(method)\n\t\t\t}\n\t\t});\n\n\t\tconst reportUnexpectedProperty = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnsupportedProp = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unsupportedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnexpectedValue = (node, value) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedValue(node.prop, node.value, value),\n\t\t\tnode,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tif (isMethodValid && isMethodAlways(method)) {\n\t\t\twalk(root, node => {\n\t\t\t\tmigrationNoneSpec.forEach(([prop, props]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, prop, (outDateDecl) => {\n\t\t\t\t\t\tconsole.warn(`Property ${prop[0]} is not part of Logical standards.`);\n\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\tconsole.warn(`Migrating ${prop[0]} to Logical standards.`);\n\t\t\t\t\t\t\tconst value = outDateDecl.value;\n\t\t\t\t\t\t\toutDateDecl.cloneBefore({\n\t\t\t\t\t\t\t\tprop:\tprops[0],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.cloneAfter({\n\t\t\t\t\t\t\t\tprop: props[1],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.remove();\n\t\t\t\t\t\t} else if (!isDeclReported(outDateDecl)) {\n\t\t\t\t\t\t\treportUnsupportedProp(outDateDecl, props);\n\t\t\t\t\t\t\treportedDecls.set(outDateDecl);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\n\n\t\t\t\t/* logical shorthands do not work yet in browsers */\n\t\t\t\t/* but we can still use shorthand if all values are the same */\n\t\t\t\t// validate or autofix 4 physical properties as logical shorthands\n\t\t\t\tphysical4Prop.forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (blockStartDecl, blockStartIndex, inlineStartDecl, inlineStartIndex, blockEndDecl, blockEndIndex, inlineEndDecl, inlineEndIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = blockStartDecl;\n\t\t\t\t\t\tconst values = shorthandValueShorten([blockStartDecl.value, inlineStartDecl.value, blockEndDecl.value, inlineEndDecl.value]);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(blockStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(blockEndDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineEndDecl, propExceptions) &&\n\t\t\t\t\t\t\tvalues.length === 1 // only report issues if there is 1 value after shortening\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: values.join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tblockStartDecl.remove();\n\t\t\t\t\t\t\t\tinlineStartDecl.remove();\n\t\t\t\t\t\t\t\tblockEndDecl.remove();\n\t\t\t\t\t\t\t\tinlineEndDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(blockStartDecl) && !isDeclReported(inlineStartDecl) && !isDeclReported(blockEndDecl) && !isDeclReported(inlineEndDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(blockStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(blockEndDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineEndDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\n\t\t\t\t// validate or autofix shorthand properties that are not supported\n\t\t\t\tphysicalShorthandProp.forEach((prop) => {\n\t\t\t\t\tvalidateRuleWithProps(node, [prop], physicalDecl => { // eslint-disable-line\n\t\t\t\t\t\tconst inputValues = cssValueSplit(physicalDecl.value);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(physicalDecl, propExceptions) &&\n\t\t\t\t\t\t\tinputValues.length !== 1\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tlet outputValues = convertShorthandValues(inputValues, dir);\n\n\t\t\t\t\t\t\t\t['block', 'inline'].forEach(type => {\n\t\t\t\t\t\t\t\t\tphysicalDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\t\tprop: prop + \"-\" + type,\n\t\t\t\t\t\t\t\t\t\tvalue: outputValues[type]\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\tphysicalDecl.remove();\n\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, `${prop}-block and ${prop}-inline`);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix 2 physical properties as logical shorthands\n\t\t\t\tphysical2Prop(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (startDecl, startIndex, endDecl, endStartIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = startIndex < endStartIndex\n\t\t\t\t\t\t\t? startDecl\n\t\t\t\t\t\t\t: endDecl;\n\n\t\t\t\t\t\tif (!isDeclAnException(startDecl, propExceptions) && !isDeclAnException(endDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: startDecl.value === endDecl.value\n\t\t\t\t\t\t\t\t\t\t? startDecl.value\n\t\t\t\t\t\t\t\t\t\t: [startDecl.value, endDecl.value].join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tstartDecl.remove();\n\t\t\t\t\t\t\t\tendDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(startDecl) && !isDeclReported(endDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(startDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(endDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical properties as logical\n\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, physicalDecl => {\n\t\t\t\t\t\tif (!isDeclAnException(physicalDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tphysicalDecl.prop = prop;\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values as logical\n\t\t\t\tphysicalValue(dir).forEach(([regexp, props]) => {\n\t\t\t\t\tif (isNodeMatchingDecl(node, regexp) && !isDeclAnException(node, propExceptions)) {\n\t\t\t\t\t\tconst valuekey = node.value.toLowerCase();\n\n\t\t\t\t\t\tif (valuekey in props) {\n\t\t\t\t\t\t\tconst value = props[valuekey];\n\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values containing properties as logical\n\t\t\t\tif (isNodeMatchingDecl(node, propsThatContainPropsInValue)) {\n\t\t\t\t\tconst originalValue = node.value.toLowerCase();\n\t\t\t\t\tlet value = originalValue;\n\n\t\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\t\tif (!isDeclAnException(node, propExceptions)) {\n\n\t\t\t\t\t\t\tprops.forEach(searchProp => {\n\t\t\t\t\t\t\t\tif (!isValueAnException(searchProp, propExceptions)) {\n\t\t\t\t\t\t\t\t\tlet regex = new RegExp(\"(?<!-)\" + searchProp + \"(?!-)\", \"g\");\n\t\t\t\t\t\t\t\t\tif (regex.test(value)) {\n\t\t\t\t\t\t\t\t\t\tvalue = value.replace(regex, prop);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (value !== originalValue) {\n\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n}\nruleFunc.ruleName = ruleName;\nexport default stylelint.createPlugin(ruleName, ruleFunc);\n\nconst isMethodIndifferent = method => method === 'ignore' || method === false || method === null;\nconst isMethodAlways = method => method === 'always' || method === true;\nconst isContextAutofixing = context => Boolean(Object(context).fix);\nconst isNodeMatchingDecl = (decl, regexp) => decl.type === 'decl' && regexp.test(decl.prop);\nconst isDeclAnException = (decl, propExceptions) => isValueAnException(decl.prop, propExceptions);\nconst isValueAnException = (value, propExceptions) => propExceptions.some(match => match instanceof RegExp\n\t? match.test(value)\n: String(match || '').toLowerCase() === String(value || '').toLowerCase());\nconst isDeclReported = decl => reportedDecls.has(decl);\n\nconst shorthandValueShorten = values => {\n\tconst map = [[1, 0], [0, 2], [1, 3]];\n\tfor (let x = values.length - 2; x >= 0; x--)\n\t{\n\t\tif (values[map[x][0]] !== values[map[x][1]]) {\n\t\t\tbreak;\n\t\t}\n\t\tvalues.pop();\n\t}\n\treturn values;\n};\n\nconst convertShorthandValues = (input, dir) => {\n\tlet block, inline;\n\tif (input.length === 1) {\n\t\tblock = input[0];\n\t\tinline = input[0];\n\t}\n\tif (input.length === 2) {\n\t\tblock = input[0];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 3) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 4) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = dir === 'ltr' ? input[3] + ' ' + input[1] : input[1] + ' ' + input[3];\n\t}\n\treturn {\n\t\tblock: optimizeCssValues(block),\n\t\tinline: optimizeCssValues(inline)\n\t};\n};\n\nconst optimizeCssValues = (value) => {\n\tconst values = cssValueSplit(value);\n\tif (values.length === 2 && values[0] === values[1]) {\n\t\treturn values[0];\n\t}\n\treturn value;\n}\n"],"names":["inline","start","ltr","rtl","end","propsThatContainPropsInValue","physical4Prop","physicalShorthandProp","physical2Prop","dir","physicalProp","physicalValue","migrationNoneSpec","validateRuleWithProps","root","props","fn","nodes","length","args","hasProps","every","prop","declIndex","findIndex","child","type","decl","push","cssValueSplit","value","ret","stack","part","esc","q","i","c","stylelint","utils","ruleMessages","ruleName","unexpectedProp","physicalProperty","logicalProperty","unexpectedValue","property","logicalValue","unsupportedProp","walk","node","slice","index","isDirRule","dirSelectorRegExp","test","selector","reportedDecls","WeakMap","expressionRegex","ruleFunc","method","opts","context","propExceptions","concat","Object","except","isAutofixable","isContextAutofixing","direction","result","isMethodValid","validateOptions","actual","possible","isMethodIndifferent","isMethodAlways","reportUnexpectedProperty","report","message","messages","reportUnsupportedProp","reportUnexpectedValue","forEach","outDateDecl","console","warn","cloneBefore","cloneAfter","remove","isDeclReported","set","blockStartDecl","blockStartIndex","inlineStartDecl","inlineStartIndex","blockEndDecl","blockEndIndex","inlineEndDecl","inlineEndIndex","firstInlineDecl","values","shorthandValueShorten","isDeclAnException","join","physicalDecl","inputValues","outputValues","convertShorthandValues","startDecl","startIndex","endDecl","endStartIndex","regexp","isNodeMatchingDecl","valuekey","toLowerCase","originalValue","searchProp","isValueAnException","regex","RegExp","replace","createPlugin","Boolean","fix","some","match","String","has","map","x","pop","input","block","optimizeCssValues"],"mappings":"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"}