import Foundation
import UIKit

/// Hex → UIColor converter (accepts "#RRGGBB", "RRGGBB", "#AARRGGBB", "AARRGGBB")
public struct ColorConverter {
    public init() {}

    public func hexToColor(_ hex: String) -> UIColor? {
        var clean = hex.trimmingCharacters(in: .whitespacesAndNewlines)
        if clean.hasPrefix("#") { clean.removeFirst() }
        if clean.count == 6 { clean = "FF" + clean } // prepend opaque alpha if missing
        guard clean.count == 8, let value = UInt32(clean, radix: 16) else { return nil }
        let a = CGFloat((value & 0xFF00_0000) >> 24) / 255.0
        let r = CGFloat((value & 0x00FF_0000) >> 16) / 255.0
        let g = CGFloat((value & 0x0000_FF00) >> 8) / 255.0
        let b = CGFloat( value & 0x0000_00FF)        / 255.0
        return UIColor(red: r, green: g, blue: b, alpha: a)
    }
}
