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