customization static method

void customization({
  1. PayorcInputBorderStyle? inputBorderStyle,
  2. PayorcGuidanceStyle? guidanceStyle,
  3. PayorcAppBarStyle? appBarStyle,
  4. Color? brandColor,
  5. PayorcSdkButtonCustomization? button,
  6. Color? accentColor,
  7. PayorcSdkTextCustomization? text,
  8. Color? textPrimary,
  9. Color? textSecondary,
  10. PayorcSdkCardFormValidationCustomization? cardFormValidation,
  11. PayorcSdkAddCardFormCustomization? addCardForm,
  12. PayorcSdkAppTextFieldCustomization? appTextField,
  13. PayorcSdkBottomSheetCustomization? bottomSheet,
  14. Color? borderColor,
  15. int? autoselectColor,
})

Applies host UI customization merged with checkout merchant_details.

Priority: values passed here override checkout API fields loaded via applyCheckoutCustomizationResponse (e.g. payment-options refresh). When a parameter is omitted, the backend value is used; when the backend omits it, SDK defaults apply.

Checkout field mapping:

Parameter merchant_details
inputBorderStyle field_border (outline / underline)
appBarStyle app_style (nativeIos / nativeAndroid)
borderColor border_color
textPrimary / text.primary text_primary
textSecondary / text.secondary text_secondary
autoselectColor autoselect_color

appTextField can further override field border color and sizing for AppTextField only.

Implementation

static void customization({
  PayorcInputBorderStyle? inputBorderStyle,
  PayorcGuidanceStyle? guidanceStyle,
  PayorcAppBarStyle? appBarStyle,
  Color? brandColor,
  PayorcSdkButtonCustomization? button,
  Color? accentColor,
  PayorcSdkTextCustomization? text,
  Color? textPrimary,
  Color? textSecondary,
  PayorcSdkCardFormValidationCustomization? cardFormValidation,
  PayorcSdkAddCardFormCustomization? addCardForm,
  PayorcSdkAppTextFieldCustomization? appTextField,
  PayorcSdkBottomSheetCustomization? bottomSheet,
  Color? borderColor,
  int? autoselectColor,
}) {
  if (inputBorderStyle != null) {
    _customInputBorderStyle = inputBorderStyle;
  }
  if (guidanceStyle != null) {
    _guidanceStyle = guidanceStyle;
  }
  if (appBarStyle != null) {
    _customAppBarStyle = appBarStyle;
  }
  if (brandColor != null) {
    _customBrandColor = _validatedOverrideColorOrNull(brandColor);
  }
  if (button != null) {
    if (button.backgroundColor != null) {
      _customButtonColor =
          _validatedOverrideColorOrNull(button.backgroundColor!);
    }
    if (button.foregroundColor != null) {
      _customButtonForegroundColor =
          _validatedOverrideColorOrNull(button.foregroundColor!);
    }
    if (button.disabledBackgroundColor != null) {
      _customButtonDisabledBackgroundColor =
          _validatedOverrideColorOrNull(button.disabledBackgroundColor!);
    }
    if (button.sideBorderColor != null) {
      _customButtonSideBorderColor =
          _validatedOverrideColorOrNull(button.sideBorderColor!);
    }
    if (button.borderRadius != null) {
      _customButtonBorderRadius = button.borderRadius;
    }
    if (button.height != null) {
      _customButtonHeight = button.height;
    }
    if (button.fontWeight != null) {
      _customButtonFontWeight = button.fontWeight;
    }
    if (button.loadingIndicatorColor != null) {
      _customButtonLoadingIndicatorColor =
          _validatedOverrideColorOrNull(button.loadingIndicatorColor!);
    }
  }
  if (accentColor != null) {
    _customAccentColor = _validatedOverrideColorOrNull(accentColor);
  }
  if (text != null) {
    if (text.primary != null) {
      _customTextPrimaryColor = _validatedOverrideColorOrNull(text.primary!);
    }
    if (text.secondary != null) {
      _customTextSecondaryColor =
          _validatedOverrideColorOrNull(text.secondary!);
    }
    if (text.bodyFontFamily != null) {
      final s = text.bodyFontFamily!.familyName.trim();
      _customTextBodyFontFamily = s.isEmpty ? null : s;
    }
    if (text.titleFontFamily != null) {
      final s = text.titleFontFamily!.familyName.trim();
      _customTextTitleFontFamily = s.isEmpty ? null : s;
    }
    if (text.fontWeight != null) {
      PayorcSdkUiConstants.textFontWeight = text.fontWeight;
    }
    if (text.fontSize != null) {
      PayorcSdkUiConstants.textFontSize = text.fontSize;
    }
    if (text.letterSpacing != null) {
      PayorcSdkUiConstants.textLetterSpacing = text.letterSpacing;
    }
    if (text.textAlign != null) {
      PayorcSdkUiConstants.textAlign = text.textAlign;
    }
    if (text.maxLines != null) {
      PayorcSdkUiConstants.textMaxLines = text.maxLines;
    }
    if (text.overflow != null) {
      PayorcSdkUiConstants.textOverflow = text.overflow;
    }
    if (text.decoration != null) {
      PayorcSdkUiConstants.textDecoration = text.decoration;
    }
    if (text.wordSpacing != null) {
      PayorcSdkUiConstants.textWordSpacing = text.wordSpacing;
    }
    if (text.softWrap != null) {
      PayorcSdkUiConstants.textSoftWrap = text.softWrap;
    }
    if (text.shadows != null) {
      PayorcSdkUiConstants.textShadows = text.shadows;
    }
    if (text.fontStyle != null) {
      PayorcSdkUiConstants.textFontStyle = text.fontStyle;
    }
  }
  if (cardFormValidation != null) {
    _cardFormValidation = cardFormValidation;
  }
  if (addCardForm != null) {
    _addCardForm =
        PayorcSdkAddCardFormCustomization.merge(_addCardForm, addCardForm);
  }
  if (appTextField != null) {
    if (appTextField.height != null) {
      _customAppTextFieldHeight = appTextField.height;
    }
    if (appTextField.padding != null) {
      _customAppTextFieldPadding = appTextField.padding;
    }
    if (appTextField.borderRadius != null) {
      _customAppTextFieldBorderRadius = appTextField.borderRadius;
    }
    if (appTextField.borderColor != null) {
      _customAppTextFieldBorderColor =
          _validatedOverrideColorOrNull(appTextField.borderColor!);
    }
  }
  if (bottomSheet != null) {
    if (bottomSheet.padding != null) {
      _customBottomSheetPadding = bottomSheet.padding;
    }
    if (bottomSheet.spacing != null) {
      _customBottomSheetSpacing = bottomSheet.spacing;
    }
    if (bottomSheet.cornerRadius != null) {
      _customBottomSheetCornerRadius = bottomSheet.cornerRadius;
    }
  }
  if (borderColor != null) {
    _customBorderColor = _validatedOverrideColorOrNull(borderColor);
  }
  if (textPrimary != null) {
    _customTextPrimaryColor = _validatedOverrideColorOrNull(textPrimary);
  }
  if (textSecondary != null) {
    _customTextSecondaryColor = _validatedOverrideColorOrNull(textSecondary);
  }
  if (autoselectColor != null) {
    _customAutoselectColor = autoselectColor;
  }
  _applyUiColorOverrides();
  uiCustomizationRevision.value++;
  checkoutCustomizationRevision.value++;
}