ocrmnav
Version:
DevStack - The Complete Developer Toolkit - Virtual file system, workflow automation, and more than 65+ other development tools / features in one seamless extension. Cutting down dev times never before seen.
352 lines (288 loc) • 13.4 kB
JavaScript
"use strict";
exports.id = 158;
exports.ids = [158];
exports.modules = {
/***/ 1714:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ mediaFeatureNameAllowedValueKeywords: () => (/* binding */ mediaFeatureNameAllowedValueKeywords),
/* harmony export */ mediaFeatureNameAllowedValueTypes: () => (/* binding */ mediaFeatureNameAllowedValueTypes),
/* harmony export */ mediaFeatureNames: () => (/* binding */ mediaFeatureNames),
/* harmony export */ rangeTypeMediaFeatureNames: () => (/* binding */ rangeTypeMediaFeatureNames),
/* harmony export */ rangeTypeMediaFeatureNamesWithMinMaxPrefix: () => (/* binding */ rangeTypeMediaFeatureNamesWithMinMaxPrefix)
/* harmony export */ });
/* harmony import */ var _utils_uniteSets_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1537);
/** @type {ReadonlySet<string>} */
const deprecatedMediaFeatureNames = new Set([
'device-aspect-ratio',
'device-height',
'device-width',
]);
/** @type {ReadonlySet<string>} */
const rangeTypeMediaFeatureNames = (0,_utils_uniteSets_mjs__WEBPACK_IMPORTED_MODULE_0__["default"])(deprecatedMediaFeatureNames, [
'aspect-ratio',
'color',
'color-index',
'height',
'horizontal-viewport-segments',
'monochrome',
'resolution',
'vertical-viewport-segments',
'width',
]);
/** @type {ReadonlySet<string>} */
const rangeTypeMediaFeatureNamesWithMinMaxPrefix = new Set(
[...rangeTypeMediaFeatureNames].flatMap((name) => {
return [`min-${name}`, `max-${name}`];
}),
);
/** @type {ReadonlySet<string>} */
const discreteTypeMediaFeatureNames = new Set([
'any-hover',
'any-pointer',
'color-gamut',
'display-mode',
'dynamic-range',
'environment-blending',
'forced-colors',
'grid',
'hover',
'inverted-colors',
'light-level',
'nav-controls',
'orientation',
'overflow-block',
'overflow-inline',
'pointer',
'prefers-color-scheme',
'prefers-contrast',
'prefers-reduced-data',
'prefers-reduced-motion',
'prefers-reduced-transparency',
'scan',
'scripting',
'update',
'video-color-gamut',
'video-dynamic-range',
]);
/** @type {ReadonlySet<string>} */
const mediaFeatureNames = (0,_utils_uniteSets_mjs__WEBPACK_IMPORTED_MODULE_0__["default"])(
deprecatedMediaFeatureNames,
rangeTypeMediaFeatureNames,
rangeTypeMediaFeatureNamesWithMinMaxPrefix,
discreteTypeMediaFeatureNames,
);
/** @type {ReadonlyMap<string, ReadonlySet<string>>} */
const mediaFeatureNameAllowedValueKeywords = new Map([
['any-hover', new Set(['none', 'hover'])],
['any-pointer', new Set(['none', 'coarse', 'fine'])],
['color-gamut', new Set(['srgb', 'p3', 'rec2020'])],
[
'display-mode',
new Set(['fullscreen', 'standalone', 'minimal-ui', 'browser', 'picture-in-picture']),
],
['dynamic-range', new Set(['standard', 'high'])],
['environment-blending', new Set(['opaque', 'additive', 'subtractive'])],
['forced-colors', new Set(['none', 'active'])],
['hover', new Set(['none', 'hover'])],
['inverted-colors', new Set(['none', 'inverted'])],
['nav-controls', new Set(['none', 'back'])],
['orientation', new Set(['portrait', 'landscape'])],
['overflow-block', new Set(['none', 'scroll', 'paged'])],
['overflow-inline', new Set(['none', 'scroll'])],
['pointer', new Set(['none', 'coarse', 'fine'])],
['prefers-color-scheme', new Set(['light', 'dark'])],
['prefers-contrast', new Set(['no-preference', 'less', 'more', 'custom'])],
['prefers-reduced-data', new Set(['no-preference', 'reduce'])],
['prefers-reduced-motion', new Set(['no-preference', 'reduce'])],
['prefers-reduced-transparency', new Set(['no-preference', 'reduce'])],
['resolution', new Set(['infinite'])],
['scan', new Set(['interlace', 'progressive'])],
['scripting', new Set(['none', 'initial-only', 'enabled'])],
['update', new Set(['none', 'slow', 'fast'])],
['video-color-gamut', new Set(['srgb', 'p3', 'rec2020'])],
['video-dynamic-range', new Set(['standard', 'high'])],
]);
/** @type {ReadonlyMap<string, ReadonlySet<string>>} */
const mediaFeatureNameAllowedValueTypes = new Map([
['aspect-ratio', new Set(['ratio'])],
['color', new Set(['integer'])],
['color-index', new Set(['integer'])],
['device-aspect-ratio', new Set(['ratio'])],
['device-height', new Set(['length'])],
['device-width', new Set(['length'])],
['grid', new Set(['mq-boolean'])],
['height', new Set(['length'])],
['horizontal-viewport-segments', new Set(['integer'])],
['monochrome', new Set(['integer'])],
['resolution', new Set(['resolution'])],
['vertical-viewport-segments', new Set(['integer'])],
['width', new Set(['length'])],
]);
/***/ }),
/***/ 1717:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ parseMediaQuery)
/* harmony export */ });
/* harmony import */ var _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1710);
/* harmony import */ var _getAtRuleParams_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1520);
/**
* @param {import('postcss').AtRule} atRule
* @returns {ReturnType<typeof import('@csstools/media-query-list-parser').parse>}
*/
function parseMediaQuery(atRule) {
const mediaQueries = (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.parse)((0,_getAtRuleParams_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])(atRule), {
preserveInvalidMediaQueries: true,
});
return mediaQueries;
}
/***/ }),
/***/ 1720:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1710);
/* harmony import */ var _csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1647);
/* harmony import */ var _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(889);
/* harmony import */ var _utils_nodeFieldIndices_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1519);
/* harmony import */ var _utils_regexes_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1535);
/* harmony import */ var _utils_optionsMatches_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(869);
/* harmony import */ var _utils_parseMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1717);
/* harmony import */ var _reference_mediaFeatures_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1714);
/* harmony import */ var _utils_report_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(945);
/* harmony import */ var _utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(950);
/* harmony import */ var _utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(873);
const ruleName = 'media-feature-range-notation';
const messages = (0,_utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])(ruleName, {
expected: (primary) => `Expected "${primary}" media feature range notation`,
});
const meta = {
url: 'https://stylelint.io/user-guide/rules/media-feature-range-notation',
fixable: true,
};
/** @import {TokenDelim} from '@csstools/css-tokenizer' */
/** @type {import('stylelint').CoreRules[ruleName]} */
const rule = (primary, secondaryOptions) => {
return (root, result) => {
const validOptions = (0,_utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_10__["default"])(
result,
ruleName,
{
actual: primary,
possible: ['prefix', 'context'],
},
{
actual: secondaryOptions,
possible: {
except: ['exact-value'],
},
optional: true,
},
);
if (!validOptions) {
return;
}
const exceptExactValue = (0,_utils_optionsMatches_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(secondaryOptions, 'except', 'exact-value');
root.walkAtRules(_utils_regexes_mjs__WEBPACK_IMPORTED_MODULE_4__.atRuleRegexes.mediaName, (atRule) => {
const mediaQueryList = (0,_utils_parseMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])(atRule);
mediaQueryList.forEach((mediaQuery) => {
if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaQueryInvalid)(mediaQuery)) return;
mediaQuery.walk(({ node, parent }) => {
// Only look at plain and range notation media features
if (!(0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeatureRange)(node) && !(0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeaturePlain)(node)) return;
const featureName = node.getName();
const unprefixedMediaFeature = featureName.replace(/^(?:min|max)-/i, '');
if (!_reference_mediaFeatures_mjs__WEBPACK_IMPORTED_MODULE_7__.rangeTypeMediaFeatureNames.has(unprefixedMediaFeature)) return;
if (exceptExactValue) {
const isMediaFeatureRangeWithExactOperator =
((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeatureRangeNameValue)(node) || (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeatureRangeValueName)(node)) &&
node.operator.length === 1 &&
node.operator[0][1] === '=';
const isMediaFeaturePlainUnprefixed =
(0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeaturePlain)(node) && featureName.length === unprefixedMediaFeature.length;
if (isMediaFeatureRangeWithExactOperator || isMediaFeaturePlainUnprefixed) {
primary = primary === 'prefix' ? 'context' : 'prefix';
}
}
// Expected plain notation and received plain notation
if (primary === 'prefix' && (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeaturePlain)(node)) return;
// Expected range notation and received range notation
if (primary === 'context' && (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeatureRange)(node)) return;
/**
* @param {object} entry
* @param {import('@csstools/media-query-list-parser').MediaFeaturePlain} entry.node
* @param {import('@csstools/media-query-list-parser').MediaFeature} entry.parent
*/
const contextFixer = (entry) => () => {
/** @type {[TokenDelim]|[TokenDelim, TokenDelim]} */
let operator;
if (/^min-/i.test(featureName)) {
operator = [
[_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__.TokenType.Delim, '>', -1, -1, { value: '>' }],
[_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__.TokenType.Delim, '=', -1, -1, { value: '=' }],
];
} else if (/^max-/i.test(featureName)) {
operator = [
[_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__.TokenType.Delim, '<', -1, -1, { value: '<' }],
[_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__.TokenType.Delim, '=', -1, -1, { value: '=' }],
];
} else {
operator = [[_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__.TokenType.Delim, '=', -1, -1, { value: '=' }]];
}
entry.parent.feature = new _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.MediaFeatureRangeNameValue(
new _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.MediaFeatureName(
new _csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_1__.TokenNode([
_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__.TokenType.Ident,
unprefixedMediaFeature,
-1,
-1,
{ value: unprefixedMediaFeature },
]),
entry.node.name.before,
entry.node.name.after.length > 0
? entry.node.name.after
: [[_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_2__.TokenType.Whitespace, ' ', -1, -1, undefined]],
),
operator,
entry.node.value,
);
const expectedMediaQueryList = mediaQueryList.map((mq) => mq.toString()).join(',');
if (expectedMediaQueryList === atRule.params) return;
atRule.params = expectedMediaQueryList;
};
const hasFix =
primary === 'context' && (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeaturePlain)(node) && (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeature)(parent);
const fix = hasFix ? contextFixer({ node, parent }) : undefined;
const [startIndex, endIndex] = (0,_csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_1__.sourceIndices)(node);
const atRuleIndex = (0,_utils_nodeFieldIndices_mjs__WEBPACK_IMPORTED_MODULE_3__.atRuleParamIndex)(atRule);
(0,_utils_report_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
message: messages.expected,
messageArgs: [primary],
node: atRule,
index: atRuleIndex + startIndex - 1,
endIndex: atRuleIndex + endIndex + 1 + 1,
result,
ruleName,
fix: {
apply: fix,
node: atRule,
},
});
});
});
});
};
};
rule.ruleName = ruleName;
rule.messages = messages;
rule.meta = meta;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rule);
/***/ })
};
;
//# sourceMappingURL=158.extension.js.map