ZdsThemeData.fromJson constructor

ZdsThemeData.fromJson(
  1. Map<String, dynamic> json
)

Factory constructor for creating ZdsThemeData from a JSON map.

Implementation

factory ZdsThemeData.fromJson(Map<String, dynamic> json) {
  // Determines if accessibility adjustments are needed.
  final adjustAccessibility = json['adjustAccessibility'] as bool? ?? false;

  // Determines the contrast level, defaulting to 'aa' if not specified as 'aaa'.
  final contrast = _zetaContrast(json);

  // Determines theme mode
  final themeMode = _themeMode(json);

  final light = json['light'] as Map<String, dynamic>?;
  final dark = json['dark'] as Map<String, dynamic>?;

  final lightColors = _ZdsBaseColors.fromJson(light);
  final darkColors = dark != null ? _ZdsBaseColors.fromJson(light) : lightColors;

  return ZdsThemeData._(
    themeMode: themeMode,
    contrast: contrast,
    lightColors: lightColors,
    darkColors: darkColors,
    adjustAccessibility: adjustAccessibility,
    lightAppBarStyle: _zetaAppBarStyle(light),
    darkAppBarStyle: _zetaAppBarStyle(dark),
    themeData: _zetaThemeDataFromJson(
      json,
      contrast,
      adjustAccessibility,
      lightColors,
      darkColors,
    ),
  );
}