// // ButtonModel.swift // VDS // // Created by Jarrod Courtney on 9/16/22. // import Foundation import UIKit public protocol ButtonModel: Modelable, Useable, Equatable, AnyEquatable { var text: String? { get set } var attributes: [any LabelAttributeModel]? { get set } } public struct DefaultButtonModel: ButtonModel { public static func == (lhs: DefaultButtonModel, rhs: DefaultButtonModel) -> Bool { lhs.isEqual(rhs) } public func isEqual(_ equatable: DefaultButtonModel) -> Bool { return id == equatable.id && attributes == equatable.attributes && text == equatable.text && surface == equatable.surface && use == equatable.use && typograpicalStyle == equatable.typograpicalStyle && disabled == equatable.disabled && buttonWidth == equatable.buttonWidth } public var id = UUID() public var text: String? public var attributes: [any LabelAttributeModel]? public var typograpicalStyle: TypographicalStyle = .BoldBodyLarge public var surface: Surface = .light public var use: Use = .primary public var disabled: Bool = false public var buttonWidth: CGFloat? public init(){} }