@react-awesome-query-builder/ui
Version:
User-friendly query builder for React. Core React UI
37 lines • 1.32 kB
JavaScript
import { default as chroma } from "chroma-js";
export var setColorOpacity = function setColorOpacity(color, alpha) {
return chroma(color).alpha(alpha).hex();
};
export var generateCssVarsForLevels = function generateCssVarsForLevels(isDark, cssVar, baseColor) {
var baseDarkColor = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
var maxLevel = 20;
var maxRatio = isDark ? 0.2 : 0.85;
return Object.fromEntries(Array.from({
length: maxLevel + 1
}, function (_v, k) {
return k;
}).map(function (lev) {
var k = "".concat(cssVar, "-").concat(lev);
var chr = chroma(isDark ? baseDarkColor !== null && baseDarkColor !== void 0 ? baseDarkColor : baseColor : baseColor);
var ratio = (lev + 1) / (maxLevel + 1) * maxRatio;
var chr2 = isDark ? chr.tint(ratio) : chr.shade(ratio);
var v = chr2.hex();
return [k, v];
}));
};
export var isDarkColor = function isDarkColor(color) {
if (!color || color === "transparent") return undefined;
// const lightness = chroma(color).get("lab.l");
// return lightness < 70;
var luminance = chroma(color).luminance();
return luminance < 0.5;
};
export var isColor = function isColor(color) {
try {
chroma(color);
return true;
} catch (_unused) {
return false;
}
};
export { chroma };