behavior Dropdown
  on dropdownOpen
    add .active to .dropdown-trigger in me
    remove .closed from .dropdown in me
  end

  on dropdownClose
    remove .active from .dropdown-trigger in me
    add .closed to .dropdown in me
  end

  on click from .dropdown-trigger in me
    halt the event's default
    set trigger to the first .dropdown-trigger in me
    if the trigger does not match .active
      trigger dropdownOpen
    else
      trigger dropdownClose
    end
  end

  on click from elsewhere or keyup[key is 'Escape']
    trigger dropdownClose
  end
end
