tryParse static method
Implementation
static NexusInAppDesign? tryParse(Object? raw) {
if (raw is! Map) return null;
final j = raw.cast<String, dynamic>();
final blocks = (j['blocks'] as List?)
?.whereType<Map>()
.map((b) => NexusInAppBlock.tryParse(b.cast<String, dynamic>()))
.whereType<NexusInAppBlock>()
.toList() ??
const <NexusInAppBlock>[];
if (blocks.isEmpty) return null;
final overlay = _map(j['overlay']);
final close = _map(j['close']);
return NexusInAppDesign(
blocks: blocks,
frame: NexusInAppFrame._parse(_map(j['frame'])),
overlayColor: (parseHex(overlay['color']) ?? const Color(0xFF0B1220))
.withValues(alpha: _num(overlay['opacity'], 0.55).clamp(0.0, 0.95)),
dismissOnBackdropTap: overlay['dismissOnTap'] != false,
close: NexusInAppClose(
show: close['show'] != false,
circle: close['style'] == 'circle',
color: parseHex(close['color']) ?? const Color(0xFF6B7280),
atStart: close['position'] == 'start',
),
animation: _str(j['animation'], 'fade'),
autoDismissSeconds: _num(j['autoDismiss'], 0).round(),
direction: _str(j['dir'], 'auto'),
);
}