stThemeFromIr function

STTheme stThemeFromIr(
  1. STDesignIr ir
)

Implementation

STTheme stThemeFromIr(STDesignIr ir) {
  final r = ir.radius;
  return STTheme(
    colors: STColors(
      primary: _color(ir.colors.primary),
      surface: _color(ir.colors.surface),
      background: _color(ir.colors.background),
      text: _color(ir.colors.text),
      secondary:
          ir.colors.secondary == null ? null : _color(ir.colors.secondary!),
      border: ir.colors.border == null ? null : _color(ir.colors.border!),
      divider: ir.colors.divider == null ? null : _color(ir.colors.divider!),
      textSecondary:
          ir.colors.textSecondary == null
              ? null
              : _color(ir.colors.textSecondary!),
      error: ir.colors.error == null ? null : _color(ir.colors.error!),
      success: ir.colors.success == null ? null : _color(ir.colors.success!),
      warning: ir.colors.warning == null ? null : _color(ir.colors.warning!),
      info: ir.colors.info == null ? null : _color(ir.colors.info!),
      extra: {for (final e in ir.colors.extra.entries) e.key: _color(e.value)},
    ),
    radius: STRadius(
      xs: r?.xs ?? 4,
      sm: r?.sm ?? 8,
      md: r?.md ?? 12,
      lg: r?.lg ?? 16,
      xl: r?.xl ?? 24,
    ),
    typography:
        ir.typography == null
            ? const STTypography()
            : STTypography(
              fontFamily: ir.typography!.fontFamily,
              label: _text(ir.typography!.label),
              sublabel: _text(ir.typography!.sublabel),
              description: _text(ir.typography!.description),
            ),
    components: _components(ir.components),
    extras: [for (final extra in ir.extras) _extra(extra)],
  );
}