import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { block } from "../../../utils/cn.js";
import { PromptInputBody } from "../../molecules/PromptInputBody/index.js";
import { PromptInputFooter } from "../../molecules/PromptInputFooter/index.js";
import { PromptInputHeader } from "../../molecules/PromptInputHeader/index.js";
const b = block('prompt-input');
/**
 * PromptInputFull component - full view with header, body, and footer
 *
 * @param props - Component props
 * @returns React component
 */
export function PromptInputFull(props) {
    const { hookState, headerProps = {}, bodyProps = {}, footerProps = {}, className, qa } = props;
    const { topContent, contextItems = [], showContextIndicator = false, contextIndicatorProps, qa: headerQa, } = headerProps;
    const { placeholder = 'Plan, code, build and test anything', minRows = 1, maxRows = 15, autoFocus = false, qa: bodyQa, } = bodyProps;
    const { bottomContent, showSettings = false, onSettingsClick, attachmentContent, showAttachment, onAttachmentClick, showMicrophone = false, onMicrophoneClick, submitButtonTooltipSend, submitButtonTooltipCancel, submitButtonCancelableText, submitButtonQa, qa: footerQa, } = footerProps;
    const { value, submitButtonState, handleChange, handleKeyDown, handleSubmit } = hookState;
    const shouldShowHeader = topContent || contextItems.length > 0 || showContextIndicator;
    return (_jsxs("div", { className: b({ view: 'full' }, className), "data-qa": qa, children: [shouldShowHeader && (_jsx(PromptInputHeader, { contextItems: contextItems, showContextIndicator: showContextIndicator, contextIndicatorProps: contextIndicatorProps, qa: headerQa, children: topContent })), _jsx(PromptInputBody, { value: value, placeholder: placeholder, minRows: minRows, maxRows: maxRows, autoFocus: autoFocus, onChange: handleChange, onKeyDown: handleKeyDown, inputClassName: b('textarea'), qa: bodyQa }), _jsx(PromptInputFooter, { qa: footerQa, submitButton: {
                    onClick: handleSubmit,
                    state: submitButtonState,
                    tooltipSend: submitButtonTooltipSend,
                    tooltipCancel: submitButtonTooltipCancel,
                    cancelableText: submitButtonCancelableText,
                    qa: submitButtonQa || 'submit-button-full',
                }, showSettings: showSettings, onSettingsClick: onSettingsClick, showAttachment: showAttachment, onAttachmentClick: onAttachmentClick, attachmentContent: attachmentContent, showMicrophone: showMicrophone, onMicrophoneClick: onMicrophoneClick, children: bottomContent })] }));
}
//# sourceMappingURL=PromptInputFull.js.map
