@mapcss/preset-typography
Version:
Typography preset for MapCSS
37 lines (36 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isAtRule = exports.isRule = exports.isDeclaration = exports.isCSSDefinition = exports.isCSSObject = exports.isBlockDefinition = exports.isValidSelector = void 0;
const deps_js_1 = require("../../deps.js");
const reValidSelector = /(?!\d|-{2}|-\d)[a-zA-Z0-9\u00A0-\uFFFF-_:%-?]/;
function isValidSelector(selector) {
return reValidSelector.test(selector);
}
exports.isValidSelector = isValidSelector;
function isBlockDefinition(value) {
if (!(0, deps_js_1.isObject)(value))
return false;
return Object.values(value).every((v) => (0, deps_js_1.isString)(v) || (0, deps_js_1.isNumber)(v));
}
exports.isBlockDefinition = isBlockDefinition;
function isCSSObject(value) {
return isCSSDefinition(value) || isBlockDefinition(value);
}
exports.isCSSObject = isCSSObject;
function isCSSDefinition(value) {
return (0, deps_js_1.isObject)(value) && (0, deps_js_1.prop)("type", value) === "css" &&
(0, deps_js_1.isObject)((0, deps_js_1.prop)("value", value));
}
exports.isCSSDefinition = isCSSDefinition;
function isDeclaration(node) {
return node instanceof deps_js_1.Declaration;
}
exports.isDeclaration = isDeclaration;
function isRule(node) {
return node instanceof deps_js_1.Rule;
}
exports.isRule = isRule;
function isAtRule(node) {
return node instanceof deps_js_1.AtRule;
}
exports.isAtRule = isAtRule;