"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromptInputFull = PromptInputFull;
const jsx_runtime_1 = require("react/jsx-runtime");
const cn_1 = require("../../../utils/cn.js");
const PromptInputBody_1 = require("../../molecules/PromptInputBody/index.js");
const PromptInputFooter_1 = require("../../molecules/PromptInputFooter/index.js");
const PromptInputHeader_1 = require("../../molecules/PromptInputHeader/index.js");
const b = (0, cn_1.block)('prompt-input');
/**
 * PromptInputFull component - full view with header, body, and footer
 *
 * @param props - Component props
 * @returns React component
 */
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 ((0, jsx_runtime_1.jsxs)("div", { className: b({ view: 'full' }, className), "data-qa": qa, children: [shouldShowHeader && ((0, jsx_runtime_1.jsx)(PromptInputHeader_1.PromptInputHeader, { contextItems: contextItems, showContextIndicator: showContextIndicator, contextIndicatorProps: contextIndicatorProps, qa: headerQa, children: topContent })), (0, jsx_runtime_1.jsx)(PromptInputBody_1.PromptInputBody, { value: value, placeholder: placeholder, minRows: minRows, maxRows: maxRows, autoFocus: autoFocus, onChange: handleChange, onKeyDown: handleKeyDown, inputClassName: b('textarea'), qa: bodyQa }), (0, jsx_runtime_1.jsx)(PromptInputFooter_1.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
