this loops the search for marks until a block element is found, because marks
are nested elements like for example `<p><b><i>bold and italic</i></b></p>`.
this includes standard block elements (headers, paragraphs, lists, rulers)
but not marks (bold, italic)
and for sure not special elements like the stat block
* menu now sends command events and button states
* menu state is synced with the elements at caret postion
* menu functionalities are not yet implemented