* fix(transactions): keep the assistant usable through the whole booking flow
Three gaps around the agent sheet during booking on Transaktioner:
- The AgentTrigger bubble lived inside #dash-shell, so the inert that
non-modal dialogs set on the shell made the assistant impossible to
OPEN once a booking dialog was up. Moved outside the shell (it is
position: fixed) and raised to z-[45]: above the DialogVeil (z-40) so
it stays clickable, below dialog content (z-50). Under true modal
dialogs Radix's body pointer-events lock keeps it dead as before.
- Wide dialogs centered on the full viewport while the docked sheet
(z-60) covered their right edge, hiding e.g. the Granska button.
DialogContent now centers in the space left of --agent-dock-w, and
the wide booking/review variants cap their width against it.
- Step 1 of the flow (template picker, QuickReviewDialog) was still
fully modal, so the assistant was dead there. Both are now non-modal
with DialogVeil + a shared ref-counted useDashShellInert hook (also
replacing the duplicated inert effects in TransactionBookingDialog
and NewInvoiceDialog). Their Esc/veil-click dismissal is kept: they
hold no half-filled form. Clicks in the agent sheet or its trigger
never dismiss any dialog: data-agent-ui counts as inside, same
mechanism as data-dialog-companion.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(ui): dialog centering reads a docked-only sheet width variable
Skeptic review refuted the first cut: globals.css seeds --agent-dock-w
at the 10px frame gutter on :root by design, so the 0px fallback in the
new dialog centering never applied and every dialog sat 5px left of
center (full-bleed dialogs clipped 5px off-screen).
Introduce --agent-sheet-w, set inline by AgentSheetProvider only while
the sheet is docked and removed otherwise, so the 0px fallback is real:
sheet closed or floating renders byte-identical to the old left-[50%]
and old max widths. Also cap the template picker and QuickReview's
narrow variant, which could clip off-screen left on narrow desktops
with the sheet docked.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>