UNPKG

@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
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 };