refactor!: element system, menu implementation, ...

With this, the codebase is mostly typed (as much as sumneko's type checking allows), and finally go-to-definition-able.

This refactor changed or touched more than 90% of the codebase, so here's just the most notable changes I can recall:

Menu implementation is now way more robust, and supports:
- live menu updates
- opening submenus allows navigating to parent menus
- items icons and bold & italic styling
- keeping menu open after selecting the item
- peeking submenus
- and a lot of other small tweaks

The menu input data structure changed. It no longer accepts `active_index` and `selected_index`, instead, each item can now have `active` or `selected` property.

And I'm sure there's a lot I'm forgetting to mention, but it's midnight here T.T

closes #144, ref #171, closes #176
This commit is contained in:
tomasklaen
2022-09-12 23:53:37 +02:00
parent 87e7e9ec09
commit 9b64c529ac
3 changed files with 2961 additions and 2900 deletions

File diff suppressed because it is too large Load Diff