{"version":3,"file":"normalize.js","names":[],"sources":["esm/platform/effects/normalize.js"],"sourcesContent":["const DEFAULT_SIZE = 80;\nconst DEFAULT_CURVE = \"smooth\";\nconst DEFAULT_BLUR_RADIUS = 28;\nfunction resolveEdge(prop, size, curve) {\n  if (!prop) return null;\n  if (prop === true) return { size, curve };\n  if (typeof prop === \"number\") return { size: prop, curve };\n  if (typeof prop === \"object\" && prop !== null && (prop.size != null || prop.curve != null || prop.color != null)) {\n    return {\n      size: prop.size ?? size,\n      curve: prop.curve ?? curve,\n      color: prop.color\n    };\n  }\n  return null;\n}\nfunction resolveEdges(props, isRTL) {\n  const size = props.size ?? DEFAULT_SIZE;\n  const curve = props.curve ?? DEFAULT_CURVE;\n  const leftLogical = isRTL ? props.end : props.start;\n  const rightLogical = isRTL ? props.start : props.end;\n  const top = resolveEdge(props.top, size, curve);\n  const bottom = resolveEdge(props.bottom, size, curve);\n  const left = resolveEdge(leftLogical ?? props.left, size, curve);\n  const right = resolveEdge(rightLogical ?? props.right, size, curve);\n  const hasColor = props.color != null || top?.color != null || bottom?.color != null || left?.color != null || right?.color != null;\n  const mode = props.mode ?? (hasColor ? \"overlay\" : \"mask\");\n  if (hasColor && props.mode === \"mask\") {\n    console.warn(\n      '[EdgeFade] `color` is ignored when `mode=\"mask\"` is set explicitly. either remove `color` or switch to `mode=\"overlay\"`.'\n    );\n  }\n  if (props.mode === \"blur\" && (top?.color != null || bottom?.color != null || left?.color != null || right?.color != null)) {\n    console.warn(\n      \"[EdgeFade] per-edge `color` is ignored in blur mode: the frost veil uses the global `color` only.\"\n    );\n  }\n  return {\n    top,\n    bottom,\n    left,\n    right,\n    mode,\n    color: props.color,\n    blurRadius: Math.max(0, props.blurRadius ?? DEFAULT_BLUR_RADIUS),\n    frostProgression: Math.max(0.05, Math.min(1, props.frostProgression ?? 1))\n  };\n}\nfunction resolveRadius(radius, styleRadius) {\n  if (styleRadius != null) {\n    console.warn(\n      \"[EdgeFade] `style.borderRadius` is ignored \\u2014 use the `radius` prop instead so the corner clip integrates with the fade.\"\n    );\n  }\n  return radius;\n}\nfunction flattenStyle(style) {\n  const into = {};\n  mergeStyle(style, into);\n  return into;\n}\nfunction mergeStyle(entry, into) {\n  if (Array.isArray(entry)) for (const inner of entry) mergeStyle(inner, into);\n  else if (entry && typeof entry === \"object\") Object.assign(into, entry);\n}\nexport {\n  DEFAULT_CURVE,\n  flattenStyle,\n  resolveEdges,\n  resolveRadius\n};\n//# sourceMappingURL=normalize.js.map\n"],"mappings":";AAAA,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,sBAAsB;AAC5B,SAAS,YAAY,MAAM,MAAM,OAAO;CACtC,IAAI,CAAC,MAAM,OAAO;CAClB,IAAI,SAAS,MAAM,OAAO;EAAE;EAAM;CAAM;CACxC,IAAI,OAAO,SAAS,UAAU,OAAO;EAAE,MAAM;EAAM;CAAM;CACzD,IAAI,OAAO,SAAS,YAAY,SAAS,SAAS,KAAK,QAAQ,QAAQ,KAAK,SAAS,QAAQ,KAAK,SAAS,OAAO;EAChH,OAAO;GACL,MAAM,KAAK,QAAQ;GACnB,OAAO,KAAK,SAAS;GACrB,OAAO,KAAK;EACd;CACF;CACA,OAAO;AACT;AACA,SAAS,aAAa,OAAO,OAAO;CAClC,MAAM,OAAO,MAAM,QAAQ;CAC3B,MAAM,QAAQ,MAAM;CACpB,MAAM,cAAc,QAAQ,MAAM,MAAM,MAAM;CAC9C,MAAM,eAAe,QAAQ,MAAM,QAAQ,MAAM;CACjD,MAAM,MAAM,YAAY,MAAM,KAAK,MAAM,KAAK;CAC9C,MAAM,SAAS,YAAY,MAAM,QAAQ,MAAM,KAAK;CACpD,MAAM,OAAO,YAAY,eAAe,MAAM,MAAM,MAAM,KAAK;CAC/D,MAAM,QAAQ,YAAY,gBAAgB,MAAM,OAAO,MAAM,KAAK;CAClE,MAAM,WAAW,MAAM,SAAS,QAAQ,KAAK,SAAS,QAAQ,QAAQ,SAAS,QAAQ,MAAM,SAAS,QAAQ,OAAO,SAAS;CAC9H,MAAM,OAAO,MAAM,SAAS,WAAW,YAAY;CACnD,IAAI,YAAY,MAAM,SAAS,QAAQ;EACrC,QAAQ,KACN,8HACF;CACF;CACA,IAAI,MAAM,SAAS,WAAW,KAAK,SAAS,QAAQ,QAAQ,SAAS,QAAQ,MAAM,SAAS,QAAQ,OAAO,SAAS,OAAO;EACzH,QAAQ,KACN,mGACF;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA,OAAO,MAAM;EACb,YAAY,KAAK,IAAI,GAAG,MAAM,cAAc,mBAAmB;EAC/D,kBAAkB,KAAK,IAAI,KAAM,KAAK,IAAI,GAAG,MAAM,oBAAoB,CAAC,CAAC;CAC3E;AACF;AACA,SAAS,cAAc,QAAQ,aAAa;CAC1C,IAAI,eAAe,MAAM;EACvB,QAAQ,KACN,yHACF;CACF;CACA,OAAO;AACT;AACA,SAAS,aAAa,OAAO;CAC3B,MAAM,OAAO,CAAC;CACd,WAAW,OAAO,IAAI;CACtB,OAAO;AACT;AACA,SAAS,WAAW,OAAO,MAAM;CAC/B,IAAI,MAAM,QAAQ,KAAK,GAAG,KAAK,MAAM,SAAS,OAAO,WAAW,OAAO,IAAI;MACtE,IAAI,SAAS,OAAO,UAAU,UAAU,OAAO,OAAO,MAAM,KAAK;AACxE"}