UNPKG

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.

396 lines (315 loc) 13.6 kB
"use strict"; exports.id = 156; exports.ids = [156]; exports.modules = { /***/ 1711: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ isCustomMediaQuery) /* harmony export */ }); /** * Check whether a media query is a custom * @param {string} mediaQuery * @returns {boolean} */ function isCustomMediaQuery(mediaQuery) { return mediaQuery.startsWith('--'); } /***/ }), /***/ 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; } /***/ }), /***/ 1721: /***/ ((__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_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1647); /* harmony import */ var _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1710); /* harmony import */ var _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(579); /* 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_isCustomMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1711); /* harmony import */ var _utils_optionsMatches_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(869); /* harmony import */ var _utils_parseMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1717); /* harmony import */ var _reference_mediaFeatures_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1714); /* harmony import */ var _utils_report_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(945); /* harmony import */ var _utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(950); /* harmony import */ var _utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(873); const ruleName = 'media-query-no-invalid'; const messages = (0,_utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_10__["default"])(ruleName, { rejected: (query, reason) => { if (!reason) return `Unexpected invalid media query "${query}"`; return `Unexpected invalid media query "${query}", ${reason}`; }, }); const reasons = { custom: 'custom media queries can only be used in boolean queries', min_max_in_range: '"min-" and "max-" prefixes are not needed when using range queries', min_max_in_boolean: '"min-" and "max-" prefixes are not needed in boolean queries', discrete: 'discrete features can only be used in plain and boolean queries', }; const HAS_MIN_MAX_PREFIX = /^(?:min|max)-/i; const meta = { url: 'https://stylelint.io/user-guide/rules/media-query-no-invalid', }; /** @typedef {import('stylelint').CoreRules[ruleName]} Rule */ /** @type {Rule} */ const rule = (primary, secondaryOptions) => { return (root, result) => { const validOptions = (0,_utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_11__["default"])( result, ruleName, { actual: primary }, { actual: secondaryOptions, possible: { ignoreFunctions: [_utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__.isString, _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__.isRegExp], }, optional: true, }, ); if (!validOptions) { return; } root.walkAtRules(_utils_regexes_mjs__WEBPACK_IMPORTED_MODULE_4__.atRuleRegexes.mediaName, (atRule) => { const atRuleParamIndexValue = (0,_utils_nodeFieldIndices_mjs__WEBPACK_IMPORTED_MODULE_3__.atRuleParamIndex)(atRule); (0,_utils_parseMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])(atRule).forEach((mediaQuery) => { if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isMediaQueryInvalid)(mediaQuery)) { if (shouldIgnoreNode(mediaQuery, secondaryOptions)) return; // Queries that fail to parse are invalid. complain(atRule, atRuleParamIndexValue, mediaQuery); return; } mediaQuery.walk(({ node, parent }) => { // All general enclosed nodes are invalid. if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isGeneralEnclosed)(node)) { if (shouldIgnoreNode(mediaQuery, secondaryOptions)) return; complain(atRule, atRuleParamIndexValue, node); return; } // Invalid plain media features. if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isMediaFeaturePlain)(node)) { const name = node.getName(); if ((0,_utils_isCustomMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(name)) { // In a plain context, custom media queries are invalid. complain(atRule, atRuleParamIndexValue, parent, 'custom'); return; } return; } // Invalid range media features. if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isMediaFeatureRange)(node)) { const name = node.getName().toLowerCase(); if ((0,_utils_isCustomMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(name)) { // In a range context, custom media queries are invalid. complain(atRule, atRuleParamIndexValue, parent, 'custom'); return; } if (HAS_MIN_MAX_PREFIX.test(name)) { // In a range context, min- and max- prefixed feature names are invalid. complain(atRule, atRuleParamIndexValue, parent, 'min_max_in_range'); return; } if (!_reference_mediaFeatures_mjs__WEBPACK_IMPORTED_MODULE_8__.rangeTypeMediaFeatureNames.has(name)) { // In a range context, non-range typed features are invalid. complain(atRule, atRuleParamIndexValue, parent, 'discrete'); return; } return; } // Invalid boolean media features. if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isMediaFeatureBoolean)(node)) { const name = node.getName(); if (HAS_MIN_MAX_PREFIX.test(name)) { // In a boolean feature, min- and max- prefixed feature names are invalid complain(atRule, atRuleParamIndexValue, parent, 'min_max_in_boolean'); } } }); }); }); /** * @param {import('postcss').AtRule} atRule * @param {number} index * @param {{tokens(): Array<import('@csstools/css-tokenizer').CSSToken>}} node * @param {keyof reasons} [reason] */ function complain(atRule, index, node, reason) { const [start, end] = (0,_csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_0__.sourceIndices)(node); (0,_utils_report_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])({ message: messages.rejected, messageArgs: [node.toString(), reason ? reasons[reason] : ''], index: index + start, endIndex: index + end + 1, node: atRule, ruleName, result, }); } }; }; /** * @param {import('@csstools/media-query-list-parser').MediaQuery|import('@csstools/media-query-list-parser').GeneralEnclosed} node * @param {Parameters<Rule>[1]} secondaryOptions * @returns {boolean} */ function shouldIgnoreNode(node, secondaryOptions) { if (!secondaryOptions?.ignoreFunctions) return false; let ignored = false; node.walk(({ node: childNode }) => { if (!(0,_csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_0__.isFunctionNode)(childNode)) { return; } ignored = (0,_utils_optionsMatches_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])(secondaryOptions, 'ignoreFunctions', childNode.getName()); if (ignored) { return false; // Stop iteration if an ignored function is found } }); return ignored; } rule.ruleName = ruleName; rule.messages = messages; rule.meta = meta; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rule); /***/ }) }; ; //# sourceMappingURL=156.extension.js.map