@8wave/ai-elements 0.112.0 → 0.114.0-beta.15

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 (118) hide show
  1. package/dist/_chunks/Agent-D3ODaN3E.js +566 -0
  2. package/dist/_chunks/Agent-D3ODaN3E.js.map +1 -0
  3. package/dist/_chunks/{PkStreamingMarkdown-CRlRDGYl.js → PkStreamingMarkdown-CYOm47PX.js} +1276 -453
  4. package/dist/_chunks/PkStreamingMarkdown-CYOm47PX.js.map +1 -0
  5. package/dist/_chunks/{PkToolRequestGeolocation-BbxYKt-9.js → PkToolRequestGeolocation-BY7nXImb.js} +2 -2
  6. package/dist/_chunks/{PkToolRequestGeolocation-BbxYKt-9.js.map → PkToolRequestGeolocation-BY7nXImb.js.map} +1 -1
  7. package/dist/_chunks/{PkToolRequestOAuthConnection-CTp2w60F.js → PkToolRequestOAuthConnection-DFOTALFt.js} +2 -2
  8. package/dist/_chunks/{PkToolRequestOAuthConnection-CTp2w60F.js.map → PkToolRequestOAuthConnection-DFOTALFt.js.map} +1 -1
  9. package/dist/_chunks/{PkToolShowArtifact-CNnt82aH.js → PkToolShowArtifact-DzHRWoru.js} +2 -2
  10. package/dist/_chunks/{PkToolShowArtifact-CNnt82aH.js.map → PkToolShowArtifact-DzHRWoru.js.map} +1 -1
  11. package/dist/_chunks/{PkToolShowContactForm-D77gyjQG.js → PkToolShowContactForm-1J6_1AA2.js} +2 -2
  12. package/dist/_chunks/{PkToolShowContactForm-D77gyjQG.js.map → PkToolShowContactForm-1J6_1AA2.js.map} +1 -1
  13. package/dist/_chunks/{PkToolShowForm-DP4LLAk3.js → PkToolShowForm-DmQYj3v1.js} +5 -5
  14. package/dist/_chunks/{PkToolShowForm-DP4LLAk3.js.map → PkToolShowForm-DmQYj3v1.js.map} +1 -1
  15. package/dist/_chunks/{PkToolShowSources-Bwy0Ptmi.js → PkToolShowSources-BO8V5rlS.js} +3 -3
  16. package/dist/_chunks/{PkToolShowSources-Bwy0Ptmi.js.map → PkToolShowSources-BO8V5rlS.js.map} +1 -1
  17. package/dist/_chunks/{PkToolShowSuggestedReply-CFO8wV1b.js → PkToolShowSuggestedReply-CTWVG1Zk.js} +2 -2
  18. package/dist/_chunks/{PkToolShowSuggestedReply-CFO8wV1b.js.map → PkToolShowSuggestedReply-CTWVG1Zk.js.map} +1 -1
  19. package/dist/_chunks/{markdown-BRD-hDrH.js → markdown-JpLFzufn.js} +7 -7
  20. package/dist/_chunks/{markdown-BRD-hDrH.js.map → markdown-JpLFzufn.js.map} +1 -1
  21. package/dist/_chunks/url-validation-uLMZ5-AU.js.map +1 -1
  22. package/dist/ai-elements.es.js +2773 -2733
  23. package/dist/ai-elements.es.js.map +1 -1
  24. package/dist-vue/PkChatbot.js +1 -1
  25. package/dist-vue/PkChatbotEmptyState.js +1 -1
  26. package/dist-vue/PkChatbotInput.js +1 -1
  27. package/dist-vue/PkChatbotMessages.js +1 -1
  28. package/dist-vue/PkChatbotStepPayload.js +1 -1
  29. package/dist-vue/PkChatbotStepToolDetail.js +1 -1
  30. package/dist-vue/PkChatbotSteps.js +1 -1
  31. package/dist-vue/PkChatbotViewChat.js +1 -1
  32. package/dist-vue/PkChatbotViewConversations.js +1 -1
  33. package/dist-vue/PkChatbotViewFiles.js +1 -1
  34. package/dist-vue/PkChatbotViewProfile.js +1 -1
  35. package/dist-vue/_chunks/Media-_HfFLHGD.js.map +1 -1
  36. package/dist-vue/_chunks/{PkChatbot-C11EVHnI.js → PkChatbot-DZP40EZP.js} +8 -8
  37. package/dist-vue/_chunks/{PkChatbot-C11EVHnI.js.map → PkChatbot-DZP40EZP.js.map} +1 -1
  38. package/dist-vue/_chunks/{PkChatbotEmptyState-CacY4o02.js → PkChatbotEmptyState-DycCrfwz.js} +2 -2
  39. package/dist-vue/_chunks/{PkChatbotEmptyState-CacY4o02.js.map → PkChatbotEmptyState-DycCrfwz.js.map} +1 -1
  40. package/dist-vue/_chunks/{PkChatbotInput-Dkz3SNAk.js → PkChatbotInput-BCuqLdkT.js} +2 -2
  41. package/dist-vue/_chunks/{PkChatbotInput-Dkz3SNAk.js.map → PkChatbotInput-BCuqLdkT.js.map} +1 -1
  42. package/dist-vue/_chunks/PkChatbotMessages-PjKRDNYJ.js +776 -0
  43. package/dist-vue/_chunks/PkChatbotMessages-PjKRDNYJ.js.map +1 -0
  44. package/dist-vue/_chunks/{PkChatbotStepPayload-DU0W-eUp.js → PkChatbotStepPayload-CI98RiNv.js} +2 -2
  45. package/dist-vue/_chunks/{PkChatbotStepPayload-DU0W-eUp.js.map → PkChatbotStepPayload-CI98RiNv.js.map} +1 -1
  46. package/dist-vue/_chunks/{PkChatbotStepToolDetail-etlBryOg.js → PkChatbotStepToolDetail-B8zXJOdI.js} +3 -3
  47. package/dist-vue/_chunks/{PkChatbotStepToolDetail-etlBryOg.js.map → PkChatbotStepToolDetail-B8zXJOdI.js.map} +1 -1
  48. package/dist-vue/_chunks/PkChatbotSteps-CL27pMFS.js +190 -0
  49. package/dist-vue/_chunks/{PkChatbotSteps-jW07Q-4x.js.map → PkChatbotSteps-CL27pMFS.js.map} +1 -1
  50. package/dist-vue/_chunks/{PkChatbotViewChat-DJnjuhjt.js → PkChatbotViewChat-BZVcDXzL.js} +7 -7
  51. package/dist-vue/_chunks/{PkChatbotViewChat-DJnjuhjt.js.map → PkChatbotViewChat-BZVcDXzL.js.map} +1 -1
  52. package/dist-vue/_chunks/{PkChatbotViewConversations-BCdolW0R.js → PkChatbotViewConversations-Cx-mLdUE.js} +2 -2
  53. package/dist-vue/_chunks/{PkChatbotViewConversations-BCdolW0R.js.map → PkChatbotViewConversations-Cx-mLdUE.js.map} +1 -1
  54. package/dist-vue/_chunks/{PkChatbotViewFiles-Cudao8ew.js → PkChatbotViewFiles-DLIa-xG8.js} +2 -2
  55. package/dist-vue/_chunks/{PkChatbotViewFiles-Cudao8ew.js.map → PkChatbotViewFiles-DLIa-xG8.js.map} +1 -1
  56. package/dist-vue/_chunks/{PkChatbotViewProfile-DDsKOkcC.js → PkChatbotViewProfile-DEc9apXY.js} +2 -2
  57. package/dist-vue/_chunks/{PkChatbotViewProfile-DDsKOkcC.js.map → PkChatbotViewProfile-DEc9apXY.js.map} +1 -1
  58. package/dist-vue/_chunks/PkStreamingMarkdown-B2iju0WK.js +3245 -0
  59. package/dist-vue/_chunks/PkStreamingMarkdown-B2iju0WK.js.map +1 -0
  60. package/dist-vue/_chunks/{PkToolShowArtifact-BnwU7CV2.js → PkToolShowArtifact-C0J71YF6.js} +2 -2
  61. package/dist-vue/_chunks/{PkToolShowArtifact-BnwU7CV2.js.map → PkToolShowArtifact-C0J71YF6.js.map} +1 -1
  62. package/dist-vue/_chunks/{PkToolShowContactForm-_x_dbiHn.js → PkToolShowContactForm-De3Od9mC.js} +2 -2
  63. package/dist-vue/_chunks/{PkToolShowContactForm-_x_dbiHn.js.map → PkToolShowContactForm-De3Od9mC.js.map} +1 -1
  64. package/dist-vue/_chunks/{PkToolShowDiagram-RtkI_sKL.js → PkToolShowDiagram-DmY_hhAS.js} +2 -2
  65. package/dist-vue/_chunks/{PkToolShowDiagram-RtkI_sKL.js.map → PkToolShowDiagram-DmY_hhAS.js.map} +1 -1
  66. package/dist-vue/_chunks/{PkToolShowEmail-CRQjoJr1.js → PkToolShowEmail-D_Z15wCS.js} +2 -2
  67. package/dist-vue/_chunks/{PkToolShowEmail-CRQjoJr1.js.map → PkToolShowEmail-D_Z15wCS.js.map} +1 -1
  68. package/dist-vue/_chunks/{PkToolShowForm-IPAkJIXh.js → PkToolShowForm-DUGysIxj.js} +3 -3
  69. package/dist-vue/_chunks/{PkToolShowForm-IPAkJIXh.js.map → PkToolShowForm-DUGysIxj.js.map} +1 -1
  70. package/dist-vue/_chunks/{PkToolShowMessage-joTzAg9N.js → PkToolShowMessage-e5_EI5mV.js} +2 -2
  71. package/dist-vue/_chunks/{PkToolShowMessage-joTzAg9N.js.map → PkToolShowMessage-e5_EI5mV.js.map} +1 -1
  72. package/dist-vue/_chunks/{PkToolShowProductList-tOYjd2bq.js → PkToolShowProductList-B3X7Svyc.js} +2 -2
  73. package/dist-vue/_chunks/{PkToolShowProductList-tOYjd2bq.js.map → PkToolShowProductList-B3X7Svyc.js.map} +1 -1
  74. package/dist-vue/_chunks/{PkToolShowSources-gI947JOm.js → PkToolShowSources-BUjBSGc5.js} +3 -3
  75. package/dist-vue/_chunks/{PkToolShowSources-gI947JOm.js.map → PkToolShowSources-BUjBSGc5.js.map} +1 -1
  76. package/dist-vue/_chunks/{PkToolShowWebPages-D3Xy4iUs.js → PkToolShowWebPages-DEih8h5k.js} +2 -2
  77. package/dist-vue/_chunks/{PkToolShowWebPages-D3Xy4iUs.js.map → PkToolShowWebPages-DEih8h5k.js.map} +1 -1
  78. package/dist-vue/_chunks/{PkUrl-BgMBemSz.js → PkUrl-3NH9t-WA.js} +2 -2
  79. package/dist-vue/_chunks/{PkUrl-BgMBemSz.js.map → PkUrl-3NH9t-WA.js.map} +1 -1
  80. package/dist-vue/_chunks/{createChatbotApiClient-CaVLm5W9.js → createChatbotApiClient-DohvHshj.js} +115 -108
  81. package/dist-vue/_chunks/createChatbotApiClient-DohvHshj.js.map +1 -0
  82. package/dist-vue/_chunks/url-validation-uLMZ5-AU.js.map +1 -1
  83. package/dist-vue/_chunks/{useChatbotStore-BwrBZJCq.js → useChatbotStore-_10Jaf4z.js} +2 -2
  84. package/dist-vue/_chunks/{useChatbotStore-BwrBZJCq.js.map → useChatbotStore-_10Jaf4z.js.map} +1 -1
  85. package/dist-vue/_chunks/utils-BL4Ppr2R.js +184 -0
  86. package/dist-vue/_chunks/utils-BL4Ppr2R.js.map +1 -0
  87. package/dist-vue/api.js +1 -1
  88. package/dist-vue/apps/web-component/src/composables/useChatbotAuth.d.ts +1 -3
  89. package/dist-vue/composables.js +136 -95
  90. package/dist-vue/composables.js.map +1 -1
  91. package/dist-vue/index.js +3203 -3107
  92. package/dist-vue/index.js.map +1 -1
  93. package/dist-vue/locales.js +16 -0
  94. package/dist-vue/packages/auth/src/social-redirect-plugin.d.ts +18 -12
  95. package/dist-vue/packages/components/src/chat/PkTurnEvaluation.d.ts +8 -0
  96. package/dist-vue/packages/components/src/chat/markdownHtml.d.ts +20 -0
  97. package/dist-vue/packages/components/src/chat/utils.d.ts +9 -0
  98. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +60 -0
  99. package/dist-vue/packages/models/src/schema/AgentApiTool.d.ts +70 -0
  100. package/dist-vue/packages/models/src/schema/Chat.d.ts +42 -0
  101. package/dist-vue/packages/models/src/schema/Lead.d.ts +13 -0
  102. package/dist-vue/packages/models/src/schema/Media.d.ts +0 -1
  103. package/dist-vue/packages/models/src/schema/ModelProvider.d.ts +1 -1
  104. package/dist-vue/style.css +1 -1
  105. package/package.json +2 -1
  106. package/dist/_chunks/Agent-DTLrWpzX.js +0 -460
  107. package/dist/_chunks/Agent-DTLrWpzX.js.map +0 -1
  108. package/dist/_chunks/Media-Cft7Pwrh.js +0 -108
  109. package/dist/_chunks/Media-Cft7Pwrh.js.map +0 -1
  110. package/dist/_chunks/PkStreamingMarkdown-CRlRDGYl.js.map +0 -1
  111. package/dist-vue/_chunks/PkChatbotMessages-BD-vUak6.js +0 -776
  112. package/dist-vue/_chunks/PkChatbotMessages-BD-vUak6.js.map +0 -1
  113. package/dist-vue/_chunks/PkChatbotSteps-jW07Q-4x.js +0 -190
  114. package/dist-vue/_chunks/PkStreamingMarkdown-BoEpwaYQ.js +0 -2430
  115. package/dist-vue/_chunks/PkStreamingMarkdown-BoEpwaYQ.js.map +0 -1
  116. package/dist-vue/_chunks/createChatbotApiClient-CaVLm5W9.js.map +0 -1
  117. package/dist-vue/_chunks/utils-h4C7rRcu.js +0 -177
  118. package/dist-vue/_chunks/utils-h4C7rRcu.js.map +0 -1
@@ -1,776 +0,0 @@
1
- import { k as e } from "./Agent-BNlmK-uJ.js";
2
- import { t } from "./PkStreamingMarkdown-BoEpwaYQ.js";
3
- import "./src-DT8FLE4_.js";
4
- import { a as n, c as r, o as i, r as a, s as o, t as s } from "./message-RohfrdWS.js";
5
- import { t as c } from "./PkChatbotError-CuX9C_b9.js";
6
- import { t as l } from "./PkRelativeTime--1cIphlA.js";
7
- import { b as u, d, f, g as p, l as m, n as h, s as g, t as _, u as ee, v, x as te, y } from "./utils-h4C7rRcu.js";
8
- import { t as ne } from "./PkChatbotFilePreview-CwiVQDF2.js";
9
- import { t as re } from "./PkChatbotFeedbackForm-4XWLHOkB.js";
10
- import { t as ie } from "./PkChatbotMessageFeedback-BYmrVaCE.js";
11
- import { n as ae, t as b } from "./PkChatbotSteps-jW07Q-4x.js";
12
- import { t as x } from "./PkChatbotOutlineRail-np4g6vsz.js";
13
- import { VvButton as S, VvButtonGroup as oe, VvIcon as se } from "@volverjs/ui-vue/components";
14
- import { Fragment as C, Transition as w, computed as T, createBlock as E, createCommentVNode as D, createElementBlock as O, createElementVNode as k, createTextVNode as ce, createVNode as A, defineAsyncComponent as j, defineComponent as M, mergeProps as le, nextTick as N, normalizeClass as P, normalizeStyle as F, onBeforeUnmount as I, onMounted as ue, openBlock as L, ref as R, renderList as de, renderSlot as fe, resolveDynamicComponent as pe, toDisplayString as z, unref as B, useSlots as me, useTemplateRef as he, watch as V, withCtx as H, withModifiers as U } from "vue";
15
- import { useI18n as ge } from "vue-i18n";
16
- //#region ../../packages/utils/src/text.ts
17
- var W = (e) => e.normalize("NFD").replace(/[\u0300-\u036f]/g, ""), _e = (e) => e ? e.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").replace(/[-_]+/g, " ") : "", ve = (e) => e ? W(e).replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/[^a-zA-Z0-9]+/g, "-").toLowerCase() : "", ye = (e) => e ? W(e).replace(/([a-z0-9])([A-Z])/g, "$1_$2").replace(/[^a-zA-Z0-9]+/g, "_").toLowerCase() : "", be = (e) => e ? e.charAt(0).toUpperCase() + e.slice(1) : "", xe = {
18
- requestOAuthConnection: j(() => import("./PkToolRequestOAuthConnection-BorR5NmZ.js")),
19
- showArtifact: j(() => import("./PkToolShowArtifact-BnwU7CV2.js").then((e) => e.n)),
20
- showCalendarEvent: j(() => import("./PkToolShowCalendarEvent-BsBdsbV0.js").then((e) => e.n)),
21
- showComparison: j(() => import("./PkToolShowComparison-BLn4pkno.js").then((e) => e.n)),
22
- showContactForm: j(() => import("./PkToolShowContactForm-_x_dbiHn.js").then((e) => e.n)),
23
- showDiagram: j(() => import("./PkToolShowDiagram-RtkI_sKL.js")),
24
- showEmail: j(() => import("./PkToolShowEmail-CRQjoJr1.js").then((e) => e.n)),
25
- showImageGallery: j(() => import("./PkToolShowImageGallery-DudQzBx4.js").then((e) => e.n)),
26
- showLocation: j(() => import("./PkToolShowLocation-Bv6sLN5P.js").then((e) => e.n)),
27
- showMessage: j(() => import("./PkToolShowMessage-joTzAg9N.js").then((e) => e.n)),
28
- showForm: j(() => import("./PkToolShowForm-IPAkJIXh.js").then((e) => e.n)),
29
- showMultipleChoice: j(() => import("./PkToolShowForm-IPAkJIXh.js").then((e) => e.n)),
30
- showProductList: j(() => import("./PkToolShowProductList-tOYjd2bq.js").then((e) => e.n)),
31
- showQrCode: j(() => import("./PkToolShowQrCode-DEAvfLFu.js").then((e) => e.n)),
32
- showSources: j(() => import("./PkToolShowSources-gI947JOm.js").then((e) => e.n)),
33
- showSuggestedReply: j(() => import("./PkToolShowSuggestedReply-DA4NEjHB.js").then((e) => e.n)),
34
- showVideo: j(() => import("./PkToolShowVideo-BZOTu2Qe.js")),
35
- showWeather: j(() => import("./PkToolShowWeather-Bzqalzh8.js")),
36
- showWebPages: j(() => import("./PkToolShowWebPages-D3Xy4iUs.js").then((e) => e.n))
37
- }, G = {
38
- key: 0,
39
- class: "text-12 text-word-3 m-0 mb-xs"
40
- }, K = /* @__PURE__ */ M({
41
- __name: "PkToolApprovalPreviewMessage",
42
- props: { input: {} },
43
- setup(e) {
44
- let t = e, n = T(() => {
45
- let e = t.input;
46
- return typeof e?.message == "string" ? e.message : "";
47
- });
48
- return (e, t) => n.value ? (L(), O("p", G, z(n.value), 1)) : D("", !0);
49
- }
50
- }), Se = { [_]: K }, Ce = {
51
- key: 0,
52
- class: "text-12 text-word-3 m-0 mb-xs"
53
- }, we = /* @__PURE__ */ M({
54
- __name: "PkToolApprovalCard",
55
- props: {
56
- part: {},
57
- actionable: { type: Boolean },
58
- callVerdict: { type: Boolean }
59
- },
60
- emits: ["respond"],
61
- setup(t, { emit: n }) {
62
- let r = t, i = n, { t: o } = ge({ useScope: "global" }), s = T(() => r.part), c = T(() => a(r.part)), l = T(() => c.value === _), u = T(() => l.value ? (s.value.state === "input-available" || e(s.value.output)) && r.callVerdict === void 0 : s.value.state === "approval-requested"), d = T(() => u.value && r.actionable === !0), f = T(() => u.value && r.actionable !== !0), p = T(() => l.value ? s.value.output === "confirmed" || r.callVerdict === !0 : s.value.approval?.approved === !0), m = T(() => l.value ? s.value.output === "cancelled" || r.callVerdict === !1 : s.value.approval?.approved === !1 || s.value.state === "output-denied"), h = T(() => Se[c.value]), g = T(() => {
63
- if (f.value) return {
64
- icon: "ri:time-line",
65
- message: o("toolApproval.expired")
66
- };
67
- if (p.value) return {
68
- icon: "ri:check-line",
69
- message: o(l.value ? "toolApproval.confirmed" : "toolApproval.approved")
70
- };
71
- if (m.value) return {
72
- icon: "ri:close-line",
73
- message: o(l.value ? "toolApproval.cancelled" : "toolApproval.denied")
74
- };
75
- }), ee = T(() => !!g.value && !h.value);
76
- return (e, n) => {
77
- let r = S, a = oe, c = se;
78
- return L(), O("div", { class: P(["w-full overflow-hidden transition-all duration-300", { "bg-surface p-sm rounded-xl border border-surface-3": !ee.value }]) }, [
79
- A(w, null, {
80
- default: H(() => [!l.value && u.value ? (L(), O("p", Ce, z(B(o)("toolApproval.prompt")), 1)) : D("", !0)]),
81
- _: 1
82
- }),
83
- h.value ? (L(), E(pe(h.value), {
84
- key: 0,
85
- part: t.part,
86
- input: s.value.input
87
- }, null, 8, ["part", "input"])) : D("", !0),
88
- A(w, { mode: "out-in" }, {
89
- default: H(() => [g.value ? (L(), O("p", {
90
- key: 1,
91
- class: P(["flex items-center gap-4 text-12 text-word-3 m-0", { "mt-xs": h.value }])
92
- }, [A(c, {
93
- name: g.value.icon,
94
- class: "shrink-0"
95
- }, null, 8, ["name"]), ce(" " + z(g.value.message), 1)], 2)) : (L(), E(a, { key: 0 }, {
96
- default: H(() => [A(r, {
97
- modifiers: "primary-small",
98
- disabled: !d.value,
99
- icon: "ri:check-line",
100
- label: B(o)("action.proceed"),
101
- onClick: n[0] ||= U((e) => i("respond", !0), ["stop"])
102
- }, null, 8, ["disabled", "label"]), A(r, {
103
- modifiers: "action-quiet-small",
104
- disabled: !d.value,
105
- icon: "ri:close-line",
106
- label: B(o)("action.cancel"),
107
- onClick: n[1] ||= U((e) => i("respond", !1), ["stop"])
108
- }, null, 8, ["disabled", "label"])]),
109
- _: 1
110
- }))]),
111
- _: 1
112
- })
113
- ], 2);
114
- };
115
- }
116
- }), Te = 30, Ee = 500;
117
- function De(e) {
118
- let { scrollEl: t, status: n, messagesLength: r, lastMessageRole: i, contentEl: a, beforeNewMessageScroll: o, onScrollUp: s, onScrollDown: c } = e, l = R(!1), u = R(!0), d = !1, f = null, p = null, m = null, h = null, g = 0, _ = (e = "smooth") => {
119
- if (!t.value || l.value) {
120
- d = !1;
121
- return;
122
- }
123
- d = !0, t.value.scrollTo({
124
- top: t.value.scrollHeight,
125
- behavior: e
126
- }), setTimeout(() => {
127
- d = !1;
128
- }, e === "instant" ? 0 : Ee);
129
- }, ee = (e) => {
130
- e.deltaY < 0 && (l.value = !0);
131
- }, v = 0, te = (e) => {
132
- v = e.touches[0]?.clientY ?? 0;
133
- }, y = (e) => {
134
- let t = e.touches[0]?.clientY ?? 0;
135
- t > v && (l.value = !0), v = t;
136
- }, ne = () => {
137
- if (!t.value) return;
138
- let { scrollTop: e, scrollHeight: n, clientHeight: r } = t.value;
139
- if (u.value = n - r - e < Te, d) {
140
- g = e;
141
- return;
142
- }
143
- e < g && s?.(), e > g && (u.value && (l.value = !1), c?.()), g = e;
144
- }, re = () => {
145
- if (d || l.value || !t.value) return;
146
- let e = t.value, n = e.scrollHeight - e.clientHeight;
147
- n <= e.scrollTop || (u.value = !0, d = !0, e.scrollTop = n, requestAnimationFrame(() => {
148
- d = !1;
149
- }));
150
- }, ie = () => {
151
- !f && t.value && (f = new MutationObserver(re), f.observe(t.value, {
152
- childList: !0,
153
- subtree: !0,
154
- characterData: !0
155
- }));
156
- }, ae = () => {
157
- f?.disconnect(), f = null;
158
- };
159
- V(n, (e, t) => {
160
- if (e === "streaming" || e === "submitted") {
161
- ie();
162
- return;
163
- }
164
- (e !== "ready" || t !== "streaming") && ae();
165
- }), V(r, async () => {
166
- if (r() && i() !== "assistant") {
167
- S(), l.value = !1, d = !0;
168
- try {
169
- await N(), await o?.(), await N();
170
- } finally {
171
- _();
172
- }
173
- }
174
- });
175
- let b = null, x = () => {
176
- t.value && (t.value.scrollHeight <= t.value.clientHeight || (t.value.scrollTop = t.value.scrollHeight, b && clearTimeout(b), b = setTimeout(S, 300)));
177
- }, S = () => {
178
- p?.disconnect(), p = null, m?.disconnect(), m = null, b &&= (clearTimeout(b), null);
179
- };
180
- return ue(() => {
181
- if (!t.value) return;
182
- t.value.addEventListener("wheel", ee, { passive: !0 }), t.value.addEventListener("touchstart", te, { passive: !0 }), t.value.addEventListener("touchmove", y, { passive: !0 });
183
- let e = n() === "submitted" || n() === "streaming";
184
- e ? ie() : (p = new ResizeObserver(x), p.observe(t.value), m = new MutationObserver(x), m.observe(t.value, {
185
- childList: !0,
186
- subtree: !0
187
- }));
188
- let r = a?.() ?? t.value.firstElementChild;
189
- r && (h = new ResizeObserver(re), h.observe(r)), e || x();
190
- }), I(() => {
191
- t.value?.removeEventListener("wheel", ee), t.value?.removeEventListener("touchstart", te), t.value?.removeEventListener("touchmove", y), h?.disconnect(), h = null, ae(), S();
192
- }), {
193
- handleScroll: ne,
194
- scrollToBottom: _,
195
- userScrolledUp: l,
196
- isAtBottom: u
197
- };
198
- }
199
- //#endregion
200
- //#region ../../packages/components/src/chat/PkChatbotMessages.vue?vue&type=script&setup=true&lang.ts
201
- var Oe = ["aria-busy"], ke = {
202
- key: 0,
203
- class: "pk-chatbot-messages__outline"
204
- }, Ae = {
205
- key: 0,
206
- class: "pk-chatbot-divider"
207
- }, je = { class: "pk-chatbot-divider__label" }, Me = { class: "pk-chatbot-message__text" }, Ne = ["title"], Pe = {
208
- key: 0,
209
- class: "pk-chatbot-message__reaction-emoji"
210
- }, Fe = {
211
- key: 0,
212
- class: "pk-chatbot-message__loading-info"
213
- }, Ie = { class: "flex gap-8 items-center" }, Le = { class: "font-mono rounded text-12" }, Re = { class: "flex gap-8 items-center" }, ze = {
214
- key: 0,
215
- class: "pk-chatbot-message__footer"
216
- }, Be = {
217
- key: 0,
218
- class: "pk-chatbot-message__hover-meta"
219
- }, Ve = ["datetime", "title"], He = { class: "truncate" }, Ue = {
220
- key: 0,
221
- class: "flex items-center gap-4 min-w-0"
222
- }, We = { class: "truncate" }, Ge = {
223
- key: 1,
224
- class: "flex items-center gap-4 text-12 text-word-3"
225
- }, Ke = { class: "truncate" }, qe = ["datetime"], Je = { class: "truncate" }, Ye = {
226
- key: 3,
227
- class: "flex items-center gap-4 text-12 text-word-3"
228
- }, Xe = { class: "pk-chatbot-message__loading-info" }, Ze = { class: "flex gap-8 items-center" }, Qe = { class: "text-12" }, $e = ["title", "aria-label"], et = /* @__PURE__ */ M({
229
- __name: "PkChatbotMessages",
230
- props: {
231
- status: {},
232
- messages: {},
233
- error: {},
234
- actions: {},
235
- mainColor: {},
236
- textColor: {},
237
- revisedAnswers: {},
238
- messageFeedbacks: {},
239
- readonlyFeedback: { type: Boolean },
240
- disableHeightAdjustment: { type: Boolean },
241
- showMessageDateTime: { type: Boolean },
242
- showMessageTokensCount: { type: Boolean },
243
- showAllMessageParts: { type: Boolean },
244
- interactive: { type: Boolean },
245
- showExtendedSteps: { type: Boolean },
246
- awaitingSpokenAnswer: { type: Boolean },
247
- confirmVerdictsOnCall: {},
248
- isDark: { type: Boolean },
249
- showScrollToBottom: { type: Boolean },
250
- feedbackMessageId: {},
251
- feedbackLoading: { type: Boolean },
252
- feedbackSubmitted: { type: Boolean },
253
- feedbackError: {}
254
- },
255
- emits: [
256
- "show-info",
257
- "regenerate",
258
- "revise",
259
- "upvote",
260
- "downvote",
261
- "feedback",
262
- "feedback-submit",
263
- "feedback-close",
264
- "scroll-up",
265
- "scroll-down",
266
- "auto-retry",
267
- "reset-chat",
268
- "approval-respond",
269
- "confirm-respond"
270
- ],
271
- setup(e, { emit: _ }) {
272
- let j = e, M = _, { t: I, d: W, n: _e } = ge({ useScope: "global" }), ye = me(), be = (e, t) => {
273
- if (y(e)) {
274
- let n = e.toolCallId;
275
- n && M("confirm-respond", {
276
- toolCallId: n,
277
- confirmed: t
278
- });
279
- return;
280
- }
281
- let n = d(e);
282
- n && M("approval-respond", {
283
- id: n,
284
- approved: t
285
- });
286
- }, G = he("scrollEl"), K = he("wrapperEl"), Se = T(() => te(j.textColor, j.mainColor)), { handleScroll: Ce, scrollToBottom: Te, userScrolledUp: Ee, isAtBottom: et } = De({
287
- scrollEl: G,
288
- status: () => j.status,
289
- messagesLength: () => j.messages?.length,
290
- lastMessageRole: () => j.messages?.[j.messages.length - 1]?.role,
291
- contentEl: () => K.value,
292
- beforeNewMessageScroll: () => ct(),
293
- onScrollUp: () => M("scroll-up"),
294
- onScrollDown: () => M("scroll-down")
295
- }), tt = () => {
296
- Ee.value = !1, Te();
297
- }, q = T(() => (j.messages ?? []).filter((e) => e.role === "user").map((e) => ({
298
- id: e.id,
299
- preview: e.parts.find(o)?.text.trim().slice(0, 120) || "…"
300
- }))), nt = R(), rt = () => G.value?.querySelectorAll(".pk-chatbot-message--user") ?? [], it = () => {
301
- let e = G.value;
302
- if (!e || !j.showScrollToBottom) return;
303
- let t = e.getBoundingClientRect().top + e.clientHeight / 2, n = q.value[0]?.id;
304
- rt().forEach((e, r) => {
305
- e.getBoundingClientRect().top <= t && (n = q.value[r]?.id);
306
- }), nt.value = n;
307
- };
308
- V(q, async () => {
309
- await N(), it();
310
- });
311
- let at = () => {
312
- Ce(), it();
313
- }, ot = (e) => {
314
- let t = G.value, n = q.value.findIndex((t) => t.id === e), r = rt()[n];
315
- t && r && (Ee.value = !0, t.scrollTo({
316
- top: t.scrollTop + r.getBoundingClientRect().top - t.getBoundingClientRect().top - Number.parseFloat(getComputedStyle(t).paddingTop),
317
- behavior: "smooth"
318
- }));
319
- }, J = R(0), st = R(!1), ct = async () => {
320
- let e = j.messages;
321
- if (!e?.length || j.disableHeightAdjustment || e[e.length - 1].role !== "user" && j.status !== "submitted" && j.status !== "streaming" || (st.value = !1, await N(), !G.value)) return;
322
- let { paddingTop: t, paddingBottom: n } = getComputedStyle(G.value), r = G.value.clientHeight - Number.parseFloat(t) - Number.parseFloat(n), i = K.value && Number.parseFloat(getComputedStyle(K.value).rowGap) || 0, a = rt(), o = r - (a[a.length - 1]?.clientHeight ?? 0) - i;
323
- r > 0 && (J.value = Math.max(o, 0)), await N();
324
- };
325
- V(() => [j.messages?.length, j.messages?.[j.messages.length - 1]?.id], () => ct()), ue(() => {
326
- (j.status === "submitted" || j.status === "streaming" || j.awaitingSpokenAnswer) && ct();
327
- }), V(() => j.status, (e) => {
328
- (e === "ready" || e === "error") && (st.value = !0, J.value = 0);
329
- });
330
- let lt = (e) => j.revisedAnswers?.some((t) => t.messageId === e), Y = (e) => j.messageFeedbacks?.find((t) => t.messageId === e), ut = (e, t) => !j.readonlyFeedback && Ot(e, t), dt = (e) => j.readonlyFeedback ? Y(e) : void 0, ft = (e) => dt(e)?.vote, pt = (e) => {
331
- let t = dt(e);
332
- if (t?.vote) return;
333
- let n = t?.metadata?.reactionEmoji;
334
- return typeof n == "string" && /\p{Extended_Pictographic}/u.test(n) ? n : void 0;
335
- }, mt = (e) => !!(ft(e) || pt(e)), ht = (e) => {
336
- if (pt(e)) return "pk-chatbot-message__reaction--neutral";
337
- let t = ft(e);
338
- return t === "upvote" ? "pk-chatbot-message__reaction--positive" : t === "downvote" ? "pk-chatbot-message__reaction--negative" : "pk-chatbot-message__reaction--neutral";
339
- }, gt = (e) => {
340
- let t = ft(e);
341
- return I(t === "upvote" ? "hint.userFeedbackPositive" : t === "downvote" ? "hint.userFeedbackNegative" : "hint.userFeedbackReaction");
342
- }, _t = (e) => {
343
- let t = bt(e);
344
- for (let e = t.length - 1; e >= 0; --e) if (o(t[e])) return e;
345
- return -1;
346
- }, vt = T(() => j.messages?.[j.messages.length - 1]), X = T(() => {
347
- let e = vt.value;
348
- return e ? e.parts[e.parts.length - 1] : null;
349
- }), yt = T(() => {
350
- let e = /* @__PURE__ */ new Map();
351
- for (let t of j.messages ?? []) t.role === "assistant" && e.set(t.id, u(t.parts));
352
- return e;
353
- }), bt = (e) => yt.value.get(e.id) ?? e.parts, Z = T(() => j.status === "submitted" || j.status === "streaming"), xt = T(() => j.status === "error"), St = T(() => j.awaitingSpokenAnswer === !0 && !Z.value), Ct = T(() => St.value && vt.value?.role === "user" && !xt.value), wt = T(() => {
354
- let e = X.value;
355
- return f(I, e);
356
- }), Tt = T(() => {
357
- let e = X.value;
358
- return m(e);
359
- }), Et = (e) => j.messages?.findIndex((t) => t.id === e), Q = (e) => e === void 0 || !j.messages ? !1 : e === j.messages.length - 1, Dt = (e) => Q(e) && j.status === "ready" && !!j.actions?.includes("regenerate"), Ot = (e, t) => (!Q(t) || j.status === "ready") && !!j.actions?.includes(e), kt = (e) => {
360
- let t = e.parts[e.parts.length - 1];
361
- return o(t);
362
- }, At = (e) => e.parts.some((e) => i(e) || r(e)), jt = (e) => !!j.showExtendedSteps && $(e) && At(e), $ = (e) => e.role === "assistant", Mt = (e) => e.role === "user", Nt = (e) => j.messages?.slice(0, e).reverse().find((e) => $(e)), Pt = (e) => j.messages?.slice(e + 1).find((e) => $(e)), Ft = (e) => {
363
- let t = Nt(e)?.metadata?.createdAt, n = Pt(e)?.metadata?.createdAt;
364
- if (!t || !n) return;
365
- let r = new Date(t), i = new Date(n);
366
- return r.toDateString() === i.toDateString() ? void 0 : i;
367
- }, It = (e, t) => t === 0 || e.role !== "assistant" ? !1 : !!(j.actions?.length || j.showMessageDateTime && e.metadata?.createdAt !== void 0 || e.metadata?.completedAt !== void 0 || j.showMessageTokensCount && e.metadata?.totalTokens !== void 0), Lt = (e) => {
368
- let t = new Date(e), n = t.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
369
- return W(t, n ? "time" : "date-time");
370
- }, Rt = (e) => {
371
- let { createdAt: t, completedAt: n } = e.metadata ?? {};
372
- if (t && n) return g(_e, n - t);
373
- }, zt = he("feedbackMessageEl");
374
- return V(() => j.feedbackMessageId, async () => {
375
- if (await N(), !j.feedbackMessageId) return;
376
- let e = zt.value?.[0]?.$el;
377
- if (e) {
378
- if (Q(Et(j.feedbackMessageId))) {
379
- Te();
380
- return;
381
- }
382
- e.scrollIntoView({
383
- behavior: "smooth",
384
- block: "center"
385
- });
386
- }
387
- }), (i, u) => {
388
- let d = se, f = S, g = oe;
389
- return L(), O("div", {
390
- ref_key: "scrollEl",
391
- ref: G,
392
- class: P(["pk-chatbot-messages", { "pk-chatbot-messages--settling": st.value }]),
393
- role: "log",
394
- "aria-live": "polite",
395
- "aria-relevant": "additions text",
396
- "aria-busy": Z.value,
397
- style: F({
398
- "--chatbot-main-color": e.mainColor,
399
- "--chatbot-contrast-color": Se.value
400
- }),
401
- onScroll: at
402
- }, [
403
- e.showScrollToBottom && q.value.length > 1 ? (L(), O("div", ke, [A(x, {
404
- items: q.value,
405
- "active-id": nt.value,
406
- onSelect: ot
407
- }, null, 8, ["items", "active-id"])])) : D("", !0),
408
- k("div", {
409
- ref_key: "wrapperEl",
410
- ref: K,
411
- class: "pk-chatbot-messages__wrapper"
412
- }, [
413
- (L(!0), O(C, null, de(e.messages, (c, _) => (L(), O(C, { key: c.id }, [Mt(c) && Ft(_) ? (L(), O("div", Ae, [k("span", je, z(B(W)(Ft(_), "short")), 1)])) : D("", !0), c.parts.length || Q(_) && Z.value && $(c) ? (L(), O("div", {
414
- key: 1,
415
- class: P(["pk-chatbot-message", [`pk-chatbot-message--${c.role}`, { "pk-chatbot-message--loading": Z.value && Q(_) && $(c) }]]),
416
- style: F({ minHeight: Q(_) && $(c) && !xt.value ? `${J.value}px` : void 0 })
417
- }, [
418
- A(w, {
419
- appear: "",
420
- name: "pk-chatbot-part"
421
- }, {
422
- default: H(() => [jt(c) ? (L(), E(b, {
423
- key: 0,
424
- message: c,
425
- "is-streaming": Z.value && Q(_),
426
- "is-dark": e.isDark
427
- }, null, 8, [
428
- "message",
429
- "is-streaming",
430
- "is-dark"
431
- ])) : D("", !0)]),
432
- _: 2
433
- }, 1024),
434
- (L(!0), O(C, null, de(bt(c), (l, u) => (L(), O(C, { key: u }, [B(o)(l) && l.text.trim() ? (L(), E(w, {
435
- key: 0,
436
- appear: "",
437
- name: "pk-chatbot-part"
438
- }, {
439
- default: H(() => [k("div", Me, [fe(i.$slots, "text", le({ ref_for: !0 }, {
440
- message: c,
441
- part: l,
442
- index: _,
443
- isLoading: Z.value
444
- }), () => [$(c) ? (L(), E(t, {
445
- key: 0,
446
- class: "wysiwyg",
447
- markdown: l.text,
448
- "is-dark": e.isDark,
449
- loading: Q(_) && e.status === "streaming"
450
- }, null, 8, [
451
- "markdown",
452
- "is-dark",
453
- "loading"
454
- ])) : (L(), O(C, { key: 1 }, [ce(z(l.text), 1)], 64))]), mt(c.id) && !Y(c.id)?.comment && u === _t(c) ? (L(), O("span", {
455
- key: 0,
456
- class: P(["pk-chatbot-message__reaction", ht(c.id)]),
457
- title: gt(c.id)
458
- }, [pt(c.id) ? (L(), O("span", Pe, z(pt(c.id)), 1)) : (L(), E(d, {
459
- key: 1,
460
- name: ft(c.id) === "downvote" ? "ri:thumb-down-fill" : "ri:thumb-up-fill"
461
- }, null, 8, ["name"]))], 10, Ne)) : D("", !0)])]),
462
- _: 2
463
- }, 1024)) : B(n)(l) ? (L(), E(w, {
464
- key: 1,
465
- appear: "",
466
- name: "pk-chatbot-part"
467
- }, {
468
- default: H(() => [A(ne, {
469
- "media-type": l.mediaType,
470
- url: l.url,
471
- filename: l.filename,
472
- size: B(s)(l)?.bytesCount
473
- }, null, 8, [
474
- "media-type",
475
- "url",
476
- "filename",
477
- "size"
478
- ])]),
479
- _: 2
480
- }, 1024)) : B(p)(l) && !B(v)(l) ? (L(), E(w, {
481
- key: 2,
482
- appear: "",
483
- name: "pk-chatbot-part"
484
- }, {
485
- default: H(() => [(L(), E(we, {
486
- key: `approval-${u}`,
487
- part: l,
488
- actionable: e.interactive === !0 && (B(y)(l) || Q(_)),
489
- "call-verdict": e.confirmVerdictsOnCall?.get(l.toolCallId ?? ""),
490
- onRespond: (e) => be(l, e)
491
- }, null, 8, [
492
- "part",
493
- "actionable",
494
- "call-verdict",
495
- "onRespond"
496
- ]))]),
497
- _: 2
498
- }, 1024)) : B(r)(l) && !B(v)(l) && (B(xe)[B(a)(l)] || B(ye)[l.type] || e.showAllMessageParts) ? (L(), E(w, {
499
- key: 3,
500
- appear: "",
501
- name: "pk-chatbot-part"
502
- }, {
503
- default: H(() => [!B(ye)[l.type] && B(xe)[B(a)(l)] ? (L(), E(pe(B(xe)[B(a)(l)]), {
504
- key: `component-${u}-${B(ee)(l)}`,
505
- part: l
506
- }, null, 8, ["part"])) : fe(i.$slots, l.type, le({ ref_for: !0 }, {
507
- message: c,
508
- part: l,
509
- index: _,
510
- isLoading: Z.value
511
- }), () => [e.showAllMessageParts ? (L(), O("div", Fe, [k("div", Ie, [B(m)(l) ? (L(), E(d, {
512
- key: 0,
513
- name: B(m)(l),
514
- class: "shrink-0"
515
- }, null, 8, ["name"])) : D("", !0), k("code", Le, z(B(ve)(l.type)), 1)])])) : D("", !0)], void 0, 1)]),
516
- _: 2
517
- }, 1024)) : D("", !0), A(w, { mode: "out-in" }, {
518
- default: H(() => [u === _t(c) && e.readonlyFeedback && Y(c.id)?.comment ? (L(), E(ie, {
519
- key: 0,
520
- feedback: Y(c.id)
521
- }, null, 8, ["feedback"])) : D("", !0)]),
522
- _: 2
523
- }, 1024)], 64))), 128)),
524
- A(w, {
525
- name: "fade-in",
526
- mode: "out-in"
527
- }, {
528
- default: H(() => [Z.value && Q(_) && !kt(c) && $(c) && !jt(c) ? (L(), O("div", {
529
- key: `loading-info-${c.id}`,
530
- class: "pk-chatbot-message__loading-info"
531
- }, [k("div", Re, [
532
- A(d, {
533
- name: "loading-loop",
534
- class: "shrink-0"
535
- }),
536
- A(w, { mode: "out-in" }, {
537
- default: H(() => [Tt.value ? (L(), E(d, {
538
- key: Tt.value,
539
- class: "shrink-0",
540
- name: Tt.value
541
- }, null, 8, ["name"])) : D("", !0)]),
542
- _: 1
543
- }),
544
- A(w, { mode: "out-in" }, {
545
- default: H(() => [wt.value ? (L(), O("span", {
546
- key: wt.value,
547
- class: "text-12"
548
- }, z(wt.value), 1)) : D("", !0)]),
549
- _: 1
550
- })
551
- ]), A(w, {
552
- name: "fade-in",
553
- mode: "out-in"
554
- }, {
555
- default: H(() => [X.value && "text" in X.value && X.value.text.trim() ? (L(), E(ae, {
556
- key: 0,
557
- markdown: X.value.text,
558
- "is-dark": e.isDark,
559
- "tail-length": B(h),
560
- "inner-class": "wysiwyg",
561
- class: "border border-surface-3 rounded-md p-4 mt-8 bg-surface-1 max-h-64 text-12 w-full"
562
- }, null, 8, [
563
- "markdown",
564
- "is-dark",
565
- "tail-length"
566
- ])) : D("", !0)]),
567
- _: 1
568
- })])) : D("", !0)]),
569
- _: 2
570
- }, 1024),
571
- A(w, { mode: "out-in" }, {
572
- default: H(() => [It(c, _) ? (L(), O("div", ze, [
573
- A(g, {
574
- modifiers: "compact",
575
- class: "mr-auto shrink-0"
576
- }, {
577
- default: H(() => [
578
- A(w, { mode: "out-in" }, {
579
- default: H(() => [Dt(_) ? (L(), E(f, {
580
- key: 0,
581
- icon: "ri:reset-right-line",
582
- modifiers: "action-quiet-small",
583
- title: B(I)("action.regenerate"),
584
- "aria-label": B(I)("action.regenerate"),
585
- onClick: u[0] ||= U((e) => i.$emit("regenerate"), ["stop"])
586
- }, null, 8, ["title", "aria-label"])) : D("", !0)]),
587
- _: 2
588
- }, 1024),
589
- A(w, { mode: "out-in" }, {
590
- default: H(() => [Ot("show-info", _) ? (L(), E(f, {
591
- key: 0,
592
- icon: "ri:information-line",
593
- title: B(I)("action.getMoreInfo"),
594
- "aria-label": B(I)("action.getMoreInfo"),
595
- modifiers: "action-quiet-small",
596
- onClick: U((e) => i.$emit("show-info", c), ["stop"])
597
- }, null, 8, [
598
- "title",
599
- "aria-label",
600
- "onClick"
601
- ])) : D("", !0)]),
602
- _: 2
603
- }, 1024),
604
- A(w, { mode: "out-in" }, {
605
- default: H(() => [Ot("revise", _) ? (L(), E(f, {
606
- key: 0,
607
- icon: lt(c.id) ? "ri:file-edit-fill" : "ri:file-edit-line",
608
- title: lt(c.id) ? B(I)("action.editRevise") : B(I)("action.createRevise"),
609
- "aria-label": lt(c.id) ? B(I)("action.editRevise") : B(I)("action.createRevise"),
610
- modifiers: "action-quiet-small",
611
- class: P({ "text-brand": lt(c.id) }),
612
- onClick: U((e) => i.$emit("revise", c), ["stop"])
613
- }, null, 8, [
614
- "icon",
615
- "title",
616
- "aria-label",
617
- "class",
618
- "onClick"
619
- ])) : D("", !0)]),
620
- _: 2
621
- }, 1024),
622
- A(w, { mode: "out-in" }, {
623
- default: H(() => [ut("upvote", _) ? (L(), E(f, {
624
- key: 0,
625
- icon: Y(c.id)?.vote === "upvote" ? "ri:thumb-up-fill" : "ri:thumb-up-line",
626
- title: B(I)("action.upvote"),
627
- "aria-label": B(I)("action.upvote"),
628
- modifiers: "action-quiet-small",
629
- onClick: U((e) => i.$emit("upvote", c), ["stop"])
630
- }, null, 8, [
631
- "icon",
632
- "title",
633
- "aria-label",
634
- "onClick"
635
- ])) : D("", !0)]),
636
- _: 2
637
- }, 1024),
638
- A(w, { mode: "out-in" }, {
639
- default: H(() => [ut("downvote", _) ? (L(), E(f, {
640
- key: 0,
641
- icon: Y(c.id)?.vote === "downvote" ? "ri:thumb-down-fill" : "ri:thumb-down-line",
642
- title: B(I)("action.downvote"),
643
- "aria-label": B(I)("action.downvote"),
644
- modifiers: "action-quiet-small",
645
- onClick: U((e) => i.$emit("downvote", c), ["stop"])
646
- }, null, 8, [
647
- "icon",
648
- "title",
649
- "aria-label",
650
- "onClick"
651
- ])) : D("", !0)]),
652
- _: 2
653
- }, 1024),
654
- A(w, { mode: "out-in" }, {
655
- default: H(() => [ut("feedback", _) ? (L(), E(f, {
656
- key: 0,
657
- icon: Y(c.id)?.comment ? "ri:feedback-fill" : "ri:feedback-line",
658
- title: B(I)("action.feedback"),
659
- "aria-label": B(I)("action.feedback"),
660
- modifiers: "action-quiet-small",
661
- onClick: U((e) => i.$emit("feedback", c), ["stop"])
662
- }, null, 8, [
663
- "icon",
664
- "title",
665
- "aria-label",
666
- "onClick"
667
- ])) : D("", !0)]),
668
- _: 2
669
- }, 1024)
670
- ]),
671
- _: 2
672
- }, 1024),
673
- !e.showMessageDateTime && c.metadata?.createdAt && c.metadata?.completedAt ? (L(), O("div", Be, [k("time", {
674
- datetime: new Date(c.metadata.createdAt).toISOString(),
675
- title: B(W)(new Date(c.metadata.createdAt), "date-time"),
676
- class: "flex items-center gap-4 min-w-0"
677
- }, [A(d, {
678
- name: "ri:time-line",
679
- class: "shrink-0"
680
- }), k("span", He, z(Lt(c.metadata.createdAt)), 1)], 8, Ve), Rt(c) ? (L(), O("span", Ue, [A(d, {
681
- name: "ri:hourglass-line",
682
- class: "shrink-0"
683
- }), k("span", We, z(Rt(c)), 1)])) : D("", !0)])) : D("", !0),
684
- e.showMessageTokensCount && c.metadata?.totalTokens ? (L(), O("span", Ge, [A(d, {
685
- name: "ri:ai-generate-2-line",
686
- class: "shrink-0"
687
- }), k("span", Ke, z(B(_e)(c.metadata.totalTokens, "integer")) + " " + z(B(I)("label.tokens")), 1)])) : D("", !0),
688
- e.showMessageDateTime && c.metadata?.createdAt ? (L(), O("time", {
689
- key: 2,
690
- datetime: new Date(c.metadata?.createdAt).toISOString(),
691
- class: "flex items-center gap-4 text-12 text-word-3"
692
- }, [A(d, {
693
- name: "ri:time-line",
694
- class: "shrink-0"
695
- }), k("span", Je, z(B(W)(new Date(c.metadata?.createdAt), "date-time")), 1)], 8, qe)) : D("", !0),
696
- e.showMessageDateTime && c?.metadata?.completedAt && c?.metadata?.createdAt ? (L(), O("div", Ye, [A(d, {
697
- name: "ri:hourglass-line",
698
- class: "shrink-0"
699
- }), A(l, {
700
- class: "truncate",
701
- date: c.metadata?.createdAt,
702
- "end-date": c.metadata?.completedAt
703
- }, null, 8, ["date", "end-date"])])) : D("", !0)
704
- ])) : D("", !0)]),
705
- _: 2
706
- }, 1024),
707
- A(w, { mode: "out-in" }, {
708
- default: H(() => [c.id === e.feedbackMessageId ? (L(), E(re, {
709
- key: 0,
710
- ref_for: !0,
711
- ref_key: "feedbackMessageEl",
712
- ref: zt,
713
- loading: e.feedbackLoading,
714
- submitted: e.feedbackSubmitted,
715
- error: e.feedbackError,
716
- onSubmit: u[1] ||= (e) => i.$emit("feedback-submit", e),
717
- onClose: u[2] ||= (e) => i.$emit("feedback-close")
718
- }, null, 8, [
719
- "loading",
720
- "submitted",
721
- "error"
722
- ])) : D("", !0)]),
723
- _: 2
724
- }, 1024)
725
- ], 6)) : D("", !0)], 64))), 128)),
726
- A(w, {
727
- appear: "",
728
- name: "pk-chatbot-part"
729
- }, {
730
- default: H(() => [St.value ? (L(), O("div", {
731
- key: 0,
732
- class: "pk-chatbot-message pk-chatbot-message--assistant pk-chatbot-message--loading",
733
- style: F({ minHeight: Ct.value ? `${J.value}px` : void 0 })
734
- }, [k("div", Xe, [k("div", Ze, [A(d, {
735
- name: "loading-loop",
736
- class: "shrink-0"
737
- }), k("span", Qe, z(B(I)("label.answeringOnTheCall")), 1)])])], 4)) : D("", !0)]),
738
- _: 1
739
- }),
740
- A(w, {
741
- appear: "",
742
- name: "pk-chatbot-part"
743
- }, {
744
- default: H(() => [xt.value ? (L(), E(c, {
745
- key: 0,
746
- error: e.error,
747
- onRetry: u[3] ||= (e) => i.$emit("auto-retry"),
748
- onReset: u[4] ||= (e) => i.$emit("reset-chat")
749
- }, null, 8, ["error"])) : D("", !0)]),
750
- _: 1
751
- }),
752
- vt.value?.role === "user" && !Ct.value || xt.value ? (L(), O("div", {
753
- key: 0,
754
- class: "pk-chatbot-messages__spacer",
755
- style: F({ minHeight: `${J.value}px` })
756
- }, null, 4)) : D("", !0)
757
- ], 512),
758
- A(w, { name: "pk-chatbot-messages-fab" }, {
759
- default: H(() => [e.showScrollToBottom && (B(Ee) || !B(et)) ? (L(), O("button", {
760
- key: 0,
761
- type: "button",
762
- class: "pk-chatbot-messages__scroll-to-bottom",
763
- title: B(I)("action.scrollToBottom"),
764
- "aria-label": B(I)("action.scrollToBottom"),
765
- onClick: tt
766
- }, [A(d, { name: "ri:arrow-down-line" })], 8, $e)) : D("", !0)]),
767
- _: 1
768
- })
769
- ], 46, Oe);
770
- };
771
- }
772
- });
773
- //#endregion
774
- export { ye as a, ve as i, be as n, _e as r, et as t };
775
-
776
- //# sourceMappingURL=PkChatbotMessages-BD-vUak6.js.map