diff --git a/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift b/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift index cf736ecb0..9daefd479 100644 --- a/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift +++ b/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift @@ -92,6 +92,8 @@ public protocol ListPickerItemModel: KeyComponent, ValueComponent {} public protocol ProgressIndicatorModel: ProgressIndicatorComponent {} // sourcery: add_env_props = "sideBarListItemConfigMode" +// sourcery: add_env_props = "sizeCategory" +// sourcery: virtualPropSidebarIconScaleMetric = "@ScaledMetric var scale: CGFloat = 1" // sourcery: generated_component public protocol SideBarListItemModel: IconComponent, TitleComponent, SubtitleComponent, AccessoryIconComponent {} diff --git a/Sources/FioriSwiftUICore/Views/SideBarListItem+View.swift b/Sources/FioriSwiftUICore/Views/SideBarListItem+View.swift index 6ea765a6b..9d0843136 100644 --- a/Sources/FioriSwiftUICore/Views/SideBarListItem+View.swift +++ b/Sources/FioriSwiftUICore/Views/SideBarListItem+View.swift @@ -17,19 +17,9 @@ extension Fiori { .truncationMode(.tail) } } - - struct Icon: ViewModifier { - func body(content: Content) -> some View { - content.padding(.trailing, 11) - } - } - - struct AccessoryIcon: ViewModifier { - func body(content: Content) -> some View { - content.padding(.leading, 11) - } - } + typealias Icon = EmptyModifier + typealias AccessoryIcon = EmptyModifier typealias IconCumulative = EmptyModifier typealias TitleCumulative = EmptyModifier typealias SubtitleCumulative = EmptyModifier @@ -48,25 +38,51 @@ extension Fiori { extension SideBarListItem: View { public var body: some View { - HStack(spacing: 0) { - icon.foregroundColor(.preferredColor(.primaryLabel)) - title - .font(.system(size: 17, weight: getFontWeight(), design: .default)) - .foregroundColor(getColorStyle()) - Spacer() - subtitle - .font(.system(size: 17, weight: getFontWeight(), design: .default)) - .foregroundColor(.preferredColor(.tertiaryLabel)) - accessoryIcon.foregroundColor(.preferredColor(.tertiaryLabel)) + Group { + if sizeCategory.isAccessibilityCategory { + VStack { + HStack(spacing: 11) { + icon + .foregroundColor(.preferredColor(.primaryLabel)) + .frame(width: 22 * scale, height: 22 * scale) + title + .font(Font.fiori(forTextStyle: .subheadline).weight(sideBarListItemConfigMode.isSelected ? Font.Weight.bold : Font.Weight.regular)) + .foregroundColor(getColorStyle()) + Spacer() + } + + HStack(spacing: 11) { + Spacer() + subtitle + .font(Font.fiori(forTextStyle: .subheadline).weight(sideBarListItemConfigMode.isSelected ? Font.Weight.bold : Font.Weight.regular)) + .foregroundColor(.preferredColor(.tertiaryLabel)) + accessoryIcon + .foregroundColor(.preferredColor(.tertiaryLabel)) + .frame(width: 22 * scale, height: 22 * scale) + } + } + } else { + HStack(spacing: 11) { + icon + .foregroundColor(.preferredColor(.primaryLabel)) + .frame(width: 22 * scale, height: 22 * scale) + title + .font(Font.fiori(forTextStyle: .subheadline).weight(sideBarListItemConfigMode.isSelected ? Font.Weight.bold : Font.Weight.regular)) + .foregroundColor(getColorStyle()) + Spacer() + subtitle + .font(Font.fiori(forTextStyle: .subheadline).weight(sideBarListItemConfigMode.isSelected ? Font.Weight.bold : Font.Weight.regular)) + .foregroundColor(.preferredColor(.tertiaryLabel)) + accessoryIcon + .foregroundColor(.preferredColor(.tertiaryLabel)) + .frame(width: 22 * scale, height: 22 * scale) + } + } } .padding(EdgeInsets(top: 11, leading: 11, bottom: 11, trailing: 11)) .cornerRadius(8, antialiased: true) } - private func getFontWeight() -> Font.Weight { - sideBarListItemConfigMode.isSelected ? .bold : .regular - } - private func getColorStyle() -> Color { sideBarListItemConfigMode.isHeaderContent ? .preferredColor(.tertiaryLabel) : .preferredColor(.primaryLabel) } diff --git a/Sources/FioriSwiftUICore/_generated/ViewModels/API/KPIProgressItem+API.generated.swift b/Sources/FioriSwiftUICore/_generated/ViewModels/API/KPIProgressItem+API.generated.swift index b84153f10..6f25339b5 100644 --- a/Sources/FioriSwiftUICore/_generated/ViewModels/API/KPIProgressItem+API.generated.swift +++ b/Sources/FioriSwiftUICore/_generated/ViewModels/API/KPIProgressItem+API.generated.swift @@ -13,8 +13,8 @@ public struct KPIProgressItem { let _fraction: Double? let _subtitle: Subtitle let _footnote: Footnote - var action: (() -> Void)? = nil @State var isPressed: Bool = false + var action: (() -> Void)? = nil private var isModelInit: Bool = false private var isKpiNil: Bool = false private var isSubtitleNil: Bool = false diff --git a/Sources/FioriSwiftUICore/_generated/ViewModels/API/SideBarListItem+API.generated.swift b/Sources/FioriSwiftUICore/_generated/ViewModels/API/SideBarListItem+API.generated.swift index 2177fde7f..96e3e2abe 100644 --- a/Sources/FioriSwiftUICore/_generated/ViewModels/API/SideBarListItem+API.generated.swift +++ b/Sources/FioriSwiftUICore/_generated/ViewModels/API/SideBarListItem+API.generated.swift @@ -7,13 +7,14 @@ public struct SideBarListItem