Header traits

This commit is contained in:
Scott Pfeil 2023-07-31 14:33:20 -04:00
parent 438e0da13a
commit ad0087b88a
15 changed files with 112 additions and 12 deletions

View File

@ -7,7 +7,8 @@
//
public class HeadersH1ButtonModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH1ButtonModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -15,6 +16,10 @@ public class HeadersH1ButtonModel: HeaderModel, MoleculeModelProtocol {
public var headlineBody: HeadlineBodyModel
public var buttons: TwoButtonViewModel
public var children: [MoleculeModelProtocol] {
[headlineBody, buttons]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -25,6 +30,17 @@ public class HeadersH1ButtonModel: HeaderModel, MoleculeModelProtocol {
super.init()
}
//--------------------------------------------------
// MARK: - Subclass
//--------------------------------------------------
public override func setDefaults() {
if headlineBody.headline?.accessibilityTraits == nil {
headlineBody.headline?.accessibilityTraits = .header
}
super.setDefaults()
}
//--------------------------------------------------
// MARK: - Keys
//--------------------------------------------------

View File

@ -8,7 +8,7 @@
import Foundation
public class HeadersH1LandingPageHeaderModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH1LandingPageHeaderModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -20,6 +20,10 @@ public class HeadersH1LandingPageHeaderModel: HeaderModel, MoleculeModelProtocol
public var link: LinkModel
public var buttons: TwoButtonViewModel
public var children: [MoleculeModelProtocol] {
[headline, headline2, subHeadline, body, link, buttons]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -32,6 +36,17 @@ public class HeadersH1LandingPageHeaderModel: HeaderModel, MoleculeModelProtocol
self.buttons = buttons
super.init()
}
//--------------------------------------------------
// MARK: - Subclass
//--------------------------------------------------
public override func setDefaults() {
if headline.accessibilityTraits == nil {
headline.accessibilityTraits = .header
}
super.setDefaults()
}
//--------------------------------------------------
// MARK: - Keys

View File

@ -8,7 +8,7 @@
public class HeadersH1NoButtonsBodyTextModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH1NoButtonsBodyTextModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -16,6 +16,10 @@ public class HeadersH1NoButtonsBodyTextModel: HeaderModel, MoleculeModelProtocol
public static var identifier: String = "headerH1"
public var headlineBody: HeadlineBodyModel
public var children: [MoleculeModelProtocol] {
[headlineBody]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -25,6 +29,17 @@ public class HeadersH1NoButtonsBodyTextModel: HeaderModel, MoleculeModelProtocol
super.init()
}
//--------------------------------------------------
// MARK: - Subclass
//--------------------------------------------------
public override func setDefaults() {
if headlineBody.headline?.accessibilityTraits == nil {
headlineBody.headline?.accessibilityTraits = .header
}
super.setDefaults()
}
//--------------------------------------------------
// MARK: - Keys
//--------------------------------------------------

View File

@ -9,7 +9,7 @@
import Foundation
public class HeadersH2ButtonsModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH2ButtonsModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -18,6 +18,10 @@ public class HeadersH2ButtonsModel: HeaderModel, MoleculeModelProtocol {
public var headlineBody: HeadlineBodyModel
public var buttons: TwoButtonViewModel
public var children: [MoleculeModelProtocol] {
[headlineBody, buttons]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -39,6 +43,9 @@ public class HeadersH2ButtonsModel: HeaderModel, MoleculeModelProtocol {
if bottomPadding == nil {
bottomPadding = Padding.Component.VerticalMarginSpacing
}
if headlineBody.headline?.accessibilityTraits == nil {
headlineBody.headline?.accessibilityTraits = .header
}
super.setDefaults()
}

View File

@ -7,7 +7,7 @@
//
import Foundation
public class HeadersH2CaretLinkModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH2CaretLinkModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -15,6 +15,10 @@ public class HeadersH2CaretLinkModel: HeaderModel, MoleculeModelProtocol {
public var headlineBody: HeadlineBodyModel
public var caretLink: CaretLinkModel
public var children: [MoleculeModelProtocol] {
[headlineBody, caretLink]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -34,6 +38,9 @@ public class HeadersH2CaretLinkModel: HeaderModel, MoleculeModelProtocol {
if bottomPadding == nil {
bottomPadding = Padding.Component.VerticalMarginSpacing
}
if headlineBody.headline?.accessibilityTraits == nil {
headlineBody.headline?.accessibilityTraits = .header
}
super.setDefaults()
}

View File

@ -8,7 +8,7 @@
import Foundation
public class HeadersH2LinkModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH2LinkModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -17,6 +17,10 @@ public class HeadersH2LinkModel: HeaderModel, MoleculeModelProtocol {
public var headlineBody: HeadlineBodyModel
public var link: LinkModel
public var children: [MoleculeModelProtocol] {
[headlineBody, link]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -38,6 +42,9 @@ public class HeadersH2LinkModel: HeaderModel, MoleculeModelProtocol {
if bottomPadding == nil {
bottomPadding = Padding.Component.VerticalMarginSpacing
}
if headlineBody.headline?.accessibilityTraits == nil {
headlineBody.headline?.accessibilityTraits = .header
}
super.setDefaults()
}

View File

@ -9,7 +9,7 @@
import Foundation
public class HeadersH2NoButtonsBodyTextModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH2NoButtonsBodyTextModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -17,6 +17,10 @@ public class HeadersH2NoButtonsBodyTextModel: HeaderModel, MoleculeModelProtocol
public static var identifier: String = "headerH2"
public var headlineBody: HeadlineBodyModel
public var children: [MoleculeModelProtocol] {
[headlineBody]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------

View File

@ -8,7 +8,7 @@
import Foundation
public class HeadersH2PricingTwoRowsModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH2PricingTwoRowsModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -21,6 +21,10 @@ public class HeadersH2PricingTwoRowsModel: HeaderModel, MoleculeModelProtocol {
public var body3: LabelModel
public var subBody3: LabelModel?
public var children: [MoleculeModelProtocol] {
[headline, body, subBody, body2, subBody2, body3, subBody3].compactMap({$0})
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -45,6 +49,9 @@ public class HeadersH2PricingTwoRowsModel: HeaderModel, MoleculeModelProtocol {
if bottomPadding == nil {
bottomPadding = Padding.Component.VerticalMarginSpacing
}
if headline.accessibilityTraits == nil {
headline.accessibilityTraits = .header
}
super.setDefaults()
subBody?.attributes = [LabelAttributeStrikeThroughModel(0, subBody?.text.count ?? 0)]
subBody2?.attributes = [LabelAttributeStrikeThroughModel(0, subBody2?.text.count ?? 0)]

View File

@ -9,7 +9,7 @@
import Foundation
public class HeadersH2TinyButtonModel: HeaderModel, MoleculeModelProtocol {
public class HeadersH2TinyButtonModel: HeaderModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -18,6 +18,10 @@ public class HeadersH2TinyButtonModel: HeaderModel, MoleculeModelProtocol {
public var headlineBody: HeadlineBodyModel
public var button: ButtonModel
public var children: [MoleculeModelProtocol] {
[headlineBody, button]
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -39,6 +43,9 @@ public class HeadersH2TinyButtonModel: HeaderModel, MoleculeModelProtocol {
if bottomPadding == nil {
bottomPadding = Padding.Component.VerticalMarginSpacing
}
if headlineBody.headline?.accessibilityTraits == nil {
headlineBody.headline?.accessibilityTraits = .header
}
super.setDefaults()
button.style = .secondary
button.size = .small

View File

@ -84,5 +84,6 @@ import Foundation
}
accessibilityLabel = message
accessibilityTraits.update(with: .header)
}
}

View File

@ -9,7 +9,7 @@
import Foundation
public class ListOneColumnFullWidthTextDividerSubsectionModel: ListItemModel, MoleculeModelProtocol {
public class ListOneColumnFullWidthTextDividerSubsectionModel: ListItemModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -18,6 +18,10 @@ public class ListOneColumnFullWidthTextDividerSubsectionModel: ListItemModel, Mo
public var headline: LabelModel
public var body: LabelModel?
public var children: [MoleculeModelProtocol] {
[headline, body].compactMap({$0})
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------

View File

@ -84,5 +84,6 @@ import Foundation
}
accessibilityLabel = message
accessibilityTraits.update(with: .header)
}
}

View File

@ -9,7 +9,7 @@
import Foundation
public class ListOneColumnTextWithWhitespaceDividerShortModel: ListItemModel, MoleculeModelProtocol {
public class ListOneColumnTextWithWhitespaceDividerShortModel: ListItemModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -18,6 +18,10 @@ public class ListOneColumnTextWithWhitespaceDividerShortModel: ListItemModel, Mo
public var headline: LabelModel
public var body: LabelModel?
public var children: [MoleculeModelProtocol] {
[headline, body].compactMap({$0})
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------

View File

@ -84,5 +84,6 @@ import Foundation
}
accessibilityLabel = message
accessibilityTraits.update(with: .header)
}
}

View File

@ -9,7 +9,7 @@
import Foundation
public class ListOneColumnTextWithWhitespaceDividerTallModel: ListItemModel, MoleculeModelProtocol {
public class ListOneColumnTextWithWhitespaceDividerTallModel: ListItemModel, MoleculeModelProtocol, ParentMoleculeModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
@ -18,6 +18,10 @@ public class ListOneColumnTextWithWhitespaceDividerTallModel: ListItemModel, Mol
public var headline: LabelModel
public var body: LabelModel?
public var children: [MoleculeModelProtocol] {
[headline, body].compactMap({$0})
}
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------