@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.
Files changed (87) 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/module.mjs +56 -3
  5. package/dist/runtime/assets/css/markstream.css +1 -1
  6. package/dist/runtime/conversations/components/chat-conversation-creator-filter.vue +11 -67
  7. package/dist/runtime/conversations/components/chat-conversation-item.d.vue.ts +2 -1
  8. package/dist/runtime/conversations/components/chat-conversation-item.vue +29 -33
  9. package/dist/runtime/conversations/components/chat-conversation-item.vue.d.ts +2 -1
  10. package/dist/runtime/conversations/components/chat-conversation-list.d.vue.ts +0 -1
  11. package/dist/runtime/conversations/components/chat-conversation-list.vue +117 -158
  12. package/dist/runtime/conversations/components/chat-conversation-list.vue.d.ts +0 -1
  13. package/dist/runtime/conversations/components/chat-conversation-new-group-button.vue +34 -73
  14. package/dist/runtime/conversations/components/chat-conversation-search.vue +1 -21
  15. package/dist/runtime/conversations/components/chat-widget-history-list.d.vue.ts +12 -0
  16. package/dist/runtime/conversations/components/chat-widget-history-list.vue +27 -0
  17. package/dist/runtime/conversations/components/chat-widget-history-list.vue.d.ts +12 -0
  18. package/dist/runtime/conversations/composables/conversation-groups.d.ts +1 -0
  19. package/dist/runtime/conversations/composables/conversation-groups.js +2 -0
  20. package/dist/runtime/conversations/composables/conversation-item.js +4 -4
  21. package/dist/runtime/conversations/composables/conversation-list.js +14 -5
  22. package/dist/runtime/embed/components/chat-configuration-modal.d.vue.ts +3 -3
  23. package/dist/runtime/embed/components/chat-configuration-modal.vue.d.ts +3 -3
  24. package/dist/runtime/embed/components/chat-embed-inner.d.vue.ts +6 -3
  25. package/dist/runtime/embed/components/chat-embed-inner.vue +365 -152
  26. package/dist/runtime/embed/components/chat-embed-inner.vue.d.ts +6 -3
  27. package/dist/runtime/embed/components/chat-embed.d.vue.ts +31 -4
  28. package/dist/runtime/embed/components/chat-embed.vue +10 -4
  29. package/dist/runtime/embed/components/chat-embed.vue.d.ts +31 -4
  30. package/dist/runtime/embed/components/chat-topbar.vue +83 -85
  31. package/dist/runtime/embed/components/meistrari-chat-embed.d.vue.ts +5 -3
  32. package/dist/runtime/embed/components/meistrari-chat-embed.vue +118 -57
  33. package/dist/runtime/embed/components/meistrari-chat-embed.vue.d.ts +5 -3
  34. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.d.vue.ts +0 -1
  35. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.vue +2 -45
  36. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.vue.d.ts +0 -1
  37. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.d.vue.ts +9 -5
  38. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.vue +14 -25
  39. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.vue.d.ts +9 -5
  40. package/dist/runtime/embed/components/mobile/chat-mobile-shell.d.vue.ts +6 -6
  41. package/dist/runtime/embed/components/mobile/chat-mobile-shell.vue +2 -3
  42. package/dist/runtime/embed/components/mobile/chat-mobile-shell.vue.d.ts +6 -6
  43. package/dist/runtime/embed/feature-config.d.ts +7 -0
  44. package/dist/runtime/embed/types.d.ts +47 -8
  45. package/dist/runtime/files/icons.d.ts +1 -1
  46. package/dist/runtime/files/icons.js +1 -1
  47. package/dist/runtime/messages/components/chat-mention-dropdown.d.vue.ts +6 -1
  48. package/dist/runtime/messages/components/chat-mention-dropdown.vue +46 -22
  49. package/dist/runtime/messages/components/chat-mention-dropdown.vue.d.ts +6 -1
  50. package/dist/runtime/messages/components/chat-message-bubble.vue +53 -71
  51. package/dist/runtime/messages/components/chat-message-feedback.vue +25 -229
  52. package/dist/runtime/messages/components/chat-message-input.vue +176 -134
  53. package/dist/runtime/messages/components/chat-message-list.d.vue.ts +6 -0
  54. package/dist/runtime/messages/components/chat-message-list.vue +27 -23
  55. package/dist/runtime/messages/components/chat-message-list.vue.d.ts +6 -0
  56. package/dist/runtime/messages/components/chat-model-selector.vue +10 -22
  57. package/dist/runtime/messages/components/reasoning/chat-reasoning-message.vue +2 -3
  58. package/dist/runtime/messages/components/reasoning/chat-reasoning-thought.vue +60 -69
  59. package/dist/runtime/messages/components/reasoning/chat-thinking-indicator.vue +3 -9
  60. package/dist/runtime/messages/components/widgets/chat-bash-widget.vue +3 -12
  61. package/dist/runtime/messages/components/widgets/chat-doc-sdk-widget.vue +3 -12
  62. package/dist/runtime/messages/components/widgets/chat-generic-tool-widget.vue +3 -12
  63. package/dist/runtime/messages/components/widgets/chat-grep-widget.vue +7 -17
  64. package/dist/runtime/messages/components/widgets/chat-read-widget.vue +7 -17
  65. package/dist/runtime/messages/components/widgets/chat-tela-skill-widget.vue +4 -13
  66. package/dist/runtime/messages/components/widgets/chat-thinking-widget.vue +11 -22
  67. package/dist/runtime/messages/components/widgets/chat-web-search-widget.vue +13 -40
  68. package/dist/runtime/messages/components/widgets/chat-workstation-query-widget.vue +52 -65
  69. package/dist/runtime/messages/components/widgets/chat-write-widget.vue +8 -18
  70. package/dist/runtime/messages/composables/mention-autocomplete.js +4 -0
  71. package/dist/runtime/messages/message-reasoning.js +4 -0
  72. package/dist/runtime/messages/message-state.js +1 -0
  73. package/dist/runtime/public/files/generic.svg +2 -5
  74. package/dist/runtime/public/files/image.svg +2 -1
  75. package/dist/runtime/types/embed.d.ts +1 -1
  76. package/dist/runtime/types/schemas/chat/conversations.d.ts +2 -0
  77. package/dist/runtime/types/schemas/chat/conversations.js +3 -0
  78. package/dist/runtime/types/schemas/chat/messages.d.ts +4 -0
  79. package/dist/runtime/types/schemas/chat/messages.js +7 -0
  80. package/dist/types.d.mts +1 -1
  81. package/package.json +5 -4
  82. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.d.vue.ts +0 -23
  83. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.vue +0 -75
  84. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.vue.d.ts +0 -23
  85. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.d.vue.ts +0 -37
  86. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.vue +0 -125
  87. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.vue.d.ts +0 -37
@@ -1 +1 @@
1
- .markstream-vue{color:var(--black-900);font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:16px;font-weight:400;letter-spacing:-.15px;line-height:24px}.markstream-vue code,.markstream-vue kbd,.markstream-vue pre,.markstream-vue samp{font-family: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 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 .heading-1,.markstream-vue h1{font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:32px;font-weight:580;letter-spacing:-1px;line-height:36px;margin:24px 0 16px}.markstream-vue .heading-2,.markstream-vue h2{font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:24px;font-weight:580;letter-spacing:-.8px;line-height:28px;margin:20px 0 12px}.markstream-vue .heading-3,.markstream-vue h3{font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:20px;font-weight:580;letter-spacing:-.5px;line-height:24px;margin:16px 0 8px}.markstream-vue .heading-4,.markstream-vue h4{font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:16px;font-weight:580;letter-spacing:-.2px;line-height:20px;margin:12px 0 6px}.markstream-vue .heading-5,.markstream-vue h5{font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:14px;font-weight:580;letter-spacing:-.15px;line-height:16px;margin:8px 0 4px}.markstream-vue .heading-6,.markstream-vue h6{font-family:Inter,"Inter Fallback: Arial",sans-serif;font-size:12px;font-weight:580;letter-spacing:-.1px;line-height:14px;margin:8px 0 4px}.markstream-vue [class*=tooltip],[class*=tooltip-element]{background-color:var(--black-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
+ .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
- ...option,
14
- count: conversationCreatorFilterCounts.value[option.value]
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 setFilterButtonElement(element, index) {
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
- <div
31
+ <TelaSegmentToggle
57
32
  v-if="showConversationCreatorFilter"
58
- role="tablist"
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
- flex items-center w-full h-34px p-3px rounded-12px bg="#F1F1EF"
61
- :class="{ 'opacity-70': isUpdating }"
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
- px-12px
43
+ pl-10px pr-4px
43
44
  h-32px
44
- rounded-8px
45
- :class="active ? 'bg-neutral-200' : ''"
45
+ rounded-10px
46
+ :class="active ? 'bg-muted' : ''"
46
47
  >
47
- <div flex items-center justify-between gap-12px h-full>
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="xs"
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
- text-14px font-medium text-neutral-700 leading-18px tracking="-.15px"
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
- px-12px
82
+ pl-10px pr-4px
86
83
  h-32px
87
- rounded-8px
84
+ rounded-10px
88
85
  cursor-pointer
89
- transition
90
- class="group"
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-12px h-full>
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="xs"
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
- text-14px
112
- font-medium
113
- text-neutral-700
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 transition-opacity"
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-6px
133
- hover:bg-neutral-300
134
- transition-colors
125
+ rounded-8px
126
+ hover:bg-lowered
135
127
  cursor-pointer
136
- :class="isMenuOpen && '!bg-neutral-300'"
128
+ :class="isMenuOpen && '!bg-lowered'"
137
129
  @click.prevent.stop
138
130
  >
139
- <div i-ph-dots-three-vertical text-16px text-neutral-400 />
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;