import { TimelineClipNavigationOptions } from "../../hooks/clips/useTimelineClipNavigation.mjs"; import "../../hooks/index.mjs"; import React from "react"; import { RationalTime } from "@techsquidtv/canvas-timeline-utils"; import { ClipHitRegion, ClipHitTestResult, TimelineEngine, TimelineInteractionGeometry } from "@techsquidtv/canvas-timeline-core"; //#region src/components/interactions/ClipInteractionLayer.d.ts /** * Details passed to a clip double-click or double-tap callback. */ interface ClipDoubleClickDetails { /** Timeline engine owning the hit clip. */ engine: TimelineEngine; /** Timeline time under the pointer. */ time: RationalTime; /** Pointer X in timeline viewport coordinates. */ viewportX: number; /** Pointer Y in timeline viewport coordinates, including the ruler area. */ viewportY: number; /** Original pointer event. */ event: React.PointerEvent; } /** * Props for the delegated clip interaction layer. */ interface ClipInteractionLayerProps extends Omit, keyof TimelineInteractionGeometry>, TimelineInteractionGeometry { /** * Enables one focusable clip navigator for canvas-rendered clips. * * The layer handles keyboard input only while focused and never intercepts * `Tab`. Defaults to `true`. */ keyboardNavigation?: boolean; /** Whether next/previous keyboard navigation wraps. Defaults to `false`. */ clipNavigationWrap?: boolean; /** Whether keyboard navigation also selects clips in the engine. Defaults to `false`. */ selectOnNavigate?: boolean; /** Optional externally controlled active clip id for the delegated overlay. */ activeClipId?: string | null; /** Overlay region used for an externally controlled active clip. Defaults to `body`. */ activeClipRegion?: ClipHitRegion; /** Whether the externally controlled active clip should render focus-visible styling. */ activeClipFocusVisible?: boolean; /** Optional handler for double-click or double-tap gestures on canvas-rendered clips. */ onClipDoubleClick?: (hit: ClipHitTestResult, details: ClipDoubleClickDetails) => void; /** Optional accessible label formatter for a canvas-rendered clip. */ getClipAriaLabel?: TimelineClipNavigationOptions['getClipAriaLabel']; /** Optional accessible description formatter for a canvas-rendered clip. */ getClipAriaDescription?: TimelineClipNavigationOptions['getClipAriaDescription']; } /** * Constant-DOM clip interaction surface for canvas-rendered timeline clips. */ declare const ClipInteractionLayer: React.ForwardRefExoticComponent>; //#endregion export { ClipDoubleClickDetails, ClipInteractionLayer, ClipInteractionLayerProps }; //# sourceMappingURL=ClipInteractionLayer.d.mts.map