@olares/lares-mobile 0.15.33 → 0.15.34

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olares/lares-mobile",
3
- "version": "0.15.33",
3
+ "version": "0.15.34",
4
4
  "description": "Lares chat component for LarePass",
5
5
  "type": "module",
6
6
  "repository": {
@@ -28,7 +28,7 @@
28
28
  "vue": "^3.2.0"
29
29
  },
30
30
  "dependencies": {
31
- "@olares/lares-core": "0.15.33",
31
+ "@olares/lares-core": "0.15.34",
32
32
  "markdown-it": "^14.3.0"
33
33
  }
34
34
  }
@@ -28,10 +28,11 @@
28
28
  </button>
29
29
  </li>
30
30
  <li
31
- v-for="{ row, index } in shown(block)"
31
+ v-for="{ row, index, inProcess } in shown(block)"
32
32
  :key="row.id || row.key || index"
33
33
  class="lares-log__item"
34
34
  :data-type="row.type"
35
+ :data-process="inProcess ? 'true' : undefined"
35
36
  :data-pending="row.pending ? 'true' : 'false'"
36
37
  >
37
38
  <div v-if="row.type === 'user'" class="lares-msg" data-role="user">{{ row.text }}</div>
@@ -77,16 +78,16 @@
77
78
  <div class="lares-md" v-html="renderMarkdown(row.text)" />
78
79
  <p v-if="row.voiceSummary" class="lares-voice-summary">{{ row.voiceSummary }}</p>
79
80
  </template>
80
- <div v-if="hasReadout(row)" role="status" class="lares-message-readout">
81
+ <div v-if="!inProcess && hasReadout(row)" role="status" class="lares-message-readout">
81
82
  <span>{{ speechLabel }}</span>
82
83
  <button type="button" class="lares-message-stop" @click="readout.stop()">{{ t(readout.status === 'error' ? 'readout.dismiss' : 'readout.stop') }}</button>
83
84
  </div>
84
- <div v-else-if="ownsPlayback(row)" role="status" class="lares-message-readout">
85
+ <div v-else-if="!inProcess && ownsPlayback(row)" role="status" class="lares-message-readout">
85
86
  <span>{{ t(playbackChrome.status) }}</span>
86
87
  <button type="button" class="lares-message-stop" @click="$emit('stop-speaking')">{{ t(playbackChrome.stopLabel) }}</button>
87
88
  </div>
88
89
  <LaresMessageActions
89
- v-if="!row.pending"
90
+ v-if="!inProcess && !row.pending"
90
91
  :text="row.text"
91
92
  :reaction="reactions[actionKey(index)] || ''"
92
93
  :metrics="row.metrics || null"
@@ -221,8 +222,9 @@ export default {
221
222
  renderMarkdown,
222
223
  thinkSummary,
223
224
  shown(block) {
224
- if (block.kind === "fold") return this.processOpen(block) ? block.members : [];
225
- return [block];
225
+ if (block.kind !== "fold") return [block];
226
+ if (!this.processOpen(block)) return [];
227
+ return block.members.map((member) => ({ ...member, inProcess: true }));
226
228
  },
227
229
  processOpen(block) {
228
230
  return !block.foldable || Boolean(this.openFolds[block.key]);
@@ -487,6 +489,11 @@ export default {
487
489
  margin-top: 8px;
488
490
  }
489
491
 
492
+ .lares-log__item[data-process="true"] {
493
+ margin-top: 0;
494
+ gap: 0;
495
+ }
496
+
490
497
  .lares-msg[data-role="user"] {
491
498
  align-self: flex-end;
492
499
  max-width: 86%;
@@ -226,6 +226,7 @@ export default {
226
226
  .desktop-shell :deep(.lares-log > *) { box-sizing:border-box; width:var(--lares-column); padding-inline:var(--lares-gutter); }
227
227
  .desktop-shell :deep(.lares-log__item[data-type="user"]) { margin-top:18px; }
228
228
  .desktop-shell :deep(.lares-log__item[data-type="assistant"]) { margin-top:12px; }
229
+ .desktop-shell :deep(.lares-log__item[data-process="true"]) { margin-top:0; }
229
230
  .desktop-shell :deep(.lares-msg[data-role="user"]) { max-width:68%; border-radius:16px; padding:10px 14px; }
230
231
  .desktop-shell :deep(.lares-md) { font-size:15px; line-height:1.65; }
231
232
  @media (max-width:760px) {