import SwiftUI struct SnackbarOverlay: View { @ObservedObject var center: SnackbarCenter var body: some View { VStack { if let message = center.current { HStack(spacing: 10) { if let icon = message.iconSystemName, !icon.isEmpty { Image(systemName: icon) .font(.system(size: 16, weight: .semibold)) } Text(message.title) .font(AppTypography.heading3) .multilineTextAlignment(.leading) .lineLimit(3) Spacer(minLength: 0) } .foregroundStyle(Color.white) .padding(.top, 14) .padding(.horizontal, 16) .padding(.bottom, 16) .frame(maxWidth: .infinity, alignment: .leading) .background(message.style.backgroundColor) .appContentShape(Rectangle()) .onTapGesture { center.handleTap() } .transition(.move(edge: .top).combined(with: .opacity)) .zIndex(999) } Spacer() } .animation(.spring(response: 0.3, dampingFraction: 0.9), value: center.current?.id) .allowsHitTesting(center.current != nil) } }