@8wave/ai-elements 0.73.0 → 0.74.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 (160) hide show
  1. package/README.md +62 -15
  2. package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js → PkToolShowArtifact-c_vCWUpQ.js} +2 -2
  3. package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js.map → PkToolShowArtifact-c_vCWUpQ.js.map} +1 -1
  4. package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js → PkToolShowCalendarEvent-D2VHu1V3.js} +3 -3
  5. package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js.map → PkToolShowCalendarEvent-D2VHu1V3.js.map} +1 -1
  6. package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js → PkToolShowComparison-C2ZUH0w4.js} +3 -3
  7. package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js.map → PkToolShowComparison-C2ZUH0w4.js.map} +1 -1
  8. package/dist/_chunks/{PkToolShowContactForm-SmOSbCsp.js → PkToolShowContactForm-6C4uWDtf.js} +3 -3
  9. package/dist/_chunks/{PkToolShowContactForm-SmOSbCsp.js.map → PkToolShowContactForm-6C4uWDtf.js.map} +1 -1
  10. package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js → PkToolShowEmail-BuyCHUU5.js} +3 -3
  11. package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js.map → PkToolShowEmail-BuyCHUU5.js.map} +1 -1
  12. package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js → PkToolShowImageGallery-ByldZ0nj.js} +2 -2
  13. package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js.map → PkToolShowImageGallery-ByldZ0nj.js.map} +1 -1
  14. package/dist/_chunks/{PkToolShowLocation-US6u26ra.js → PkToolShowLocation-BCFnC5c7.js} +3 -3
  15. package/dist/_chunks/{PkToolShowLocation-US6u26ra.js.map → PkToolShowLocation-BCFnC5c7.js.map} +1 -1
  16. package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js → PkToolShowMessage-6Bsfi3BC.js} +3 -3
  17. package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js.map → PkToolShowMessage-6Bsfi3BC.js.map} +1 -1
  18. package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js → PkToolShowMultipleChoice-BLNTD2lK.js} +3 -3
  19. package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js.map → PkToolShowMultipleChoice-BLNTD2lK.js.map} +1 -1
  20. package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js → PkToolShowProductList-B4S5_m-f.js} +2 -2
  21. package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js.map → PkToolShowProductList-B4S5_m-f.js.map} +1 -1
  22. package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js → PkToolShowQrCode-BVZlzYDq.js} +3 -3
  23. package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js.map → PkToolShowQrCode-BVZlzYDq.js.map} +1 -1
  24. package/dist/_chunks/{PkToolShowSources-B2rf94fU.js → PkToolShowSources-BQo5DRwt.js} +2 -2
  25. package/dist/_chunks/{PkToolShowSources-B2rf94fU.js.map → PkToolShowSources-BQo5DRwt.js.map} +1 -1
  26. package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js → PkToolShowSuggestedReply-BxDI6yp_.js} +2 -2
  27. package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js.map → PkToolShowSuggestedReply-BxDI6yp_.js.map} +1 -1
  28. package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js → PkToolShowWeather-DR6egBIP.js} +3 -3
  29. package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js.map → PkToolShowWeather-DR6egBIP.js.map} +1 -1
  30. package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js → PkToolShowWebPages-D8RngE-F.js} +2 -2
  31. package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js.map → PkToolShowWebPages-D8RngE-F.js.map} +1 -1
  32. package/dist/_chunks/{index.es-Z3Hu-QIb.js → index.es-BGFmj59S.js} +2429 -1559
  33. package/dist/_chunks/{index.es-Z3Hu-QIb.js.map → index.es-BGFmj59S.js.map} +1 -1
  34. package/dist/ai-elements.es.js +2908 -2711
  35. package/dist/ai-elements.es.js.map +1 -1
  36. package/dist-vue/PkChatbot.js +1 -1
  37. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  38. package/dist-vue/PkChatbotFilePreview.js +1 -1
  39. package/dist-vue/PkChatbotInput.js +1 -1
  40. package/dist-vue/PkChatbotMessages.js +1 -1
  41. package/dist-vue/PkChatbotViewChat.js +1 -1
  42. package/dist-vue/PkChatbotViewConversations.js +1 -1
  43. package/dist-vue/PkChatbotViewProfile.js +1 -1
  44. package/dist-vue/_chunks/PkChatbot-woRkjgP5.js +190 -0
  45. package/dist-vue/_chunks/{PkChatbot-D5_ytfqS.js.map → PkChatbot-woRkjgP5.js.map} +1 -1
  46. package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js → PkChatbotFeedbackForm-D-lx1URv.js} +2 -2
  47. package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js.map → PkChatbotFeedbackForm-D-lx1URv.js.map} +1 -1
  48. package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js → PkChatbotFilePreview-DHzuGtz5.js} +2 -2
  49. package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js.map → PkChatbotFilePreview-DHzuGtz5.js.map} +1 -1
  50. package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js → PkChatbotInput-LHE0HZ9z.js} +3 -3
  51. package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js.map → PkChatbotInput-LHE0HZ9z.js.map} +1 -1
  52. package/dist-vue/_chunks/{PkChatbotMessages-CMLqkhmb.js → PkChatbotMessages-BxTeEm3j.js} +15 -15
  53. package/dist-vue/_chunks/{PkChatbotMessages-CMLqkhmb.js.map → PkChatbotMessages-BxTeEm3j.js.map} +1 -1
  54. package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js → PkChatbotViewChat-BoEfZeco.js} +9 -9
  55. package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js.map → PkChatbotViewChat-BoEfZeco.js.map} +1 -1
  56. package/dist-vue/_chunks/PkChatbotViewConversations-DvVc1arX.js +163 -0
  57. package/dist-vue/_chunks/PkChatbotViewConversations-DvVc1arX.js.map +1 -0
  58. package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js → PkChatbotViewProfile-Dev_6pki.js} +2 -2
  59. package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js.map → PkChatbotViewProfile-Dev_6pki.js.map} +1 -1
  60. package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js → PkRelativeTime-WZ2aPcp_.js} +1 -1
  61. package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js.map → PkRelativeTime-WZ2aPcp_.js.map} +1 -1
  62. package/dist-vue/_chunks/{PkStreamingMarkdown-CtiMH6FD.js → PkStreamingMarkdown-B4gnJ4hk.js} +1 -1
  63. package/dist-vue/_chunks/{PkStreamingMarkdown-CtiMH6FD.js.map → PkStreamingMarkdown-B4gnJ4hk.js.map} +1 -1
  64. package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js → PkToolShowArtifact-EvbUZSOf.js} +2 -2
  65. package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js.map → PkToolShowArtifact-EvbUZSOf.js.map} +1 -1
  66. package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js → PkToolShowContactForm-CsDOqSJK.js} +3 -3
  67. package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js.map → PkToolShowContactForm-CsDOqSJK.js.map} +1 -1
  68. package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js → PkToolShowImageGallery-B7Bt6ZGv.js} +2 -2
  69. package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js.map → PkToolShowImageGallery-B7Bt6ZGv.js.map} +1 -1
  70. package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js → PkToolShowLocation-DteWf0Cs.js} +1 -1
  71. package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js.map → PkToolShowLocation-DteWf0Cs.js.map} +1 -1
  72. package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js → PkToolShowMultipleChoice-DZXfWtQp.js} +1 -1
  73. package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js.map → PkToolShowMultipleChoice-DZXfWtQp.js.map} +1 -1
  74. package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js → PkToolShowProductList-CtqWK0x4.js} +2 -2
  75. package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js.map → PkToolShowProductList-CtqWK0x4.js.map} +1 -1
  76. package/dist-vue/_chunks/{PkToolShowSources-D5cBZxwQ.js → PkToolShowSources-ZtXFkIHt.js} +3 -3
  77. package/dist-vue/_chunks/{PkToolShowSources-D5cBZxwQ.js.map → PkToolShowSources-ZtXFkIHt.js.map} +1 -1
  78. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js → PkToolShowSuggestedReply-30m9yWDL.js} +1 -1
  79. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js.map → PkToolShowSuggestedReply-30m9yWDL.js.map} +1 -1
  80. package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js → PkToolShowWebPages-DZIdrdWs.js} +2 -2
  81. package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js.map → PkToolShowWebPages-DZIdrdWs.js.map} +1 -1
  82. package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js → PkUrl-CGbSBfuP.js} +1 -1
  83. package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js.map → PkUrl-CGbSBfuP.js.map} +1 -1
  84. package/dist-vue/_chunks/{createChatbotApiClient-2ynLWELM.js → createChatbotApiClient-YJegM3ni.js} +140 -118
  85. package/dist-vue/_chunks/createChatbotApiClient-YJegM3ni.js.map +1 -0
  86. package/dist-vue/_chunks/{dist-Bs6dYy7x.js → dist-21vPGg1O.js} +3 -3
  87. package/dist-vue/_chunks/{dist-Bs6dYy7x.js.map → dist-21vPGg1O.js.map} +1 -1
  88. package/dist-vue/_chunks/{dist-Bb1zRSg4.js → dist-BGXTbYew2.js} +4 -4
  89. package/dist-vue/_chunks/dist-BGXTbYew2.js.map +1 -0
  90. package/dist-vue/_chunks/{dist-BrlD3co0.js → dist-BL9cumqH.js} +2 -2
  91. package/dist-vue/_chunks/{dist-BrlD3co0.js.map → dist-BL9cumqH.js.map} +1 -1
  92. package/dist-vue/_chunks/{dist-B9Pw4_a5.js → dist-BU-VgsYM.js} +3 -3
  93. package/dist-vue/_chunks/{dist-B9Pw4_a5.js.map → dist-BU-VgsYM.js.map} +1 -1
  94. package/dist-vue/_chunks/{dist-D-tjAaHK.js → dist-BU5m1pTR.js} +3 -3
  95. package/dist-vue/_chunks/{dist-D-tjAaHK.js.map → dist-BU5m1pTR.js.map} +1 -1
  96. package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js → dist-BbP2I_Or.js} +2 -2
  97. package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js.map → dist-BbP2I_Or.js.map} +1 -1
  98. package/dist-vue/_chunks/{dist-Cvsv0YEw.js → dist-BvmTki6w.js} +3 -3
  99. package/dist-vue/_chunks/{dist-Cvsv0YEw.js.map → dist-BvmTki6w.js.map} +1 -1
  100. package/dist-vue/_chunks/{dist-QzbLuLIV.js → dist-C3dPzENq.js} +3 -3
  101. package/dist-vue/_chunks/{dist-QzbLuLIV.js.map → dist-C3dPzENq.js.map} +1 -1
  102. package/dist-vue/_chunks/{dist-BMWOJZqC.js → dist-C6AWJq9a.js} +2 -2
  103. package/dist-vue/_chunks/{dist-BMWOJZqC.js.map → dist-C6AWJq9a.js.map} +1 -1
  104. package/dist-vue/_chunks/{dist-BQCdUoYc.js → dist-CGNGkvWf.js} +4 -4
  105. package/dist-vue/_chunks/{dist-BQCdUoYc.js.map → dist-CGNGkvWf.js.map} +1 -1
  106. package/dist-vue/_chunks/{dist-JOgG1zY3.js → dist-CIN_Avbm.js} +1 -1
  107. package/dist-vue/_chunks/{dist-JOgG1zY3.js.map → dist-CIN_Avbm.js.map} +1 -1
  108. package/dist-vue/_chunks/{dist-NKG-Bt-Q.js → dist-CePpgudw.js} +3 -3
  109. package/dist-vue/_chunks/{dist-NKG-Bt-Q.js.map → dist-CePpgudw.js.map} +1 -1
  110. package/dist-vue/_chunks/{dist-C13mHkC-.js → dist-CtMo7ig_.js} +2 -2
  111. package/dist-vue/_chunks/{dist-C13mHkC-.js.map → dist-CtMo7ig_.js.map} +1 -1
  112. package/dist-vue/_chunks/{dist-DucfoJQX.js → dist-CwG072cD.js} +3 -3
  113. package/dist-vue/_chunks/{dist-DucfoJQX.js.map → dist-CwG072cD.js.map} +1 -1
  114. package/dist-vue/_chunks/{dist-_4yQQX_L.js → dist-DFvVVU0-.js} +2 -2
  115. package/dist-vue/_chunks/{dist-_4yQQX_L.js.map → dist-DFvVVU0-.js.map} +1 -1
  116. package/dist-vue/_chunks/{dist-C_tRbeXQ.js → dist-DGz57kzK.js} +2 -2
  117. package/dist-vue/_chunks/{dist-C_tRbeXQ.js.map → dist-DGz57kzK.js.map} +1 -1
  118. package/dist-vue/_chunks/{dist-C2tC3pDh.js → dist-DT30Xa-D.js} +2 -2
  119. package/dist-vue/_chunks/{dist-C2tC3pDh.js.map → dist-DT30Xa-D.js.map} +1 -1
  120. package/dist-vue/_chunks/{dist-DNn7FqmI.js → dist-DoRhRpjL.js} +2 -2
  121. package/dist-vue/_chunks/{dist-DNn7FqmI.js.map → dist-DoRhRpjL.js.map} +1 -1
  122. package/dist-vue/_chunks/{dist-CQmgfFIN.js → dist-GnhLE5-A.js} +4 -4
  123. package/dist-vue/_chunks/{dist-CQmgfFIN.js.map → dist-GnhLE5-A.js.map} +1 -1
  124. package/dist-vue/_chunks/{dist-1ToEz3Zq.js → dist-QzWOn2Kx.js} +3 -3
  125. package/dist-vue/_chunks/{dist-1ToEz3Zq.js.map → dist-QzWOn2Kx.js.map} +1 -1
  126. package/dist-vue/_chunks/{dist-e9UFeG14.js → dist-uYEYs0EJ.js} +2 -2
  127. package/dist-vue/_chunks/{dist-e9UFeG14.js.map → dist-uYEYs0EJ.js.map} +1 -1
  128. package/dist-vue/_chunks/{dist-BpT8aqtS.js → dist-ukeBjdwq.js} +4 -4
  129. package/dist-vue/_chunks/{dist-BpT8aqtS.js.map → dist-ukeBjdwq.js.map} +1 -1
  130. package/dist-vue/_chunks/{dist-BHTSdHeX.js → dist-wLB8N32T.js} +3 -3
  131. package/dist-vue/_chunks/{dist-BHTSdHeX.js.map → dist-wLB8N32T.js.map} +1 -1
  132. package/dist-vue/_chunks/{index.es-BnOT0fHY.js → index.es-CrPSzhoZ.js} +1 -1
  133. package/dist-vue/_chunks/{index.es-BnOT0fHY.js.map → index.es-CrPSzhoZ.js.map} +1 -1
  134. package/dist-vue/_chunks/{useChatbotStore-Im8Xjwte.js → useChatbotStore-DGL81KJa.js} +720 -704
  135. package/dist-vue/_chunks/{useChatbotStore-Im8Xjwte.js.map → useChatbotStore-DGL81KJa.js.map} +1 -1
  136. package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js → useLightbox-1sB7fmFb.js} +1 -1
  137. package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js.map → useLightbox-1sB7fmFb.js.map} +1 -1
  138. package/dist-vue/_chunks/{utils-DO7emdsn.js → utils-BegUBK7s.js} +1 -1
  139. package/dist-vue/_chunks/{utils-DO7emdsn.js.map → utils-BegUBK7s.js.map} +1 -1
  140. package/dist-vue/api.js +1 -1
  141. package/dist-vue/apps/web-component/src/composables/useChatbotAgent.d.ts +3 -1
  142. package/dist-vue/composables.js +3 -3
  143. package/dist-vue/index.js +3552 -3512
  144. package/dist-vue/index.js.map +1 -1
  145. package/dist-vue/locales.js +56 -20
  146. package/dist-vue/packages/components/src/PkEditorPrompt.d.ts +2 -0
  147. package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +6 -3
  148. package/dist-vue/packages/components/src/chat/PkEditorChannels.d.ts +16 -0
  149. package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +2 -0
  150. package/dist-vue/packages/models/src/schema/Agent.d.ts +10 -0
  151. package/dist-vue/packages/models/src/schema/Chat.d.ts +6 -0
  152. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +3 -1
  153. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +3 -1
  154. package/dist-vue/style.css +1 -1
  155. package/package.json +1 -1
  156. package/dist-vue/_chunks/PkChatbot-D5_ytfqS.js +0 -190
  157. package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js +0 -40
  158. package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js.map +0 -1
  159. package/dist-vue/_chunks/createChatbotApiClient-2ynLWELM.js.map +0 -1
  160. package/dist-vue/_chunks/dist-Bb1zRSg4.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { $ as e, C as t, E as n, Gt as r, O as i, Vt as a, _ as o, v as s, w as c, x as l, yt as u, z as d } from "./vue.runtime.esm-bundler-BmggS4HU.js";
2
2
  import { i as f } from "./dist-DtF6poRc.js";
3
- import { a as p, i as m, n as h, o as g, r as _ } from "./index.es-Z3Hu-QIb.js";
3
+ import { c as p, n as m, o as h, r as g, s as _ } from "./index.es-BGFmj59S.js";
4
4
  //#region ../../packages/components/src/chat/PkToolShowMessage.vue?vue&type=script&setup=true&lang.ts
5
5
  var v = { class: "border border-surface-3 rounded-xl w-full overflow-hidden" }, y = { class: "px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8" }, b = { class: "font-bold" }, x = { class: "p-sm" }, S = { class: "text-12 text-word-4 mb-4" }, C = { class: "text-word-2 whitespace-pre-wrap break-words" }, w = /* @__PURE__ */ n({
6
6
  __name: "PkToolShowMessage",
@@ -20,7 +20,7 @@ var v = { class: "border border-surface-3 rounded-xl w-full overflow-hidden" },
20
20
  window.open(e);
21
21
  };
22
22
  return (n, o) => {
23
- let f = m, w = g, j = _, M = p, N = h;
23
+ let f = h, w = p, j = g, M = _, N = m;
24
24
  return d(), l("div", v, [s("div", y, [
25
25
  c(f, {
26
26
  name: "ri:chat-1-line",
@@ -72,4 +72,4 @@ var v = { class: "border border-surface-3 rounded-xl w-full overflow-hidden" },
72
72
  //#endregion
73
73
  export { w as default };
74
74
 
75
- //# sourceMappingURL=PkToolShowMessage-Cjslxq94.js.map
75
+ //# sourceMappingURL=PkToolShowMessage-6Bsfi3BC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkToolShowMessage-Cjslxq94.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowMessage.vue","../../../../packages/components/src/chat/PkToolShowMessage.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n body: string\n }\n }\n return part\n })\n\n const openInWhatsApp = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://wa.me/?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInTelegram = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://t.me/share/url?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInSms = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `sms:?body=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url)\n }\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:chat-1-line\" class=\"text-16\" />\n <strong class=\"font-bold\">\n {{ $t('label.message') }}\n </strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.body ?? '')\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:send-plane-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.send')\" />\n <template #items>\n <VvDropdownAction @click=\"openInWhatsApp\">\n <VvIcon name=\"ri:whatsapp-line\" />\n {{ $t('action.openInWhatsApp') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInTelegram\">\n <VvIcon name=\"ri:telegram-line\" />\n {{ $t('action.openInTelegram') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInSms\">\n <VvIcon name=\"ri:message-2-line\" />\n {{ $t('action.openInSms') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div class=\"p-sm\">\n <div class=\"text-12 text-word-4 mb-4\">\n {{ $t('label.body') }}\n </div>\n <pre class=\"text-word-2 whitespace-pre-wrap break-words\">{{\n toolPart?.input?.body\n }}</pre>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n body: string\n }\n }\n return part\n })\n\n const openInWhatsApp = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://wa.me/?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInTelegram = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://t.me/share/url?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInSms = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `sms:?body=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url)\n }\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:chat-1-line\" class=\"text-16\" />\n <strong class=\"font-bold\">\n {{ $t('label.message') }}\n </strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.body ?? '')\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:send-plane-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.send')\" />\n <template #items>\n <VvDropdownAction @click=\"openInWhatsApp\">\n <VvIcon name=\"ri:whatsapp-line\" />\n {{ $t('action.openInWhatsApp') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInTelegram\">\n <VvIcon name=\"ri:telegram-line\" />\n {{ $t('action.openInTelegram') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInSms\">\n <VvIcon name=\"ri:message-2-line\" />\n {{ $t('action.openInSms') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div class=\"p-sm\">\n <div class=\"text-12 text-word-4 mb-4\">\n {{ $t('label.body') }}\n </div>\n <pre class=\"text-word-2 whitespace-pre-wrap break-words\">{{\n toolPart?.input?.body\n }}</pre>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;EAII,IAAM,IAAQ,GAIR,EAAE,SAAM,cAAW,GAAa,EAEhC,IAAW,QACA,EAAM,KAMtB,EAEK,UAAuB;AACzB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,uBAAuB,mBAAmB,EAAS,MAAM,MAAM,KAAK;AAChF,UAAO,KAAK,GAAK,SAAQ;KAGvB,UAAuB;AACzB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,+BAA+B,mBAAmB,EAAS,MAAM,MAAM,KAAK;AACxF,UAAO,KAAK,GAAK,SAAQ;KAGvB,UAAkB;AACpB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,aAAa,mBAAmB,EAAS,MAAM,MAAM,KAAK;AACtE,UAAO,KAAK,EAAG;;;;eAKnB,EAiDM,OAjDN,GAiDM,CAhDF,EAuCM,OAvCN,GAuCM;IArCF,EAAgD,GAAA;KAAxC,MAAK;KAAiB,OAAM;;IACpC,EAES,UAFT,GAES,EADFA,EAAAA,GAAE,gBAAA,CAAA,EAAA,EAAA;IAET,EAgCgB,GAAA;KAhCD,WAAU;KAAU,OAAM;;sBAKY,CAJjD,EAIiD,GAAA;MAH7C,WAAU;MACT,MAAM,EAAA,EAAM,GAAA,kBAAA;MACZ,OAAO,EAAA,EAAM,GAAGA,EAAAA,GAAE,gBAAA,GAAoBA,EAAAA,GAAE,cAAA;MACxC,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,EAAI,CAAC,EAAA,OAAU,OAAO,QAAI,GAAA;qCACtC,EAyBa,GAAA,EAAA,EAxBD;;;;;MAKP,CAAA,CAAA,EAAA;MAKU,OAAK,QAIO;OAHnB,EAGmB,GAAA,EAHA,SAAO,GAAc,EAAA;yBACF,CAAlC,EAAkC,GAAA,EAA1B,MAAK,oBAAkB,CAAA,EAAA,EAAG,MAClC,EAAGA,EAAAA,GAAE,wBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;OAET,EAGmB,GAAA,EAHA,SAAO,GAAc,EAAA;yBACF,CAAlC,EAAkC,GAAA,EAA1B,MAAK,oBAAkB,CAAA,EAAA,EAAG,MAClC,EAAGA,EAAAA,GAAE,wBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;OAET,EAGmB,GAAA,EAHA,SAAO,GAAS,EAAA;yBACI,CAAnC,EAAmC,GAAA,EAA3B,MAAK,qBAAmB,CAAA,EAAA,EAAG,MACnC,EAAGA,EAAAA,GAAE,mBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;uBAZoB,CAHjC,EAGiC,GAAA;OAF7B,MAAK;OACL,WAAU;OACT,OAAOA,EAAAA,GAAE,cAAA;;;;;;OAkB1B,EAOM,OAPN,GAOM,CANF,EAEM,OAFN,GAEM,EADCA,EAAAA,GAAE,aAAA,CAAA,EAAA,EAAA,EAET,EAEQ,OAFR,GAEQ,EADJ,EAAA,OAAU,OAAO,KAAI,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"PkToolShowMessage-6Bsfi3BC.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowMessage.vue","../../../../packages/components/src/chat/PkToolShowMessage.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n body: string\n }\n }\n return part\n })\n\n const openInWhatsApp = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://wa.me/?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInTelegram = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://t.me/share/url?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInSms = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `sms:?body=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url)\n }\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:chat-1-line\" class=\"text-16\" />\n <strong class=\"font-bold\">\n {{ $t('label.message') }}\n </strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.body ?? '')\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:send-plane-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.send')\" />\n <template #items>\n <VvDropdownAction @click=\"openInWhatsApp\">\n <VvIcon name=\"ri:whatsapp-line\" />\n {{ $t('action.openInWhatsApp') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInTelegram\">\n <VvIcon name=\"ri:telegram-line\" />\n {{ $t('action.openInTelegram') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInSms\">\n <VvIcon name=\"ri:message-2-line\" />\n {{ $t('action.openInSms') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div class=\"p-sm\">\n <div class=\"text-12 text-word-4 mb-4\">\n {{ $t('label.body') }}\n </div>\n <pre class=\"text-word-2 whitespace-pre-wrap break-words\">{{\n toolPart?.input?.body\n }}</pre>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n body: string\n }\n }\n return part\n })\n\n const openInWhatsApp = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://wa.me/?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInTelegram = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://t.me/share/url?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInSms = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `sms:?body=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url)\n }\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:chat-1-line\" class=\"text-16\" />\n <strong class=\"font-bold\">\n {{ $t('label.message') }}\n </strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.body ?? '')\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:send-plane-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.send')\" />\n <template #items>\n <VvDropdownAction @click=\"openInWhatsApp\">\n <VvIcon name=\"ri:whatsapp-line\" />\n {{ $t('action.openInWhatsApp') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInTelegram\">\n <VvIcon name=\"ri:telegram-line\" />\n {{ $t('action.openInTelegram') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInSms\">\n <VvIcon name=\"ri:message-2-line\" />\n {{ $t('action.openInSms') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div class=\"p-sm\">\n <div class=\"text-12 text-word-4 mb-4\">\n {{ $t('label.body') }}\n </div>\n <pre class=\"text-word-2 whitespace-pre-wrap break-words\">{{\n toolPart?.input?.body\n }}</pre>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;EAII,IAAM,IAAQ,GAIR,EAAE,SAAM,cAAW,GAAa,EAEhC,IAAW,QACA,EAAM,KAMtB,EAEK,UAAuB;AACzB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,uBAAuB,mBAAmB,EAAS,MAAM,MAAM,KAAK;AAChF,UAAO,KAAK,GAAK,SAAQ;KAGvB,UAAuB;AACzB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,+BAA+B,mBAAmB,EAAS,MAAM,MAAM,KAAK;AACxF,UAAO,KAAK,GAAK,SAAQ;KAGvB,UAAkB;AACpB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,aAAa,mBAAmB,EAAS,MAAM,MAAM,KAAK;AACtE,UAAO,KAAK,EAAG;;;;eAKnB,EAiDM,OAjDN,GAiDM,CAhDF,EAuCM,OAvCN,GAuCM;IArCF,EAAgD,GAAA;KAAxC,MAAK;KAAiB,OAAM;;IACpC,EAES,UAFT,GAES,EADFA,EAAAA,GAAE,gBAAA,CAAA,EAAA,EAAA;IAET,EAgCgB,GAAA;KAhCD,WAAU;KAAU,OAAM;;sBAKY,CAJjD,EAIiD,GAAA;MAH7C,WAAU;MACT,MAAM,EAAA,EAAM,GAAA,kBAAA;MACZ,OAAO,EAAA,EAAM,GAAGA,EAAAA,GAAE,gBAAA,GAAoBA,EAAAA,GAAE,cAAA;MACxC,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,EAAI,CAAC,EAAA,OAAU,OAAO,QAAI,GAAA;qCACtC,EAyBa,GAAA,EAAA,EAxBD;;;;;MAKP,CAAA,CAAA,EAAA;MAKU,OAAK,QAIO;OAHnB,EAGmB,GAAA,EAHA,SAAO,GAAc,EAAA;yBACF,CAAlC,EAAkC,GAAA,EAA1B,MAAK,oBAAkB,CAAA,EAAA,EAAG,MAClC,EAAGA,EAAAA,GAAE,wBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;OAET,EAGmB,GAAA,EAHA,SAAO,GAAc,EAAA;yBACF,CAAlC,EAAkC,GAAA,EAA1B,MAAK,oBAAkB,CAAA,EAAA,EAAG,MAClC,EAAGA,EAAAA,GAAE,wBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;OAET,EAGmB,GAAA,EAHA,SAAO,GAAS,EAAA;yBACI,CAAnC,EAAmC,GAAA,EAA3B,MAAK,qBAAmB,CAAA,EAAA,EAAG,MACnC,EAAGA,EAAAA,GAAE,mBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;uBAZoB,CAHjC,EAGiC,GAAA;OAF7B,MAAK;OACL,WAAU;OACT,OAAOA,EAAAA,GAAE,cAAA;;;;;;OAkB1B,EAOM,OAPN,GAOM,CANF,EAEM,OAFN,GAEM,EADCA,EAAAA,GAAE,aAAA,CAAA,EAAA,EAAA,EAET,EAEQ,OAFR,GAEQ,EADJ,EAAA,OAAU,OAAO,KAAI,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { r as e } from "./rolldown-runtime-DHui2AQb.js";
2
2
  import { $ as t, Bt as n, E as r, Gt as i, V as a, _ as o, b as s, h as c, m as l, v as u, x as d, y as f, z as p } from "./vue.runtime.esm-bundler-BmggS4HU.js";
3
- import { n as m, o as h } from "./index.es-Z3Hu-QIb.js";
3
+ import { c as m, n as h } from "./index.es-BGFmj59S.js";
4
4
  //#region ../../packages/components/src/chat/PkToolShowMultipleChoice.vue?vue&type=script&setup=true&lang.ts
5
5
  var g = { class: "px-sm py-10 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3" }, _ = { class: "px-sm py-10" }, v = /* @__PURE__ */ r({
6
6
  __name: "PkToolShowMultipleChoice",
@@ -12,7 +12,7 @@ var g = { class: "px-sm py-10 font-bold bg-surface-1 text-12 border-b border-sur
12
12
  if (e) return typeof e == "string" ? e : e.label;
13
13
  }), C = o(() => b.value?.state || "unknown"), w = o(() => C.value === "input-available");
14
14
  return (e, r) => {
15
- let o = h, v = m;
15
+ let o = m, v = h;
16
16
  return x.value.length ? (p(), d("div", {
17
17
  key: C.value,
18
18
  class: "border border-surface-3 rounded-xl w-full overflow-hidden"
@@ -42,4 +42,4 @@ var g = { class: "px-sm py-10 font-bold bg-surface-1 text-12 border-b border-sur
42
42
  //#endregion
43
43
  export { y as n, b as t };
44
44
 
45
- //# sourceMappingURL=PkToolShowMultipleChoice-BEwiJCLu.js.map
45
+ //# sourceMappingURL=PkToolShowMultipleChoice-BLNTD2lK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkToolShowMultipleChoice-BEwiJCLu.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowMultipleChoice.vue","../../../../packages/components/src/chat/PkToolShowMultipleChoice.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n\n type LegacyOption = { id: string; label: string; value: string }\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const emit = defineEmits<{\n select: [option: string]\n }>()\n\n const toolPart = computed(() => {\n return JSON.parse(JSON.stringify(props.part)) as {\n state?: string\n toolCallId?: string\n input?: {\n question: string\n options: string[] | LegacyOption[]\n }\n output?: string | LegacyOption\n }\n })\n\n /** Normalize options to string[] (supports legacy { label } objects) */\n const normalizedOptions = computed(() => {\n return (toolPart.value?.input?.options ?? []).map((o) =>\n typeof o === 'string' ? o : o.label,\n )\n })\n\n /** Normalize output to string (supports legacy { label } objects) */\n const normalizedOutput = computed(() => {\n const out = toolPart.value?.output\n if (!out) {\n return undefined\n }\n return typeof out === 'string' ? out : out.label\n })\n\n const toolState = computed(() => {\n return toolPart.value?.state || 'unknown'\n })\n\n const isInteractive = computed(() => {\n return toolState.value === 'input-available'\n })\n</script>\n\n<template>\n <div\n v-if=\"normalizedOptions.length\"\n :key=\"toolState\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-10 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3\">\n {{ toolPart.input?.question }}\n </div>\n <div class=\"px-sm py-10\">\n <VvButtonGroup\n :key=\"normalizedOptions.length\"\n modifiers=\"vertical\"\n class=\"w-full\">\n <VvButton\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n modifiers=\"action-multiline\"\n class=\"whitespace-normal w-full\"\n :class=\"{\n pressed: option === normalizedOutput,\n }\"\n :disabled=\"!isInteractive\"\n :label=\"option\"\n @click.stop=\"emit('select', option)\" />\n </VvButtonGroup>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n\n type LegacyOption = { id: string; label: string; value: string }\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const emit = defineEmits<{\n select: [option: string]\n }>()\n\n const toolPart = computed(() => {\n return JSON.parse(JSON.stringify(props.part)) as {\n state?: string\n toolCallId?: string\n input?: {\n question: string\n options: string[] | LegacyOption[]\n }\n output?: string | LegacyOption\n }\n })\n\n /** Normalize options to string[] (supports legacy { label } objects) */\n const normalizedOptions = computed(() => {\n return (toolPart.value?.input?.options ?? []).map((o) =>\n typeof o === 'string' ? o : o.label,\n )\n })\n\n /** Normalize output to string (supports legacy { label } objects) */\n const normalizedOutput = computed(() => {\n const out = toolPart.value?.output\n if (!out) {\n return undefined\n }\n return typeof out === 'string' ? out : out.label\n })\n\n const toolState = computed(() => {\n return toolPart.value?.state || 'unknown'\n })\n\n const isInteractive = computed(() => {\n return toolState.value === 'input-available'\n })\n</script>\n\n<template>\n <div\n v-if=\"normalizedOptions.length\"\n :key=\"toolState\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-10 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3\">\n {{ toolPart.input?.question }}\n </div>\n <div class=\"px-sm py-10\">\n <VvButtonGroup\n :key=\"normalizedOptions.length\"\n modifiers=\"vertical\"\n class=\"w-full\">\n <VvButton\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n modifiers=\"action-multiline\"\n class=\"whitespace-normal w-full\"\n :class=\"{\n pressed: option === normalizedOutput,\n }\"\n :disabled=\"!isInteractive\"\n :label=\"option\"\n @click.stop=\"emit('select', option)\" />\n </VvButtonGroup>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;EAKI,IAAM,IAAQ,GAIR,IAAO,GAIP,IAAW,QACN,KAAK,MAAM,KAAK,UAAU,EAAM,KAAK,CAAC,CAShD,EAGK,IAAoB,SACd,EAAS,OAAO,OAAO,WAAW,EAAE,EAAE,KAAK,MAC/C,OAAO,KAAM,WAAW,IAAI,EAAE,MAClC,CACH,EAGK,IAAmB,QAAe;GACpC,IAAM,IAAM,EAAS,OAAO;AACvB,SAGL,QAAO,OAAO,KAAQ,WAAW,IAAM,EAAI;IAC9C,EAEK,IAAY,QACP,EAAS,OAAO,SAAS,UACnC,EAEK,IAAgB,QACX,EAAU,UAAU,kBAC9B;;;UAKS,EAAA,MAAkB,UAAA,GAAA,EAD5B,EA0BM,OAAA;IAxBD,KAAK,EAAA;IACN,OAAM;OACN,EAGM,OAHN,GAGM,EADC,EAAA,MAAS,OAAO,SAAQ,EAAA,EAAA,EAE/B,EAiBM,OAjBN,GAiBM,EAAA,GAAA,EAhBF,EAegB,GAAA;IAdX,KAAK,EAAA,MAAkB;IACxB,WAAU;IACV,OAAM;;qBAE0C,EAAA,EAAA,GAAA,EADhD,EAU2C,GAAA,MAAA,EATb,EAAA,QAAlB,GAAQ,YADpB,EAU2C,GAAA;KARtC,KAAK;KACN,WAAU;KACV,OAAK,EAAA,CAAC,4BAA0B,EAAA,SACW,MAAW,EAAA,OAAA,CAAA,CAAA;KAGrD,UAAQ,CAAG,EAAA;KACX,OAAO;KACP,SAAK,GAAA,MAAO,EAAI,UAAW,EAAM,EAAA,CAAA,OAAA,CAAA"}
1
+ {"version":3,"file":"PkToolShowMultipleChoice-BLNTD2lK.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowMultipleChoice.vue","../../../../packages/components/src/chat/PkToolShowMultipleChoice.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n\n type LegacyOption = { id: string; label: string; value: string }\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const emit = defineEmits<{\n select: [option: string]\n }>()\n\n const toolPart = computed(() => {\n return JSON.parse(JSON.stringify(props.part)) as {\n state?: string\n toolCallId?: string\n input?: {\n question: string\n options: string[] | LegacyOption[]\n }\n output?: string | LegacyOption\n }\n })\n\n /** Normalize options to string[] (supports legacy { label } objects) */\n const normalizedOptions = computed(() => {\n return (toolPart.value?.input?.options ?? []).map((o) =>\n typeof o === 'string' ? o : o.label,\n )\n })\n\n /** Normalize output to string (supports legacy { label } objects) */\n const normalizedOutput = computed(() => {\n const out = toolPart.value?.output\n if (!out) {\n return undefined\n }\n return typeof out === 'string' ? out : out.label\n })\n\n const toolState = computed(() => {\n return toolPart.value?.state || 'unknown'\n })\n\n const isInteractive = computed(() => {\n return toolState.value === 'input-available'\n })\n</script>\n\n<template>\n <div\n v-if=\"normalizedOptions.length\"\n :key=\"toolState\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-10 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3\">\n {{ toolPart.input?.question }}\n </div>\n <div class=\"px-sm py-10\">\n <VvButtonGroup\n :key=\"normalizedOptions.length\"\n modifiers=\"vertical\"\n class=\"w-full\">\n <VvButton\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n modifiers=\"action-multiline\"\n class=\"whitespace-normal w-full\"\n :class=\"{\n pressed: option === normalizedOutput,\n }\"\n :disabled=\"!isInteractive\"\n :label=\"option\"\n @click.stop=\"emit('select', option)\" />\n </VvButtonGroup>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n\n type LegacyOption = { id: string; label: string; value: string }\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const emit = defineEmits<{\n select: [option: string]\n }>()\n\n const toolPart = computed(() => {\n return JSON.parse(JSON.stringify(props.part)) as {\n state?: string\n toolCallId?: string\n input?: {\n question: string\n options: string[] | LegacyOption[]\n }\n output?: string | LegacyOption\n }\n })\n\n /** Normalize options to string[] (supports legacy { label } objects) */\n const normalizedOptions = computed(() => {\n return (toolPart.value?.input?.options ?? []).map((o) =>\n typeof o === 'string' ? o : o.label,\n )\n })\n\n /** Normalize output to string (supports legacy { label } objects) */\n const normalizedOutput = computed(() => {\n const out = toolPart.value?.output\n if (!out) {\n return undefined\n }\n return typeof out === 'string' ? out : out.label\n })\n\n const toolState = computed(() => {\n return toolPart.value?.state || 'unknown'\n })\n\n const isInteractive = computed(() => {\n return toolState.value === 'input-available'\n })\n</script>\n\n<template>\n <div\n v-if=\"normalizedOptions.length\"\n :key=\"toolState\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-10 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3\">\n {{ toolPart.input?.question }}\n </div>\n <div class=\"px-sm py-10\">\n <VvButtonGroup\n :key=\"normalizedOptions.length\"\n modifiers=\"vertical\"\n class=\"w-full\">\n <VvButton\n v-for=\"(option, index) in normalizedOptions\"\n :key=\"index\"\n modifiers=\"action-multiline\"\n class=\"whitespace-normal w-full\"\n :class=\"{\n pressed: option === normalizedOutput,\n }\"\n :disabled=\"!isInteractive\"\n :label=\"option\"\n @click.stop=\"emit('select', option)\" />\n </VvButtonGroup>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;EAKI,IAAM,IAAQ,GAIR,IAAO,GAIP,IAAW,QACN,KAAK,MAAM,KAAK,UAAU,EAAM,KAAK,CAAC,CAShD,EAGK,IAAoB,SACd,EAAS,OAAO,OAAO,WAAW,EAAE,EAAE,KAAK,MAC/C,OAAO,KAAM,WAAW,IAAI,EAAE,MAClC,CACH,EAGK,IAAmB,QAAe;GACpC,IAAM,IAAM,EAAS,OAAO;AACvB,SAGL,QAAO,OAAO,KAAQ,WAAW,IAAM,EAAI;IAC9C,EAEK,IAAY,QACP,EAAS,OAAO,SAAS,UACnC,EAEK,IAAgB,QACX,EAAU,UAAU,kBAC9B;;;UAKS,EAAA,MAAkB,UAAA,GAAA,EAD5B,EA0BM,OAAA;IAxBD,KAAK,EAAA;IACN,OAAM;OACN,EAGM,OAHN,GAGM,EADC,EAAA,MAAS,OAAO,SAAQ,EAAA,EAAA,EAE/B,EAiBM,OAjBN,GAiBM,EAAA,GAAA,EAhBF,EAegB,GAAA;IAdX,KAAK,EAAA,MAAkB;IACxB,WAAU;IACV,OAAM;;qBAE0C,EAAA,EAAA,GAAA,EADhD,EAU2C,GAAA,MAAA,EATb,EAAA,QAAlB,GAAQ,YADpB,EAU2C,GAAA;KARtC,KAAK;KACN,WAAU;KACV,OAAK,EAAA,CAAC,4BAA0B,EAAA,SACW,MAAW,EAAA,OAAA,CAAA,CAAA;KAGrD,UAAQ,CAAG,EAAA;KACX,OAAO;KACP,SAAK,GAAA,MAAO,EAAI,UAAW,EAAM,EAAA,CAAA,OAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { $ as e, Bt as t, E as n, Gt as r, V as i, W as a, _ as o, b as s, h as c, v as l, w as u, x as d, y as f, z as p } from "./vue.runtime.esm-bundler-BmggS4HU.js";
2
- import { i as m } from "./index.es-Z3Hu-QIb.js";
2
+ import { o as m } from "./index.es-BGFmj59S.js";
3
3
  import { t as h } from "./PkUrl-CI17WkYu.js";
4
4
  //#region ../../packages/components/src/chat/PkToolShowProductList.vue?vue&type=script&setup=true&lang.ts
5
5
  var g = {
@@ -63,4 +63,4 @@ var g = {
63
63
  //#endregion
64
64
  export { w as default };
65
65
 
66
- //# sourceMappingURL=PkToolShowProductList-D3Qe8yQM.js.map
66
+ //# sourceMappingURL=PkToolShowProductList-B4S5_m-f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkToolShowProductList-D3Qe8yQM.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowProductList.vue","../../../../packages/components/src/chat/PkToolShowProductList.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n products: Array<{\n name: string\n url?: string\n image?: string\n price?: string\n availability?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const getAvailabilityColor = (availability?: string) => {\n if (!availability) {\n return ''\n }\n const lower = availability.toLowerCase()\n if (\n lower.includes('in stock') ||\n lower.includes('available') ||\n lower.includes('disponibile')\n ) {\n return 'text-success'\n }\n if (\n lower.includes('out of stock') ||\n lower.includes('unavailable') ||\n lower.includes('non disponibile')\n ) {\n return 'text-danger'\n }\n if (\n lower.includes('limited') ||\n lower.includes('low stock') ||\n lower.includes('limitato')\n ) {\n return 'text-warning'\n }\n return 'text-word-3'\n }\n</script>\n\n<template>\n <ul\n v-if=\"toolPart?.input?.products?.length\"\n class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(product, index) in toolPart.input.products\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors\">\n <component\n :is=\"product.url ? 'a' : 'div'\"\n :href=\"product.url\"\n :target=\"product.url ? '_blank' : undefined\"\n :rel=\"product.url ? 'noopener noreferrer' : undefined\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"product.image\"\n :src=\"product.image\"\n :alt=\"product.name\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ product.name }}\n </strong>\n <span\n v-if=\"product.url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"product.url\" />\n </span>\n <div class=\"flex items-center gap-sm flex-wrap text-12\">\n <span\n v-if=\"product.price\"\n class=\"font-semibold text-word-1\">\n {{ product.price }}\n </span>\n <span\n v-if=\"product.availability\"\n class=\"text-10 font-medium\"\n :class=\"getAvailabilityColor(product.availability)\">\n {{ product.availability }}\n </span>\n </div>\n <p\n v-if=\"product.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ product.description }}\n </p>\n </div>\n </component>\n </li>\n </ul>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n products: Array<{\n name: string\n url?: string\n image?: string\n price?: string\n availability?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const getAvailabilityColor = (availability?: string) => {\n if (!availability) {\n return ''\n }\n const lower = availability.toLowerCase()\n if (\n lower.includes('in stock') ||\n lower.includes('available') ||\n lower.includes('disponibile')\n ) {\n return 'text-success'\n }\n if (\n lower.includes('out of stock') ||\n lower.includes('unavailable') ||\n lower.includes('non disponibile')\n ) {\n return 'text-danger'\n }\n if (\n lower.includes('limited') ||\n lower.includes('low stock') ||\n lower.includes('limitato')\n ) {\n return 'text-warning'\n }\n return 'text-word-3'\n }\n</script>\n\n<template>\n <ul\n v-if=\"toolPart?.input?.products?.length\"\n class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(product, index) in toolPart.input.products\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors\">\n <component\n :is=\"product.url ? 'a' : 'div'\"\n :href=\"product.url\"\n :target=\"product.url ? '_blank' : undefined\"\n :rel=\"product.url ? 'noopener noreferrer' : undefined\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"product.image\"\n :src=\"product.image\"\n :alt=\"product.name\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ product.name }}\n </strong>\n <span\n v-if=\"product.url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"product.url\" />\n </span>\n <div class=\"flex items-center gap-sm flex-wrap text-12\">\n <span\n v-if=\"product.price\"\n class=\"font-semibold text-word-1\">\n {{ product.price }}\n </span>\n <span\n v-if=\"product.availability\"\n class=\"text-10 font-medium\"\n :class=\"getAvailabilityColor(product.availability)\">\n {{ product.availability }}\n </span>\n </div>\n <p\n v-if=\"product.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ product.description }}\n </p>\n </div>\n </component>\n </li>\n </ul>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAII,IAAM,IAAQ,GAIR,IAAW,QACA,EAAM,KAatB,EAEK,KAAwB,MAA0B;AACpD,OAAI,CAAC,EACD,QAAO;GAEX,IAAM,IAAQ,EAAa,aAAY;AAsBvC,UApBI,EAAM,SAAS,WAAW,IAC1B,EAAM,SAAS,YAAY,IAC3B,EAAM,SAAS,cAAa,GAErB,iBAGP,EAAM,SAAS,eAAe,IAC9B,EAAM,SAAS,cAAc,IAC7B,EAAM,SAAS,kBAAiB,GAEzB,gBAGP,EAAM,SAAS,UAAU,IACzB,EAAM,SAAS,YAAY,IAC3B,EAAM,SAAS,WAAU,GAElB,iBAEJ;;;;UAMD,EAAA,OAAU,OAAO,UAAU,UAAA,GAAA,EADrC,EAiDK,MAjDL,GAiDK,EAAA,EAAA,GAAA,EA9CD,EA6CK,GAAA,MAAA,EA5C0B,EAAA,MAAS,MAAM,WAAlC,GAAS,YADrB,EA6CK,MAAA;IA3CA,KAAK;IACN,OAAM;aACN,EAwCY,EAvCH,EAAQ,MAAG,MAAA,MAAA,EAAA;IACf,MAAM,EAAQ;IACd,QAAQ,EAAQ,MAAG,WAAc,KAAA;IACjC,KAAK,EAAQ,MAAG,wBAA2B,KAAA;IAC5C,OAAM;;qBAKqF,CAHjF,EAAQ,SAAA,GAAA,EADlB,EAI2F,OAAA;;KAFtF,KAAK,EAAQ;KACb,KAAK,EAAQ;KACd,OAAM;iCACV,EA4BM,OA5BN,GA4BM;KA3BF,EAES,UAFT,GAES,EADF,EAAQ,KAAI,EAAA,EAAA;KAGT,EAAQ,OAAA,GAAA,EADlB,EAKO,QALP,GAKO,CAFH,EAAkD,GAAA;MAA1C,MAAK;MAAU,OAAM;SAC7B,EAA4B,GAAA,EAApB,KAAK,EAAQ,KAAA,EAAA,MAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA;KAEzB,EAYM,OAZN,GAYM,CAVQ,EAAQ,SAAA,GAAA,EADlB,EAIO,QAJP,GAIO,EADA,EAAQ,MAAK,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,EAGV,EAAQ,gBAAA,GAAA,EADlB,EAKO,QAAA;;MAHH,OAAK,EAAA,CAAC,uBACE,EAAqB,EAAQ,aAAY,CAAA,CAAA;UAC9C,EAAQ,aAAY,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA;KAIrB,EAAQ,eAAA,GAAA,EADlB,EAII,KAJJ,GAII,EADG,EAAQ,YAAW,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA"}
1
+ {"version":3,"file":"PkToolShowProductList-B4S5_m-f.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowProductList.vue","../../../../packages/components/src/chat/PkToolShowProductList.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n products: Array<{\n name: string\n url?: string\n image?: string\n price?: string\n availability?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const getAvailabilityColor = (availability?: string) => {\n if (!availability) {\n return ''\n }\n const lower = availability.toLowerCase()\n if (\n lower.includes('in stock') ||\n lower.includes('available') ||\n lower.includes('disponibile')\n ) {\n return 'text-success'\n }\n if (\n lower.includes('out of stock') ||\n lower.includes('unavailable') ||\n lower.includes('non disponibile')\n ) {\n return 'text-danger'\n }\n if (\n lower.includes('limited') ||\n lower.includes('low stock') ||\n lower.includes('limitato')\n ) {\n return 'text-warning'\n }\n return 'text-word-3'\n }\n</script>\n\n<template>\n <ul\n v-if=\"toolPart?.input?.products?.length\"\n class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(product, index) in toolPart.input.products\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors\">\n <component\n :is=\"product.url ? 'a' : 'div'\"\n :href=\"product.url\"\n :target=\"product.url ? '_blank' : undefined\"\n :rel=\"product.url ? 'noopener noreferrer' : undefined\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"product.image\"\n :src=\"product.image\"\n :alt=\"product.name\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ product.name }}\n </strong>\n <span\n v-if=\"product.url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"product.url\" />\n </span>\n <div class=\"flex items-center gap-sm flex-wrap text-12\">\n <span\n v-if=\"product.price\"\n class=\"font-semibold text-word-1\">\n {{ product.price }}\n </span>\n <span\n v-if=\"product.availability\"\n class=\"text-10 font-medium\"\n :class=\"getAvailabilityColor(product.availability)\">\n {{ product.availability }}\n </span>\n </div>\n <p\n v-if=\"product.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ product.description }}\n </p>\n </div>\n </component>\n </li>\n </ul>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n products: Array<{\n name: string\n url?: string\n image?: string\n price?: string\n availability?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const getAvailabilityColor = (availability?: string) => {\n if (!availability) {\n return ''\n }\n const lower = availability.toLowerCase()\n if (\n lower.includes('in stock') ||\n lower.includes('available') ||\n lower.includes('disponibile')\n ) {\n return 'text-success'\n }\n if (\n lower.includes('out of stock') ||\n lower.includes('unavailable') ||\n lower.includes('non disponibile')\n ) {\n return 'text-danger'\n }\n if (\n lower.includes('limited') ||\n lower.includes('low stock') ||\n lower.includes('limitato')\n ) {\n return 'text-warning'\n }\n return 'text-word-3'\n }\n</script>\n\n<template>\n <ul\n v-if=\"toolPart?.input?.products?.length\"\n class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(product, index) in toolPart.input.products\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors\">\n <component\n :is=\"product.url ? 'a' : 'div'\"\n :href=\"product.url\"\n :target=\"product.url ? '_blank' : undefined\"\n :rel=\"product.url ? 'noopener noreferrer' : undefined\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"product.image\"\n :src=\"product.image\"\n :alt=\"product.name\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ product.name }}\n </strong>\n <span\n v-if=\"product.url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"product.url\" />\n </span>\n <div class=\"flex items-center gap-sm flex-wrap text-12\">\n <span\n v-if=\"product.price\"\n class=\"font-semibold text-word-1\">\n {{ product.price }}\n </span>\n <span\n v-if=\"product.availability\"\n class=\"text-10 font-medium\"\n :class=\"getAvailabilityColor(product.availability)\">\n {{ product.availability }}\n </span>\n </div>\n <p\n v-if=\"product.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ product.description }}\n </p>\n </div>\n </component>\n </li>\n </ul>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAII,IAAM,IAAQ,GAIR,IAAW,QACA,EAAM,KAatB,EAEK,KAAwB,MAA0B;AACpD,OAAI,CAAC,EACD,QAAO;GAEX,IAAM,IAAQ,EAAa,aAAY;AAsBvC,UApBI,EAAM,SAAS,WAAW,IAC1B,EAAM,SAAS,YAAY,IAC3B,EAAM,SAAS,cAAa,GAErB,iBAGP,EAAM,SAAS,eAAe,IAC9B,EAAM,SAAS,cAAc,IAC7B,EAAM,SAAS,kBAAiB,GAEzB,gBAGP,EAAM,SAAS,UAAU,IACzB,EAAM,SAAS,YAAY,IAC3B,EAAM,SAAS,WAAU,GAElB,iBAEJ;;;;UAMD,EAAA,OAAU,OAAO,UAAU,UAAA,GAAA,EADrC,EAiDK,MAjDL,GAiDK,EAAA,EAAA,GAAA,EA9CD,EA6CK,GAAA,MAAA,EA5C0B,EAAA,MAAS,MAAM,WAAlC,GAAS,YADrB,EA6CK,MAAA;IA3CA,KAAK;IACN,OAAM;aACN,EAwCY,EAvCH,EAAQ,MAAG,MAAA,MAAA,EAAA;IACf,MAAM,EAAQ;IACd,QAAQ,EAAQ,MAAG,WAAc,KAAA;IACjC,KAAK,EAAQ,MAAG,wBAA2B,KAAA;IAC5C,OAAM;;qBAKqF,CAHjF,EAAQ,SAAA,GAAA,EADlB,EAI2F,OAAA;;KAFtF,KAAK,EAAQ;KACb,KAAK,EAAQ;KACd,OAAM;iCACV,EA4BM,OA5BN,GA4BM;KA3BF,EAES,UAFT,GAES,EADF,EAAQ,KAAI,EAAA,EAAA;KAGT,EAAQ,OAAA,GAAA,EADlB,EAKO,QALP,GAKO,CAFH,EAAkD,GAAA;MAA1C,MAAK;MAAU,OAAM;SAC7B,EAA4B,GAAA,EAApB,KAAK,EAAQ,KAAA,EAAA,MAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA;KAEzB,EAYM,OAZN,GAYM,CAVQ,EAAQ,SAAA,GAAA,EADlB,EAIO,QAJP,GAIO,EADA,EAAQ,MAAK,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,EAGV,EAAQ,gBAAA,GAAA,EADlB,EAKO,QAAA;;MAHH,OAAK,EAAA,CAAC,uBACE,EAAqB,EAAQ,aAAY,CAAA,CAAA;UAC9C,EAAQ,aAAY,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA;KAIrB,EAAQ,eAAA,GAAA,EADlB,EAII,KAJJ,GAII,EADG,EAAQ,YAAW,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA"}
@@ -1,6 +1,6 @@
1
1
  import { $ as e, E as t, Gt as n, L as r, _ as i, b as a, ft as o, v as s, w as c, x as l, yt as u, z as d } from "./vue.runtime.esm-bundler-BmggS4HU.js";
2
2
  import { i as f } from "./dist-DtF6poRc.js";
3
- import { i as p, n as m, o as h } from "./index.es-Z3Hu-QIb.js";
3
+ import { c as p, n as m, o as h } from "./index.es-BGFmj59S.js";
4
4
  //#region ../../packages/components/src/chat/PkToolShowQrCode.vue?vue&type=script&setup=true&lang.ts
5
5
  var g = {
6
6
  key: 0,
@@ -32,7 +32,7 @@ var g = {
32
32
  }, o.src = r;
33
33
  };
34
34
  return (t, r) => {
35
- let i = p, o = h, f = m;
35
+ let i = h, o = p, f = m;
36
36
  return T.value?.input ? (d(), l("div", g, [s("div", _, [
37
37
  c(i, {
38
38
  name: "ri:qr-code-line",
@@ -68,4 +68,4 @@ var g = {
68
68
  //#endregion
69
69
  export { S as default };
70
70
 
71
- //# sourceMappingURL=PkToolShowQrCode-B64sdI0N.js.map
71
+ //# sourceMappingURL=PkToolShowQrCode-BVZlzYDq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkToolShowQrCode-B64sdI0N.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowQrCode.vue","../../../../packages/components/src/chat/PkToolShowQrCode.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref, onMounted } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n content: string\n label?: string\n }\n }\n return part\n })\n\n const svgContent = ref('')\n const qrContainerRef = ref<HTMLElement>()\n\n onMounted(async () => {\n const content = toolPart.value.input?.content\n if (!content) {\n return\n }\n const { default: QRCode } = await import('qrcode')\n svgContent.value = await QRCode.toString(content, { type: 'svg' })\n })\n\n const downloadQr = async () => {\n const svgEl = qrContainerRef.value?.querySelector('svg')\n if (!svgEl) {\n return\n }\n const svgData = new XMLSerializer().serializeToString(svgEl)\n const svgBlob = new Blob([svgData], {\n type: 'image/svg+xml;charset=utf-8',\n })\n const svgUrl = URL.createObjectURL(svgBlob)\n\n const canvas = document.createElement('canvas')\n canvas.width = 512\n canvas.height = 512\n const ctx = canvas.getContext('2d')\n const img = new Image()\n img.onload = () => {\n ctx?.drawImage(img, 0, 0, 512, 512)\n URL.revokeObjectURL(svgUrl)\n const a = document.createElement('a')\n a.href = canvas.toDataURL('image/png')\n a.download = 'qrcode.png'\n a.click()\n }\n img.src = svgUrl\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:qr-code-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.qrCode') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.content ?? '')\" />\n <VvButton\n modifiers=\"action-quiet-small\"\n icon=\"ri:download-line\"\n :label=\"$t('action.download')\"\n @click=\"downloadQr\" />\n </VvButtonGroup>\n </div>\n <div class=\"p-sm flex flex-col items-center\">\n <div ref=\"qrContainerRef\" class=\"w-144 h-144\" v-html=\"svgContent\" />\n <p\n v-if=\"toolPart.input.label\"\n class=\"text-12 text-word-3 text-center\">\n {{ toolPart.input.label }}\n </p>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, onMounted } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n content: string\n label?: string\n }\n }\n return part\n })\n\n const svgContent = ref('')\n const qrContainerRef = ref<HTMLElement>()\n\n onMounted(async () => {\n const content = toolPart.value.input?.content\n if (!content) {\n return\n }\n const { default: QRCode } = await import('qrcode')\n svgContent.value = await QRCode.toString(content, { type: 'svg' })\n })\n\n const downloadQr = async () => {\n const svgEl = qrContainerRef.value?.querySelector('svg')\n if (!svgEl) {\n return\n }\n const svgData = new XMLSerializer().serializeToString(svgEl)\n const svgBlob = new Blob([svgData], {\n type: 'image/svg+xml;charset=utf-8',\n })\n const svgUrl = URL.createObjectURL(svgBlob)\n\n const canvas = document.createElement('canvas')\n canvas.width = 512\n canvas.height = 512\n const ctx = canvas.getContext('2d')\n const img = new Image()\n img.onload = () => {\n ctx?.drawImage(img, 0, 0, 512, 512)\n URL.revokeObjectURL(svgUrl)\n const a = document.createElement('a')\n a.href = canvas.toDataURL('image/png')\n a.download = 'qrcode.png'\n a.click()\n }\n img.src = svgUrl\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:qr-code-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.qrCode') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.content ?? '')\" />\n <VvButton\n modifiers=\"action-quiet-small\"\n icon=\"ri:download-line\"\n :label=\"$t('action.download')\"\n @click=\"downloadQr\" />\n </VvButtonGroup>\n </div>\n <div class=\"p-sm flex flex-col items-center\">\n <div ref=\"qrContainerRef\" class=\"w-144 h-144\" v-html=\"svgContent\" />\n <p\n v-if=\"toolPart.input.label\"\n class=\"text-12 text-word-3 text-center\">\n {{ toolPart.input.label }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAII,IAAM,IAAQ,GAIR,EAAE,SAAM,cAAW,GAAa,EAEhC,IAAW,QACA,EAAM,KAOtB,EAEK,IAAa,EAAI,GAAE,EACnB,IAAiB,GAAiB;AAExC,IAAU,YAAY;GAClB,IAAM,IAAU,EAAS,MAAM,OAAO;AACtC,OAAI,CAAC,EACD;GAEJ,IAAM,EAAE,SAAS,MAAW,MAAM,OAAO;AACzC,KAAW,QAAQ,MAAM,EAAO,SAAS,GAAS,EAAE,MAAM,OAAO,CAAA;IACpE;EAED,IAAM,IAAa,YAAY;GAC3B,IAAM,IAAQ,EAAe,OAAO,cAAc,MAAK;AACvD,OAAI,CAAC,EACD;GAEJ,IAAM,IAAU,IAAI,eAAe,CAAC,kBAAkB,EAAK,EACrD,IAAU,IAAI,KAAK,CAAC,EAAQ,EAAE,EAChC,MAAM,+BACT,CAAA,EACK,IAAS,IAAI,gBAAgB,EAAO,EAEpC,IAAS,SAAS,cAAc,SAAQ;AAE9C,GADA,EAAO,QAAQ,KACf,EAAO,SAAS;GAChB,IAAM,IAAM,EAAO,WAAW,KAAI,EAC5B,IAAM,IAAI,OAAM;AAStB,GARA,EAAI,eAAe;AAEf,IADA,GAAK,UAAU,GAAK,GAAG,GAAG,KAAK,IAAG,EAClC,IAAI,gBAAgB,EAAM;IAC1B,IAAM,IAAI,SAAS,cAAc,IAAG;AAGpC,IAFA,EAAE,OAAO,EAAO,UAAU,YAAW,EACrC,EAAE,WAAW,cACb,EAAE,OAAM;MAEZ,EAAI,MAAM;;;;UAMJ,EAAA,OAAU,SAAA,GAAA,EADpB,EA4BM,OA5BN,GA4BM,CAzBF,EAgBM,OAhBN,GAgBM;IAdF,EAAiD,GAAA;KAAzC,MAAK;KAAkB,OAAM;;IACrC,EAA2D,UAA3D,GAA2D,EAA9BA,EAAAA,GAAE,eAAA,CAAA,EAAA,EAAA;IAC/B,EAWgB,GAAA;KAXD,WAAU;KAAU,OAAM;;sBAKe,CAJpD,EAIoD,GAAA;MAHhD,WAAU;MACT,MAAM,EAAA,EAAM,GAAA,kBAAA;MACZ,OAAO,EAAA,EAAM,GAAGA,EAAAA,GAAE,gBAAA,GAAoBA,EAAAA,GAAE,cAAA;MACxC,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,EAAI,CAAC,EAAA,OAAU,OAAO,WAAO,GAAA;qCACzC,EAI0B,GAAA;MAHtB,WAAU;MACV,MAAK;MACJ,OAAOA,EAAAA,GAAE,kBAAA;MACT,SAAO;;;;OAGpB,EAOM,OAPN,GAOM,CANF,EAAoE,OAAA;aAA3D;IAAJ,KAAI;IAAiB,OAAM;IAAc,WAAQ,EAAA;mBAE5C,EAAA,MAAS,MAAM,SAAA,GAAA,EADzB,EAII,KAJJ,GAII,EADG,EAAA,MAAS,MAAM,MAAK,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA"}
1
+ {"version":3,"file":"PkToolShowQrCode-BVZlzYDq.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowQrCode.vue","../../../../packages/components/src/chat/PkToolShowQrCode.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref, onMounted } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n content: string\n label?: string\n }\n }\n return part\n })\n\n const svgContent = ref('')\n const qrContainerRef = ref<HTMLElement>()\n\n onMounted(async () => {\n const content = toolPart.value.input?.content\n if (!content) {\n return\n }\n const { default: QRCode } = await import('qrcode')\n svgContent.value = await QRCode.toString(content, { type: 'svg' })\n })\n\n const downloadQr = async () => {\n const svgEl = qrContainerRef.value?.querySelector('svg')\n if (!svgEl) {\n return\n }\n const svgData = new XMLSerializer().serializeToString(svgEl)\n const svgBlob = new Blob([svgData], {\n type: 'image/svg+xml;charset=utf-8',\n })\n const svgUrl = URL.createObjectURL(svgBlob)\n\n const canvas = document.createElement('canvas')\n canvas.width = 512\n canvas.height = 512\n const ctx = canvas.getContext('2d')\n const img = new Image()\n img.onload = () => {\n ctx?.drawImage(img, 0, 0, 512, 512)\n URL.revokeObjectURL(svgUrl)\n const a = document.createElement('a')\n a.href = canvas.toDataURL('image/png')\n a.download = 'qrcode.png'\n a.click()\n }\n img.src = svgUrl\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:qr-code-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.qrCode') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.content ?? '')\" />\n <VvButton\n modifiers=\"action-quiet-small\"\n icon=\"ri:download-line\"\n :label=\"$t('action.download')\"\n @click=\"downloadQr\" />\n </VvButtonGroup>\n </div>\n <div class=\"p-sm flex flex-col items-center\">\n <div ref=\"qrContainerRef\" class=\"w-144 h-144\" v-html=\"svgContent\" />\n <p\n v-if=\"toolPart.input.label\"\n class=\"text-12 text-word-3 text-center\">\n {{ toolPart.input.label }}\n </p>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, onMounted } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n content: string\n label?: string\n }\n }\n return part\n })\n\n const svgContent = ref('')\n const qrContainerRef = ref<HTMLElement>()\n\n onMounted(async () => {\n const content = toolPart.value.input?.content\n if (!content) {\n return\n }\n const { default: QRCode } = await import('qrcode')\n svgContent.value = await QRCode.toString(content, { type: 'svg' })\n })\n\n const downloadQr = async () => {\n const svgEl = qrContainerRef.value?.querySelector('svg')\n if (!svgEl) {\n return\n }\n const svgData = new XMLSerializer().serializeToString(svgEl)\n const svgBlob = new Blob([svgData], {\n type: 'image/svg+xml;charset=utf-8',\n })\n const svgUrl = URL.createObjectURL(svgBlob)\n\n const canvas = document.createElement('canvas')\n canvas.width = 512\n canvas.height = 512\n const ctx = canvas.getContext('2d')\n const img = new Image()\n img.onload = () => {\n ctx?.drawImage(img, 0, 0, 512, 512)\n URL.revokeObjectURL(svgUrl)\n const a = document.createElement('a')\n a.href = canvas.toDataURL('image/png')\n a.download = 'qrcode.png'\n a.click()\n }\n img.src = svgUrl\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:qr-code-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.qrCode') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.content ?? '')\" />\n <VvButton\n modifiers=\"action-quiet-small\"\n icon=\"ri:download-line\"\n :label=\"$t('action.download')\"\n @click=\"downloadQr\" />\n </VvButtonGroup>\n </div>\n <div class=\"p-sm flex flex-col items-center\">\n <div ref=\"qrContainerRef\" class=\"w-144 h-144\" v-html=\"svgContent\" />\n <p\n v-if=\"toolPart.input.label\"\n class=\"text-12 text-word-3 text-center\">\n {{ toolPart.input.label }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAII,IAAM,IAAQ,GAIR,EAAE,SAAM,cAAW,GAAa,EAEhC,IAAW,QACA,EAAM,KAOtB,EAEK,IAAa,EAAI,GAAE,EACnB,IAAiB,GAAiB;AAExC,IAAU,YAAY;GAClB,IAAM,IAAU,EAAS,MAAM,OAAO;AACtC,OAAI,CAAC,EACD;GAEJ,IAAM,EAAE,SAAS,MAAW,MAAM,OAAO;AACzC,KAAW,QAAQ,MAAM,EAAO,SAAS,GAAS,EAAE,MAAM,OAAO,CAAA;IACpE;EAED,IAAM,IAAa,YAAY;GAC3B,IAAM,IAAQ,EAAe,OAAO,cAAc,MAAK;AACvD,OAAI,CAAC,EACD;GAEJ,IAAM,IAAU,IAAI,eAAe,CAAC,kBAAkB,EAAK,EACrD,IAAU,IAAI,KAAK,CAAC,EAAQ,EAAE,EAChC,MAAM,+BACT,CAAA,EACK,IAAS,IAAI,gBAAgB,EAAO,EAEpC,IAAS,SAAS,cAAc,SAAQ;AAE9C,GADA,EAAO,QAAQ,KACf,EAAO,SAAS;GAChB,IAAM,IAAM,EAAO,WAAW,KAAI,EAC5B,IAAM,IAAI,OAAM;AAStB,GARA,EAAI,eAAe;AAEf,IADA,GAAK,UAAU,GAAK,GAAG,GAAG,KAAK,IAAG,EAClC,IAAI,gBAAgB,EAAM;IAC1B,IAAM,IAAI,SAAS,cAAc,IAAG;AAGpC,IAFA,EAAE,OAAO,EAAO,UAAU,YAAW,EACrC,EAAE,WAAW,cACb,EAAE,OAAM;MAEZ,EAAI,MAAM;;;;UAMJ,EAAA,OAAU,SAAA,GAAA,EADpB,EA4BM,OA5BN,GA4BM,CAzBF,EAgBM,OAhBN,GAgBM;IAdF,EAAiD,GAAA;KAAzC,MAAK;KAAkB,OAAM;;IACrC,EAA2D,UAA3D,GAA2D,EAA9BA,EAAAA,GAAE,eAAA,CAAA,EAAA,EAAA;IAC/B,EAWgB,GAAA;KAXD,WAAU;KAAU,OAAM;;sBAKe,CAJpD,EAIoD,GAAA;MAHhD,WAAU;MACT,MAAM,EAAA,EAAM,GAAA,kBAAA;MACZ,OAAO,EAAA,EAAM,GAAGA,EAAAA,GAAE,gBAAA,GAAoBA,EAAAA,GAAE,cAAA;MACxC,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,EAAI,CAAC,EAAA,OAAU,OAAO,WAAO,GAAA;qCACzC,EAI0B,GAAA;MAHtB,WAAU;MACV,MAAK;MACJ,OAAOA,EAAAA,GAAE,kBAAA;MACT,SAAO;;;;OAGpB,EAOM,OAPN,GAOM,CANF,EAAoE,OAAA;aAA3D;IAAJ,KAAI;IAAiB,OAAM;IAAc,WAAQ,EAAA;mBAE5C,EAAA,MAAS,MAAM,SAAA,GAAA,EADzB,EAII,KAJJ,GAII,EADG,EAAA,MAAS,MAAM,MAAK,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA"}
@@ -1,6 +1,6 @@
1
1
  import { r as e } from "./rolldown-runtime-DHui2AQb.js";
2
2
  import { $ as t, Bt as n, C as r, E as i, Gt as a, V as o, _ as s, b as c, ft as l, h as u, n as ee, ut as d, v as f, w as p, x as m, y as h, yt as g, z as _ } from "./vue.runtime.esm-bundler-BmggS4HU.js";
3
- import { i as v } from "./index.es-Z3Hu-QIb.js";
3
+ import { o as v } from "./index.es-BGFmj59S.js";
4
4
  import { a as y, b, c as x, d as S, g as C, m as w, n as T, o as E, p as D, s as O, t as k, v as A, w as j, x as M, y as N } from "./schemas-Bp3a8tYV.js";
5
5
  import { d as P } from "./src-C_wl-KYN.js";
6
6
  import { t as F } from "./PkStreamingMarkdown-orhL2kzD.js";
@@ -502,4 +502,4 @@ var ae = (e) => {
502
502
  //#endregion
503
503
  export { B as a, K as i, je as n, z as o, W as r, I as s, $ as t };
504
504
 
505
- //# sourceMappingURL=PkToolShowSources-B2rf94fU.js.map
505
+ //# sourceMappingURL=PkToolShowSources-BQo5DRwt.js.map