import type { CustomElement } from '../Components/Abstracts/CustomElement'; import type { ControlBehaviorBase, ControlBehaviorReturn } from './Abstracts/Behavior'; /** * Represents the `IAttachable` interface. * * @public */ export interface IAttachable { /** * Reflects the value of the `for` attribute, which is the ID of the element's * associated control. * * Use this when the elements's associated control is not its parent. * * To manually control an element, set its `for` attribute to `""`. * * @example * ```html *
* * *
* ``` * * @example * ```html * * ``` */ for: string | null; /** * The element that controls the visibility of the attachable element. It is * one of: * * - The control referenced by the `for` attribute. * - The control provided to `element.attach(control)` * - The element's parent. * - `null` if the element is not controlled. */ readonly control: HTMLElement | null; /** * Attaches the element to an interactive control. * * @param control - The element or id that controls the attachable element. */ attach(control: HTMLElement | string): void; /** * Detaches the element from its current control. */ detach(): void; } /** * Represents the `IAttachableProps` interface. * * @public */ export interface IAttachableProps { for: string | null; } /** * @public */ export declare const Attachable: >(base: T) => ControlBehaviorReturn; /** * @public */ export declare namespace IAttachableProps { const DEFAULTS: IAttachableProps; } //# sourceMappingURL=Attachable.d.ts.map