@bitrix24/b24ui-nuxt
Version:
Bitrix24 UI-Kit for developing web applications REST API for NUXT & VUE
99 lines (98 loc) • 3.03 kB
text/typescript
import type { CollapsibleRootProps } from 'reka-ui';
import type { VNode } from 'vue';
import type { AppConfig } from '@nuxt/schema';
import theme from '#build/b24ui/chat-tool';
import type { IconComponent } from '../types';
import type { ChatShimmerProps } from './ChatShimmer.vue';
import type { ComponentConfig } from '../types/tv';
type ChatTool = ComponentConfig<typeof theme, AppConfig, 'chatTool'>;
export interface ChatToolProps extends Pick<CollapsibleRootProps, 'defaultOpen' | 'open' | 'disabled' | 'unmountOnHide'> {
/**
* The text content to display.
*/
text?: string;
/**
* The suffix text displayed after the main text.
*/
suffix?: string;
/**
* The icon displayed next to the trigger.
* @IconifyIcon
*/
icon?: IconComponent;
/**
* Whether the tool is in a loading state.
* @defaultValue false
*/
loading?: boolean;
/**
* Shows LoaderWaitIcon in loading mode
* @defaultValue false
*/
useWait?: boolean;
/**
* Shows LoaderClockIcon icon in loading mode
* @defaultValue false
*/
useClock?: boolean;
/**
* The icon displayed when loading.
* @defaultValue icons.loading
* @IconifyIcon
*/
loadingIcon?: IconComponent;
/**
* Whether the tool content is currently streaming.
* @defaultValue false
*/
streaming?: boolean;
/**
* The visual variant of the tool display.
* @defaultValue 'inline'
*/
variant?: ChatTool['variants']['variant'];
/**
* The position of the chevron icon.
* @defaultValue 'trailing'
*/
chevron?: 'leading' | 'trailing';
/**
* The icon displayed as the chevron.
* @defaultValue icons.chevronDown
* @IconifyIcon
*/
chevronIcon?: IconComponent;
/**
* Customize the [`ChatShimmer`](https://bitrix24.github.io/b24ui/docs/components/chat-shimmer/) component when streaming.
*/
shimmer?: Partial<Omit<ChatShimmerProps, 'text'>>;
class?: any;
b24ui?: ChatTool['slots'];
}
export interface ChatToolEmits {
'update:open': [value: boolean];
}
export interface ChatToolSlots {
default?(props: {
open: boolean;
}): VNode[];
}
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ChatToolProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
"update:open": (value: boolean) => any;
}, string, import("vue").PublicProps, Readonly<ChatToolProps> & Readonly<{
"onUpdate:open"?: ((value: boolean) => any) | undefined;
}>, {
variant: ChatTool["variants"]["variant"];
loading: boolean;
open: boolean;
streaming: boolean;
unmountOnHide: boolean;
chevron: "leading" | "trailing";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ChatToolSlots>;
type __VLS_WithSlots<T, S> = T & {
new (): {
$slots: S;
};
};