Skip to content

Chat Components API

The tables below summarize the props and events exposed by each chat component. All components are standard Vue SFCs, so you can also inspect their source under src/components/ChatAgentComponents/ChatComponents/.

ChatViewWrapper

PropTypeDefaultDescription
NoneConsumes useChatAgentStore internally; no external props are required.
EmitsPayloadDescription
NoneThe wrapper coordinates child events internally; listen to the downstream components if you need granular hooks.

MainAIChatView

PropTypeDefaultDescription
chatsArray[]Array of conversation messages (conversationList entries from the store).
EmitsPayloadDescription
askSelectionstringFired when the user highlights part of a response and clicks the tooltip CTA; payload contains the selected text.

PrimaryInput

PropTypeDefaultDescription
textareaPlaceholderString'Enter something...'Placeholder shown inside the textarea.
dropdownSuggestionsArray[]Suggestions displayed when the box is focused.
modelValueString''The current input value (v-model).
hideSuggestionsDropdownBoolean | String | NumberfalseForces the suggestion list closed.
inProgressBooleanfalseWhen true, the CTA turns into a pause button and handleSubmitMessage emits pause-response.
shortBoolean | String | NumberfalseShrinks the textarea height (used after conversations have started).
referredTextString''Prefills the “Reference” pill shown inside the prompt box.
EmitsPayloadDescription
update:modelValuestringStandard v-model sync event.
textarea:focusedFired when the textarea gains focus.
textarea:blurFired when the textarea loses focus.
files-selectedFileList | File[]Triggered on drag/drop, paste, or manual picker uploads.
submit:messagestringEmitted when the user clicks send or presses Enter (unless streaming).
pause-responseEmitted when the CTA is pressed while inProgress is true.
removeReferenceEmitted when the “reference” chip is cleared.

DraggableChatBox

PropTypeDefaultDescription
isVisibleBooleantrueControls whether the window is rendered (wrapper toggles this).
EmitsPayloadDescription
closeFired after the minimize animation completes so parents can hide the chat box.

DraggableChatBoxWrapper

This wrapper has no props or emits. It reads/writes isChatBoxVisible in the store and swaps between the launcher icon and the draggable window automatically.

UploadedFilesSection

PropTypeDefaultDescription
uploadedFilesArray[]Array of file metadata objects (the same shape pushed inside ChatViewWrapper).
hideRemoveFileIconBooleanfalseHides the inline “x” buttons when true.
EmitsPayloadDescription
file:removenumberIndex of the removed item.
file:clickedobjectThe file record that was clicked (used to open previews).

Markdown Components

ComponentPurposeNotes
CustomMarkdownAssistant/AI message rendererUses markdown-it, highlight.js, click-to-copy, image zoom, color swatches.
SentMessageMarkdownUser/outbound rendererUses DOMPurify for sanitization, custom ordered/bullet list presentation.
FullScreenImageViewerModal for generated imagesEmits fullScreenViewerClose and downloadImage.

RotationAnimation

PropTypeDefaultDescription
durationNumber3Controls both outer and inner rotation speed (seconds).
primaryColorString'#c8d5f7'Gradient accent color.
secondaryColorString'#C6D3F7'Animated fill color for inner blobs.
backgroundColorString'#F1F4FD'Background of the outer ring.

ℹ️ OTooltip is documented separately (under general components) but is used extensively inside the chat shell for hover hints.