Normalize a raw blending_mode string to a canonical
BlendingMode.
undefined → 'additive' (the emissive default). NOTE: composeAttrs
no longer funnels an unset chain here — it returns undefined and each
consumer applies its own per-type default (#1272); this arm is now only a
defensive fallback for any remaining caller that hands over an absent mode.
Anything else → 'normal', warning once per distinct string.
'normal' matches getCompleteBlendingState's fallthrough AND
keeps isNormalMode() true, so unknown-mode gsplats still get
depth-sorted instead of rendering alpha-over unsorted.
Parameters
raw: string|undefined
the raw attribute value (possibly absent or malformed)
Normalize a raw
blending_modestring to a canonical BlendingMode.undefined→'additive'(the emissive default). NOTE:composeAttrsno longer funnels an unset chain here — it returnsundefinedand each consumer applies its own per-type default (#1272); this arm is now only a defensive fallback for any remaining caller that hands over an absent mode.'normal', warning once per distinct string.'normal'matchesgetCompleteBlendingState's fallthrough AND keepsisNormalMode()true, so unknown-mode gsplats still get depth-sorted instead of rendering alpha-over unsorted.