@meistrari/chat-nuxt 3.9.1 → 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.
- package/README.md +50 -440
- package/dist/module.d.mts +1 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +56 -3
- package/dist/runtime/assets/css/markstream.css +1 -1
- package/dist/runtime/conversations/components/chat-conversation-creator-filter.vue +11 -67
- package/dist/runtime/conversations/components/chat-conversation-item.d.vue.ts +2 -1
- package/dist/runtime/conversations/components/chat-conversation-item.vue +29 -33
- package/dist/runtime/conversations/components/chat-conversation-item.vue.d.ts +2 -1
- package/dist/runtime/conversations/components/chat-conversation-list.d.vue.ts +0 -1
- package/dist/runtime/conversations/components/chat-conversation-list.vue +117 -158
- package/dist/runtime/conversations/components/chat-conversation-list.vue.d.ts +0 -1
- package/dist/runtime/conversations/components/chat-conversation-new-group-button.vue +34 -73
- package/dist/runtime/conversations/components/chat-conversation-search.vue +1 -21
- package/dist/runtime/conversations/components/chat-widget-history-list.d.vue.ts +12 -0
- package/dist/runtime/conversations/components/chat-widget-history-list.vue +27 -0
- package/dist/runtime/conversations/components/chat-widget-history-list.vue.d.ts +12 -0
- package/dist/runtime/conversations/composables/conversation-groups.d.ts +1 -0
- package/dist/runtime/conversations/composables/conversation-groups.js +2 -0
- package/dist/runtime/conversations/composables/conversation-item.js +4 -4
- package/dist/runtime/conversations/composables/conversation-list.js +14 -5
- package/dist/runtime/embed/components/chat-configuration-modal.d.vue.ts +3 -3
- package/dist/runtime/embed/components/chat-configuration-modal.vue.d.ts +3 -3
- package/dist/runtime/embed/components/chat-embed-inner.d.vue.ts +6 -3
- package/dist/runtime/embed/components/chat-embed-inner.vue +365 -152
- package/dist/runtime/embed/components/chat-embed-inner.vue.d.ts +6 -3
- package/dist/runtime/embed/components/chat-embed.d.vue.ts +31 -4
- package/dist/runtime/embed/components/chat-embed.vue +10 -4
- package/dist/runtime/embed/components/chat-embed.vue.d.ts +31 -4
- package/dist/runtime/embed/components/chat-topbar.vue +83 -85
- package/dist/runtime/embed/components/meistrari-chat-embed.d.vue.ts +5 -3
- package/dist/runtime/embed/components/meistrari-chat-embed.vue +118 -57
- package/dist/runtime/embed/components/meistrari-chat-embed.vue.d.ts +5 -3
- package/dist/runtime/embed/components/mobile/chat-mobile-drawer.d.vue.ts +0 -1
- package/dist/runtime/embed/components/mobile/chat-mobile-drawer.vue +2 -45
- package/dist/runtime/embed/components/mobile/chat-mobile-drawer.vue.d.ts +0 -1
- package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.d.vue.ts +9 -5
- package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.vue +14 -25
- package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.vue.d.ts +9 -5
- package/dist/runtime/embed/components/mobile/chat-mobile-shell.d.vue.ts +6 -6
- package/dist/runtime/embed/components/mobile/chat-mobile-shell.vue +2 -3
- package/dist/runtime/embed/components/mobile/chat-mobile-shell.vue.d.ts +6 -6
- package/dist/runtime/embed/feature-config.d.ts +7 -0
- package/dist/runtime/embed/types.d.ts +47 -8
- package/dist/runtime/files/icons.d.ts +1 -1
- package/dist/runtime/files/icons.js +1 -1
- package/dist/runtime/messages/components/chat-mention-dropdown.d.vue.ts +6 -1
- package/dist/runtime/messages/components/chat-mention-dropdown.vue +46 -22
- package/dist/runtime/messages/components/chat-mention-dropdown.vue.d.ts +6 -1
- package/dist/runtime/messages/components/chat-message-bubble.vue +53 -71
- package/dist/runtime/messages/components/chat-message-feedback.vue +25 -229
- package/dist/runtime/messages/components/chat-message-input.vue +176 -134
- package/dist/runtime/messages/components/chat-message-list.d.vue.ts +6 -0
- package/dist/runtime/messages/components/chat-message-list.vue +27 -23
- package/dist/runtime/messages/components/chat-message-list.vue.d.ts +6 -0
- package/dist/runtime/messages/components/chat-model-selector.vue +10 -22
- package/dist/runtime/messages/components/reasoning/chat-reasoning-message.vue +2 -3
- package/dist/runtime/messages/components/reasoning/chat-reasoning-thought.vue +60 -69
- package/dist/runtime/messages/components/reasoning/chat-thinking-indicator.vue +3 -9
- package/dist/runtime/messages/components/widgets/chat-bash-widget.vue +3 -12
- package/dist/runtime/messages/components/widgets/chat-doc-sdk-widget.vue +3 -12
- package/dist/runtime/messages/components/widgets/chat-generic-tool-widget.vue +3 -12
- package/dist/runtime/messages/components/widgets/chat-grep-widget.vue +7 -17
- package/dist/runtime/messages/components/widgets/chat-read-widget.vue +7 -17
- package/dist/runtime/messages/components/widgets/chat-tela-skill-widget.vue +4 -13
- package/dist/runtime/messages/components/widgets/chat-thinking-widget.vue +11 -22
- package/dist/runtime/messages/components/widgets/chat-web-search-widget.vue +13 -40
- package/dist/runtime/messages/components/widgets/chat-workstation-query-widget.vue +52 -65
- package/dist/runtime/messages/components/widgets/chat-write-widget.vue +8 -18
- package/dist/runtime/messages/composables/mention-autocomplete.js +4 -0
- package/dist/runtime/messages/message-reasoning.js +4 -0
- package/dist/runtime/messages/message-state.js +1 -0
- package/dist/runtime/public/files/generic.svg +2 -5
- package/dist/runtime/public/files/image.svg +2 -1
- package/dist/runtime/types/embed.d.ts +1 -1
- package/dist/runtime/types/schemas/chat/conversations.d.ts +2 -0
- package/dist/runtime/types/schemas/chat/conversations.js +3 -0
- package/dist/runtime/types/schemas/chat/messages.d.ts +4 -0
- package/dist/runtime/types/schemas/chat/messages.js +7 -0
- package/dist/types.d.mts +1 -1
- package/package.json +5 -4
- package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.d.vue.ts +0 -23
- package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.vue +0 -75
- package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.vue.d.ts +0 -23
- package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.d.vue.ts +0 -37
- package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.vue +0 -125
- package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.vue.d.ts +0 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
.markstream-vue{color
|
|
1
|
+
.markstream-vue{color:#171717;font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:16px;font-weight:400;letter-spacing:-.15px;line-height:24px;--list-item-marker:#a3a3a3}.markstream-vue code,.markstream-vue kbd,.markstream-vue pre,.markstream-vue samp{font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:13px;font-variation-settings:normal;line-height:1.5}.markstream-vue ol,.markstream-vue ul{margin:8px 0;padding-left:1.5em}.markstream-vue .hr-node{border-color:#e5e5e5;border-top-width:.5px;margin-bottom:24px;margin-top:24px}.markstream-vue .strong-node{font-weight:580}.markstream-vue .list-node.list-node{margin-bottom:8px;margin-left:4px;margin-top:8px;padding-left:1em}.markstream-vue ul{list-style:disc;list-style-position:outside}.markstream-vue ol{list-style:decimal;list-style-position:outside}.markstream-vue li{margin:4px 0}.markstream-vue .paragraph-node{margin:0}.markstream-vue .my-8{margin-bottom:8px;margin-top:8px}.markstream-vue .heading-node.heading-1,.markstream-vue h1{font-size:24px;font-weight:540;letter-spacing:-.8px;line-height:28px;margin:24px 0 16px}.markstream-vue .heading-node.heading-2,.markstream-vue h2{font-size:20px;font-weight:540;letter-spacing:-.5px;line-height:24px;margin:20px 0 12px}.markstream-vue .heading-node.heading-3,.markstream-vue h3{font-size:20px;font-weight:540;letter-spacing:-.5px;line-height:24px;margin:16px 0 8px}.markstream-vue .heading-node.heading-4,.markstream-vue h4{font-size:16px;font-weight:540;letter-spacing:-.2px;line-height:20px;margin:12px 0 6px}.markstream-vue .heading-node.heading-5,.markstream-vue h5{font-size:14px;font-weight:540;letter-spacing:-.15px;line-height:16px;margin:8px 0 4px}.markstream-vue .heading-node.heading-6,.markstream-vue h6{font-size:12px;font-weight:540;letter-spacing:-.1px;line-height:14px;margin:8px 0 4px}.markstream-vue [class*=tooltip],[class*=tooltip-element]{background-color:var(--neutral-900,#1a1a1a)!important;border-radius:4px;color:#fff!important;font-size:12px;padding:4px 8px}.mention-tag{align-items:center;border-radius:9999px;display:inline-flex;font-size:.875em;font-weight:500;gap:4px;padding:2px 8px;vertical-align:middle;white-space:nowrap}.mention-tag-file{background-color:rgba(127,189,247,.12);color:#7fbdf7}.mention-tag-skill{background-color:rgba(155,111,222,.12);color:#9b6fde}.mention-tag-canvas{background-color:rgba(234,161,65,.12);color:#d4882e}.mention-tag>span[class*=i-ph]{flex-shrink:0}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { nextTick } from "vue";
|
|
3
2
|
import { useConversations } from "../composables/conversations";
|
|
4
3
|
import { conversationCreatorFilterOptions } from "../../types/schemas/chat/ui.js";
|
|
5
|
-
import {
|
|
6
|
-
hasConversationCreatorFilterResults,
|
|
7
|
-
resolveConversationCreatorFilterKeyboardTarget
|
|
8
|
-
} from "../creator-filter";
|
|
4
|
+
import { hasConversationCreatorFilterResults } from "../creator-filter";
|
|
9
5
|
const { conversationCreatorFilter, conversationCreatorFilterCounts, fetchConversations } = useConversations();
|
|
10
6
|
const isUpdating = ref(false);
|
|
11
|
-
const filterButtonElements = ref([]);
|
|
12
7
|
const filterOptions = computed(() => conversationCreatorFilterOptions.map((option) => ({
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
value: option.value,
|
|
9
|
+
label: `${option.label} ${conversationCreatorFilterCounts.value[option.value]}`
|
|
15
10
|
})));
|
|
16
11
|
const showConversationCreatorFilter = computed(
|
|
17
12
|
() => hasConversationCreatorFilterResults(conversationCreatorFilterCounts.value)
|
|
@@ -19,23 +14,10 @@ const showConversationCreatorFilter = computed(
|
|
|
19
14
|
function isConversationCreatorFilter(value) {
|
|
20
15
|
return value === "all" || value === "mine";
|
|
21
16
|
}
|
|
22
|
-
function
|
|
23
|
-
if (element && typeof element === "object" && "focus" in element) {
|
|
24
|
-
filterButtonElements.value[index] = element;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function focusFilterButton(value) {
|
|
28
|
-
const index = filterOptions.value.findIndex((option) => option.value === value);
|
|
29
|
-
filterButtonElements.value[index]?.focus();
|
|
30
|
-
}
|
|
31
|
-
async function handleFilterUpdate(value, options = {}) {
|
|
17
|
+
async function handleFilterUpdate(value) {
|
|
32
18
|
if (isUpdating.value || !isConversationCreatorFilter(value) || value === conversationCreatorFilter.value)
|
|
33
19
|
return;
|
|
34
20
|
conversationCreatorFilter.value = value;
|
|
35
|
-
if (options.focus) {
|
|
36
|
-
await nextTick();
|
|
37
|
-
focusFilterButton(value);
|
|
38
|
-
}
|
|
39
21
|
isUpdating.value = true;
|
|
40
22
|
try {
|
|
41
23
|
await fetchConversations({ force: true });
|
|
@@ -43,54 +25,16 @@ async function handleFilterUpdate(value, options = {}) {
|
|
|
43
25
|
isUpdating.value = false;
|
|
44
26
|
}
|
|
45
27
|
}
|
|
46
|
-
function handleFilterKeydown(event, value) {
|
|
47
|
-
const nextFilter = resolveConversationCreatorFilterKeyboardTarget(value, event.key);
|
|
48
|
-
if (!nextFilter || isUpdating.value)
|
|
49
|
-
return;
|
|
50
|
-
event.preventDefault();
|
|
51
|
-
void handleFilterUpdate(nextFilter, { focus: true });
|
|
52
|
-
}
|
|
53
28
|
</script>
|
|
54
29
|
|
|
55
30
|
<template>
|
|
56
|
-
<
|
|
31
|
+
<TelaSegmentToggle
|
|
57
32
|
v-if="showConversationCreatorFilter"
|
|
58
|
-
|
|
33
|
+
:model-value="conversationCreatorFilter"
|
|
34
|
+
:options="filterOptions"
|
|
35
|
+
class="w-full"
|
|
36
|
+
buttons-class="flex-1 min-w-0 px-8px"
|
|
59
37
|
aria-label="Filtrar conversas por criador"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
>
|
|
63
|
-
<button
|
|
64
|
-
v-for="(option, index) in filterOptions"
|
|
65
|
-
:key="option.value"
|
|
66
|
-
:ref="(element) => setFilterButtonElement(element, index)"
|
|
67
|
-
type="button"
|
|
68
|
-
role="tab"
|
|
69
|
-
class="creator-filter-option"
|
|
70
|
-
flex-1 min-w-0 h-28px rounded-9px px-8px
|
|
71
|
-
flex items-center justify-center gap-4px
|
|
72
|
-
:class="conversationCreatorFilter === option.value ? 'creator-filter-option-active bg-white cursor-default' : 'bg-transparent hover:bg-white/45 cursor-pointer'"
|
|
73
|
-
:aria-disabled="isUpdating"
|
|
74
|
-
:aria-selected="conversationCreatorFilter === option.value"
|
|
75
|
-
:tabindex="conversationCreatorFilter === option.value ? 0 : -1"
|
|
76
|
-
@click="handleFilterUpdate(option.value)"
|
|
77
|
-
@keydown="handleFilterKeydown($event, option.value)"
|
|
78
|
-
>
|
|
79
|
-
<span
|
|
80
|
-
body-12-semibold leading-16px truncate
|
|
81
|
-
:class="conversationCreatorFilter === option.value ? 'text-neutral-950' : 'text-neutral-500'"
|
|
82
|
-
>
|
|
83
|
-
{{ option.label }}
|
|
84
|
-
</span>
|
|
85
|
-
<span
|
|
86
|
-
body-12-semibold leading-16px shrink-0 text-neutral-400
|
|
87
|
-
>
|
|
88
|
-
{{ option.count }}
|
|
89
|
-
</span>
|
|
90
|
-
</button>
|
|
91
|
-
</div>
|
|
38
|
+
@update:model-value="handleFilterUpdate"
|
|
39
|
+
/>
|
|
92
40
|
</template>
|
|
93
|
-
|
|
94
|
-
<style scoped>
|
|
95
|
-
.creator-filter-option{transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,opacity .16s ease}.creator-filter-option-active{box-shadow:0 1px 2px rgba(16,24,40,.08),0 2px 8px rgba(16,24,40,.1)}.creator-filter-option[aria-disabled=true]{cursor:wait}
|
|
96
|
-
</style>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { DeepReadonly } from 'vue';
|
|
1
|
+
import type { DeepReadonly, HTMLAttributes } from 'vue';
|
|
2
2
|
import type { Conversation } from '../../types/schemas/chat/conversations.js';
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
conversation: DeepReadonly<Conversation>;
|
|
5
5
|
active: boolean;
|
|
6
6
|
draggable?: boolean;
|
|
7
|
+
itemClass?: HTMLAttributes['class'];
|
|
7
8
|
userImage?: string;
|
|
8
9
|
selectConversation?: (id: string) => void | Promise<void>;
|
|
9
10
|
};
|
|
@@ -4,6 +4,7 @@ const props = defineProps({
|
|
|
4
4
|
conversation: { type: null, required: true },
|
|
5
5
|
active: { type: Boolean, required: true },
|
|
6
6
|
draggable: { type: Boolean, required: false },
|
|
7
|
+
itemClass: { type: null, required: false },
|
|
7
8
|
userImage: { type: String, required: false },
|
|
8
9
|
selectConversation: { type: Function, required: false }
|
|
9
10
|
});
|
|
@@ -39,26 +40,21 @@ function setMenuButtonRef(element) {
|
|
|
39
40
|
<template>
|
|
40
41
|
<div
|
|
41
42
|
v-if="isRenamingInline"
|
|
42
|
-
|
|
43
|
+
pl-10px pr-4px
|
|
43
44
|
h-32px
|
|
44
|
-
rounded-
|
|
45
|
-
:class="active ? 'bg-
|
|
45
|
+
rounded-10px
|
|
46
|
+
:class="active ? 'bg-muted' : ''"
|
|
46
47
|
>
|
|
47
|
-
<div flex items-center justify-between gap-
|
|
48
|
-
<div v-if="userImage" w-16px h-16px rounded-full overflow-hidden flex-shrink-0>
|
|
48
|
+
<div flex items-center justify-between gap-8px h-full :class="props.itemClass">
|
|
49
|
+
<div v-if="userImage" w-16px h-16px flex items-center justify-center rounded-full overflow-hidden flex-shrink-0>
|
|
49
50
|
<TelaAvatar
|
|
50
51
|
:image="userImage"
|
|
51
52
|
alt="Usuário"
|
|
52
|
-
size="
|
|
53
|
+
size="2xs"
|
|
53
54
|
/>
|
|
54
55
|
</div>
|
|
55
56
|
|
|
56
|
-
<div
|
|
57
|
-
flex-1 min-w-0 flex items-center
|
|
58
|
-
text-neutral-700
|
|
59
|
-
pb-1px
|
|
60
|
-
b-b=".5px solid #A3A3A3"
|
|
61
|
-
>
|
|
57
|
+
<div relative flex-1 min-w-0 flex items-center>
|
|
62
58
|
<input
|
|
63
59
|
:ref="setRenameInputRef"
|
|
64
60
|
v-model="renameTitle"
|
|
@@ -67,12 +63,13 @@ function setMenuButtonRef(element) {
|
|
|
67
63
|
aria-label="Nome da conversa"
|
|
68
64
|
w-full min-w-0
|
|
69
65
|
bg-transparent border-none outline-none
|
|
70
|
-
|
|
66
|
+
body-14-medium text-neutral-700
|
|
71
67
|
p-0
|
|
72
68
|
@blur="handleRenameBlur"
|
|
73
69
|
@keydown.enter.prevent="submitRename"
|
|
74
70
|
@keydown.escape.prevent.stop="cancelRename"
|
|
75
71
|
>
|
|
72
|
+
<div aria-hidden="true" absolute inset-x-0 bottom--0.5px h-0.5px bg-border pointer-events-none />
|
|
76
73
|
</div>
|
|
77
74
|
</div>
|
|
78
75
|
</div>
|
|
@@ -82,37 +79,33 @@ function setMenuButtonRef(element) {
|
|
|
82
79
|
:href="conversationPath"
|
|
83
80
|
:draggable="draggable"
|
|
84
81
|
block
|
|
85
|
-
|
|
82
|
+
pl-10px pr-4px
|
|
86
83
|
h-32px
|
|
87
|
-
rounded-
|
|
84
|
+
rounded-10px
|
|
88
85
|
cursor-pointer
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
:class="[
|
|
92
|
-
active ? 'bg-neutral-200' : 'hover:bg-neutral-200/50'
|
|
93
|
-
]"
|
|
86
|
+
class="group data-[active=true]:bg-muted data-[active=false]:hover:bg-subtle"
|
|
87
|
+
:data-active="active"
|
|
94
88
|
@click="handleConversationClick"
|
|
95
89
|
@dblclick.prevent.stop="handleConversationDoubleClick"
|
|
96
90
|
@dragstart="handleConversationDragStart"
|
|
97
91
|
@dragend="handleConversationDragEnd"
|
|
98
92
|
>
|
|
99
|
-
<div flex items-center justify-between gap-
|
|
93
|
+
<div flex items-center justify-between gap-8px h-full :class="props.itemClass">
|
|
100
94
|
<!-- User Avatar -->
|
|
101
|
-
<div v-if="userImage" w-16px h-16px rounded-full overflow-hidden flex-shrink-0>
|
|
95
|
+
<div v-if="userImage" w-16px h-16px flex items-center justify-center rounded-full overflow-hidden flex-shrink-0>
|
|
102
96
|
<TelaAvatar
|
|
103
97
|
:image="userImage"
|
|
104
98
|
alt="Usuário"
|
|
105
|
-
size="
|
|
99
|
+
size="2xs"
|
|
106
100
|
/>
|
|
107
101
|
</div>
|
|
108
102
|
|
|
109
103
|
<div flex-1 min-w-0 flex items-center>
|
|
110
104
|
<span
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
text-
|
|
105
|
+
body-14-medium
|
|
106
|
+
text-secondary
|
|
107
|
+
class="group-hover:text-primary group-data-[active=true]:text-primary"
|
|
114
108
|
truncate
|
|
115
|
-
tracking="-.15px"
|
|
116
109
|
>
|
|
117
110
|
{{ displayTitle }}
|
|
118
111
|
</span>
|
|
@@ -122,21 +115,24 @@ function setMenuButtonRef(element) {
|
|
|
122
115
|
mt-2px
|
|
123
116
|
flex
|
|
124
117
|
items-center
|
|
125
|
-
class="opacity-0 group-hover:opacity-100
|
|
118
|
+
class="opacity-0 group-hover:opacity-100"
|
|
126
119
|
:class="isMenuOpen && 'opacity-100'"
|
|
127
120
|
>
|
|
128
121
|
<TelaDropdownMenu :items="menuItems" content-class="chat-sidebar-floating">
|
|
129
122
|
<button
|
|
130
123
|
:ref="setMenuButtonRef"
|
|
131
124
|
p-4px
|
|
132
|
-
rounded-
|
|
133
|
-
hover:bg-
|
|
134
|
-
transition-colors
|
|
125
|
+
rounded-8px
|
|
126
|
+
hover:bg-lowered
|
|
135
127
|
cursor-pointer
|
|
136
|
-
:class="isMenuOpen && '!bg-
|
|
128
|
+
:class="isMenuOpen && '!bg-lowered'"
|
|
137
129
|
@click.prevent.stop
|
|
138
130
|
>
|
|
139
|
-
<
|
|
131
|
+
<TelaIcon
|
|
132
|
+
name="i-ph-dots-three"
|
|
133
|
+
size="18px"
|
|
134
|
+
:color="isMenuOpen ? 'icon-tertiary' : 'icon-subtle group-hover:icon-tertiary'"
|
|
135
|
+
/>
|
|
140
136
|
</button>
|
|
141
137
|
</TelaDropdownMenu>
|
|
142
138
|
</div>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { DeepReadonly } from 'vue';
|
|
1
|
+
import type { DeepReadonly, HTMLAttributes } from 'vue';
|
|
2
2
|
import type { Conversation } from '../../types/schemas/chat/conversations.js';
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
conversation: DeepReadonly<Conversation>;
|
|
5
5
|
active: boolean;
|
|
6
6
|
draggable?: boolean;
|
|
7
|
+
itemClass?: HTMLAttributes['class'];
|
|
7
8
|
userImage?: string;
|
|
8
9
|
selectConversation?: (id: string) => void | Promise<void>;
|
|
9
10
|
};
|
|
@@ -8,7 +8,6 @@ type __VLS_Props = {
|
|
|
8
8
|
resetConversation?: () => void | Promise<void>;
|
|
9
9
|
startConversation?: (groupId?: string | null) => void | Promise<void>;
|
|
10
10
|
loading?: boolean;
|
|
11
|
-
hideFolderHint?: boolean;
|
|
12
11
|
};
|
|
13
12
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
13
|
declare const _default: typeof __VLS_export;
|