ObserveJS.bind 'Popup', class
loaded: => if btn = @element().querySelector('.close') @on 'click', btn, @remove @when 'click', @clicked @when 'keyup', @escaped @on 'dialog:close', @remove clicked: (e) => el = e.target while el != @element() && el? el = el.parentElement unless el? @remove() escaped: (e) => if e.keyCode == 27 @remove() remove: (e) => @element().remove()