 	public var cornerRadius: CGFloat
 	public var mouseDown: View -> ()
 	public var mouseUp: View -> ()
+	public var mouseExited: View -> ()
 
-	public init(backgroundColor: NSColor? = nil, borderColor: NSColor? = nil, borderWidth: CGFloat = 0, cornerRadius: CGFloat = 0, mouseDown: View -> () = doNothing, mouseUp: View -> () = doNothing) {
+	public init(backgroundColor: NSColor? = nil, borderColor: NSColor? = nil, borderWidth: CGFloat = 0, cornerRadius: CGFloat = 0, mouseDown: View -> () = doNothing, mouseUp: View -> () = doNothing, mouseExited: View -> () = doNothing) {
 		self.backgroundColor = backgroundColor
 		self.borderColor = borderColor
 		self.borderWidth = borderWidth
 		self.cornerRadius = cornerRadius
 		self.mouseDown = mouseDown
 		self.mouseUp = mouseUp
+		self.mouseExited = mouseExited
 	}
 
 	// MARK: Element

	private override func mouseDown(event: NSEvent) {
		super.mouseDown(event)

		mouseDown?()
	}

	private override func mouseUp(event: NSEvent) {
		super.mouseUp(event)

		mouseUp?()
	}

	@objc var backgroundStyle: NSBackgroundStyle = .Light {

				strongSelf.mouseUp(strongSelf)
			}
		}

		view.mouseExited = { [weak self] in
			if let strongSelf = self {
				strongSelf.mouseExited(strongSelf)
			}
		}
	}
}
