使用法
ChatPromptSubmitコンポーネントは、ChatPromptコンポーネント内でプロンプトを送信するために使用されます。このコンポーネントは、チャットを制御するために異なるstatus値を自動的に処理します。
Buttonコンポーネントを拡張するため、color、variant、sizeなどの任意のプロパティを渡すことができます。
<template>
<UChatPrompt>
<UChatPromptSubmit />
</UChatPrompt>
</template>
ChatPromptコンポーネントのfooterスロット内でも使用できます。Ready
ステータスがreadyの場合、color、variant、iconのプロップを使用してButtonをカスタマイズします。デフォルトは
color="primary"variant="solid"icon="i-lucide-arrow-up"
<template>
<UChatPromptSubmit color="primary" variant="solid" icon="i-lucide-arrow-up" />
</template>提出済み
ステータスがsubmittedの場合、submitted-color、submitted-variant、submitted-iconのプロップを使用してButtonをカスタマイズします。デフォルトは
submittedColor="neutral"submittedVariant="subtle"submittedIcon="i-lucide-square"
stopイベントは、ユーザーがButtonをクリックすると発行されます。<template>
<UChatPromptSubmit
submitted-color="neutral"
submitted-variant="subtle"
submitted-icon="i-lucide-square"
status="submitted"
/>
</template>ストリーミング
ステータスがstreamingの場合、streaming-color、streaming-variant、streaming-iconのプロップを使用してButtonをカスタマイズします。デフォルトは
streamingColor="neutral"streamingVariant="subtle"streamingIcon="i-lucide-square"
stopイベントは、ユーザーがButtonをクリックすると発行されます。<template>
<UChatPromptSubmit
streaming-color="neutral"
streaming-variant="subtle"
streaming-icon="i-lucide-square"
status="streaming"
/>
</template>Error
ステータスがerrorの場合、error-color、error-variant、error-iconのプロップを使用してButtonをカスタマイズします。デフォルトは
errorColor="error"errorVariant="soft"errorIcon="i-lucide-rotate-ccw"
reloadイベントは、ユーザーがButtonをクリックすると発行されます。<template>
<UChatPromptSubmit
error-color="error"
error-variant="soft"
error-icon="i-lucide-rotate-ccw"
status="error"
/>
</template>例
API
Props
| Prop | Default | Type |
|---|---|---|
as | 'button' | anyThe element or component this component should render as when not a link. |
status | 'ready' | "error" | "ready" | "submitted" | "streaming" |
icon | appConfig.ui.icons.arrowUp | anyThe icon displayed in the button when the status is |
color | 'primary' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
variant | 'solid' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
streamingIcon | appConfig.ui.icons.stop | anyThe icon displayed in the button when the status is |
streamingColor | 'neutral' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
streamingVariant | 'subtle' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
submittedIcon | appConfig.ui.icons.stop | anyThe icon displayed in the button when the status is |
submittedColor | 'neutral' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
submittedVariant | 'subtle' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
errorIcon | appConfig.ui.icons.reload | anyThe icon displayed in the button when the status is |
errorColor | 'error' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
errorVariant | 'soft' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
autofocus | false | true | "true" | "false" | |
avatar | AvatarPropsDisplay an avatar on the left side. | |
loading | boolean When | |
loadingIcon | appConfig.ui.icons.loading | anyThe icon when the |
disabled | boolean | |
name | string | |
label | string | |
size | 'md' | "xs" | "sm" | "md" | "lg" | "xl" |
leading | boolean When | |
leadingIcon | anyDisplay an icon on the left side. | |
trailing | boolean When | |
trailingIcon | anyDisplay an icon on the right side. | |
type | 'button' | "reset" | "submit" | "button"The type of the button when not a link. |
activeColor | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral" | |
activeVariant | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid" | |
square | boolean Render the button with equal padding on all sides. | |
block | boolean Render the button full width. | |
loadingAuto | boolean Set loading state automatically based on the | |
ui | { base?: SlotClass; } & { base?: SlotClass; label?: SlotClass; leadingIcon?: SlotClass; leadingAvatar?: SlotClass; leadingAvatarSize?: SlotClass; trailingIcon?: SlotClass; } |
スロット
| Slot | Type |
|---|---|
leading | { ui: object; } |
default | { ui: object; } |
trailing | { ui: object; } |
Emits
| Event | Type |
|---|---|
stop | [event: MouseEvent] |
reload | [event: MouseEvent] |
Theme
export default defineAppConfig({
ui: {
chatPromptSubmit: {
slots: {
base: ''
}
}
}
})import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
chatPromptSubmit: {
slots: {
base: ''
}
}
}
})
]
})