forward_window_keydown

forward_window_keydown sends page-level keys to the viewer under the pointer while focus is on the page or the viewer root, but leaves keys with focused descendant controls.

Hover here, focus this box and press an arrow key. Last key: none
svelte<script lang="ts">
  import { forward_window_keydown } from '$lib/attachments'

  let last_key = $state(`none`)
</script>

<div
  tabindex="0"
  style="padding: 1rem; border: 1px solid currentColor"
  {@attach forward_window_keydown({
    handle: (event) => {
      if (!event.key.startsWith(`Arrow`)) return false
      last_key = event.key
      return true
    },
  })}
>
  Hover here, focus this box and press an arrow key. Last key: {last_key}
</div>