@tanstack/charts
Version:
<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/api/readme/charts.png?theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/
30 lines (29 loc) • 1.11 kB
JavaScript
function resolveNativePaint(paint, context) {
const { color, canvas } = context;
const value = paint.trim();
if (value === "currentColor" || value === "CanvasText") return color;
if (value === "Canvas") return canvas ?? color;
if (!value.startsWith("var(") || !value.endsWith(")")) return value;
const fallback = cssVariableFallback(value);
return fallback ? resolveNativePaint(fallback, context) : color;
}
function resolveNativeSolidPaint(paint, context, resolvePaint = resolveNativePaint) {
const resolved = resolvePaint(paint, context);
return typeof resolved === "string" && resolved.trim().startsWith("url(") && resolved.trim().endsWith(")") ? context.color : resolved;
}
function cssVariableFallback(value) {
let depth = 0;
for (let index = 4; index < value.length - 1; index += 1) {
const character = value[index];
if (character === "(") depth += 1;
if (character === ")") depth -= 1;
if (character === "," && depth === 0) {
return value.slice(index + 1, -1).trim();
}
}
return void 0;
}
export {
resolveNativePaint,
resolveNativeSolidPaint
};