@clerk/themes
Version:
Themes for the Clerk auth components
55 lines (54 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.clearCache = exports.cssSupports = void 0;
const CSS_FEATURE_TESTS = {
relativeColorSyntax: 'color: hsl(from white h s l)',
colorMix: 'color: color-mix(in srgb, white, black)',
};
let SUPPORTS_RELATIVE_COLOR;
let SUPPORTS_COLOR_MIX;
let SUPPORTS_MODERN_COLOR;
exports.cssSupports = {
relativeColorSyntax: () => {
if (SUPPORTS_RELATIVE_COLOR !== undefined)
return SUPPORTS_RELATIVE_COLOR;
try {
SUPPORTS_RELATIVE_COLOR = CSS.supports(CSS_FEATURE_TESTS.relativeColorSyntax);
}
catch {
SUPPORTS_RELATIVE_COLOR = false;
}
return SUPPORTS_RELATIVE_COLOR;
},
colorMix: () => {
if (SUPPORTS_COLOR_MIX !== undefined)
return SUPPORTS_COLOR_MIX;
try {
SUPPORTS_COLOR_MIX = CSS.supports(CSS_FEATURE_TESTS.colorMix);
}
catch {
SUPPORTS_COLOR_MIX = false;
}
return SUPPORTS_COLOR_MIX;
},
/**
* Returns true if either relativeColorSyntax or colorMix is supported
*/
modernColor() {
if (SUPPORTS_MODERN_COLOR !== undefined)
return SUPPORTS_MODERN_COLOR;
try {
SUPPORTS_MODERN_COLOR = this.relativeColorSyntax() || this.colorMix();
}
catch {
SUPPORTS_MODERN_COLOR = false;
}
return SUPPORTS_MODERN_COLOR;
},
};
const clearCache = () => {
SUPPORTS_RELATIVE_COLOR = undefined;
SUPPORTS_COLOR_MIX = undefined;
SUPPORTS_MODERN_COLOR = undefined;
};
exports.clearCache = clearCache;