@yeaft/webchat-agent 1.0.260 → 1.0.261

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.
@@ -1 +1 @@
1
- {"version":"1.0.260"}
1
+ {"version":"1.0.261"}
@@ -412,69 +412,75 @@ The agent will restart after upgrading.`,"chat.agent.alreadyLatest":"Agent is al
412
412
  <div :class="messageClass">
413
413
  <!-- User message -->
414
414
  <template v-if="message.type === 'user'">
415
- <div v-if="messageTime" class="message-user-meta">
416
- <span class="message-time" :title="messageTimeFull">{{ messageTime }}</span>
415
+ <div class="message-user-meta">
416
+ <span class="message-user-author">{{ $t('message.you') }}</span>
417
+ <template v-if="messageTime">
418
+ <span class="message-user-meta-separator" aria-hidden="true">\xB7</span>
419
+ <span class="message-time" :title="messageTimeFull">{{ messageTime }}</span>
420
+ </template>
417
421
  </div>
418
- <!-- Expert selections labels -->
419
- <div class="message-expert-labels" v-if="message.expertSelections && message.expertSelections.length > 0">
420
- <span
421
- v-for="sel in message.expertSelections"
422
- :key="sel.role + (sel.action || '')"
423
- class="expert-label"
424
- >{{ formatExpertLabel(sel) }}</span>
425
- </div>
426
- <div v-if="message.quote" class="message-quoted-context">
427
- <div class="message-quoted-author">{{ $t('message.quotedFrom', { author: message.quote.author }) }}</div>
428
- <div v-if="message.quote.content" class="message-quoted-content">{{ message.quote.content }}</div>
429
- <div v-if="message.quote.todos && message.quote.todos.length" class="message-quoted-todos">
430
- <div v-for="todo in message.quote.todos" :key="todo.content" class="message-quoted-todo">
431
- <span>{{ todoStatusSymbol(todo.status) }}</span>
432
- <span>{{ todo.status === 'in_progress' ? (todo.activeForm || todo.content) : todo.content }}</span>
422
+ <div class="message-user-block">
423
+ <!-- Expert selections labels -->
424
+ <div class="message-expert-labels" v-if="message.expertSelections && message.expertSelections.length > 0">
425
+ <span
426
+ v-for="sel in message.expertSelections"
427
+ :key="sel.role + (sel.action || '')"
428
+ class="expert-label"
429
+ >{{ formatExpertLabel(sel) }}</span>
430
+ </div>
431
+ <div v-if="message.quote" class="message-quoted-context">
432
+ <div class="message-quoted-author">{{ $t('message.quotedFrom', { author: message.quote.author }) }}</div>
433
+ <div v-if="message.quote.content" class="message-quoted-content">{{ message.quote.content }}</div>
434
+ <div v-if="message.quote.todos && message.quote.todos.length" class="message-quoted-todos">
435
+ <div v-for="todo in message.quote.todos" :key="todo.content" class="message-quoted-todo">
436
+ <span>{{ todoStatusSymbol(todo.status) }}</span>
437
+ <span>{{ todo.status === 'in_progress' ? (todo.activeForm || todo.content) : todo.content }}</span>
438
+ </div>
433
439
  </div>
434
440
  </div>
435
- </div>
436
- <div class="message-content" v-if="message.content">{{ displayContent }}</div>
437
- <div v-if="sessionActions || (message.attachments && message.attachments.length > 0)" class="message-user-footer">
438
- <template v-if="sessionActions">
439
- <button type="button" class="message-action-btn" @click="$emit('quote', userQuote)" :title="$t('message.quote')">
440
- <svg viewBox="0 0 24 24" width="13" height="13" aria-hidden="true"><path fill="currentColor" d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></svg>
441
- <span>{{ $t('message.quote') }}</span>
442
- </button>
443
- <button type="button" class="message-action-btn" @click="$emit('edit-as-new', displayContent)" :title="$t('message.editAsNew')">
444
- <svg viewBox="0 0 24 24" width="13" height="13" aria-hidden="true"><path fill="currentColor" d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
445
- <span>{{ $t('message.editAsNew') }}</span>
446
- </button>
447
- </template>
448
- <button v-if="message.attachments && message.attachments.length > 0" type="button" class="attachments-badge" @click="toggleAttachments">
449
- <span class="badge-icon" aria-hidden="true">\u{1F4CE}</span>
450
- <span class="badge-text">{{ getAttachmentsText(message.attachments) }}</span>
451
- <span class="badge-toggle" :class="{ expanded: showAttachments }" aria-hidden="true">
452
- <svg viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg>
453
- </span>
454
- </button>
455
- </div>
456
- <!-- Expanded attachments preview -->
457
- <div class="user-attachments" v-if="message.attachments && message.attachments.length > 0 && showAttachments">
458
- <template v-for="(attachment, index) in message.attachments" :key="index">
459
- <button
460
- v-if="attachment.isImage && attachment.preview"
461
- type="button"
462
- class="user-attachment-item is-image"
463
- @click="previewAttachment(attachment, $event.currentTarget)"
464
- >
465
- <img
466
- :src="attachment.preview"
467
- :alt="attachment.name || t('message.imagePreview')"
468
- class="user-attachment-image"
469
- />
441
+ <div class="message-content" v-if="message.content">{{ displayContent }}</div>
442
+ <div v-if="sessionActions || (message.attachments && message.attachments.length > 0)" class="message-user-footer">
443
+ <template v-if="sessionActions">
444
+ <button type="button" class="message-action-btn" @click="$emit('quote', userQuote)" :title="$t('message.quote')">
445
+ <svg viewBox="0 0 24 24" width="13" height="13" aria-hidden="true"><path fill="currentColor" d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></svg>
446
+ <span>{{ $t('message.quote') }}</span>
447
+ </button>
448
+ <button type="button" class="message-action-btn" @click="$emit('edit-as-new', displayContent)" :title="$t('message.editAsNew')">
449
+ <svg viewBox="0 0 24 24" width="13" height="13" aria-hidden="true"><path fill="currentColor" d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
450
+ <span>{{ $t('message.editAsNew') }}</span>
451
+ </button>
452
+ </template>
453
+ <button v-if="message.attachments && message.attachments.length > 0" type="button" class="attachments-badge" @click="toggleAttachments">
454
+ <span class="badge-icon" aria-hidden="true">\u{1F4CE}</span>
455
+ <span class="badge-text">{{ getAttachmentsText(message.attachments) }}</span>
456
+ <span class="badge-toggle" :class="{ expanded: showAttachments }" aria-hidden="true">
457
+ <svg viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg>
458
+ </span>
470
459
  </button>
471
- <div v-else class="user-attachment-item">
472
- <div class="user-attachment-file">
473
- <span class="file-icon">{{ getFileIcon(attachment.mimeType) }}</span>
474
- <span class="file-name">{{ attachment.name }}</span>
460
+ </div>
461
+ <!-- Expanded attachments preview -->
462
+ <div class="user-attachments" v-if="message.attachments && message.attachments.length > 0 && showAttachments">
463
+ <template v-for="(attachment, index) in message.attachments" :key="index">
464
+ <button
465
+ v-if="attachment.isImage && attachment.preview"
466
+ type="button"
467
+ class="user-attachment-item is-image"
468
+ @click="previewAttachment(attachment, $event.currentTarget)"
469
+ >
470
+ <img
471
+ :src="attachment.preview"
472
+ :alt="attachment.name || t('message.imagePreview')"
473
+ class="user-attachment-image"
474
+ />
475
+ </button>
476
+ <div v-else class="user-attachment-item">
477
+ <div class="user-attachment-file">
478
+ <span class="file-icon">{{ getFileIcon(attachment.mimeType) }}</span>
479
+ <span class="file-name">{{ attachment.name }}</span>
480
+ </div>
475
481
  </div>
476
- </div>
477
- </template>
482
+ </template>
483
+ </div>
478
484
  </div>
479
485
  </template>
480
486
 
Binary file
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
6
6
  <title>Yeaft</title>
7
7
  <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='8' fill='%232c2c2c'/><path d='M16 22V13M16 13L10 8M16 13L22 8' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none'/><circle cx='10' cy='8' r='2.4' fill='white'/><circle cx='22' cy='8' r='2.4' fill='white'/><circle cx='16' cy='22' r='2.4' fill='white'/></svg>">
8
- <link rel="stylesheet" href="style.bundle.css?v=d8f2a7a8">
8
+ <link rel="stylesheet" href="style.bundle.css?v=eeba333d">
9
9
  <script src="vendor.bundle.js?v=103fd8e7"></script>
10
10
  <script defer src="jszip.min.js"></script>
11
11
  <script defer src="docx-preview.min.js"></script>
@@ -16,6 +16,6 @@
16
16
  </head>
17
17
  <body>
18
18
  <div id="app"></div>
19
- <script type="module" src="app.bundle.js?v=fb04c1da"></script>
19
+ <script type="module" src="app.bundle.js?v=618d3e26"></script>
20
20
  </body>
21
21
  </html>