Add workspace switcher disclosure list

Clicking the picker pill now opens an in-flow space-list disclosure
beneath the workspace row instead of cycling to the next space. The
list shows every space's emoji glyph + name, highlights the active one
with the accent check, and on row click switches to that space and
closes the disclosure.

Sidebar disclosure rules:
- The chevron flips ChevronDown → ChevronUp when open so the affordance
  reads at a glance.
- A "Manage spaces" footer routes to ely://settings/spaces and closes
  the picker.
- ElyShell carries a workspace_picker_open: bool with toggle / close /
  select_space_from_picker helpers; render_sidebar_header receives a
  &ElyShell so it can read the open flag without leaking shell internals
  to free helpers.

The existing SelectNextSpace shortcut still routes through
cycle_to_next_space, so the keyboard cycle behaviour is unchanged.
This commit is contained in:
2026-05-09 19:49:37 -04:00
parent 797560d71c
commit c98ca18613
4 changed files with 156 additions and 10 deletions
+2
View File
@@ -65,6 +65,7 @@ pub struct ElyShell {
command_input: Entity<InputState>,
pub(crate) plugin_search_input: Entity<InputState>,
pub(crate) translucency_slider: Entity<SliderState>,
pub(crate) workspace_picker_open: bool,
download_action_error: Option<String>,
download_clear_confirmation: bool,
download_security_confirmation: Option<PendingDownloadFileAction>,
@@ -175,6 +176,7 @@ impl ElyShell {
command_input,
plugin_search_input,
translucency_slider,
workspace_picker_open: false,
download_action_error: None,
download_clear_confirmation: false,
download_security_confirmation: None,