/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { InputFillMode, InputRounded, InputSize } from "../../common/models";
import { TextAreaAdornmentsOrientation } from "./adornments-orientation";
import { TextAreaFlow } from "./flow";
import { TextAreaResize } from "./resize";
/**
 * Defines the settings interface for the text area functionality used in components that integrate the TextArea component, such as the AIPrompt ([see example](https://www.telerik.com/kendo-angular-ui/components/conversational-ui/aiprompt/configuration#configuring-the-prompt-text-area)).
 *
 * @example
 * ```typescript
 * const textareaSettings: TextAreaSettings = {
 *   rows: 5,
 *   placeholder: 'Enter your prompt here',
 *   maxlength: 1000,
 *   resizable: 'vertical'
 * };
 * ```
 */
export interface TextAreaSettings {
    /**
     * Specifies the orientation of the TextArea adornments.
     */
    adornmentsOrientation?: TextAreaAdornmentsOrientation;
    /**
     * Sets the visible width of the text area in average character width.
     */
    cols?: number;
    /**
     * Sets the disabled state of the TextArea component.
     */
    disabled?: boolean;
    /**
     * Sets the background and border styles of the TextArea.
     */
    fillMode?: InputFillMode;
    /**
     * Specifies the flow direction of the TextArea sections.
     */
    flow?: TextAreaFlow;
    /**
     * Sets the HTML attributes of the inner focusable input element.
     */
    inputAttributes?: {
        [key: string]: string;
    };
    /**
     * Sets the maximum number of characters allowed in the TextArea.
     */
    maxlength?: number;
    /**
     * The hint that appears when the Textarea is empty.
     */
    placeholder?: string;
    /**
     * Sets the read-only state of the TextArea component.
     */
    readonly?: boolean;
    /**
     * Sets the resize behavior of the TextArea.
     */
    resizable?: TextAreaResize;
    /**
     * Sets the border radius of the TextArea.
     */
    rounded?: InputRounded;
    /**
     * Sets the visible height of the TextArea in lines.
     */
    rows?: number;
    /**
     * Determines whether the component selects the whole value when you click the TextArea.
     */
    selectOnFocus?: boolean;
    /**
     * Shows the prefix separator in the TextArea.
     */
    showPrefixSeparator?: boolean;
    /**
     * Shows the suffix separator in the TextArea.
     */
    showSuffixSeparator?: boolean;
    /**
     * Sets the size of the TextArea. Controls the padding of the text area element.
     */
    size?: InputSize;
    /**
     * Sets the tabindex of the component.
     */
    tabindex?: number;
    /**
     * Sets the title attribute of the internal TextArea input element of the component.
     */
    title?: string;
    /**
     * Provides a value for the TextArea component.
     */
    value?: string;
}
