{"version":3,"file":"css.cjs","names":[],"sources":["../../src/utils/css.ts"],"sourcesContent":["/**\n * Validates that a string is a safe CSS length value before injecting it\n * into a CSS custom property. Accepts standard length units, percentages,\n * CSS keywords, and `calc()`/`var()` expressions without embedded semicolons,\n * curly braces, or other CSS injection vectors.\n *\n * @returns The trimmed value if safe, `null` otherwise.\n */\nexport function safeCSSLength(value: string | null | undefined): string | null {\n  if (!value) return null;\n\n  const v = value.trim();\n\n  // Block CSS injection sequences (parens excluded — needed by var()/calc())\n  if (/[;{}\\n\\r]/.test(v)) return null;\n\n  // Allow: numbers with units, %, keywords, var(--token), calc(...), env(...)\n  if (\n    /^-?(\\d+(\\.\\d+)?)(px|em|rem|%|vh|vw|vmin|vmax|dvh|dvw|svh|svw|ch|ex|lh|rlh|cm|mm|in|pt|pc|fr|s|ms|deg|rad|turn)$/.test(\n      v,\n    )\n  )\n    return v;\n\n  if (/^(0|auto|none|inherit|initial|unset|revert)$/.test(v)) return v;\n\n  // Allow CSS function expressions: var(--token), calc(...), env(...), clamp(...), min(...), max(...)\n  // Tightened pattern: must match the whole value and inner parens must close properly.\n  if (/^(var|calc|env|clamp|min|max)\\([^;{}]*\\)$/.test(v)) return v;\n\n  return null;\n}\n"],"mappings":"AAQA,SAAgB,EAAc,EAAiD,CAC7E,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAI,EAAM,KAAK,EAmBrB,MAhBI,YAAY,KAAK,CAAC,EAAU,KAI9B,kHAAkH,KAChH,CACF,GAIE,+CAA+C,KAAK,CAAC,GAIrD,4CAA4C,KAAK,CAAC,EAAU,EAEzD,IACT"}