Merge branch 'develop' into feature/monarch

This commit is contained in:
Matt Bruce 2024-06-05 14:01:17 -05:00
commit 1fe2d061a6
3 changed files with 45 additions and 15 deletions

View File

@ -540,7 +540,9 @@ open class Tilelet: TileContainerBase<Tilelet.Padding> {
var showIconContainerView = false
if let descriptiveIconModel {
descriptiveIcon.name = descriptiveIconModel.name
descriptiveIcon.colorConfiguration = descriptiveIconModel.colorConfiguration
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<Tilelet.Padding> {
if let directionalIconModel {
directionalIcon.name = directionalIconModel.iconType.iconName
directionalIcon.colorConfiguration = directionalIconModel.colorConfiguration
if let color = directionalIconModel.iconColor?.uiColor {
directionalIcon.color = color
}
directionalIcon.size = directionalIconModel.size.value
directionalIcon.surface = backgroundColorSurface
showIconContainerView = true

View File

@ -11,13 +11,33 @@ import VDSCoreTokens
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.uiColor
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
}

View File

@ -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()
}
}
}