@react-awesome-query-builder/ui
Version:
User-friendly query builder for React. Core React UI
49 lines (48 loc) • 1.86 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "chroma", {
enumerable: true,
get: function get() {
return _chromaJs["default"];
}
});
exports.setColorOpacity = exports.isDarkColor = exports.isColor = exports.generateCssVarsForLevels = void 0;
var _chromaJs = _interopRequireDefault(require("chroma-js"));
var setColorOpacity = exports.setColorOpacity = function setColorOpacity(color, alpha) {
return (0, _chromaJs["default"])(color).alpha(alpha).hex();
};
var generateCssVarsForLevels = exports.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 = (0, _chromaJs["default"])(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];
}));
};
var isDarkColor = exports.isDarkColor = function isDarkColor(color) {
if (!color || color === "transparent") return undefined;
// const lightness = chroma(color).get("lab.l");
// return lightness < 70;
var luminance = (0, _chromaJs["default"])(color).luminance();
return luminance < 0.5;
};
var isColor = exports.isColor = function isColor(color) {
try {
(0, _chromaJs["default"])(color);
return true;
} catch (_unused) {
return false;
}
};