@meistrari/chat-nuxt 3.9.2 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +50 -440
  2. package/dist/module.d.mts +1 -1
  3. package/dist/module.json +1 -1
  4. package/dist/runtime/assets/css/markstream.css +1 -1
  5. package/dist/runtime/conversations/components/chat-conversation-creator-filter.vue +11 -67
  6. package/dist/runtime/conversations/components/chat-conversation-item.d.vue.ts +2 -1
  7. package/dist/runtime/conversations/components/chat-conversation-item.vue +29 -33
  8. package/dist/runtime/conversations/components/chat-conversation-item.vue.d.ts +2 -1
  9. package/dist/runtime/conversations/components/chat-conversation-list.d.vue.ts +0 -1
  10. package/dist/runtime/conversations/components/chat-conversation-list.vue +117 -158
  11. package/dist/runtime/conversations/components/chat-conversation-list.vue.d.ts +0 -1
  12. package/dist/runtime/conversations/components/chat-conversation-new-group-button.vue +34 -73
  13. package/dist/runtime/conversations/components/chat-conversation-search.vue +1 -21
  14. package/dist/runtime/conversations/components/chat-widget-history-list.d.vue.ts +12 -0
  15. package/dist/runtime/conversations/components/chat-widget-history-list.vue +27 -0
  16. package/dist/runtime/conversations/components/chat-widget-history-list.vue.d.ts +12 -0
  17. package/dist/runtime/conversations/composables/conversation-groups.d.ts +1 -0
  18. package/dist/runtime/conversations/composables/conversation-groups.js +2 -0
  19. package/dist/runtime/conversations/composables/conversation-item.js +4 -4
  20. package/dist/runtime/conversations/composables/conversation-list.js +14 -5
  21. package/dist/runtime/embed/components/chat-configuration-modal.d.vue.ts +3 -3
  22. package/dist/runtime/embed/components/chat-configuration-modal.vue.d.ts +3 -3
  23. package/dist/runtime/embed/components/chat-embed-inner.d.vue.ts +6 -3
  24. package/dist/runtime/embed/components/chat-embed-inner.vue +365 -152
  25. package/dist/runtime/embed/components/chat-embed-inner.vue.d.ts +6 -3
  26. package/dist/runtime/embed/components/chat-embed.d.vue.ts +31 -4
  27. package/dist/runtime/embed/components/chat-embed.vue +10 -4
  28. package/dist/runtime/embed/components/chat-embed.vue.d.ts +31 -4
  29. package/dist/runtime/embed/components/chat-topbar.vue +83 -85
  30. package/dist/runtime/embed/components/meistrari-chat-embed.d.vue.ts +5 -3
  31. package/dist/runtime/embed/components/meistrari-chat-embed.vue +118 -57
  32. package/dist/runtime/embed/components/meistrari-chat-embed.vue.d.ts +5 -3
  33. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.d.vue.ts +0 -1
  34. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.vue +2 -45
  35. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.vue.d.ts +0 -1
  36. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.d.vue.ts +9 -5
  37. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.vue +14 -25
  38. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.vue.d.ts +9 -5
  39. package/dist/runtime/embed/components/mobile/chat-mobile-shell.d.vue.ts +4 -4
  40. package/dist/runtime/embed/components/mobile/chat-mobile-shell.vue +2 -3
  41. package/dist/runtime/embed/components/mobile/chat-mobile-shell.vue.d.ts +4 -4
  42. package/dist/runtime/embed/feature-config.d.ts +7 -0
  43. package/dist/runtime/embed/types.d.ts +47 -8
  44. package/dist/runtime/files/icons.d.ts +1 -1
  45. package/dist/runtime/files/icons.js +1 -1
  46. package/dist/runtime/messages/components/chat-mention-dropdown.d.vue.ts +6 -1
  47. package/dist/runtime/messages/components/chat-mention-dropdown.vue +46 -22
  48. package/dist/runtime/messages/components/chat-mention-dropdown.vue.d.ts +6 -1
  49. package/dist/runtime/messages/components/chat-message-bubble.vue +53 -71
  50. package/dist/runtime/messages/components/chat-message-feedback.vue +25 -229
  51. package/dist/runtime/messages/components/chat-message-input.vue +176 -134
  52. package/dist/runtime/messages/components/chat-message-list.d.vue.ts +6 -0
  53. package/dist/runtime/messages/components/chat-message-list.vue +27 -23
  54. package/dist/runtime/messages/components/chat-message-list.vue.d.ts +6 -0
  55. package/dist/runtime/messages/components/chat-model-selector.vue +10 -22
  56. package/dist/runtime/messages/components/reasoning/chat-reasoning-message.vue +2 -3
  57. package/dist/runtime/messages/components/reasoning/chat-reasoning-thought.vue +60 -69
  58. package/dist/runtime/messages/components/reasoning/chat-thinking-indicator.vue +3 -9
  59. package/dist/runtime/messages/components/widgets/chat-bash-widget.vue +3 -12
  60. package/dist/runtime/messages/components/widgets/chat-doc-sdk-widget.vue +3 -12
  61. package/dist/runtime/messages/components/widgets/chat-generic-tool-widget.vue +3 -12
  62. package/dist/runtime/messages/components/widgets/chat-grep-widget.vue +7 -17
  63. package/dist/runtime/messages/components/widgets/chat-read-widget.vue +7 -17
  64. package/dist/runtime/messages/components/widgets/chat-tela-skill-widget.vue +4 -13
  65. package/dist/runtime/messages/components/widgets/chat-thinking-widget.vue +11 -22
  66. package/dist/runtime/messages/components/widgets/chat-web-search-widget.vue +13 -40
  67. package/dist/runtime/messages/components/widgets/chat-workstation-query-widget.vue +52 -65
  68. package/dist/runtime/messages/components/widgets/chat-write-widget.vue +8 -18
  69. package/dist/runtime/messages/composables/mention-autocomplete.js +4 -0
  70. package/dist/runtime/messages/message-state.js +1 -0
  71. package/dist/runtime/public/files/generic.svg +2 -5
  72. package/dist/runtime/public/files/image.svg +2 -1
  73. package/dist/runtime/types/embed.d.ts +1 -1
  74. package/dist/runtime/types/schemas/chat/conversations.d.ts +2 -0
  75. package/dist/runtime/types/schemas/chat/conversations.js +3 -0
  76. package/dist/runtime/types/schemas/chat/messages.d.ts +4 -0
  77. package/dist/runtime/types/schemas/chat/messages.js +7 -0
  78. package/dist/types.d.mts +1 -1
  79. package/package.json +5 -4
  80. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.d.vue.ts +0 -23
  81. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.vue +0 -75
  82. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.vue.d.ts +0 -23
  83. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.d.vue.ts +0 -37
  84. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.vue +0 -125
  85. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.vue.d.ts +0 -37
@@ -1,91 +1,52 @@
1
1
  <script setup>
2
2
  import { useConversationGroups } from "../composables/conversation-groups";
3
- import ChatConversationNewGroupPopoverContent from "./chat-conversation-new-group-popover-content.vue";
4
3
  const props = defineProps({
5
4
  label: { type: String, required: false },
6
5
  variant: { type: String, required: false }
7
6
  });
8
- const { createGroup, error: groupCreationError } = useConversationGroups();
9
- const isOpen = ref(false);
10
- const groupName = ref("");
11
- const isSaving = ref(false);
12
- const creationErrorMessage = ref(null);
13
- const popoverContentRef = ref(null);
7
+ const DEFAULT_GROUP_NAME = "Nova pasta";
8
+ const { groups, createGroup, pendingRenameGroupId } = useConversationGroups();
9
+ const isCreating = ref(false);
14
10
  const hasLabel = computed(() => Boolean(props.label?.trim()));
15
11
  const isEmptyState = computed(() => props.variant === "empty-state");
16
12
  const buttonClasses = computed(() => {
17
13
  if (isEmptyState.value)
18
- return "h-32px w-full gap-6px px-12px border-neutral-300 hover:bg-neutral-50";
14
+ return "h-32px w-full gap-6px px-12px";
19
15
  if (hasLabel.value)
20
- return "h-28px px-10px gap-6px self-start border-neutral-300 hover:bg-neutral-50";
21
- return "h-32px w-40px border-neutral-300 hover:bg-neutral-50";
16
+ return "h-28px px-10px gap-6px self-start";
17
+ return "h-32px! w-40px! p-0!";
22
18
  });
23
- const iconClasses = computed(() => isEmptyState.value ? "text-neutral-900" : "text-neutral-700");
24
- const labelClasses = computed(
25
- () => isEmptyState.value ? "text-14px font-semibold text-neutral-900 leading-18px" : "text-13px font-medium text-neutral-700 leading-17px"
26
- );
27
- watch(isOpen, async (open) => {
28
- if (!open) {
29
- creationErrorMessage.value = null;
30
- return;
31
- }
32
- await nextTick();
33
- popoverContentRef.value?.focusInput?.();
34
- });
35
- watch(groupName, () => {
36
- creationErrorMessage.value = null;
37
- });
38
- async function submitGroup() {
39
- const name = groupName.value.trim();
40
- if (!name || isSaving.value)
41
- return;
42
- creationErrorMessage.value = null;
43
- isSaving.value = true;
44
- const group = await createGroup(name);
45
- isSaving.value = false;
46
- if (!group) {
47
- creationErrorMessage.value = groupCreationError.value || "Erro ao criar pasta";
48
- return;
49
- }
50
- groupName.value = "";
51
- creationErrorMessage.value = null;
52
- isOpen.value = false;
19
+ function nextGroupName() {
20
+ const names = new Set(groups.value.map((group) => group.name));
21
+ if (!names.has(DEFAULT_GROUP_NAME))
22
+ return DEFAULT_GROUP_NAME;
23
+ let index = 2;
24
+ while (names.has(`${DEFAULT_GROUP_NAME} ${index}`))
25
+ index += 1;
26
+ return `${DEFAULT_GROUP_NAME} ${index}`;
53
27
  }
54
- function cancelGroup() {
55
- groupName.value = "";
56
- creationErrorMessage.value = null;
57
- isOpen.value = false;
28
+ async function handleCreateGroup() {
29
+ if (isCreating.value)
30
+ return;
31
+ isCreating.value = true;
32
+ const group = await createGroup(nextGroupName());
33
+ isCreating.value = false;
34
+ if (group)
35
+ pendingRenameGroupId.value = group.id;
58
36
  }
59
37
  </script>
60
38
 
61
39
  <template>
62
- <TelaPopover v-model:open="isOpen">
63
- <TelaPopoverTrigger as-child>
64
- <button
65
- type="button"
66
- flex items-center justify-center
67
- bg-white b=".5px solid"
68
- rounded-10px
69
- transition-colors
70
- cursor-pointer
71
- :class="buttonClasses"
72
- :aria-label="label || 'Nova pasta'"
73
- :title="label || 'Nova pasta'"
74
- >
75
- <span i-ph-folder-plus text-16px :class="iconClasses" />
76
- <span v-if="hasLabel" :class="labelClasses">
77
- {{ label }}
78
- </span>
79
- </button>
80
- </TelaPopoverTrigger>
81
-
82
- <ChatConversationNewGroupPopoverContent
83
- ref="popoverContentRef"
84
- v-model="groupName"
85
- :error-message="creationErrorMessage"
86
- :saving="isSaving"
87
- @submit="submitGroup"
88
- @cancel="cancelGroup"
89
- />
90
- </TelaPopover>
40
+ <TelaButton
41
+ type="button"
42
+ variant="secondary"
43
+ :class="buttonClasses"
44
+ :aria-label="label || 'Nova pasta'"
45
+ @click="handleCreateGroup"
46
+ >
47
+ <TelaIcon name="i-ph-folder-plus" size="16px" color="icon-secondary" ml-0.5px />
48
+ <span v-if="hasLabel">
49
+ {{ label }}
50
+ </span>
51
+ </TelaButton>
91
52
  </template>
@@ -3,9 +3,6 @@ defineProps({
3
3
  placeholder: { type: String, required: false, default: "Buscar conversas" }
4
4
  });
5
5
  const searchQuery = defineModel({ type: String, ...{ required: true } });
6
- function clearSearch() {
7
- searchQuery.value = "";
8
- }
9
6
  </script>
10
7
 
11
8
  <template>
@@ -14,22 +11,5 @@ function clearSearch() {
14
11
  icon="i-ph-magnifying-glass-bold"
15
12
  :placeholder="placeholder"
16
13
  autocomplete="off"
17
- >
18
- <template v-if="searchQuery" #trailing>
19
- <TelaTooltip content="Limpar busca">
20
- <button
21
- type="button"
22
- aria-label="Limpar busca"
23
- hover:bg="#EBEFF199"
24
- transition-colors
25
- p-4px rounded-full
26
- class="group"
27
- tabindex="-1"
28
- @click.stop="clearSearch"
29
- >
30
- <TelaIcon name="i-ph-x-circle-light" text="#031E22" op-40 group-hover:op-100 transition-opacity />
31
- </button>
32
- </TelaTooltip>
33
- </template>
34
- </TelaInput>
14
+ />
35
15
  </template>
@@ -0,0 +1,12 @@
1
+ type __VLS_Props = {
2
+ searchPlaceholder?: string;
3
+ emptyMessage?: string;
4
+ emptySearchMessage?: string;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
+ searchPlaceholder: string;
8
+ emptyMessage: string;
9
+ emptySearchMessage: string;
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,27 @@
1
+ <script setup>
2
+ import { useConversations } from "../composables/conversations";
3
+ import { capitalizeFirst } from "../../shared/string";
4
+ defineProps({
5
+ searchPlaceholder: { type: String, required: false, default: "Buscar conversas" },
6
+ emptyMessage: { type: String, required: false, default: "Nenhuma conversa ainda" },
7
+ emptySearchMessage: { type: String, required: false, default: "Nenhuma conversa encontrada" }
8
+ });
9
+ const { conversations, loading, fetchConversations } = useConversations();
10
+ onMounted(() => {
11
+ fetchConversations();
12
+ });
13
+ const items = computed(() => conversations.value.map((conversation) => ({
14
+ id: conversation.id,
15
+ title: capitalizeFirst(conversation.title || "Nova conversa")
16
+ })));
17
+ </script>
18
+
19
+ <template>
20
+ <TelaChatWidgetHistoryList
21
+ :items="items"
22
+ :loading="loading"
23
+ :search-placeholder="searchPlaceholder"
24
+ :empty-message="emptyMessage"
25
+ :empty-search-message="emptySearchMessage"
26
+ />
27
+ </template>
@@ -0,0 +1,12 @@
1
+ type __VLS_Props = {
2
+ searchPlaceholder?: string;
3
+ emptyMessage?: string;
4
+ emptySearchMessage?: string;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
+ searchPlaceholder: string;
8
+ emptyMessage: string;
9
+ emptySearchMessage: string;
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -3,6 +3,7 @@ export declare function useConversationGroups(): {
3
3
  groups: any;
4
4
  loading: any;
5
5
  error: any;
6
+ pendingRenameGroupId: any;
6
7
  fetchGroups: (options?: {
7
8
  force?: boolean;
8
9
  }) => Promise<void>;
@@ -20,6 +20,7 @@ export function useConversationGroups() {
20
20
  const loadingBuckets = useState("conversation-groups-loading", () => ({}));
21
21
  const fetchedBuckets = useState("conversation-groups-fetched", () => ({}));
22
22
  const errorBuckets = useState("conversation-groups-error", () => ({}));
23
+ const pendingRenameGroupId = useState("conversation-groups-pending-rename", () => null);
23
24
  const runtimeScope = computed(() => resolveChatStateScope(
24
25
  embedConfig?.workspaceId.value || activeOrganization.value?.id,
25
26
  embedConfig?.telaAgentId.value,
@@ -155,6 +156,7 @@ export function useConversationGroups() {
155
156
  groups: readonly(groups),
156
157
  loading: readonly(loading),
157
158
  error: readonly(error),
159
+ pendingRenameGroupId,
158
160
  fetchGroups,
159
161
  createGroup,
160
162
  renameGroup,
@@ -128,22 +128,22 @@ export function useConversationItem(options, emit) {
128
128
  const menuItems = [
129
129
  {
130
130
  label: "Renomear",
131
- icon: "i-ph-pencil-simple",
131
+ icon: "i-ph-pencil-simple-bold",
132
132
  click: () => startRename()
133
133
  },
134
134
  {
135
135
  label: "Duplicar",
136
- icon: "i-ph-copy",
136
+ icon: "i-ph-copy-bold",
137
137
  click: () => emit("duplicate", options.conversation.id)
138
138
  },
139
139
  {
140
140
  label: "Exportar",
141
- icon: "i-ph-download-simple",
141
+ icon: "i-ph-download-simple-bold",
142
142
  click: () => emit("export", options.conversation.id)
143
143
  },
144
144
  {
145
145
  label: "Excluir",
146
- icon: "i-ph-trash",
146
+ icon: "i-ph-trash-bold",
147
147
  color: "negative",
148
148
  click: () => showDeleteModal.value = true
149
149
  }
@@ -15,7 +15,7 @@ export function useConversationList(options) {
15
15
  const embedConfig = useEmbedConfig();
16
16
  const { activeOrganization } = useChatAuth();
17
17
  const { deleteConversation, renameConversation, duplicateConversation, moveConversationToGroup } = useConversations();
18
- const { groups, fetchGroups, deleteGroup, renameGroup, error: groupError } = useConversationGroups();
18
+ const { groups, fetchGroups, deleteGroup, renameGroup, error: groupError, pendingRenameGroupId } = useConversationGroups();
19
19
  const { setConversation } = useChat();
20
20
  const route = useRoute();
21
21
  const router = useRouter();
@@ -193,22 +193,31 @@ export function useConversationList(options) {
193
193
  isIgnoringInitialGroupRenameBlur.value = true;
194
194
  void focusRenameGroupInput();
195
195
  }
196
+ watch([pendingRenameGroupId, groups], ([pendingId]) => {
197
+ if (!pendingId)
198
+ return;
199
+ const group = groups.value.find((item) => item.id === pendingId);
200
+ if (!group)
201
+ return;
202
+ pendingRenameGroupId.value = null;
203
+ startRenameGroup(group.id, group.name);
204
+ }, { immediate: true });
196
205
  function getGroupMenuItems(groupId, groupName, conversations) {
197
206
  return [
198
207
  {
199
208
  label: "Renomear pasta",
200
- icon: "i-ph-pencil-simple",
209
+ icon: "i-ph-pencil-simple-bold",
201
210
  click: () => startRenameGroup(groupId, groupName)
202
211
  },
203
212
  {
204
213
  label: "Excluir pasta",
205
- icon: "i-ph-folder-minus",
214
+ icon: "i-ph-folder-minus-bold",
206
215
  color: "negative",
207
216
  click: () => openDeleteGroupModal(groupId, groupName, conversations)
208
217
  },
209
218
  {
210
219
  label: "Excluir conversas",
211
- icon: "i-ph-trash",
220
+ icon: "i-ph-trash-bold",
212
221
  color: "negative",
213
222
  disabled: conversations.length === 0,
214
223
  click: () => openDeleteGroupConversationsModal(groupId, groupName, conversations)
@@ -230,7 +239,7 @@ export function useConversationList(options) {
230
239
  ...groupBucket,
231
240
  open,
232
241
  dropTarget,
233
- folderIcon: open ? "i-ph-folder-open" : "i-ph-folder",
242
+ folderIcon: open ? "i-ph-folder-notch-open-bold" : "i-ph-folder-notch-bold",
234
243
  isRenaming: renamingGroupId.value === groupBucket.group.id,
235
244
  conversationCountLabel: groupBucket.items.length > 0 ? String(groupBucket.items.length) : null,
236
245
  showNewConversationAction: !hasConversationSearchQuery.value,
@@ -9,14 +9,14 @@ type __VLS_Props = {
9
9
  showCredentialsTab?: boolean;
10
10
  };
11
11
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
- save: (payload: ChatConfigurationSavePayload) => any;
13
12
  "update:open": (value: boolean) => any;
13
+ save: (payload: ChatConfigurationSavePayload) => any;
14
14
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
- onSave?: ((payload: ChatConfigurationSavePayload) => any) | undefined;
16
15
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
16
+ onSave?: ((payload: ChatConfigurationSavePayload) => any) | undefined;
17
17
  }>, {
18
- saving: boolean;
19
18
  initialTab: ChatConfigurationTab;
19
+ saving: boolean;
20
20
  showCredentialsTab: boolean;
21
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
@@ -9,14 +9,14 @@ type __VLS_Props = {
9
9
  showCredentialsTab?: boolean;
10
10
  };
11
11
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
- save: (payload: ChatConfigurationSavePayload) => any;
13
12
  "update:open": (value: boolean) => any;
13
+ save: (payload: ChatConfigurationSavePayload) => any;
14
14
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
- onSave?: ((payload: ChatConfigurationSavePayload) => any) | undefined;
16
15
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
16
+ onSave?: ((payload: ChatConfigurationSavePayload) => any) | undefined;
17
17
  }>, {
18
- saving: boolean;
19
18
  initialTab: ChatConfigurationTab;
19
+ saving: boolean;
20
20
  showCredentialsTab: boolean;
21
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
@@ -1,5 +1,5 @@
1
1
  import type { ChatFeatureConfig } from '../feature-config.js';
2
- import type { ChatActor, ChatSidebarConfig } from '../types.js';
2
+ import type { ChatActor, ChatSidebarConfig, ChatSuggestion } from '../types.js';
3
3
  type EmbedUser = ChatActor;
4
4
  type __VLS_Props = {
5
5
  conversationId?: string | null;
@@ -7,7 +7,8 @@ type __VLS_Props = {
7
7
  hideSidebar?: boolean;
8
8
  sidebar?: ChatSidebarConfig;
9
9
  hideSettings?: boolean;
10
- hideFolderHint?: boolean;
10
+ compact?: boolean;
11
+ suggestions?: readonly ChatSuggestion[] | null;
11
12
  user?: EmbedUser | null;
12
13
  features?: Partial<ChatFeatureConfig>;
13
14
  };
@@ -17,13 +18,15 @@ type __VLS_Slots = {} & {
17
18
  };
18
19
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
19
20
  "update:conversationId": (value: string | null) => any;
21
+ "update:conversationTitle": (value: string | null) => any;
20
22
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
23
  "onUpdate:conversationId"?: ((value: string | null) => any) | undefined;
24
+ "onUpdate:conversationTitle"?: ((value: string | null) => any) | undefined;
22
25
  }>, {
23
- hideFolderHint: boolean;
24
26
  hideSettings: boolean;
25
27
  hideSidebar: boolean;
26
28
  initialConversationId: string | null;
29
+ compact: boolean;
27
30
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
31
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
32
  declare const _default: typeof __VLS_export;