From cc38bd811413a177769d1ffeabd3f7559128ae29 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 27 Jul 2025 00:36:45 +0300 Subject: [PATCH 01/19] Add icons --- Package.swift | 10 + .../OversizeUI/Controls/Button/Button.swift | 26 +- .../ColorSelector/ColorSelectorStyle.swift | 2 +- .../Controls/DateField/DatePickerSheet.swift | 100 ++++-- .../Controls/ErrorView/ErrorView.swift | 146 ++++++++ .../Controls/GridSelect/GridSelectStyle.swift | 2 +- Sources/OversizeUI/Controls/HUD/HUD.swift | 55 +-- .../OversizeUI/Controls/HUD/HUDContent.swift | 83 +++++ .../Controls/Notice/NoticeView.swift | 10 +- Sources/OversizeUI/Controls/Row/Row.swift | 2 +- .../Controls/SuccessView/SuccessView.swift | 339 ++++++++++++++++++ Sources/OversizeUI/Core/Icons.swift | 19 +- Sources/OversizeUI/Core/Shadow.swift | 2 +- Sources/OversizeUI/Core/Typography.swift | 13 +- Sources/OversizeUI/Deprecated/PageView.swift | 2 +- .../Extensions/View/View+SizeReader.swift | 11 + .../Layouts/ListLayout/ListLayoutView.swift | 66 +++- .../Base/Check/Circle.imageset/Contents.json | 15 + .../iconly-icon-export-1752921364.svg | 5 + .../Base/Check/Circle/Contents.json | 9 + .../Circle/Fill.imageset/Check circle.svg | 3 + .../Check/Circle/Fill.imageset/Contents.json | 15 + .../TwoTone.imageset/Check circle-3.svg | 4 + .../Circle/TwoTone.imageset/Contents.json | 15 + .../Base/Check/Circle/TwoTone/Contents.json | 9 + .../TwoTone/Fill.imageset/Check circle-2.svg | 4 + .../TwoTone/Fill.imageset/Contents.json | 15 + .../Base/Star/Mini.imageset/Contents.json | 15 + .../Base/Star/Mini.imageset/StarMini.svg | 3 + .../Base/Unstar.imageset/Contents.json | 15 + .../Base/Unstar.imageset/Unstar.svg | 5 + .../Icons.xcassets/Base/Unstar/Contents.json | 9 + .../Base/Unstar/Fill.imageset/Contents.json | 15 + .../Unstar/Fill.imageset/star remove-2.svg | 4 + .../Base/Unstar/Mini.imageset/Contents.json | 15 + .../Base/Unstar/Mini.imageset/UnstarMini.svg | 5 + 36 files changed, 945 insertions(+), 123 deletions(-) create mode 100644 Sources/OversizeUI/Controls/ErrorView/ErrorView.swift create mode 100644 Sources/OversizeUI/Controls/HUD/HUDContent.swift create mode 100644 Sources/OversizeUI/Controls/SuccessView/SuccessView.swift create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/iconly-icon-export-1752921364.svg create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Check circle.svg create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Check circle-3.svg create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Check circle-2.svg create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/StarMini.svg create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Unstar.svg create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/star remove-2.svg create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/UnstarMini.svg diff --git a/Package.swift b/Package.swift index 61b2eca9..c8ae3d2b 100644 --- a/Package.swift +++ b/Package.swift @@ -20,11 +20,21 @@ let package = Package( targets: ["OversizeUI"] ), ], + /* + dependencies: [ + .package(url: "https://github.com/SwiftGen/SwiftGenPlugin", .upToNextMajor(from: "6.6.2")), + ], + */ targets: [ .target( name: "OversizeUI", dependencies: [], resources: [.process("Resources")] + /* + plugins: [ + .plugin(name: "SwiftGenPlugin", package: "SwiftGenPlugin"), + ] + */ ), .testTarget(name: "OversizeUITests", dependencies: ["OversizeUI"]), ] diff --git a/Sources/OversizeUI/Controls/Button/Button.swift b/Sources/OversizeUI/Controls/Button/Button.swift index 34c8c8c8..6a078c8e 100644 --- a/Sources/OversizeUI/Controls/Button/Button.swift +++ b/Sources/OversizeUI/Controls/Button/Button.swift @@ -9,27 +9,27 @@ import SwiftUI /// /// Use these button types to create consistent visual hierarchy in your interface: /// - Use ``primary`` for the main call-to-action -/// - Use ``secondary`` for important but alternative actions +/// - Use ``secondary`` for important but alternative actions /// - Use ``tertiary`` for supplementary actions /// - Use ``quaternary`` for minimal actions with low visual weight /// /// ```swift /// Button("Save") { save() } /// .buttonStyle(.primary) -/// +/// /// Button("Cancel") { cancel() } /// .buttonStyle(.tertiary) /// ``` public enum ButtonType: Int, CaseIterable { /// Primary button style for main call-to-action buttons. case primary - + /// Secondary button style for important alternative actions. case secondary - + /// Tertiary button style for supplementary actions. case tertiary - + /// Quaternary button style for minimal actions with low visual weight. case quaternary } @@ -73,25 +73,25 @@ public enum ButtonType: Int, CaseIterable { public struct OversizeButtonStyle: ButtonStyle { /// Environment values for theme customization. @Environment(\.theme) private var theme: ThemeSettings - + /// Environment value indicating if the button is enabled. @Environment(\.isEnabled) private var isEnabled: Bool - + /// Environment value indicating if the button is in loading state. @Environment(\.isLoading) private var isLoading: Bool - + /// Environment value indicating if accent styling should be applied. @Environment(\.isAccent) private var isAccent: Bool - + /// Environment value for the button's elevation/shadow level. @Environment(\.elevation) private var elevation: Elevation - + /// Environment value for the button's border shape. @Environment(\.controlBorderShape) var controlBorderShape: ControlBorderShape - + /// Environment value indicating if the button should have a border. @Environment(\.isBordered) var isBordered: Bool - + #if !os(tvOS) /// Environment value for the button's control size. @Environment(\.controlSize) var controlSize: ControlSize @@ -99,7 +99,7 @@ public struct OversizeButtonStyle: ButtonStyle { /// The semantic type of button determining its visual style. private let type: ButtonType - + /// Whether the button should expand to fill available width. private let isInfinityWidth: Bool? diff --git a/Sources/OversizeUI/Controls/ColorSelector/ColorSelectorStyle.swift b/Sources/OversizeUI/Controls/ColorSelector/ColorSelectorStyle.swift index 42ae91a5..a1a0d5fe 100644 --- a/Sources/OversizeUI/Controls/ColorSelector/ColorSelectorStyle.swift +++ b/Sources/OversizeUI/Controls/ColorSelector/ColorSelectorStyle.swift @@ -31,7 +31,7 @@ public struct DefaultColorSelectorStyle: ColorSelectorStyle { } struct ColorSelectorStyleStyleKey: EnvironmentKey { - public static let defaultValue = AnyColorSelectorStyle(style: DefaultColorSelectorStyle()) + static let defaultValue = AnyColorSelectorStyle(style: DefaultColorSelectorStyle()) } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift b/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift index 219a6406..fb087ca2 100644 --- a/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift +++ b/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift @@ -19,50 +19,96 @@ public struct DatePickerSheet: View { private let title: String private var minimumDate: Date? + private let displayedComponents: DatePicker.Components - public init(title: String, selection: Binding) { + public init(title: String, selection: Binding, displayedComponents: DatePicker.Components = [.hourAndMinute, .date]) { self.title = title + self.displayedComponents = displayedComponents _selection = selection _date = State(wrappedValue: selection.wrappedValue) _optionalSelection = .constant(nil) } - public init(title: String, selection: Binding) { + public init(title: String, selection: Binding, displayedComponents: DatePicker.Components = [.hourAndMinute, .date]) { self.title = title + self.displayedComponents = displayedComponents _date = State(wrappedValue: selection.wrappedValue ?? Date()) _optionalSelection = selection _selection = .constant(Date()) } public var body: some View { - PageView(title) { - SectionView { - VStack { - if let minimumDate { - DatePicker("", selection: $date, in: minimumDate...) - .datePickerStyle(.graphical) - .labelsHidden() - } else { - DatePicker("", selection: $date) - .datePickerStyle(.graphical) - .labelsHidden() + if #available(iOS 23.0, *) { + LayoutView(title) { + SectionView { + VStack { + if let minimumDate { + DatePicker("", selection: $date, in: minimumDate..., displayedComponents: displayedComponents) + .datePickerStyle(.graphical) + .labelsHidden() + } else { + DatePicker("", selection: $date, displayedComponents: displayedComponents) + .datePickerStyle(.graphical) + .labelsHidden() + } } + .padding(.horizontal, .small) + .padding(.vertical, .xxxSmall) } - .padding(.horizontal, .small) - .padding(.vertical, .xxxSmall) + .surfaceContentMargins(.zero) + } background: { + Color.backgroundSecondary + } + .toolbar { + ToolbarItemGroup(placement: .cancellationAction) { + Button(role: .cancel) { + dismiss() + } label: { + Image.Base.close.icon() + } + } + + ToolbarItemGroup(placement: .primaryAction) { + Button(role: .confirm) { + selection = date + optionalSelection = date + dismiss() + } label: { + Text("Done") + } + } + } + .toolbarTitleDisplayMode(.inline) + } else { + PageView(title) { + SectionView { + VStack { + if let minimumDate { + DatePicker("", selection: $date, in: minimumDate..., displayedComponents: displayedComponents) + .datePickerStyle(.graphical) + .labelsHidden() + } else { + DatePicker("", selection: $date, displayedComponents: displayedComponents) + .datePickerStyle(.graphical) + .labelsHidden() + } + } + .padding(.horizontal, .small) + .padding(.vertical, .xxxSmall) + } + .surfaceContentMargins(.zero) + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + selection = date + optionalSelection = date + dismiss() + })) } - .surfaceContentMargins(.zero) - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - selection = date - optionalSelection = date - dismiss() - })) } } diff --git a/Sources/OversizeUI/Controls/ErrorView/ErrorView.swift b/Sources/OversizeUI/Controls/ErrorView/ErrorView.swift new file mode 100644 index 00000000..eedbbd6d --- /dev/null +++ b/Sources/OversizeUI/Controls/ErrorView/ErrorView.swift @@ -0,0 +1,146 @@ +// +// Copyright © 2024 Alexander Romanov +// ErrorView.swift, created on 15.11.2024 +// + +import SwiftUI + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public struct ErrorView: View { + private let error: Error + private let closeAction: (() -> Void)? + private let recoveryHandler: ((Int) -> Void)? + private var image: Image? + + public init( + error: Error, + closeAction: (() -> Void)? = nil, + recoveryHandler: ((Int) -> Void)? = nil + ) { + self.error = error + self.closeAction = closeAction + self.recoveryHandler = recoveryHandler + } + + public var body: some View { + #if os(macOS) + macOSContentView + #else + contenView + #endif + } + + private var title: String { + if let localizedError = error as? LocalizedError { + return localizedError.errorDescription ?? "Error" + } + return error.localizedDescription + } + + private var subtitle: String { + if let localizedError = error as? LocalizedError { + return [ + localizedError.failureReason, + localizedError.recoverySuggestion, + ].compactMap { $0 }.joined(separator: "\n") + } + return "" + } + + private var contenView: some View { + GeometryReader { geometry in + VStack(alignment: .center, spacing: .large) { + Spacer() + displayImage + .frame(width: 128, height: 128, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + Spacer() + } + .paddingContent() + .frame( + width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, + height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height + ) + } + } + + private var macOSContentView: some View { + GeometryReader { geometry in + HStack(spacing: .medium) { + VStack(alignment: .center, spacing: .large) { + Spacer() + + displayImage + .frame(width: 64, height: 64, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + Spacer() + } + .frame(maxWidth: .infinity, alignment: .center) + } + .paddingContent() + .frame( + width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, + height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height + ) + } + } + + private var displayImage: Image { + if let image { + image + .resizable() + } else { + Image.Illustration.Status.error + .resizable() + } + } +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Basic Success") { + enum AuthError: Error, LocalizedError, Sendable { + case networkError + case notAccess + case invalidCredentials + + public var errorDescription: String? { + switch self { + case .networkError: + "Invalid phone number format" + case .notAccess: + "No access to location services" + case .invalidCredentials: + "Invalid credentials provided" + } + } + + public var failureReason: String? { + switch self { + case .networkError: + "Please enter a valid phone number" + case .notAccess: + "Location services are not enabled" + case .invalidCredentials: + "The credentials you provided are incorrect" + } + } + } + + let errorView = ErrorView(error: AuthError.networkError) + + return errorView +} diff --git a/Sources/OversizeUI/Controls/GridSelect/GridSelectStyle.swift b/Sources/OversizeUI/Controls/GridSelect/GridSelectStyle.swift index bcce5b85..64fc6fce 100644 --- a/Sources/OversizeUI/Controls/GridSelect/GridSelectStyle.swift +++ b/Sources/OversizeUI/Controls/GridSelect/GridSelectStyle.swift @@ -129,7 +129,7 @@ public struct AnyGridSelectStyle: GridSelectStyle { } struct GridSelectStyleKey: EnvironmentKey { - public static let defaultValue = AnyGridSelectStyle( + static let defaultValue = AnyGridSelectStyle( seletionStyle: .accentSurface, unseletionStyle: .surface, icon: .none, diff --git a/Sources/OversizeUI/Controls/HUD/HUD.swift b/Sources/OversizeUI/Controls/HUD/HUD.swift index f897e217..add641e8 100644 --- a/Sources/OversizeUI/Controls/HUD/HUD.swift +++ b/Sources/OversizeUI/Controls/HUD/HUD.swift @@ -8,9 +8,7 @@ import SwiftUI public struct HUD: View where Title: View, Icon: View { @Environment(\.screenSize) var screenSize - private let text: String? - private let title: Title? - private let icon: Icon? + private let content: HUDContent private let isAutoHide: Bool @Binding private var isPresented: Bool @@ -31,47 +29,12 @@ public struct HUD: View where Title: View, Icon: View { @ViewBuilder icon: () -> Icon ) { _isPresented = isPresented - text = nil - self.title = title() - self.icon = icon() + content = HUDContent(title: title(), icon: icon()) isAutoHide = autoHide } public var body: some View { - HStack(spacing: .xSmall) { - if icon != nil { - icon - } - if let text { - Text(text) - .body(.medium) - #if os(macOS) - .foregroundColor(Color.onPrimary) - #else - .foregroundColor(Color.onSurfacePrimary) - - #endif - - } else if let title { - title - } - } - .padding(.leading, icon == nil ? .medium : .small) - .padding(.trailing, .medium) - .padding(.vertical, .xSmall) - #if os(macOS) - .background( - RoundedRectangle(cornerRadius: .small, style: .continuous) - .foregroundColor(Color.onBackgroundPrimary) - .shadowElevation(.z2) - ) - #else - .background( - Capsule() - .foregroundColor(Color.surfacePrimary) - .shadowElevation(.z2) - ) - #endif + content .padding(.small) .opacity(opacity) .offset(y: offset) @@ -124,9 +87,7 @@ public extension HUD where Title == EmptyView, Icon == EmptyView { isPresented: Binding ) { _isPresented = isPresented - self.text = text - title = nil - icon = nil + content = HUDContent(text) isAutoHide = autoHide } } @@ -139,10 +100,8 @@ public extension HUD where Title == EmptyView { @ViewBuilder icon: () -> Icon ) { _isPresented = isPresented - self.text = text - title = nil + content = HUDContent(text, icon: icon()) isAutoHide = autoHide - self.icon = icon() } } @@ -153,9 +112,7 @@ public extension HUD where Icon == EmptyView { @ViewBuilder title: () -> Title ) { _isPresented = isPresented - text = nil - self.title = title() - icon = nil + content = HUDContent(title: title()) isAutoHide = autoHide } } diff --git a/Sources/OversizeUI/Controls/HUD/HUDContent.swift b/Sources/OversizeUI/Controls/HUD/HUDContent.swift new file mode 100644 index 00000000..aeb5d9d4 --- /dev/null +++ b/Sources/OversizeUI/Controls/HUD/HUDContent.swift @@ -0,0 +1,83 @@ +// +// Copyright © 2025 Alexander Romanov +// HUDContent.swift, created on 19.07.2025 +// + +import SwiftUI + +public struct HUDContent: View where Title: View, Icon: View { + private let text: String? + private let title: Title? + private let icon: Icon? + + public init( + text: String? = nil, + title: Title? = nil, + icon: Icon? = nil + ) { + self.text = text + self.title = title + self.icon = icon + } + + public var body: some View { + HStack(spacing: .xxSmall) { + if icon != nil { + icon + } + if let text { + Text(text) + .body(.medium) + #if os(macOS) + .foregroundColor(Color.onPrimary) + #else + .foregroundColor(Color.onSurfacePrimary) + #endif + } else if let title { + title + } + } + .padding(.leading, icon == nil ? .medium : .xSmall) + .padding(.trailing, .medium) + .padding(.vertical, .xSmall) + #if os(macOS) + .background( + RoundedRectangle(cornerRadius: .small, style: .continuous) + .foregroundColor(Color.onBackgroundPrimary) + .shadowElevation(.z2) + ) + #else + .background( + Capsule() + .foregroundColor(Color.surfacePrimary) + .shadowElevation(.z2) + ) + #endif + } +} + +// MARK: - Convenience Extensions + +public extension HUDContent where Title == EmptyView, Icon == EmptyView { + init(_ text: String) { + self.text = text + title = nil + icon = nil + } +} + +public extension HUDContent where Title == EmptyView { + init(_ text: String, icon: Icon) { + self.text = text + title = nil + self.icon = icon + } +} + +public extension HUDContent where Icon == EmptyView { + init(title: Title) { + text = nil + self.title = title + icon = nil + } +} diff --git a/Sources/OversizeUI/Controls/Notice/NoticeView.swift b/Sources/OversizeUI/Controls/Notice/NoticeView.swift index 968e0d5c..5f13f1a1 100644 --- a/Sources/OversizeUI/Controls/Notice/NoticeView.swift +++ b/Sources/OversizeUI/Controls/Notice/NoticeView.swift @@ -40,19 +40,19 @@ import SwiftUI public struct NoticeView: View where A: View { /// The image displayed in the notice. let image: Image? - + /// The URL for an image to be displayed in the notice. let imageURL: URL? - + /// The title text of the notice. let title: String - + /// The subtitle text providing additional information. let subtitle: String? - + /// Custom actions displayed in the notice. let actions: Group? - + /// The closure executed when the close button is tapped. let closeAction: (() -> Void)? diff --git a/Sources/OversizeUI/Controls/Row/Row.swift b/Sources/OversizeUI/Controls/Row/Row.swift index a489116b..33fe7fb5 100644 --- a/Sources/OversizeUI/Controls/Row/Row.swift +++ b/Sources/OversizeUI/Controls/Row/Row.swift @@ -38,7 +38,7 @@ public struct Row: View where LeadingLabel: View, T private var leadingSpace: Space = .small - private var textColor: Color? = nil + private var textColor: Color? private var isShowSubtitle: Bool { (subtitle?.isEmpty) != nil diff --git a/Sources/OversizeUI/Controls/SuccessView/SuccessView.swift b/Sources/OversizeUI/Controls/SuccessView/SuccessView.swift new file mode 100644 index 00000000..8e4bb1d5 --- /dev/null +++ b/Sources/OversizeUI/Controls/SuccessView/SuccessView.swift @@ -0,0 +1,339 @@ +// +// Copyright © 2024 Alexander Romanov +// SuccessView.swift, created on 15.11.2024 +// + +import SwiftUI + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public struct SuccessView: View where C: View, A: View { + private let image: Image? + private let title: String + private let subtitle: String? + private let closeAction: (() -> Void)? + private let actions: Group? + private let content: C? + + public init( + image: Image? = nil, + title: String, + subtitle: String? = nil, + closeAction: (() -> Void)? = nil, + @ViewBuilder actions: @escaping () -> A, + @ViewBuilder content: () -> C = { EmptyView() } + ) { + self.image = image + self.title = title + self.subtitle = subtitle + self.closeAction = closeAction + self.actions = Group { actions() } + self.content = content() + } + + public var body: some View { + #if os(macOS) + macOSContentView + #else + contenView + #endif + } + + private var contenView: some View { + GeometryReader { geometry in + VStack(alignment: .center, spacing: .large) { + Spacer() + displayImage + .frame(width: 128, height: 128, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + if let content { + VStack { + content + + Spacer() + } + } + + if actions != nil { + VStack(spacing: .small) { + actions + #if !os(tvOS) + .controlSize(.large) + #endif + } + .padding(.top, .xxSmall) + } + } + .paddingContent() + .frame( + width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, + height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height + ) + } + } + + private var macOSContentView: some View { + GeometryReader { geometry in + HStack(spacing: .medium) { + VStack(alignment: .center, spacing: .large) { + Spacer() + + displayImage + .frame(width: 64, height: 64, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + if actions != nil { + VStack(spacing: .small) { + actions + .controlSize(.large) + } + .frame(width: 200) + } + + Spacer() + } + .frame(maxWidth: .infinity, alignment: .center) + + if let content { + Surface { + content + } + .surfaceClip(true) + .surfaceStyle(.secondary) + .surfaceContentMargins(.zero) + } + } + .paddingContent() + .frame( + width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, + height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height + ) + } + } + + private var displayImage: Image { + if let image { + image + .resizable() + } else { + Image.Illustration.Status.success + .resizable() + } + } +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Basic Success") { + SuccessView( + title: "Success!", + subtitle: "Your operation completed successfully.", + actions: { + Button("Continue") {} + .buttonStyle(.primary(infinityWidth: true)) + .accent() + .elevation(.z2) + } + ) +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Basic in ScrollView") { + ScrollView { + SuccessView( + title: "Success!", + subtitle: "Your operation completed successfully.", + actions: { + Button("Continue") {} + .buttonStyle(.primary) + } + ) + } +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Custom Image with Multiple Actions") { + SuccessView( + image: Image(systemName: "checkmark.circle.fill"), + title: "Payment Complete", + subtitle: "Your payment has been processed successfully.", + actions: { + VStack(spacing: .small) { + Button("View Receipt") {} + .buttonStyle(.primary) + Button("Continue Shopping") {} + .buttonStyle(.secondary) + } + } + ) +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("With Content") { + SuccessView( + title: "Account Created", + subtitle: "Welcome to our platform!", + actions: { + Button("Get Started") {} + .buttonStyle(.primary) + }, + content: { + VStack(alignment: .leading, spacing: .medium) { + Text("Next Steps:") + .font(.headline) + VStack(alignment: .leading, spacing: .small) { + Label("Complete your profile", systemImage: "person.circle") + Label("Verify your email", systemImage: "envelope") + Label("Explore features", systemImage: "sparkles") + } + .font(.body) + } + .padding() + } + ) +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("With Close Action") { + SuccessView( + title: "File Uploaded", + subtitle: "Your document has been uploaded successfully.", + closeAction: { print("Close tapped") }, + actions: { + Button("View File") {} + .buttonStyle(.primary) + } + ) +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Minimal") { + SuccessView( + title: "Done!", + actions: { + Button("OK") {} + .buttonStyle(.primary) + } + ) +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("No Actions with Stats") { + SuccessView( + title: "Backup Complete", + subtitle: "Your data has been safely backed up to the cloud.", + actions: { + EmptyView() + }, + content: { + VStack(spacing: .medium) { + HStack { + Text("Files backed up:") + Spacer() + Text("1,247") + .font(.headline) + } + HStack { + Text("Total size:") + Spacer() + Text("2.4 GB") + .font(.headline) + } + HStack { + Text("Last backup:") + Spacer() + Text("Just now") + .font(.headline) + } + } + .padding() + } + ) +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Dark Mode") { + SuccessView( + title: "Settings Saved", + subtitle: "Your preferences have been updated.", + actions: { + Button("Done") {} + .buttonStyle(.primary) + } + ) + .preferredColorScheme(.dark) +} + +#if os(macOS) +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("macOS Layout") { + SuccessView( + title: "Export Complete", + subtitle: "Your project has been exported successfully.", + actions: { + HStack { + Button("Show in Finder") {} + .buttonStyle(.secondary) + Button("Share") {} + .buttonStyle(.primary) + } + }, + content: { + VStack(alignment: .leading, spacing: .medium) { + Text("Export Details") + .font(.headline) + + VStack(alignment: .leading, spacing: .small) { + HStack { + Text("Format:") + Spacer() + Text("PDF") + } + HStack { + Text("Pages:") + Spacer() + Text("24") + } + HStack { + Text("File size:") + Spacer() + Text("3.2 MB") + } + } + .font(.body) + } + .padding() + } + ) + .frame(width: 600, height: 400) +} +#endif + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Long Title and Subtitle") { + SuccessView( + title: "Your Very Important Task Has Been Completed Successfully", + subtitle: "This is a longer subtitle text to demonstrate how the SuccessView handles multiple lines of text and proper text wrapping in different scenarios.", + actions: { + VStack(spacing: .small) { + Button("Primary Action") {} + .buttonStyle(.primary) + Button("Secondary Action") {} + .buttonStyle(.secondary) + Button("Tertiary Action") {} + .buttonStyle(.tertiary) + } + } + ) +} diff --git a/Sources/OversizeUI/Core/Icons.swift b/Sources/OversizeUI/Core/Icons.swift index e90982f7..0082fd85 100644 --- a/Sources/OversizeUI/Core/Icons.swift +++ b/Sources/OversizeUI/Core/Icons.swift @@ -186,6 +186,16 @@ public extension SwiftUI.Image { public static let chat = Image("Base/Chat", bundle: .module) public enum Check { + public enum Circle { + public static let fill = Image("Base/Check/Circle/Fill", bundle: .module) + public enum TwoTone { + public static let fill = Image("Base/Check/Circle/TwoTone/Fill", bundle: .module) + } + + public static let twoTone = Image("Base/Check/Circle/TwoTone", bundle: .module) + } + + public static let circle = Image("Base/Check/Circle", bundle: .module) public static let mini = Image("Base/Check/Mini", bundle: .module) public enum Square { public static let fill = Image("Base/Check/Square/Fill", bundle: .module) @@ -723,8 +733,8 @@ public extension SwiftUI.Image { public static let send = Image("Base/Send", bundle: .module) public enum Setting { - public static let mini = Image("Base/Setting/Mini", bundle: .module) public static let fill = Image("Base/Setting/Fill", bundle: .module) + public static let mini = Image("Base/Setting/Mini", bundle: .module) public enum TwoTone { public static let fill = Image("Base/Setting/TwoTone/Fill", bundle: .module) } @@ -765,6 +775,7 @@ public extension SwiftUI.Image { public static let shieldFail = Image("Base/ShieldFail", bundle: .module) public enum Star { public static let fill = Image("Base/Star/Fill", bundle: .module) + public static let mini = Image("Base/Star/Mini", bundle: .module) public enum TwoTone { public static let fill = Image("Base/Star/TwoTone/Fill", bundle: .module) } @@ -811,6 +822,12 @@ public extension SwiftUI.Image { } public static let unlock = Image("Base/Unlock", bundle: .module) + public enum Unstar { + public static let fill = Image("Base/Unstar/Fill", bundle: .module) + public static let mini = Image("Base/Unstar/Mini", bundle: .module) + } + + public static let unstar = Image("Base/Unstar", bundle: .module) public enum Upload { public static let fill = Image("Base/Upload/Fill", bundle: .module) public enum TwoTone { diff --git a/Sources/OversizeUI/Core/Shadow.swift b/Sources/OversizeUI/Core/Shadow.swift index 097b6eb8..be5fb7cd 100644 --- a/Sources/OversizeUI/Core/Shadow.swift +++ b/Sources/OversizeUI/Core/Shadow.swift @@ -71,7 +71,7 @@ public extension View { func shadowElevaton(_ elevation: Elevation, color: Color) -> some View { modifier(Shadow(elevation: elevation, color: color)) } - + func shadowElevation(_ elevation: Elevation) -> some View { modifier(Shadow(elevation: elevation)) } diff --git a/Sources/OversizeUI/Core/Typography.swift b/Sources/OversizeUI/Core/Typography.swift index 566830de..abcb073b 100644 --- a/Sources/OversizeUI/Core/Typography.swift +++ b/Sources/OversizeUI/Core/Typography.swift @@ -100,7 +100,7 @@ public struct Typography: ViewModifier { /// /// These modifiers apply consistent typography styles that automatically adapt to: /// - Dynamic Type settings for accessibility -/// - Light and dark appearance modes +/// - Light and dark appearance modes /// - Platform conventions (iOS, macOS, tvOS, watchOS) /// - Custom theme typography settings /// @@ -111,13 +111,13 @@ public struct Typography: ViewModifier { /// VStack(alignment: .leading) { /// Text("Main Title") /// .largeTitle(.bold) -/// +/// /// Text("Section Header") /// .title2() -/// +/// /// Text("Body content with proper hierarchy") /// .body() -/// +/// /// Text("Supporting information") /// .caption(.medium) /// } @@ -159,9 +159,8 @@ public struct Typography: ViewModifier { /// - /// - ``Typography`` public extension View { - // MARK: - Large Title - + /// Applies large title typography style with optional bold formatting. /// /// Large titles are used for the most prominent text on screen, typically @@ -192,7 +191,7 @@ public extension View { } // MARK: - Title - + /// Applies title typography style with optional bold formatting. /// /// Titles are used for primary section headers and important content headings. diff --git a/Sources/OversizeUI/Deprecated/PageView.swift b/Sources/OversizeUI/Deprecated/PageView.swift index 516eeac5..26d66370 100644 --- a/Sources/OversizeUI/Deprecated/PageView.swift +++ b/Sources/OversizeUI/Deprecated/PageView.swift @@ -186,7 +186,7 @@ public struct PageView control.isAlwaysSlideSmallTile = isSlide return control } - + @available(*, deprecated, renamed: "slideSmallTitle") public func slideSmallTile(_ isSlide: Bool = true) -> PageView { var control = self diff --git a/Sources/OversizeUI/Extensions/View/View+SizeReader.swift b/Sources/OversizeUI/Extensions/View/View+SizeReader.swift index c11f82ef..a299bfa2 100644 --- a/Sources/OversizeUI/Extensions/View/View+SizeReader.swift +++ b/Sources/OversizeUI/Extensions/View/View+SizeReader.swift @@ -15,4 +15,15 @@ public extension View { ) .onPreferenceChange(SizePreferenceKey.self, perform: onChange) } + + @available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) + func readScrollViewSize(onChange: @Sendable @escaping (CGSize) -> Void) -> some View { + background( + GeometryReader { geometryProxy in + Color.clear + .preference(key: SizePreferenceKey.self, value: geometryProxy.bounds(of: .scrollView)?.size ?? geometryProxy.size) + } + ) + .onPreferenceChange(SizePreferenceKey.self, perform: onChange) + } } diff --git a/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift b/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift index ca9edc03..f8a85498 100644 --- a/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift +++ b/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift @@ -7,7 +7,8 @@ import SwiftUI public struct ListLayoutView< Content: View, - Background: View + Background: View, + SelectionValue: Hashable >: View { public typealias ScrollAction = @MainActor @Sendable (_ offset: CGPoint, _ headerVisibleRatio: CGFloat) -> Void @@ -16,22 +17,39 @@ public struct ListLayoutView< @ViewBuilder private var content: Content @ViewBuilder private let background: Background + @Binding private var selection: Set? + private let title: String public var body: some View { - SwiftUI.List { content } - .navigationTitle(title) - .background(background.ignoresSafeArea()) + SwiftUI.List(selection: $selection) { + content + } + .navigationTitle(title) + .background(background.ignoresSafeArea()) + } + + public init( + _ title: String, + @ViewBuilder content: () -> Content, + @ViewBuilder background: () -> Background = { Color.backgroundPrimary } + ) where SelectionValue == Never { + self.title = title + self.content = content() + self.background = background() + _selection = .constant(nil) } public init( _ title: String, + selection: Binding?>, @ViewBuilder content: () -> Content, @ViewBuilder background: () -> Background = { Color.backgroundPrimary } ) { self.title = title self.content = content() self.background = background() + _selection = selection } } @@ -41,19 +59,35 @@ public struct ListLayoutView< ListLayoutView( "Title", content: { - LazyVStack(spacing: 0) { - ForEach(1 ... 100, id: \.self) { item in - Button {} label: { - VStack(spacing: 0) { - Text("Item \(item)") - .padding() - .frame(maxWidth: .infinity, alignment: .leading) - - Divider() - } - .clipShape(Rectangle()) - } + ForEach(1 ... 100, id: \.self) { item in + VStack(spacing: 0) { + Text("Item \(item)") + .padding() + .frame(maxWidth: .infinity, alignment: .leading) } + .clipShape(Rectangle()) + } + }, + background: { Color.backgroundSecondary } + ) + .toolbarTitleDisplayMode(.inline) + .listStyle(.plain) + } +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("With Selection") { + @Previewable @State var selectedItems: Set? = [] + + return NavigationView { + ListLayoutView( + "Title with Selection", + selection: $selectedItems, + content: { + ForEach(1 ... 20, id: \.self) { item in + Text("Item \(item)") + .padding() + .frame(maxWidth: .infinity, alignment: .leading) } }, background: { Color.backgroundSecondary } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json new file mode 100644 index 00000000..6faf676f --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "iconly-icon-export-1752921364.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/iconly-icon-export-1752921364.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/iconly-icon-export-1752921364.svg new file mode 100644 index 00000000..3bae2587 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/iconly-icon-export-1752921364.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Contents.json new file mode 100644 index 00000000..6e965652 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "provides-namespace" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Check circle.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Check circle.svg new file mode 100644 index 00000000..46780cc5 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Check circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json new file mode 100644 index 00000000..c068381d --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Check circle.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Check circle-3.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Check circle-3.svg new file mode 100644 index 00000000..37185c84 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Check circle-3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json new file mode 100644 index 00000000..88c03d3b --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Check circle-3.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Contents.json new file mode 100644 index 00000000..6e965652 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "provides-namespace" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Check circle-2.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Check circle-2.svg new file mode 100644 index 00000000..392248aa --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Check circle-2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json new file mode 100644 index 00000000..0f94592c --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Check circle-2.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json new file mode 100644 index 00000000..a87ba912 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "StarMini.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/StarMini.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/StarMini.svg new file mode 100644 index 00000000..0327b9cc --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/StarMini.svg @@ -0,0 +1,3 @@ + + + diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json new file mode 100644 index 00000000..795101cf --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Unstar.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Unstar.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Unstar.svg new file mode 100644 index 00000000..0e636760 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Unstar.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Contents.json new file mode 100644 index 00000000..6e965652 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "provides-namespace" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json new file mode 100644 index 00000000..53c2d6e4 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "star remove-2.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/star remove-2.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/star remove-2.svg new file mode 100644 index 00000000..7671f8d1 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/star remove-2.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json new file mode 100644 index 00000000..e5a4b2db --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "UnstarMini.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/UnstarMini.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/UnstarMini.svg new file mode 100644 index 00000000..25c64f83 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/UnstarMini.svg @@ -0,0 +1,5 @@ + + + + + From 52325df4b559b1fed3a393b3f128849de7f7e428 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Fri, 8 Aug 2025 21:03:29 +0300 Subject: [PATCH 02/19] Update paddings --- .../OversizeUI/Controls/Avatar/Avatar.swift | 10 +- .../Controls/Background/Background.swift | 6 +- Sources/OversizeUI/Controls/Badge/Badge.swift | 2 +- .../OversizeUI/Controls/Button/Button.swift | 81 +++-- .../Controls/Button/FieldButtonStyle.swift | 12 +- .../Controls/Checkbox/Checkbox.swift | 4 +- .../Controls/ContentView/ContentView.swift | 216 ++--------- .../ContentViewActionsBuilder.swift | 59 +++ .../Controls/ErrorView/ErrorView.swift | 146 -------- .../Controls/GridSelect/GridSelect.swift | 26 +- .../Controls/IconPicker/IconPicker.swift | 2 +- .../Controls/Premium/PremiumLabel.swift | 12 +- Sources/OversizeUI/Controls/Row/Row.swift | 2 +- .../OversizeUI/Controls/Row/RowButton.swift | 4 +- .../Controls/SectionView/SectionView.swift | 26 +- .../SegmentedControl/SegmentedControl.swift | 36 +- .../Controls/Select/MultiSelect.swift | 4 +- .../OversizeUI/Controls/Select/Select.swift | 68 ++-- .../Controls/SuccessView/SuccessView.swift | 339 ------------------ .../Controls/Surface/MaterialSurface.swift | 4 +- .../OversizeUI/Controls/Surface/Surface.swift | 4 +- .../OversizeUI/Controls/TextBox/TextBox.swift | 4 +- .../TextEditorPlaceholderViewModifier.swift | 28 +- .../TextField/LabeledTextFieldStyle.swift | 14 +- .../TextField/TextFieldExtended.swift | 4 +- .../OversizeUI/Controls/Toast/Snackbar.swift | 2 +- .../Controls/Toggle/CheckboxStyle.swift | 8 +- .../Controls/Toggle/RadioStyle.swift | 4 +- .../ControlBorderShapeEnvironment.swift | 4 +- .../EnvironmentKeys/RadiusEnvironment.swift | 8 +- .../SurfaceRadiusEnvironment.swift | 8 +- Sources/OversizeUI/Core/Icons.swift | 1 + Sources/OversizeUI/Core/Radius.swift | 87 ++--- Sources/OversizeUI/Core/Space.swift | 28 ++ .../Deprecated/ContentViewDeprecated.swift | 236 ++++++++++++ Sources/OversizeUI/Deprecated/Icon.swift | 20 +- .../Extensions/Padding/Padding.swift | 2 +- .../Extensions/Spacing/Spacing.swift | 116 +++--- .../CoverLayout/CoverLayoutViewModifier.swift | 2 +- .../Primary.colorset/Contents.json | 6 +- .../Base/Folder/Mini.imageset/Contents.json | 15 + .../Base/Folder/Mini.imageset/Mini.svg | 4 + .../Shapes/RoundedRectangleCorner.swift | 4 - .../Status/BlankView/BlankView.swift | 87 +++++ .../Status/ErrorView/ErrorView.swift | 98 +++++ .../Status/SuccessView/SuccessView.swift | 159 ++++++++ 46 files changed, 1029 insertions(+), 983 deletions(-) create mode 100644 Sources/OversizeUI/Controls/ContentView/ContentViewActionsBuilder.swift delete mode 100644 Sources/OversizeUI/Controls/ErrorView/ErrorView.swift delete mode 100644 Sources/OversizeUI/Controls/SuccessView/SuccessView.swift create mode 100644 Sources/OversizeUI/Deprecated/ContentViewDeprecated.swift create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json create mode 100644 Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Mini.svg create mode 100644 Sources/OversizeUI/Status/BlankView/BlankView.swift create mode 100644 Sources/OversizeUI/Status/ErrorView/ErrorView.swift create mode 100644 Sources/OversizeUI/Status/SuccessView/SuccessView.swift diff --git a/Sources/OversizeUI/Controls/Avatar/Avatar.swift b/Sources/OversizeUI/Controls/Avatar/Avatar.swift index f8f3400d..5b8839a1 100644 --- a/Sources/OversizeUI/Controls/Avatar/Avatar.swift +++ b/Sources/OversizeUI/Controls/Avatar/Avatar.swift @@ -216,19 +216,19 @@ public struct Avatar: View { private var avatarSize: CGFloat { #if os(tvOS) - return Space.xLarge.rawValue + return .xLarge #else switch controlSize { case .mini: - return Space.medium.rawValue + return .medium case .small: - return Space.large.rawValue + return .large case .regular: - return Space.xLarge.rawValue + return .xLarge case .large, .extraLarge: return Space.xxxLarge.rawValue @unknown default: - return Space.xLarge.rawValue + return .xLarge } #endif } diff --git a/Sources/OversizeUI/Controls/Background/Background.swift b/Sources/OversizeUI/Controls/Background/Background.swift index eeae015b..bc127c8a 100644 --- a/Sources/OversizeUI/Controls/Background/Background.swift +++ b/Sources/OversizeUI/Controls/Background/Background.swift @@ -25,8 +25,8 @@ public struct Background: View { static var colorTertiary: Color { Color.backgroundTertiary } /// Size - static var paddingMedium: CGFloat { Space.medium.rawValue } - static var paddingSmall: CGFloat { Space.small.rawValue } + static var paddingMedium: CGFloat { .medium } + static var paddingSmall: CGFloat { .small } } private let content: Content @@ -48,7 +48,7 @@ public struct Background: View { .padding(.all, paddingSize) .frame(minWidth: 0, maxWidth: .infinity) .background(backgroundColor) - .cornerRadius(Radius.medium) + .cornerRadius(.small) } private var paddingSize: CGFloat { diff --git a/Sources/OversizeUI/Controls/Badge/Badge.swift b/Sources/OversizeUI/Controls/Badge/Badge.swift index bbdac4dc..0cd4f1e6 100644 --- a/Sources/OversizeUI/Controls/Badge/Badge.swift +++ b/Sources/OversizeUI/Controls/Badge/Badge.swift @@ -10,7 +10,7 @@ public typealias Bage = Badge: View where A: View { @Environment(\.multilineTextAlignment) var multilineTextAlignment - @Environment(\.dismiss) var dismiss private let image: Image? private let title: String private let subtitle: String? - - private let primaryButton: ContenButtonType? - private let secondaryButton: ContenButtonType? + private let actions: Group? public init( image: Image? = nil, title: String, subtitle: String? = nil, - primaryButton: ContenButtonType? = nil, - secondaryButton: ContenButtonType? = nil + @ViewBuilder actions: @escaping () -> A ) { self.image = image self.title = title self.subtitle = subtitle - - self.primaryButton = primaryButton - self.secondaryButton = secondaryButton + self.actions = Group { actions() } } public var body: some View { @@ -56,184 +39,35 @@ public struct ContentView: View { spacing: .xxSmall ) - primaryButtonView() - - secondaryButtonView() + if let actions { + VStack(spacing: .small) { + actions + #if !os(tvOS) + .controlSize(.large) + #endif + } + } } } var vStackAlignment: HorizontalAlignment { switch multilineTextAlignment { - case .leading: - .leading - case .center: - .center - case .trailing: - .trailing + case .leading: .leading + case .center: .center + case .trailing: .trailing } } } -// swiftlint:disable multiple_closures_with_trailing_closure -extension ContentView { - @ViewBuilder - private func primaryButtonView() -> some View { - switch primaryButton { - case .close: - Button(action: { dismiss() }) { - IconDeprecated(.xMini) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - #if os(macOS) - .controlSize(.large) - #endif - case .back: - Button(action: { dismiss() }) { - IconDeprecated(.arrowLeft) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - #if os(macOS) - .controlSize(.large) - #endif - case let .secondary(text, action: action): - Button(action: action) { - Text(text) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - #if os(macOS) - .controlSize(.large) - #endif - case let .accent(text, action: action): - Button(action: action) { - Text(text) - } - #if os(iOS) - .buttonStyle(.primary) - .accent() - #endif - #if os(macOS) - .controlSize(.large) - .buttonStyle(.borderedProminent) - .keyboardShortcut(.defaultAction) - #endif - case let .primary(text, action: action): - Button(action: action) { - Text(text) - } - #if os(iOS) - .buttonStyle(.primary) - #endif - #if os(macOS) - .controlSize(.large) - .buttonStyle(.borderedProminent) - .keyboardShortcut(.defaultAction) - #endif - case let .closeAction(action: action): - Button(action: action) { - IconDeprecated(.xMini) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - #if os(macOS) - .controlSize(.large) - #endif - case let .backAction(action: action): - Button(action: action) { - IconDeprecated(.arrowLeft) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - #if os(macOS) - .controlSize(.large) - #endif - case let .disabled(text): - Button(action: {}) { - Text(text) - } - #if os(iOS) - .buttonStyle(.quaternary) - .disabled(true) - #endif - #if os(macOS) - .controlSize(.large) - #endif - case .none: - EmptyView() - } - } - - @ViewBuilder - private func secondaryButtonView() -> some View { - switch secondaryButton { - case .close: - Button(action: { dismiss() }) { - IconDeprecated(.xMini) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - case .back: - Button(action: { dismiss() }) { - IconDeprecated(.arrowLeft) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - case let .secondary(text, action: action): - Button(action: action) { - Text(text) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - case let .accent(text, action: action): - Button(action: action) { - Text(text) - } - #if os(iOS) - .buttonStyle(.primary) - .accent() - #endif - case let .primary(text, action: action): - Button(action: action) { - Text(text) - } - #if os(iOS) - .buttonStyle(.primary) - .accent() - #endif - case let .closeAction(action: action): - Button(action: action) { - IconDeprecated(.xMini) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - case let .backAction(action: action): - Button(action: action) { - IconDeprecated(.arrowLeft) - } - #if os(iOS) - .buttonStyle(.secondary) - #endif - case let .disabled(text): - Button(action: {}) { - Text(text) - } - #if os(iOS) - .buttonStyle(.tertiary) - #endif - .disabled(true) - case .none: - EmptyView() - } +public extension ContentView where A == EmptyView { + init( + image: Image? = nil, + title: String, + subtitle: String? = nil + ) { + self.image = image + self.title = title + self.subtitle = subtitle + actions = nil } } diff --git a/Sources/OversizeUI/Controls/ContentView/ContentViewActionsBuilder.swift b/Sources/OversizeUI/Controls/ContentView/ContentViewActionsBuilder.swift new file mode 100644 index 00000000..080fc98a --- /dev/null +++ b/Sources/OversizeUI/Controls/ContentView/ContentViewActionsBuilder.swift @@ -0,0 +1,59 @@ +// +// Copyright © 2025 Alexander Romanov +// LayoutButtonBuilder.swift, created on 07.08.2025 +// + +import SwiftUI + +@resultBuilder +public struct ContentViewActionsBuilder { + public static func buildBlock() -> EmptyView { + EmptyView() + } + + @MainActor + public static func buildBlock(_ v1: some View) -> some View { + v1.buttonStyle(.primary(infinityWidth: true)) + .accent() + } + + @MainActor + public static func buildBlock(_ v1: some View, _ v2: some View) -> some View { + VStack(spacing: .small) { + v1.buttonStyle(.primary(infinityWidth: true)) + .accent() + v2.buttonStyle(.secondary(infinityWidth: true)) + .accent() + } + } + + @MainActor + public static func buildBlock(_ v1: some View, _ v2: some View, _ v3: some View) -> some View { + VStack(spacing: .small) { + v1.buttonStyle(.primary(infinityWidth: true)) + .accent() + v2.buttonStyle(.secondary(infinityWidth: true)) + .accent() + v3.buttonStyle(.tertiary(infinityWidth: true)) + .accent() + } + } + + @MainActor + public static func buildEither(first component: some View) -> some View { + component + } + + @MainActor + public static func buildEither(second component: some View) -> some View { + component + } + + public static func buildOptional(_ content: Content?) -> Content? where Content: View { + content + } + + public static func buildIf(_ content: Content?) -> Content? where Content: View { + content + } +} diff --git a/Sources/OversizeUI/Controls/ErrorView/ErrorView.swift b/Sources/OversizeUI/Controls/ErrorView/ErrorView.swift deleted file mode 100644 index eedbbd6d..00000000 --- a/Sources/OversizeUI/Controls/ErrorView/ErrorView.swift +++ /dev/null @@ -1,146 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// ErrorView.swift, created on 15.11.2024 -// - -import SwiftUI - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -public struct ErrorView: View { - private let error: Error - private let closeAction: (() -> Void)? - private let recoveryHandler: ((Int) -> Void)? - private var image: Image? - - public init( - error: Error, - closeAction: (() -> Void)? = nil, - recoveryHandler: ((Int) -> Void)? = nil - ) { - self.error = error - self.closeAction = closeAction - self.recoveryHandler = recoveryHandler - } - - public var body: some View { - #if os(macOS) - macOSContentView - #else - contenView - #endif - } - - private var title: String { - if let localizedError = error as? LocalizedError { - return localizedError.errorDescription ?? "Error" - } - return error.localizedDescription - } - - private var subtitle: String { - if let localizedError = error as? LocalizedError { - return [ - localizedError.failureReason, - localizedError.recoverySuggestion, - ].compactMap { $0 }.joined(separator: "\n") - } - return "" - } - - private var contenView: some View { - GeometryReader { geometry in - VStack(alignment: .center, spacing: .large) { - Spacer() - displayImage - .frame(width: 128, height: 128, alignment: .bottom) - - TextBox( - title: title, - subtitle: subtitle, - spacing: .xxSmall - ) - .multilineTextAlignment(.center) - - Spacer() - } - .paddingContent() - .frame( - width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, - height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height - ) - } - } - - private var macOSContentView: some View { - GeometryReader { geometry in - HStack(spacing: .medium) { - VStack(alignment: .center, spacing: .large) { - Spacer() - - displayImage - .frame(width: 64, height: 64, alignment: .bottom) - - TextBox( - title: title, - subtitle: subtitle, - spacing: .xxSmall - ) - .multilineTextAlignment(.center) - - Spacer() - } - .frame(maxWidth: .infinity, alignment: .center) - } - .paddingContent() - .frame( - width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, - height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height - ) - } - } - - private var displayImage: Image { - if let image { - image - .resizable() - } else { - Image.Illustration.Status.error - .resizable() - } - } -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("Basic Success") { - enum AuthError: Error, LocalizedError, Sendable { - case networkError - case notAccess - case invalidCredentials - - public var errorDescription: String? { - switch self { - case .networkError: - "Invalid phone number format" - case .notAccess: - "No access to location services" - case .invalidCredentials: - "Invalid credentials provided" - } - } - - public var failureReason: String? { - switch self { - case .networkError: - "Please enter a valid phone number" - case .notAccess: - "Location services are not enabled" - case .invalidCredentials: - "The credentials you provided are incorrect" - } - } - } - - let errorView = ErrorView(error: AuthError.networkError) - - return errorView -} diff --git a/Sources/OversizeUI/Controls/GridSelect/GridSelect.swift b/Sources/OversizeUI/Controls/GridSelect/GridSelect.swift index 0e234ebc..9dcb84cb 100644 --- a/Sources/OversizeUI/Controls/GridSelect/GridSelect.swift +++ b/Sources/OversizeUI/Controls/GridSelect/GridSelect.swift @@ -19,7 +19,7 @@ public struct GridSelect: View @State private var selectedIndex: Data.Index? @Binding private var selection: Data.Element - private let radius: Radius + private let radius: Space private let data: Data private let spacing: Space private let selectionView: () -> Selection? @@ -29,7 +29,7 @@ public struct GridSelect: View public init( _ data: Data, selection: Binding, - radius: Radius = .medium, + radius: Space = .xSmall, spacing: Space = .xSmall, @ViewBuilder content: @escaping (Data.Element, Bool) -> Content, @ViewBuilder selectionView: @escaping () -> Selection? = { nil }, @@ -59,8 +59,8 @@ public struct GridSelect: View private var gridSelect: some View { LazyVGrid( - columns: [GridItem(spacing: spacing), GridItem(spacing: spacing)], - spacing: spacing + columns: [GridItem(spacing: spacing.rawValue), GridItem(spacing: spacing.rawValue)], + spacing: spacing.rawValue ) { ForEach(data.indices, id: \.self) { index in Button(action: { @@ -113,13 +113,13 @@ public struct GridSelect: View switch selectionStyle { case .shadowSurface: RoundedRectangle( - cornerRadius: radius, + cornerRadius: radius.rawValue, style: .continuous ) .fill(Color.surfacePrimary) .overlay( RoundedRectangle( - cornerRadius: radius, + cornerRadius: radius.rawValue, style: .continuous ) .stroke( @@ -132,7 +132,7 @@ public struct GridSelect: View .shadowElevation(.z2) case .graySurface: RoundedRectangle( - cornerRadius: radius, + cornerRadius: radius.rawValue, style: .continuous ) .strokeBorder(Color.onSurfaceSecondary, lineWidth: 2) @@ -152,13 +152,13 @@ public struct GridSelect: View EmptyView() case .surface: RoundedRectangle( - cornerRadius: radius, + cornerRadius: radius.rawValue, style: .continuous ) .fill(Color.surfaceSecondary) .overlay( RoundedRectangle( - cornerRadius: radius, + cornerRadius: radius.rawValue, style: .continuous ) .stroke( @@ -185,7 +185,7 @@ public struct GridSelect: View .foregroundColor(Color.surfacePrimary) .shadowElevation(.z2) IconDeprecated(.checkMini, color: .onSurfacePrimary) - }.frame(width: Space.large.rawValue, height: Space.large.rawValue) + }.frame(width: .large, height: .large) .padding(.small) } case let .radio(alignment): @@ -197,8 +197,8 @@ public struct GridSelect: View .foregroundColor(Color.accent) .shadowElevation(.z2) Circle() - .frame(width: Space.small.rawValue, height: Space.small.rawValue) - }.frame(width: Space.large.rawValue, height: Space.large.rawValue) + .frame(width: .small, height: .small) + }.frame(width: .large, height: .large) .padding(.small) } } @@ -209,7 +209,7 @@ public extension GridSelect where Selection == EmptyView { init( _ data: Data, selection: Binding, - radius: Radius = .medium, + radius: Space = .xSmall, spacing: Space = .xSmall, @ViewBuilder content: @escaping (Data.Element, Bool) -> Content, action: (() -> Void)? = nil diff --git a/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift b/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift index 5a682960..125db0b1 100644 --- a/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift +++ b/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift @@ -76,7 +76,7 @@ public struct IconPicker: View { .frame(width: 24, height: 24, alignment: .center) } .overlay( - RoundedRectangle(cornerRadius: Radius.medium, style: .continuous) + RoundedRectangle(cornerRadius: .xxxSmall, style: .continuous) .strokeBorder(Color.border, lineWidth: 1) .frame(width: 48, height: 48, alignment: .center) ) diff --git a/Sources/OversizeUI/Controls/Premium/PremiumLabel.swift b/Sources/OversizeUI/Controls/Premium/PremiumLabel.swift index f4577526..3f28d135 100644 --- a/Sources/OversizeUI/Controls/Premium/PremiumLabel.swift +++ b/Sources/OversizeUI/Controls/Premium/PremiumLabel.swift @@ -29,7 +29,7 @@ public struct PremiumLabel: View { public var body: some View { HStack { - HStack(alignment: .center, spacing: Space.xxSmall) { + HStack(alignment: .center, spacing: .xxSmall) { if let image { image .renderingMode(.template) @@ -77,7 +77,7 @@ public struct PremiumLabel: View { var leadingPadding: Space { switch size { case .small: - Space.xxSmall + .xxSmall case .medium: Space.xSmall } @@ -97,16 +97,16 @@ public struct PremiumLabel: View { case .small: Space.xxxSmall case .medium: - Space.xxSmall + .xxSmall } } - var radius: Radius { + var radius: CGFloat { switch size { case .small: - Radius.small + .xxSmall case .medium: - Radius.medium + .xSmall } } diff --git a/Sources/OversizeUI/Controls/Row/Row.swift b/Sources/OversizeUI/Controls/Row/Row.swift index 33fe7fb5..236beeb9 100644 --- a/Sources/OversizeUI/Controls/Row/Row.swift +++ b/Sources/OversizeUI/Controls/Row/Row.swift @@ -11,7 +11,7 @@ public enum RowClearIconStyle { public struct Row: View where LeadingLabel: View, TrailingLabel: View { @Environment(\.elevation) private var elevation: Elevation - @Environment(\.controlRadius) var controlRadius: Radius + @Environment(\.controlRadius) var controlRadius @Environment(\.rowContentMargins) var controlMargins: EdgeSpaceInsets @Environment(\.multilineTextAlignment) var multilineTextAlignment @Environment(\.isPremium) var premiumStatus diff --git a/Sources/OversizeUI/Controls/Row/RowButton.swift b/Sources/OversizeUI/Controls/Row/RowButton.swift index c60d94fb..d4d7039c 100644 --- a/Sources/OversizeUI/Controls/Row/RowButton.swift +++ b/Sources/OversizeUI/Controls/Row/RowButton.swift @@ -55,8 +55,8 @@ public struct RowButton: View { Spacer() } } - .padding(.top, controlPadding.top.rawValue - Space.xxSmall.rawValue) - .padding(.bottom, controlPadding.bottom.rawValue - Space.xxSmall.rawValue) + .padding(.top, controlPadding.top.rawValue - .xxSmall) + .padding(.bottom, controlPadding.bottom.rawValue - .xxSmall) .padding(.leading, controlPadding.leading) .padding(.trailing, controlPadding.trailing) } diff --git a/Sources/OversizeUI/Controls/SectionView/SectionView.swift b/Sources/OversizeUI/Controls/SectionView/SectionView.swift index 82b63c81..2c7f1ac9 100644 --- a/Sources/OversizeUI/Controls/SectionView/SectionView.swift +++ b/Sources/OversizeUI/Controls/SectionView/SectionView.swift @@ -23,7 +23,7 @@ public enum SectionViewStyle: Sendable { } public struct SectionView: View { - @Environment(\.controlRadius) private var controlRadius: Radius + @Environment(\.controlRadius) private var controlRadius @Environment(\.sectionViewStyle) private var style: SectionViewStyle @Environment(\.surfaceContentMargins) var surfaceContentInsets: EdgeSpaceInsets @Environment(\.sectionTitleMargins) var sectionTitleInsets: EdgeSpaceInsets @@ -50,12 +50,12 @@ public struct SectionView: View { private enum Constants { /// Radius - static var radiusMedium: CGFloat { Radius.medium.rawValue } - static var radiusSmall: CGFloat { Radius.small.rawValue } + static var radiusMedium: CGFloat { .xSmall } + static var radiusSmall: CGFloat { .xxSmall } } public var body: some View { - VStack(alignment: .leading, spacing: Space.xSmall) { + VStack(alignment: .leading, spacing: .xSmall) { if !title.isEmpty, titlePosition == .outside { titleView .padding(.horizontal, titleHorizontalPadding) @@ -66,7 +66,7 @@ public struct SectionView: View { } Surface { - VStack(alignment: .leading, spacing: Space.xSmall) { + VStack(alignment: .leading, spacing: .xSmall) { if !title.isEmpty, titlePosition == .inside { titleView .padding(sectionTitleInsets) @@ -165,12 +165,12 @@ public struct SectionView: View { private var titleHorizontalPadding: CGFloat { #if os(iOS) if horizontalSizeClass == .regular { - return Space.medium.rawValue + Space.large.rawValue + return .medium + .large } else { - return Space.medium.rawValue + return .medium } #else - return Space.medium.rawValue + return .medium #endif } @@ -179,15 +179,15 @@ public struct SectionView: View { case .default: #if os(iOS) if horizontalSizeClass == .regular { - return Space.medium.rawValue + Space.large.rawValue + return .medium + .large } else { - return Space.medium.rawValue + return .medium } #else - return Space.medium.rawValue + return .medium #endif case .smallIndent: - return Space.xxSmall.rawValue + return .xxSmall case .edgeToEdge: return .zero } @@ -196,7 +196,7 @@ public struct SectionView: View { private var surfaceVerticalPaddingSize: CGFloat { switch style { case .default: - Space.small.rawValue + .small case .smallIndent, .edgeToEdge: 2 } diff --git a/Sources/OversizeUI/Controls/SegmentedControl/SegmentedControl.swift b/Sources/OversizeUI/Controls/SegmentedControl/SegmentedControl.swift index f4c569bb..42ab4a67 100644 --- a/Sources/OversizeUI/Controls/SegmentedControl/SegmentedControl.swift +++ b/Sources/OversizeUI/Controls/SegmentedControl/SegmentedControl.swift @@ -8,7 +8,7 @@ import SwiftUI public struct SegmentedPickerSelector: View where Content: View, Selection: View { @Environment(\.theme) private var theme: ThemeSettings @Environment(\.segmentedControlStyle) private var style - @Environment(\.controlRadius) var controlRadius: Radius + @Environment(\.controlRadius) var controlRadius @Environment(\.segmentedPickerMargins) var controlPadding: EdgeSpaceInsets @Environment(\.platform) var platform: Platform @@ -48,7 +48,7 @@ public struct SegmentedPickerSelector: V label: SegmentedControlConfiguration.Label(content: getSegmentedControl()) ) ) - .clipBackground(style.isShowBackground, radius: controlRadius.rawValue) + .clipBackground(style.isShowBackground, radius: controlRadius) .onAppear { let selctedValue = selection var index = 0 @@ -123,14 +123,14 @@ public struct SegmentedPickerSelector: V .padding(.trailing, controlPadding.trailing) .padding( .top, - controlPadding.top != Space.zero || controlPadding.top != Space.xxSmall - ? controlPadding.top.rawValue - Space.xxSmall.rawValue + controlPadding.top != Space.zero || controlPadding.top != .xxSmall + ? controlPadding.top.rawValue - .xxSmall : Space.zero.rawValue ) .padding( .bottom, - controlPadding.bottom != Space.zero || controlPadding.bottom != Space.xxSmall - ? controlPadding.bottom.rawValue - Space.xxSmall.rawValue + controlPadding.bottom != Space.zero || controlPadding.bottom != .xxSmall + ? controlPadding.bottom.rawValue - .xxSmall : Space.zero.rawValue ) .background(selectedIndex != index @@ -149,7 +149,7 @@ public struct SegmentedPickerSelector: V ) { dimensions in dimensions[HorizontalAlignment.center] } - .padding(.trailing, style.unseletionStyle == .surface ? Space.xSmall.rawValue : 0) + .padding(.trailing, style.unseletionStyle == .surface ? .xSmall : 0) } } } @@ -192,14 +192,14 @@ public struct SegmentedPickerSelector: V .padding(.trailing, controlPadding.trailing) .padding( .top, - controlPadding.top != Space.zero || controlPadding.top != Space.xxSmall - ? controlPadding.top.rawValue - Space.xxSmall.rawValue + controlPadding.top != Space.zero || controlPadding.top != .xxSmall + ? controlPadding.top.rawValue - .xxSmall : Space.zero.rawValue ) .padding( .bottom, - controlPadding.bottom != Space.zero || controlPadding.bottom != Space.xxSmall - ? controlPadding.bottom.rawValue - Space.xxSmall.rawValue + controlPadding.bottom != Space.zero || controlPadding.bottom != .xxSmall + ? controlPadding.bottom.rawValue - .xxSmall : Space.zero.rawValue ) .background(selectedIndex != index @@ -217,7 +217,7 @@ public struct SegmentedPickerSelector: V ) { dimensions in dimensions[HorizontalAlignment.center] } - .padding(.trailing, style.unseletionStyle == .surface ? Space.xSmall.rawValue : 0) + .padding(.trailing, style.unseletionStyle == .surface ? .xSmall : 0) } } } @@ -229,15 +229,15 @@ public struct SegmentedPickerSelector: V switch selectionStyle { case .shadowSurface: RoundedRectangle( - cornerRadius: style.isShowBackground ? controlRadius.rawValue - 4 : controlRadius.rawValue, + cornerRadius: style.isShowBackground ? controlRadius - 4 : controlRadius, style: .continuous ) .fill(Color.surfacePrimary) .overlay( RoundedRectangle( cornerRadius: style.isShowBackground - ? controlRadius.rawValue - 4 - : controlRadius.rawValue, + ? controlRadius - 4 + : controlRadius, style: .continuous ) .stroke( @@ -272,8 +272,8 @@ public struct SegmentedPickerSelector: V } else { RoundedRectangle( cornerRadius: style.isShowBackground - ? controlRadius.rawValue - 4 - : controlRadius.rawValue, + ? controlRadius - 4 + : controlRadius, style: .continuous ) .strokeBorder(Color.onSurfaceSecondary, lineWidth: 2) @@ -281,7 +281,7 @@ public struct SegmentedPickerSelector: V case .accentSurface: RoundedRectangle( - cornerRadius: style.isShowBackground ? controlRadius.rawValue - 4 : controlRadius.rawValue, + cornerRadius: style.isShowBackground ? controlRadius - 4 : controlRadius, style: .continuous ) .fill(Color.accent) diff --git a/Sources/OversizeUI/Controls/Select/MultiSelect.swift b/Sources/OversizeUI/Controls/Select/MultiSelect.swift index 5201834d..405f0516 100644 --- a/Sources/OversizeUI/Controls/Select/MultiSelect.swift +++ b/Sources/OversizeUI/Controls/Select/MultiSelect.swift @@ -69,13 +69,13 @@ public struct MultiSelect: View where Content: View, @@ -69,13 +69,13 @@ public struct Select: View where C: View, A: View { - private let image: Image? - private let title: String - private let subtitle: String? - private let closeAction: (() -> Void)? - private let actions: Group? - private let content: C? - - public init( - image: Image? = nil, - title: String, - subtitle: String? = nil, - closeAction: (() -> Void)? = nil, - @ViewBuilder actions: @escaping () -> A, - @ViewBuilder content: () -> C = { EmptyView() } - ) { - self.image = image - self.title = title - self.subtitle = subtitle - self.closeAction = closeAction - self.actions = Group { actions() } - self.content = content() - } - - public var body: some View { - #if os(macOS) - macOSContentView - #else - contenView - #endif - } - - private var contenView: some View { - GeometryReader { geometry in - VStack(alignment: .center, spacing: .large) { - Spacer() - displayImage - .frame(width: 128, height: 128, alignment: .bottom) - - TextBox( - title: title, - subtitle: subtitle, - spacing: .xxSmall - ) - .multilineTextAlignment(.center) - - if let content { - VStack { - content - - Spacer() - } - } - - if actions != nil { - VStack(spacing: .small) { - actions - #if !os(tvOS) - .controlSize(.large) - #endif - } - .padding(.top, .xxSmall) - } - } - .paddingContent() - .frame( - width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, - height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height - ) - } - } - - private var macOSContentView: some View { - GeometryReader { geometry in - HStack(spacing: .medium) { - VStack(alignment: .center, spacing: .large) { - Spacer() - - displayImage - .frame(width: 64, height: 64, alignment: .bottom) - - TextBox( - title: title, - subtitle: subtitle, - spacing: .xxSmall - ) - .multilineTextAlignment(.center) - - if actions != nil { - VStack(spacing: .small) { - actions - .controlSize(.large) - } - .frame(width: 200) - } - - Spacer() - } - .frame(maxWidth: .infinity, alignment: .center) - - if let content { - Surface { - content - } - .surfaceClip(true) - .surfaceStyle(.secondary) - .surfaceContentMargins(.zero) - } - } - .paddingContent() - .frame( - width: geometry.bounds(of: .scrollView)?.width ?? geometry.size.width, - height: geometry.bounds(of: .scrollView)?.height ?? geometry.size.height - ) - } - } - - private var displayImage: Image { - if let image { - image - .resizable() - } else { - Image.Illustration.Status.success - .resizable() - } - } -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("Basic Success") { - SuccessView( - title: "Success!", - subtitle: "Your operation completed successfully.", - actions: { - Button("Continue") {} - .buttonStyle(.primary(infinityWidth: true)) - .accent() - .elevation(.z2) - } - ) -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("Basic in ScrollView") { - ScrollView { - SuccessView( - title: "Success!", - subtitle: "Your operation completed successfully.", - actions: { - Button("Continue") {} - .buttonStyle(.primary) - } - ) - } -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("Custom Image with Multiple Actions") { - SuccessView( - image: Image(systemName: "checkmark.circle.fill"), - title: "Payment Complete", - subtitle: "Your payment has been processed successfully.", - actions: { - VStack(spacing: .small) { - Button("View Receipt") {} - .buttonStyle(.primary) - Button("Continue Shopping") {} - .buttonStyle(.secondary) - } - } - ) -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("With Content") { - SuccessView( - title: "Account Created", - subtitle: "Welcome to our platform!", - actions: { - Button("Get Started") {} - .buttonStyle(.primary) - }, - content: { - VStack(alignment: .leading, spacing: .medium) { - Text("Next Steps:") - .font(.headline) - VStack(alignment: .leading, spacing: .small) { - Label("Complete your profile", systemImage: "person.circle") - Label("Verify your email", systemImage: "envelope") - Label("Explore features", systemImage: "sparkles") - } - .font(.body) - } - .padding() - } - ) -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("With Close Action") { - SuccessView( - title: "File Uploaded", - subtitle: "Your document has been uploaded successfully.", - closeAction: { print("Close tapped") }, - actions: { - Button("View File") {} - .buttonStyle(.primary) - } - ) -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("Minimal") { - SuccessView( - title: "Done!", - actions: { - Button("OK") {} - .buttonStyle(.primary) - } - ) -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("No Actions with Stats") { - SuccessView( - title: "Backup Complete", - subtitle: "Your data has been safely backed up to the cloud.", - actions: { - EmptyView() - }, - content: { - VStack(spacing: .medium) { - HStack { - Text("Files backed up:") - Spacer() - Text("1,247") - .font(.headline) - } - HStack { - Text("Total size:") - Spacer() - Text("2.4 GB") - .font(.headline) - } - HStack { - Text("Last backup:") - Spacer() - Text("Just now") - .font(.headline) - } - } - .padding() - } - ) -} - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("Dark Mode") { - SuccessView( - title: "Settings Saved", - subtitle: "Your preferences have been updated.", - actions: { - Button("Done") {} - .buttonStyle(.primary) - } - ) - .preferredColorScheme(.dark) -} - -#if os(macOS) -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("macOS Layout") { - SuccessView( - title: "Export Complete", - subtitle: "Your project has been exported successfully.", - actions: { - HStack { - Button("Show in Finder") {} - .buttonStyle(.secondary) - Button("Share") {} - .buttonStyle(.primary) - } - }, - content: { - VStack(alignment: .leading, spacing: .medium) { - Text("Export Details") - .font(.headline) - - VStack(alignment: .leading, spacing: .small) { - HStack { - Text("Format:") - Spacer() - Text("PDF") - } - HStack { - Text("Pages:") - Spacer() - Text("24") - } - HStack { - Text("File size:") - Spacer() - Text("3.2 MB") - } - } - .font(.body) - } - .padding() - } - ) - .frame(width: 600, height: 400) -} -#endif - -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -#Preview("Long Title and Subtitle") { - SuccessView( - title: "Your Very Important Task Has Been Completed Successfully", - subtitle: "This is a longer subtitle text to demonstrate how the SuccessView handles multiple lines of text and proper text wrapping in different scenarios.", - actions: { - VStack(spacing: .small) { - Button("Primary Action") {} - .buttonStyle(.primary) - Button("Secondary Action") {} - .buttonStyle(.secondary) - Button("Tertiary Action") {} - .buttonStyle(.tertiary) - } - } - ) -} diff --git a/Sources/OversizeUI/Controls/Surface/MaterialSurface.swift b/Sources/OversizeUI/Controls/Surface/MaterialSurface.swift index bfccedb8..fd8c0f50 100644 --- a/Sources/OversizeUI/Controls/Surface/MaterialSurface.swift +++ b/Sources/OversizeUI/Controls/Surface/MaterialSurface.swift @@ -12,7 +12,7 @@ import SwiftUI public struct MaterialSurface: View { @Environment(\.elevation) private var elevation: Elevation @Environment(\.theme) private var theme: ThemeSettings - @Environment(\.controlRadius) var controlRadius: Radius + @Environment(\.controlRadius) var controlRadius @Environment(\.surfaceContentMargins) var controlPadding: EdgeSpaceInsets private let label: Label @@ -61,7 +61,7 @@ public struct MaterialSurface: View { @ViewBuilder private var overlayView: some View { - RoundedRectangle(cornerRadius: controlRadius.rawValue, style: .continuous) + RoundedRectangle(cornerRadius: controlRadius, style: .continuous) .stroke( border != nil ? border ?? Color.clear : theme.borderSurface diff --git a/Sources/OversizeUI/Controls/Surface/Surface.swift b/Sources/OversizeUI/Controls/Surface/Surface.swift index 5d74091f..94935adc 100644 --- a/Sources/OversizeUI/Controls/Surface/Surface.swift +++ b/Sources/OversizeUI/Controls/Surface/Surface.swift @@ -16,7 +16,7 @@ public enum SurfaceStyle { public struct Surface: View { @Environment(\.theme) private var theme: ThemeSettings @Environment(\.isAccent) private var isAccent: Bool - @Environment(\.surfaceRadius) var surfaceRadius: Radius + @Environment(\.surfaceRadius) var surfaceRadius @Environment(\.surfaceContentMargins) var contentInsets: EdgeSpaceInsets @Environment(\.surfaceElevation) private var elevation: Elevation @@ -240,7 +240,7 @@ public extension View { elevation: Elevation = .z0, background: SurfaceStyle = .primary, padding: Space = .medium, - radius: Radius = .medium + radius: Space = .xSmall ) -> some View { Surface { self } .surfaceStyle(background) diff --git a/Sources/OversizeUI/Controls/TextBox/TextBox.swift b/Sources/OversizeUI/Controls/TextBox/TextBox.swift index 9c9cb260..e37bd5aa 100644 --- a/Sources/OversizeUI/Controls/TextBox/TextBox.swift +++ b/Sources/OversizeUI/Controls/TextBox/TextBox.swift @@ -44,9 +44,9 @@ public struct TextBox: View { .multilineTextAlignment(multilineTextAlignment) } - private var textSpacing: Space { + private var textSpacing: CGFloat { if let spacing { - spacing + spacing.rawValue } else { switch size { case .small: diff --git a/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift b/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift index 36df9676..598b8d59 100644 --- a/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift +++ b/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift @@ -51,11 +51,11 @@ public struct TextEditorPlaceholderViewModifier: ViewModifier { } } - private var fieldRadius: Radius { + private var fieldRadius: CGFloat { #if os(macOS) - return .xSmall + return .xxxSmall #else - return .medium + return .xSmall #endif } @@ -65,32 +65,32 @@ public struct TextEditorPlaceholderViewModifier: ViewModifier { #if os(macOS) return .init( top: 10, - leading: Space.xSmall.rawValue, + leading: .xSmall, bottom: 10, - trailing: Space.xSmall.rawValue + trailing: .xSmall ) #else return .init( top: 10, - leading: Space.xSmall.rawValue, + leading: .xSmall, bottom: 10, - trailing: Space.xSmall.rawValue + trailing: .xSmall ) #endif case .overInput: #if os(macOS) return .init( top: text.isEmpty ? 13 : 22, - leading: Space.xxSmall.rawValue, + leading: .xxSmall, bottom: 10, - trailing: Space.xxSmall.rawValue + trailing: .xxSmall ) #else return .init( top: text.isEmpty ? 8 : 22, - leading: Space.xSmall.rawValue, + leading: .xSmall, bottom: 10, - trailing: Space.xSmall.rawValue + trailing: .xSmall ) #endif @@ -101,15 +101,15 @@ public struct TextEditorPlaceholderViewModifier: ViewModifier { switch fieldPlaceholderPosition { case .default, .adjacent: #if os(macOS) - return .init(Space.xSmall) + return .init(.xSmall) #else - return .init(Space.xSmall) + return .init(.xSmall) #endif case .overInput: #if os(macOS) return .init(horizontal: Space.xSmall, vertical: Space.xSmall) #else - return .init(Space.xxSmall) + return .init(.xxSmall) #endif } } diff --git a/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift b/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift index b68e0865..1b28f780 100644 --- a/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift +++ b/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift @@ -66,10 +66,10 @@ public struct LabeledTextFieldStyle: TextFieldStyle { return .init(.xSmall) #else return .init( - top: Space.xxxSmall.rawValue + Space.small.rawValue, - leading: Space.small.rawValue, - bottom: Space.xxxSmall.rawValue + Space.small.rawValue, - trailing: Space.small.rawValue + top: .xxxSmall + .small, + leading: .small, + bottom: .xxxSmall + .small, + trailing: .small ) #endif case .adjacent: @@ -120,11 +120,11 @@ public struct LabeledTextFieldStyle: TextFieldStyle { } } - private var fieldRadius: Radius { + private var fieldRadius: CGFloat { #if os(macOS) - return .small + return .xxSmall #else - return .medium + return .xSmall #endif } diff --git a/Sources/OversizeUI/Controls/TextField/TextFieldExtended.swift b/Sources/OversizeUI/Controls/TextField/TextFieldExtended.swift index 2602b778..a5bdaf7c 100644 --- a/Sources/OversizeUI/Controls/TextField/TextFieldExtended.swift +++ b/Sources/OversizeUI/Controls/TextField/TextFieldExtended.swift @@ -66,7 +66,7 @@ public struct TextFieldExtended: View { .foregroundColor(.onSurfacePrimary) Spacer() } - .padding(.bottom, Space.xxSmall) + .padding(.bottom, .xxSmall) } HStack { @@ -114,7 +114,7 @@ public struct TextFieldExtended: View { ).background(RoundedRectangle(cornerRadius: .medium, style: .continuous) .fill(focused ? Color.surfacePrimary : Color.surfaceSecondary)) - .cornerRadius(Radius.medium) + .cornerRadius(.xSmall) if helperText != "" { if helperStyle == .helperText { diff --git a/Sources/OversizeUI/Controls/Toast/Snackbar.swift b/Sources/OversizeUI/Controls/Toast/Snackbar.swift index d4df23c7..849a9816 100644 --- a/Sources/OversizeUI/Controls/Toast/Snackbar.swift +++ b/Sources/OversizeUI/Controls/Toast/Snackbar.swift @@ -60,7 +60,7 @@ public struct Snackbar: View where Label: View, Actions: View { .padding(.vertical, .xSmall) .background( RoundedRectangle( - cornerRadius: .large, + cornerRadius: .small, style: .continuous ) .fill(Color.primary) diff --git a/Sources/OversizeUI/Controls/Toggle/CheckboxStyle.swift b/Sources/OversizeUI/Controls/Toggle/CheckboxStyle.swift index 03c80414..c7c2557a 100644 --- a/Sources/OversizeUI/Controls/Toggle/CheckboxStyle.swift +++ b/Sources/OversizeUI/Controls/Toggle/CheckboxStyle.swift @@ -17,12 +17,12 @@ public struct CheckboxStyle: ToggleStyle { Spacer() ZStack { - RoundedRectangle(cornerRadius: Radius.small, style: .continuous) + RoundedRectangle(cornerRadius: .xxSmall, style: .continuous) .strokeBorder(Color.onSurfaceTertiary, lineWidth: 2.5) .frame(width: 24, height: 24) .opacity(configuration.isOn ? 0 : 1) - RoundedRectangle(cornerRadius: Radius.small, style: .continuous).fill(Color.accent) + RoundedRectangle(cornerRadius: .xxSmall, style: .continuous).fill(Color.accent) .frame(width: 24, height: 24) .opacity(configuration.isOn ? 1 : 0) @@ -32,8 +32,8 @@ public struct CheckboxStyle: ToggleStyle { .opacity(configuration.isOn ? 1 : 0) } } - .padding(.top, controlPadding.top.rawValue - Space.xxSmall.rawValue) - .padding(.bottom, controlPadding.bottom.rawValue - Space.xxSmall.rawValue) + .padding(.top, controlPadding.top.rawValue - .xxSmall) + .padding(.bottom, controlPadding.bottom.rawValue - .xxSmall) .padding(.leading, controlPadding.leading) .padding(.trailing, controlPadding.trailing) } diff --git a/Sources/OversizeUI/Controls/Toggle/RadioStyle.swift b/Sources/OversizeUI/Controls/Toggle/RadioStyle.swift index e602bb6d..f2a31607 100644 --- a/Sources/OversizeUI/Controls/Toggle/RadioStyle.swift +++ b/Sources/OversizeUI/Controls/Toggle/RadioStyle.swift @@ -33,8 +33,8 @@ public struct RadioStyle: ToggleStyle { .opacity(configuration.isOn ? 1 : 0) } } - .padding(.top, controlPadding.leading.rawValue - Space.xxSmall.rawValue) - .padding(.bottom, controlPadding.bottom.rawValue - Space.xxSmall.rawValue) + .padding(.top, controlPadding.leading.rawValue - .xxSmall) + .padding(.bottom, controlPadding.bottom.rawValue - .xxSmall) .padding(.leading, controlPadding.leading) .padding(.trailing, controlPadding.trailing) } diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift index f8c25b60..8ed8bc80 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift @@ -7,11 +7,11 @@ import SwiftUI public enum ControlBorderShape: Sendable { case capsule - case roundedRectangle(radius: Radius = .medium) + case roundedRectangle(radius: Space = .xSmall) } private struct ControlBorderShapeKey: EnvironmentKey { - public static let defaultValue: ControlBorderShape = .roundedRectangle(radius: .medium) + public static let defaultValue: ControlBorderShape = .roundedRectangle(radius: .xSmall) } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift index 37f15419..14b94432 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift @@ -6,18 +6,18 @@ import SwiftUI private struct ControlRadiusKey: EnvironmentKey { - public static let defaultValue: Radius = .medium + public static let defaultValue: CGFloat = .xSmall } public extension EnvironmentValues { - var controlRadius: Radius { + var controlRadius: CGFloat { get { self[ControlRadiusKey.self] } set { self[ControlRadiusKey.self] = newValue } } } public extension View { - func controlRadius(_ radius: Radius) -> some View { - environment(\.controlRadius, radius) + func controlRadius(_ radius: Space) -> some View { + environment(\.controlRadius, radius.rawValue) } } diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift index 3270e6b8..1129b279 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift @@ -6,18 +6,18 @@ import SwiftUI private struct SurfaceRadiusKey: EnvironmentKey { - public static let defaultValue: Radius = .medium + public static let defaultValue: CGFloat = .xSmall } public extension EnvironmentValues { - var surfaceRadius: Radius { + var surfaceRadius: CGFloat { get { self[SurfaceRadiusKey.self] } set { self[SurfaceRadiusKey.self] = newValue } } } public extension View { - func surfaceRadius(_ radius: Radius) -> some View { - environment(\.surfaceRadius, radius) + func surfaceRadius(_ radius: Space) -> some View { + environment(\.surfaceRadius, radius.rawValue) } } diff --git a/Sources/OversizeUI/Core/Icons.swift b/Sources/OversizeUI/Core/Icons.swift index 0082fd85..bad97d85 100644 --- a/Sources/OversizeUI/Core/Icons.swift +++ b/Sources/OversizeUI/Core/Icons.swift @@ -414,6 +414,7 @@ public extension SwiftUI.Image { public static let filter = Image("Base/Filter", bundle: .module) public enum Folder { + public static let mini = Image("Base/Folder/Mini", bundle: .module) public static let fill = Image("Base/Folder/Fill", bundle: .module) public enum TwoTone { public static let fill = Image("Base/Folder/TwoTone/Fill", bundle: .module) diff --git a/Sources/OversizeUI/Core/Radius.swift b/Sources/OversizeUI/Core/Radius.swift index df7ea164..5192f7c1 100644 --- a/Sources/OversizeUI/Core/Radius.swift +++ b/Sources/OversizeUI/Core/Radius.swift @@ -5,55 +5,38 @@ import SwiftUI -public enum Radius: Sendable { - private var theme: ThemeSettings { - ThemeSettings() - } - - /// 0 - case zero - /// 4 - case xSmall - /// 8 - case small - /// 12 - case medium - /// 16 - case large - /// 24 - case xLarge - - public var rawValue: CGFloat { - switch self { - case .zero: - .zero - case .xSmall: - CGFloat(theme.radius / 2) - case .small: - CGFloat(theme.radius) - case .medium: - theme.radius == .zero ?.zero : CGFloat(theme.radius) * 1.5 - case .large: - theme.radius == .zero ?.zero : CGFloat(theme.radius) * 2 - case .xLarge: - theme.radius == .zero ?.zero : CGFloat(theme.radius) * 3 - } - } -} - -public struct RadiusModifier: ViewModifier { - private let radius: Radius - public init(radius: Radius) { - self.radius = radius - } - - public func body(content: Content) -> some View { - content.cornerRadius(radius.rawValue) - } -} - -public extension View { - func cornerRadius(_ radius: Radius) -> some View { - modifier(RadiusModifier(radius: radius)) - } -} +// public enum Radius: Sendable { +// private var theme: ThemeSettings { +// ThemeSettings() +// } +// +// /// 0 +// case zero +// /// 4 +// case xSmall +// /// 8 +// case small +// /// 12 +// case medium +// /// 16 +// case large +// /// 24 +// case xLarge +// +// public var rawValue: CGFloat { +// switch self { +// case .zero: +// .zero +// case .xSmall: +// CGFloat(theme.radius / 2) +// case .small: +// CGFloat(theme.radius) +// case .medium: +// theme.radius == .zero ?.zero : CGFloat(theme.radius) * 1.5 +// case .large: +// theme.radius == .zero ?.zero : CGFloat(theme.radius) * 2 +// case .xLarge: +// theme.radius == .zero ?.zero : CGFloat(theme.radius) * 3 +// } +// } +// } diff --git a/Sources/OversizeUI/Core/Space.swift b/Sources/OversizeUI/Core/Space.swift index 550f79a6..76e2750f 100644 --- a/Sources/OversizeUI/Core/Space.swift +++ b/Sources/OversizeUI/Core/Space.swift @@ -21,6 +21,9 @@ public enum Space: CGFloat, Sendable { /// 16 case small = 16 + /// 20 + case regular = 20 + #if os(macOS) /// 20 case medium = 20 @@ -41,3 +44,28 @@ public enum Space: CGFloat, Sendable { /// 96 case xxxLarge = 96 } + +public extension CGFloat { + /// 0 spacing. + static let zero = Space.zero.rawValue + /// 4 spacing. + static let xxxSmall = Space.xxxSmall.rawValue + /// 8 spacing. + static let xxSmall = Space.xxSmall.rawValue + /// 12 spacing. + static let xSmall = Space.xSmall.rawValue + /// 16 spacing. + static let small = Space.small.rawValue + /// 20 spacing. + static let regular = Space.regular.rawValue + /// 24 spacing (platform dependent). + static let medium = Space.medium.rawValue + /// 32 spacing. + static let large = Space.large.rawValue + /// 48 spacing. + static let xLarge = Space.xLarge.rawValue + /// 72 spacing. + static let xxLarge = Space.xxLarge.rawValue + /// 96 spacing. + static let xxxLarge = Space.xxxLarge.rawValue +} diff --git a/Sources/OversizeUI/Deprecated/ContentViewDeprecated.swift b/Sources/OversizeUI/Deprecated/ContentViewDeprecated.swift new file mode 100644 index 00000000..b5a069c8 --- /dev/null +++ b/Sources/OversizeUI/Deprecated/ContentViewDeprecated.swift @@ -0,0 +1,236 @@ +// +// Copyright © 2021 Alexander Romanov +// ContentView.swift, created on 02.04.2022 +// + +import SwiftUI + +public enum ContenButtonType { + case close + case closeAction(action: () -> Void) + case back + case backAction(action: () -> Void) + case accent(_ text: String, action: () -> Void) + case primary(_ text: String, action: () -> Void) + case secondary(_ text: String, action: () -> Void) + case disabled(_ text: String) +} + +public struct ContentViewDeprecated: View { + @Environment(\.multilineTextAlignment) var multilineTextAlignment + @Environment(\.dismiss) var dismiss + + private let image: Image? + private let title: String + private let subtitle: String? + + private let primaryButton: ContenButtonType? + private let secondaryButton: ContenButtonType? + + public init( + image: Image? = nil, + title: String, + subtitle: String? = nil, + primaryButton: ContenButtonType? = nil, + secondaryButton: ContenButtonType? = nil + ) { + self.image = image + self.title = title + self.subtitle = subtitle + + self.primaryButton = primaryButton + self.secondaryButton = secondaryButton + } + + public var body: some View { + VStack(alignment: vStackAlignment, spacing: .large) { + if let image { + image + .resizable() + .frame(width: 128, height: 128, alignment: .bottom) + } + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + + primaryButtonView() + + secondaryButtonView() + } + } + + var vStackAlignment: HorizontalAlignment { + switch multilineTextAlignment { + case .leading: + .leading + case .center: + .center + case .trailing: + .trailing + } + } + + @ViewBuilder + private func primaryButtonView() -> some View { + switch primaryButton { + case .close: + Button(action: { dismiss() }) { + IconDeprecated(.xMini) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + #if os(macOS) + .controlSize(.large) + #endif + case .back: + Button(action: { dismiss() }) { + IconDeprecated(.arrowLeft) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + #if os(macOS) + .controlSize(.large) + #endif + case let .secondary(text, action: action): + Button(action: action) { + Text(text) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + #if os(macOS) + .controlSize(.large) + #endif + case let .accent(text, action: action): + Button(action: action) { + Text(text) + } + #if os(iOS) + .buttonStyle(.primary) + .accent() + #endif + #if os(macOS) + .controlSize(.large) + .buttonStyle(.borderedProminent) + .keyboardShortcut(.defaultAction) + #endif + case let .primary(text, action: action): + Button(action: action) { + Text(text) + } + #if os(iOS) + .buttonStyle(.primary) + #endif + #if os(macOS) + .controlSize(.large) + .buttonStyle(.borderedProminent) + .keyboardShortcut(.defaultAction) + #endif + case let .closeAction(action: action): + Button(action: action) { + IconDeprecated(.xMini) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + #if os(macOS) + .controlSize(.large) + #endif + case let .backAction(action: action): + Button(action: action) { + IconDeprecated(.arrowLeft) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + #if os(macOS) + .controlSize(.large) + #endif + case let .disabled(text): + Button(action: {}) { + Text(text) + } + #if os(iOS) + .buttonStyle(.quaternary) + .disabled(true) + #endif + #if os(macOS) + .controlSize(.large) + #endif + case .none: + EmptyView() + } + } + + @ViewBuilder + private func secondaryButtonView() -> some View { + switch secondaryButton { + case .close: + Button(action: { dismiss() }) { + IconDeprecated(.xMini) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + case .back: + Button(action: { dismiss() }) { + IconDeprecated(.arrowLeft) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + case let .secondary(text, action: action): + Button(action: action) { + Text(text) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + case let .accent(text, action: action): + Button(action: action) { + Text(text) + } + #if os(iOS) + .buttonStyle(.primary) + .accent() + #endif + case let .primary(text, action: action): + Button(action: action) { + Text(text) + } + #if os(iOS) + .buttonStyle(.primary) + .accent() + #endif + case let .closeAction(action: action): + Button(action: action) { + IconDeprecated(.xMini) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + case let .backAction(action: action): + Button(action: action) { + IconDeprecated(.arrowLeft) + } + #if os(iOS) + .buttonStyle(.secondary) + #endif + case let .disabled(text): + Button(action: {}) { + Text(text) + } + #if os(iOS) + .buttonStyle(.tertiary) + #endif + .disabled(true) + case .none: + EmptyView() + } + } +} diff --git a/Sources/OversizeUI/Deprecated/Icon.swift b/Sources/OversizeUI/Deprecated/Icon.swift index 361d4d82..a527053b 100644 --- a/Sources/OversizeUI/Deprecated/Icon.swift +++ b/Sources/OversizeUI/Deprecated/Icon.swift @@ -15,19 +15,19 @@ public enum IconSizes: CaseIterable { public var rawValue: CGFloat { switch self { case .xSmall: - Space.xSmall.rawValue + .xSmall case .small: - Space.small.rawValue + .small case .medium: #if os(macOS) 20 #else - Space.medium.rawValue + .medium #endif case .large: - Space.large.rawValue + .large case .xLarge: - Space.xLarge.rawValue + .xLarge } } } @@ -35,11 +35,11 @@ public enum IconSizes: CaseIterable { public struct IconDeprecated: View { private enum Constants: Sendable { /// Size - static let xSmall: CGFloat = Space.xSmall.rawValue - static let small: CGFloat = Space.small.rawValue - static let medium: CGFloat = Space.medium.rawValue - static let large: CGFloat = Space.large.rawValue - static let xLarge: CGFloat = Space.xLarge.rawValue + static let xSmall: CGFloat = xSmall + static let small: CGFloat = .small + static let medium: CGFloat = .medium + static let large: CGFloat = .large + static let xLarge: CGFloat = .xLarge } let name: IconsNames? diff --git a/Sources/OversizeUI/Extensions/Padding/Padding.swift b/Sources/OversizeUI/Extensions/Padding/Padding.swift index 292b421b..caffba92 100644 --- a/Sources/OversizeUI/Extensions/Padding/Padding.swift +++ b/Sources/OversizeUI/Extensions/Padding/Padding.swift @@ -46,7 +46,7 @@ public struct ContentPaddingModifier: ViewModifier { edges, horizontalSizeClass == .compact ? length.rawValue - : length.rawValue + Space.large.rawValue + : length.rawValue + .large ) } #else diff --git a/Sources/OversizeUI/Extensions/Spacing/Spacing.swift b/Sources/OversizeUI/Extensions/Spacing/Spacing.swift index 56536388..a0d1c51a 100644 --- a/Sources/OversizeUI/Extensions/Spacing/Spacing.swift +++ b/Sources/OversizeUI/Extensions/Spacing/Spacing.swift @@ -6,68 +6,68 @@ import SwiftUI // swiftlint:disable line_length -public extension HStack { - @inlinable nonisolated init(alignment: VerticalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { - self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) - } -} - -public extension VStack { - @inlinable nonisolated init(alignment: HorizontalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { - self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) - } -} - -public extension LazyHStack { - @inlinable nonisolated init(alignment: VerticalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { - self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) - } -} - -public extension LazyVStack { - @inlinable nonisolated init(alignment: HorizontalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { - self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) - } -} - -public extension LazyVGrid { - @inlinable nonisolated init(columns: [GridItem], alignment: HorizontalAlignment = .center, spacing: Space, pinnedViews: PinnedScrollableViews = .init(), @ViewBuilder content: () -> Content) { - self = .init(columns: columns, alignment: alignment, spacing: spacing.rawValue, pinnedViews: pinnedViews, content: content) - } -} - -public extension Spacer { - @MainActor @inlinable @preconcurrency init(minLength: Space) { - self = .init(minLength: minLength.rawValue) - } -} - -public extension GridItem { - @inlinable nonisolated init(_ size: GridItem.Size = .flexible(), spacing: Space, alignment: Alignment? = nil) { - self = .init(size, spacing: spacing.rawValue, alignment: alignment) - } -} - -public extension RoundedRectangle { - @inlinable nonisolated init(cornerRadius: Radius, style: RoundedCornerStyle = .circular) { - self = .init(cornerRadius: cornerRadius.rawValue, style: style) - } -} - -public extension EdgeInsets { - init(top: Space, leading: Space, bottom: Space, trailing: Space) { - self = .init(top: top.rawValue, leading: leading.rawValue, bottom: bottom.rawValue, trailing: trailing.rawValue) - } -} - +// public extension HStack { +// @inlinable nonisolated init(alignment: VerticalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { +// self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) +// } +// } +// +// public extension VStack { +// @inlinable nonisolated init(alignment: HorizontalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { +// self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) +// } +// } +// +// public extension LazyHStack { +// @inlinable nonisolated init(alignment: VerticalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { +// self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) +// } +// } +// +// public extension LazyVStack { +// @inlinable nonisolated init(alignment: HorizontalAlignment = .center, spacing: Space, @ViewBuilder content: () -> Content) { +// self = .init(alignment: alignment, spacing: spacing.rawValue, content: content) +// } +// } +// +// public extension LazyVGrid { +// @inlinable nonisolated init(columns: [GridItem], alignment: HorizontalAlignment = .center, spacing: Space, pinnedViews: PinnedScrollableViews = .init(), @ViewBuilder content: () -> Content) { +// self = .init(columns: columns, alignment: alignment, spacing: spacing.rawValue, pinnedViews: pinnedViews, content: content) +// } +// } +// +// public extension Spacer { +// @MainActor @inlinable @preconcurrency init(minLength: Space) { +// self = .init(minLength: minLength.rawValue) +// } +// } +// +// public extension GridItem { +// @inlinable nonisolated init(_ size: GridItem.Size = .flexible(), spacing: Space, alignment: Alignment? = nil) { +// self = .init(size, spacing: spacing.rawValue, alignment: alignment) +// } +// } +// +// public extension RoundedRectangle { +// @inlinable nonisolated init(cornerRadius: Radius, style: RoundedCornerStyle = .circular) { +// self = .init(cornerRadius: cornerRadius.rawValue, style: style) +// } +// } +// +// public extension EdgeInsets { +// init(top: Space, leading: Space, bottom: Space, trailing: Space) { +// self = .init(top: top.rawValue, leading: leading.rawValue, bottom: bottom.rawValue, trailing: trailing.rawValue) +// } +// } +// public extension EdgeInsets { - init(_ all: Space) { - self = .init(top: all.rawValue, leading: all.rawValue, bottom: all.rawValue, trailing: all.rawValue) + init(_ all: CGFloat) { + self = .init(top: all, leading: all, bottom: all, trailing: all) } } public extension EdgeInsets { - init(horizontal: Space, vertical: Space) { - self = .init(top: vertical.rawValue, leading: horizontal.rawValue, bottom: vertical.rawValue, trailing: horizontal.rawValue) + init(horizontal: CGFloat, vertical: CGFloat) { + self = .init(top: vertical, leading: horizontal, bottom: vertical, trailing: horizontal) } } diff --git a/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift b/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift index f2b6b523..935d4caf 100644 --- a/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift +++ b/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift @@ -19,7 +19,7 @@ public extension CoverLayoutView { return control } - func contentCornerRadius(_ radius: Radius) -> Self { + func contentCornerRadius(_ radius: Space) -> Self { var control = self control.contentCornerRadius = radius.rawValue return control diff --git a/Sources/OversizeUI/Resources/Colors.xcassets/Primary.colorset/Contents.json b/Sources/OversizeUI/Resources/Colors.xcassets/Primary.colorset/Contents.json index e18f0e71..08a7447b 100644 --- a/Sources/OversizeUI/Resources/Colors.xcassets/Primary.colorset/Contents.json +++ b/Sources/OversizeUI/Resources/Colors.xcassets/Primary.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0.961", - "green" : "0.537", - "red" : "0.173" + "blue" : "0xFF", + "green" : "0x98", + "red" : "0x3A" } }, "idiom" : "universal" diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json new file mode 100644 index 00000000..31405969 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Mini.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Mini.svg b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Mini.svg new file mode 100644 index 00000000..d8f09f93 --- /dev/null +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Mini.svg @@ -0,0 +1,4 @@ + + + + diff --git a/Sources/OversizeUI/Shapes/RoundedRectangleCorner.swift b/Sources/OversizeUI/Shapes/RoundedRectangleCorner.swift index fd3b770a..ee9af532 100644 --- a/Sources/OversizeUI/Shapes/RoundedRectangleCorner.swift +++ b/Sources/OversizeUI/Shapes/RoundedRectangleCorner.swift @@ -22,10 +22,6 @@ public struct RoundedRectangleCorner: Shape { self.corners = corners } - public init(radius: Radius, corners: UIRectCorner) { - self.radius = radius.rawValue - self.corners = corners - } #else public init(radius: CGFloat, corners: RectCorner) { self.radius = radius diff --git a/Sources/OversizeUI/Status/BlankView/BlankView.swift b/Sources/OversizeUI/Status/BlankView/BlankView.swift new file mode 100644 index 00000000..6ca7eb0e --- /dev/null +++ b/Sources/OversizeUI/Status/BlankView/BlankView.swift @@ -0,0 +1,87 @@ +// +// Copyright © 2024 Alexander Romanov +// BlankView.swift, created on 15.11.2024 +// + +import SwiftUI + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public struct BlankView: View where Actions: View { + private let image: Image? + private let title: String + private let subtitle: String? + @ViewBuilder private let actions: Actions + + public init( + image: Image? = nil, + title: String, + subtitle: String? = nil, + @ContentViewActionsBuilder actions: () -> Actions = { EmptyView() } + ) { + self.image = image + self.title = title + self.subtitle = subtitle + self.actions = actions() + } + + public var body: some View { + #if os(macOS) + macOSContentView + #else + contenView + #endif + } + + private var contenView: some View { + VStack(alignment: .center, spacing: .large) { + if let image { + image + .frame(width: 128, height: 128, alignment: .bottom) + } + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + actions + #if !os(tvOS) + .controlSize(.large) + #endif + } + .paddingContent() + .containerRelativeFrame([.horizontal, .vertical]) + } + + private var macOSContentView: some View { + HStack(spacing: .medium) { + VStack(alignment: .center, spacing: .large) { + Spacer() + + if let image { + image + .resizable() + .frame(width: 64, height: 64, alignment: .bottom) + } + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + actions + + .frame(width: 200) + + Spacer() + } + .frame(maxWidth: .infinity, alignment: .center) + } + .paddingContent() + .containerRelativeFrame([.horizontal, .vertical]) + } +} diff --git a/Sources/OversizeUI/Status/ErrorView/ErrorView.swift b/Sources/OversizeUI/Status/ErrorView/ErrorView.swift new file mode 100644 index 00000000..b3c168a3 --- /dev/null +++ b/Sources/OversizeUI/Status/ErrorView/ErrorView.swift @@ -0,0 +1,98 @@ +// +// Copyright © 2024 Alexander Romanov +// ErrorView.swift, created on 15.11.2024 +// + +import SwiftUI + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public struct ErrorView: View { + private let error: Error + private let recoveryHandler: ((Int) -> Void)? + private var image: Image? + + public init( + error: Error, + recoveryHandler: ((Int) -> Void)? = nil + ) { + self.error = error + self.recoveryHandler = recoveryHandler + } + + public var body: some View { + #if os(macOS) + macOSContentView + #else + contenView + #endif + } + + private var title: String { + if let localizedError = error as? LocalizedError { + return localizedError.errorDescription ?? "Error" + } + return error.localizedDescription + } + + private var subtitle: String { + if let localizedError = error as? LocalizedError { + return [ + localizedError.failureReason, + localizedError.recoverySuggestion, + ].compactMap { $0 }.joined(separator: "\n") + } + return "" + } + + private var contenView: some View { + VStack(alignment: .center, spacing: .large) { + Spacer() + displayImage + .frame(width: 128, height: 128, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + Spacer() + } + .paddingContent() + .containerRelativeFrame([.horizontal, .vertical]) + } + + private var macOSContentView: some View { + HStack(spacing: .medium) { + VStack(alignment: .center, spacing: .large) { + Spacer() + + displayImage + .frame(width: 64, height: 64, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + Spacer() + } + .frame(maxWidth: .infinity, alignment: .center) + } + .paddingContent() + .containerRelativeFrame([.horizontal, .vertical]) + } + + private var displayImage: Image { + if let image { + image + .resizable() + } else { + Image.Illustration.Status.error + .resizable() + } + } +} diff --git a/Sources/OversizeUI/Status/SuccessView/SuccessView.swift b/Sources/OversizeUI/Status/SuccessView/SuccessView.swift new file mode 100644 index 00000000..ccc9eb9b --- /dev/null +++ b/Sources/OversizeUI/Status/SuccessView/SuccessView.swift @@ -0,0 +1,159 @@ +// +// Copyright © 2024 Alexander Romanov +// SuccessView.swift, created on 15.11.2024 +// + +import SwiftUI + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public struct SuccessView: View where C: View, A: View { + private let image: Image? + private let title: String + private let subtitle: String? + private let actions: Group? + private let content: C? + + public init( + image: Image? = nil, + title: String, + subtitle: String? = nil, + @ViewBuilder actions: @escaping () -> A, + @ViewBuilder content: () -> C = { EmptyView() } + ) { + self.image = image + self.title = title + self.subtitle = subtitle + self.actions = Group { actions() } + self.content = content() + } + + public var body: some View { + #if os(macOS) + macOSContentView + #else + contenView + #endif + } + + private var contenView: some View { + VStack(alignment: .center, spacing: .large) { + Spacer() + displayImage + .frame(width: 128, height: 128, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + if let content { + content + } + + if actions != nil { + VStack(spacing: .small) { + actions + #if !os(tvOS) + .controlSize(.large) + #endif + } + .padding(.top, .xxSmall) + } + + Spacer() + } + .paddingContent() + .containerRelativeFrame([.horizontal, .vertical]) + } + + private var macOSContentView: some View { + HStack(spacing: .medium) { + VStack(alignment: .center, spacing: .large) { + Spacer() + + displayImage + .frame(width: 64, height: 64, alignment: .bottom) + + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + if actions != nil { + VStack(spacing: .small) { + actions + .controlSize(.large) + } + .frame(width: 200) + } + + Spacer() + } + .frame(maxWidth: .infinity, alignment: .center) + + if let content { + Surface { + content + } + .surfaceClip(true) + .surfaceStyle(.secondary) + .surfaceContentMargins(.zero) + } + } + .paddingContent() + .containerRelativeFrame([.horizontal, .vertical]) + } + + private var displayImage: Image { + if let image { + image + .resizable() + } else { + Image.Illustration.Status.success + .resizable() + } + } +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Basic Success") { + SuccessView( + title: "Success!", + subtitle: "Your operation completed successfully.", + actions: { + Button("Continue") {} + .buttonStyle(.primary(infinityWidth: true)) + .accent() + .elevation(.z2) + } + ) +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +#Preview("Success with Content") { + SuccessView( + title: "Account Created", + subtitle: "Welcome to our platform!", + actions: { + Button("Get Started") {} + .buttonStyle(.primary) + }, + content: { + VStack(alignment: .leading, spacing: .medium) { + Text("Next Steps:") + .font(.headline) + VStack(alignment: .leading, spacing: .small) { + Label("Complete your profile", systemImage: "person.circle") + Label("Verify your email", systemImage: "envelope") + Label("Explore features", systemImage: "sparkles") + } + .font(.body) + } + .padding() + } + ) +} From 2d1264a0f100ad332dc329e9132eeeb827f53c14 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Fri, 8 Aug 2025 22:19:29 +0300 Subject: [PATCH 03/19] Update images --- .../Icons.xcassets/Base/Activity.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Activity/Fill.imageset/Contents.json | 3 ++- .../Base/Activity/TwoTone.imageset/Contents.json | 3 ++- .../Base/Activity/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/AddUser.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/AddUser/Fill.imageset/Contents.json | 3 ++- .../Base/AddUser/TwoTone.imageset/Contents.json | 3 ++- .../Base/AddUser/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowDown.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowDown/Fill.imageset/Contents.json | 3 ++- .../Base/ArrowDown/Square.imageset/Contents.json | 3 ++- .../Base/ArrowDown/TwoTone.imageset/Contents.json | 3 ++- .../Base/ArrowDown/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowLeft.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowLeft/Fill.imageset/Contents.json | 3 ++- .../Base/ArrowLeft/Square.imageset/Contents.json | 3 ++- .../Base/ArrowLeft/TwoTone.imageset/Contents.json | 3 ++- .../Base/ArrowLeft/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowRight.imageset/Contents.json | 3 ++- .../Base/ArrowRight/Fill.imageset/Contents.json | 3 ++- .../Base/ArrowRight/Square.imageset/Contents.json | 3 ++- .../Base/ArrowRight/TwoTone.imageset/Contents.json | 3 ++- .../Base/ArrowRight/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowUp.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowUp/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ArrowUp/Square.imageset/Contents.json | 3 ++- .../Base/ArrowUp/TwoTone.imageset/Contents.json | 3 ++- .../Base/ArrowUp/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Attach.imageset/Contents.json | 4 ++++ .../Resources/Icons.xcassets/Base/Bag.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Bag/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Bag/TwoTone.imageset/Contents.json | 3 ++- .../Base/Bag/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Bag2.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Bag2/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Bag2/TwoTone.imageset/Contents.json | 3 ++- .../Base/Bag2/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Bookmark.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Bookmark/Fill.imageset/Contents.json | 3 ++- .../Base/Bookmark/TwoTone.imageset/Contents.json | 3 ++- .../Base/Bookmark/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Buy.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Buy/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Buy/TwoTone.imageset/Contents.json | 3 ++- .../Base/Buy/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Calendar.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Calendar/Fill.imageset/Contents.json | 3 ++- .../Base/Calendar/TwoTone.imageset/Contents.json | 3 ++- .../Base/Calendar/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/CallMissed.imageset/Contents.json | 3 ++- .../Base/CallMissed/Fill.imageset/Contents.json | 3 ++- .../Base/CallMissed/TwoTone.imageset/Contents.json | 3 ++- .../Base/CallMissed/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Calling.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Calling/Fill.imageset/Contents.json | 3 ++- .../Base/Calling/TwoTone.imageset/Contents.json | 3 ++- .../Base/Calling/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Camera.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Camera/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Camera/TwoTone.imageset/Contents.json | 3 ++- .../Base/Camera/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Category.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Category/Fill.imageset/Contents.json | 3 ++- .../Base/Category/TwoTone.imageset/Contents.json | 3 ++- .../Base/Category/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Chart.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Chart/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Chart/TwoTone.imageset/Contents.json | 3 ++- .../Base/Chart/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Chat.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Chat/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Chat/TwoTone.imageset/Contents.json | 3 ++- .../Base/Chat/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Check/Circle.imageset/Contents.json | 3 ++- .../Base/Check/Circle/Fill.imageset/Contents.json | 3 ++- .../Base/Check/Circle/TwoTone.imageset/Contents.json | 3 ++- .../Base/Check/Circle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Check/Mini.imageset/Contents.json | 4 ++++ .../Icons.xcassets/Base/Check/Square.imageset/Contents.json | 3 ++- .../Base/Check/Square/Fill.imageset/Contents.json | 3 ++- .../Base/Check/Square/TwoTone.imageset/Contents.json | 3 ++- .../Base/Check/Square/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ChevronDown.imageset/Contents.json | 3 ++- .../Base/ChevronDown/Circle.imageset/Contents.json | 3 ++- .../Base/ChevronDown/Circle/Fill.imageset/Contents.json | 3 ++- .../Base/ChevronDown/Circle/TwoTone.imageset/Contents.json | 3 ++- .../ChevronDown/Circle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ChevronLeft.imageset/Contents.json | 3 ++- .../Base/ChevronLeft/Circle.imageset/Contents.json | 3 ++- .../Base/ChevronLeft/Circle/Fill.imageset/Contents.json | 3 ++- .../Base/ChevronLeft/Circle/TwoTone.imageset/Contents.json | 3 ++- .../ChevronLeft/Circle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ChevronRight.imageset/Contents.json | 3 ++- .../Base/ChevronRight/Circle.imageset/Contents.json | 3 ++- .../Base/ChevronRight/Circle/Fill.imageset/Contents.json | 3 ++- .../Base/ChevronRight/Circle/TwoTone.imageset/Contents.json | 3 ++- .../ChevronRight/Circle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ChevronUp.imageset/Contents.json | 3 ++- .../Base/ChevronUp/Circle.imageset/Contents.json | 3 ++- .../Base/ChevronUp/Circle/Fill.imageset/Contents.json | 3 ++- .../Base/ChevronUp/Circle/TwoTone.imageset/Contents.json | 3 ++- .../Base/ChevronUp/Circle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Clear.imageset/Contents.json | 1 + .../Icons.xcassets/Base/Clock.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Clock/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Clock/Square.imageset/Contents.json | 3 ++- .../Base/Clock/Square/Fill.imageset/Contents.json | 3 ++- .../Base/Clock/Square/TwoTone.imageset/Contents.json | 3 ++- .../Base/Clock/Square/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Clock/TwoTone.imageset/Contents.json | 3 ++- .../Base/Clock/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Close/Mini.imageset/Contents.json | 1 + .../Icons.xcassets/Base/Close/Square.imageset/Contents.json | 3 ++- .../Base/Close/Square/Fill.imageset/Contents.json | 3 ++- .../Base/Close/Square/TwoTone.imageset/Contents.json | 3 ++- .../Base/Close/Square/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Delete.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Delete/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Delete/TwoTone.imageset/Contents.json | 3 ++- .../Base/Delete/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Discovery.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Discovery/Fill.imageset/Contents.json | 3 ++- .../Base/Discovery/TwoTone.imageset/Contents.json | 3 ++- .../Base/Discovery/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Document.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Document/Fill.imageset/Contents.json | 3 ++- .../Base/Document/TwoTone.imageset/Contents.json | 3 ++- .../Base/Document/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Download.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Download/Fill.imageset/Contents.json | 3 ++- .../Base/Download/TwoTone.imageset/Contents.json | 3 ++- .../Base/Download/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Edit.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Edit/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Edit/Square.imageset/Contents.json | 3 ++- .../Base/Edit/Square/Fill.imageset/Contents.json | 3 ++- .../Base/Edit/Square/TwoTone.imageset/Contents.json | 3 ++- .../Base/Edit/Square/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Edit/TwoTone.imageset/Contents.json | 3 ++- .../Base/Edit/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Base/Exclamationmark.imageset/Contents.json | 3 ++- .../Base/Exclamationmark/Circle.imageset/Contents.json | 3 ++- .../Base/Exclamationmark/Circle/Fill.imageset/Contents.json | 3 ++- .../Exclamationmark/Circle/TwoTone.imageset/Contents.json | 3 ++- .../Circle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Base/Exclamationmark/Triangle.imageset/Contents.json | 3 ++- .../Base/Exclamationmark/Triangle/Fill.imageset/Contents.json | 3 ++- .../Exclamationmark/Triangle/TwoTone.imageset/Contents.json | 3 ++- .../Triangle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Eye.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Eye/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Eye/Slash.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Eye/Slash/Fill.imageset/Contents.json | 3 ++- .../Base/Eye/Slash/TwoTone.imageset/Contents.json | 3 ++- .../Base/Eye/Slash/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Eye/TwoTone.imageset/Contents.json | 3 ++- .../Base/Eye/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Filter.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Filter/Fill.imageset/Contents.json | 3 ++- .../Base/Filter/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Folder.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Folder/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Folder/Mini.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Folder/TwoTone.imageset/Contents.json | 3 ++- .../Base/Folder/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Game.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Game/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Game/TwoTone.imageset/Contents.json | 3 ++- .../Base/Game/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Graph.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Graph/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Graph/TwoTone.imageset/Contents.json | 3 ++- .../Base/Graph/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Heart.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Heart/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Heart/TwoTone.imageset/Contents.json | 3 ++- .../Base/Heart/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Home.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Home/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Info.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Info/Circle.imageset/Contents.json | 3 ++- .../Base/Info/Circle/Fill.imageset/Contents.json | 3 ++- .../Base/Info/Circle/TwoTone.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Info/Square.imageset/Contents.json | 3 ++- .../Base/Info/Square/Dash.imageset/Contents.json | 4 ++++ .../Base/Info/Square/TwoTone.imageset/Contents.json | 3 ++- .../Base/Info/Square/TwoTone/Dash.imageset/Contents.json | 3 ++- .../Base/Info/Square/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Link.imageset/Contents.json | 4 ++++ .../Icons.xcassets/Base/Location.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Location/Fill.imageset/Contents.json | 3 ++- .../Base/Location/TwoTone.imageset/Contents.json | 3 ++- .../Base/Location/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Lock.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Lock/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Lock/TwoTone.imageset/Contents.json | 3 ++- .../Base/Lock/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Login.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Login/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Login/TwoTone.imageset/Contents.json | 3 ++- .../Base/Login/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Logout.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Logout/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Logout/TwoTone.imageset/Contents.json | 3 ++- .../Base/Logout/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Message.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Message/Fill.imageset/Contents.json | 3 ++- .../Base/Message/TwoTone.imageset/Contents.json | 3 ++- .../Base/Message/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/More.imageset/Contents.json | 1 + .../Icons.xcassets/Base/More/Circle.imageset/Contents.json | 3 ++- .../Base/More/Circle/Fill.imageset/Contents.json | 3 ++- .../Base/More/Circle/TwoTone.imageset/Contents.json | 3 ++- .../Base/More/Circle/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/More/Square.imageset/Contents.json | 3 ++- .../Base/More/Square/Fill.imageset/Contents.json | 4 ++++ .../Base/More/Square/TwoTone.imageset/Contents.json | 3 ++- .../Base/More/Square/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/More/Vertical.imageset/Contents.json | 1 + .../Icons.xcassets/Base/NearMe.imageset/Contents.json | 1 + .../Icons.xcassets/Base/Notification.imageset/Contents.json | 3 ++- .../Base/Notification/Fill.imageset/Contents.json | 3 ++- .../Base/Notification/TwoTone.imageset/Contents.json | 3 ++- .../Base/Notification/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Paper.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Paper/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Paper/TwoTone.imageset/Contents.json | 3 ++- .../Base/Paper/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/PaperDownload.imageset/Contents.json | 3 ++- .../Base/PaperDownload/Fill.imageset/Contents.json | 3 ++- .../Base/PaperDownload/TwoTone.imageset/Contents.json | 3 ++- .../Base/PaperDownload/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/PaperFail.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/PaperFail/Fill.imageset/Contents.json | 3 ++- .../Base/PaperFail/TwoTone.imageset/Contents.json | 3 ++- .../Base/PaperFail/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/PaperNegative.imageset/Contents.json | 3 ++- .../Base/PaperNegative/Fill.imageset/Contents.json | 3 ++- .../Base/PaperNegative/TwoTone.imageset/Contents.json | 3 ++- .../Base/PaperNegative/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/PaperPlus.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/PaperPlus/Fill.imageset/Contents.json | 3 ++- .../Base/PaperPlus/TwoTone.imageset/Contents.json | 3 ++- .../Base/PaperPlus/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/PaperUpload.imageset/Contents.json | 3 ++- .../Base/PaperUpload/Fill.imageset/Contents.json | 3 ++- .../Base/PaperUpload/TwoTone.imageset/Contents.json | 3 ++- .../Base/PaperUpload/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Password.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Password/Fill.imageset/Contents.json | 3 ++- .../Base/Password/TwoTone.imageset/Contents.json | 3 ++- .../Base/Password/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Phone.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Phone/Fill.imageset/Contents.json | 3 ++- .../Base/Phone/Slach/Fill.imageset/Contents.json | 3 ++- .../Base/Phone/Slach/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Phone/Slash.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Picture.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Picture/Fill.imageset/Contents.json | 3 ++- .../Base/Picture/TwoTone.imageset/Contents.json | 3 ++- .../Base/Picture/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Picture2.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Picture2/Fill.imageset/Contents.json | 3 ++- .../Base/Picture2/TwoTone.imageset/Contents.json | 3 ++- .../Base/Picture2/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Play.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Play/Fill.imageset/Contents.json | 3 ++- .../Base/Play/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Plus.imageset/Contents.json | 1 + .../Icons.xcassets/Base/Plus/Mini.imageset/Contents.json | 4 ++++ .../Icons.xcassets/Base/Plus/Square.imageset/Contents.json | 3 ++- .../Base/Plus/Square/Fill.imageset/Contents.json | 3 ++- .../Base/Plus/Square/TwoTone.imageset/Contents.json | 3 ++- .../Base/Plus/Square/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Profile.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Profile/Fill.imageset/Contents.json | 3 ++- .../Base/Profile/TwoTone.imageset/Contents.json | 3 ++- .../Base/Profile/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Scan.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Scan/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Scan/TwoTone.imageset/Contents.json | 3 ++- .../Base/Scan/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Search.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Search/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Search/TwoTone.imageset/Contents.json | 3 ++- .../Base/Search/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Send.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Send/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Send/TwoTone.imageset/Contents.json | 3 ++- .../Base/Send/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Setting.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Setting/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Setting/Mini.imageset/Contents.json | 3 ++- .../Base/Setting/TwoTone.imageset/Contents.json | 3 ++- .../Base/Setting/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Setting2.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Setting2/Fill.imageset/Contents.json | 3 ++- .../Base/Setting2/TwoTone.imageset/Contents.json | 3 ++- .../Base/Setting2/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ShieldDone.imageset/Contents.json | 3 ++- .../Base/ShieldDone/Fill.imageset/Contents.json | 3 ++- .../Base/ShieldDone/TwoTone.imageset/Contents.json | 3 ++- .../Base/ShieldDone/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/ShieldFail.imageset/Contents.json | 3 ++- .../Base/ShieldFail/Fill.imageset/Contents.json | 3 ++- .../Base/ShieldFail/TwoTone.imageset/Contents.json | 3 ++- .../Base/ShieldFail/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Star.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Star/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Star/Mini.imageset/Contents.json | 3 ++- .../Base/Star/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Swap.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Swap/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Swap/TwoTone.imageset/Contents.json | 3 ++- .../Base/Swap/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Ticket.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Ticket/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Ticket/TwoTone.imageset/Contents.json | 3 ++- .../Base/Ticket/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/TicketStar.imageset/Contents.json | 3 ++- .../Base/TicketStar/Fill.imageset/Contents.json | 3 ++- .../Base/TicketStar/TwoTone.imageset/Contents.json | 3 ++- .../Base/TicketStar/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Unlock.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Unlock/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Unlock/TwoTone.imageset/Contents.json | 3 ++- .../Base/Unlock/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Unstar.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Upload.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Upload/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Upload/TwoTone.imageset/Contents.json | 3 ++- .../Base/Upload/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/User2.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/User2/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/User2/TwoTone.imageset/Contents.json | 3 ++- .../Base/User2/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/User3.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/User3/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/User3/TwoTone.imageset/Contents.json | 3 ++- .../Base/User3/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Video.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Video/TwoTone.imageset/Contents.json | 3 ++- .../Base/Video/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Voice.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Voice/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Voice/TwoTone.imageset/Contents.json | 3 ++- .../Base/Voice/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/VolumeDown.imageset/Contents.json | 3 ++- .../Base/VolumeDown/Fill.imageset/Contents.json | 3 ++- .../Base/VolumeDown/TwoTone.imageset/Contents.json | 3 ++- .../Base/VolumeDown/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/VolumeOff.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/VolumeOff/Fill.imageset/Contents.json | 3 ++- .../Base/VolumeOff/TwoTone.imageset/Contents.json | 3 ++- .../Base/VolumeOff/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/VolumeUp.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/VolumeUp/Fill.imageset/Contents.json | 3 ++- .../Base/VolumeUp/TwoTone.imageset/Contents.json | 3 ++- .../Base/VolumeUp/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Wallet.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Wallet/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Wallet/TwoTone.imageset/Contents.json | 3 ++- .../Base/Wallet/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Resources/Icons.xcassets/Base/Work.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Work/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/Work/TwoTone.imageset/Contents.json | 3 ++- .../Base/Work/TwoTone/Fill.imageset/Contents.json | 3 ++- .../Icons.xcassets/Base/check.imageset/Contents.json | 1 + 370 files changed, 745 insertions(+), 357 deletions(-) diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity.imageset/Contents.json index d8fc8840..5a3ce216 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/Fill.imageset/Contents.json index d8fc8840..5a3ce216 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone.imageset/Contents.json index d8fc8840..5a3ce216 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone/Fill.imageset/Contents.json index d8fc8840..5a3ce216 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Activity/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser.imageset/Contents.json index ef6a4927..c13cd439 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/Fill.imageset/Contents.json index ef6a4927..c13cd439 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone.imageset/Contents.json index ef6a4927..c13cd439 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone/Fill.imageset/Contents.json index ef6a4927..c13cd439 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/AddUser/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown.imageset/Contents.json index 9cebbd01..edeefec0 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Fill.imageset/Contents.json index a75b8bef..03aa7aa8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Square.imageset/Contents.json index a75b8bef..03aa7aa8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone.imageset/Contents.json index a75b8bef..03aa7aa8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone/Fill.imageset/Contents.json index a75b8bef..03aa7aa8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowDown/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft.imageset/Contents.json index d907cfaa..fa872c2b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Fill.imageset/Contents.json index 8493278a..c55047c5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Square.imageset/Contents.json index 8493278a..c55047c5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone.imageset/Contents.json index 8493278a..c55047c5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone/Fill.imageset/Contents.json index 8493278a..c55047c5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowLeft/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight.imageset/Contents.json index 39e775f2..28d89291 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Fill.imageset/Contents.json index df47e407..99b0c549 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Square.imageset/Contents.json index df47e407..99b0c549 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone.imageset/Contents.json index df47e407..99b0c549 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone/Fill.imageset/Contents.json index df47e407..99b0c549 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowRight/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp.imageset/Contents.json index 3ae12c2a..57d465cf 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Fill.imageset/Contents.json index 8446bee3..a3de889d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Square.imageset/Contents.json index 8446bee3..a3de889d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone.imageset/Contents.json index 8446bee3..a3de889d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone/Fill.imageset/Contents.json index 8446bee3..a3de889d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ArrowUp/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Attach.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Attach.imageset/Contents.json index 3080abc2..37c2535b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Attach.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Attach.imageset/Contents.json @@ -8,5 +8,9 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag.imageset/Contents.json index a15a193a..d9c9a1e4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/Fill.imageset/Contents.json index a15a193a..d9c9a1e4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone.imageset/Contents.json index a15a193a..d9c9a1e4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone/Fill.imageset/Contents.json index a15a193a..d9c9a1e4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2.imageset/Contents.json index 6583cb4c..6fe3df1b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/Fill.imageset/Contents.json index 6583cb4c..6fe3df1b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone.imageset/Contents.json index 6583cb4c..6fe3df1b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone/Fill.imageset/Contents.json index 6583cb4c..6fe3df1b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bag2/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark.imageset/Contents.json index c84876b0..e9d47110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/Fill.imageset/Contents.json index c84876b0..e9d47110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone.imageset/Contents.json index c84876b0..e9d47110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone/Fill.imageset/Contents.json index c84876b0..e9d47110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Bookmark/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy.imageset/Contents.json index 3687d21e..1fdea201 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/Fill.imageset/Contents.json index 3687d21e..1fdea201 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone.imageset/Contents.json index 3687d21e..1fdea201 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone/Fill.imageset/Contents.json index 3687d21e..1fdea201 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Buy/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar.imageset/Contents.json index 8311a1e1..f96ad567 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/Fill.imageset/Contents.json index 8311a1e1..f96ad567 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone.imageset/Contents.json index 8311a1e1..f96ad567 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone/Fill.imageset/Contents.json index 8311a1e1..f96ad567 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calendar/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed.imageset/Contents.json index 427b7069..9276354c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/Fill.imageset/Contents.json index 427b7069..9276354c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone.imageset/Contents.json index 427b7069..9276354c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone/Fill.imageset/Contents.json index 427b7069..9276354c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/CallMissed/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling.imageset/Contents.json index ef980593..6cfa3384 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/Fill.imageset/Contents.json index ef980593..6cfa3384 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone.imageset/Contents.json index ef980593..6cfa3384 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone/Fill.imageset/Contents.json index ef980593..6cfa3384 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Calling/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera.imageset/Contents.json index e80fa6a3..8dd2a7af 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/Fill.imageset/Contents.json index e80fa6a3..8dd2a7af 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone.imageset/Contents.json index e80fa6a3..8dd2a7af 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone/Fill.imageset/Contents.json index e80fa6a3..8dd2a7af 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Camera/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category.imageset/Contents.json index 9175805b..0b7129b7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/Fill.imageset/Contents.json index 9175805b..0b7129b7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone.imageset/Contents.json index 9175805b..0b7129b7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone/Fill.imageset/Contents.json index 9175805b..0b7129b7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Category/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart.imageset/Contents.json index 135ff441..251551fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/Fill.imageset/Contents.json index 135ff441..251551fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone.imageset/Contents.json index 135ff441..251551fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone/Fill.imageset/Contents.json index 135ff441..251551fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chart/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat.imageset/Contents.json index cb85785e..5fb45812 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/Fill.imageset/Contents.json index cb85785e..5fb45812 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone.imageset/Contents.json index cb85785e..5fb45812 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone/Fill.imageset/Contents.json index cb85785e..5fb45812 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Chat/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json index 6faf676f..73fbdcf9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json index c068381d..19939b4e 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json index 88c03d3b..1213f42c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json index 0f94592c..3951d3bf 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Circle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Mini.imageset/Contents.json index 414604e8..d93b7a05 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Mini.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Mini.imageset/Contents.json @@ -8,5 +8,9 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square.imageset/Contents.json index 111a4985..d5191c92 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/Fill.imageset/Contents.json index 111a4985..d5191c92 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone.imageset/Contents.json index 111a4985..d5191c92 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone/Fill.imageset/Contents.json index 111a4985..d5191c92 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Check/Square/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown.imageset/Contents.json index e7f0daa5..3726db8a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle.imageset/Contents.json index eecbaa9c..38c1182a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/Fill.imageset/Contents.json index eecbaa9c..38c1182a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone.imageset/Contents.json index eecbaa9c..38c1182a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone/Fill.imageset/Contents.json index eecbaa9c..38c1182a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronDown/Circle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft.imageset/Contents.json index 684da833..941dcb46 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle.imageset/Contents.json index f4c7ba71..5493c6e9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/Fill.imageset/Contents.json index f4c7ba71..5493c6e9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone.imageset/Contents.json index f4c7ba71..5493c6e9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone/Fill.imageset/Contents.json index f4c7ba71..5493c6e9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronLeft/Circle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight.imageset/Contents.json index 80d3d224..1e45afc8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle.imageset/Contents.json index 0f4c0105..5182da75 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/Fill.imageset/Contents.json index 0f4c0105..5182da75 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone.imageset/Contents.json index 0f4c0105..5182da75 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone/Fill.imageset/Contents.json index 0f4c0105..5182da75 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronRight/Circle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp.imageset/Contents.json index b87433bd..6920a98a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle.imageset/Contents.json index 2265b59e..13263eca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/Fill.imageset/Contents.json index 2265b59e..13263eca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone.imageset/Contents.json index 2265b59e..13263eca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone/Fill.imageset/Contents.json index 2265b59e..13263eca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ChevronUp/Circle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clear.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clear.imageset/Contents.json index fef388d9..86ee8eb6 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clear.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clear.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { + "preserves-vector-representation" : true, "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock.imageset/Contents.json index 528744cb..c0b15112 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Fill.imageset/Contents.json index 528744cb..c0b15112 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square.imageset/Contents.json index 74cf8643..d019be6c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/Fill.imageset/Contents.json index 74cf8643..d019be6c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone.imageset/Contents.json index 74cf8643..d019be6c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone/Fill.imageset/Contents.json index 74cf8643..d019be6c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/Square/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone.imageset/Contents.json index 528744cb..c0b15112 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone/Fill.imageset/Contents.json index 528744cb..c0b15112 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Clock/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Mini.imageset/Contents.json index 1cde630e..40a234eb 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Mini.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Mini.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { + "preserves-vector-representation" : true, "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square.imageset/Contents.json index 9dfded5d..6111c206 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/Fill.imageset/Contents.json index 9dfded5d..6111c206 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone.imageset/Contents.json index 9dfded5d..6111c206 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone/Fill.imageset/Contents.json index 9dfded5d..6111c206 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Close/Square/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete.imageset/Contents.json index 55a229be..d008fd0a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/Fill.imageset/Contents.json index 55a229be..d008fd0a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone.imageset/Contents.json index 55a229be..d008fd0a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone/Fill.imageset/Contents.json index 55a229be..d008fd0a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Delete/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery.imageset/Contents.json index 95589b0e..04f0a881 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/Fill.imageset/Contents.json index 95589b0e..04f0a881 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone.imageset/Contents.json index 95589b0e..04f0a881 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone/Fill.imageset/Contents.json index 95589b0e..04f0a881 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Discovery/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document.imageset/Contents.json index f181ec3f..df05c729 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/Fill.imageset/Contents.json index f181ec3f..df05c729 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone.imageset/Contents.json index f181ec3f..df05c729 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone/Fill.imageset/Contents.json index f181ec3f..df05c729 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Document/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download.imageset/Contents.json index a60279ff..629cd26c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/Fill.imageset/Contents.json index a60279ff..629cd26c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone.imageset/Contents.json index a60279ff..629cd26c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone/Fill.imageset/Contents.json index a60279ff..629cd26c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Download/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit.imageset/Contents.json index de2fb23d..80a1b737 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Fill.imageset/Contents.json index de2fb23d..80a1b737 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square.imageset/Contents.json index 38bab119..4f8c3149 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/Fill.imageset/Contents.json index 38bab119..4f8c3149 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone.imageset/Contents.json index 38bab119..4f8c3149 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone/Fill.imageset/Contents.json index 38bab119..4f8c3149 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/Square/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone.imageset/Contents.json index de2fb23d..80a1b737 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone/Fill.imageset/Contents.json index de2fb23d..80a1b737 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Edit/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark.imageset/Contents.json index bd94a6e4..ad8a9b6f 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle.imageset/Contents.json index 66f0f517..a7d1455b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/Fill.imageset/Contents.json index 729c62f2..b9c8c3db 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone.imageset/Contents.json index 729c62f2..b9c8c3db 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone/Fill.imageset/Contents.json index 729c62f2..b9c8c3db 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Circle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle.imageset/Contents.json index d7682809..a0b7d985 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/Fill.imageset/Contents.json index 66f0f517..a7d1455b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone.imageset/Contents.json index 66f0f517..a7d1455b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone/Fill.imageset/Contents.json index 66f0f517..a7d1455b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Exclamationmark/Triangle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye.imageset/Contents.json index 10cd3092..cfac79cc 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Fill.imageset/Contents.json index 10cd3092..cfac79cc 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash.imageset/Contents.json index 473399c5..7e6c2a76 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/Fill.imageset/Contents.json index 473399c5..7e6c2a76 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone.imageset/Contents.json index 473399c5..7e6c2a76 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone/Fill.imageset/Contents.json index 473399c5..7e6c2a76 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/Slash/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone.imageset/Contents.json index 10cd3092..cfac79cc 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone/Fill.imageset/Contents.json index 10cd3092..cfac79cc 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Eye/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter.imageset/Contents.json index 052c9cf5..82acd8eb 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/Fill.imageset/Contents.json index 052c9cf5..82acd8eb 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/TwoTone/Fill.imageset/Contents.json index 052c9cf5..82acd8eb 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Filter/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder.imageset/Contents.json index 8cd5c055..af9f4c70 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Fill.imageset/Contents.json index 8cd5c055..af9f4c70 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json index 31405969..e11555a9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/Mini.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone.imageset/Contents.json index 8cd5c055..af9f4c70 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone/Fill.imageset/Contents.json index 8cd5c055..af9f4c70 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Folder/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game.imageset/Contents.json index f0135153..29eab337 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/Fill.imageset/Contents.json index f0135153..29eab337 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone.imageset/Contents.json index f0135153..29eab337 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone/Fill.imageset/Contents.json index f0135153..29eab337 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Game/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph.imageset/Contents.json index 1db09e6f..b22f6b65 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/Fill.imageset/Contents.json index 1db09e6f..b22f6b65 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone.imageset/Contents.json index 1db09e6f..b22f6b65 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone/Fill.imageset/Contents.json index 1db09e6f..b22f6b65 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Graph/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart.imageset/Contents.json index a3a018c8..0ab22387 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/Fill.imageset/Contents.json index a3a018c8..0ab22387 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone.imageset/Contents.json index a3a018c8..0ab22387 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone/Fill.imageset/Contents.json index a3a018c8..0ab22387 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Heart/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home.imageset/Contents.json index 7e889a66..10b8f7fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home/Fill.imageset/Contents.json index 7e889a66..10b8f7fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Home/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info.imageset/Contents.json index 32919952..a1d3b684 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle.imageset/Contents.json index 45d9b910..55fb9222 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/Fill.imageset/Contents.json index 45d9b910..55fb9222 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/TwoTone.imageset/Contents.json index 45d9b910..55fb9222 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square.imageset/Contents.json index 3c9a45b7..56441585 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/Dash.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/Dash.imageset/Contents.json index 613c506d..d937d741 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/Dash.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/Dash.imageset/Contents.json @@ -8,5 +8,9 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone.imageset/Contents.json index 3c9a45b7..56441585 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Dash.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Dash.imageset/Contents.json index 1efad626..d937d741 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Dash.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Dash.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Fill.imageset/Contents.json index 3c9a45b7..56441585 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Info/Square/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Link.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Link.imageset/Contents.json index f9a804f0..76c223e1 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Link.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Link.imageset/Contents.json @@ -8,5 +8,9 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location.imageset/Contents.json index 73f0d0b0..0386833d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/Fill.imageset/Contents.json index 73f0d0b0..0386833d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone.imageset/Contents.json index 73f0d0b0..0386833d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone/Fill.imageset/Contents.json index 73f0d0b0..0386833d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Location/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock.imageset/Contents.json index a1865ea6..2a8b29c9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/Fill.imageset/Contents.json index a1865ea6..2a8b29c9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone.imageset/Contents.json index 03f22542..08651107 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone/Fill.imageset/Contents.json index 03f22542..08651107 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Lock/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login.imageset/Contents.json index e4357b71..ab80ebda 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/Fill.imageset/Contents.json index e4357b71..ab80ebda 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone.imageset/Contents.json index e4357b71..ab80ebda 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone/Fill.imageset/Contents.json index e4357b71..ab80ebda 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Login/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout.imageset/Contents.json index 3492b2d5..0fee60c8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/Fill.imageset/Contents.json index 3492b2d5..0fee60c8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone.imageset/Contents.json index 3492b2d5..0fee60c8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone/Fill.imageset/Contents.json index 3492b2d5..0fee60c8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Logout/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message.imageset/Contents.json index 65dbe7eb..cad4bb5f 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/Fill.imageset/Contents.json index 65dbe7eb..cad4bb5f 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone.imageset/Contents.json index 65dbe7eb..cad4bb5f 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone/Fill.imageset/Contents.json index 65dbe7eb..cad4bb5f 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Message/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More.imageset/Contents.json index 0bdfab70..ca0ea470 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { + "preserves-vector-representation" : true, "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle.imageset/Contents.json index 04ed25da..c8d3c105 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/Fill.imageset/Contents.json index 04ed25da..c8d3c105 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone.imageset/Contents.json index 6c326621..344440b3 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone/Fill.imageset/Contents.json index 04ed25da..c8d3c105 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Circle/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square.imageset/Contents.json index 3007d8ac..8880d7d8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/Fill.imageset/Contents.json index 205aa861..8880d7d8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/Fill.imageset/Contents.json @@ -8,5 +8,9 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone.imageset/Contents.json index 0ba94852..8e81aaa1 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone/Fill.imageset/Contents.json index 3007d8ac..8880d7d8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Square/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Vertical.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Vertical.imageset/Contents.json index 3ee2c850..7abc802f 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Vertical.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/More/Vertical.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { + "preserves-vector-representation" : true, "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/NearMe.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/NearMe.imageset/Contents.json index b6b42642..f800902c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/NearMe.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/NearMe.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { + "preserves-vector-representation" : true, "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification.imageset/Contents.json index 9f6c96bc..0049a7cd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/Fill.imageset/Contents.json index 9f6c96bc..0049a7cd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone.imageset/Contents.json index 9f6c96bc..0049a7cd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone/Fill.imageset/Contents.json index 9f6c96bc..0049a7cd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Notification/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper.imageset/Contents.json index e42b718a..24a5a91d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/Fill.imageset/Contents.json index e42b718a..24a5a91d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone.imageset/Contents.json index e42b718a..24a5a91d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone/Fill.imageset/Contents.json index e42b718a..24a5a91d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Paper/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload.imageset/Contents.json index 6f367394..6505c7e2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/Fill.imageset/Contents.json index 6f367394..6505c7e2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone.imageset/Contents.json index 6f367394..6505c7e2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone/Fill.imageset/Contents.json index 6f367394..6505c7e2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperDownload/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail.imageset/Contents.json index 6dd3b724..291a3fc6 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/Fill.imageset/Contents.json index 6dd3b724..291a3fc6 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone.imageset/Contents.json index 6dd3b724..291a3fc6 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone/Fill.imageset/Contents.json index 6dd3b724..291a3fc6 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperFail/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative.imageset/Contents.json index d06fe9b5..08004070 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/Fill.imageset/Contents.json index d06fe9b5..08004070 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone.imageset/Contents.json index d06fe9b5..08004070 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone/Fill.imageset/Contents.json index d06fe9b5..08004070 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperNegative/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus.imageset/Contents.json index e0afcd25..a1bd9110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/Fill.imageset/Contents.json index e0afcd25..a1bd9110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone.imageset/Contents.json index e0afcd25..a1bd9110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone/Fill.imageset/Contents.json index e0afcd25..a1bd9110 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperPlus/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload.imageset/Contents.json index 5b0e20e8..f892aef1 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/Fill.imageset/Contents.json index 5b0e20e8..f892aef1 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone.imageset/Contents.json index 5b0e20e8..f892aef1 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone/Fill.imageset/Contents.json index 5b0e20e8..f892aef1 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/PaperUpload/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password.imageset/Contents.json index 64ce8cae..3e5ad3a7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/Fill.imageset/Contents.json index 64ce8cae..3e5ad3a7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone.imageset/Contents.json index 64ce8cae..3e5ad3a7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone/Fill.imageset/Contents.json index 64ce8cae..3e5ad3a7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Password/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone.imageset/Contents.json index 08b51c01..8302b124 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Fill.imageset/Contents.json index 08b51c01..8302b124 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/Fill.imageset/Contents.json index f39fb405..3bc98ae8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/TwoTone/Fill.imageset/Contents.json index f39fb405..3bc98ae8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slach/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slash.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slash.imageset/Contents.json index f39fb405..3bc98ae8 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slash.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Phone/Slash.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture.imageset/Contents.json index a6215a8d..63a9f84a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/Fill.imageset/Contents.json index a6215a8d..63a9f84a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone.imageset/Contents.json index a6215a8d..63a9f84a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone/Fill.imageset/Contents.json index a6215a8d..63a9f84a 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2.imageset/Contents.json index cc373b3e..9f1673a5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/Fill.imageset/Contents.json index cc373b3e..9f1673a5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone.imageset/Contents.json index cc373b3e..9f1673a5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone/Fill.imageset/Contents.json index cc373b3e..9f1673a5 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Picture2/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play.imageset/Contents.json index 73a6e155..f0f40202 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/Fill.imageset/Contents.json index 73a6e155..f0f40202 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/TwoTone/Fill.imageset/Contents.json index 73a6e155..f0f40202 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Play/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus.imageset/Contents.json index 0eb9612b..797f6df0 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { + "preserves-vector-representation" : true, "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Mini.imageset/Contents.json index a88436cb..a205caa4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Mini.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Mini.imageset/Contents.json @@ -8,5 +8,9 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square.imageset/Contents.json index 78cc7fca..da32ce47 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/Fill.imageset/Contents.json index 78cc7fca..da32ce47 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone.imageset/Contents.json index 78cc7fca..da32ce47 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone/Fill.imageset/Contents.json index 78cc7fca..da32ce47 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Plus/Square/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile.imageset/Contents.json index ba0de987..7c9a802d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/Fill.imageset/Contents.json index ba0de987..7c9a802d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone.imageset/Contents.json index ba0de987..7c9a802d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone/Fill.imageset/Contents.json index ba0de987..7c9a802d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Profile/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan.imageset/Contents.json index a6a3f825..02b27b07 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/Fill.imageset/Contents.json index a6a3f825..02b27b07 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone.imageset/Contents.json index a6a3f825..02b27b07 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone/Fill.imageset/Contents.json index a6a3f825..02b27b07 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Scan/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search.imageset/Contents.json index 18540189..e88e9e5b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/Fill.imageset/Contents.json index 18540189..e88e9e5b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone.imageset/Contents.json index 18540189..e88e9e5b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone/Fill.imageset/Contents.json index 18540189..e88e9e5b 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Search/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send.imageset/Contents.json index 184e06d6..ce8a894d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/Fill.imageset/Contents.json index 184e06d6..ce8a894d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone.imageset/Contents.json index 184e06d6..ce8a894d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone/Fill.imageset/Contents.json index 184e06d6..ce8a894d 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Send/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting.imageset/Contents.json index 7aee8037..d2b06727 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Fill.imageset/Contents.json index 7aee8037..d2b06727 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Mini.imageset/Contents.json index 31405969..e11555a9 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Mini.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/Mini.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone.imageset/Contents.json index 7aee8037..d2b06727 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone/Fill.imageset/Contents.json index 7aee8037..d2b06727 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2.imageset/Contents.json index 25782bc8..0b6b7f3e 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/Fill.imageset/Contents.json index 25782bc8..0b6b7f3e 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone.imageset/Contents.json index 25782bc8..0b6b7f3e 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone/Fill.imageset/Contents.json index 25782bc8..0b6b7f3e 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Setting2/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone.imageset/Contents.json index 1c7cbda5..acf1c1fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/Fill.imageset/Contents.json index 1c7cbda5..acf1c1fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone.imageset/Contents.json index 1c7cbda5..acf1c1fa 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone/Fill.imageset/Contents.json index 397c552d..092e7992 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldDone/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail.imageset/Contents.json index 397c552d..092e7992 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/Fill.imageset/Contents.json index 397c552d..092e7992 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone.imageset/Contents.json index 397c552d..092e7992 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone/Fill.imageset/Contents.json index 397c552d..092e7992 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/ShieldFail/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star.imageset/Contents.json index f2856ab5..4b303fec 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Fill.imageset/Contents.json index f2856ab5..4b303fec 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json index a87ba912..f0080b78 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/Mini.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/TwoTone/Fill.imageset/Contents.json index f2856ab5..4b303fec 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Star/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap.imageset/Contents.json index e0ed1134..6d872613 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/Fill.imageset/Contents.json index e0ed1134..6d872613 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone.imageset/Contents.json index e0ed1134..6d872613 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone/Fill.imageset/Contents.json index e0ed1134..6d872613 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Swap/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket.imageset/Contents.json index 8887ef85..697f65ee 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/Fill.imageset/Contents.json index 8887ef85..697f65ee 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone.imageset/Contents.json index 8887ef85..697f65ee 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone/Fill.imageset/Contents.json index 8887ef85..697f65ee 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Ticket/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar.imageset/Contents.json index 428858dd..e62738c4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/Fill.imageset/Contents.json index 428858dd..e62738c4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone.imageset/Contents.json index 428858dd..e62738c4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone/Fill.imageset/Contents.json index 428858dd..e62738c4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/TicketStar/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock.imageset/Contents.json index eeeb4158..f6697372 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/Fill.imageset/Contents.json index eeeb4158..f6697372 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone.imageset/Contents.json index eeeb4158..f6697372 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone/Fill.imageset/Contents.json index eeeb4158..f6697372 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unlock/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json index 795101cf..8dd584bb 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json index 53c2d6e4..c1af54ac 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json index e5a4b2db..98fb5b55 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Unstar/Mini.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload.imageset/Contents.json index fd8fa78e..dbe61f50 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/Fill.imageset/Contents.json index fd8fa78e..dbe61f50 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone.imageset/Contents.json index fd8fa78e..dbe61f50 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone/Fill.imageset/Contents.json index fd8fa78e..dbe61f50 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Upload/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2.imageset/Contents.json index e0d10679..29c983f7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/Fill.imageset/Contents.json index e0d10679..29c983f7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone.imageset/Contents.json index e0d10679..29c983f7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone/Fill.imageset/Contents.json index e0d10679..29c983f7 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User2/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3.imageset/Contents.json index 9c234126..1f3a80d2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/Fill.imageset/Contents.json index 9c234126..1f3a80d2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone.imageset/Contents.json index 9c234126..1f3a80d2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone/Fill.imageset/Contents.json index 9c234126..1f3a80d2 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/User3/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video.imageset/Contents.json index 3e81adf5..1ffdfba4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone.imageset/Contents.json index 3e81adf5..1ffdfba4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone/Fill.imageset/Contents.json index 3e81adf5..1ffdfba4 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Video/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice.imageset/Contents.json index a0535bc3..6c5772fd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/Fill.imageset/Contents.json index a0535bc3..6c5772fd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone.imageset/Contents.json index a0535bc3..6c5772fd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone/Fill.imageset/Contents.json index a0535bc3..6c5772fd 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Voice/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown.imageset/Contents.json index 4d382b21..d0e9065c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/Fill.imageset/Contents.json index 4d382b21..d0e9065c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone.imageset/Contents.json index 4d382b21..d0e9065c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone/Fill.imageset/Contents.json index 4d382b21..d0e9065c 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeDown/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff.imageset/Contents.json index 5abdb403..6288d724 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/Fill.imageset/Contents.json index 5abdb403..6288d724 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone.imageset/Contents.json index 5abdb403..6288d724 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone/Fill.imageset/Contents.json index 5abdb403..6288d724 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeOff/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp.imageset/Contents.json index 96a8a841..9325a6de 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/Fill.imageset/Contents.json index 96a8a841..9325a6de 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone.imageset/Contents.json index 96a8a841..9325a6de 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone/Fill.imageset/Contents.json index 96a8a841..9325a6de 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/VolumeUp/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet.imageset/Contents.json index ef14d71f..986578ca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/Fill.imageset/Contents.json index ef14d71f..986578ca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone.imageset/Contents.json index ef14d71f..986578ca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone/Fill.imageset/Contents.json index ef14d71f..986578ca 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Wallet/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work.imageset/Contents.json index 140f3c89..8f353e25 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/Fill.imageset/Contents.json index 140f3c89..8f353e25 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone.imageset/Contents.json index 140f3c89..8f353e25 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone/Fill.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone/Fill.imageset/Contents.json index 140f3c89..8f353e25 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone/Fill.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/Work/TwoTone/Fill.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { - "preserves-vector-representation" : true + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" } } diff --git a/Sources/OversizeUI/Resources/Icons.xcassets/Base/check.imageset/Contents.json b/Sources/OversizeUI/Resources/Icons.xcassets/Base/check.imageset/Contents.json index 5ce034a2..215a8754 100644 --- a/Sources/OversizeUI/Resources/Icons.xcassets/Base/check.imageset/Contents.json +++ b/Sources/OversizeUI/Resources/Icons.xcassets/Base/check.imageset/Contents.json @@ -10,6 +10,7 @@ "version" : 1 }, "properties" : { + "preserves-vector-representation" : true, "template-rendering-intent" : "template" } } From 56a1f2e61f356b1d8927c62584e4200ea2d6af90 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Wed, 3 Sep 2025 17:15:35 +0300 Subject: [PATCH 04/19] Add EmojiPicker --- Package.swift | 2 +- .../Controls/Button/FieldButtonStyle.swift | 12 +- .../Controls/DateField/DateField.swift | 8 +- .../Controls/DateField/DatePickerSheet.swift | 68 ++++---- .../Controls/IconPicker/EmojiPicker.swift | 162 ++++++++++++++++++ .../Controls/IconPicker/IconPicker.swift | 85 +++++++-- .../Controls/Label/ToolbarLabelStyle.swift | 36 ++++ .../OversizeUI/Controls/Select/Select.swift | 86 ++++------ .../Controls/Select/SelectPicker.swift | 13 +- .../TextEditorPlaceholderViewModifier.swift | 17 +- .../TextField/LabeledTextFieldStyle.swift | 7 +- Sources/OversizeUI/Core/Radius.swift | 42 ----- Sources/OversizeUI/Core/Space.swift | 2 +- .../Color/Color+RawRepresentable.swift | 1 - .../OversizeUI/Extensions/View/View+If.swift | 18 ++ .../Extensions/View/View+OnChange.swift | 24 +++ .../Layouts/Layout/LayoutView.swift | 2 +- .../{BlankView.swift => EmptyStateView.swift} | 2 +- 18 files changed, 406 insertions(+), 181 deletions(-) create mode 100644 Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift create mode 100644 Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift delete mode 100644 Sources/OversizeUI/Core/Radius.swift create mode 100644 Sources/OversizeUI/Extensions/View/View+OnChange.swift rename Sources/OversizeUI/Status/BlankView/{BlankView.swift => EmptyStateView.swift} (97%) diff --git a/Package.swift b/Package.swift index c8ae3d2b..ae9071cd 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 6.0 +// swift-tools-version: 6.2 // The swift-tools-version declares the minimum version of Swift required to build this package. // swiftlint:disable all diff --git a/Sources/OversizeUI/Controls/Button/FieldButtonStyle.swift b/Sources/OversizeUI/Controls/Button/FieldButtonStyle.swift index 9511577b..55b85bf7 100644 --- a/Sources/OversizeUI/Controls/Button/FieldButtonStyle.swift +++ b/Sources/OversizeUI/Controls/Button/FieldButtonStyle.swift @@ -26,10 +26,10 @@ public struct FieldButtonStyle: ButtonStyle { switch fieldPosition { case .top, .bottom, .center: #if os(iOS) - RoundedRectangleCorner(radius: .xxxSmall, corners: backgroundShapeCorners) + RoundedRectangleCorner(radius: .xSmall, corners: backgroundShapeCorners) .fill(isPressed ? Color.surfaceTertiary : Color.surfaceSecondary) .overlay( - RoundedRectangleCorner(radius: .xxxSmall, corners: backgroundShapeCorners) + RoundedRectangleCorner(radius: .xSmall, corners: backgroundShapeCorners) .stroke( theme.borderTextFields ? Color.border @@ -38,11 +38,11 @@ public struct FieldButtonStyle: ButtonStyle { ) ) #else - RoundedRectangle(cornerRadius: .xxxSmall, style: .continuous) + RoundedRectangle(cornerRadius: .xSmall, style: .continuous) .fill(isPressed ? Color.surfaceTertiary : Color.surfaceSecondary) .overlay( RoundedRectangle( - cornerRadius: .xxxSmall, + cornerRadius: .xSmall, style: .continuous ) .stroke( @@ -55,11 +55,11 @@ public struct FieldButtonStyle: ButtonStyle { #endif default: - RoundedRectangle(cornerRadius: .xxxSmall, style: .continuous) + RoundedRectangle(cornerRadius: .xSmall, style: .continuous) .fill(isPressed ? Color.surfaceTertiary : Color.surfaceSecondary) .overlay( RoundedRectangle( - cornerRadius: .xxxSmall, + cornerRadius: .xSmall, style: .continuous ) .stroke( diff --git a/Sources/OversizeUI/Controls/DateField/DateField.swift b/Sources/OversizeUI/Controls/DateField/DateField.swift index 20334808..07188d81 100644 --- a/Sources/OversizeUI/Controls/DateField/DateField.swift +++ b/Sources/OversizeUI/Controls/DateField/DateField.swift @@ -6,7 +6,7 @@ import SwiftUI #if os(iOS) -@available(iOS 15.0, *) +@available(iOS 16.0, *) @available(macOS, unavailable) @available(watchOS, unavailable) @available(tvOS, unavailable) @@ -79,12 +79,14 @@ public struct DateField: View { .sheet(isPresented: $showModal) { if isOptionalSelection { DatePickerSheet(title: label, selection: $optionalSelection) - .presentationDetents([.height(500)]) + .presentationDetents([.height(540)]) .presentationDragIndicator(.hidden) + .scrollDisabled(true) } else { DatePickerSheet(title: label, selection: $selection) - .presentationDetents([.height(500)]) + .presentationDetents([.height(540)]) .presentationDragIndicator(.hidden) + .scrollDisabled(true) } } } diff --git a/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift b/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift index fb087ca2..377f595d 100644 --- a/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift +++ b/Sources/OversizeUI/Controls/DateField/DatePickerSheet.swift @@ -38,47 +38,49 @@ public struct DatePickerSheet: View { } public var body: some View { - if #available(iOS 23.0, *) { - LayoutView(title) { - SectionView { - VStack { - if let minimumDate { - DatePicker("", selection: $date, in: minimumDate..., displayedComponents: displayedComponents) - .datePickerStyle(.graphical) - .labelsHidden() - } else { - DatePicker("", selection: $date, displayedComponents: displayedComponents) - .datePickerStyle(.graphical) - .labelsHidden() + if #available(iOS 26.0, *) { + NavigationStack { + LayoutView(title) { + SectionView { + VStack { + if let minimumDate { + DatePicker("", selection: $date, in: minimumDate..., displayedComponents: displayedComponents) + .datePickerStyle(.graphical) + .labelsHidden() + } else { + DatePicker("", selection: $date, displayedComponents: displayedComponents) + .datePickerStyle(.graphical) + .labelsHidden() + } } + .padding(.horizontal, .small) + .padding(.vertical, .xxxSmall) } - .padding(.horizontal, .small) - .padding(.vertical, .xxxSmall) + .surfaceContentMargins(.zero) + } background: { + Color.backgroundSecondary } - .surfaceContentMargins(.zero) - } background: { - Color.backgroundSecondary - } - .toolbar { - ToolbarItemGroup(placement: .cancellationAction) { - Button(role: .cancel) { - dismiss() - } label: { - Image.Base.close.icon() + .toolbar { + ToolbarItemGroup(placement: .cancellationAction) { + Button(role: .cancel) { + dismiss() + } label: { + Image.Base.close.icon() + } } - } - ToolbarItemGroup(placement: .primaryAction) { - Button(role: .confirm) { - selection = date - optionalSelection = date - dismiss() - } label: { - Text("Done") + ToolbarItemGroup(placement: .primaryAction) { + Button(role: .confirm) { + selection = date + optionalSelection = date + dismiss() + } label: { + Text("Done") + } } } + .toolbarTitleDisplayMode(.inline) } - .toolbarTitleDisplayMode(.inline) } else { PageView(title) { SectionView { diff --git a/Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift b/Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift new file mode 100644 index 00000000..99e754e7 --- /dev/null +++ b/Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift @@ -0,0 +1,162 @@ +// +// Copyright © 2025 Alexander Romanov +// EmojiPicker.swift, created on 11.08.2025 +// + +import SwiftUI + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public struct EmojiPicker: View { + @Environment(\.theme) private var theme: ThemeSettings + @Environment(\.horizontalSizeClass) private var horizontalSizeClass + @Environment(\.dismiss) private var dismiss + + private let label: String + private let emojis: [String] + @Binding private var selection: String + @State private var showModal = false + + var style: IconPickerStyle = .field + + private var gridPadding: CGFloat { + switch horizontalSizeClass { + case .compact, .none: + 60 + default: + 72 + } + } + + public init( + _ label: String, + emojis: [String], + selection: Binding + ) { + self.label = label + self.emojis = emojis.compactMap { $0.trimmingCharacters(in: .whitespacesAndNewlines).replacingOccurrences(of: "\n", with: "") } + _selection = selection + } + + public init( + _ label: String, + emojis: String, + selection: Binding + ) { + self.label = label + self.emojis = emojis.replacingOccurrences(of: "\n", with: "").map { String($0) } + _selection = selection + } + + public var body: some View { + Group { + switch style { + case .field: + fieldView + case .circle: + circleView + } + } + .sheet(isPresented: $showModal) { + modalView + .presentationDetents([.medium, .large]) + } + } + + // MARK: - Views + + private var circleView: some View { + Button { + showModal.toggle() + } label: { + Text(selection.isEmpty ? "😀" : selection) + .font(.system(size: 32)) + .padding(.xxSmall) + } + .buttonStyle(.iconTertiary) + .controlSize(.extraLarge) + } + + private var fieldView: some View { + Button { + showModal.toggle() + } label: { + HStack(spacing: .xxSmall) { + Text(label) + .onSurfacePrimaryForeground() + + Spacer() + + if !selection.isEmpty { + Text(selection) + .font(.system(size: 24)) + } + + IconDeprecated(.chevronDown, color: .onSurfacePrimary) + } + } + .buttonStyle(.field) + } + + private var modalView: some View { + NavigationStack { + LayoutView(label) { + ScrollView { + LazyVGrid( + columns: [GridItem(.adaptive(minimum: gridPadding))], + spacing: .small + ) { + ForEach(Array(emojis.enumerated()), id: \.offset) { _, emoji in + emojiButton(emoji: emoji) + } + } + .padding(.top, .medium) + .paddingContent(.horizontal) + .paddingContent(.bottom) + } + } + .toolbarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button(action: { dismiss() }) { + Image.Base.close.icon() + } + } + } + } + } + + private func emojiButton(emoji: String) -> some View { + Button { + selection = emoji + showModal = false + } label: { + Text(emoji) + .font(.system(size: 28)) + .frame(width: 56, height: 56) + .background( + RoundedRectangle(cornerRadius: .xSmall, style: .continuous) + .fill(selection == emoji ? Color.primary.opacity(0.08) : Color.clear) + ) + .overlay( + RoundedRectangle(cornerRadius: .xSmall, style: .continuous) + .strokeBorder( + selection == emoji ? Color.accentColor : Color.clear, + lineWidth: 2 + ) + ) + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + } +} + +// MARK: - View Modifiers + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public extension EmojiPicker { + func iconPickerStyle(_ style: IconPickerStyle) -> some View { + var view = self + view.style = style + return view + } +} diff --git a/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift b/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift index 125db0b1..d77ab43a 100644 --- a/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift +++ b/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift @@ -5,7 +5,11 @@ import SwiftUI -#if os(iOS) +public enum IconPickerStyle { + case field, circle +} + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) public struct IconPicker: View { @Environment(\.theme) private var theme: ThemeSettings @Environment(\.horizontalSizeClass) var horizontalSizeClass @@ -18,7 +22,7 @@ public struct IconPicker: View { @State private var selectedIndex: Int? - @State var offset = CGPoint(x: 0, y: 0) + var style: IconPickerStyle = .field private var gridPadding: CGFloat { guard let sizeClass = horizontalSizeClass else { return 40 } @@ -32,7 +36,7 @@ public struct IconPicker: View { public init( _ label: String, - _ icons: [Image], + icons: [Image], selection: Binding ) { self.label = label @@ -41,6 +45,38 @@ public struct IconPicker: View { } public var body: some View { + Group { + switch style { + case .field: + fieldView + case .circle: + circleView + } + } + .sheet(isPresented: $showModal) { + modal + .presentationDetents([.medium, .large]) + } + } + + public var circleView: some View { + Button { + showModal.toggle() + } label: { + Group { + if let image = selection { + image + } else { + Image.Base.edit.icon(size: .large) + } + } + .padding(.xxSmall) + } + .buttonStyle(.iconTertiary) + .controlSize(.extraLarge) + } + + private var fieldView: some View { Button { showModal.toggle() } label: { @@ -56,14 +92,11 @@ public struct IconPicker: View { } } .buttonStyle(.field) - .sheet(isPresented: $showModal) { - modal - } } private var modal: some View { - PageView(label) { - ScrollView { + NavigationStack { + LayoutView(label) { LazyVGrid(columns: [GridItem(.adaptive(minimum: gridPadding))]) { ForEach(icons.indices, id: \.self) { index in Button( @@ -95,17 +128,31 @@ public struct IconPicker: View { .paddingContent(.horizontal) .paddingContent(.bottom) } + .toolbarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel") { + showModal = false + } + } + + ToolbarItem(placement: .confirmationAction) { + Button("Save") { + selection = icons[selectedIndex ?? 0] + isSelected = true + showModal.toggle() + } + } + } } - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.secondary("Save", action: { - selection = icons[selectedIndex ?? 0] - isSelected = true - showModal.toggle() - })) - } } } -#endif + +@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +public extension IconPicker { + func iconPickerStyle(_ style: IconPickerStyle) -> Self { + var control = self + control.style = style + return control + } +} diff --git a/Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift b/Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift new file mode 100644 index 00000000..9498186a --- /dev/null +++ b/Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift @@ -0,0 +1,36 @@ +// +// Copyright © 2025 Alexander Romanov +// ToolbarLabelStyle.swift, created on 18.08.2025 +// + +import SwiftUI + +public struct ToolbarLabelStyle: LabelStyle { + public func makeBody(configuration: Configuration) -> some View { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { + Label(configuration) + } else { + Label(configuration) + .labelStyle(.titleOnly) + } + } +} + +public extension LabelStyle where Self == ToolbarLabelStyle { + static var toolbar: Self { .init() } +} + +public struct ToolbarProminentStyle: PrimitiveButtonStyle { + public func makeBody(configuration: Configuration) -> some View { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { + Button(configuration) + .buttonStyle(.glassProminent) + } else { + Button(configuration) + } + } +} + +public extension PrimitiveButtonStyle where Self == ToolbarProminentStyle { + static var toolbarPrimary: Self { .init() } +} diff --git a/Sources/OversizeUI/Controls/Select/Select.swift b/Sources/OversizeUI/Controls/Select/Select.swift index b32eba5d..48a77188 100644 --- a/Sources/OversizeUI/Controls/Select/Select.swift +++ b/Sources/OversizeUI/Controls/Select/Select.swift @@ -49,14 +49,14 @@ public struct Select: View where Content: View, @@ -42,14 +42,15 @@ public struct SelectPicker some View, else transformElse: (Self) -> some View) -> some View { + if condition { + transformThen(self) + } else { + transformElse(self) + } + } + + @ViewBuilder + func `if`(@ViewBuilder _ modifications: (Self) -> (some View)?) -> some View { + if let view = modifications(self) { + view + } else { + self + } + } } diff --git a/Sources/OversizeUI/Extensions/View/View+OnChange.swift b/Sources/OversizeUI/Extensions/View/View+OnChange.swift new file mode 100644 index 00000000..bdece0f2 --- /dev/null +++ b/Sources/OversizeUI/Extensions/View/View+OnChange.swift @@ -0,0 +1,24 @@ +// +// Copyright © 2025 Alexander Romanov +// File.swift, created on 13.08.2025 +// + +import SwiftUI + +public extension View { + func onChangeValue(of value: V, _ action: @escaping (V) -> Void) -> some View where V: Equatable { + #if os(visionOS) + return onChange(of: value) { _, newValue in + action(newValue) + } + #else + if #available(iOS 17, macOS 14.0, *) { + return self.onChange(of: value) { _, newValue in + action(newValue) + } + } else { + return onChange(of: value, perform: action) + } + #endif + } +} diff --git a/Sources/OversizeUI/Layouts/Layout/LayoutView.swift b/Sources/OversizeUI/Layouts/Layout/LayoutView.swift index b5745a3e..d4c5a0ea 100644 --- a/Sources/OversizeUI/Layouts/Layout/LayoutView.swift +++ b/Sources/OversizeUI/Layouts/Layout/LayoutView.swift @@ -38,7 +38,7 @@ public struct LayoutView< } public init( - _ title: String, + _ title: String = "", onScroll: ScrollAction? = nil, @ViewBuilder content: () -> Content, @ViewBuilder background: () -> Background = { Color.backgroundPrimary } diff --git a/Sources/OversizeUI/Status/BlankView/BlankView.swift b/Sources/OversizeUI/Status/BlankView/EmptyStateView.swift similarity index 97% rename from Sources/OversizeUI/Status/BlankView/BlankView.swift rename to Sources/OversizeUI/Status/BlankView/EmptyStateView.swift index 6ca7eb0e..d82403b8 100644 --- a/Sources/OversizeUI/Status/BlankView/BlankView.swift +++ b/Sources/OversizeUI/Status/BlankView/EmptyStateView.swift @@ -6,7 +6,7 @@ import SwiftUI @available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) -public struct BlankView: View where Actions: View { +public struct EmptyStateView: View where Actions: View { private let image: Image? private let title: String private let subtitle: String? From 4e95914d921b9ead35717b008e7b4267ce5e8df6 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 7 Oct 2025 00:46:44 +0300 Subject: [PATCH 05/19] Fix macOS spcase --- Package.swift | 2 +- Sources/OversizeUI/Controls/Button/Button.swift | 5 +++-- Sources/OversizeUI/Controls/Select/SelectPicker.swift | 2 +- .../TextEditor/TextEditorPlaceholderViewModifier.swift | 2 +- Sources/OversizeUI/Core/Space.swift | 5 ----- Sources/OversizeUI/Shapes/RoundedRectangleCorner.swift | 5 ----- 6 files changed, 6 insertions(+), 15 deletions(-) diff --git a/Package.swift b/Package.swift index ae9071cd..898ab69e 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 6.2 +// swift-tools-version: 6.1 // The swift-tools-version declares the minimum version of Swift required to build this package. // swiftlint:disable all diff --git a/Sources/OversizeUI/Controls/Button/Button.swift b/Sources/OversizeUI/Controls/Button/Button.swift index adc34eca..6ef08795 100644 --- a/Sources/OversizeUI/Controls/Button/Button.swift +++ b/Sources/OversizeUI/Controls/Button/Button.swift @@ -123,6 +123,7 @@ public struct OversizeButtonStyle: ButtonStyle { .padding(.vertical, verticalPadding) .frame(maxWidth: maxWidth) .background(background(for: configuration.role)) + .glassEffect(.clear.interactive()) .overlay(loadingView(for: configuration.role)) } else { configuration.label @@ -141,10 +142,10 @@ public struct OversizeButtonStyle: ButtonStyle { @ViewBuilder private func background(for role: ButtonRole?) -> some View { - if #available(iOS 26.0, *) { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { if type != .quaternary { Capsule() - .glassEffect(.regular.tint(backgroundColor(for: role)).interactive()) + .fill(backgroundColor(for: role).opacity(backgroundOpacity)) } } else { if type != .quaternary { diff --git a/Sources/OversizeUI/Controls/Select/SelectPicker.swift b/Sources/OversizeUI/Controls/Select/SelectPicker.swift index d6559c4c..d6198e44 100644 --- a/Sources/OversizeUI/Controls/Select/SelectPicker.swift +++ b/Sources/OversizeUI/Controls/Select/SelectPicker.swift @@ -85,7 +85,7 @@ public struct SelectPicker Path { From f645266aacf4ca3274546c9a7236edf0d8cdad92 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Mon, 13 Oct 2025 20:00:58 +0300 Subject: [PATCH 06/19] Fix glass effect in buttons --- .../OversizeUI/Controls/Button/Button.swift | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Sources/OversizeUI/Controls/Button/Button.swift b/Sources/OversizeUI/Controls/Button/Button.swift index 6ef08795..5f9eb4e5 100644 --- a/Sources/OversizeUI/Controls/Button/Button.swift +++ b/Sources/OversizeUI/Controls/Button/Button.swift @@ -122,8 +122,15 @@ public struct OversizeButtonStyle: ButtonStyle { .padding(.horizontal, horizontalPadding) .padding(.vertical, verticalPadding) .frame(maxWidth: maxWidth) - .background(background(for: configuration.role)) - .glassEffect(.clear.interactive()) + .if(type != .quaternary, then: { + $0 + .background(background(for: configuration.role)) + .glassEffect(.clear.interactive()) + }, else: { + $0 + .scaleEffect(configuration.isPressed ? 1.15 : 1) + .animation(.spring(response: 0.3, dampingFraction: 0.6), value: configuration.isPressed) + }) .overlay(loadingView(for: configuration.role)) } else { configuration.label @@ -143,10 +150,9 @@ public struct OversizeButtonStyle: ButtonStyle { @ViewBuilder private func background(for role: ButtonRole?) -> some View { if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { - if type != .quaternary { - Capsule() - .fill(backgroundColor(for: role).opacity(backgroundOpacity)) - } + Capsule() + .fill(backgroundColor(for: role).opacity(backgroundOpacity)) + } else { if type != .quaternary { switch controlBorderShape { From c22b321565bae6d84960a40ea82f618911f6075e Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 28 Oct 2025 15:48:17 +0300 Subject: [PATCH 07/19] Upd --- .../Controls/Label/ToolbarLabelStyle.swift | 15 +++++++++++++++ Sources/OversizeUI/Controls/Select/Select.swift | 4 +++- .../OversizeUI/Controls/Select/SelectPicker.swift | 5 ++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift b/Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift index 9498186a..e19a7cee 100644 --- a/Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift +++ b/Sources/OversizeUI/Controls/Label/ToolbarLabelStyle.swift @@ -31,6 +31,21 @@ public struct ToolbarProminentStyle: PrimitiveButtonStyle { } } +public struct ToolbarSecondaryStyle: PrimitiveButtonStyle { + public func makeBody(configuration: Configuration) -> some View { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { + Button(configuration) + .tint(Color.onSurfacePrimary) + } else { + Button(configuration) + } + } +} + public extension PrimitiveButtonStyle where Self == ToolbarProminentStyle { static var toolbarPrimary: Self { .init() } } + +public extension PrimitiveButtonStyle where Self == ToolbarSecondaryStyle { + static var toolbarSecondary: Self { .init() } +} diff --git a/Sources/OversizeUI/Controls/Select/Select.swift b/Sources/OversizeUI/Controls/Select/Select.swift index 48a77188..0bbf70d3 100644 --- a/Sources/OversizeUI/Controls/Select/Select.swift +++ b/Sources/OversizeUI/Controls/Select/Select.swift @@ -125,9 +125,11 @@ public struct Select Date: Tue, 28 Oct 2025 16:09:22 +0300 Subject: [PATCH 08/19] Rename colors --- .../Controls/Button/BarButton.swift | 2 +- .../Controls/IconPicker/EmojiPicker.swift | 2 +- .../Controls/IconPicker/IconPicker.swift | 2 +- .../Controls/Loader/LoaderOverlayView.swift | 4 +- .../Controls/Notice/NoticeView.swift | 4 +- .../Support/SegmentedControlPreview.swift | 2 +- .../OversizeUI/Controls/Select/Select.swift | 2 +- .../Controls/Select/SelectPicker.swift | 2 +- .../OversizeUI/Controls/Surface/Surface.swift | 4 +- Sources/OversizeUI/Core/Colors.swift | 106 +++++++++++++++++- .../OversizeUI/Deprecated/PageView/Page.swift | 4 +- 11 files changed, 117 insertions(+), 17 deletions(-) diff --git a/Sources/OversizeUI/Controls/Button/BarButton.swift b/Sources/OversizeUI/Controls/Button/BarButton.swift index 0232bd35..42396616 100644 --- a/Sources/OversizeUI/Controls/Button/BarButton.swift +++ b/Sources/OversizeUI/Controls/Button/BarButton.swift @@ -160,7 +160,7 @@ public struct BarButton: View { case let .image(image, _): image .renderingMode(.template) - .onSurfacePrimaryForeground() + .onSurfacePrimary() case let .icon(icon, _): IconDeprecated(icon, color: .onSurfaceSecondary) } diff --git a/Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift b/Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift index 99e754e7..900e6399 100644 --- a/Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift +++ b/Sources/OversizeUI/Controls/IconPicker/EmojiPicker.swift @@ -82,7 +82,7 @@ public struct EmojiPicker: View { } label: { HStack(spacing: .xxSmall) { Text(label) - .onSurfacePrimaryForeground() + .onSurfacePrimary() Spacer() diff --git a/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift b/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift index d77ab43a..37df8c92 100644 --- a/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift +++ b/Sources/OversizeUI/Controls/IconPicker/IconPicker.swift @@ -82,7 +82,7 @@ public struct IconPicker: View { } label: { HStack(spacing: .xxSmall) { Text(label) - .onSurfacePrimaryForeground() + .onSurfacePrimary() Spacer() if let image = selection { diff --git a/Sources/OversizeUI/Controls/Loader/LoaderOverlayView.swift b/Sources/OversizeUI/Controls/Loader/LoaderOverlayView.swift index 7d9f0876..2fe2e362 100644 --- a/Sources/OversizeUI/Controls/Loader/LoaderOverlayView.swift +++ b/Sources/OversizeUI/Controls/Loader/LoaderOverlayView.swift @@ -60,7 +60,7 @@ public struct LoaderOverlayView: View { if showText { Text(text.isEmpty ? "Loading" : text) .headline(.semibold) - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() .offset(y: 8) } } @@ -75,7 +75,7 @@ public struct LoaderOverlayView: View { if showText { Text(text.isEmpty ? "Loading" : text) .headline(.semibold) - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() .offset(y: 8) } } diff --git a/Sources/OversizeUI/Controls/Notice/NoticeView.swift b/Sources/OversizeUI/Controls/Notice/NoticeView.swift index 5f13f1a1..6cfe81aa 100644 --- a/Sources/OversizeUI/Controls/Notice/NoticeView.swift +++ b/Sources/OversizeUI/Controls/Notice/NoticeView.swift @@ -105,7 +105,7 @@ public struct NoticeView: View where A: View { Text(title) .headline(.semibold) - .onSurfacePrimaryForeground() + .onSurfacePrimary() .multilineTextAlignment(.leading) .padding(.trailing, closeAction != nil ? .medium : .zero) } @@ -113,7 +113,7 @@ public struct NoticeView: View where A: View { subtitle.map { text in Text(text) .body(.medium) - .onSurfaceSecondaryForeground() + .onSurfaceSecondary() .multilineTextAlignment(.leading) } diff --git a/Sources/OversizeUI/Controls/SegmentedControl/Support/SegmentedControlPreview.swift b/Sources/OversizeUI/Controls/SegmentedControl/Support/SegmentedControlPreview.swift index 2e65ac9b..10b9f0c7 100644 --- a/Sources/OversizeUI/Controls/SegmentedControl/Support/SegmentedControlPreview.swift +++ b/Sources/OversizeUI/Controls/SegmentedControl/Support/SegmentedControlPreview.swift @@ -71,7 +71,7 @@ struct SegmentedControlPreview: View { Text(item) Text("Subtitle") .subheadline() - .onSurfaceSecondaryForeground() + .onSurfaceSecondary() } } .segmentedControlStyle(SelectionOnlySegmentedControlStyle()) diff --git a/Sources/OversizeUI/Controls/Select/Select.swift b/Sources/OversizeUI/Controls/Select/Select.swift index 0bbf70d3..ca94cdff 100644 --- a/Sources/OversizeUI/Controls/Select/Select.swift +++ b/Sources/OversizeUI/Controls/Select/Select.swift @@ -116,7 +116,7 @@ public struct Select some View { + nonisolated func onPrimary() -> some View { foregroundColor(Color.onPrimary) } - nonisolated func onPrimarySecondaryForeground() -> some View { + nonisolated func onPrimarySecondary() -> some View { foregroundColor(Color.onPrimarySecondary) } - nonisolated func onPrimaryTertiaryForeground() -> some View { + nonisolated func onPrimaryTertiary() -> some View { foregroundColor(Color.onPrimaryTertiary) } @@ -142,70 +142,170 @@ public extension View { foregroundColor(Color.backgroundPrimary) } + nonisolated func backgroundSecondary() -> some View { + foregroundColor(Color.backgroundSecondary) + } + + nonisolated func backgroundTertiary() -> some View { + foregroundColor(Color.backgroundTertiary) + } + + nonisolated func onBackgroundPrimary() -> some View { + foregroundColor(Color.onBackgroundPrimary) + } + + nonisolated func onBackgroundSecondary() -> some View { + foregroundColor(Color.onBackgroundSecondary) + } + + nonisolated func onBackgroundTertiary() -> some View { + foregroundColor(Color.onBackgroundTertiary) + } + + nonisolated func surfacePrimary() -> some View { + foregroundColor(Color.surfacePrimary) + } + + nonisolated func surfaceSecondary() -> some View { + foregroundColor(Color.surfaceSecondary) + } + + nonisolated func surfaceTertiary() -> some View { + foregroundColor(Color.surfaceTertiary) + } + + nonisolated func onSurfacePrimary() -> some View { + foregroundColor(Color.onSurfacePrimary) + } + + nonisolated func onSurfaceSecondary() -> some View { + foregroundColor(Color.onSurfaceSecondary) + } + + nonisolated func onSurfaceTertiary() -> some View { + foregroundColor(Color.onSurfaceTertiary) + } + + nonisolated func accent() -> some View { + foregroundColor(Color.accentColor) + } + + nonisolated func error() -> some View { + foregroundColor(Color.error) + } + + nonisolated func success() -> some View { + foregroundColor(Color.success) + } + + nonisolated func warning() -> some View { + foregroundColor(Color.warning) + } + + nonisolated func link() -> some View { + foregroundColor(Color.link) + } + + nonisolated func border() -> some View { + foregroundColor(Color.border) + } + + @available(*, deprecated, renamed: "onPrimary") + nonisolated func onPrimaryForeground() -> some View { + foregroundColor(Color.onPrimary) + } + + @available(*, deprecated, renamed: "onPrimarySecondary") + nonisolated func onPrimarySecondaryForeground() -> some View { + foregroundColor(Color.onPrimarySecondary) + } + + @available(*, deprecated, renamed: "onPrimaryTertiary") + nonisolated func onPrimaryTertiaryForeground() -> some View { + foregroundColor(Color.onPrimaryTertiary) + } + + @available(*, deprecated, renamed: "backgroundSecondary") nonisolated func backgroundSecondaryForeground() -> some View { foregroundColor(Color.backgroundSecondary) } + @available(*, deprecated, renamed: "backgroundTertiary") nonisolated func backgroundTertiaryForeground() -> some View { foregroundColor(Color.backgroundTertiary) } + @available(*, deprecated, renamed: "onBackgroundPrimary") nonisolated func onBackgroundPrimaryForeground() -> some View { foregroundColor(Color.onBackgroundPrimary) } + @available(*, deprecated, renamed: "onBackgroundSecondary") nonisolated func onBackgroundSecondaryForeground() -> some View { foregroundColor(Color.onBackgroundSecondary) } + @available(*, deprecated, renamed: "onBackgroundTertiary") nonisolated func onBackgroundTertiaryForeground() -> some View { foregroundColor(Color.onBackgroundTertiary) } + @available(*, deprecated, renamed: "surfacePrimary") nonisolated func surfacePrimaryForeground() -> some View { foregroundColor(Color.surfacePrimary) } + @available(*, deprecated, renamed: "surfaceSecondary") nonisolated func surfaceSecondaryForeground() -> some View { foregroundColor(Color.surfaceSecondary) } + @available(*, deprecated, renamed: "surfaceTertiary") nonisolated func surfaceTertiaryForeground() -> some View { foregroundColor(Color.surfaceTertiary) } + @available(*, deprecated, renamed: "onSurfacePrimary") nonisolated func onSurfacePrimaryForeground() -> some View { foregroundColor(Color.onSurfacePrimary) } + @available(*, deprecated, renamed: "onSurfaceSecondary") nonisolated func onSurfaceSecondaryForeground() -> some View { foregroundColor(Color.onSurfaceSecondary) } + @available(*, deprecated, renamed: "onSurfaceTertiary") nonisolated func onSurfaceTertiaryForeground() -> some View { foregroundColor(Color.onSurfaceTertiary) } + @available(*, deprecated, renamed: "accent") nonisolated func accentForeground() -> some View { foregroundColor(Color.accentColor) } + @available(*, deprecated, renamed: "error") nonisolated func errorForeground() -> some View { foregroundColor(Color.error) } + @available(*, deprecated, renamed: "success") nonisolated func successForeground() -> some View { foregroundColor(Color.success) } + @available(*, deprecated, renamed: "warning") nonisolated func warningForeground() -> some View { foregroundColor(Color.warning) } + @available(*, deprecated, renamed: "link") nonisolated func linkForeground() -> some View { foregroundColor(Color.link) } + @available(*, deprecated, renamed: "border") nonisolated func borderForeground() -> some View { foregroundColor(Color.border) } diff --git a/Sources/OversizeUI/Deprecated/PageView/Page.swift b/Sources/OversizeUI/Deprecated/PageView/Page.swift index f2a8e235..be4e90c3 100644 --- a/Sources/OversizeUI/Deprecated/PageView/Page.swift +++ b/Sources/OversizeUI/Deprecated/PageView/Page.swift @@ -1085,11 +1085,11 @@ struct SeartchTextFieldStyle: TextFieldStyle { HStack(spacing: .xxSmall) { Image.Base.search .renderingMode(.template) - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() configuration } - .onSurfacePrimaryForeground() + .onSurfacePrimary() .callout(.semibold) .padding(.horizontal, 12) .padding(.vertical, .xSmall) From d36f1541cfeda80e8de3e6dd4d0072f7c4f0f821 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Fri, 9 Jan 2026 20:01:32 +0300 Subject: [PATCH 09/19] Fix spaces --- .../OversizeUI/Controls/Button/Button.swift | 2 +- .../Controls/DateField/DateField.swift | 2 +- .../Controls/Divider/Separator.swift | 25 +++++-------- .../Controls/SectionView/SectionView.swift | 7 +++- .../Controls/Stacks/LeadingVStack.swift | 36 +++++++++---------- .../OversizeUI/Controls/TextBox/TextBox.swift | 4 +-- .../TextEditorPlaceholderViewModifier.swift | 6 ++-- .../TextField/FieldTitleViewModifier.swift | 2 +- .../TextField/LabeledTextFieldStyle.swift | 4 +-- .../EnvironmentKeys/AccentEnvironment.swift | 2 +- .../EnvironmentKeys/BorderedEnvironment.swift | 2 +- .../ControlBorderShapeEnvironment.swift | 2 +- .../ControlPaddingEnvironment.swift | 2 +- .../ElevationEnvironment.swift | 2 +- .../FieldLabelPositionEnvironment.swift | 2 +- .../FieldPositionEnvironment.swift | 2 +- .../IconStyleEnvironment.swift | 2 +- .../EnvironmentKeys/LoadingEnvironment.swift | 2 +- .../MultiSelectStyleEnvironment.swift | 2 +- .../EnvironmentKeys/PortraitEnvironment.swift | 2 +- .../EnvironmentKeys/PremiumEnvironment.swift | 2 +- .../EnvironmentKeys/RadiusEnvironment.swift | 2 +- .../SectionViewStyleEnvironment.swift | 2 +- .../SelectPickerStyleEnvironment.swift | 2 +- .../SurfaceElevationEnvironment.swift | 2 +- .../SurfaceRadiusEnvironment.swift | 2 +- .../EnvironmentKeys/ThemeEnvironment.swift | 2 +- .../Extensions/View/View+Available.swift | 27 +++++++++++--- .../OversizeUI/Extensions/View/View+If.swift | 12 +++++++ .../Extensions/View/View+OnChange.swift | 2 +- .../Layouts/CoverLayout/CoverLayoutView.swift | 2 ++ .../CoverLayout/CoverLayoutViewModifier.swift | 4 +-- 32 files changed, 100 insertions(+), 71 deletions(-) diff --git a/Sources/OversizeUI/Controls/Button/Button.swift b/Sources/OversizeUI/Controls/Button/Button.swift index 5f9eb4e5..a15272ee 100644 --- a/Sources/OversizeUI/Controls/Button/Button.swift +++ b/Sources/OversizeUI/Controls/Button/Button.swift @@ -114,7 +114,7 @@ public struct OversizeButtonStyle: ButtonStyle { } public func makeBody(configuration: Self.Configuration) -> some View { - if #available(iOS 26.0, *) { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { configuration.label .body(.semibold) .opacity(isLoading ? 0 : 1) diff --git a/Sources/OversizeUI/Controls/DateField/DateField.swift b/Sources/OversizeUI/Controls/DateField/DateField.swift index 07188d81..c1c1d331 100644 --- a/Sources/OversizeUI/Controls/DateField/DateField.swift +++ b/Sources/OversizeUI/Controls/DateField/DateField.swift @@ -58,7 +58,7 @@ public struct DateField: View { Text(label) .font(.subheadline) .fontWeight(.semibold) - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() } HStack { diff --git a/Sources/OversizeUI/Controls/Divider/Separator.swift b/Sources/OversizeUI/Controls/Divider/Separator.swift index fb7f6554..ea2a23c8 100644 --- a/Sources/OversizeUI/Controls/Divider/Separator.swift +++ b/Sources/OversizeUI/Controls/Divider/Separator.swift @@ -12,9 +12,10 @@ public enum SeparatorAlignment { public struct Separator: View { private let alignment: SeparatorAlignment - private let padding: Space + private let padding: CGFloat + private let lineWidth: CGFloat = 1 - public init(_ alignment: SeparatorAlignment = .horizontal, padding: Space = .zero) { + public init(_ alignment: SeparatorAlignment = .horizontal, padding: CGFloat = .zero) { self.alignment = alignment self.padding = padding } @@ -36,28 +37,20 @@ public struct Separator: View { private func insets(_ isHorizontal: Bool) -> EdgeInsets { if isHorizontal { EdgeInsets( - top: 0.5, - leading: padding.rawValue, + top: 0, + leading: padding, bottom: 0, - trailing: padding.rawValue + trailing: padding ) } else { EdgeInsets( - top: padding.rawValue, - leading: 0.5, - bottom: padding.rawValue, + top: padding, + leading: 0, + bottom: padding, trailing: 0 ) } } - - var lineWidth: CGFloat { - #if os(macOS) - return 1 - #else - return 0.5 - #endif - } } struct Separator_Preview: PreviewProvider { diff --git a/Sources/OversizeUI/Controls/SectionView/SectionView.swift b/Sources/OversizeUI/Controls/SectionView/SectionView.swift index 2c7f1ac9..7333c1ff 100644 --- a/Sources/OversizeUI/Controls/SectionView/SectionView.swift +++ b/Sources/OversizeUI/Controls/SectionView/SectionView.swift @@ -196,7 +196,12 @@ public struct SectionView: View { private var surfaceVerticalPaddingSize: CGFloat { switch style { case .default: - .small + switch titlePosition { + case .inside: + .xxSmall + case .outside: + .small + } case .smallIndent, .edgeToEdge: 2 } diff --git a/Sources/OversizeUI/Controls/Stacks/LeadingVStack.swift b/Sources/OversizeUI/Controls/Stacks/LeadingVStack.swift index f2a92936..29efdc58 100644 --- a/Sources/OversizeUI/Controls/Stacks/LeadingVStack.swift +++ b/Sources/OversizeUI/Controls/Stacks/LeadingVStack.swift @@ -6,96 +6,96 @@ import SwiftUI public struct LeadingVStack: View { - private let spacing: Space + private let spacing: CGFloat private let content: Content - public init(spacing: Space = .zero, @ViewBuilder content: () -> Content) { + public init(spacing: CGFloat = .zero, @ViewBuilder content: () -> Content) { self.spacing = spacing self.content = content() } public var body: some View { - VStack(alignment: .leading, spacing: spacing.rawValue) { + VStack(alignment: .leading, spacing: spacing) { content } } } public struct TrailingVStack: View { - private let spacing: Space + private let spacing: CGFloat private let content: Content - public init(spacing: Space = .zero, @ViewBuilder content: () -> Content) { + public init(spacing: CGFloat = .zero, @ViewBuilder content: () -> Content) { self.spacing = spacing self.content = content() } public var body: some View { - VStack(alignment: .trailing, spacing: spacing.rawValue) { + VStack(alignment: .trailing, spacing: spacing) { content } } } public struct CenterVStack: View { - private let spacing: Space + private let spacing: CGFloat private let content: Content - public init(spacing: Space = .zero, @ViewBuilder content: () -> Content) { + public init(spacing: CGFloat = .zero, @ViewBuilder content: () -> Content) { self.spacing = spacing self.content = content() } public var body: some View { - VStack(alignment: .center, spacing: spacing.rawValue) { + VStack(alignment: .center, spacing: spacing) { content } } } public struct LeadingLazyVStack: View { - private let spacing: Space + private let spacing: CGFloat private let content: Content - public init(spacing: Space = .zero, @ViewBuilder content: () -> Content) { + public init(spacing: CGFloat = .zero, @ViewBuilder content: () -> Content) { self.spacing = spacing self.content = content() } public var body: some View { - LazyVStack(alignment: .leading, spacing: spacing.rawValue) { + LazyVStack(alignment: .leading, spacing: spacing) { content } } } public struct TrailingLazyVStack: View { - private let spacing: Space + private let spacing: CGFloat private let content: Content - public init(spacing: Space = .zero, @ViewBuilder content: () -> Content) { + public init(spacing: CGFloat = .zero, @ViewBuilder content: () -> Content) { self.spacing = spacing self.content = content() } public var body: some View { - LazyVStack(alignment: .trailing, spacing: spacing.rawValue) { + LazyVStack(alignment: .trailing, spacing: spacing) { content } } } public struct CenterLazyVStack: View { - private let spacing: Space + private let spacing: CGFloat private let content: Content - public init(spacing: Space = .zero, @ViewBuilder content: () -> Content) { + public init(spacing: CGFloat = .zero, @ViewBuilder content: () -> Content) { self.spacing = spacing self.content = content() } public var body: some View { - LazyVStack(alignment: .center, spacing: spacing.rawValue) { + LazyVStack(alignment: .center, spacing: spacing) { content } } diff --git a/Sources/OversizeUI/Controls/TextBox/TextBox.swift b/Sources/OversizeUI/Controls/TextBox/TextBox.swift index e37bd5aa..8027e07e 100644 --- a/Sources/OversizeUI/Controls/TextBox/TextBox.swift +++ b/Sources/OversizeUI/Controls/TextBox/TextBox.swift @@ -33,12 +33,12 @@ public struct TextBox: View { VStack(alignment: textStackAlignment, spacing: textSpacing) { Text(title) .font(titleFont) - .onSurfacePrimaryForeground() + .onSurfacePrimary() subtitle.map { Text($0) .font(subtitleFont) - .onSurfaceSecondaryForeground() + .onSurfaceSecondary() } } .multilineTextAlignment(multilineTextAlignment) diff --git a/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift b/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift index 5bc4f65a..01881c66 100644 --- a/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift +++ b/Sources/OversizeUI/Controls/TextEditor/TextEditorPlaceholderViewModifier.swift @@ -33,7 +33,7 @@ public struct TextEditorPlaceholderViewModifier: ViewModifier { content .padding(padding) .headline(.medium) - .onSurfacePrimaryForeground() + .onSurfacePrimary() .background { ZStack { RoundedRectangle( @@ -120,7 +120,7 @@ public struct TextEditorPlaceholderViewModifier: ViewModifier { if text.isEmpty { Text(placeholder) .subheadline() - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() .opacity(0.7) .padding(labelPadding) } @@ -130,7 +130,7 @@ public struct TextEditorPlaceholderViewModifier: ViewModifier { Text(placeholder) .font(text.isEmpty ? .headline : .subheadline) .fontWeight(text.isEmpty ? .medium : .semibold) - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() .opacity(0.7) .padding(labelPadding) .offset(y: text.isEmpty ? 0 : -6) diff --git a/Sources/OversizeUI/Controls/TextField/FieldTitleViewModifier.swift b/Sources/OversizeUI/Controls/TextField/FieldTitleViewModifier.swift index f9323fd6..055a27dd 100644 --- a/Sources/OversizeUI/Controls/TextField/FieldTitleViewModifier.swift +++ b/Sources/OversizeUI/Controls/TextField/FieldTitleViewModifier.swift @@ -16,7 +16,7 @@ public struct FieldTitleViewModifier: ViewModifier { VStack(alignment: .leading, spacing: .xSmall) { Text(title) .subheadline(.medium) - .onSurfacePrimaryForeground() + .onSurfacePrimary() content } diff --git a/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift b/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift index 60b41940..8c614e0c 100644 --- a/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift +++ b/Sources/OversizeUI/Controls/TextField/LabeledTextFieldStyle.swift @@ -215,7 +215,7 @@ public struct LabeledTextFieldStyle: TextFieldStyle { if isFocused { Text(placeholder) .subheadline() - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() .opacity(0.7) #if os(macOS) .padding(.xSmall) @@ -229,7 +229,7 @@ public struct LabeledTextFieldStyle: TextFieldStyle { Text(placeholder) .font(text.isEmpty ? .headline : .subheadline) .fontWeight(text.isEmpty ? .medium : .semibold) - .onSurfaceTertiaryForeground() + .onSurfaceTertiary() #if os(macOS) .padding(.xSmall) .offset(y: text.isEmpty ? 0 : -10) diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/AccentEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/AccentEnvironment.swift index dce7fa40..3e17ec1a 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/AccentEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/AccentEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct AccentStateKey: EnvironmentKey { - public static let defaultValue: Bool = false + static let defaultValue: Bool = false } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/BorderedEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/BorderedEnvironment.swift index 74b67470..16a9c3e3 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/BorderedEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/BorderedEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct BorderedStateKey: EnvironmentKey { - public static let defaultValue: Bool = false + static let defaultValue: Bool = false } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift index 8ed8bc80..0eb3ed94 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/ControlBorderShapeEnvironment.swift @@ -11,7 +11,7 @@ public enum ControlBorderShape: Sendable { } private struct ControlBorderShapeKey: EnvironmentKey { - public static let defaultValue: ControlBorderShape = .roundedRectangle(radius: .xSmall) + static let defaultValue: ControlBorderShape = .roundedRectangle(radius: .xSmall) } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/ControlPaddingEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/ControlPaddingEnvironment.swift index 53108977..a30a09f2 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/ControlPaddingEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/ControlPaddingEnvironment.swift @@ -88,7 +88,7 @@ public struct ControlMargin: Sendable { } private struct ControlMarginKey: EnvironmentKey { - public static let defaultValue: ControlMargin = .init(.medium) + static let defaultValue: ControlMargin = .init(.medium) } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/ElevationEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/ElevationEnvironment.swift index 02c2c1d8..f8be39eb 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/ElevationEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/ElevationEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct ElevationStateKey: EnvironmentKey { - public static let defaultValue: Elevation = .z0 + static let defaultValue: Elevation = .z0 } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/FieldLabelPositionEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/FieldLabelPositionEnvironment.swift index 213014ee..a376ffc6 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/FieldLabelPositionEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/FieldLabelPositionEnvironment.swift @@ -10,7 +10,7 @@ public enum FieldLabelPosition: Sendable { } private struct FieldLabelPositionKey: EnvironmentKey { - public static let defaultValue: FieldLabelPosition = .default + static let defaultValue: FieldLabelPosition = .default } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/FieldPositionEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/FieldPositionEnvironment.swift index 6d9e3791..c3e9844c 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/FieldPositionEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/FieldPositionEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct FieldPositionKey: EnvironmentKey { - public static let defaultValue: VerticalAlignment? = nil + static let defaultValue: VerticalAlignment? = nil } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/IconStyleEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/IconStyleEnvironment.swift index 3b867fc0..afac7adc 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/IconStyleEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/IconStyleEnvironment.swift @@ -10,7 +10,7 @@ public enum IconStyle: Sendable { } private struct IconStyleKey: EnvironmentKey { - public static let defaultValue: IconStyle = .line + static let defaultValue: IconStyle = .line } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/LoadingEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/LoadingEnvironment.swift index 192685d8..b5df146e 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/LoadingEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/LoadingEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct LoadingStateKey: EnvironmentKey { - public static let defaultValue: Bool = false + static let defaultValue: Bool = false } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/MultiSelectStyleEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/MultiSelectStyleEnvironment.swift index af58cbcd..f417d312 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/MultiSelectStyleEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/MultiSelectStyleEnvironment.swift @@ -10,7 +10,7 @@ public enum MultiSelectStyle: Sendable { } private struct MultiSelectStyleKey: EnvironmentKey { - public static let defaultValue: MultiSelectStyle = .default + static let defaultValue: MultiSelectStyle = .default } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/PortraitEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/PortraitEnvironment.swift index caf3f8d0..51449920 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/PortraitEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/PortraitEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct PortraitStateKey: EnvironmentKey { - public static let defaultValue: Bool = false + static let defaultValue: Bool = false } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/PremiumEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/PremiumEnvironment.swift index d89f80a3..0d163b40 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/PremiumEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/PremiumEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct PremiumStateKey: EnvironmentKey { - public static let defaultValue: Bool = false + static let defaultValue: Bool = false } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift index 14b94432..5ceb38fc 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/RadiusEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct ControlRadiusKey: EnvironmentKey { - public static let defaultValue: CGFloat = .xSmall + static let defaultValue: CGFloat = .xSmall } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/SectionViewStyleEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/SectionViewStyleEnvironment.swift index fd3bb934..bca4d0b0 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/SectionViewStyleEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/SectionViewStyleEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct SectionViewStyleKey: EnvironmentKey { - public static let defaultValue: SectionViewStyle = .default + static let defaultValue: SectionViewStyle = .default } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/SelectPickerStyleEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/SelectPickerStyleEnvironment.swift index 422b5f13..c0e0e42f 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/SelectPickerStyleEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/SelectPickerStyleEnvironment.swift @@ -13,7 +13,7 @@ public enum SelectStyle: Sendable { } private struct SelectStyleKey: EnvironmentKey { - public static let defaultValue: SelectStyle = .default + static let defaultValue: SelectStyle = .default } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceElevationEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceElevationEnvironment.swift index 24b0810c..79eaa19e 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceElevationEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceElevationEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct SurfaceElevationStateKey: EnvironmentKey { - public static let defaultValue: Elevation = .z0 + static let defaultValue: Elevation = .z0 } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift index 1129b279..62f467f6 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/SurfaceRadiusEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct SurfaceRadiusKey: EnvironmentKey { - public static let defaultValue: CGFloat = .xSmall + static let defaultValue: CGFloat = .xSmall } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Core/EnvironmentKeys/ThemeEnvironment.swift b/Sources/OversizeUI/Core/EnvironmentKeys/ThemeEnvironment.swift index f242edf0..06fdcb5a 100644 --- a/Sources/OversizeUI/Core/EnvironmentKeys/ThemeEnvironment.swift +++ b/Sources/OversizeUI/Core/EnvironmentKeys/ThemeEnvironment.swift @@ -6,7 +6,7 @@ import SwiftUI private struct ThemeStateKey: EnvironmentKey { - public static let defaultValue = ThemeSettings() + static let defaultValue = ThemeSettings() } public extension EnvironmentValues { diff --git a/Sources/OversizeUI/Extensions/View/View+Available.swift b/Sources/OversizeUI/Extensions/View/View+Available.swift index 79d69c4d..a3f76128 100644 --- a/Sources/OversizeUI/Extensions/View/View+Available.swift +++ b/Sources/OversizeUI/Extensions/View/View+Available.swift @@ -19,7 +19,7 @@ public extension View { @ViewBuilder func scrollContentBackground(_ visibility: Visibility) -> some View { if #available(iOS 16, macOS 13.0, watchOS 9.0, *) { - self.scrollContentBackground(visibility) + scrollContentBackground(visibility) } else { self } @@ -29,7 +29,7 @@ public extension View { @ViewBuilder func presentationDragIndicator(_ visibility: Visibility) -> some View { if #available(iOS 16, macOS 13.0, tvOS 16.0, watchOS 9.0, *) { - self.presentationDragIndicator(visibility) + presentationDragIndicator(visibility) } else { self } @@ -39,7 +39,7 @@ public extension View { @ViewBuilder func presentationContentInteraction(_ behavior: PresentationContentInteraction) -> some View { if #available(iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4, *) { - self.presentationContentInteraction(behavior == .automatic ? .automatic : behavior == .resizes ? .resizes : .scrolls) + presentationContentInteraction(behavior == .automatic ? .automatic : behavior == .resizes ? .resizes : .scrolls) } else { self } @@ -49,7 +49,7 @@ public extension View { @ViewBuilder func presentationCompactAdaptation(_ adaptation: PresentationAdaptation) -> some View { if #available(iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4, *) { - self.presentationCompactAdaptation( + presentationCompactAdaptation( adaptation == .automatic ? .automatic : adaptation == .none ? .none : adaptation == .popover ? .popover : adaptation == .sheet ? .sheet : .fullScreenCover) } else { self @@ -60,9 +60,26 @@ public extension View { @ViewBuilder func scrollDisabled(_ disabled: Bool) -> some View { if #available(iOS 16.0, macOS 13.0, tvOS 16.0, watchOS 9.0, *) { - self.scrollDisabled(disabled) + scrollDisabled(disabled) } else { self } } + + @ViewBuilder + func safeAreaBarTop(alignment: HorizontalAlignment = .center, spacing: CGFloat? = nil, @ViewBuilder content: @escaping () -> some View) -> some View { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { + safeAreaBar(edge: .top, alignment: alignment, spacing: spacing, content: content) + safeAreaInset(edge: .top, alignment: alignment, spacing: spacing, content: content) + } + } + + @ViewBuilder + func safeAreaBarBottom(alignment: HorizontalAlignment = .center, spacing: CGFloat? = nil, @ViewBuilder content: @escaping () -> some View) -> some View { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { + safeAreaBar(edge: .bottom, alignment: alignment, spacing: spacing, content: content) + } else { + safeAreaInset(edge: .bottom, alignment: alignment, spacing: spacing, content: content) + } + } } diff --git a/Sources/OversizeUI/Extensions/View/View+If.swift b/Sources/OversizeUI/Extensions/View/View+If.swift index 3713e3b4..7e390037 100644 --- a/Sources/OversizeUI/Extensions/View/View+If.swift +++ b/Sources/OversizeUI/Extensions/View/View+If.swift @@ -33,3 +33,15 @@ public extension View { } } } + +public extension View { + + @ViewBuilder + func ifUnavailable26(@ViewBuilder _ modifications: (Self) -> some View) -> some View { + if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { + self + } else { + modifications(self) + } + } +} diff --git a/Sources/OversizeUI/Extensions/View/View+OnChange.swift b/Sources/OversizeUI/Extensions/View/View+OnChange.swift index bdece0f2..5177c025 100644 --- a/Sources/OversizeUI/Extensions/View/View+OnChange.swift +++ b/Sources/OversizeUI/Extensions/View/View+OnChange.swift @@ -13,7 +13,7 @@ public extension View { } #else if #available(iOS 17, macOS 14.0, *) { - return self.onChange(of: value) { _, newValue in + return onChange(of: value) { _, newValue in action(newValue) } } else { diff --git a/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutView.swift b/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutView.swift index af2a2218..220a695f 100644 --- a/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutView.swift +++ b/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutView.swift @@ -27,6 +27,7 @@ public struct CoverLayoutView< private let coverHeight: CGFloat private let onScroll: ScrollAction? var coverStyle: CoverNavigationType = .static + var contentOffset: CGFloat = 0 var contentCornerRadius: CGFloat = 0 @State private var scrollOffset: CGPoint = .zero @@ -43,6 +44,7 @@ public struct CoverLayoutView< content .background { background + .padding(.top, contentOffset) .ignoresSafeArea() .cornerRadius( contentCornerRadius, diff --git a/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift b/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift index 935d4caf..ecc9f10b 100644 --- a/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift +++ b/Sources/OversizeUI/Layouts/CoverLayout/CoverLayoutViewModifier.swift @@ -19,9 +19,9 @@ public extension CoverLayoutView { return control } - func contentCornerRadius(_ radius: Space) -> Self { + func contentOffset(_ offset: CGFloat) -> Self { var control = self - control.contentCornerRadius = radius.rawValue + control.contentOffset = offset return control } } From ee65cb8c8e761cd9d19e8e69e5a80a9db8f45a92 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sat, 10 Jan 2026 17:52:44 +0300 Subject: [PATCH 10/19] Upd --- .../Articles/Accessibility.md | 40 ++++----- .../Articles/Architecture.md | 18 ++-- .../Articles/BestPractices.md | 82 +++++++++---------- .../Documentation.docc/Articles/Theming.md | 22 ++--- .../Documentation.docc/Components/Avatar.md | 20 ++--- .../Documentation.docc/Components/Button.md | 22 ++--- .../Documentation.docc/Components/Surface.md | 20 ++--- .../Components/TextField.md | 22 ++--- .../Documentation.docc/DesignSystem/Colors.md | 34 ++++---- .../DesignSystem/Typography.md | 20 ++--- .../Documentation.docc/OversizeUI.md | 12 +-- 11 files changed, 156 insertions(+), 156 deletions(-) diff --git a/Sources/OversizeUI/Documentation.docc/Articles/Accessibility.md b/Sources/OversizeUI/Documentation.docc/Articles/Accessibility.md index d1583360..804efd67 100644 --- a/Sources/OversizeUI/Documentation.docc/Articles/Accessibility.md +++ b/Sources/OversizeUI/Documentation.docc/Articles/Accessibility.md @@ -309,7 +309,7 @@ struct FocusManagementExample: View { struct HighContrastDesign: View { var body: some View { VStack(spacing: .medium) { - // ✅ High contrast text combinations + // High contrast text combinations Text("Primary content") .foregroundColor(.onSurfacePrimary) // 21:1 contrast @@ -319,7 +319,7 @@ struct HighContrastDesign: View { Text("Tertiary content") .foregroundColor(.onSurfaceTertiary) // 4.5:1 contrast - // ✅ Status with multiple indicators + // Status with multiple indicators HStack { Circle() .fill(.success) @@ -371,23 +371,23 @@ struct MotionSensitiveAnimation: View { struct AccessibilityAuditView: View { var body: some View { VStack { - // ✅ All interactive elements have labels + // All interactive elements have labels Button("Save") { save() } .accessibilityLabel("Save document") - // ✅ Decorative images are hidden + // Decorative images are hidden Image("decorative-pattern") .accessibilityHidden(true) - // ✅ Informative images have descriptions + // Informative images have descriptions Image("chart-data") .accessibilityLabel("Sales increased 25% this quarter") - // ✅ Form fields have clear labels + // Form fields have clear labels TextField("Enter email", text: .constant("")) .accessibilityLabel("Email address") - // ✅ Status updates are announced + // Status updates are announced if isLoading { ProgressView("Loading...") .accessibilityLabel("Loading content") @@ -479,22 +479,22 @@ struct macOSAccessibilityFeatures: View { ### Do's -- ✅ Test with VoiceOver and other assistive technologies -- ✅ Use semantic color names that convey meaning -- ✅ Provide meaningful accessibility labels for all interactive elements -- ✅ Support Dynamic Type and test with larger font sizes -- ✅ Use proper heading hierarchy with `.accessibilityHeading()` -- ✅ Group related elements with `.accessibilityElement(children: .combine)` -- ✅ Respect user preferences for reduced motion and transparency +- Test with VoiceOver and other assistive technologies +- Use semantic color names that convey meaning +- Provide meaningful accessibility labels for all interactive elements +- Support Dynamic Type and test with larger font sizes +- Use proper heading hierarchy with `.accessibilityHeading()` +- Group related elements with `.accessibilityElement(children: .combine)` +- Respect user preferences for reduced motion and transparency ### Don'ts -- ❌ Don't rely solely on color to convey information -- ❌ Don't use vague labels like "Button" or "Image" -- ❌ Don't make touch targets smaller than 44x44 points -- ❌ Don't ignore accessibility when using custom gestures -- ❌ Don't forget to test with assistive technologies -- ❌ Don't override accessibility unless absolutely necessary +- Don't rely solely on color to convey information +- Don't use vague labels like "Button" or "Image" +- Don't make touch targets smaller than 44x44 points +- Don't ignore accessibility when using custom gestures +- Don't forget to test with assistive technologies +- Don't override accessibility unless absolutely necessary ## Accessibility Resources diff --git a/Sources/OversizeUI/Documentation.docc/Articles/Architecture.md b/Sources/OversizeUI/Documentation.docc/Articles/Architecture.md index 94b61130..f6477af1 100644 --- a/Sources/OversizeUI/Documentation.docc/Articles/Architecture.md +++ b/Sources/OversizeUI/Documentation.docc/Articles/Architecture.md @@ -13,7 +13,7 @@ OversizeUI is architected with SwiftUI's declarative paradigm in mind, providing OversizeUI favors composition patterns that make components more flexible and testable: ```swift -// ✅ Composition - Flexible and reusable +// Composition - Flexible and reusable struct ProfileCard: View { let user: User @@ -36,7 +36,7 @@ struct ProfileCard: View { } } -// ❌ Inheritance - Less flexible +// Inheritance - Less flexible class CustomButton: OversizeButton { // Difficult to extend and maintain } @@ -47,7 +47,7 @@ class CustomButton: OversizeButton { Each component has a clear, focused purpose: ```swift -// ✅ Single responsibility +// Single responsibility struct UserAvatar: View { let user: User @@ -68,7 +68,7 @@ struct UserInfo: View { } } -// ✅ Composed from focused components +// Composed from focused components struct UserRow: View { let user: User @@ -440,12 +440,12 @@ class ListViewModel: ObservableObject { @Published var items: [Item] = [] func updateItem(_ item: Item) { - // ✅ Efficient - only updates specific item + // Efficient - only updates specific item if let index = items.firstIndex(where: { $0.id == item.id }) { items[index] = item } - // ❌ Inefficient - triggers full list update + // Inefficient - triggers full list update // items = items.map { $0.id == item.id ? item : $0 } } } @@ -494,17 +494,17 @@ Sources/ ### Naming Conventions ```swift -// ✅ Clear, descriptive names +// Clear, descriptive names struct UserProfileCard: View { } struct ProductListRow: View { } struct SettingsToggleRow: View { } -// ✅ Consistent modifier naming +// Consistent modifier naming func primaryAction() -> some View func cardStyle() -> some View func destructiveAction() -> some View -// ✅ Semantic environment values +// Semantic environment values @Environment(\.theme) var theme @Environment(\.isLoading) var isLoading ``` diff --git a/Sources/OversizeUI/Documentation.docc/Articles/BestPractices.md b/Sources/OversizeUI/Documentation.docc/Articles/BestPractices.md index a1af8c31..49d0c92e 100644 --- a/Sources/OversizeUI/Documentation.docc/Articles/BestPractices.md +++ b/Sources/OversizeUI/Documentation.docc/Articles/BestPractices.md @@ -11,49 +11,49 @@ This guide provides best practices, patterns, and recommendations for building h ### Button Best Practices ```swift -// ✅ Use semantic button styles +// Use semantic button styles Button("Save Document") { save() } .buttonStyle(.primary) // Clear primary action Button("Cancel") { cancel() } .buttonStyle(.tertiary) // Secondary action -// ✅ Provide clear, action-oriented labels +// Provide clear, action-oriented labels Button("Delete Photo") { deletePhoto() } .buttonStyle(.primary) .accent(.red) -// ❌ Avoid vague labels +// Avoid vague labels Button("OK") { } // What does OK do? ``` ### TextField Best Practices ```swift -// ✅ Provide helpful placeholder text +// Provide helpful placeholder text TextField("Enter your email address", text: $email) .keyboardType(.emailAddress) .autocapitalization(.none) -// ✅ Use validation appropriately +// Use validation appropriately TextField("Password", text: $password) .fieldHelper(passwordStrength, style: $helperStyle) .onChange(of: password) { validatePassword($0) } -// ❌ Don't use placeholder as label +// Don't use placeholder as label TextField("Email", text: $email) // Placeholder disappears when typing ``` ### Layout Best Practices ```swift -// ✅ Use consistent spacing +// Use consistent spacing VStack(spacing: .medium) { // Consistent spacing token Text("Title") Text("Content") } -// ✅ Group related content +// Group related content SectionView("Account Settings") { VStack(spacing: .small) { Row("Profile") @@ -62,7 +62,7 @@ SectionView("Account Settings") { } } -// ❌ Inconsistent spacing +// Inconsistent spacing VStack(spacing: 17) { // Arbitrary value Text("Title") Text("Content") @@ -74,7 +74,7 @@ VStack(spacing: 17) { // Arbitrary value ### Efficient List Rendering ```swift -// ✅ Use LazyVStack for large lists +// Use LazyVStack for large lists LazyVStack { ForEach(items) { item in ItemRow(item: item) @@ -84,7 +84,7 @@ LazyVStack { } } -// ✅ Minimize state updates +// Minimize state updates class ListViewModel: ObservableObject { @Published var items: [Item] = [] @@ -99,7 +99,7 @@ class ListViewModel: ObservableObject { ### Memory Management ```swift -// ✅ Clean up resources +// Clean up resources struct AsyncImageView: View { @StateObject private var loader = ImageLoader() @@ -117,7 +117,7 @@ struct AsyncImageView: View { ### Local State for Simple UI ```swift -// ✅ Use @State for simple, local state +// Use @State for simple, local state struct ToggleView: View { @State private var isEnabled = false @@ -130,7 +130,7 @@ struct ToggleView: View { ### ObservableObject for Complex State ```swift -// ✅ Use ObservableObject for complex state +// Use ObservableObject for complex state class UserProfileViewModel: ObservableObject { @Published var user: User @Published var isLoading = false @@ -154,7 +154,7 @@ class UserProfileViewModel: ObservableObject { ### Semantic Structure ```swift -// ✅ Use proper heading hierarchy +// Use proper heading hierarchy VStack(alignment: .leading) { Text("Main Title") .title() @@ -172,7 +172,7 @@ VStack(alignment: .leading) { ### Meaningful Labels ```swift -// ✅ Provide descriptive accessibility labels +// Provide descriptive accessibility labels Button { toggleFavorite() } label: { @@ -181,7 +181,7 @@ Button { .accessibilityLabel(isFavorite ? "Remove from favorites" : "Add to favorites") .accessibilityHint("Double-tap to toggle favorite status") -// ✅ Group related elements +// Group related elements HStack { Avatar(firstName: user.firstName, lastName: user.lastName) VStack(alignment: .leading) { @@ -198,7 +198,7 @@ HStack { ### User-Friendly Error Messages ```swift -// ✅ Provide helpful error messages +// Provide helpful error messages struct ErrorView: View { let error: AppError let retry: () -> Void @@ -231,7 +231,7 @@ struct ErrorView: View { ### Graceful Degradation ```swift -// ✅ Handle loading and error states +// Handle loading and error states struct ContentView: View { @StateObject private var viewModel = ContentViewModel() @@ -259,7 +259,7 @@ struct ContentView: View { ### Component Testing ```swift -// ✅ Test component behavior +// Test component behavior import XCTest import SwiftUI @testable import OversizeUI @@ -284,7 +284,7 @@ class ButtonTests: XCTestCase { ### Preview Testing ```swift -// ✅ Test different states in previews +// Test different states in previews struct ButtonPreviews: PreviewProvider { static var previews: some View { VStack(spacing: .medium) { @@ -330,12 +330,12 @@ Sources/MyApp/ ### Naming Conventions ```swift -// ✅ Clear, descriptive names +// Clear, descriptive names struct UserProfileCard: View { } struct SettingsToggleRow: View { } struct LoadingIndicator: View { } -// ✅ Consistent modifier naming +// Consistent modifier naming extension View { func primaryAction() -> some View { } func cardStyle() -> some View { } @@ -348,7 +348,7 @@ extension View { ### Loading States ```swift -// ✅ Consistent loading pattern +// Consistent loading pattern struct AsyncButton: View { @State private var isLoading = false let action: () async -> Void @@ -376,7 +376,7 @@ struct AsyncButton: View { ### Navigation Patterns ```swift -// ✅ Consistent navigation +// Consistent navigation struct MainNavigationView: View { var body: some View { TabView { @@ -398,25 +398,25 @@ struct MainNavigationView: View { ### Do's -- ✅ Use semantic component styles consistently -- ✅ Follow accessibility guidelines -- ✅ Provide meaningful error messages -- ✅ Test components with different states -- ✅ Use design system tokens for spacing and colors -- ✅ Clean up resources when views disappear -- ✅ Provide descriptive accessibility labels -- ✅ Use consistent naming conventions +- Use semantic component styles consistently +- Follow accessibility guidelines +- Provide meaningful error messages +- Test components with different states +- Use design system tokens for spacing and colors +- Clean up resources when views disappear +- Provide descriptive accessibility labels +- Use consistent naming conventions ### Don'ts -- ❌ Hardcode colors or spacing values -- ❌ Ignore accessibility requirements -- ❌ Use vague button labels or error messages -- ❌ Forget to handle loading and error states -- ❌ Skip testing with assistive technologies -- ❌ Overuse high elevation surfaces -- ❌ Rely solely on color to convey information -- ❌ Ignore platform conventions +- Hardcode colors or spacing values +- Ignore accessibility requirements +- Use vague button labels or error messages +- Forget to handle loading and error states +- Skip testing with assistive technologies +- Overuse high elevation surfaces +- Rely solely on color to convey information +- Ignore platform conventions ## See Also diff --git a/Sources/OversizeUI/Documentation.docc/Articles/Theming.md b/Sources/OversizeUI/Documentation.docc/Articles/Theming.md index ab0aafe6..896ae97b 100644 --- a/Sources/OversizeUI/Documentation.docc/Articles/Theming.md +++ b/Sources/OversizeUI/Documentation.docc/Articles/Theming.md @@ -561,20 +561,20 @@ extension ThemeSettings { ### Do's -- ✅ Test themes with accessibility tools -- ✅ Provide light and dark variants for custom colors -- ✅ Use semantic naming for theme properties -- ✅ Validate contrast ratios for accessibility compliance -- ✅ Document theme usage and guidelines -- ✅ Test themes across all supported platforms +- Test themes with accessibility tools +- Provide light and dark variants for custom colors +- Use semantic naming for theme properties +- Validate contrast ratios for accessibility compliance +- Document theme usage and guidelines +- Test themes across all supported platforms ### Don'ts -- ❌ Don't hardcode colors outside the theme system -- ❌ Don't ignore platform conventions -- ❌ Don't sacrifice accessibility for visual appeal -- ❌ Don't create too many theme variations -- ❌ Don't forget to test edge cases (large text, high contrast) +- Don't hardcode colors outside the theme system +- Don't ignore platform conventions +- Don't sacrifice accessibility for visual appeal +- Don't create too many theme variations +- Don't forget to test edge cases (large text, high contrast) ## See Also diff --git a/Sources/OversizeUI/Documentation.docc/Components/Avatar.md b/Sources/OversizeUI/Documentation.docc/Components/Avatar.md index 3e3e5784..d73b4054 100644 --- a/Sources/OversizeUI/Documentation.docc/Components/Avatar.md +++ b/Sources/OversizeUI/Documentation.docc/Components/Avatar.md @@ -236,19 +236,19 @@ Avatars automatically scale with Dynamic Type settings to ensure legibility for ### Do's -- ✅ Use consistent avatar sizes within the same context -- ✅ Provide fallback initials for all users -- ✅ Use appropriate contrast for initials on background colors -- ✅ Include meaningful accessibility labels for profile images -- ✅ Consider using stroke borders to improve visual hierarchy +- Use consistent avatar sizes within the same context +- Provide fallback initials for all users +- Use appropriate contrast for initials on background colors +- Include meaningful accessibility labels for profile images +- Consider using stroke borders to improve visual hierarchy ### Don'ts -- ❌ Don't use avatars for non-user entities (use icons instead) -- ❌ Don't make avatars too small to be recognizable -- ❌ Don't use low-contrast color combinations -- ❌ Don't rely solely on color to convey information -- ❌ Don't forget to handle loading states for remote images +- Don't use avatars for non-user entities (use icons instead) +- Don't make avatars too small to be recognizable +- Don't use low-contrast color combinations +- Don't rely solely on color to convey information +- Don't forget to handle loading states for remote images ## API Reference diff --git a/Sources/OversizeUI/Documentation.docc/Components/Button.md b/Sources/OversizeUI/Documentation.docc/Components/Button.md index 34885fe1..29209aee 100644 --- a/Sources/OversizeUI/Documentation.docc/Components/Button.md +++ b/Sources/OversizeUI/Documentation.docc/Components/Button.md @@ -404,20 +404,20 @@ Button { ### Do's -- ✅ Use primary buttons for the main action on a screen -- ✅ Limit to one primary button per screen section -- ✅ Use consistent button sizes within the same context -- ✅ Provide clear, action-oriented button labels -- ✅ Use loading states for asynchronous operations -- ✅ Group related buttons logically +- Use primary buttons for the main action on a screen +- Limit to one primary button per screen section +- Use consistent button sizes within the same context +- Provide clear, action-oriented button labels +- Use loading states for asynchronous operations +- Group related buttons logically ### Don'ts -- ❌ Don't use multiple primary buttons in the same area -- ❌ Don't make buttons too small to tap comfortably (minimum 44x44 points) -- ❌ Don't rely solely on color to convey button state -- ❌ Don't use vague labels like "OK" or "Submit" -- ❌ Don't forget to handle disabled and loading states +- Don't use multiple primary buttons in the same area +- Don't make buttons too small to tap comfortably (minimum 44x44 points) +- Don't rely solely on color to convey button state +- Don't use vague labels like "OK" or "Submit" +- Don't forget to handle disabled and loading states ## API Reference diff --git a/Sources/OversizeUI/Documentation.docc/Components/Surface.md b/Sources/OversizeUI/Documentation.docc/Components/Surface.md index 0a104ef4..6443beba 100644 --- a/Sources/OversizeUI/Documentation.docc/Components/Surface.md +++ b/Sources/OversizeUI/Documentation.docc/Components/Surface.md @@ -485,19 +485,19 @@ Choose backgrounds that support content hierarchy: #### Do's -- ✅ Use consistent elevation levels throughout your app -- ✅ Ensure sufficient contrast between surface and content -- ✅ Group related content within surfaces -- ✅ Use elevation to guide user attention -- ✅ Test surfaces in both light and dark modes +- Use consistent elevation levels throughout your app +- Ensure sufficient contrast between surface and content +- Group related content within surfaces +- Use elevation to guide user attention +- Test surfaces in both light and dark modes #### Don'ts -- ❌ Don't overuse high elevation levels -- ❌ Don't nest surfaces with the same elevation -- ❌ Don't use surfaces for purely decorative purposes -- ❌ Don't ignore touch target sizes on interactive surfaces -- ❌ Don't use elevation as the only visual separator +- Don't overuse high elevation levels +- Don't nest surfaces with the same elevation +- Don't use surfaces for purely decorative purposes +- Don't ignore touch target sizes on interactive surfaces +- Don't use elevation as the only visual separator ## API Reference diff --git a/Sources/OversizeUI/Documentation.docc/Components/TextField.md b/Sources/OversizeUI/Documentation.docc/Components/TextField.md index cd05f7dc..60f4ae8c 100644 --- a/Sources/OversizeUI/Documentation.docc/Components/TextField.md +++ b/Sources/OversizeUI/Documentation.docc/Components/TextField.md @@ -394,20 +394,20 @@ TextField("Credit Card Number", text: $cardNumber) ### Do's -- ✅ Use clear, descriptive placeholder text -- ✅ Provide helpful validation messages -- ✅ Group related fields logically -- ✅ Use appropriate keyboard types -- ✅ Show field requirements upfront -- ✅ Provide real-time validation feedback +- Use clear, descriptive placeholder text +- Provide helpful validation messages +- Group related fields logically +- Use appropriate keyboard types +- Show field requirements upfront +- Provide real-time validation feedback ### Don'ts -- ❌ Don't use placeholder text as labels -- ❌ Don't show error messages before user interaction -- ❌ Don't make required fields unclear -- ❌ Don't use generic error messages -- ❌ Don't forget to handle empty states +- Don't use placeholder text as labels +- Don't show error messages before user interaction +- Don't make required fields unclear +- Don't use generic error messages +- Don't forget to handle empty states ## API Reference diff --git a/Sources/OversizeUI/Documentation.docc/DesignSystem/Colors.md b/Sources/OversizeUI/Documentation.docc/DesignSystem/Colors.md index 7bd437af..9f5b70b1 100644 --- a/Sources/OversizeUI/Documentation.docc/DesignSystem/Colors.md +++ b/Sources/OversizeUI/Documentation.docc/DesignSystem/Colors.md @@ -229,7 +229,7 @@ extension Color { All color combinations meet accessibility standards: ```swift -// ✅ High contrast combinations +// High contrast combinations Text("Primary text") .foregroundColor(.onSurfacePrimary) // 21:1 contrast ratio @@ -239,7 +239,7 @@ Text("Secondary text") Text("Tertiary text") .foregroundColor(.onSurfaceTertiary) // 4.5:1 contrast ratio -// ❌ Avoid low contrast +// Avoid low contrast Text("Hard to read") .foregroundColor(.onSurfaceDisabled) // Only for disabled states ``` @@ -249,7 +249,7 @@ Text("Hard to read") Never rely solely on color to convey information: ```swift -// ✅ Good: Color + icon + text +// Good: Color + icon + text HStack { Icon(.checkmark) .foregroundColor(.success) @@ -257,7 +257,7 @@ HStack { .foregroundColor(.success) } -// ✅ Good: Color + shape + text +// Good: Color + shape + text HStack { Circle() .fill(.error) @@ -265,7 +265,7 @@ HStack { Text("Error occurred") } -// ❌ Bad: Color only +// Bad: Color only Text("Important") .foregroundColor(.error) // Color alone doesn't convey importance ``` @@ -463,21 +463,21 @@ struct AlertBanner: View { ### Do's -- ✅ Use semantic color names for maintainability -- ✅ Test colors in both light and dark modes -- ✅ Ensure sufficient contrast for all text -- ✅ Use color consistently throughout your app -- ✅ Provide alternative indicators beyond color -- ✅ Consider color blindness when designing +- Use semantic color names for maintainability +- Test colors in both light and dark modes +- Ensure sufficient contrast for all text +- Use color consistently throughout your app +- Provide alternative indicators beyond color +- Consider color blindness when designing ### Don'ts -- ❌ Don't hardcode color values in components -- ❌ Don't use pure black or white for text -- ❌ Don't rely solely on color to convey meaning -- ❌ Don't ignore accessibility contrast requirements -- ❌ Don't use too many accent colors -- ❌ Don't forget to test with high contrast settings +- Don't hardcode color values in components +- Don't use pure black or white for text +- Don't rely solely on color to convey meaning +- Don't ignore accessibility contrast requirements +- Don't use too many accent colors +- Don't forget to test with high contrast settings ## API Reference diff --git a/Sources/OversizeUI/Documentation.docc/DesignSystem/Typography.md b/Sources/OversizeUI/Documentation.docc/DesignSystem/Typography.md index 95303300..a3ae7dd3 100644 --- a/Sources/OversizeUI/Documentation.docc/DesignSystem/Typography.md +++ b/Sources/OversizeUI/Documentation.docc/DesignSystem/Typography.md @@ -375,19 +375,19 @@ Text("Serif Design") ### Do's -- ✅ Use semantic typography styles for proper hierarchy -- ✅ Ensure sufficient color contrast (4.5:1 minimum) -- ✅ Test with various Dynamic Type sizes -- ✅ Use meaningful text that can be read by VoiceOver -- ✅ Limit line length for better readability (45-75 characters) +- Use semantic typography styles for proper hierarchy +- Ensure sufficient color contrast (4.5:1 minimum) +- Test with various Dynamic Type sizes +- Use meaningful text that can be read by VoiceOver +- Limit line length for better readability (45-75 characters) ### Don'ts -- ❌ Don't use typography purely for visual effect -- ❌ Don't disable Dynamic Type without good reason -- ❌ Don't rely solely on font size to convey information -- ❌ Don't use too many different typography styles in one view -- ❌ Don't forget to test with larger accessibility font sizes +- Don't use typography purely for visual effect +- Don't disable Dynamic Type without good reason +- Don't rely solely on font size to convey information +- Don't use too many different typography styles in one view +- Don't forget to test with larger accessibility font sizes ## Typography Hierarchy Guidelines diff --git a/Sources/OversizeUI/Documentation.docc/OversizeUI.md b/Sources/OversizeUI/Documentation.docc/OversizeUI.md index fd257f7a..ac562511 100644 --- a/Sources/OversizeUI/Documentation.docc/OversizeUI.md +++ b/Sources/OversizeUI/Documentation.docc/OversizeUI.md @@ -8,12 +8,12 @@ OversizeUI is a comprehensive SwiftUI component library that provides production ### Key Features -- **🎨 Complete Design System**: Cohesive visual language with customizable themes -- **♿ Accessibility First**: WCAG 2.1 compliant with built-in accessibility features -- **🌙 Dark Mode Support**: Native dark theme support with automatic color adaptation -- **📱 Multi-Platform**: iOS, macOS, tvOS, watchOS, and visionOS support -- **🎛️ Highly Customizable**: Flexible theming system with extensive customization options -- **📚 Well Documented**: Comprehensive documentation with live examples +- **Complete Design System**: Cohesive visual language with customizable themes +- **Accessibility First**: WCAG 2.1 compliant with built-in accessibility features +- **Dark Mode Support**: Native dark theme support with automatic color adaptation +- **Multi-Platform**: iOS, macOS, tvOS, watchOS, and visionOS support +- **Highly Customizable**: Flexible theming system with extensive customization options +- **Well Documented**: Comprehensive documentation with live examples ### Quick Start From 1a6fd0dee1a0b318a2fd5d623d72ec47c155913b Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 12:12:13 +0300 Subject: [PATCH 11/19] Remove macOS destination from CI configuration Removed macOS destination from CI workflow. --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cfe0d218..53c91f95 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,6 @@ jobs: - platform=iOS Simulator,name=iPhone 16,OS=18.1 - platform=watchOS Simulator,name=Apple Watch SE (40mm) (2nd generation),OS=11.1 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=18.1 - - platform=macOS,arch=arm64 with: package: OversizeUI destination: ${{ matrix.destination }} From c1230a47dd3e6ccd04b96fecfa7de0682404b130 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 12:26:04 +0300 Subject: [PATCH 12/19] Update CI --- .github/workflows/ci.yml | 17 +++++++++-------- .../OversizeUI/Extensions/View/View+If.swift | 1 - 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53c91f95..2747fdb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,9 +17,10 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 16,OS=18.1 - - platform=watchOS Simulator,name=Apple Watch SE (40mm) (2nd generation),OS=11.1 - - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=18.1 + - platform=iOS Simulator,name=iPhone 17,OS=26.2 + - platform=watchOS Simulator,name=Apple Watch SE 3 (40mm),OS=26.2 + - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=26.2 + - platform=macOS,arch=arm64 with: package: OversizeUI destination: ${{ matrix.destination }} @@ -32,8 +33,8 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 16 Pro,OS=18.1 - - platform=iOS Simulator,name=iPad (10th generation),OS=18.1 + - platform=iOS Simulator,name=iPhone 17 Pro,OS=26.2 + - platform=iOS Simulator,name=iPad Air 11-inch (M3),OS=26.2 with: path: Example/Example scheme: Example (iOS) @@ -57,8 +58,8 @@ jobs: strategy: matrix: destination: - - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=18.1 - - platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=18.1 + - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=26.2 + - platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=26.2 with: path: Example/Example scheme: Example (tvOS) @@ -72,7 +73,7 @@ jobs: strategy: matrix: destination: - - platform=watchOS Simulator,name=Apple Watch SE (40mm) (2nd generation),OS=11.1 + - platform=watchOS Simulator,name=Apple Watch SE 3 (40mm),OS=26.2 with: path: Example/Example scheme: Example (watchOS) diff --git a/Sources/OversizeUI/Extensions/View/View+If.swift b/Sources/OversizeUI/Extensions/View/View+If.swift index 7e390037..b8b7f2b2 100644 --- a/Sources/OversizeUI/Extensions/View/View+If.swift +++ b/Sources/OversizeUI/Extensions/View/View+If.swift @@ -35,7 +35,6 @@ public extension View { } public extension View { - @ViewBuilder func ifUnavailable26(@ViewBuilder _ modifications: (Self) -> some View) -> some View { if #available(iOS 26.0, macOS 26.0, tvOS 26.0, watchOS 26.0, *) { From b33b53305b3d4db61f2147e4b3dc50e8bce60ba5 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 12:34:32 +0300 Subject: [PATCH 13/19] Update gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3b9f5a8e..9eaecd1d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ DerivedData/ /.idea/ /Package.resolved /Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm +/AGENTS.md +/CLAUDE.md From 1dd8096a12f9f99c65878c88ed02d4d4a39980ad Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 12:42:13 +0300 Subject: [PATCH 14/19] Fix --- Sources/OversizeUI/Extensions/View/View+OnChange.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/OversizeUI/Extensions/View/View+OnChange.swift b/Sources/OversizeUI/Extensions/View/View+OnChange.swift index 5177c025..fe1f844d 100644 --- a/Sources/OversizeUI/Extensions/View/View+OnChange.swift +++ b/Sources/OversizeUI/Extensions/View/View+OnChange.swift @@ -12,7 +12,7 @@ public extension View { action(newValue) } #else - if #available(iOS 17, macOS 14.0, *) { + if #available(iOS 17, macOS 14.0, tvOS 17.0, watchOS 10.0, *) { return onChange(of: value) { _, newValue in action(newValue) } From e1b36a2c5ffcb9cc19800f3ab15cac3b29b22384 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 14:23:35 +0300 Subject: [PATCH 15/19] Fix List --- .../Layouts/ListLayout/ListLayoutView.swift | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift b/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift index f8a85498..26147ca7 100644 --- a/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift +++ b/Sources/OversizeUI/Layouts/ListLayout/ListLayoutView.swift @@ -22,11 +22,19 @@ public struct ListLayoutView< private let title: String public var body: some View { - SwiftUI.List(selection: $selection) { - content + if #available(watchOS 10.0, *) { + SwiftUI.List(selection: $selection) { + content + } + .navigationTitle(title) + .background(background.ignoresSafeArea()) + } else { + SwiftUI.List { + content + } + .navigationTitle(title) + .background(background.ignoresSafeArea()) } - .navigationTitle(title) - .background(background.ignoresSafeArea()) } public init( @@ -40,6 +48,7 @@ public struct ListLayoutView< _selection = .constant(nil) } + @available(watchOS, unavailable) public init( _ title: String, selection: Binding?>, @@ -75,7 +84,8 @@ public struct ListLayoutView< } } -@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *) +@available(iOS 17.0, macOS 14.0, tvOS 17.0, *) +@available(watchOS, unavailable) #Preview("With Selection") { @Previewable @State var selectedItems: Set? = [] From b778ab8084eac8eb279ac0f711808a9cd2b9bac2 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 14:47:48 +0300 Subject: [PATCH 16/19] Fix Demo --- .../DemoPages/SegmentedControlDemo.swift | 2 +- Example/Shared/DemoPages/SelectDemo.swift | 20 +++++++++++++------ Example/Shared/DemoPages/SurfaceDemo.swift | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Example/Shared/DemoPages/SegmentedControlDemo.swift b/Example/Shared/DemoPages/SegmentedControlDemo.swift index 7eed6f35..76b556a0 100644 --- a/Example/Shared/DemoPages/SegmentedControlDemo.swift +++ b/Example/Shared/DemoPages/SegmentedControlDemo.swift @@ -62,7 +62,7 @@ struct SegmentedControlDemo: View { Text(item) Text("Subtitle") .subheadline() - .onSurfacePrimaryForeground() + .onSurfacePrimary() } } .segmentedControlStyle(SelectionOnlySegmentedControlStyle()) diff --git a/Example/Shared/DemoPages/SelectDemo.swift b/Example/Shared/DemoPages/SelectDemo.swift index f4c5b41c..f795c98c 100644 --- a/Example/Shared/DemoPages/SelectDemo.swift +++ b/Example/Shared/DemoPages/SelectDemo.swift @@ -13,14 +13,22 @@ struct SelectDemo: View { var body: some View { PageView("Select") { - VStack { - Select("Select", items, selection: $selection) { item, isSelect in - Radio(item, isOn: isSelect) - } selectionView: { selected in - Text(selected) + if #available(iOS 17.0, *) { + VStack { + Select("Select", items, selection: $selection) { item, isSelect in + Radio(item, isOn: isSelect) + } selectionView: { selected in + Text(selected) + } } + .padding() + } else { + VStack { + Text("Select is available in iOS 17.0 or newer") + .foregroundColor(.onSurfaceSecondary) + } + .padding() } - .padding() } .leadingBar { BarButton(.back) diff --git a/Example/Shared/DemoPages/SurfaceDemo.swift b/Example/Shared/DemoPages/SurfaceDemo.swift index a78dc669..449a6f59 100644 --- a/Example/Shared/DemoPages/SurfaceDemo.swift +++ b/Example/Shared/DemoPages/SurfaceDemo.swift @@ -13,7 +13,7 @@ struct SurfaceDemo: View { Surface { Text("Text") .title3() - .onSurfacePrimaryForeground() + .onSurfacePrimary() } .surfaceStyle(.secondary) From 5b745d3dc64db2a872e5c54dcbdc7e2328e81cc4 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 20:20:42 +0300 Subject: [PATCH 17/19] Fix ci --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2747fdb9..1c5ea1e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 17,OS=26.2 + - platform=iOS Simulator,name=iPhone 17 Pro,OS=26.2 - platform=watchOS Simulator,name=Apple Watch SE 3 (40mm),OS=26.2 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=26.2 - platform=macOS,arch=arm64 From dfccbbe92910bc41e89591b9bc61f841dd17255a Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 21:53:34 +0300 Subject: [PATCH 18/19] Fix demo --- Example/Shared/DemoPages/SelectDemo.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Example/Shared/DemoPages/SelectDemo.swift b/Example/Shared/DemoPages/SelectDemo.swift index f795c98c..585c12e3 100644 --- a/Example/Shared/DemoPages/SelectDemo.swift +++ b/Example/Shared/DemoPages/SelectDemo.swift @@ -13,7 +13,7 @@ struct SelectDemo: View { var body: some View { PageView("Select") { - if #available(iOS 17.0, *) { + if #available(iOS 17.0, watchOS 10.0, tvOS 17.0, *) { VStack { Select("Select", items, selection: $selection) { item, isSelect in Radio(item, isOn: isSelect) @@ -24,7 +24,7 @@ struct SelectDemo: View { .padding() } else { VStack { - Text("Select is available in iOS 17.0 or newer") + Text("Select is available in iOS 17.0, watchOS 10.0, tvOS 17.0 or newer") .foregroundColor(.onSurfaceSecondary) } .padding() From e0e4c593cbc6568ce63887f5ba0da65192ec80e5 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Tue, 13 Jan 2026 22:56:23 +0300 Subject: [PATCH 19/19] Up version --- Example/Example.xcodeproj/project.pbxproj | 52 ++++++++----------- .../xcschemes/Example (iOS).xcscheme | 2 +- .../xcschemes/Example (macOS).xcscheme | 2 +- Example/macOS/macOS.entitlements | 7 +-- 4 files changed, 26 insertions(+), 37 deletions(-) diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj index bb6f3ce7..0c889986 100644 --- a/Example/Example.xcodeproj/project.pbxproj +++ b/Example/Example.xcodeproj/project.pbxproj @@ -514,7 +514,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastSwiftUpdateCheck = 1250; - LastUpgradeCheck = 1610; + LastUpgradeCheck = 2620; TargetAttributes = { 1101694926E41DE10035CB67 = { CreatedOnToolsVersion = 12.5.1; @@ -755,8 +755,7 @@ buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ER582ZK85C; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 18.6; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = romanov.cc.Example; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -770,8 +769,7 @@ buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ER582ZK85C; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 18.6; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = romanov.cc.Example; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -789,7 +787,6 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; INFOPLIST_FILE = "Example WatchKit App/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", @@ -802,7 +799,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 11.6; }; name = Debug; }; @@ -814,7 +811,6 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; INFOPLIST_FILE = "Example WatchKit App/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/Frameworks", @@ -827,7 +823,7 @@ SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 4; VALIDATE_PRODUCT = YES; - WATCHOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 11.6; }; name = Release; }; @@ -836,7 +832,6 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; INFOPLIST_FILE = ExampleTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -849,7 +844,7 @@ SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 4; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Example (watchOS).app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Example (watchOS)"; - WATCHOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 11.6; }; name = Debug; }; @@ -858,7 +853,6 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; INFOPLIST_FILE = ExampleTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -872,7 +866,7 @@ TARGETED_DEVICE_FAMILY = 4; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Example (watchOS).app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Example (watchOS)"; VALIDATE_PRODUCT = YES; - WATCHOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 11.6; }; name = Release; }; @@ -880,7 +874,6 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; INFOPLIST_FILE = ExampleUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -893,7 +886,7 @@ SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 4; TEST_TARGET_NAME = "Example WatchKit App"; - WATCHOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 11.6; }; name = Debug; }; @@ -901,7 +894,6 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; INFOPLIST_FILE = ExampleUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -915,7 +907,7 @@ TARGETED_DEVICE_FAMILY = 4; TEST_TARGET_NAME = "Example WatchKit App"; VALIDATE_PRODUCT = YES; - WATCHOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 11.6; }; name = Release; }; @@ -924,7 +916,6 @@ buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = tvOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -936,7 +927,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 15.0; + TVOS_DEPLOYMENT_TARGET = 18.6; }; name = Debug; }; @@ -945,7 +936,6 @@ buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = tvOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -957,7 +947,7 @@ SDKROOT = appletvos; SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 15.0; + TVOS_DEPLOYMENT_TARGET = 18.6; VALIDATE_PRODUCT = YES; }; name = Release; @@ -999,6 +989,7 @@ COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ER582ZK85C; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -1019,6 +1010,7 @@ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; @@ -1061,6 +1053,7 @@ COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ER582ZK85C; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -1074,6 +1067,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; }; @@ -1085,10 +1079,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = iOS/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 18.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1107,10 +1100,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ER582ZK85C; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = iOS/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 18.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1134,15 +1126,16 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = ER582ZK85C; + ENABLE_APP_SANDBOX = YES; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; + ENABLE_USER_SELECTED_FILES = readonly; INFOPLIST_FILE = macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 15.6; PRODUCT_BUNDLE_IDENTIFIER = romanov.cc.Example; PRODUCT_NAME = Example; SDKROOT = macosx; @@ -1160,15 +1153,16 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = ER582ZK85C; + ENABLE_APP_SANDBOX = YES; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; + ENABLE_USER_SELECTED_FILES = readonly; INFOPLIST_FILE = macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 15.6; PRODUCT_BUNDLE_IDENTIFIER = romanov.cc.Example; PRODUCT_NAME = Example; SDKROOT = macosx; diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme index 28cd8bad..2f4fa41c 100644 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme +++ b/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme @@ -1,6 +1,6 @@ - - com.apple.security.app-sandbox - - com.apple.security.files.user-selected.read-only - - +