Skip to content

feat(plots): maximize an individual output plot to fill the middle window (#115)#120

Merged
FinbarArgus merged 2 commits into
mainfrom
feat/maximize-individual-plots-115
Jul 26, 2026
Merged

feat(plots): maximize an individual output plot to fill the middle window (#115)#120
FinbarArgus merged 2 commits into
mainfrom
feat/maximize-individual-plots-115

Conversation

@FinbarArgus

Copy link
Copy Markdown
Contributor

Closes #115.

Per the issue comment, "maximize all plots" is already handled by dragging the LHS/RHS columns away — what was missing is maximizing an individual plot. Each output plot now has a maximize/restore button in its header: click it and that plot fills the Output-plots area (other plots, group headings and the Add-plot row hidden); click again to restore the grid.

  • PlotPanel.vue: maximizable / maximized props + toggle-maximize event; header button (pi-window-maximize / -minimize) with title + aria-pressed.
  • App.vue: maximizedPlot key + toggleMaximizePlot; a self-correcting effectiveMaximized computed so a stale key (plot removed, or the sim regenerates cells) falls back to the normal grid instead of a blank view. CSS expands the single visible cell to full height.

Tests: PlotPanel (button gating, emit, icon/title/aria per state) + App (toggle on/off/switch, stale-key fallback). Frontend 298; yarn build clean.

🤖 Generated with Claude Code

@FinbarArgus
FinbarArgus force-pushed the feat/maximize-individual-plots-115 branch from 58de18f to 59f3283 Compare July 24, 2026 06:04
…ndow (#115)

Per the issue comment, the "maximize all plots" case is already covered by
dragging the LHS/RHS columns away; what was missing is maximizing an *individual*
plot. Each output plot now has a maximize/restore button in its header; clicking it
expands that plot to fill the Output-plots area (hiding the other plots, group
headings and the Add-plot row), and clicking again restores the grid.

- PlotPanel.vue: `maximizable` / `maximized` props + `toggle-maximize` event; a
  header button (pi-window-maximize / -minimize) with title + aria-pressed.
- App.vue: `maximizedPlot` key + `toggleMaximizePlot`; a self-correcting
  `effectiveMaximized` computed so a stale key (plot removed, or the sim
  regenerates cells) falls back to the normal grid instead of a blank view. CSS
  expands the single visible cell to full height.

Tests: PlotPanel (button gating, emit, icon/title/aria per state) and App
(toggle on/off/switch, stale-key fallback). Frontend 298; build clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@FinbarArgus
FinbarArgus force-pushed the feat/maximize-individual-plots-115 branch from 59f3283 to c8c0d01 Compare July 24, 2026 07:13
After un-maximizing, the plot's y-axis stayed stretched: Chart.js with
maintainAspectRatio:false grows the canvas to fill the maximized window but
doesn't shrink it back on restore — the enlarged canvas keeps inflating its
auto-height container, so the cell stays tall.

Key the <Line> on the maximize state so the chart remounts when it toggles: the
stale large canvas is destroyed and a fresh one sizes to the restored (grid) cell.

Test: toggling `maximized` recreates the Line instance (new vm) each way.
Frontend 306; build clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@FinbarArgus
FinbarArgus merged commit eff5cdd into main Jul 26, 2026
3 checks passed
@FinbarArgus
FinbarArgus deleted the feat/maximize-individual-plots-115 branch July 27, 2026 04:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Maximize window button

1 participant