Problem
The Dashboard hierarchy currently uses the Dashboard row itself to expand/collapse the tree, while opening the Dashboard in View mode requires a different gesture.
This makes the primary Dashboard name behave like a disclosure control instead of navigation. Users expect the Dashboard name to open that Dashboard, while the visible chevron should own hierarchy expansion.
This revises the Dashboard-row gesture contract originally defined in #426.
Required behaviour
Split the Dashboard row into distinct click targets:
- Disclosure chevron (
> / expanded variant): expand or collapse that Dashboard's hierarchy only.
- Dashboard name / primary row content: open the exact Dashboard in View mode on the main surface.
- Trailing action menu: retain its existing Dashboard actions and do not trigger navigation or expansion.
Opening the Dashboard must use its stable Dashboard ID:
openDashboard({ dashboardId, mode: 'view' });
Do not identify the Dashboard by title or collection position.
Interaction details
- Clicking the Dashboard name must not change its expanded/collapsed tree state.
- Clicking the chevron must not open, rerender, or focus the Dashboard surface.
- The Dashboard icon may be part of the same primary navigation target as the name.
- Double-clicking the name must not create duplicate navigation/history entries or introduce a second action.
- If Shift-click currently opens Edit mode, retain that behaviour on the primary name target unless Edit navigation is redesigned separately.
- Menu-button clicks must stop propagation and affect neither expansion nor navigation.
The old delayed single-click/double-click arbitration is no longer needed for Dashboard rows because expansion and navigation have separate explicit targets. Member-row arbitration is outside this issue unless shared code requires a safe refactor.
Keyboard and accessibility
- The chevron/disclosure control must have an accessible name such as Expand / Collapse and expose
aria-expanded.
- Enter/Space on the disclosure control toggles expansion only.
- Activating the Dashboard name/primary row opens View mode.
- Tree Left/Right keys should continue to collapse/expand according to the existing keyboard-tree model.
- Focus styling must make the disclosure control and Dashboard navigation target distinguishable.
Acceptance criteria
Non-goals
- Changing panel/filter row interactions.
- Changing Dashboard View/Edit rendering.
- Moving or redesigning the trailing Dashboard action menu.
- Persisting expansion state in workspace data.
Problem
The Dashboard hierarchy currently uses the Dashboard row itself to expand/collapse the tree, while opening the Dashboard in View mode requires a different gesture.
This makes the primary Dashboard name behave like a disclosure control instead of navigation. Users expect the Dashboard name to open that Dashboard, while the visible chevron should own hierarchy expansion.
This revises the Dashboard-row gesture contract originally defined in #426.
Required behaviour
Split the Dashboard row into distinct click targets:
>/ expanded variant): expand or collapse that Dashboard's hierarchy only.Opening the Dashboard must use its stable Dashboard ID:
Do not identify the Dashboard by title or collection position.
Interaction details
The old delayed single-click/double-click arbitration is no longer needed for Dashboard rows because expansion and navigation have separate explicit targets. Member-row arbitration is outside this issue unless shared code requires a safe refactor.
Keyboard and accessibility
aria-expanded.Acceptance criteria
Non-goals