| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 'use strict';const isScssVariable = require('./isScssVariable');const { isRoot, isRule } = require('./typeGuards');/** * @param {string} [lang] */function isStandardSyntaxLang(lang) {	return lang && (lang === 'css' || lang === 'custom-template' || lang === 'template-literal');}/** * Check whether a declaration is standard * * @param {import('postcss').Declaration | import('postcss-less').Declaration} decl */module.exports = function isStandardSyntaxDeclaration(decl) {	const prop = decl.prop;	const parent = decl.parent;	// Declarations belong in a declaration block or standard CSS source	if (		parent &&		isRoot(parent) &&		parent.source &&		!isStandardSyntaxLang(			/** @type {import('postcss').Source & {lang?: string}} */ (parent.source).lang,		)	) {		return false;	}	// SCSS var; covers map and list declarations	if (isScssVariable(prop)) {		return false;	}	// Less var (e.g. @var: x), but exclude variable interpolation (e.g. @{var})	if (prop[0] === '@' && prop[1] !== '{') {		return false;	}	// Less map declaration	if (parent && parent.type === 'atrule' && parent.raws.afterName === ':') {		return false;	}	// Less map (e.g. #my-map() { myprop: red; })	if (		parent &&		isRule(parent) &&		parent.selector &&		parent.selector.startsWith('#') &&		parent.selector.endsWith('()')	) {		return false;	}	// Sass nested properties (e.g. border: { style: solid; color: red; })	if (		parent &&		isRule(parent) &&		parent.selector &&		parent.selector[parent.selector.length - 1] === ':' &&		parent.selector.substring(0, 2) !== '--'	) {		return false;	}	// Less &:extend	if ('extend' in decl && decl.extend) {		return false;	}	return true;};
 |