stax-monorepo
    Preparing search index...

    Variable KeyboardConst

    Keyboard: {
        isEditableTarget: (target: EventTarget | null) => boolean;
        on: (
            binding: string | readonly string[],
            handler: KeyboardHandler,
            options?: KeyboardOptions,
        ) => Effect<void, never, Scope>;
        outsideInputs: (event: KeyboardEvent) => boolean;
        withModifier: (event: KeyboardEvent) => boolean;
    } = ...

    Public namespace. Exports the on binder plus the named predicates usable as preventDefault values and the isEditableTarget helper.

    Type Declaration

    • isEditableTarget: (target: EventTarget | null) => boolean
    • on: (
          binding: string | readonly string[],
          handler: KeyboardHandler,
          options?: KeyboardOptions,
      ) => Effect<void, never, Scope>

      Attach a keyboard binding. Auto-cleans up when the enclosing scope closes.

      // Global — bound to `document`
      yield* Keyboard.on("mod+k", () => open.set(true));

      // Element-local via ElementRef — auto-rebinds on mount/unmount
      yield* Keyboard.on("Escape", () => close(), { target: containerRef });

      // Multiple bindings, one handler
      yield* Keyboard.on(["ArrowDown", "j"], moveDown, { target: containerRef });

      // Custom preventDefault predicate
      yield* Keyboard.on("Enter", submit, {
      preventDefault: (e) => paletteOpen.value === false,
      });
    • outsideInputs: (event: KeyboardEvent) => boolean

      Predicate: preventDefault unless the event target is an editable element. The default behavior when preventDefault is omitted.

    • withModifier: (event: KeyboardEvent) => boolean

      Predicate: preventDefault only when a non-Shift modifier is pressed. Shift is intentionally excluded — shift+/ produces ? on many layouts and is often what the user "meant to type."