From 10f0d35ff2e76641554f5aa6bda8c99b8f068d32 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Tue, 20 Dec 2022 11:30:43 -0600 Subject: [PATCH] moved to public properties Signed-off-by: Matt Bruce --- VDS/Components/TitleLockup/TitleLockup.swift | 241 +++++++++---------- 1 file changed, 120 insertions(+), 121 deletions(-) diff --git a/VDS/Components/TitleLockup/TitleLockup.swift b/VDS/Components/TitleLockup/TitleLockup.swift index 55448bd7..958d7a81 100644 --- a/VDS/Components/TitleLockup/TitleLockup.swift +++ b/VDS/Components/TitleLockup/TitleLockup.swift @@ -88,7 +88,126 @@ open class TitleLockup: View { // MARK: - Configuration Properties //-------------------------------------------------- // Sizes are from InVision design specs. + open var topTypographicalStyleSpacingConfig: TypographicalStyleSpacingConfig = { + let configs = [ + TypographicalStyleDeviceSpacingConfig([.BoldTitleLarge, .TitleLarge], + neighboring: [.BodySmall, .BodyMedium, .BodyLarge], + spacing: 12.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], + neighboring: [.TitleMedium, .BodyLarge], + spacing: 12.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], + neighboring: [.TitleMedium, .TitleLarge], + spacing: 16.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], + neighboring: [.BodyLarge], + spacing: 12.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], + neighboring: [.TitleMedium, .TitleLarge], + spacing: 16.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], + neighboring: [.BodyLarge], + spacing: 12.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], + neighboring: [.BodyLarge, .BodyMedium, .BodySmall, .TitleMedium], + spacing: 12.0, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], + neighboring: [.BodyLarge, .BodyMedium, .TitleMedium], + spacing: 12.0, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall], + neighboring: [.TitleLarge, .BodyLarge], + spacing: 12.0, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], + neighboring: [.TitleLarge, .TitleXLarge], + spacing: 16.0, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], + neighboring: [.BodyLarge], + spacing: 12.0, + deviceType: .iPhone) + ] + return TypographicalStyleSpacingConfig(configs: configs) + }() + open var bottomTypographicalStyleSpacingConfig: TypographicalStyleSpacingConfig = { + let configs = [ + TypographicalStyleDeviceSpacingConfig([.BoldTitleLarge, .TitleLarge], + neighboring: [.BodySmall, .BodyMedium, .BodyLarge], + spacing: 12.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], + neighboring: [.TitleMedium, .BodyLarge], + spacing: 16.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], + neighboring: [.TitleMedium, .TitleLarge], + spacing: 24.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], + neighboring: [.BodyLarge], + spacing: 24.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], + neighboring: [.TitleMedium, .TitleLarge], + spacing: 24.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], + neighboring: [.BodyLarge], + spacing: 24.0, + deviceType: .iPad), + + TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], + neighboring: [.BodyLarge, .BodyMedium, .BodySmall, .TitleMedium], + spacing: 12.0, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], + neighboring: [.BodyLarge, .BodyMedium, .TitleMedium], + spacing: 16, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall], + neighboring: [.TitleLarge, .BodyLarge], + spacing: 16.0, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], + neighboring: [.TitleLarge, .TitleXLarge], + spacing: 24.0, + deviceType: .iPhone), + + TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], + neighboring: [.BodyLarge], + spacing: 24.0, + deviceType: .iPhone) + ] + return TypographicalStyleSpacingConfig(configs: configs) + }() + //-------------------------------------------------- // MARK: - Public Properties //-------------------------------------------------- @@ -200,127 +319,7 @@ open class TitleLockup: View { stackView.setCustomSpacing(0.0, after: titleLabel) } } - - internal var topTypographicalStyleSpacingConfig: TypographicalStyleSpacingConfig = { - let configs = [ - TypographicalStyleDeviceSpacingConfig([.BoldTitleLarge, .TitleLarge], - neighboring: [.BodySmall, .BodyMedium, .BodyLarge], - spacing: 12.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], - neighboring: [.TitleMedium, .BodyLarge], - spacing: 12.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], - neighboring: [.TitleMedium, .TitleLarge], - spacing: 16.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], - neighboring: [.BodyLarge], - spacing: 12.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], - neighboring: [.TitleMedium, .TitleLarge], - spacing: 16.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], - neighboring: [.BodyLarge], - spacing: 12.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], - neighboring: [.BodyLarge, .BodyMedium, .BodySmall, .TitleMedium], - spacing: 12.0, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], - neighboring: [.BodyLarge, .BodyMedium, .TitleMedium], - spacing: 12.0, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall], - neighboring: [.TitleLarge, .BodyLarge], - spacing: 12.0, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], - neighboring: [.TitleLarge, .TitleXLarge], - spacing: 16.0, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], - neighboring: [.BodyLarge], - spacing: 12.0, - deviceType: .iPhone) - ] - return TypographicalStyleSpacingConfig(configs: configs) - }() - - internal var bottomTypographicalStyleSpacingConfig: TypographicalStyleSpacingConfig = { - let configs = [ - TypographicalStyleDeviceSpacingConfig([.BoldTitleLarge, .TitleLarge], - neighboring: [.BodySmall, .BodyMedium, .BodyLarge], - spacing: 12.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], - neighboring: [.TitleMedium, .BodyLarge], - spacing: 16.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], - neighboring: [.TitleMedium, .TitleLarge], - spacing: 24.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], - neighboring: [.BodyLarge], - spacing: 24.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], - neighboring: [.TitleMedium, .TitleLarge], - spacing: 24.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall, .BoldFeatureMedium, .FeatureMedium], - neighboring: [.BodyLarge], - spacing: 24.0, - deviceType: .iPad), - - TypographicalStyleDeviceSpacingConfig([.BoldTitleXLarge, .TitleXLarge], - neighboring: [.BodyLarge, .BodyMedium, .BodySmall, .TitleMedium], - spacing: 12.0, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldTitle2XLarge, .Title2XLarge, .BoldFeatureXSmall, .FeatureXSmall], - neighboring: [.BodyLarge, .BodyMedium, .TitleMedium], - spacing: 16, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureSmall, .FeatureSmall], - neighboring: [.TitleLarge, .BodyLarge], - spacing: 16.0, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], - neighboring: [.TitleLarge, .TitleXLarge], - spacing: 24.0, - deviceType: .iPhone), - - TypographicalStyleDeviceSpacingConfig([.BoldFeatureMedium, .FeatureMedium], - neighboring: [.BodyLarge], - spacing: 24.0, - deviceType: .iPhone) - ] - return TypographicalStyleSpacingConfig(configs: configs) - }() - + open func getTopSpacing() -> CGFloat { topTypographicalStyleSpacingConfig.spacing(for: titleTypograpicalStyle.value, neighboring: otherTypograpicalStyle.value) }