diff options
| author | Adam Malczewski <[email protected]> | 2026-06-26 20:44:40 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-26 20:44:40 +0900 |
| commit | a8c9be77cf5dd6249d8ea531c4ce79d823a6f600 (patch) | |
| tree | 4a6bbb086751ebca5aab55de41087d8c2da9205a /src/features | |
| parent | 51da5df8fc70efc2febda238faeaeacb21713699 (diff) | |
| download | dispatch-web-a8c9be77cf5dd6249d8ea531c4ce79d823a6f600.tar.gz dispatch-web-a8c9be77cf5dd6249d8ea531c4ce79d823a6f600.zip | |
fix(heartbeat): make PromptEditor modal truly fullscreen
Diffstat (limited to 'src/features')
| -rw-r--r-- | src/features/heartbeat/ui/PromptEditor.svelte | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/features/heartbeat/ui/PromptEditor.svelte b/src/features/heartbeat/ui/PromptEditor.svelte index 2377428..867c32a 100644 --- a/src/features/heartbeat/ui/PromptEditor.svelte +++ b/src/features/heartbeat/ui/PromptEditor.svelte @@ -9,6 +9,7 @@ type LoadSystemPromptVariables, } from "../../system-prompt"; import type { SaveHeartbeatConfig } from "../logic/types"; + import { portal } from "../../../adapters/portal"; let { systemPrompt, @@ -141,8 +142,15 @@ <svelte:window onkeydown={onKeydown} /> +<!-- Teleported to <body> (use:portal) so `position: fixed` resolves against the + VIEWPORT, not the sidebar's `transform: translateX(...)` container — an + ancestor transform establishes a containing block for `fixed`, which would + otherwise clip this overlay to the sidebar area. (RunModal/SystemPromptBuilder + avoid this by rendering at the composition root; this modal lives inside + HeartbeatView, so it must escape its ancestor.) --> <!-- svelte-ignore a11y_no_static_element_interactions --> <div + use:portal class="fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4" role="dialog" aria-modal="true" |
