From 5b19ade48343f1e16c64deff39deeaf478f55322 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 12 Jan 2023 16:11:18 -0600 Subject: [PATCH 1/3] updated defaults Signed-off-by: Matt Bruce --- VDS/Components/Tilet/TiletIconModels.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VDS/Components/Tilet/TiletIconModels.swift b/VDS/Components/Tilet/TiletIconModels.swift index bceefd82..79be1d07 100644 --- a/VDS/Components/Tilet/TiletIconModels.swift +++ b/VDS/Components/Tilet/TiletIconModels.swift @@ -11,7 +11,7 @@ import UIKit public struct TiletDescriptiveIcon: Codable { public var name: IconName = .multipleDocuments public var size: IconSize = .medium - public var surface: Surface = .light + public var surface: Surface = .dark public init(name: IconName = .multipleDocuments, size: IconSize, surface: Surface) { self.name = name @@ -22,7 +22,7 @@ public struct TiletDescriptiveIcon: Codable { public struct TiletDirectionalIcon: Codable { public var size: IconSize = .medium - public var surface: Surface = .light + public var surface: Surface = .dark public init(size: IconSize, surface: Surface) { self.size = size From 6252bcb2c35092c902974d162db2c507505e65ea Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 12 Jan 2023 16:49:52 -0600 Subject: [PATCH 2/3] refactored into new spacing Signed-off-by: Matt Bruce --- VDS.xcodeproj/project.pbxproj | 4 ++ .../TileContainer/TileContainer.swift | 49 +++++++----------- VDS/Components/Tilet/Tilet.swift | 10 ++-- VDS/Extensions/VDSLayout.swift | 51 +++++++++++++++++++ 4 files changed, 78 insertions(+), 36 deletions(-) create mode 100644 VDS/Extensions/VDSLayout.swift diff --git a/VDS.xcodeproj/project.pbxproj b/VDS.xcodeproj/project.pbxproj index 695012e9..6292a189 100644 --- a/VDS.xcodeproj/project.pbxproj +++ b/VDS.xcodeproj/project.pbxproj @@ -64,6 +64,7 @@ EA985C1D296CD13600F2FF2E /* BundleManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985C1C296CD13600F2FF2E /* BundleManager.swift */; }; EA985C23296E033A00F2FF2E /* TextArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985C22296E033A00F2FF2E /* TextArea.swift */; }; EA985C2D296F03FE00F2FF2E /* TiletIconModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985C2C296F03FE00F2FF2E /* TiletIconModels.swift */; }; + EA985C672970C21600F2FF2E /* VDSLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985C662970C21600F2FF2E /* VDSLayout.swift */; }; EAA5EEB528ECBFB4003B3210 /* ImageLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAA5EEB428ECBFB4003B3210 /* ImageLabelAttribute.swift */; }; EAA5EEB728ECC03A003B3210 /* ToolTipLabelAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAA5EEB628ECC03A003B3210 /* ToolTipLabelAttribute.swift */; }; EAA5EEB928ECD24B003B3210 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EAA5EEB828ECD24B003B3210 /* Icons.xcassets */; }; @@ -177,6 +178,7 @@ EA985C1C296CD13600F2FF2E /* BundleManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleManager.swift; sourceTree = ""; }; EA985C22296E033A00F2FF2E /* TextArea.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextArea.swift; sourceTree = ""; }; EA985C2C296F03FE00F2FF2E /* TiletIconModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TiletIconModels.swift; sourceTree = ""; }; + EA985C662970C21600F2FF2E /* VDSLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VDSLayout.swift; sourceTree = ""; }; EAA5EEB428ECBFB4003B3210 /* ImageLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageLabelAttribute.swift; sourceTree = ""; }; EAA5EEB628ECC03A003B3210 /* ToolTipLabelAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolTipLabelAttribute.swift; sourceTree = ""; }; EAA5EEB828ECD24B003B3210 /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Icons.xcassets; sourceTree = ""; }; @@ -378,6 +380,7 @@ EAB5FED329267EB300998C17 /* UIView.swift */, EAB5FF0029424ACB00998C17 /* UIControl.swift */, EA5E304D294CC7F00082B959 /* VDSColor.swift */, + EA985C662970C21600F2FF2E /* VDSLayout.swift */, ); path = Extensions; sourceTree = ""; @@ -821,6 +824,7 @@ EAB5FED429267EB300998C17 /* UIView.swift in Sources */, EA3361AD288B26190071C351 /* DataTrackable.swift in Sources */, EA33623E2892EE950071C351 /* UIDevice.swift in Sources */, + EA985C672970C21600F2FF2E /* VDSLayout.swift in Sources */, EA3362302891EB4A0071C351 /* Fonts.swift in Sources */, EAF7F0AD289B142900B287F5 /* StrikeThroughLabelAttribute.swift in Sources */, EAB5FEF12927F4AA00998C17 /* SelfSizingCollectionView.swift in Sources */, diff --git a/VDS/Components/TileContainer/TileContainer.swift b/VDS/Components/TileContainer/TileContainer.swift index 154bc95c..83a57d52 100644 --- a/VDS/Components/TileContainer/TileContainer.swift +++ b/VDS/Components/TileContainer/TileContainer.swift @@ -38,14 +38,16 @@ open class TileContainer: Control { case transparent } - public enum ContainerPadding: String, CaseIterable { - case twelve = "12" - case sixteen = "16" - case twentyFour = "24" - case thirtyTwo = "32" - case fourtyEight = "48" + public enum ContainerPadding: String, EnumSubset { + case spacing2X + case spacing4X + case spacing6X + case spacing8X + case spacing12X + + public var defaultValue: VDSLayout.Spacing { .space4X } } - + public enum ContainerScalingType: String, CaseIterable { case ratio1x1 = "1:1" case ratio3x4 = "3:4" @@ -70,7 +72,7 @@ open class TileContainer: Control { public var containerBackgroundColor: ContainerBackgroundColor = .white { didSet{ didChange() } } - public var containerPadding: ContainerPadding = .sixteen { didSet{ didChange() } } + public var containerPadding: ContainerPadding = .spacing4X { didSet{ didChange() } } public var aspectRatio: ContainerScalingType = .ratio1x1 { didSet{ didChange() } } @@ -115,21 +117,6 @@ open class TileContainer: Control { $0.clipsToBounds = true } - internal var padding: CGFloat { - switch containerPadding { - case .twelve: - return 12.0 - case .sixteen: - return 16.0 - case .twentyFour: - return 24.0 - case .thirtyTwo: - return 32.0 - case .fourtyEight: - return 48.0 - } - } - //-------------------------------------------------- // MARK: - Constraints //-------------------------------------------------- @@ -166,13 +153,13 @@ open class TileContainer: Control { containerView.isUserInteractionEnabled = false containerView.backgroundColor = .clear - containerTopConstraint = containerView.topAnchor.constraint(equalTo: topAnchor, constant: padding) + containerTopConstraint = containerView.topAnchor.constraint(equalTo: topAnchor, constant: containerPadding.value.doubleValue) containerTopConstraint?.isActive = true - containerBottomConstraint = containerView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: padding) + containerBottomConstraint = containerView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: containerPadding.value.doubleValue) containerBottomConstraint?.isActive = true - containerLeadingConstraint = containerView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: padding) + containerLeadingConstraint = containerView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: containerPadding.value.doubleValue) containerLeadingConstraint?.isActive = true - containerTrailingConstraint = containerView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: padding) + containerTrailingConstraint = containerView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: containerPadding.value.doubleValue) containerTrailingConstraint?.isActive = true highlightView.pinToSuperView() @@ -265,10 +252,10 @@ open class TileContainer: Control { layer.borderColor = borderColorConfig.getColor(self).cgColor layer.borderWidth = showBorder ? VDSFormControls.widthBorder : 0 - containerTopConstraint?.constant = padding - containerLeadingConstraint?.constant = padding - containerBottomConstraint?.constant = -padding - containerTrailingConstraint?.constant = -padding + containerTopConstraint?.constant = containerPadding.value.doubleValue + containerLeadingConstraint?.constant = containerPadding.value.doubleValue + containerBottomConstraint?.constant = -containerPadding.value.doubleValue + containerTrailingConstraint?.constant = -containerPadding.value.doubleValue if let width, aspectRatio == .none && height == nil{ widthConstraint?.constant = width diff --git a/VDS/Components/Tilet/Tilet.swift b/VDS/Components/Tilet/Tilet.swift index f395c04d..9ec019f0 100644 --- a/VDS/Components/Tilet/Tilet.swift +++ b/VDS/Components/Tilet/Tilet.swift @@ -393,15 +393,15 @@ open class Tilet: TileContainer { extension TileContainer.ContainerPadding { fileprivate var tiletSpacing: CGFloat { switch self { - case .twelve: + case .spacing2X: return 16 - case .sixteen: + case .spacing4X: return 24 - case .twentyFour: + case .spacing6X: return 32 - case .thirtyTwo: + case .spacing8X: return 48 - case .fourtyEight: + default: return 16 } } diff --git a/VDS/Extensions/VDSLayout.swift b/VDS/Extensions/VDSLayout.swift new file mode 100644 index 00000000..4821c910 --- /dev/null +++ b/VDS/Extensions/VDSLayout.swift @@ -0,0 +1,51 @@ +// +// VDSLayout.swift +// VDS +// +// Created by Matt Bruce on 1/12/23. +// + +import Foundation + +public struct VDSLayout { + public enum Spacing: String, Codable, CaseIterable { + case space1X + case space2X + case space3X + case space4X + case space5X + case space6X + case space8X + case space12X + case space16X + case space24X + case space32X + + public var doubleValue: Double { + switch self { + case .space1X: + return 4 + case .space2X: + return 8 + case .space3X: + return 12 + case .space4X: + return 16 + case .space5X: + return 20 + case .space6X: + return 24 + case .space8X: + return 32 + case .space12X: + return 48 + case .space16X: + return 64 + case .space24X: + return 96 + case .space32X: + return 128 + } + } + } +} From 3b037d84432a79c37057e621fbf8b14785d5c797 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 12 Jan 2023 16:56:58 -0600 Subject: [PATCH 3/3] added codable to enums Signed-off-by: Matt Bruce --- VDS/Components/TileContainer/TileContainer.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/VDS/Components/TileContainer/TileContainer.swift b/VDS/Components/TileContainer/TileContainer.swift index 83a57d52..4a7e545f 100644 --- a/VDS/Components/TileContainer/TileContainer.swift +++ b/VDS/Components/TileContainer/TileContainer.swift @@ -31,14 +31,14 @@ open class TileContainer: Control { initialSetup() } - public enum ContainerBackgroundColor: String, CaseIterable { + public enum ContainerBackgroundColor: String, Codable, CaseIterable { case white case black case gray case transparent } - public enum ContainerPadding: String, EnumSubset { + public enum ContainerPadding: String, Codable, EnumSubset { case spacing2X case spacing4X case spacing6X @@ -48,7 +48,7 @@ open class TileContainer: Control { public var defaultValue: VDSLayout.Spacing { .space4X } } - public enum ContainerScalingType: String, CaseIterable { + public enum ContainerScalingType: String, Codable, CaseIterable { case ratio1x1 = "1:1" case ratio3x4 = "3:4" case ratio4x3 = "4:3"