/** * Minimal modal context for the standalone @anthropic/ink package. * * Provides useIsInsideModal() and useModalScrollRef() used by Pane and Tabs * to adjust rendering when inside a FullscreenLayout modal slot. */ import { createContext, type RefObject, useContext } from 'react' import type { ScrollBoxHandle } from '../components/ScrollBox.js' type ModalCtx = { rows: number columns: number scrollRef: RefObject | null } export const ModalContext = createContext(null) export function useIsInsideModal(): boolean { return useContext(ModalContext) !== null } export function useModalScrollRef(): RefObject | null { return useContext(ModalContext)?.scrollRef ?? null }