/*! * Jodit Editor PRO (https://xdsoft.net/jodit/) * See LICENSE.md in the project root for license information. * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/ */ import type { IUIElement } from "jodit/esm/types/index"; export interface IFlightPositionOptions { /** * Height of the flight panel in pixels * @default 250 */ panelHeight?: number; /** * Custom class name for the container */ containerClassName?: string; /** * Selector for toolbar element inside anchor * Used to calculate toolbar bottom for positioning * @default '.jodit-toolbar__box' */ toolbarSelector?: string; /** * Gap from edges in pixels * @default 16 */ gap?: number; } /** * Flight Position Trait * * Provides smart positioning for a panel relative to an anchor element: * - Panel is always position: fixed * - Width matches anchor element width * - Horizontal position matches anchor element * - Vertical position: stays at viewport bottom OR just below anchor (whichever is higher) * * Similar to TinyMCE AI Assistant positioning behavior. */ export declare abstract class UIFlightPosition { /** * Install flight positioning on an element * @param element - The UI element to position * @param anchor - The anchor element (usually editor container) to track * @param options - Configuration options */ static install(element: IUIElement, anchor: HTMLElement, options?: IFlightPositionOptions): void; /** * Update container position based on anchor element * * Positioning logic: * 1. If editor is small and panel doesn't fit → top at toolbar bottom * 2. If fits and editor bottom visible → bottom at editor bottom - gap * 3. If editor bottom not visible → bottom at viewport bottom - gap */ private static updatePosition; /** * Remove flight positioning from an element */ static remove(element: IUIElement): void; /** * Check if element has flight positioning installed */ static isInstalled(element: IUIElement): boolean; /** * Update panel height */ static setPanelHeight(element: IUIElement, height: number): void; /** * Force position recalculation */ static refresh(element: IUIElement): void; }