# Script Library — Left Pane Takeover Design Spec > **Created:** 2026-03-13 > **Feature:** Redesign Script Library left pane to have two distinct modes: Browse and Configure --- ## Overview The Script Library left pane gains two distinct modes. In **Browse mode** the user sees the full template list with filter bar and a "Configure →" button on each card. Clicking "Configure →" transitions the entire left pane (including the filter bar) to **Configure mode**, which replaces the list with a full-height view of the selected template's header, parameter form, and action buttons (Generate, Download, Copy). The right pane becomes a **read-only preview** (`ScriptPreview` only — no form or buttons). "Back to library" returns to Browse mode with filter/search state preserved. --- ## Structural Change Summary This is a cross-column relocation of the Generate/Download/Copy controls: | Before | After | |--------|-------| | Left pane: template list + filter bar | Left pane: Browse mode (list + filter) OR Configure mode (form + actions) | | Right pane: param form + action buttons + preview | Right pane: `ScriptPreview` only (read-only display) | `ScriptGeneratorPanel` (which currently owns the right column's form, actions, and preview) is **deleted**. The right pane becomes `ScriptPreview` in isolation. The new `ScriptConfigurePane` component owns the left pane in Configure mode and contains the form + all action buttons. --- ## Goals - Make template selection intentional (no accidental click-to-configure) - Give the parameter form more vertical space by using the full left pane height - Keep the output preview always visible on the right - Preserve filter/search state across Browse ↔ Configure transitions --- ## Non-Goals - No changes to `ScriptPreview` internals — it moves to the right pane as-is, including its existing copy overlay button - No changes to the Zustand store shape or actions - No changes to the filter/search debounce logic - No changes to routing --- ## New Work (not pre-existing) The **Copy button in the action bar** is new — it does not exist in the current `ScriptGeneratorPanel`. It copies `generatedScript` from the store. It is **disabled** when `generatedScript === null` (i.e., before the user has clicked Generate). The draft preview's copy needs are handled by `ScriptPreview`'s existing overlay copy button. No draft-substitution logic needs to be duplicated in `ScriptConfigurePane`. --- ## Left Pane — Two Modes ### Browse Mode Rendered when `paneMode === 'browse'`. The page header (`h1` "Script Library" + subtitle) stays at the top of `ScriptLibraryPage` above the two-column grid, visible in both pane modes — it is not affected by this change. The current `ScriptLibraryPage` renders `ScriptFilterBar` at the page level above the two-column grid. In this redesign, the filter bar moves **inside the left pane column** so it can be hidden in Configure mode. `inputValue`/`setInputValue` remain owned by `ScriptLibraryPage` (not inside the left pane sub-tree) so the search text survives the unmount when the pane switches to Configure mode. Layout (top to bottom, fills left pane height): 1. **Filter bar** (`ScriptFilterBar`) — category pills + search input 2. **Template list** (`ScriptTemplateList`) — scrollable, fills remaining height **TemplateCard changes:** - Root element changes from `