// // DropShadowConfiguration.swift // VDS // // Created by Bandaru, Krishna Kishore on 05/03/24. // import Foundation /** DropShadowConfiguration confirms to DropShadowable where it has configurable properties required for drop shadow */ final class DropShadowConfiguration: DropShadowable, ObjectWithable { typealias CGFloatConfigurationValue = SurfaceConfigurationValue typealias CGSizeConfigurationValue = SurfaceConfigurationValue ///Shadow Color configuration for light and dark surfaces var shadowColorConfiguration: AnyColorable ///Shadow Opacity configuration for light and dark surfaces var shadowOpacityConfiguration: CGFloatConfigurationValue ///Shadow Offset configuration for light and dark surfaces var shadowOffsetConfiguration: CGSizeConfigurationValue ///Shadow Radius configuration for light and dark surfaces var shadowRadiusConfiguration: CGFloatConfigurationValue init(shadowColorConfiguration: AnyColorable = SurfaceColorConfiguration().eraseToAnyColorable(), shadowOpacity: CGFloatConfigurationValue = CGFloatConfigurationValue(1.0, 1.0), shadowOffset: CGSizeConfigurationValue = CGSizeConfigurationValue(.zero, .zero), shadowRadius: CGFloatConfigurationValue = CGFloatConfigurationValue(1.0, 1.0)) { self.shadowColorConfiguration = shadowColorConfiguration self.shadowOpacityConfiguration = shadowOpacity self.shadowOffsetConfiguration = shadowOffset self.shadowRadiusConfiguration = shadowRadius } }