diff --git a/MVMCoreUI/Atomic/Extensions/VDS-Enums+Codable.swift b/MVMCoreUI/Atomic/Extensions/VDS-Enums+Codable.swift index 1d24a0bd..050952b8 100644 --- a/MVMCoreUI/Atomic/Extensions/VDS-Enums+Codable.swift +++ b/MVMCoreUI/Atomic/Extensions/VDS-Enums+Codable.swift @@ -8,7 +8,11 @@ import Foundation import VDS +import VDSColorTokens +//-------------------------------------------------- +// MARK: - Codable Extensions +//-------------------------------------------------- extension Surface: Codable {} extension Badge.FillColor: Codable {} extension Icon.Name: Codable {} @@ -20,7 +24,31 @@ extension TextLink.Size: Codable {} extension VDS.Line.Style: Codable {} extension VDS.Line.Orientation: Codable {} extension Use: Codable {} + extension VDS.Button.Size: RawRepresentableCodable { public static var mapping: [String : VDS.Button.Size] { ["standard": .large, "tiny": .small] } public static var defaultValue: VDS.Button.Size? { nil } -} \ No newline at end of file +} + +//-------------------------------------------------- +// MARK: - Decodable Defaults +//-------------------------------------------------- +extension DecodableDefault.Sources { + public struct Surface: DecodableDefaultSource { + public static var defaultValue: VDS.Surface { .light } + } + + public struct IconSize: DecodableDefaultSource { + public static var defaultValue: VDS.Icon.Size { .medium } + } + + public struct BlackColor: DecodableDefaultSource { + public static var defaultValue: Color { .init(uiColor: VDSColor.paletteBlack) } + } +} + +extension DecodableDefault { + public typealias IconSize = Wrapper + public typealias BlackColor = Wrapper + public typealias Surface = Wrapper +}