From fdd6360f319f3f7593230cf772f6f07c854fc49d Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 5 Jun 2024 09:32:32 -0500 Subject: [PATCH 1/2] initial cut Signed-off-by: Matt Bruce --- VDS/Components/Tilelet/Tilelet.swift | 4 +-- .../Tilelet/TileletIconModels.swift | 34 +++++++++++++++---- .../TitleLockup/TitleLockupTextColor.swift | 18 ++++++---- 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/VDS/Components/Tilelet/Tilelet.swift b/VDS/Components/Tilelet/Tilelet.swift index 9c4f33da..4d714874 100644 --- a/VDS/Components/Tilelet/Tilelet.swift +++ b/VDS/Components/Tilelet/Tilelet.swift @@ -540,7 +540,7 @@ open class Tilelet: TileContainerBase { var showIconContainerView = false if let descriptiveIconModel { descriptiveIcon.name = descriptiveIconModel.name - descriptiveIcon.colorConfiguration = descriptiveIconModel.colorConfiguration + descriptiveIcon.color = descriptiveIconModel.iconColor.uiColor ?? VDSColor.paletteBlack descriptiveIcon.size = descriptiveIconModel.size descriptiveIcon.surface = backgroundColorSurface showIconContainerView = true @@ -548,7 +548,7 @@ open class Tilelet: TileContainerBase { if let directionalIconModel { directionalIcon.name = directionalIconModel.iconType.iconName - directionalIcon.colorConfiguration = directionalIconModel.colorConfiguration + directionalIcon.color = directionalIconModel.iconColor.uiColor ?? VDSColor.paletteBlack directionalIcon.size = directionalIconModel.size.value directionalIcon.surface = backgroundColorSurface showIconContainerView = true diff --git a/VDS/Components/Tilelet/TileletIconModels.swift b/VDS/Components/Tilelet/TileletIconModels.swift index 7fc408a3..1ade5c57 100644 --- a/VDS/Components/Tilelet/TileletIconModels.swift +++ b/VDS/Components/Tilelet/TileletIconModels.swift @@ -11,13 +11,33 @@ import VDSTokens extension Tilelet { + public enum IconColor: Equatable { + case token(UIColor.VDSColor) + case custom(UIColor) + + private var reflectedValue: String { String(reflecting: self) } + + public static func == (lhs: Self, rhs: Self) -> Bool { + lhs.reflectedValue == rhs.reflectedValue + } + + public var uiColor: UIColor { + switch self { + case .token(let color): + return color + case .custom(let color): + return color + } + } + } + /// Model that represents the options available for the descriptive icon. public struct DescriptiveIcon { /// A representation that will be used to render the icon with corresponding name. public var name: Icon.Name /// Color of the icon. - public var colorConfiguration: SurfaceColorConfiguration + public var iconColor: IconColor? /// Enum for a preset height and width for the icon. public var size: Icon.Size @@ -26,12 +46,12 @@ extension Tilelet { public var accessibleText: String public init(name: Icon.Name = .multipleDocuments, - colorConfiguration: SurfaceColorConfiguration = .init(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark), + iconColor: IconColor? = nil, size: Icon.Size = .medium, accessibleText: String? = nil) { self.name = name - self.colorConfiguration = colorConfiguration + self.iconColor = iconColor self.accessibleText = accessibleText ?? name.rawValue self.size = size } @@ -57,7 +77,7 @@ extension Tilelet { } /// Color of the icon. - public var colorConfiguration: SurfaceColorConfiguration + public var iconColor: IconColor? /// Accessible Text for the Icon public var accessibleText: String @@ -68,13 +88,13 @@ extension Tilelet { /// Enum for a preset height and width for the icon. public var size: IconSize - public init(iconType: IconType = .rightArrow, - colorConfiguration: SurfaceColorConfiguration = .init(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark), + public init(iconType: IconType = .rightArrow, + iconColor: IconColor? = nil, size: IconSize = .medium, accessibleText: String? = nil) { self.iconType = iconType - self.colorConfiguration = colorConfiguration + self.iconColor = iconColor self.accessibleText = accessibleText ?? iconType.iconName.rawValue self.size = size } diff --git a/VDS/Components/TitleLockup/TitleLockupTextColor.swift b/VDS/Components/TitleLockup/TitleLockupTextColor.swift index c0760b6f..56638b0e 100644 --- a/VDS/Components/TitleLockup/TitleLockupTextColor.swift +++ b/VDS/Components/TitleLockup/TitleLockupTextColor.swift @@ -17,7 +17,8 @@ extension TitleLockup { public enum TextColor: Equatable { case primary case secondary - case custom(UIColor, UIColor) + case token(UIColor.VDSColor) + case custom(UIColor) private var reflectedValue: String { String(reflecting: self) } @@ -31,15 +32,18 @@ extension TitleLockup { TitleLockup.textColorPrimaryConfiguration case .secondary: TitleLockup.textColorSecondaryConfiguration - case .custom(let lightColor, let darkColor): - SurfaceColorConfiguration(lightColor, darkColor).eraseToAnyColorable() + case .token(let color): + SurfaceColorConfiguration(color.uiColor, color.uiColor).eraseToAnyColorable() + case .custom(let color): + SurfaceColorConfiguration(color, color).eraseToAnyColorable() } } } public enum TitleTextColor: Equatable { case primary - case custom(UIColor, UIColor) + case token(UIColor.VDSColor) + case custom(UIColor) private var reflectedValue: String { String(reflecting: self) } @@ -51,8 +55,10 @@ extension TitleLockup { switch self { case .primary: TitleLockup.textColorPrimaryConfiguration - case .custom(let lightColor, let darkColor): - SurfaceColorConfiguration(lightColor, darkColor).eraseToAnyColorable() + case .token(let color): + SurfaceColorConfiguration(color.uiColor, color.uiColor).eraseToAnyColorable() + case .custom(let color): + SurfaceColorConfiguration(color, color).eraseToAnyColorable() } } } From 3eda3bd68ec593a2996a4447994fc7577929d4a4 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 5 Jun 2024 13:09:04 -0500 Subject: [PATCH 2/2] fixed titlelet Signed-off-by: Matt Bruce --- VDS/Components/Tilelet/Tilelet.swift | 8 ++++++-- VDS/Components/Tilelet/TileletIconModels.swift | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/VDS/Components/Tilelet/Tilelet.swift b/VDS/Components/Tilelet/Tilelet.swift index 4d714874..c49542b2 100644 --- a/VDS/Components/Tilelet/Tilelet.swift +++ b/VDS/Components/Tilelet/Tilelet.swift @@ -540,7 +540,9 @@ open class Tilelet: TileContainerBase { var showIconContainerView = false if let descriptiveIconModel { descriptiveIcon.name = descriptiveIconModel.name - descriptiveIcon.color = descriptiveIconModel.iconColor.uiColor ?? VDSColor.paletteBlack + if let color = descriptiveIconModel.iconColor?.uiColor { + descriptiveIcon.color = color + } descriptiveIcon.size = descriptiveIconModel.size descriptiveIcon.surface = backgroundColorSurface showIconContainerView = true @@ -548,7 +550,9 @@ open class Tilelet: TileContainerBase { if let directionalIconModel { directionalIcon.name = directionalIconModel.iconType.iconName - directionalIcon.color = directionalIconModel.iconColor.uiColor ?? VDSColor.paletteBlack + if let color = directionalIconModel.iconColor?.uiColor { + directionalIcon.color = color + } directionalIcon.size = directionalIconModel.size.value directionalIcon.surface = backgroundColorSurface showIconContainerView = true diff --git a/VDS/Components/Tilelet/TileletIconModels.swift b/VDS/Components/Tilelet/TileletIconModels.swift index 1ade5c57..b9b0a181 100644 --- a/VDS/Components/Tilelet/TileletIconModels.swift +++ b/VDS/Components/Tilelet/TileletIconModels.swift @@ -24,7 +24,7 @@ extension Tilelet { public var uiColor: UIColor { switch self { case .token(let color): - return color + return color.uiColor case .custom(let color): return color }