@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.
- package/README.md +62 -15
- package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js → PkToolShowArtifact-c_vCWUpQ.js} +2 -2
- package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js.map → PkToolShowArtifact-c_vCWUpQ.js.map} +1 -1
- package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js → PkToolShowCalendarEvent-D2VHu1V3.js} +3 -3
- package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js.map → PkToolShowCalendarEvent-D2VHu1V3.js.map} +1 -1
- package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js → PkToolShowComparison-C2ZUH0w4.js} +3 -3
- package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js.map → PkToolShowComparison-C2ZUH0w4.js.map} +1 -1
- package/dist/_chunks/{PkToolShowContactForm-SmOSbCsp.js → PkToolShowContactForm-6C4uWDtf.js} +3 -3
- package/dist/_chunks/{PkToolShowContactForm-SmOSbCsp.js.map → PkToolShowContactForm-6C4uWDtf.js.map} +1 -1
- package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js → PkToolShowEmail-BuyCHUU5.js} +3 -3
- package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js.map → PkToolShowEmail-BuyCHUU5.js.map} +1 -1
- package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js → PkToolShowImageGallery-ByldZ0nj.js} +2 -2
- package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js.map → PkToolShowImageGallery-ByldZ0nj.js.map} +1 -1
- package/dist/_chunks/{PkToolShowLocation-US6u26ra.js → PkToolShowLocation-BCFnC5c7.js} +3 -3
- package/dist/_chunks/{PkToolShowLocation-US6u26ra.js.map → PkToolShowLocation-BCFnC5c7.js.map} +1 -1
- package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js → PkToolShowMessage-6Bsfi3BC.js} +3 -3
- package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js.map → PkToolShowMessage-6Bsfi3BC.js.map} +1 -1
- package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js → PkToolShowMultipleChoice-BLNTD2lK.js} +3 -3
- package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js.map → PkToolShowMultipleChoice-BLNTD2lK.js.map} +1 -1
- package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js → PkToolShowProductList-B4S5_m-f.js} +2 -2
- package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js.map → PkToolShowProductList-B4S5_m-f.js.map} +1 -1
- package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js → PkToolShowQrCode-BVZlzYDq.js} +3 -3
- package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js.map → PkToolShowQrCode-BVZlzYDq.js.map} +1 -1
- package/dist/_chunks/{PkToolShowSources-B2rf94fU.js → PkToolShowSources-BQo5DRwt.js} +2 -2
- package/dist/_chunks/{PkToolShowSources-B2rf94fU.js.map → PkToolShowSources-BQo5DRwt.js.map} +1 -1
- package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js → PkToolShowSuggestedReply-BxDI6yp_.js} +2 -2
- package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js.map → PkToolShowSuggestedReply-BxDI6yp_.js.map} +1 -1
- package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js → PkToolShowWeather-DR6egBIP.js} +3 -3
- package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js.map → PkToolShowWeather-DR6egBIP.js.map} +1 -1
- package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js → PkToolShowWebPages-D8RngE-F.js} +2 -2
- package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js.map → PkToolShowWebPages-D8RngE-F.js.map} +1 -1
- package/dist/_chunks/{index.es-Z3Hu-QIb.js → index.es-BGFmj59S.js} +2429 -1559
- package/dist/_chunks/{index.es-Z3Hu-QIb.js.map → index.es-BGFmj59S.js.map} +1 -1
- package/dist/ai-elements.es.js +2908 -2711
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotFeedbackForm.js +1 -1
- package/dist-vue/PkChatbotFilePreview.js +1 -1
- package/dist-vue/PkChatbotInput.js +1 -1
- package/dist-vue/PkChatbotMessages.js +1 -1
- package/dist-vue/PkChatbotViewChat.js +1 -1
- package/dist-vue/PkChatbotViewConversations.js +1 -1
- package/dist-vue/PkChatbotViewProfile.js +1 -1
- package/dist-vue/_chunks/PkChatbot-woRkjgP5.js +190 -0
- package/dist-vue/_chunks/{PkChatbot-D5_ytfqS.js.map → PkChatbot-woRkjgP5.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js → PkChatbotFeedbackForm-D-lx1URv.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js.map → PkChatbotFeedbackForm-D-lx1URv.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js → PkChatbotFilePreview-DHzuGtz5.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js.map → PkChatbotFilePreview-DHzuGtz5.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js → PkChatbotInput-LHE0HZ9z.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js.map → PkChatbotInput-LHE0HZ9z.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotMessages-CMLqkhmb.js → PkChatbotMessages-BxTeEm3j.js} +15 -15
- package/dist-vue/_chunks/{PkChatbotMessages-CMLqkhmb.js.map → PkChatbotMessages-BxTeEm3j.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js → PkChatbotViewChat-BoEfZeco.js} +9 -9
- package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js.map → PkChatbotViewChat-BoEfZeco.js.map} +1 -1
- package/dist-vue/_chunks/PkChatbotViewConversations-DvVc1arX.js +163 -0
- package/dist-vue/_chunks/PkChatbotViewConversations-DvVc1arX.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js → PkChatbotViewProfile-Dev_6pki.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js.map → PkChatbotViewProfile-Dev_6pki.js.map} +1 -1
- package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js → PkRelativeTime-WZ2aPcp_.js} +1 -1
- package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js.map → PkRelativeTime-WZ2aPcp_.js.map} +1 -1
- package/dist-vue/_chunks/{PkStreamingMarkdown-CtiMH6FD.js → PkStreamingMarkdown-B4gnJ4hk.js} +1 -1
- package/dist-vue/_chunks/{PkStreamingMarkdown-CtiMH6FD.js.map → PkStreamingMarkdown-B4gnJ4hk.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js → PkToolShowArtifact-EvbUZSOf.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js.map → PkToolShowArtifact-EvbUZSOf.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js → PkToolShowContactForm-CsDOqSJK.js} +3 -3
- package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js.map → PkToolShowContactForm-CsDOqSJK.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js → PkToolShowImageGallery-B7Bt6ZGv.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js.map → PkToolShowImageGallery-B7Bt6ZGv.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js → PkToolShowLocation-DteWf0Cs.js} +1 -1
- package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js.map → PkToolShowLocation-DteWf0Cs.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js → PkToolShowMultipleChoice-DZXfWtQp.js} +1 -1
- package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js.map → PkToolShowMultipleChoice-DZXfWtQp.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js → PkToolShowProductList-CtqWK0x4.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js.map → PkToolShowProductList-CtqWK0x4.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowSources-D5cBZxwQ.js → PkToolShowSources-ZtXFkIHt.js} +3 -3
- package/dist-vue/_chunks/{PkToolShowSources-D5cBZxwQ.js.map → PkToolShowSources-ZtXFkIHt.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js → PkToolShowSuggestedReply-30m9yWDL.js} +1 -1
- package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js.map → PkToolShowSuggestedReply-30m9yWDL.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js → PkToolShowWebPages-DZIdrdWs.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js.map → PkToolShowWebPages-DZIdrdWs.js.map} +1 -1
- package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js → PkUrl-CGbSBfuP.js} +1 -1
- package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js.map → PkUrl-CGbSBfuP.js.map} +1 -1
- package/dist-vue/_chunks/{createChatbotApiClient-2ynLWELM.js → createChatbotApiClient-YJegM3ni.js} +140 -118
- package/dist-vue/_chunks/createChatbotApiClient-YJegM3ni.js.map +1 -0
- package/dist-vue/_chunks/{dist-Bs6dYy7x.js → dist-21vPGg1O.js} +3 -3
- package/dist-vue/_chunks/{dist-Bs6dYy7x.js.map → dist-21vPGg1O.js.map} +1 -1
- package/dist-vue/_chunks/{dist-Bb1zRSg4.js → dist-BGXTbYew2.js} +4 -4
- package/dist-vue/_chunks/dist-BGXTbYew2.js.map +1 -0
- package/dist-vue/_chunks/{dist-BrlD3co0.js → dist-BL9cumqH.js} +2 -2
- package/dist-vue/_chunks/{dist-BrlD3co0.js.map → dist-BL9cumqH.js.map} +1 -1
- package/dist-vue/_chunks/{dist-B9Pw4_a5.js → dist-BU-VgsYM.js} +3 -3
- package/dist-vue/_chunks/{dist-B9Pw4_a5.js.map → dist-BU-VgsYM.js.map} +1 -1
- package/dist-vue/_chunks/{dist-D-tjAaHK.js → dist-BU5m1pTR.js} +3 -3
- package/dist-vue/_chunks/{dist-D-tjAaHK.js.map → dist-BU5m1pTR.js.map} +1 -1
- package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js → dist-BbP2I_Or.js} +2 -2
- package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js.map → dist-BbP2I_Or.js.map} +1 -1
- package/dist-vue/_chunks/{dist-Cvsv0YEw.js → dist-BvmTki6w.js} +3 -3
- package/dist-vue/_chunks/{dist-Cvsv0YEw.js.map → dist-BvmTki6w.js.map} +1 -1
- package/dist-vue/_chunks/{dist-QzbLuLIV.js → dist-C3dPzENq.js} +3 -3
- package/dist-vue/_chunks/{dist-QzbLuLIV.js.map → dist-C3dPzENq.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BMWOJZqC.js → dist-C6AWJq9a.js} +2 -2
- package/dist-vue/_chunks/{dist-BMWOJZqC.js.map → dist-C6AWJq9a.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BQCdUoYc.js → dist-CGNGkvWf.js} +4 -4
- package/dist-vue/_chunks/{dist-BQCdUoYc.js.map → dist-CGNGkvWf.js.map} +1 -1
- package/dist-vue/_chunks/{dist-JOgG1zY3.js → dist-CIN_Avbm.js} +1 -1
- package/dist-vue/_chunks/{dist-JOgG1zY3.js.map → dist-CIN_Avbm.js.map} +1 -1
- package/dist-vue/_chunks/{dist-NKG-Bt-Q.js → dist-CePpgudw.js} +3 -3
- package/dist-vue/_chunks/{dist-NKG-Bt-Q.js.map → dist-CePpgudw.js.map} +1 -1
- package/dist-vue/_chunks/{dist-C13mHkC-.js → dist-CtMo7ig_.js} +2 -2
- package/dist-vue/_chunks/{dist-C13mHkC-.js.map → dist-CtMo7ig_.js.map} +1 -1
- package/dist-vue/_chunks/{dist-DucfoJQX.js → dist-CwG072cD.js} +3 -3
- package/dist-vue/_chunks/{dist-DucfoJQX.js.map → dist-CwG072cD.js.map} +1 -1
- package/dist-vue/_chunks/{dist-_4yQQX_L.js → dist-DFvVVU0-.js} +2 -2
- package/dist-vue/_chunks/{dist-_4yQQX_L.js.map → dist-DFvVVU0-.js.map} +1 -1
- package/dist-vue/_chunks/{dist-C_tRbeXQ.js → dist-DGz57kzK.js} +2 -2
- package/dist-vue/_chunks/{dist-C_tRbeXQ.js.map → dist-DGz57kzK.js.map} +1 -1
- package/dist-vue/_chunks/{dist-C2tC3pDh.js → dist-DT30Xa-D.js} +2 -2
- package/dist-vue/_chunks/{dist-C2tC3pDh.js.map → dist-DT30Xa-D.js.map} +1 -1
- package/dist-vue/_chunks/{dist-DNn7FqmI.js → dist-DoRhRpjL.js} +2 -2
- package/dist-vue/_chunks/{dist-DNn7FqmI.js.map → dist-DoRhRpjL.js.map} +1 -1
- package/dist-vue/_chunks/{dist-CQmgfFIN.js → dist-GnhLE5-A.js} +4 -4
- package/dist-vue/_chunks/{dist-CQmgfFIN.js.map → dist-GnhLE5-A.js.map} +1 -1
- package/dist-vue/_chunks/{dist-1ToEz3Zq.js → dist-QzWOn2Kx.js} +3 -3
- package/dist-vue/_chunks/{dist-1ToEz3Zq.js.map → dist-QzWOn2Kx.js.map} +1 -1
- package/dist-vue/_chunks/{dist-e9UFeG14.js → dist-uYEYs0EJ.js} +2 -2
- package/dist-vue/_chunks/{dist-e9UFeG14.js.map → dist-uYEYs0EJ.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BpT8aqtS.js → dist-ukeBjdwq.js} +4 -4
- package/dist-vue/_chunks/{dist-BpT8aqtS.js.map → dist-ukeBjdwq.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BHTSdHeX.js → dist-wLB8N32T.js} +3 -3
- package/dist-vue/_chunks/{dist-BHTSdHeX.js.map → dist-wLB8N32T.js.map} +1 -1
- package/dist-vue/_chunks/{index.es-BnOT0fHY.js → index.es-CrPSzhoZ.js} +1 -1
- package/dist-vue/_chunks/{index.es-BnOT0fHY.js.map → index.es-CrPSzhoZ.js.map} +1 -1
- package/dist-vue/_chunks/{useChatbotStore-Im8Xjwte.js → useChatbotStore-DGL81KJa.js} +720 -704
- package/dist-vue/_chunks/{useChatbotStore-Im8Xjwte.js.map → useChatbotStore-DGL81KJa.js.map} +1 -1
- package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js → useLightbox-1sB7fmFb.js} +1 -1
- package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js.map → useLightbox-1sB7fmFb.js.map} +1 -1
- package/dist-vue/_chunks/{utils-DO7emdsn.js → utils-BegUBK7s.js} +1 -1
- package/dist-vue/_chunks/{utils-DO7emdsn.js.map → utils-BegUBK7s.js.map} +1 -1
- package/dist-vue/api.js +1 -1
- package/dist-vue/apps/web-component/src/composables/useChatbotAgent.d.ts +3 -1
- package/dist-vue/composables.js +3 -3
- package/dist-vue/index.js +3552 -3512
- package/dist-vue/index.js.map +1 -1
- package/dist-vue/locales.js +56 -20
- package/dist-vue/packages/components/src/PkEditorPrompt.d.ts +2 -0
- package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +6 -3
- package/dist-vue/packages/components/src/chat/PkEditorChannels.d.ts +16 -0
- package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +2 -0
- package/dist-vue/packages/models/src/schema/Agent.d.ts +10 -0
- package/dist-vue/packages/models/src/schema/Chat.d.ts +6 -0
- package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +3 -1
- package/dist-vue/packages/models/src/schema/SubAgent.d.ts +3 -1
- package/dist-vue/style.css +1 -1
- package/package.json +1 -1
- package/dist-vue/_chunks/PkChatbot-D5_ytfqS.js +0 -190
- package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js +0 -40
- package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js.map +0 -1
- package/dist-vue/_chunks/createChatbotApiClient-2ynLWELM.js.map +0 -1
- 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 {
|
|
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 =
|
|
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-
|
|
75
|
+
//# sourceMappingURL=PkToolShowMessage-6Bsfi3BC.js.map
|
package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js.map → PkToolShowMessage-6Bsfi3BC.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowMessage-
|
|
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"}
|
package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js → PkToolShowMultipleChoice-BLNTD2lK.js}
RENAMED
|
@@ -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 {
|
|
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 =
|
|
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-
|
|
45
|
+
//# sourceMappingURL=PkToolShowMultipleChoice-BLNTD2lK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowMultipleChoice-
|
|
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"}
|
package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js → PkToolShowProductList-B4S5_m-f.js}
RENAMED
|
@@ -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 {
|
|
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-
|
|
66
|
+
//# sourceMappingURL=PkToolShowProductList-B4S5_m-f.js.map
|
package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js.map → PkToolShowProductList-B4S5_m-f.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowProductList-
|
|
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 {
|
|
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 =
|
|
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-
|
|
71
|
+
//# sourceMappingURL=PkToolShowQrCode-BVZlzYDq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowQrCode-
|
|
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 {
|
|
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-
|
|
505
|
+
//# sourceMappingURL=PkToolShowSources-BQo5DRwt.js.map
|