UNPKG

@tanstack/charts

Version:

A chart grammar for TypeScript and JavaScript. Marks consume your data directly, channels describe visual encodings, and the engine compiles them into a renderer-neutral keyed scene. TanStack's compact scales cover common numeric and categorical mappings.

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