import Foundation

public extension Tooltip {
    enum Anchor: Equatable, Sendable {
        case up(CGFloat) // Offset from center-top
        case down(CGFloat) // Offset from center-bottom
        case left(CGFloat) // Offset from center-left
        case right(CGFloat) // Offset from center-right
        case topLeft(CGFloat) // Offset from center-right

        public var isHorizontal: Bool {
            switch self {
            case .left, .right: return true
            case .up, .down, .topLeft: return false
            }
        }

        public var offset: CGFloat {
            switch self {
            case .up(let offset),
                 .down(let offset),
                 .left(let offset),
                 .right(let offset),
                 .topLeft(let offset):
                return offset
            }
        }

        public var topOffset: CGFloat {
            switch self {
            case .up(let offset), .topLeft(let offset):
                return offset
            case .down, .left, .right:
                return 0
            }
        }
    }
}
