@8wave/ai-elements 0.69.0 → 0.70.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 +30 -5
- package/dist/_chunks/{PkStreamingMarkdown-C0BpOvli.js → PkStreamingMarkdown-CCD_gifi.js} +2 -2
- package/dist/_chunks/{PkStreamingMarkdown-C0BpOvli.js.map → PkStreamingMarkdown-CCD_gifi.js.map} +1 -1
- package/dist/_chunks/{PkToolShowArtifact-DzNIkKvZ.js → PkToolShowArtifact-BZ9-wuXH.js} +12 -11
- package/dist/_chunks/PkToolShowArtifact-BZ9-wuXH.js.map +1 -0
- package/dist/_chunks/{PkToolShowCalendarEvent-Dolb7MTf.js → PkToolShowCalendarEvent-BFHzjM9E.js} +2 -2
- package/dist/_chunks/{PkToolShowCalendarEvent-Dolb7MTf.js.map → PkToolShowCalendarEvent-BFHzjM9E.js.map} +1 -1
- package/dist/_chunks/{PkToolShowComparison-BWwQPM6d.js → PkToolShowComparison-D-cY7yXE.js} +1 -1
- package/dist/_chunks/{PkToolShowComparison-BWwQPM6d.js.map → PkToolShowComparison-D-cY7yXE.js.map} +1 -1
- package/dist/_chunks/PkToolShowContactForm-B5Zuup-c.js +2 -0
- package/dist/_chunks/PkToolShowContactForm-izy_eJOv.js +1102 -0
- package/dist/_chunks/PkToolShowContactForm-izy_eJOv.js.map +1 -0
- package/dist/_chunks/{PkToolShowEmail-BrBJY7Op.js → PkToolShowEmail-BhGdH4Ig.js} +1 -1
- package/dist/_chunks/{PkToolShowEmail-BrBJY7Op.js.map → PkToolShowEmail-BhGdH4Ig.js.map} +1 -1
- package/dist/_chunks/{PkToolShowImageGallery-dnCkJaK8.js → PkToolShowImageGallery-CiN2M02m.js} +3 -3
- package/dist/_chunks/{PkToolShowImageGallery-dnCkJaK8.js.map → PkToolShowImageGallery-CiN2M02m.js.map} +1 -1
- package/dist/_chunks/PkToolShowLocation-CbaF2oBf.js +2 -0
- package/dist/_chunks/PkToolShowLocation-gQtxMrSM.js +4996 -0
- package/dist/_chunks/PkToolShowLocation-gQtxMrSM.js.map +1 -0
- package/dist/_chunks/{PkToolShowMessage-D0hwYIlo.js → PkToolShowMessage-5Luc042T.js} +1 -1
- package/dist/_chunks/{PkToolShowMessage-D0hwYIlo.js.map → PkToolShowMessage-5Luc042T.js.map} +1 -1
- package/dist/_chunks/PkToolShowMultipleChoice-DgfLPaKE.js +2 -0
- package/dist/_chunks/PkToolShowMultipleChoice-WBsP83PW.js +44 -0
- package/dist/_chunks/PkToolShowMultipleChoice-WBsP83PW.js.map +1 -0
- package/dist/_chunks/{PkToolShowProductList-C-t2Q6vG.js → PkToolShowProductList-BSLTdM8w.js} +2 -2
- package/dist/_chunks/{PkToolShowProductList-C-t2Q6vG.js.map → PkToolShowProductList-BSLTdM8w.js.map} +1 -1
- package/dist/_chunks/{PkToolShowQrCode-pX-2NQ0q.js → PkToolShowQrCode-DLSOtaV9.js} +1 -1
- package/dist/_chunks/{PkToolShowQrCode-pX-2NQ0q.js.map → PkToolShowQrCode-DLSOtaV9.js.map} +1 -1
- package/dist/_chunks/PkToolShowSources-BZyYFWu6.js +490 -0
- package/dist/_chunks/PkToolShowSources-BZyYFWu6.js.map +1 -0
- package/dist/_chunks/PkToolShowSources-C0Edf43F.js +2 -0
- package/dist/_chunks/PkToolShowSuggestedReply-CMIWzymE.js +2 -0
- package/dist/_chunks/PkToolShowSuggestedReply-PyXHjIMg.js +40 -0
- package/dist/_chunks/PkToolShowSuggestedReply-PyXHjIMg.js.map +1 -0
- package/dist/_chunks/{PkToolShowWeather-BlxQ4-di.js → PkToolShowWeather-BmB6I1CQ.js} +1 -1
- package/dist/_chunks/{PkToolShowWeather-BlxQ4-di.js.map → PkToolShowWeather-BmB6I1CQ.js.map} +1 -1
- package/dist/_chunks/{PkToolShowWebPages-CflGTyAq.js → PkToolShowWebPages-BQEuy2SB.js} +3 -3
- package/dist/_chunks/{PkToolShowWebPages-CflGTyAq.js.map → PkToolShowWebPages-BQEuy2SB.js.map} +1 -1
- package/dist/_chunks/{PkUrl-BiCK2gUF.js → PkUrl-DbCzf0TH.js} +5 -8
- package/dist/_chunks/{PkUrl-BiCK2gUF.js.map → PkUrl-DbCzf0TH.js.map} +1 -1
- package/dist/_chunks/{VvCheckbox.es-BB__5AQf.js → VvCheckbox.es-xoDP7xfG.js} +1 -1
- package/dist/_chunks/{VvCheckbox.es-BB__5AQf.js.map → VvCheckbox.es-xoDP7xfG.js.map} +1 -1
- package/dist/_chunks/{VvCheckboxGroup.es-B8vNssFt.js → VvCheckboxGroup.es-CqmkSf32.js} +1 -1
- package/dist/_chunks/{VvCheckboxGroup.es-B8vNssFt.js.map → VvCheckboxGroup.es-CqmkSf32.js.map} +1 -1
- package/dist/_chunks/{VvCombobox.es-B3EXD0qk.js → VvCombobox.es-8c5A9J7u.js} +1 -1
- package/dist/_chunks/{VvCombobox.es-B3EXD0qk.js.map → VvCombobox.es-8c5A9J7u.js.map} +1 -1
- package/dist/_chunks/{VvInputText.es-Dz2nJhHg.js → VvInputText.es-C3DasKVI.js} +1 -1
- package/dist/_chunks/{VvInputText.es-Dz2nJhHg.js.map → VvInputText.es-C3DasKVI.js.map} +1 -1
- package/dist/_chunks/{VvRadio.es-CBNUR8-A.js → VvRadio.es-DWCbGLSw.js} +1 -1
- package/dist/_chunks/{VvRadio.es-CBNUR8-A.js.map → VvRadio.es-DWCbGLSw.js.map} +1 -1
- package/dist/_chunks/{VvRadioGroup.es-C3cxLQie.js → VvRadioGroup.es-DeZPOSLg.js} +1 -1
- package/dist/_chunks/{VvRadioGroup.es-C3cxLQie.js.map → VvRadioGroup.es-DeZPOSLg.js.map} +1 -1
- package/dist/_chunks/{VvSelect.es-DhnVYyFM.js → VvSelect.es-Cbdxv0hL.js} +1 -1
- package/dist/_chunks/{VvSelect.es-DhnVYyFM.js.map → VvSelect.es-Cbdxv0hL.js.map} +1 -1
- package/dist/_chunks/{VvTextarea.es-CqwOOwHn.js → VvTextarea.es-G6PqQj_w.js} +1 -1
- package/dist/_chunks/{VvTextarea.es-CqwOOwHn.js.map → VvTextarea.es-G6PqQj_w.js.map} +1 -1
- package/dist/_chunks/_plugin-vue_export-helper-C6kC663S.js +8 -0
- package/dist/_chunks/marker-icon-2x-B5zK5Qr3.js +7 -0
- package/dist/_chunks/marker-icon-2x-B5zK5Qr3.js.map +1 -0
- package/dist/_chunks/marker-icon-C9YVKiza.js +7 -0
- package/dist/_chunks/marker-icon-C9YVKiza.js.map +1 -0
- package/dist/_chunks/marker-shadow-C69K8Z1K.js +7 -0
- package/dist/_chunks/marker-shadow-C69K8Z1K.js.map +1 -0
- package/dist/_chunks/schemas-BzxsvNFR.js +3117 -0
- package/dist/_chunks/schemas-BzxsvNFR.js.map +1 -0
- package/dist/_chunks/{src-BRYn66N3.js → src-B7wQQMx2.js} +1 -1
- package/dist/_chunks/{src-BRYn66N3.js.map → src-B7wQQMx2.js.map} +1 -1
- package/dist/_chunks/{useLightbox-RmU8z981.js → useLightbox-krdR1Z0n.js} +2 -2
- package/dist/_chunks/{useLightbox-RmU8z981.js.map → useLightbox-krdR1Z0n.js.map} +1 -1
- package/dist/ai-elements.es.js +7433 -12095
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotError.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/Media-COOsOMMv.js +120 -0
- package/dist-vue/_chunks/Media-COOsOMMv.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbot-Cy7p5UI_.js → PkChatbot-h7EIb9Y5.js} +61 -60
- package/dist-vue/_chunks/{PkChatbot-Cy7p5UI_.js.map → PkChatbot-h7EIb9Y5.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotError-DOkNTDsc.js → PkChatbotError-CBQaRNse.js} +1 -1
- package/dist-vue/_chunks/{PkChatbotError-DOkNTDsc.js.map → PkChatbotError-CBQaRNse.js.map} +1 -1
- package/dist-vue/_chunks/PkChatbotFeedbackForm-C5QLJeUc.js +91 -0
- package/dist-vue/_chunks/PkChatbotFeedbackForm-C5QLJeUc.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotFilePreview-zHYZ0F7j.js → PkChatbotFilePreview-0ow1cjom.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotFilePreview-zHYZ0F7j.js.map → PkChatbotFilePreview-0ow1cjom.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotInput-CXydKByS.js → PkChatbotInput-DjUU_5_9.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotInput-CXydKByS.js.map → PkChatbotInput-DjUU_5_9.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotMessages-C7-ZtU0-.js → PkChatbotMessages-DJngZXIX.js} +130 -121
- package/dist-vue/_chunks/PkChatbotMessages-DJngZXIX.js.map +1 -0
- package/dist-vue/_chunks/PkChatbotViewChat-LdHOe19w.js +246 -0
- package/dist-vue/_chunks/PkChatbotViewChat-LdHOe19w.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotViewConversations-Ct0TbDrg.js → PkChatbotViewConversations-BAU8tPTf.js} +4 -4
- package/dist-vue/_chunks/{PkChatbotViewConversations-Ct0TbDrg.js.map → PkChatbotViewConversations-BAU8tPTf.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewProfile-BhdCxVSX.js → PkChatbotViewProfile-B_TpBkAf.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewProfile-BhdCxVSX.js.map → PkChatbotViewProfile-B_TpBkAf.js.map} +1 -1
- package/dist-vue/_chunks/{PkRelativeTime-Bzh37jv5.js → PkRelativeTime-ivIkVQRR.js} +1 -1
- package/dist-vue/_chunks/{PkRelativeTime-Bzh37jv5.js.map → PkRelativeTime-ivIkVQRR.js.map} +1 -1
- package/dist-vue/_chunks/{PkStreamingMarkdown-C-XHB63C.js → PkStreamingMarkdown-CGEZEVZF.js} +2 -2
- package/dist-vue/_chunks/{PkStreamingMarkdown-C-XHB63C.js.map → PkStreamingMarkdown-CGEZEVZF.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowArtifact-pTS7wzhw.js → PkToolShowArtifact-D1PnI-E1.js} +14 -13
- package/dist-vue/_chunks/PkToolShowArtifact-D1PnI-E1.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowCalendarEvent-DQ--fzwb.js → PkToolShowCalendarEvent-HiRf_hSv.js} +3 -3
- package/dist-vue/_chunks/{PkToolShowCalendarEvent-DQ--fzwb.js.map → PkToolShowCalendarEvent-HiRf_hSv.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowComparison-CzRUrjbP.js → PkToolShowComparison-Bll3lc1g.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowComparison-CzRUrjbP.js.map → PkToolShowComparison-Bll3lc1g.js.map} +1 -1
- package/dist-vue/_chunks/PkToolShowContactForm-DQDXyNco.js +130 -0
- package/dist-vue/_chunks/PkToolShowContactForm-DQDXyNco.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowEmail-htn0ivwY.js → PkToolShowEmail-DzYBtaIE.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowEmail-htn0ivwY.js.map → PkToolShowEmail-DzYBtaIE.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowImageGallery-CpU183SC.js → PkToolShowImageGallery-BQtLChsM.js} +4 -4
- package/dist-vue/_chunks/{PkToolShowImageGallery-CpU183SC.js.map → PkToolShowImageGallery-BQtLChsM.js.map} +1 -1
- package/dist-vue/_chunks/PkToolShowLocation-CaG0Txb6.js +148 -0
- package/dist-vue/_chunks/PkToolShowLocation-CaG0Txb6.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowMessage-DtGDm3pq.js → PkToolShowMessage-C4os87fJ.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowMessage-DtGDm3pq.js.map → PkToolShowMessage-C4os87fJ.js.map} +1 -1
- package/dist-vue/_chunks/PkToolShowMultipleChoice-DB5ZvvhS.js +45 -0
- package/dist-vue/_chunks/PkToolShowMultipleChoice-DB5ZvvhS.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowProductList-BlkUdbtV.js → PkToolShowProductList-BR14mmfl.js} +3 -3
- package/dist-vue/_chunks/{PkToolShowProductList-BlkUdbtV.js.map → PkToolShowProductList-BR14mmfl.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowQrCode-BUyhM_MN.js → PkToolShowQrCode-CTfDrItd.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowQrCode-BUyhM_MN.js.map → PkToolShowQrCode-CTfDrItd.js.map} +1 -1
- package/dist-vue/_chunks/PkToolShowSources-B_UfP0QT.js +377 -0
- package/dist-vue/_chunks/PkToolShowSources-B_UfP0QT.js.map +1 -0
- package/dist-vue/_chunks/PkToolShowSuggestedReply-BVa6p4DJ.js +40 -0
- package/dist-vue/_chunks/PkToolShowSuggestedReply-BVa6p4DJ.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowWeather-iAV7Hn_J.js → PkToolShowWeather-D3MyAnH4.js} +1 -1
- package/dist-vue/_chunks/{PkToolShowWeather-iAV7Hn_J.js.map → PkToolShowWeather-D3MyAnH4.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowWebPages-BQp9A4vb.js → PkToolShowWebPages-0pwK7psA.js} +4 -4
- package/dist-vue/_chunks/{PkToolShowWebPages-BQp9A4vb.js.map → PkToolShowWebPages-0pwK7psA.js.map} +1 -1
- package/dist-vue/_chunks/{PkUrl-C9annqfF.js → PkUrl-tuHTaGCy.js} +1 -1
- package/dist-vue/_chunks/{PkUrl-C9annqfF.js.map → PkUrl-tuHTaGCy.js.map} +1 -1
- package/dist-vue/_chunks/{ZodError-B3AvmUCJ.js → ZodError-DkVfTODd.js} +1 -1
- package/dist-vue/_chunks/{ZodError-B3AvmUCJ.js.map → ZodError-DkVfTODd.js.map} +1 -1
- package/dist-vue/_chunks/{apl-Bkqrrr3v.js → apl-j-tvtpTP.js} +1 -1
- package/dist-vue/_chunks/{apl-Bkqrrr3v.js.map → apl-j-tvtpTP.js.map} +1 -1
- package/dist-vue/_chunks/{asciiarmor-DMBg7NdB.js → asciiarmor-JNKKTtQt.js} +1 -1
- package/dist-vue/_chunks/{asciiarmor-DMBg7NdB.js.map → asciiarmor-JNKKTtQt.js.map} +1 -1
- package/dist-vue/_chunks/{asn1-WRfjxqL1.js → asn1-DBQ_amwa.js} +1 -1
- package/dist-vue/_chunks/{asn1-WRfjxqL1.js.map → asn1-DBQ_amwa.js.map} +1 -1
- package/dist-vue/_chunks/{asterisk-DYv-EHWB.js → asterisk-Di3iYNR-.js} +1 -1
- package/dist-vue/_chunks/{asterisk-DYv-EHWB.js.map → asterisk-Di3iYNR-.js.map} +1 -1
- package/dist-vue/_chunks/{brainfuck-hzOnKOH7.js → brainfuck-D8mwwQut.js} +1 -1
- package/dist-vue/_chunks/{brainfuck-hzOnKOH7.js.map → brainfuck-D8mwwQut.js.map} +1 -1
- package/dist-vue/_chunks/{clike-r66wHNGT.js → clike-I6ihTsJ5.js} +1 -1
- package/dist-vue/_chunks/{clike-r66wHNGT.js.map → clike-I6ihTsJ5.js.map} +1 -1
- package/dist-vue/_chunks/{clojure-BDb_WsAm.js → clojure-CGENQS-R.js} +1 -1
- package/dist-vue/_chunks/{clojure-BDb_WsAm.js.map → clojure-CGENQS-R.js.map} +1 -1
- package/dist-vue/_chunks/{cmake-Curqstum.js → cmake-D2jqXHLk.js} +1 -1
- package/dist-vue/_chunks/{cmake-Curqstum.js.map → cmake-D2jqXHLk.js.map} +1 -1
- package/dist-vue/_chunks/{cobol-BAx4MdII.js → cobol-Db3IHNru.js} +1 -1
- package/dist-vue/_chunks/{cobol-BAx4MdII.js.map → cobol-Db3IHNru.js.map} +1 -1
- package/dist-vue/_chunks/{coffeescript-jbcF4nR3.js → coffeescript-B4Rd3RcP.js} +1 -1
- package/dist-vue/_chunks/{coffeescript-jbcF4nR3.js.map → coffeescript-B4Rd3RcP.js.map} +1 -1
- package/dist-vue/_chunks/{commonlisp-BXKJxcTF.js → commonlisp-B-ehiawF.js} +1 -1
- package/dist-vue/_chunks/{commonlisp-BXKJxcTF.js.map → commonlisp-B-ehiawF.js.map} +1 -1
- package/dist-vue/_chunks/createChatbotApiClient-C520OTrB.js +521 -0
- package/dist-vue/_chunks/createChatbotApiClient-C520OTrB.js.map +1 -0
- package/dist-vue/_chunks/{crystal-Dq4io9oq.js → crystal-Bj2fwY3J.js} +1 -1
- package/dist-vue/_chunks/{crystal-Dq4io9oq.js.map → crystal-Bj2fwY3J.js.map} +1 -1
- package/dist-vue/_chunks/{css-Bd9Y1kSi.js → css-CDqbdUZS.js} +1 -1
- package/dist-vue/_chunks/{css-Bd9Y1kSi.js.map → css-CDqbdUZS.js.map} +1 -1
- package/dist-vue/_chunks/{cypher-D14rILSd.js → cypher-BPgl78lW.js} +1 -1
- package/dist-vue/_chunks/{cypher-D14rILSd.js.map → cypher-BPgl78lW.js.map} +1 -1
- package/dist-vue/_chunks/{d-B-E6YUkN.js → d-_9PAw1JO.js} +1 -1
- package/dist-vue/_chunks/{d-B-E6YUkN.js.map → d-_9PAw1JO.js.map} +1 -1
- package/dist-vue/_chunks/{diff-BPPcQvHC.js → diff-C_qwk3ek.js} +1 -1
- package/dist-vue/_chunks/{diff-BPPcQvHC.js.map → diff-C_qwk3ek.js.map} +1 -1
- package/dist-vue/_chunks/{dist-CJYiwDlx.js → dist-2RCoY9yL.js} +2 -2
- package/dist-vue/_chunks/{dist-CJYiwDlx.js.map → dist-2RCoY9yL.js.map} +1 -1
- package/dist-vue/_chunks/{dist-DEe8jwtO.js → dist-B504iqq4.js} +3 -3
- package/dist-vue/_chunks/{dist-DEe8jwtO.js.map → dist-B504iqq4.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BHuX2VvC.js → dist-BbACD7ZF.js} +3 -3
- package/dist-vue/_chunks/{dist-BHuX2VvC.js.map → dist-BbACD7ZF.js.map} +1 -1
- package/dist-vue/_chunks/{dist-Bh5Q6aSI2.js → dist-BfWfkbOA.js} +2 -2
- package/dist-vue/_chunks/dist-BfWfkbOA.js.map +1 -0
- package/dist-vue/_chunks/{dist-Qq_6SbFF.js → dist-BnR5Kl9J.js} +3 -3
- package/dist-vue/_chunks/{dist-Qq_6SbFF.js.map → dist-BnR5Kl9J.js.map} +1 -1
- package/dist-vue/_chunks/{dist-KPI2eL8F.js → dist-Bx_jrcne.js} +2 -2
- package/dist-vue/_chunks/{dist-KPI2eL8F.js.map → dist-Bx_jrcne.js.map} +1 -1
- package/dist-vue/_chunks/{dist-CAXUIcdd.js → dist-C4DKJxXu.js} +4 -4
- package/dist-vue/_chunks/{dist-CAXUIcdd.js.map → dist-C4DKJxXu.js.map} +1 -1
- package/dist-vue/_chunks/{dist-CAZOa5qs2.js → dist-C9oRomIQ.js} +3 -3
- package/dist-vue/_chunks/dist-C9oRomIQ.js.map +1 -0
- package/dist-vue/_chunks/{dist-DfEAZDKB.js → dist-COvC03Xx.js} +3 -3
- package/dist-vue/_chunks/{dist-DfEAZDKB.js.map → dist-COvC03Xx.js.map} +1 -1
- package/dist-vue/_chunks/{dist-D-VT7gvP.js → dist-CwB_dFae.js} +3 -3
- package/dist-vue/_chunks/{dist-D-VT7gvP.js.map → dist-CwB_dFae.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BaIe783A.js → dist-Cz8slHpf.js} +2 -2
- package/dist-vue/_chunks/{dist-BaIe783A.js.map → dist-Cz8slHpf.js.map} +1 -1
- package/dist-vue/_chunks/{dist-DV82RztV.js → dist-D-G-983p.js} +3 -3
- package/dist-vue/_chunks/{dist-DV82RztV.js.map → dist-D-G-983p.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BNLIqE7O.js → dist-DGsr6BFK.js} +2 -2
- package/dist-vue/_chunks/{dist-BNLIqE7O.js.map → dist-DGsr6BFK.js.map} +1 -1
- package/dist-vue/_chunks/{dist-DMP9Xsk0.js → dist-DJFxbNlz.js} +2 -2
- package/dist-vue/_chunks/{dist-DMP9Xsk0.js.map → dist-DJFxbNlz.js.map} +1 -1
- package/dist-vue/_chunks/{dist-bUGhZmKp.js → dist-DKeYnhzh.js} +5 -5
- package/dist-vue/_chunks/{dist-bUGhZmKp.js.map → dist-DKeYnhzh.js.map} +1 -1
- package/dist-vue/_chunks/{dist--mE2E_mM.js → dist-DL84m6GA.js} +1 -1
- package/dist-vue/_chunks/{dist--mE2E_mM.js.map → dist-DL84m6GA.js.map} +1 -1
- package/dist-vue/_chunks/{dist-QbFF3eM_.js → dist-DS-IY-lt.js} +4 -4
- package/dist-vue/_chunks/{dist-QbFF3eM_.js.map → dist-DS-IY-lt.js.map} +1 -1
- package/dist-vue/_chunks/{dist-s_XUA-aw.js → dist-DZloX6N0.js} +3 -3
- package/dist-vue/_chunks/{dist-s_XUA-aw.js.map → dist-DZloX6N0.js.map} +1 -1
- package/dist-vue/_chunks/{dist-jVwgEJDw.js → dist-DapfuoOT.js} +3 -3
- package/dist-vue/_chunks/{dist-jVwgEJDw.js.map → dist-DapfuoOT.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BWXfA4NS.js → dist-DmUxIVrQ.js} +5 -5
- package/dist-vue/_chunks/{dist-BWXfA4NS.js.map → dist-DmUxIVrQ.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BQRG0D3Y.js → dist-LX3EryGA.js} +2 -2
- package/dist-vue/_chunks/{dist-BQRG0D3Y.js.map → dist-LX3EryGA.js.map} +1 -1
- package/dist-vue/_chunks/{dist-afJW4ohP2.js → dist-Z_cFz9nA.js} +2 -2
- package/dist-vue/_chunks/dist-Z_cFz9nA.js.map +1 -0
- package/dist-vue/_chunks/{dist-DVM_p-M1.js → dist-mJVylhvZ.js} +4 -4
- package/dist-vue/_chunks/{dist-DVM_p-M1.js.map → dist-mJVylhvZ.js.map} +1 -1
- package/dist-vue/_chunks/{dockerfile-CGxYmrOo.js → dockerfile-nMSg2tXY.js} +2 -2
- package/dist-vue/_chunks/{dockerfile-CGxYmrOo.js.map → dockerfile-nMSg2tXY.js.map} +1 -1
- package/dist-vue/_chunks/{dtd-ztbg9nev.js → dtd-BhtRjlzo.js} +1 -1
- package/dist-vue/_chunks/{dtd-ztbg9nev.js.map → dtd-BhtRjlzo.js.map} +1 -1
- package/dist-vue/_chunks/{dylan-Do2p-AA-.js → dylan-DyLL0Sxl.js} +1 -1
- package/dist-vue/_chunks/{dylan-Do2p-AA-.js.map → dylan-DyLL0Sxl.js.map} +1 -1
- package/dist-vue/_chunks/{ebnf-ChJPn51D.js → ebnf-DcBh-k1T.js} +1 -1
- package/dist-vue/_chunks/{ebnf-ChJPn51D.js.map → ebnf-DcBh-k1T.js.map} +1 -1
- package/dist-vue/_chunks/{ecl-ztl4D9j5.js → ecl-C-A1gGx7.js} +1 -1
- package/dist-vue/_chunks/{ecl-ztl4D9j5.js.map → ecl-C-A1gGx7.js.map} +1 -1
- package/dist-vue/_chunks/{eiffel-BYAAf3D8.js → eiffel-DwgfvIBI.js} +1 -1
- package/dist-vue/_chunks/{eiffel-BYAAf3D8.js.map → eiffel-DwgfvIBI.js.map} +1 -1
- package/dist-vue/_chunks/{elm-DFquGUxW.js → elm-RPF69bOV.js} +1 -1
- package/dist-vue/_chunks/{elm-DFquGUxW.js.map → elm-RPF69bOV.js.map} +1 -1
- package/dist-vue/_chunks/{erlang-BIndT8-8.js → erlang-BvNh96Ir.js} +1 -1
- package/dist-vue/_chunks/{erlang-BIndT8-8.js.map → erlang-BvNh96Ir.js.map} +1 -1
- package/dist-vue/_chunks/{factor-DqGzyyvS.js → factor-B_mOIxzF.js} +2 -2
- package/dist-vue/_chunks/{factor-DqGzyyvS.js.map → factor-B_mOIxzF.js.map} +1 -1
- package/dist-vue/_chunks/{fcl-MTt_AC1b.js → fcl-C9ulsEA4.js} +1 -1
- package/dist-vue/_chunks/{fcl-MTt_AC1b.js.map → fcl-C9ulsEA4.js.map} +1 -1
- package/dist-vue/_chunks/{forth-BPoSoJYE.js → forth-CFaZGhGS.js} +1 -1
- package/dist-vue/_chunks/{forth-BPoSoJYE.js.map → forth-CFaZGhGS.js.map} +1 -1
- package/dist-vue/_chunks/{fortran-BmHZEBN4.js → fortran-Cjm6fEBu.js} +1 -1
- package/dist-vue/_chunks/{fortran-BmHZEBN4.js.map → fortran-Cjm6fEBu.js.map} +1 -1
- package/dist-vue/_chunks/{gas-7ZHFSr9Y.js → gas-C3adNyJH.js} +1 -1
- package/dist-vue/_chunks/{gas-7ZHFSr9Y.js.map → gas-C3adNyJH.js.map} +1 -1
- package/dist-vue/_chunks/{gherkin-DiGPpFIT.js → gherkin-DFFRCqQB.js} +1 -1
- package/dist-vue/_chunks/{gherkin-DiGPpFIT.js.map → gherkin-DFFRCqQB.js.map} +1 -1
- package/dist-vue/_chunks/{groovy-DdKIH6vq.js → groovy-BHcqGGgZ.js} +1 -1
- package/dist-vue/_chunks/{groovy-DdKIH6vq.js.map → groovy-BHcqGGgZ.js.map} +1 -1
- package/dist-vue/_chunks/{haskell-DAISwZqR.js → haskell-BB45MUCR.js} +1 -1
- package/dist-vue/_chunks/{haskell-DAISwZqR.js.map → haskell-BB45MUCR.js.map} +1 -1
- package/dist-vue/_chunks/{haxe-CcCnoX02.js → haxe-QBohTRDI.js} +1 -1
- package/dist-vue/_chunks/{haxe-CcCnoX02.js.map → haxe-QBohTRDI.js.map} +1 -1
- package/dist-vue/_chunks/{http-Dy51A1Ji.js → http-HqJENFoz.js} +1 -1
- package/dist-vue/_chunks/{http-Dy51A1Ji.js.map → http-HqJENFoz.js.map} +1 -1
- package/dist-vue/_chunks/{idl-Cf5JG3Ez.js → idl-DZZwNvlw.js} +1 -1
- package/dist-vue/_chunks/{idl-Cf5JG3Ez.js.map → idl-DZZwNvlw.js.map} +1 -1
- package/dist-vue/_chunks/index.es-CikrfdXD.js +950 -0
- package/dist-vue/_chunks/index.es-CikrfdXD.js.map +1 -0
- package/dist-vue/_chunks/{javascript-CzLVX0gM.js → javascript-C85sLH7Y.js} +1 -1
- package/dist-vue/_chunks/{javascript-CzLVX0gM.js.map → javascript-C85sLH7Y.js.map} +1 -1
- package/dist-vue/_chunks/{julia-B2PXBujh.js → julia-ChIE7-ml.js} +1 -1
- package/dist-vue/_chunks/{julia-B2PXBujh.js.map → julia-ChIE7-ml.js.map} +1 -1
- package/dist-vue/_chunks/{livescript-2I87cCXG.js → livescript-BCs3u_kv.js} +1 -1
- package/dist-vue/_chunks/{livescript-2I87cCXG.js.map → livescript-BCs3u_kv.js.map} +1 -1
- package/dist-vue/_chunks/{lua-C3mMI1er.js → lua-DzZVFmfH.js} +1 -1
- package/dist-vue/_chunks/{lua-C3mMI1er.js.map → lua-DzZVFmfH.js.map} +1 -1
- package/dist-vue/_chunks/{mathematica-fQn4Bu4o.js → mathematica-Zz2lXOfW.js} +1 -1
- package/dist-vue/_chunks/{mathematica-fQn4Bu4o.js.map → mathematica-Zz2lXOfW.js.map} +1 -1
- package/dist-vue/_chunks/{mbox-DKAPFpEV.js → mbox-CuPDY4hp.js} +1 -1
- package/dist-vue/_chunks/{mbox-DKAPFpEV.js.map → mbox-CuPDY4hp.js.map} +1 -1
- package/dist-vue/_chunks/{mirc-BjO0qN2s.js → mirc-DwrsqNtD.js} +1 -1
- package/dist-vue/_chunks/{mirc-BjO0qN2s.js.map → mirc-DwrsqNtD.js.map} +1 -1
- package/dist-vue/_chunks/{mllike-BlZyj79n.js → mllike-76cVByXA.js} +1 -1
- package/dist-vue/_chunks/{mllike-BlZyj79n.js.map → mllike-76cVByXA.js.map} +1 -1
- package/dist-vue/_chunks/{modelica-QjIv2_JC.js → modelica-kytS8Bwg.js} +1 -1
- package/dist-vue/_chunks/{modelica-QjIv2_JC.js.map → modelica-kytS8Bwg.js.map} +1 -1
- package/dist-vue/_chunks/{mscgen-LfC5dXDe.js → mscgen-CoPuHfjN.js} +1 -1
- package/dist-vue/_chunks/{mscgen-LfC5dXDe.js.map → mscgen-CoPuHfjN.js.map} +1 -1
- package/dist-vue/_chunks/{mumps-Dv1DAXnR.js → mumps-B2uz6FeJ.js} +1 -1
- package/dist-vue/_chunks/{mumps-Dv1DAXnR.js.map → mumps-B2uz6FeJ.js.map} +1 -1
- package/dist-vue/_chunks/{nginx-3DgpfXl3.js → nginx-BSBpB1IU.js} +1 -1
- package/dist-vue/_chunks/{nginx-3DgpfXl3.js.map → nginx-BSBpB1IU.js.map} +1 -1
- package/dist-vue/_chunks/{nsis-K3Sov04-.js → nsis-R5ELJwT9.js} +2 -2
- package/dist-vue/_chunks/{nsis-K3Sov04-.js.map → nsis-R5ELJwT9.js.map} +1 -1
- package/dist-vue/_chunks/{ntriples-BEnyXf7m.js → ntriples-CAwEARBj.js} +1 -1
- package/dist-vue/_chunks/{ntriples-BEnyXf7m.js.map → ntriples-CAwEARBj.js.map} +1 -1
- package/dist-vue/_chunks/{octave-CyLDdHqN.js → octave-Ufq41PR2.js} +1 -1
- package/dist-vue/_chunks/{octave-CyLDdHqN.js.map → octave-Ufq41PR2.js.map} +1 -1
- package/dist-vue/_chunks/{oz-D5CDtCy5.js → oz-gzP8z3Q6.js} +1 -1
- package/dist-vue/_chunks/{oz-D5CDtCy5.js.map → oz-gzP8z3Q6.js.map} +1 -1
- package/dist-vue/_chunks/{pascal-BSLSyZrm.js → pascal-Ccg4lI6j.js} +1 -1
- package/dist-vue/_chunks/{pascal-BSLSyZrm.js.map → pascal-Ccg4lI6j.js.map} +1 -1
- package/dist-vue/_chunks/{perl-DBW5T0Wn.js → perl-64iNbjRD.js} +1 -1
- package/dist-vue/_chunks/{perl-DBW5T0Wn.js.map → perl-64iNbjRD.js.map} +1 -1
- package/dist-vue/_chunks/{pig-C5Bshhgj.js → pig-CsJsXnem.js} +1 -1
- package/dist-vue/_chunks/{pig-C5Bshhgj.js.map → pig-CsJsXnem.js.map} +1 -1
- package/dist-vue/_chunks/{powershell-BEB8cXp1.js → powershell-CPnsuu0v.js} +1 -1
- package/dist-vue/_chunks/{powershell-BEB8cXp1.js.map → powershell-CPnsuu0v.js.map} +1 -1
- package/dist-vue/_chunks/{properties-Dywxo8ET.js → properties-CEGInQuZ.js} +1 -1
- package/dist-vue/_chunks/{properties-Dywxo8ET.js.map → properties-CEGInQuZ.js.map} +1 -1
- package/dist-vue/_chunks/{protobuf-236BAJ7w.js → protobuf-BGU8l-K6.js} +1 -1
- package/dist-vue/_chunks/{protobuf-236BAJ7w.js.map → protobuf-BGU8l-K6.js.map} +1 -1
- package/dist-vue/_chunks/{pug-cbZddqK7.js → pug-DMZOuiBR.js} +2 -2
- package/dist-vue/_chunks/{pug-cbZddqK7.js.map → pug-DMZOuiBR.js.map} +1 -1
- package/dist-vue/_chunks/{puppet-C2NL98jI.js → puppet-CT38RAOR.js} +1 -1
- package/dist-vue/_chunks/{puppet-C2NL98jI.js.map → puppet-CT38RAOR.js.map} +1 -1
- package/dist-vue/_chunks/{python-CwQbjwek.js → python-BmpRibCQ.js} +1 -1
- package/dist-vue/_chunks/{python-CwQbjwek.js.map → python-BmpRibCQ.js.map} +1 -1
- package/dist-vue/_chunks/{q-BSTDwNDO.js → q-CtSYDlyO.js} +1 -1
- package/dist-vue/_chunks/{q-BSTDwNDO.js.map → q-CtSYDlyO.js.map} +1 -1
- package/dist-vue/_chunks/{r-DFZgsfAZ.js → r-oVGiwSoK.js} +1 -1
- package/dist-vue/_chunks/{r-DFZgsfAZ.js.map → r-oVGiwSoK.js.map} +1 -1
- package/dist-vue/_chunks/{rpm-C0LbsDPX.js → rpm-B5gOa5-q.js} +1 -1
- package/dist-vue/_chunks/{rpm-C0LbsDPX.js.map → rpm-B5gOa5-q.js.map} +1 -1
- package/dist-vue/_chunks/{ruby-Bier99ao.js → ruby-34fuN336.js} +1 -1
- package/dist-vue/_chunks/{ruby-Bier99ao.js.map → ruby-34fuN336.js.map} +1 -1
- package/dist-vue/_chunks/{sas-VrUpo2iQ.js → sas-BlnUKWuD.js} +1 -1
- package/dist-vue/_chunks/{sas-VrUpo2iQ.js.map → sas-BlnUKWuD.js.map} +1 -1
- package/dist-vue/_chunks/{scheme-D6LSF3th.js → scheme-Ba-z_mxe.js} +1 -1
- package/dist-vue/_chunks/{scheme-D6LSF3th.js.map → scheme-Ba-z_mxe.js.map} +1 -1
- package/dist-vue/_chunks/{shell-Pil6sZYj.js → shell-B-EgOeQy.js} +1 -1
- package/dist-vue/_chunks/{shell-Pil6sZYj.js.map → shell-B-EgOeQy.js.map} +1 -1
- package/dist-vue/_chunks/{sieve-BP6vUMh6.js → sieve-DsG7bfYX.js} +1 -1
- package/dist-vue/_chunks/{sieve-BP6vUMh6.js.map → sieve-DsG7bfYX.js.map} +1 -1
- package/dist-vue/_chunks/{simple-mode-BG7WQO3g.js → simple-mode-wQYx-pPa.js} +1 -1
- package/dist-vue/_chunks/{simple-mode-BG7WQO3g.js.map → simple-mode-wQYx-pPa.js.map} +1 -1
- package/dist-vue/_chunks/{smalltalk-BnTD_-u6.js → smalltalk-ChZvyDpP.js} +1 -1
- package/dist-vue/_chunks/{smalltalk-BnTD_-u6.js.map → smalltalk-ChZvyDpP.js.map} +1 -1
- package/dist-vue/_chunks/{solr-VuxI6OR2.js → solr-Dqcv2AYp.js} +1 -1
- package/dist-vue/_chunks/{solr-VuxI6OR2.js.map → solr-Dqcv2AYp.js.map} +1 -1
- package/dist-vue/_chunks/{sparql-7LilzgeP.js → sparql-DqMXm2dv.js} +1 -1
- package/dist-vue/_chunks/{sparql-7LilzgeP.js.map → sparql-DqMXm2dv.js.map} +1 -1
- package/dist-vue/_chunks/{spreadsheet-CMp1pfGY.js → spreadsheet-DZEh4bps.js} +1 -1
- package/dist-vue/_chunks/{spreadsheet-CMp1pfGY.js.map → spreadsheet-DZEh4bps.js.map} +1 -1
- package/dist-vue/_chunks/{sql-7pX-pbPB.js → sql-MyS5CFp1.js} +1 -1
- package/dist-vue/_chunks/{sql-7pX-pbPB.js.map → sql-MyS5CFp1.js.map} +1 -1
- package/dist-vue/_chunks/{src-DjRNH9vV.js → src-BteqqLGW.js} +1 -1
- package/dist-vue/_chunks/{src-DjRNH9vV.js.map → src-BteqqLGW.js.map} +1 -1
- package/dist-vue/_chunks/{stex-Bb7D4YTq.js → stex-CuUykOIw.js} +1 -1
- package/dist-vue/_chunks/{stex-Bb7D4YTq.js.map → stex-CuUykOIw.js.map} +1 -1
- package/dist-vue/_chunks/{stylus-DtQ7d5hI.js → stylus-BIh9GBXG.js} +1 -1
- package/dist-vue/_chunks/{stylus-DtQ7d5hI.js.map → stylus-BIh9GBXG.js.map} +1 -1
- package/dist-vue/_chunks/{swift-BUw5YtkI.js → swift-En1d22e-.js} +1 -1
- package/dist-vue/_chunks/{swift-BUw5YtkI.js.map → swift-En1d22e-.js.map} +1 -1
- package/dist-vue/_chunks/{tcl-DXJDyEhN.js → tcl-CA3XR2Sh.js} +1 -1
- package/dist-vue/_chunks/{tcl-DXJDyEhN.js.map → tcl-CA3XR2Sh.js.map} +1 -1
- package/dist-vue/_chunks/{textile-CFJlGF4J.js → textile-CKe5SU6F.js} +1 -1
- package/dist-vue/_chunks/{textile-CFJlGF4J.js.map → textile-CKe5SU6F.js.map} +1 -1
- package/dist-vue/_chunks/{tiddlywiki-BcfgI-U0.js → tiddlywiki-UOzNZSPW.js} +1 -1
- package/dist-vue/_chunks/{tiddlywiki-BcfgI-U0.js.map → tiddlywiki-UOzNZSPW.js.map} +1 -1
- package/dist-vue/_chunks/{tiki-Ck3ovlwE.js → tiki-CTiuYP9v.js} +1 -1
- package/dist-vue/_chunks/{tiki-Ck3ovlwE.js.map → tiki-CTiuYP9v.js.map} +1 -1
- package/dist-vue/_chunks/{toml-Cj82erLE.js → toml-DDNufn3M.js} +1 -1
- package/dist-vue/_chunks/{toml-Cj82erLE.js.map → toml-DDNufn3M.js.map} +1 -1
- package/dist-vue/_chunks/{troff-CizaXfug.js → troff-DW8Y_3S4.js} +1 -1
- package/dist-vue/_chunks/{troff-CizaXfug.js.map → troff-DW8Y_3S4.js.map} +1 -1
- package/dist-vue/_chunks/{ttcn-mPO-QsiQ.js → ttcn-C-DIoNCg.js} +1 -1
- package/dist-vue/_chunks/{ttcn-mPO-QsiQ.js.map → ttcn-C-DIoNCg.js.map} +1 -1
- package/dist-vue/_chunks/{ttcn-cfg-c_AW8b7V.js → ttcn-cfg-B4ziRnM-.js} +1 -1
- package/dist-vue/_chunks/{ttcn-cfg-c_AW8b7V.js.map → ttcn-cfg-B4ziRnM-.js.map} +1 -1
- package/dist-vue/_chunks/{turtle-BF5AsFbP.js → turtle-CARqpYpc.js} +1 -1
- package/dist-vue/_chunks/{turtle-BF5AsFbP.js.map → turtle-CARqpYpc.js.map} +1 -1
- package/dist-vue/_chunks/{useChatbotStore-ys9uGP5v.js → useChatbotStore-C9xj40sY.js} +24 -24
- package/dist-vue/_chunks/{useChatbotStore-ys9uGP5v.js.map → useChatbotStore-C9xj40sY.js.map} +1 -1
- package/dist-vue/_chunks/{useLightbox-CRpWDdlN.js → useLightbox-CsBDIq4B.js} +2 -2
- package/dist-vue/_chunks/{useLightbox-CRpWDdlN.js.map → useLightbox-CsBDIq4B.js.map} +1 -1
- package/dist-vue/_chunks/useSafeLocalStorage-C1GCM7nD.js +15 -0
- package/dist-vue/_chunks/useSafeLocalStorage-C1GCM7nD.js.map +1 -0
- package/dist-vue/_chunks/{utils-DBd_X5-V.js → utils-D1pBqT-n.js} +2 -2
- package/dist-vue/_chunks/{utils-DBd_X5-V.js.map → utils-D1pBqT-n.js.map} +1 -1
- package/dist-vue/_chunks/{vb-CeqEYgxc.js → vb-jy9Yl8VS.js} +1 -1
- package/dist-vue/_chunks/{vb-CeqEYgxc.js.map → vb-jy9Yl8VS.js.map} +1 -1
- package/dist-vue/_chunks/{vbscript-Dy7to0l6.js → vbscript-srk6lbz5.js} +1 -1
- package/dist-vue/_chunks/{vbscript-Dy7to0l6.js.map → vbscript-srk6lbz5.js.map} +1 -1
- package/dist-vue/_chunks/{velocity-CKubdsu-.js → velocity-DYmMYLwp.js} +1 -1
- package/dist-vue/_chunks/{velocity-CKubdsu-.js.map → velocity-DYmMYLwp.js.map} +1 -1
- package/dist-vue/_chunks/{verilog-BhlfpzOZ.js → verilog-UsIZeNkB.js} +1 -1
- package/dist-vue/_chunks/{verilog-BhlfpzOZ.js.map → verilog-UsIZeNkB.js.map} +1 -1
- package/dist-vue/_chunks/{vhdl-8WXkWtGM.js → vhdl-DNCP7Bn1.js} +1 -1
- package/dist-vue/_chunks/{vhdl-8WXkWtGM.js.map → vhdl-DNCP7Bn1.js.map} +1 -1
- package/dist-vue/_chunks/{webidl-Jc36v0Y0.js → webidl-DOqqk_0y.js} +1 -1
- package/dist-vue/_chunks/{webidl-Jc36v0Y0.js.map → webidl-DOqqk_0y.js.map} +1 -1
- package/dist-vue/_chunks/{xquery-H0oz85f3.js → xquery-DJDJrmLG.js} +1 -1
- package/dist-vue/_chunks/{xquery-H0oz85f3.js.map → xquery-DJDJrmLG.js.map} +1 -1
- package/dist-vue/_chunks/{yacas-BdW11VL8.js → yacas-BSgkPzcj.js} +1 -1
- package/dist-vue/_chunks/{yacas-BdW11VL8.js.map → yacas-BSgkPzcj.js.map} +1 -1
- package/dist-vue/_chunks/{z80-GK9AbKDL.js → z80-C0-Mg9L3.js} +1 -1
- package/dist-vue/_chunks/{z80-GK9AbKDL.js.map → z80-C0-Mg9L3.js.map} +1 -1
- package/dist-vue/api.js +1 -1
- package/dist-vue/apps/web-component/src/composables/useChatbotAuth.d.ts +2 -1
- package/dist-vue/composables.js +92 -80
- package/dist-vue/composables.js.map +1 -1
- package/dist-vue/index.js +874 -857
- package/dist-vue/index.js.map +1 -1
- package/dist-vue/locales.js +1 -0
- package/dist-vue/packages/ability/src/types.d.ts +3 -1
- package/dist-vue/packages/components/src/chat/PkChatbotMessages.d.ts +10 -3
- package/dist-vue/packages/components/src/chat/PkCopyBlock.d.ts +4 -2
- package/dist-vue/packages/components/src/chat/PkMessageParts.d.ts +5 -1
- package/dist-vue/packages/components/src/chat/PkToolShowLocation.d.ts +5 -0
- package/dist-vue/packages/components/src/index.d.ts +2 -1
- package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +5 -0
- package/dist-vue/packages/composable/src/index.d.ts +1 -0
- package/dist-vue/packages/composable/src/useSafeLocalStorage.d.ts +7 -0
- package/dist-vue/packages/models/src/schema/AgentEndpoint.d.ts +108 -0
- package/dist-vue/packages/models/src/schema/AgentEndpointLog.d.ts +48 -0
- package/dist-vue/packages/models/src/schema/index.d.ts +2 -0
- package/dist-vue/style.css +1 -1
- package/package.json +3 -2
- package/dist/_chunks/PkToolShowArtifact-DzNIkKvZ.js.map +0 -1
- package/dist/_chunks/PkToolShowLocation-BsBiA4jV.js +0 -134
- package/dist/_chunks/PkToolShowLocation-BsBiA4jV.js.map +0 -1
- package/dist/_chunks/vue-leaflet.es-BT-uRmMx.js +0 -1738
- package/dist/_chunks/vue-leaflet.es-BT-uRmMx.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotFeedbackForm-Dl1pWKbb.js +0 -1035
- package/dist-vue/_chunks/PkChatbotFeedbackForm-Dl1pWKbb.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotMessages-C7-ZtU0-.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotViewChat-EWotdJkz.js +0 -792
- package/dist-vue/_chunks/PkChatbotViewChat-EWotdJkz.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowArtifact-pTS7wzhw.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowLocation-DSZvW68g.js +0 -135
- package/dist-vue/_chunks/PkToolShowLocation-DSZvW68g.js.map +0 -1
- package/dist-vue/_chunks/createChatbotApiClient-BJL1_AVi.js +0 -630
- package/dist-vue/_chunks/createChatbotApiClient-BJL1_AVi.js.map +0 -1
- package/dist-vue/_chunks/dist-Bh5Q6aSI2.js.map +0 -1
- package/dist-vue/_chunks/dist-CAZOa5qs2.js.map +0 -1
- package/dist-vue/_chunks/dist-afJW4ohP2.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PkChatbotFeedbackForm-Dl1pWKbb.js","names":["je","Ve","ne","ge","be","k","D","ye","he","F","U","N","z","ce","H","Q","E","re","Y","ae","G","W","oe","L","B","$","me","pe","$emit"],"sources":["../../../../node_modules/.pnpm/dot-prop@10.1.0/node_modules/dot-prop/index.js","../../../../node_modules/.pnpm/@volverjs+form-vue@1.1.1_@volverjs+ui-vue@0.0.13-beta.8_@volverjs+style@0.1.24-beta.3_@_d32cee6109e6c99de4048561886749f8/node_modules/@volverjs/form-vue/dist/index.es.js","../../../../packages/components/src/chat/PkChatbotFeedbackForm.vue","../../../../packages/components/src/chat/PkChatbotFeedbackForm.vue"],"sourcesContent":["const isObject = value => {\n\tconst type = typeof value;\n\treturn value !== null && (type === 'object' || type === 'function');\n};\n\n// Optimized empty check without creating an array.\nconst isEmptyObject = value => {\n\tif (!isObject(value)) {\n\t\treturn false;\n\t}\n\n\tfor (const key in value) {\n\t\tif (Object.hasOwn(value, key)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nconst disallowedKeys = new Set([\n\t'__proto__',\n\t'prototype',\n\t'constructor',\n]);\n\n// Maximum allowed array index to prevent DoS via memory exhaustion.\nconst MAX_ARRAY_INDEX = 1_000_000;\n\n// Optimized digit check without Set overhead.\nconst isDigit = character => character >= '0' && character <= '9';\n\n// Check if a segment should be coerced to a number.\nfunction shouldCoerceToNumber(segment) {\n\t// Only coerce valid non-negative integers without leading zeros.\n\tif (segment === '0') {\n\t\treturn true;\n\t}\n\n\tif (/^[1-9]\\d*$/.test(segment)) {\n\t\tconst parsedNumber = Number.parseInt(segment, 10);\n\t\t// Check within safe integer range and under MAX_ARRAY_INDEX to prevent DoS.\n\t\treturn parsedNumber <= Number.MAX_SAFE_INTEGER && parsedNumber <= MAX_ARRAY_INDEX;\n\t}\n\n\treturn false;\n}\n\n// Helper to process a path segment (eliminates duplication).\nfunction processSegment(segment, parts) {\n\tif (disallowedKeys.has(segment)) {\n\t\treturn false; // Signal to return empty array.\n\t}\n\n\tif (segment && shouldCoerceToNumber(segment)) {\n\t\tparts.push(Number.parseInt(segment, 10));\n\t} else {\n\t\tparts.push(segment);\n\t}\n\n\treturn true;\n}\n\nexport function parsePath(path) { // eslint-disable-line complexity\n\tif (typeof path !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof path}`);\n\t}\n\n\tconst parts = [];\n\tlet currentSegment = '';\n\tlet currentPart = 'start';\n\tlet isEscaping = false;\n\tlet position = 0;\n\n\tfor (const character of path) {\n\t\tposition++;\n\n\t\t// Handle escaping.\n\t\tif (isEscaping) {\n\t\t\tcurrentSegment += character;\n\t\t\tisEscaping = false;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle escape character.\n\t\tif (character === '\\\\') {\n\t\t\tif (currentPart === 'index') {\n\t\t\t\tthrow new Error(`Invalid character '${character}' in an index at position ${position}`);\n\t\t\t}\n\n\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\tthrow new Error(`Invalid character '${character}' after an index at position ${position}`);\n\t\t\t}\n\n\t\t\tisEscaping = true;\n\t\t\tcurrentPart = currentPart === 'start' ? 'property' : currentPart;\n\t\t\tcontinue;\n\t\t}\n\n\t\tswitch (character) {\n\t\t\tcase '.': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error(`Invalid character '${character}' in an index at position ${position}`);\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tcurrentPart = 'property';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (!processSegment(currentSegment, parts)) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tcurrentSegment = '';\n\t\t\t\tcurrentPart = 'property';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase '[': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error(`Invalid character '${character}' in an index at position ${position}`);\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tcurrentPart = 'index';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'property' || currentPart === 'start') {\n\t\t\t\t\t// Only push if we have content OR if we're in 'property' mode (not 'start')\n\t\t\t\t\tif ((currentSegment || currentPart === 'property') && !processSegment(currentSegment, parts)) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentSegment = '';\n\t\t\t\t}\n\n\t\t\t\tcurrentPart = 'index';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ']': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tif (currentSegment === '') {\n\t\t\t\t\t\t// Empty brackets - backtrack and treat as literal\n\t\t\t\t\t\tconst lastSegment = parts.pop() || '';\n\t\t\t\t\t\tcurrentSegment = lastSegment + '[]';\n\t\t\t\t\t\tcurrentPart = 'property';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Index must be digits only (enforced by default case)\n\t\t\t\t\t\tconst parsedNumber = Number.parseInt(currentSegment, 10);\n\t\t\t\t\t\tconst isValidInteger = !Number.isNaN(parsedNumber)\n\t\t\t\t\t\t\t&& Number.isFinite(parsedNumber)\n\t\t\t\t\t\t\t&& parsedNumber >= 0\n\t\t\t\t\t\t\t&& parsedNumber <= Number.MAX_SAFE_INTEGER\n\t\t\t\t\t\t\t&& parsedNumber <= MAX_ARRAY_INDEX\n\t\t\t\t\t\t\t&& currentSegment === String(parsedNumber);\n\n\t\t\t\t\t\tif (isValidInteger) {\n\t\t\t\t\t\t\tparts.push(parsedNumber);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Keep as string if not a valid integer representation or exceeds MAX_ARRAY_INDEX\n\t\t\t\t\t\t\tparts.push(currentSegment);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcurrentSegment = '';\n\t\t\t\t\t\tcurrentPart = 'indexEnd';\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error(`Invalid character '${character}' after an index at position ${position}`);\n\t\t\t\t}\n\n\t\t\t\t// In property context, treat ] as literal character\n\t\t\t\tcurrentSegment += character;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (currentPart === 'index' && !isDigit(character)) {\n\t\t\t\t\tthrow new Error(`Invalid character '${character}' in an index at position ${position}`);\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error(`Invalid character '${character}' after an index at position ${position}`);\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'start') {\n\t\t\t\t\tcurrentPart = 'property';\n\t\t\t\t}\n\n\t\t\t\tcurrentSegment += character;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Handle unfinished escaping (trailing backslash)\n\tif (isEscaping) {\n\t\tcurrentSegment += '\\\\';\n\t}\n\n\t// Handle end of path\n\tswitch (currentPart) {\n\t\tcase 'property': {\n\t\t\tif (!processSegment(currentSegment, parts)) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'index': {\n\t\t\tthrow new Error('Index was not closed');\n\t\t}\n\n\t\tcase 'start': {\n\t\t\tparts.push('');\n\t\t\tbreak;\n\t\t}\n\t\t// No default\n\t}\n\n\treturn parts;\n}\n\nfunction normalizePath(path) {\n\tif (typeof path === 'string') {\n\t\treturn parsePath(path);\n\t}\n\n\tif (Array.isArray(path)) {\n\t\tconst normalized = [];\n\n\t\tfor (const [index, segment] of path.entries()) {\n\t\t\t// Type validation.\n\t\t\tif (typeof segment !== 'string' && typeof segment !== 'number') {\n\t\t\t\tthrow new TypeError(`Expected a string or number for path segment at index ${index}, got ${typeof segment}`);\n\t\t\t}\n\n\t\t\t// Validate numbers are finite (reject NaN, Infinity, -Infinity).\n\t\t\tif (typeof segment === 'number' && !Number.isFinite(segment)) {\n\t\t\t\tthrow new TypeError(`Path segment at index ${index} must be a finite number, got ${segment}`);\n\t\t\t}\n\n\t\t\t// Check for disallowed keys.\n\t\t\tif (disallowedKeys.has(segment)) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\t// Normalize numeric strings to numbers for simplicity.\n\t\t\t// This treats ['items', '0'] the same as ['items', 0].\n\t\t\tif (typeof segment === 'string' && shouldCoerceToNumber(segment)) {\n\t\t\t\tnormalized.push(Number.parseInt(segment, 10));\n\t\t\t} else {\n\t\t\t\tnormalized.push(segment);\n\t\t\t}\n\t\t}\n\n\t\treturn normalized;\n\t}\n\n\treturn [];\n}\n\nexport function getProperty(object, path, value) {\n\tif (!isObject(object) || (typeof path !== 'string' && !Array.isArray(path))) {\n\t\treturn value === undefined ? object : value;\n\t}\n\n\tconst pathArray = normalizePath(path);\n\tif (pathArray.length === 0) {\n\t\treturn value;\n\t}\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\t\tobject = object[key];\n\n\t\tif (object === undefined || object === null) {\n\t\t\t// Return default value if we hit undefined/null before the end of the path.\n\t\t\t// This ensures get({foo: null}, 'foo.bar') returns the default value, not null.\n\t\t\tif (index !== pathArray.length - 1) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn object === undefined ? value : object;\n}\n\nexport function setProperty(object, path, value) {\n\tif (!isObject(object) || (typeof path !== 'string' && !Array.isArray(path))) {\n\t\treturn object;\n\t}\n\n\tconst root = object;\n\tconst pathArray = normalizePath(path);\n\n\tif (pathArray.length === 0) {\n\t\treturn object;\n\t}\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tif (index === pathArray.length - 1) {\n\t\t\tobject[key] = value;\n\t\t} else if (!isObject(object[key])) {\n\t\t\tconst nextKey = pathArray[index + 1];\n\t\t\t// Create arrays for numeric indices, objects for string keys\n\t\t\tconst shouldCreateArray = typeof nextKey === 'number';\n\t\t\tobject[key] = shouldCreateArray ? [] : {};\n\t\t}\n\n\t\tobject = object[key];\n\t}\n\n\treturn root;\n}\n\nexport function deleteProperty(object, path) {\n\tif (!isObject(object) || (typeof path !== 'string' && !Array.isArray(path))) {\n\t\treturn false;\n\t}\n\n\tconst pathArray = normalizePath(path);\n\n\tif (pathArray.length === 0) {\n\t\treturn false;\n\t}\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tif (index === pathArray.length - 1) {\n\t\t\tconst existed = Object.hasOwn(object, key);\n\t\t\tif (!existed) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tdelete object[key];\n\t\t\treturn true;\n\t\t}\n\n\t\tobject = object[key];\n\n\t\tif (!isObject(object)) {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\nexport function hasProperty(object, path) {\n\tif (!isObject(object) || (typeof path !== 'string' && !Array.isArray(path))) {\n\t\treturn false;\n\t}\n\n\tconst pathArray = normalizePath(path);\n\tif (pathArray.length === 0) {\n\t\treturn false;\n\t}\n\n\tfor (const key of pathArray) {\n\t\tif (!isObject(object) || !(key in object)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tobject = object[key];\n\t}\n\n\treturn true;\n}\n\nexport function escapePath(path) {\n\tif (typeof path !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof path}`);\n\t}\n\n\t// Escape special characters in one pass\n\treturn path.replaceAll(/[\\\\.[]/g, String.raw`\\$&`);\n}\n\nfunction normalizeEntries(value) {\n\tconst entries = Object.entries(value);\n\tif (Array.isArray(value)) {\n\t\treturn entries.map(([key, entryValue]) => {\n\t\t\t// Use shouldCoerceToNumber for consistency with parsePath\n\t\t\tconst normalizedKey = shouldCoerceToNumber(key)\n\t\t\t\t? Number.parseInt(key, 10)\n\t\t\t\t: key;\n\t\t\treturn [normalizedKey, entryValue];\n\t\t});\n\t}\n\n\treturn entries;\n}\n\nexport function stringifyPath(pathSegments, options = {}) {\n\tif (!Array.isArray(pathSegments)) {\n\t\tthrow new TypeError(`Expected an array, got ${typeof pathSegments}`);\n\t}\n\n\tconst {preferDotForIndices = false} = options;\n\tconst parts = [];\n\n\tfor (const [index, segment] of pathSegments.entries()) {\n\t\t// Validate segment types at runtime\n\t\tif (typeof segment !== 'string' && typeof segment !== 'number') {\n\t\t\tthrow new TypeError(`Expected a string or number for path segment at index ${index}, got ${typeof segment}`);\n\t\t}\n\n\t\tif (typeof segment === 'number') {\n\t\t\t// Handle numeric indices\n\t\t\tif (!Number.isInteger(segment) || segment < 0) {\n\t\t\t\t// Non-integer or negative numbers are treated as string keys\n\t\t\t\tconst escaped = escapePath(String(segment));\n\t\t\t\tparts.push(index === 0 ? escaped : `.${escaped}`);\n\t\t\t} else if (preferDotForIndices && index > 0) {\n\t\t\t\tparts.push(`.${segment}`);\n\t\t\t} else {\n\t\t\t\tparts.push(`[${segment}]`);\n\t\t\t}\n\t\t} else if (typeof segment === 'string') {\n\t\t\tif (segment === '') {\n\t\t\t\t// Empty string handling\n\t\t\t\tif (index === 0) {\n\t\t\t\t\t// Start with empty string, no prefix needed\n\t\t\t\t} else {\n\t\t\t\t\tparts.push('.');\n\t\t\t\t}\n\t\t\t} else if (shouldCoerceToNumber(segment)) {\n\t\t\t\t// Numeric strings are normalized to numbers\n\t\t\t\tconst numericValue = Number.parseInt(segment, 10);\n\t\t\t\tif (preferDotForIndices && index > 0) {\n\t\t\t\t\tparts.push(`.${numericValue}`);\n\t\t\t\t} else {\n\t\t\t\t\tparts.push(`[${numericValue}]`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Regular strings use dot notation\n\t\t\t\tconst escaped = escapePath(segment);\n\t\t\t\tparts.push(index === 0 ? escaped : `.${escaped}`);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn parts.join('');\n}\n\nfunction * deepKeysIterator(object, currentPath = [], ancestors = new Set()) {\n\tif (!isObject(object) || isEmptyObject(object)) {\n\t\tif (currentPath.length > 0) {\n\t\t\tyield stringifyPath(currentPath);\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Check if this object is already in the current path (circular reference)\n\tif (ancestors.has(object)) {\n\t\treturn;\n\t}\n\n\t// Add to ancestors, recurse, then remove (backtrack)\n\tancestors.add(object);\n\n\t// Reuse currentPath array by push/pop instead of creating new arrays\n\tfor (const [key, value] of normalizeEntries(object)) {\n\t\tcurrentPath.push(key);\n\t\tyield * deepKeysIterator(value, currentPath, ancestors);\n\t\tcurrentPath.pop();\n\t}\n\n\tancestors.delete(object);\n}\n\nexport function deepKeys(object) {\n\treturn [...deepKeysIterator(object)];\n}\n\nexport function unflatten(object) {\n\tconst result = {};\n\tif (!isObject(object)) {\n\t\treturn result;\n\t}\n\n\tfor (const [path, value] of Object.entries(object)) {\n\t\tsetProperty(result, path, value);\n\t}\n\n\treturn result;\n}\n","import { ref as k, computed as D, readonly as F, defineComponent as U, h as E, withModifiers as re, toRaw as N, watch as z, isProxy as ce, onMounted as H, provide as Q, toRefs as Y, useId as ae, inject as G, onBeforeUnmount as L, unref as B, resolveComponent as $, defineAsyncComponent as me, getCurrentInstance as pe } from \"vue\";\nimport { watchIgnorable as ye, throttleFilter as he } from \"@vueuse/core\";\nimport { ZodError as be } from \"zod/v3\";\nimport { safeParse as je, safeParseAsync as Ve, formatError as ne, $ZodError as ge } from \"zod/v4/core\";\nimport { setProperty as oe, getProperty as W } from \"dot-prop\";\nvar V = /* @__PURE__ */ ((e) => (e.text = \"text\", e.number = \"number\", e.email = \"email\", e.password = \"password\", e.tel = \"tel\", e.url = \"url\", e.search = \"search\", e.date = \"date\", e.time = \"time\", e.datetimeLocal = \"datetime-local\", e.month = \"month\", e.week = \"week\", e.color = \"color\", e.select = \"select\", e.checkbox = \"checkbox\", e.radio = \"radio\", e.textarea = \"textarea\", e.radioGroup = \"radioGroup\", e.checkboxGroup = \"checkboxGroup\", e.combobox = \"combobox\", e.custom = \"custom\", e))(V || {}), S = /* @__PURE__ */ ((e) => (e.invalid = \"invalid\", e.valid = \"valid\", e.submitting = \"submitting\", e.reset = \"reset\", e.updated = \"updated\", e.unknown = \"unknown\", e))(S || {});\nconst K = (e) => e._def.typeName === \"ZodObject\", C = (e) => e._zod.def.type === \"object\", Oe = (e) => e._def.typeName === \"ZodDefault\", we = (e) => e._zod.def.type === \"default\", De = (e) => e._def.typeName === \"ZodNullable\", _e = (e) => e._zod.def.type === \"nullable\", Re = (e) => e._def.typeName === \"ZodRecord\", Se = (e) => e._zod.def.type === \"record\", Ie = (e) => e._def.typeName === \"ZodArray\", Ee = (e) => e._zod.def.type === \"array\", Ze = (e) => e._def.typeName === \"ZodEffects\", ue = (e) => e._def.typeName === \"ZodOptional\", le = (e) => e._zod.def.type === \"optional\", xe = (e) => e._zod.def.type === \"pipe\", ze = (e) => e._zod.def.type === \"transform\";\nfunction se(e) {\n let t = e;\n for (; Ze(t); )\n t = t.innerType();\n return t;\n}\nfunction ie(e) {\n let t = e;\n for (; xe(t); )\n ze(t._zod.def.out) ? t = t._zod.def.in : t = t._zod.def.out;\n return t;\n}\nconst T = (e) => {\n let t = se(e);\n return ue(t) && (t = t._def.innerType), t;\n}, M = (e) => {\n let t = ie(e);\n return le(t) && (t = t._zod.def.innerType), t;\n}, Fe = (e) => {\n const t = se(e);\n return !!ue(t);\n}, Ae = (e) => {\n const t = ie(e);\n return !!le(t);\n}, X = (e) => \"_zod\" in e;\nfunction P(e, t = {}) {\n if (X(e)) {\n const a = M(e);\n return C(a) ? {\n ...a._zod.def.catchall && a._zod.def.catchall._zod.def.type !== \"never\" ? t : {},\n ...Object.fromEntries(\n (\"shape\" in a._zod.def ? Object.entries(a._zod.def.shape) : []).map(\n ([u, f]) => {\n const r = t[u], v = Ae(f);\n let o = M(f), d;\n if (we(o) && (d = o._zod.def.defaultValue, o = o._zod.def.innerType), r === null && _e(o))\n return [u, r];\n if (r == null && v)\n return [u, d];\n if (o) {\n const c = je(f, r);\n if (c.success)\n return [u, c.data ?? d];\n }\n if (Ee(o) && Array.isArray(r) && r.length) {\n const c = M(o._zod.def.element);\n if (C(c))\n return [\n u,\n r.map(\n (w) => P(\n c,\n w && typeof w == \"object\" ? w : void 0\n )\n )\n ];\n }\n if (Se(o) && r) {\n const c = M(o._zod.def.valueType);\n if (C(c))\n return [u, Object.keys(r).reduce((w, p) => (w[p] = P(c, r[p]), w), {})];\n }\n return C(o) ? [\n u,\n P(\n o,\n r && typeof r == \"object\" ? r : d\n )\n ] : [u, d];\n }\n )\n )\n } : t;\n }\n const l = T(e);\n return K(l) ? {\n ...l._def.unknownKeys === \"passthrough\" ? t : {},\n ...Object.fromEntries(\n (\"shape\" in l ? Object.entries(l.shape) : []).map(\n ([a, i]) => {\n const u = t[a], f = Fe(i);\n let r = T(i), v;\n if (Oe(r) && (v = r._def.defaultValue(), r = r._def.innerType), u === null && De(r))\n return [a, u];\n if (u == null && f)\n return [a, v];\n if (r) {\n const o = i.safeParse(u);\n if (o.success)\n return [a, o.data ?? v];\n }\n if (Ie(r) && Array.isArray(u) && u.length) {\n const o = T(r._def.type);\n if (K(o))\n return [\n a,\n u.map(\n (d) => P(\n o,\n d && typeof d == \"object\" ? d : void 0\n )\n )\n ];\n }\n if (Re(r) && u) {\n const o = T(r._def.valueType);\n if (K(o))\n return [a, Object.keys(u).reduce((d, c) => (d[c] = P(o, u[c]), d), {})];\n }\n return K(r) ? [\n a,\n P(\n r,\n u && typeof u == \"object\" ? u : v\n )\n ] : [a, v];\n }\n )\n )\n } : t;\n}\nconst Ne = (e, t) => X(e) ? Ve(e, t) : e.safeParseAsync(t), $e = (e, t) => X(e) ? ne(t) : t.format(), Ge = (e, t) => X(e) ? ne(new ge(t)) : new be(t).format();\nfunction Pe(e, t, l, g, a) {\n const i = k(), u = k(), f = D(() => u.value === S.invalid), r = k(), v = k(!1);\n let o;\n const d = (O) => {\n const _ = P(e, O);\n if (l?.class) {\n const n = l.class;\n return new n(_);\n }\n return _;\n }, c = async (O = r.value, _) => {\n if (o = _?.fields, v.value)\n return !0;\n const n = await Ne(e, O);\n if (!n.success) {\n if (u.value = S.invalid, !o?.size)\n return i.value = $e(e, n.error), !1;\n const j = n.error.issues.filter(\n (A) => o?.has(A.path.join(\".\"))\n );\n return j.length ? (i.value = Ge(e, j), !1) : (i.value = void 0, !0);\n }\n return i.value = void 0, u.value = S.valid, r.value = d(n.data), !0;\n }, w = () => {\n i.value = void 0, u.value = void 0, o = void 0;\n }, p = () => {\n r.value = d(), w(), u.value = S.reset;\n }, m = async (O) => v.value || !await c(void 0, O) ? !1 : (u.value = S.submitting, !0), { ignoreUpdates: y, stop: b } = ye(\n r,\n () => {\n u.value = S.updated;\n },\n {\n deep: !0,\n eventFilter: he(l?.updateThrottle ?? 500)\n }\n ), I = F(i), R = F(u), Z = U({\n name: \"VvForm\",\n props: {\n continuousValidation: {\n type: Boolean,\n default: !1\n },\n modelValue: {\n type: Object,\n default: () => ({})\n },\n readonly: {\n type: Boolean,\n default: l?.readonly\n },\n tag: {\n type: String,\n default: \"form\"\n },\n template: {\n type: [Array, Function],\n default: void 0\n },\n superRefine: {\n type: Function,\n default: void 0\n },\n validateFields: {\n type: Array,\n default: void 0\n }\n },\n emits: [\n \"invalid\",\n \"submit\",\n \"update:modelValue\",\n \"update:readonly\",\n \"valid\",\n \"reset\"\n ],\n expose: [\n \"errors\",\n \"invalid\",\n \"readonly\",\n \"status\",\n \"submit\",\n \"tag\",\n \"template\",\n \"valid\",\n \"validate\",\n \"clear\",\n \"reset\"\n ],\n slots: Object,\n setup(O, { emit: _ }) {\n return r.value = d(N(O.modelValue)), z(\n () => O.modelValue,\n (n) => {\n if (n) {\n const j = ce(n) ? N(n) : n;\n if (JSON.stringify(j) === JSON.stringify(N(r.value)))\n return;\n r.value = typeof j?.clone == \"function\" ? j.clone() : JSON.parse(JSON.stringify(j));\n }\n },\n { deep: !0 }\n ), z(u, async (n) => {\n if (n === S.invalid) {\n const j = N(i.value);\n _(\"invalid\", j), l?.onInvalid?.(\n j\n );\n return;\n }\n if (n === S.valid) {\n const j = N(r.value);\n _(\"valid\", j), l?.onValid?.(j), _(\"update:modelValue\", j), l?.onUpdate?.(j);\n return;\n }\n if (n === S.submitting) {\n const j = N(r.value);\n _(\"submit\", j), l?.onSubmit?.(j);\n return;\n }\n if (n === S.reset) {\n const j = N(r.value);\n _(\"reset\", j), l?.onReset?.(j);\n return;\n }\n if (n === S.updated) {\n if ((i.value || l?.continuousValidation || O.continuousValidation) && await c(void 0, {\n superRefine: O.superRefine,\n fields: o ?? new Set(O.validateFields)\n }), !r.value || !O.modelValue || JSON.stringify(r.value) !== JSON.stringify(O.modelValue)) {\n const j = N(r.value);\n _(\"update:modelValue\", j), l?.onUpdate?.(j);\n }\n u.value === S.updated && (u.value = S.unknown);\n }\n }), H(() => {\n O.readonly !== void 0 && (v.value = O.readonly);\n }), z(\n () => O.readonly,\n (n) => {\n v.value = n;\n }\n ), z(v, (n) => {\n n !== O.readonly && _(\"update:readonly\", v.value);\n }), Q(t, {\n clear: w,\n errors: I,\n formData: r,\n ignoreUpdates: y,\n invalid: f,\n readonly: v,\n reset: p,\n status: R,\n stopUpdatesWatch: b,\n submit: m,\n validate: c,\n wrappers: a\n }), {\n clear: w,\n errors: I,\n formData: r,\n ignoreUpdates: y,\n invalid: f,\n isReadonly: v,\n reset: p,\n status: R,\n stopUpdatesWatch: b,\n submit: () => m({\n superRefine: O.superRefine,\n fields: new Set(O.validateFields)\n }),\n validate: c,\n wrappers: a\n };\n },\n render() {\n const O = () => this.$slots?.default?.({\n errors: I.value,\n formData: r.value,\n invalid: f.value,\n readonly: v.value,\n status: R.value,\n wrappers: a,\n clear: w,\n ignoreUpdates: y,\n reset: p,\n stopUpdatesWatch: b,\n submit: m,\n validate: c\n }) ?? this.$slots.default;\n return E(\n this.tag,\n {\n onSubmit: re(this.submit, [\"prevent\"]),\n onReset: re(this.reset, [\"prevent\"])\n },\n (this.template ?? l?.template) && g ? [\n E(\n g,\n {\n schema: this.template ?? l?.template\n },\n {\n default: O\n }\n )\n ] : {\n default: O\n }\n );\n }\n });\n return {\n clear: w,\n errors: i,\n formData: r,\n ignoreUpdates: y,\n invalid: f,\n readonly: v,\n reset: p,\n status: u,\n wrappers: a,\n stopUpdatesWatch: b,\n submit: m,\n validate: c,\n VvForm: Z\n };\n}\nfunction ke(e, t, l, g) {\n return U({\n name: \"VvFormField\",\n props: {\n type: {\n type: String,\n validator: (a) => Object.values(V).includes(a),\n default: V.custom\n },\n is: {\n type: [Object, String],\n default: void 0\n },\n name: {\n type: [String, Number, Boolean, Symbol],\n required: !0\n },\n props: {\n type: [Object, Function],\n default: () => ({})\n },\n showValid: {\n type: Boolean,\n default: !1\n },\n defaultValue: {\n type: [String, Number, Boolean, Array, Object],\n default: void 0\n },\n lazyLoad: {\n type: Boolean,\n default: !1\n },\n readonly: {\n type: Boolean,\n default: void 0\n }\n },\n emits: [\n \"invalid\",\n \"update:formData\",\n \"update:modelValue\",\n \"valid\"\n ],\n expose: [\n \"component\",\n \"errors\",\n \"hasProps\",\n \"invalid\",\n \"invalidLabel\",\n \"is\",\n \"type\"\n ],\n slots: Object,\n setup(a, { slots: i, emit: u }) {\n const { props: f, name: r } = Y(a), v = ae(), o = G(t, void 0);\n o && o.fields.value.set(v, a.name);\n const d = G(e), c = D({\n get() {\n if (d?.formData)\n return W(\n new Object(d.formData.value),\n String(a.name)\n );\n },\n set(n) {\n d?.formData && (oe(\n new Object(d.formData.value),\n String(a.name),\n n\n ), u(\"update:modelValue\", {\n newValue: c.value,\n formData: d?.formData\n }));\n }\n });\n H(() => {\n c.value === void 0 && a.defaultValue !== void 0 && (c.value = a.defaultValue);\n }), L(() => {\n o && o.fields.value.delete(v);\n });\n const w = D(() => {\n if (d?.errors.value)\n return W(d.errors.value, String(a.name));\n }), p = D(() => w.value?._errors), m = D(() => w.value !== void 0), y = z(m, (n) => {\n if (n) {\n u(\"invalid\", w.value), o && o.errors.value.set(\n String(a.name),\n w.value\n );\n return;\n }\n u(\"valid\", c.value), o && o.errors.value.delete(\n a.name\n );\n }), b = z(\n () => d?.formData,\n () => {\n u(\"update:formData\", d?.formData);\n },\n { deep: !0 }\n );\n L(() => {\n y(), b();\n });\n const I = (n) => {\n n instanceof InputEvent && (n = n.target.value), c.value = n;\n }, R = D(() => {\n let n = f.value;\n return typeof n == \"function\" && (n = n(d?.formData)), Object.keys(n).reduce(\n (j, A) => (j[A] = B(n[A]), j),\n {}\n );\n }), Z = D(() => d?.readonly.value || o?.readonly.value ? !0 : R.value.readonly ?? a.readonly), O = D(() => ({\n ...R.value,\n name: R.value.name ?? a.name,\n invalid: m.value,\n valid: a.showValid ? !!(!m.value && c.value) : void 0,\n type: ((n) => {\n if ([\n V.color,\n V.date,\n V.datetimeLocal,\n V.email,\n V.month,\n V.number,\n V.password,\n V.search,\n V.tel,\n V.text,\n V.time,\n V.url,\n V.week\n ].includes(n))\n return n;\n })(a.type),\n invalidLabel: p.value,\n modelValue: c.value,\n readonly: Z.value,\n \"onUpdate:modelValue\": I\n }));\n return Q(l, {\n name: F(r),\n errors: F(w)\n }), { component: D(() => {\n if (a.type === V.custom)\n return {\n render() {\n return i.default?.({\n errors: F(w).value,\n formData: d?.formData.value,\n formErrors: d?.errors.value,\n invalid: m.value,\n invalidLabel: p.value,\n modelValue: c.value,\n readonly: Z.value,\n onUpdate: I,\n submit: d?.submit,\n validate: d?.validate\n }) ?? i.default;\n }\n };\n if (!(g?.lazyLoad ?? a.lazyLoad)) {\n let n;\n switch (a.type) {\n case V.select:\n n = $(\"VvSelect\");\n break;\n case V.checkbox:\n n = $(\"VvCheckbox\");\n break;\n case V.radio:\n n = $(\"VvRadio\");\n break;\n case V.textarea:\n n = $(\"VvTextarea\");\n break;\n case V.radioGroup:\n n = $(\"VvRadioGroup\");\n break;\n case V.checkboxGroup:\n n = $(\"VvCheckboxGroup\");\n break;\n case V.combobox:\n n = $(\"VvCombobox\");\n break;\n default:\n n = $(\"VvInputText\");\n }\n if (typeof n != \"string\")\n return n;\n console.warn(\n `[@volverjs/form-vue]: ${n} not found, the component will be loaded asynchronously. To avoid this warning, please set \"lazyLoad\" option.`\n );\n }\n return me(async () => {\n switch (g?.sideEffects && await Promise.resolve(g.sideEffects(a.type)), a.type) {\n case V.textarea:\n return import(\"@volverjs/ui-vue/vv-textarea\");\n case V.radio:\n return import(\"@volverjs/ui-vue/vv-radio\");\n case V.radioGroup:\n return import(\"@volverjs/ui-vue/vv-radio-group\");\n case V.checkbox:\n return import(\"@volverjs/ui-vue/vv-checkbox\");\n case V.checkboxGroup:\n return import(\"@volverjs/ui-vue/vv-checkbox-group\");\n case V.select:\n return import(\"@volverjs/ui-vue/vv-select\");\n case V.combobox:\n return import(\"@volverjs/ui-vue/vv-combobox\");\n }\n return import(\"@volverjs/ui-vue/vv-input-text\");\n });\n }), hasProps: O, invalid: m };\n },\n render() {\n return this.is ? E(this.is, this.hasProps, this.$slots) : this.type === V.custom ? E(this.component, null, this.$slots) : E(this.component, this.hasProps, this.$slots);\n }\n });\n}\nfunction Be(e, t, l) {\n return U({\n name: \"VvFormFieldsGroup\",\n props: {\n is: {\n type: [Object, String],\n default: void 0\n },\n names: {\n type: [Array, Object],\n required: !0\n },\n props: {\n type: [Object, Function],\n default: () => ({})\n },\n showValid: {\n type: Boolean,\n default: !1\n },\n defaultValues: {\n type: [Object],\n default: void 0\n },\n readonly: {\n type: Boolean,\n default: void 0\n }\n },\n emits: [\n \"invalid\",\n \"update:formData\",\n \"update:modelValue\",\n \"valid\"\n ],\n expose: [\n \"component\",\n \"errors\",\n \"hasProps\",\n \"invalid\",\n \"invalidLabels\",\n \"is\"\n ],\n slots: Object,\n setup(g, { slots: a, emit: i }) {\n const { props: u, names: f, defaultValues: r } = Y(g), v = ae(), o = D(() => Array.isArray(f.value) ? f.value : Object.values(f.value)), d = D(() => Array.isArray(f.value) ? f.value : Object.keys(f.value)), c = D(() => Array.isArray(f.value) ? f.value.reduce((s, h) => (s[String(h)] = h, s), {}) : f.value), w = D(() => Object.keys(c.value).reduce((s, h) => (s[String(c.value[h])] = h, s), {})), p = G(t, void 0);\n p && o.value.forEach((s) => {\n p.fields.value.set(`${v}-${s}`, s);\n });\n const m = G(e), y = D({\n get() {\n return m?.formData ? d.value.reduce((s, h) => (s[h] = W(\n new Object(m.formData.value),\n c.value[h]\n ), s), {}) : {};\n },\n set(s) {\n m?.formData && (d.value.forEach((h) => {\n oe(\n new Object(m.formData.value),\n c.value[h],\n s?.[h]\n );\n }), i(\"update:modelValue\", {\n newValue: y.value,\n formData: m?.formData\n }));\n }\n });\n H(() => {\n r.value && o.value.forEach((s) => {\n r.value?.[s] !== void 0 && y.value[s] === void 0 && (y.value = {\n ...y.value,\n [s]: r.value?.[s]\n });\n });\n }), L(() => {\n p && o.value.forEach((s) => {\n p.fields.value.delete(\n `${v}-${s}`\n );\n });\n });\n const b = D(() => {\n if (!m?.errors.value)\n return;\n const s = o.value.reduce((h, x) => {\n if (!m.errors.value)\n return h;\n const te = W(m.errors.value, String(x));\n return te === void 0 || (h[String(x)] = te), h;\n }, {});\n if (Object.keys(s).length !== 0)\n return s;\n }), I = D(() => {\n if (!b.value)\n return;\n const s = Object.keys(b.value).reduce((h, x) => (b.value?.[x] && (h[w.value[x]] = b.value[x]._errors), h), {});\n if (Object.keys(s).length !== 0)\n return s;\n }), R = D(() => b.value !== void 0), Z = D(() => d.value.reduce((s, h) => (s[h] = !!b.value?.[w.value[h]], s), {})), O = z(R, () => {\n if (R.value) {\n i(\"invalid\", b.value), p && o.value.forEach((s) => {\n if (!b.value?.[s]) {\n p.errors.value.delete(\n s\n );\n return;\n }\n p.errors.value.set(\n s,\n b.value?.[s]\n );\n });\n return;\n }\n i(\"valid\", y.value), p && o.value.forEach((s) => {\n p.errors.value.delete(\n s\n );\n });\n }), _ = z(\n () => m?.formData,\n () => {\n i(\"update:formData\", m?.formData);\n },\n { deep: !0 }\n );\n L(() => {\n O(), _();\n });\n const n = (s) => {\n y.value = s;\n }, j = (s, h) => {\n h instanceof InputEvent && (h = h.target.value), d.value.includes(s) && (y.value = {\n ...y.value,\n [s]: h\n });\n }, A = D(() => {\n let s = u.value;\n return typeof s == \"function\" && (s = s(m?.formData)), Object.keys(s).reduce(\n (h, x) => (h[x] = B(s[x]), h),\n {}\n );\n }), ee = D(() => m?.readonly.value ? !0 : A.value.readonly ?? g.readonly), fe = D(() => d.value.reduce((s, h) => (s[`onUpdate:${h}`] = (x) => {\n j(h, x);\n }, s), {\n \"onUpdate:modelValue\": n\n })), ve = D(() => ({\n ...fe.value,\n ...A.value,\n ...y.value,\n modelValue: y.value,\n names: A.value.name ?? o.value,\n invalid: R.value,\n invalids: Z.value,\n valid: g.showValid ? !!(!R.value && y.value) : void 0,\n invalidLabels: I.value,\n readonly: ee.value\n }));\n return Q(l, {\n names: F(f),\n errors: F(b)\n }), { component: D(() => ({\n render() {\n return a.default?.({\n errors: b.value,\n formData: m?.formData.value,\n formErrors: m?.errors.value,\n invalid: R.value,\n invalids: Z.value,\n invalidLabels: I.value,\n modelValue: y.value,\n onUpdate: n,\n onUpdateField: j,\n readonly: ee.value,\n submit: m?.submit,\n validate: m?.validate\n }) ?? a.default;\n }\n })), hasProps: ve, invalid: R };\n },\n render() {\n return this.is ? E(this.is, this.hasProps, this.$slots) : E(this.component, null, this.$slots);\n }\n });\n}\nfunction We(e, t) {\n return U({\n name: \"VvFormWrapper\",\n props: {\n name: {\n type: String,\n required: !0\n },\n tag: {\n type: String,\n default: void 0\n },\n readonly: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\"invalid\", \"valid\"],\n expose: [\n \"clear\",\n \"errors\",\n \"fields\",\n \"fieldsErrors\",\n \"formData\",\n \"invalid\",\n \"readonly\",\n \"reset\",\n \"submit\",\n \"tag\",\n \"validate\",\n \"validateWrapper\"\n ],\n slots: Object,\n setup(l, { emit: g }) {\n const a = G(e), i = G(t, void 0), u = k(/* @__PURE__ */ new Map()), f = k(/* @__PURE__ */ new Map()), { name: r } = Y(l), v = D(() => a?.invalid.value ? f.value.size > 0 : !1);\n z(v, (p) => {\n if (p) {\n g(\"invalid\");\n return;\n }\n g(\"valid\");\n });\n const o = D(() => a?.readonly.value || l.readonly), d = {\n name: F(r),\n errors: f,\n invalid: F(v),\n readonly: F(o),\n fields: u\n };\n Q(t, d);\n const c = D(() => new Map(u.value));\n z(\n c,\n (p, m) => {\n i?.fields && (m.forEach((y, b) => {\n p.has(b) || i?.fields.value.delete(b);\n }), p.forEach((y, b) => {\n i?.fields.value.has(b) || i?.fields.value.set(b, y);\n }));\n },\n { deep: !0 }\n ), z(\n f,\n (p) => {\n i?.errors && u.value.forEach((m) => {\n if (p.has(m) || i.errors.value.delete(m), p.has(m)) {\n const y = p.get(m);\n y && i.errors.value.set(m, y);\n }\n });\n },\n { deep: !0 }\n ), H(() => {\n if (!a?.wrappers || !r.value) {\n console.warn(\"[@volverjs/form-vue]: Invalid wrapper registration state\");\n return;\n }\n if (a.wrappers.has(r.value)) {\n console.warn(`[@volverjs/form-vue]: wrapper name \"${r.value}\" is already used`);\n return;\n }\n a.wrappers.set(r.value, d);\n }), L(() => {\n a?.wrappers && r.value && a.wrappers.delete(r.value);\n });\n const w = () => a?.validate(void 0, { fields: new Set(u.value.values()) }) ?? Promise.resolve(!0);\n return {\n errors: a?.errors,\n fields: u,\n fieldsErrors: f,\n formData: a?.formData,\n invalid: v,\n readonly: o,\n clear: a?.clear,\n reset: a?.reset,\n submit: a?.submit,\n validate: a?.validate,\n validateWrapper: w\n };\n },\n render() {\n const l = () => this.$slots.default?.({\n errors: this.errors,\n fieldsErrors: this.fieldsErrors,\n formData: this.formData,\n invalid: this.invalid,\n readonly: this.readonly,\n clear: this.clear,\n reset: this.reset,\n submit: this.submit,\n validate: this.validate,\n validateWrapper: this.validateWrapper\n });\n return this.tag ? E(this.tag, null, {\n default: l\n }) : l();\n }\n });\n}\nfunction Le(e, t) {\n const l = U({\n name: \"VvFormTemplate\",\n props: {\n schema: {\n type: [Array, Function],\n required: !0\n },\n scope: {\n type: Object,\n default: () => ({})\n }\n },\n slots: Object,\n setup(g, { slots: a }) {\n const i = G(e);\n if (i?.formData)\n return () => {\n const u = typeof g.schema == \"function\" ? g.schema(\n i,\n g.scope\n ) : g.schema;\n let f;\n const r = u.reduce((v, o) => {\n const d = typeof o == \"function\" ? o(i, g.scope) : o, {\n vvIs: c,\n vvName: w,\n vvSlots: p,\n vvChildren: m,\n vvIf: y,\n vvElseIf: b,\n vvType: I,\n vvDefaultValue: R,\n vvShowValid: Z,\n vvContent: O,\n ..._\n } = d;\n if (y !== void 0) {\n if (typeof y == \"string\" ? f = !!W(\n new Object(i.formData.value),\n y\n ) : typeof y == \"function\" ? f = B(y(i)) : f = B(y), !f)\n return v;\n } else if (b !== void 0 && f !== void 0) {\n if (f || (typeof b == \"string\" ? f = !!W(\n new Object(i.formData.value),\n b\n ) : typeof b == \"function\" ? f = B(b(i)) : f = B(b), !f))\n return v;\n } else\n f = void 0;\n let n;\n return m && (typeof c == \"string\" ? n = E(l, {\n schema: m\n }) : n = {\n default: (j) => E(l, {\n schema: m,\n scope: j\n })\n }), w ? (v.push(\n E(\n t,\n {\n name: w,\n is: c,\n type: I,\n defaultValue: R,\n showValid: Z,\n props: _\n },\n p ?? n ?? O\n )\n ), v) : c ? (v.push(\n E(\n c,\n _,\n p ?? n ?? O\n )\n ), v) : (n && (\"default\" in n ? v.push(n.default(g.scope)) : v.push(n)), v);\n }, []);\n return r.push(\n a?.default?.({\n errors: i?.errors.value,\n formData: i?.formData.value,\n invalid: i?.invalid.value,\n status: i?.status.value,\n submit: i?.submit,\n validate: i?.validate,\n clear: i?.clear,\n reset: i?.reset\n })\n ), r;\n };\n }\n });\n return l;\n}\nfunction q(e, t = {}) {\n const l = Symbol(\"formInjectionKey\"), g = Symbol(\"formWrapperInjectionKey\"), a = Symbol(\"formFieldInjectionKey\"), i = Symbol(\"formFieldsGroupInjectionKey\"), u = We(\n l,\n g\n ), f = ke(\n l,\n g,\n a,\n t\n ), r = Be(\n l,\n g,\n i\n ), v = Le(l, f), o = /* @__PURE__ */ new Map(), {\n clear: d,\n errors: c,\n formData: w,\n ignoreUpdates: p,\n invalid: m,\n readonly: y,\n reset: b,\n status: I,\n stopUpdatesWatch: R,\n submit: Z,\n validate: O,\n VvForm: _\n } = Pe(e, l, t, v, o);\n return {\n clear: d,\n errors: c,\n formData: w,\n formFieldInjectionKey: a,\n formInjectionKey: l,\n formWrapperInjectionKey: g,\n ignoreUpdates: p,\n invalid: m,\n readonly: y,\n reset: b,\n status: I,\n stopUpdatesWatch: R,\n submit: Z,\n validate: O,\n wrappers: o,\n VvForm: _,\n VvFormField: f,\n VvFormFieldsGroup: r,\n VvFormTemplate: v,\n VvFormWrapper: u\n };\n}\nconst de = Symbol(\"pluginInjectionKey\");\nfunction qe(e) {\n let t = {};\n return e.schema && (t = q(e.schema, e)), {\n ...t,\n install(l, { global: g = !1 } = {}) {\n l.provide(de, e), g && (l.config.globalProperties.$vvForm = e, t?.VvForm && l.component(\"VvForm\", t.VvForm), t?.VvFormWrapper && l.component(\"VvFormWrapper\", t.VvFormWrapper), t?.VvFormField && l.component(\"VvFormField\", t.VvFormField), t?.VvFormFieldsGroup && l.component(\"VvFormFieldsGroup\", t.VvFormFieldsGroup), t?.VvFormTemplate && l.component(\"VvFormTemplate\", t.VvFormTemplate));\n }\n };\n}\nconst J = /* @__PURE__ */ new Map();\nfunction He(e, t = {}) {\n if (t.scope && J.has(t.scope))\n return J.get(t.scope);\n if (!pe()) {\n const g = q(e, t);\n return t.scope && J.set(t.scope, g), g;\n }\n const l = q(\n e,\n {\n ...G(de, {}),\n ...t\n }\n );\n return t.scope && J.set(t.scope, l), l;\n}\nfunction Qe(e, t = {}) {\n return q(e, t);\n}\nexport {\n V as FormFieldType,\n qe as createForm,\n P as defaultObjectBySchema,\n Qe as formType,\n de as pluginInjectionKey,\n He as useForm\n};\n","<script setup lang=\"ts\">\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n defineProps<{\n submitted?: boolean\n loading?: boolean\n error?: string\n }>()\n\n const emit = defineEmits<{\n submit: [comment: string]\n close: []\n }>()\n\n const FeedbackFormSchema = z.object({\n comment: z.string().min(1).default(''),\n })\n\n const { VvForm, VvFormField, formData } = useForm(FeedbackFormSchema, {\n lazyLoad: true,\n })\n\n const onSubmit = (data: { comment: string }) => {\n emit('submit', data.comment)\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 min-h-40\">\n <VvIcon name=\"ri:feedback-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('action.feedback') }}</strong>\n <VvButton\n icon=\"ri:close-line\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.close')\"\n class=\"ml-auto\"\n @click.stop=\"$emit('close')\" />\n </div>\n <Transition mode=\"out-in\">\n <div v-if=\"!submitted\" class=\"p-sm\">\n <VvAlert\n v-if=\"error\"\n modifiers=\"danger\"\n class=\"mb-sm\"\n :label=\"error\" />\n <VvForm v-model=\"formData\" @submit=\"onSubmit\">\n <VvFormField\n name=\"comment\"\n type=\"textarea\"\n rows=\"3\"\n :label=\"$t('label.comment')\"\n :placeholder=\"$t('placeholder.comment')\"\n modifiers=\"compact no-label\"\n class=\"mb-sm\" />\n <div class=\"flex justify-end\">\n <VvButtonGroup>\n <VvButton\n type=\"button\"\n modifiers=\"secondary\"\n :label=\"$t('action.close')\"\n @click=\"$emit('close')\" />\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading\n :disabled=\"loading\"\n :label=\"$t('action.submit')\" />\n </VvButtonGroup>\n </div>\n </VvForm>\n </div>\n <div v-else class=\"p-sm\">\n <div class=\"flex items-center gap-sm\">\n <VvIcon\n name=\"ri:checkbox-circle-line\"\n class=\"text-24 text-success\" />\n <div>\n <strong class=\"font-semibold block text-success\">\n {{ $t('message.feedbackSubmittedTitle') }}\n </strong>\n <p class=\"text-word-3\">\n {{ $t('message.feedbackSubmittedMessage') }}\n </p>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n defineProps<{\n submitted?: boolean\n loading?: boolean\n error?: string\n }>()\n\n const emit = defineEmits<{\n submit: [comment: string]\n close: []\n }>()\n\n const FeedbackFormSchema = z.object({\n comment: z.string().min(1).default(''),\n })\n\n const { VvForm, VvFormField, formData } = useForm(FeedbackFormSchema, {\n lazyLoad: true,\n })\n\n const onSubmit = (data: { comment: string }) => {\n emit('submit', data.comment)\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 min-h-40\">\n <VvIcon name=\"ri:feedback-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('action.feedback') }}</strong>\n <VvButton\n icon=\"ri:close-line\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.close')\"\n class=\"ml-auto\"\n @click.stop=\"$emit('close')\" />\n </div>\n <Transition mode=\"out-in\">\n <div v-if=\"!submitted\" class=\"p-sm\">\n <VvAlert\n v-if=\"error\"\n modifiers=\"danger\"\n class=\"mb-sm\"\n :label=\"error\" />\n <VvForm v-model=\"formData\" @submit=\"onSubmit\">\n <VvFormField\n name=\"comment\"\n type=\"textarea\"\n rows=\"3\"\n :label=\"$t('label.comment')\"\n :placeholder=\"$t('placeholder.comment')\"\n modifiers=\"compact no-label\"\n class=\"mb-sm\" />\n <div class=\"flex justify-end\">\n <VvButtonGroup>\n <VvButton\n type=\"button\"\n modifiers=\"secondary\"\n :label=\"$t('action.close')\"\n @click=\"$emit('close')\" />\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading\n :disabled=\"loading\"\n :label=\"$t('action.submit')\" />\n </VvButtonGroup>\n </div>\n </VvForm>\n </div>\n <div v-else class=\"p-sm\">\n <div class=\"flex items-center gap-sm\">\n <VvIcon\n name=\"ri:checkbox-circle-line\"\n class=\"text-24 text-success\" />\n <div>\n <strong class=\"font-semibold block text-success\">\n {{ $t('message.feedbackSubmittedTitle') }}\n </strong>\n <p class=\"text-word-3\">\n {{ $t('message.feedbackSubmittedMessage') }}\n </p>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PkChatbotMessages-C7-ZtU0-.js","names":["$d","$emit","$n"],"sources":["../../../../packages/components/src/chat/toolComponentMap.ts","../../../../packages/components/src/chat/PkStreamingMarkdownAutoscroll.vue","../../../../packages/components/src/chat/PkStreamingMarkdownAutoscroll.vue","../../../../packages/components/src/chat/PkChatbotMessages.vue","../../../../packages/components/src/chat/PkChatbotMessages.vue"],"sourcesContent":["import { defineAsyncComponent } from 'vue'\n\n/**\n * Maps tool `part.type` to the corresponding component for auto-rendering.\n * Only includes simple tools that accept only a `:part` prop.\n * Interactive tools (showContactForm, showSuggestedReply, showSources,\n * showMultipleChoice) must be wired explicitly in the parent with their\n * required callbacks/events.\n */\nexport const toolComponentMap: Record<\n string,\n ReturnType<typeof defineAsyncComponent>\n> = {\n showArtifact: defineAsyncComponent(\n () => import('./PkToolShowArtifact.vue'),\n ),\n showEmail: defineAsyncComponent(() => import('./PkToolShowEmail.vue')),\n showMessage: defineAsyncComponent(() => import('./PkToolShowMessage.vue')),\n showWebPages: defineAsyncComponent(\n () => import('./PkToolShowWebPages.vue'),\n ),\n showProductList: defineAsyncComponent(\n () => import('./PkToolShowProductList.vue'),\n ),\n showCalendarEvent: defineAsyncComponent(\n () => import('./PkToolShowCalendarEvent.vue'),\n ),\n showComparison: defineAsyncComponent(\n () => import('./PkToolShowComparison.vue'),\n ),\n showLocation: defineAsyncComponent(\n () => import('./PkToolShowLocation.vue'),\n ),\n showQrCode: defineAsyncComponent(() => import('./PkToolShowQrCode.vue')),\n showImageGallery: defineAsyncComponent(\n () => import('./PkToolShowImageGallery.vue'),\n ),\n showWeather: defineAsyncComponent(() => import('./PkToolShowWeather.vue')),\n}\n","<script lang=\"ts\" setup>\n import { nextTick, ref, watch } from 'vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const props = defineProps<{\n markdown?: string\n innerClass?: string\n }>()\n\n const scrollEl = ref<HTMLDivElement>()\n const lastScrollTop = ref<number>(0)\n const stopAutoScroll = ref<boolean>(false)\n\n const handleScroll = () => {\n if (!scrollEl.value) {\n return\n }\n const currentScrollTop = scrollEl.value.scrollTop\n if (currentScrollTop < lastScrollTop.value) {\n const delta = lastScrollTop.value - currentScrollTop\n if (delta < 50) {\n stopAutoScroll.value = true\n }\n }\n if (currentScrollTop > lastScrollTop.value) {\n if (\n currentScrollTop ===\n scrollEl.value.scrollHeight - scrollEl.value.clientHeight\n ) {\n stopAutoScroll.value = false\n }\n }\n lastScrollTop.value = currentScrollTop\n }\n\n watch(\n () => props.markdown,\n async () => {\n await nextTick()\n if (scrollEl.value && !stopAutoScroll.value) {\n scrollEl.value.scrollTop = scrollEl.value.scrollHeight\n }\n },\n { immediate: true },\n )\n</script>\n\n<template>\n <div\n ref=\"scrollEl\"\n class=\"overflow-auto light-scrollbar\"\n @scroll=\"handleScroll\">\n <PkStreamingMarkdown :markdown=\"markdown\" :class=\"innerClass\" />\n </div>\n</template>\n","<script lang=\"ts\" setup>\n import { nextTick, ref, watch } from 'vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const props = defineProps<{\n markdown?: string\n innerClass?: string\n }>()\n\n const scrollEl = ref<HTMLDivElement>()\n const lastScrollTop = ref<number>(0)\n const stopAutoScroll = ref<boolean>(false)\n\n const handleScroll = () => {\n if (!scrollEl.value) {\n return\n }\n const currentScrollTop = scrollEl.value.scrollTop\n if (currentScrollTop < lastScrollTop.value) {\n const delta = lastScrollTop.value - currentScrollTop\n if (delta < 50) {\n stopAutoScroll.value = true\n }\n }\n if (currentScrollTop > lastScrollTop.value) {\n if (\n currentScrollTop ===\n scrollEl.value.scrollHeight - scrollEl.value.clientHeight\n ) {\n stopAutoScroll.value = false\n }\n }\n lastScrollTop.value = currentScrollTop\n }\n\n watch(\n () => props.markdown,\n async () => {\n await nextTick()\n if (scrollEl.value && !stopAutoScroll.value) {\n scrollEl.value.scrollTop = scrollEl.value.scrollHeight\n }\n },\n { immediate: true },\n )\n</script>\n\n<template>\n <div\n ref=\"scrollEl\"\n class=\"overflow-auto light-scrollbar\"\n @scroll=\"handleScroll\">\n <PkStreamingMarkdown :markdown=\"markdown\" :class=\"innerClass\" />\n </div>\n</template>\n","<script lang=\"ts\" setup>\n import type {\n ChatMessageActions,\n MessageFeedback,\n RevisedAnswer,\n UIChatMessage,\n } from 'models'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n import PkChatbotError from './PkChatbotError.vue'\n import PkChatbotFeedbackForm from './PkChatbotFeedbackForm.vue'\n import PkChatbotFilePreview from './PkChatbotFilePreview.vue'\n import PkRelativeTime from '../PkRelativeTime.vue'\n import { useI18n } from 'vue-i18n'\n import {\n useTemplateRef,\n ref,\n watch,\n onMounted,\n computed,\n nextTick,\n useSlots,\n } from 'vue'\n import { toolComponentMap } from './toolComponentMap'\n import {\n resolveContrastColor,\n getPartState,\n isTextPart,\n isFilePart,\n isToolPart,\n isStreamingPart,\n getPartIcon,\n getToolPartLabel,\n } from './utils'\n import { getToolPartName, toKebabCase } from 'utils'\n import PkStreamingMarkdownAutoscroll from './PkStreamingMarkdownAutoscroll.vue'\n\n const props = defineProps<{\n status?: 'submitted' | 'streaming' | 'ready' | 'error'\n messages?: UIChatMessage[]\n logo?: string\n name?: string\n error?: Error\n actions?: ChatMessageActions[]\n mainColor?: string\n textColor?: 'auto' | 'white' | 'black'\n revisedAnswers?: RevisedAnswer[]\n messageFeedbacks?: MessageFeedback[]\n disableHeightAdjustment?: boolean\n showMessageDateTime?: boolean\n showMessageTokensCount?: boolean\n showAllMessageParts?: boolean\n // TODO: move feedback in a separate component to avoid passing these props\n feedbackMessageId?: string\n feedbackLoading?: boolean\n feedbackSubmitted?: boolean\n feedbackError?: string\n }>()\n\n const emit = defineEmits<{\n (e: 'show-info', message: UIChatMessage): void\n (e: 'regenerate'): void\n (e: 'revise', message: UIChatMessage): void\n (e: 'upvote', message: UIChatMessage): void\n (e: 'downvote', message: UIChatMessage): void\n (e: 'feedback', message: UIChatMessage): void\n (e: 'feedback-submit', comment: string): void\n (e: 'feedback-close'): void\n (e: 'scroll-up'): void\n (e: 'scroll-down'): void\n (e: 'auto-retry'): void\n (e: 'reset-chat'): void\n }>()\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const slots = useSlots()\n\n const scrollEl = useTemplateRef<HTMLDivElement>('scrollEl')\n const scrollTimeout = ref<NodeJS.Timeout>()\n const lastScrollTop = ref<number>(0)\n const stopAutoScroll = ref<boolean>(false)\n const contrastColor = computed(() =>\n resolveContrastColor(props.textColor, props.mainColor),\n )\n\n const handleScroll = () => {\n if (!scrollEl.value) {\n return\n }\n const currentScrollTop = scrollEl.value.scrollTop\n if (currentScrollTop < lastScrollTop.value) {\n const delta = lastScrollTop.value - currentScrollTop\n if (delta < 50) {\n stopAutoScroll.value = true\n }\n emit('scroll-up')\n }\n if (currentScrollTop > lastScrollTop.value) {\n emit('scroll-down')\n if (\n currentScrollTop ===\n scrollEl.value.scrollHeight - scrollEl.value.clientHeight\n ) {\n stopAutoScroll.value = false\n }\n }\n lastScrollTop.value = currentScrollTop\n }\n\n const smootScrollToBottom = () => {\n if (!scrollEl.value) {\n return\n }\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n if (stopAutoScroll.value) {\n return\n }\n scrollTimeout.value = setTimeout(() => {\n scrollEl.value?.scrollTo({\n top: scrollEl.value.scrollHeight,\n behavior: 'smooth',\n })\n }, 10)\n }\n\n watch(\n () => props.status,\n (newStatus) => {\n if (newStatus === 'ready') {\n smootScrollToBottom()\n }\n },\n )\n\n const messagesElRefs = useTemplateRef<HTMLDivElement[]>('messagesEl')\n const height = ref<number>(0)\n watch(\n () => props.messages,\n async (messages) => {\n if (messages?.[messages.length - 1]?.role !== 'assistant') {\n stopAutoScroll.value = false\n return\n }\n\n // Wait for DOM to update before calculating heights\n await nextTick()\n smootScrollToBottom()\n\n if (props.disableHeightAdjustment) {\n return\n }\n\n const scrollElHeight = (scrollEl.value?.clientHeight ?? 0) - 48\n // last user message index\n const lastUserMessageIndex = messages\n .map((message) => message.role)\n .lastIndexOf('user')\n const lastUserMessageHeight =\n messagesElRefs.value?.[lastUserMessageIndex]?.clientHeight ?? 0\n const newHeight = scrollElHeight - lastUserMessageHeight\n if (newHeight) {\n height.value = newHeight\n }\n },\n {\n deep: true,\n },\n )\n\n onMounted(() => {\n smootScrollToBottom()\n })\n\n const isRevised = (messageId: string) => {\n return props.revisedAnswers?.some((r) => r.messageId === messageId)\n }\n\n const getMessageFeedback = (messageId: string) =>\n props.messageFeedbacks?.find((f) => f.messageId === messageId)\n\n const activeMessage = computed(() => {\n return props.messages?.[props.messages.length - 1]\n })\n const activeMessageLastPart = computed(() => {\n const active = activeMessage.value\n if (!active) {\n return null\n }\n return active.parts[active.parts.length - 1]\n })\n const isLoading = computed(() => {\n return props.status === 'submitted' || props.status === 'streaming'\n })\n const isError = computed(() => props.status === 'error')\n\n const activeMessageLastPartLabel = computed(() => {\n const part = activeMessageLastPart.value\n return getToolPartLabel($t, part)\n })\n const activeMessageLastPartIcon = computed(() => {\n const part = activeMessageLastPart.value\n return getPartIcon(part)\n })\n\n const getMessageIndexById = (messageId: string) => {\n return props.messages?.findIndex((m) => m.id === messageId)\n }\n const isLastUserMessageIndex = (index?: number) => {\n if (index === undefined || !props.messages) {\n return false\n }\n return index === (props.messages?.length ?? 0) - 1\n }\n const isMessageRegenerateButtonVisible = (index: number) => {\n return (\n isLastUserMessageIndex(index) &&\n props.status === 'ready' &&\n props.actions?.includes('regenerate')\n )\n }\n const isActionButtonVisible = (\n action: ChatMessageActions,\n index: number,\n ) => {\n return (\n ((isLastUserMessageIndex(index) && props.status === 'ready') ||\n !isLastUserMessageIndex(index)) &&\n props.actions?.includes(action)\n )\n }\n const isLastTextPart = (message: UIChatMessage) => {\n const lastPart = message.parts[message.parts.length - 1]\n return isTextPart(lastPart)\n }\n const getPreviousAssistantMessage = (index: number) => {\n return props.messages\n ?.slice(0, index)\n .reverse()\n .find((message) => message.role === 'assistant')\n }\n const getNextAssistantMessage = (index: number) => {\n return props.messages\n ?.slice(index + 1)\n .find((message) => message.role === 'assistant')\n }\n const isDayChanged = (index: number) => {\n const previousAssistantMessage = getPreviousAssistantMessage(index)\n const nextAssistantMessage = getNextAssistantMessage(index)\n if (\n !previousAssistantMessage?.metadata?.createdAt ||\n !nextAssistantMessage?.metadata?.createdAt\n ) {\n return false\n }\n const currentDate = new Date(\n previousAssistantMessage.metadata.createdAt,\n )\n const previousDate = new Date(nextAssistantMessage.metadata.createdAt)\n return (\n currentDate.getFullYear() !== previousDate.getFullYear() ||\n currentDate.getMonth() !== previousDate.getMonth() ||\n currentDate.getDate() !== previousDate.getDate()\n )\n }\n const showMessageFooter = (message: UIChatMessage, index: number) => {\n if (index === 0 || message.role !== 'assistant') {\n return false\n }\n return (\n props.actions?.length ||\n (props.showMessageDateTime &&\n message.metadata?.createdAt !== undefined) ||\n (props.showMessageTokensCount &&\n message.metadata?.totalTokens !== undefined)\n )\n }\n // feedback message auto scroll\n const feedbackMessageEl = ref<(typeof PkChatbotFeedbackForm)[]>()\n watch(\n () => props.feedbackMessageId,\n async () => {\n await nextTick()\n setTimeout(() => {\n if (props.feedbackMessageId) {\n if (feedbackMessageEl.value?.[0]?.$el) {\n if (\n isLastUserMessageIndex(\n getMessageIndexById(props.feedbackMessageId),\n )\n ) {\n smootScrollToBottom()\n return\n }\n feedbackMessageEl.value[0].$el.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, 10)\n },\n )\n</script>\n\n<template>\n <div\n ref=\"scrollEl\"\n class=\"pk-chatbot-messages\"\n :style=\"{\n '--chatbot-main-color': mainColor,\n '--chatbot-contrast-color': contrastColor,\n }\"\n @scroll=\"handleScroll\">\n <div class=\"pk-chatbot-messages__wrapper\">\n <template v-for=\"(message, index) in messages\" :key=\"message.id\">\n <div\n v-if=\"\n index > 0 &&\n message.role === 'user' &&\n isDayChanged(index)\n \"\n class=\"pk-chatbot-divider\">\n <span class=\"pk-chatbot-divider__label\">\n {{\n $d(\n new Date(\n getNextAssistantMessage(index)?.metadata\n ?.createdAt ?? '',\n ),\n 'short',\n )\n }}\n </span>\n </div>\n <div\n ref=\"messagesEl\"\n class=\"pk-chatbot-message\"\n :class=\"[\n `pk-chatbot-message--${message.role}`,\n {\n 'pk-chatbot-message--loading':\n isLastUserMessageIndex(index) &&\n isLoading &&\n message.role === 'assistant',\n },\n ]\"\n :style=\"{\n minHeight:\n isLastUserMessageIndex(index) &&\n message.role === 'assistant' &&\n !isError\n ? `${height}px`\n : undefined,\n }\">\n <template\n v-for=\"(part, partIndex) in message.parts\"\n :key=\"partIndex\">\n <div\n v-if=\"isTextPart(part)\"\n class=\"pk-chatbot-message__text\">\n <PkStreamingMarkdown\n v-if=\"message.role === 'assistant'\"\n class=\"wysiwyg\"\n :markdown=\"part.text\"\n :loading=\"\n index === (messages?.length ?? 0) - 1 &&\n status === 'streaming'\n \" />\n <template v-else>\n {{ part.text }}\n </template>\n </div>\n <PkChatbotFilePreview\n v-else-if=\"isFilePart(part)\"\n :media-type=\"part.mediaType\"\n :url=\"part.url\"\n :filename=\"part.filename\" />\n <template\n v-else-if=\"\n isToolPart(part) && !isStreamingPart(part)\n \">\n <component\n :is=\"toolComponentMap[getToolPartName(part)]\"\n v-if=\"\n !slots[part.type] &&\n toolComponentMap[getToolPartName(part)]\n \"\n :key=\"`component-${partIndex}-${getPartState(part)}`\"\n :part />\n <slot\n v-else\n :key=\"`slot-${partIndex}-${getPartState(part)}`\"\n :name=\"part.type\"\n v-bind=\"{\n message,\n part,\n index,\n isLoading,\n }\">\n <template v-if=\"showAllMessageParts\">\n <div\n class=\"pk-chatbot-message__loading-info\">\n <div class=\"flex gap-8 items-center\">\n <VvIcon\n v-if=\"getPartIcon(part)\"\n :name=\"getPartIcon(part)!\"\n class=\"shrink-0\" />\n <code\n class=\"font-mono rounded text-10\">\n {{ toKebabCase(part.type) }}\n </code>\n </div>\n </div>\n </template>\n </slot>\n </template>\n </template>\n <transition mode=\"out-in\">\n <div\n v-if=\"\n isLoading &&\n isLastUserMessageIndex(index) &&\n !isLastTextPart(message) &&\n message.role === 'assistant'\n \"\n :key=\"`loading-info-${message.id}`\"\n class=\"pk-chatbot-message__loading-info\">\n <div class=\"flex gap-8 items-center\">\n <VvIcon\n name=\"line-md:loading-loop\"\n class=\"shrink-0\" />\n <transition mode=\"out-in\">\n <VvIcon\n v-if=\"activeMessageLastPartIcon\"\n :key=\"activeMessageLastPartIcon\"\n class=\"shrink-0\"\n :name=\"activeMessageLastPartIcon\" />\n </transition>\n <transition mode=\"out-in\">\n <span\n v-if=\"activeMessageLastPartLabel\"\n :key=\"activeMessageLastPartLabel\"\n class=\"text-10\">\n {{ activeMessageLastPartLabel }}\n </span>\n </transition>\n </div>\n <transition mode=\"out-in\">\n <PkStreamingMarkdownAutoscroll\n v-if=\"\n activeMessageLastPart &&\n 'text' in activeMessageLastPart &&\n activeMessageLastPart.text.trim()\n \"\n :markdown=\"activeMessageLastPart.text\"\n inner-class=\"wysiwyg\"\n class=\"border border-surface-4 rounded p-4 mt-8 bg-surface-1 max-h-64 text-10 w-full\" />\n </transition>\n </div>\n </transition>\n <transition mode=\"out-in\">\n <div\n v-if=\"showMessageFooter(message, index)\"\n class=\"pk-chatbot-message__footer\">\n <VvButtonGroup modifiers=\"compact\" class=\"mr-auto\">\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isMessageRegenerateButtonVisible(\n index,\n )\n \"\n icon=\"ri:reset-right-line\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.regenerate')\"\n @click.stop=\"$emit('regenerate')\" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'show-info',\n index,\n )\n \"\n icon=\"ri:information-line\"\n :title=\"$t('action.getMoreInfo')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('show-info', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'revise',\n index,\n )\n \"\n :icon=\"\n isRevised(message.id)\n ? 'ri:file-edit-fill'\n : 'ri:file-edit-line'\n \"\n :title=\"\n isRevised(message.id)\n ? $t('action.editRevise')\n : $t('action.createRevise')\n \"\n modifiers=\"action-quiet-small\"\n :class=\"{\n 'text-brand': isRevised(message.id),\n }\"\n @click.stop=\"\n $emit('revise', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'upvote',\n index,\n )\n \"\n :icon=\"\n getMessageFeedback(message.id)\n ?.vote === 'upvote'\n ? 'ri:thumb-up-fill'\n : 'ri:thumb-up-line'\n \"\n :title=\"$t('action.upvote')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('upvote', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'downvote',\n index,\n )\n \"\n :icon=\"\n getMessageFeedback(message.id)\n ?.vote === 'downvote'\n ? 'ri:thumb-down-fill'\n : 'ri:thumb-down-line'\n \"\n :title=\"$t('action.downvote')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('downvote', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'feedback',\n index,\n )\n \"\n :icon=\"\n getMessageFeedback(message.id)\n ?.comment\n ? 'ri:feedback-fill'\n : 'ri:feedback-line'\n \"\n :title=\"$t('action.feedback')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('feedback', message)\n \" />\n </transition>\n </VvButtonGroup>\n <span\n v-if=\"\n showMessageTokensCount &&\n message.metadata?.totalTokens\n \"\n class=\"flex items-center gap-4 text-12 text-word-3\">\n <VvIcon name=\"ri:ai-generate-2-line\" />\n {{\n $n(message.metadata.totalTokens, 'integer')\n }}\n {{ $t('label.tokens') }}\n </span>\n <time\n v-if=\"\n showMessageDateTime &&\n message.metadata?.createdAt\n \"\n :datetime=\"\n new Date(\n message.metadata?.createdAt,\n ).toISOString()\n \"\n class=\"flex items-center gap-4 text-12 text-word-3\">\n <VvIcon name=\"ri:time-line\" />\n {{\n $d(\n new Date(message.metadata?.createdAt),\n 'date-time',\n )\n }}\n </time>\n <div\n v-if=\"\n showMessageDateTime &&\n message?.metadata?.completedAt &&\n message?.metadata?.createdAt\n \"\n class=\"flex items-center gap-4 text-12 text-word-3\">\n <VvIcon name=\"ri:hourglass-line\" />\n <PkRelativeTime\n :date=\"message.metadata?.createdAt\"\n :end-date=\"message.metadata?.completedAt\" />\n </div>\n </div>\n </transition>\n <transition mode=\"out-in\">\n <PkChatbotFeedbackForm\n v-if=\"message.id === feedbackMessageId\"\n ref=\"feedbackMessageEl\"\n :loading=\"feedbackLoading\"\n :submitted=\"feedbackSubmitted\"\n :error=\"feedbackError\"\n @submit=\"$emit('feedback-submit', $event)\"\n @close=\"$emit('feedback-close')\" />\n </transition>\n </div>\n </template>\n <PkChatbotError\n v-if=\"isError\"\n :error\n @retry=\"$emit('auto-retry')\"\n @reset=\"$emit('reset-chat')\" />\n <div\n v-if=\"activeMessage?.role === 'user' || isError\"\n :style=\"{ minHeight: `${height}px` }\"></div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-messages {\n overflow-y: auto;\n flex: 1;\n min-width: 0;\n font-size: var(--spacing-14);\n\n scrollbar-width: thin;\n scrollbar-gutter: auto;\n scrollbar-color: var(--color-word-5) var(--color-surface-1);\n\n &__wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n }\n\n &__divider {\n border-bottom: 1px solid var(--color-surface-3);\n }\n }\n\n .pk-chatbot-divider {\n position: relative;\n border-bottom: 1px solid var(--color-surface-3);\n\n &__label {\n position: absolute;\n padding-inline: var(--spacing-8);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--color-surface);\n color: var(--color-word-4);\n font-size: var(--text-12);\n }\n }\n\n .pk-chatbot-message {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n min-width: 0;\n align-items: flex-start;\n\n &__text {\n color: var(--color-word-2);\n line-height: var(--leading-normal);\n border-width: var(--spacing-px);\n border-color: var(--color-surface-3);\n padding: var(--spacing-sm);\n border-radius: var(--rounded-xl) var(--rounded-xl) var(--rounded-xl)\n 0;\n }\n\n &__loading-info {\n line-height: var(--leading-normal);\n border-width: var(--spacing-px);\n border-color: var(--color-surface-3);\n padding: var(--spacing-sm);\n border-radius: var(--rounded-xl) var(--rounded-xl) var(--rounded-xl)\n 0;\n font-size: var(--text-12);\n color: var(--color-word-3);\n }\n\n &__footer {\n width: 100%;\n display: flex;\n gap: var(--spacing-8);\n align-items: center;\n }\n\n &--user {\n align-items: flex-end;\n\n .pk-chatbot-message__text {\n background-color: var(\n --chatbot-main-color,\n var(--color-surface-1)\n );\n border-width: var(--spacing-px);\n border-color: var(--chatbot-main-color, var(--color-surface-4));\n color: var(--chatbot-contrast-color, var(--color-word-1));\n border-radius: var(--rounded-xl) var(--rounded-xl) 0\n var(--rounded-xl);\n }\n }\n\n &--assistant {\n width: 100%;\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: var(--spacing-16);\n overflow: hidden;\n\n .pk-chatbot-message__text {\n width: 100%;\n }\n }\n\n &--system {\n align-items: flex-end;\n\n .pk-chatbot-message__text {\n display: flex;\n gap: var(--spacing-8);\n font-size: var(--text-12);\n padding: var(--spacing-8) var(--spacing-sm);\n align-items: center;\n border-width: var(--spacing-px);\n border-color: var(--chatbot-main-color, var(--color-surface-4));\n color: var(--chatbot-main-color, var(--color-word-1));\n border-radius: var(--rounded-xl) var(--rounded-xl) 0\n var(--rounded-xl);\n }\n }\n }\n</style>\n","<script lang=\"ts\" setup>\n import type {\n ChatMessageActions,\n MessageFeedback,\n RevisedAnswer,\n UIChatMessage,\n } from 'models'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n import PkChatbotError from './PkChatbotError.vue'\n import PkChatbotFeedbackForm from './PkChatbotFeedbackForm.vue'\n import PkChatbotFilePreview from './PkChatbotFilePreview.vue'\n import PkRelativeTime from '../PkRelativeTime.vue'\n import { useI18n } from 'vue-i18n'\n import {\n useTemplateRef,\n ref,\n watch,\n onMounted,\n computed,\n nextTick,\n useSlots,\n } from 'vue'\n import { toolComponentMap } from './toolComponentMap'\n import {\n resolveContrastColor,\n getPartState,\n isTextPart,\n isFilePart,\n isToolPart,\n isStreamingPart,\n getPartIcon,\n getToolPartLabel,\n } from './utils'\n import { getToolPartName, toKebabCase } from 'utils'\n import PkStreamingMarkdownAutoscroll from './PkStreamingMarkdownAutoscroll.vue'\n\n const props = defineProps<{\n status?: 'submitted' | 'streaming' | 'ready' | 'error'\n messages?: UIChatMessage[]\n logo?: string\n name?: string\n error?: Error\n actions?: ChatMessageActions[]\n mainColor?: string\n textColor?: 'auto' | 'white' | 'black'\n revisedAnswers?: RevisedAnswer[]\n messageFeedbacks?: MessageFeedback[]\n disableHeightAdjustment?: boolean\n showMessageDateTime?: boolean\n showMessageTokensCount?: boolean\n showAllMessageParts?: boolean\n // TODO: move feedback in a separate component to avoid passing these props\n feedbackMessageId?: string\n feedbackLoading?: boolean\n feedbackSubmitted?: boolean\n feedbackError?: string\n }>()\n\n const emit = defineEmits<{\n (e: 'show-info', message: UIChatMessage): void\n (e: 'regenerate'): void\n (e: 'revise', message: UIChatMessage): void\n (e: 'upvote', message: UIChatMessage): void\n (e: 'downvote', message: UIChatMessage): void\n (e: 'feedback', message: UIChatMessage): void\n (e: 'feedback-submit', comment: string): void\n (e: 'feedback-close'): void\n (e: 'scroll-up'): void\n (e: 'scroll-down'): void\n (e: 'auto-retry'): void\n (e: 'reset-chat'): void\n }>()\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const slots = useSlots()\n\n const scrollEl = useTemplateRef<HTMLDivElement>('scrollEl')\n const scrollTimeout = ref<NodeJS.Timeout>()\n const lastScrollTop = ref<number>(0)\n const stopAutoScroll = ref<boolean>(false)\n const contrastColor = computed(() =>\n resolveContrastColor(props.textColor, props.mainColor),\n )\n\n const handleScroll = () => {\n if (!scrollEl.value) {\n return\n }\n const currentScrollTop = scrollEl.value.scrollTop\n if (currentScrollTop < lastScrollTop.value) {\n const delta = lastScrollTop.value - currentScrollTop\n if (delta < 50) {\n stopAutoScroll.value = true\n }\n emit('scroll-up')\n }\n if (currentScrollTop > lastScrollTop.value) {\n emit('scroll-down')\n if (\n currentScrollTop ===\n scrollEl.value.scrollHeight - scrollEl.value.clientHeight\n ) {\n stopAutoScroll.value = false\n }\n }\n lastScrollTop.value = currentScrollTop\n }\n\n const smootScrollToBottom = () => {\n if (!scrollEl.value) {\n return\n }\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n if (stopAutoScroll.value) {\n return\n }\n scrollTimeout.value = setTimeout(() => {\n scrollEl.value?.scrollTo({\n top: scrollEl.value.scrollHeight,\n behavior: 'smooth',\n })\n }, 10)\n }\n\n watch(\n () => props.status,\n (newStatus) => {\n if (newStatus === 'ready') {\n smootScrollToBottom()\n }\n },\n )\n\n const messagesElRefs = useTemplateRef<HTMLDivElement[]>('messagesEl')\n const height = ref<number>(0)\n watch(\n () => props.messages,\n async (messages) => {\n if (messages?.[messages.length - 1]?.role !== 'assistant') {\n stopAutoScroll.value = false\n return\n }\n\n // Wait for DOM to update before calculating heights\n await nextTick()\n smootScrollToBottom()\n\n if (props.disableHeightAdjustment) {\n return\n }\n\n const scrollElHeight = (scrollEl.value?.clientHeight ?? 0) - 48\n // last user message index\n const lastUserMessageIndex = messages\n .map((message) => message.role)\n .lastIndexOf('user')\n const lastUserMessageHeight =\n messagesElRefs.value?.[lastUserMessageIndex]?.clientHeight ?? 0\n const newHeight = scrollElHeight - lastUserMessageHeight\n if (newHeight) {\n height.value = newHeight\n }\n },\n {\n deep: true,\n },\n )\n\n onMounted(() => {\n smootScrollToBottom()\n })\n\n const isRevised = (messageId: string) => {\n return props.revisedAnswers?.some((r) => r.messageId === messageId)\n }\n\n const getMessageFeedback = (messageId: string) =>\n props.messageFeedbacks?.find((f) => f.messageId === messageId)\n\n const activeMessage = computed(() => {\n return props.messages?.[props.messages.length - 1]\n })\n const activeMessageLastPart = computed(() => {\n const active = activeMessage.value\n if (!active) {\n return null\n }\n return active.parts[active.parts.length - 1]\n })\n const isLoading = computed(() => {\n return props.status === 'submitted' || props.status === 'streaming'\n })\n const isError = computed(() => props.status === 'error')\n\n const activeMessageLastPartLabel = computed(() => {\n const part = activeMessageLastPart.value\n return getToolPartLabel($t, part)\n })\n const activeMessageLastPartIcon = computed(() => {\n const part = activeMessageLastPart.value\n return getPartIcon(part)\n })\n\n const getMessageIndexById = (messageId: string) => {\n return props.messages?.findIndex((m) => m.id === messageId)\n }\n const isLastUserMessageIndex = (index?: number) => {\n if (index === undefined || !props.messages) {\n return false\n }\n return index === (props.messages?.length ?? 0) - 1\n }\n const isMessageRegenerateButtonVisible = (index: number) => {\n return (\n isLastUserMessageIndex(index) &&\n props.status === 'ready' &&\n props.actions?.includes('regenerate')\n )\n }\n const isActionButtonVisible = (\n action: ChatMessageActions,\n index: number,\n ) => {\n return (\n ((isLastUserMessageIndex(index) && props.status === 'ready') ||\n !isLastUserMessageIndex(index)) &&\n props.actions?.includes(action)\n )\n }\n const isLastTextPart = (message: UIChatMessage) => {\n const lastPart = message.parts[message.parts.length - 1]\n return isTextPart(lastPart)\n }\n const getPreviousAssistantMessage = (index: number) => {\n return props.messages\n ?.slice(0, index)\n .reverse()\n .find((message) => message.role === 'assistant')\n }\n const getNextAssistantMessage = (index: number) => {\n return props.messages\n ?.slice(index + 1)\n .find((message) => message.role === 'assistant')\n }\n const isDayChanged = (index: number) => {\n const previousAssistantMessage = getPreviousAssistantMessage(index)\n const nextAssistantMessage = getNextAssistantMessage(index)\n if (\n !previousAssistantMessage?.metadata?.createdAt ||\n !nextAssistantMessage?.metadata?.createdAt\n ) {\n return false\n }\n const currentDate = new Date(\n previousAssistantMessage.metadata.createdAt,\n )\n const previousDate = new Date(nextAssistantMessage.metadata.createdAt)\n return (\n currentDate.getFullYear() !== previousDate.getFullYear() ||\n currentDate.getMonth() !== previousDate.getMonth() ||\n currentDate.getDate() !== previousDate.getDate()\n )\n }\n const showMessageFooter = (message: UIChatMessage, index: number) => {\n if (index === 0 || message.role !== 'assistant') {\n return false\n }\n return (\n props.actions?.length ||\n (props.showMessageDateTime &&\n message.metadata?.createdAt !== undefined) ||\n (props.showMessageTokensCount &&\n message.metadata?.totalTokens !== undefined)\n )\n }\n // feedback message auto scroll\n const feedbackMessageEl = ref<(typeof PkChatbotFeedbackForm)[]>()\n watch(\n () => props.feedbackMessageId,\n async () => {\n await nextTick()\n setTimeout(() => {\n if (props.feedbackMessageId) {\n if (feedbackMessageEl.value?.[0]?.$el) {\n if (\n isLastUserMessageIndex(\n getMessageIndexById(props.feedbackMessageId),\n )\n ) {\n smootScrollToBottom()\n return\n }\n feedbackMessageEl.value[0].$el.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, 10)\n },\n )\n</script>\n\n<template>\n <div\n ref=\"scrollEl\"\n class=\"pk-chatbot-messages\"\n :style=\"{\n '--chatbot-main-color': mainColor,\n '--chatbot-contrast-color': contrastColor,\n }\"\n @scroll=\"handleScroll\">\n <div class=\"pk-chatbot-messages__wrapper\">\n <template v-for=\"(message, index) in messages\" :key=\"message.id\">\n <div\n v-if=\"\n index > 0 &&\n message.role === 'user' &&\n isDayChanged(index)\n \"\n class=\"pk-chatbot-divider\">\n <span class=\"pk-chatbot-divider__label\">\n {{\n $d(\n new Date(\n getNextAssistantMessage(index)?.metadata\n ?.createdAt ?? '',\n ),\n 'short',\n )\n }}\n </span>\n </div>\n <div\n ref=\"messagesEl\"\n class=\"pk-chatbot-message\"\n :class=\"[\n `pk-chatbot-message--${message.role}`,\n {\n 'pk-chatbot-message--loading':\n isLastUserMessageIndex(index) &&\n isLoading &&\n message.role === 'assistant',\n },\n ]\"\n :style=\"{\n minHeight:\n isLastUserMessageIndex(index) &&\n message.role === 'assistant' &&\n !isError\n ? `${height}px`\n : undefined,\n }\">\n <template\n v-for=\"(part, partIndex) in message.parts\"\n :key=\"partIndex\">\n <div\n v-if=\"isTextPart(part)\"\n class=\"pk-chatbot-message__text\">\n <PkStreamingMarkdown\n v-if=\"message.role === 'assistant'\"\n class=\"wysiwyg\"\n :markdown=\"part.text\"\n :loading=\"\n index === (messages?.length ?? 0) - 1 &&\n status === 'streaming'\n \" />\n <template v-else>\n {{ part.text }}\n </template>\n </div>\n <PkChatbotFilePreview\n v-else-if=\"isFilePart(part)\"\n :media-type=\"part.mediaType\"\n :url=\"part.url\"\n :filename=\"part.filename\" />\n <template\n v-else-if=\"\n isToolPart(part) && !isStreamingPart(part)\n \">\n <component\n :is=\"toolComponentMap[getToolPartName(part)]\"\n v-if=\"\n !slots[part.type] &&\n toolComponentMap[getToolPartName(part)]\n \"\n :key=\"`component-${partIndex}-${getPartState(part)}`\"\n :part />\n <slot\n v-else\n :key=\"`slot-${partIndex}-${getPartState(part)}`\"\n :name=\"part.type\"\n v-bind=\"{\n message,\n part,\n index,\n isLoading,\n }\">\n <template v-if=\"showAllMessageParts\">\n <div\n class=\"pk-chatbot-message__loading-info\">\n <div class=\"flex gap-8 items-center\">\n <VvIcon\n v-if=\"getPartIcon(part)\"\n :name=\"getPartIcon(part)!\"\n class=\"shrink-0\" />\n <code\n class=\"font-mono rounded text-10\">\n {{ toKebabCase(part.type) }}\n </code>\n </div>\n </div>\n </template>\n </slot>\n </template>\n </template>\n <transition mode=\"out-in\">\n <div\n v-if=\"\n isLoading &&\n isLastUserMessageIndex(index) &&\n !isLastTextPart(message) &&\n message.role === 'assistant'\n \"\n :key=\"`loading-info-${message.id}`\"\n class=\"pk-chatbot-message__loading-info\">\n <div class=\"flex gap-8 items-center\">\n <VvIcon\n name=\"line-md:loading-loop\"\n class=\"shrink-0\" />\n <transition mode=\"out-in\">\n <VvIcon\n v-if=\"activeMessageLastPartIcon\"\n :key=\"activeMessageLastPartIcon\"\n class=\"shrink-0\"\n :name=\"activeMessageLastPartIcon\" />\n </transition>\n <transition mode=\"out-in\">\n <span\n v-if=\"activeMessageLastPartLabel\"\n :key=\"activeMessageLastPartLabel\"\n class=\"text-10\">\n {{ activeMessageLastPartLabel }}\n </span>\n </transition>\n </div>\n <transition mode=\"out-in\">\n <PkStreamingMarkdownAutoscroll\n v-if=\"\n activeMessageLastPart &&\n 'text' in activeMessageLastPart &&\n activeMessageLastPart.text.trim()\n \"\n :markdown=\"activeMessageLastPart.text\"\n inner-class=\"wysiwyg\"\n class=\"border border-surface-4 rounded p-4 mt-8 bg-surface-1 max-h-64 text-10 w-full\" />\n </transition>\n </div>\n </transition>\n <transition mode=\"out-in\">\n <div\n v-if=\"showMessageFooter(message, index)\"\n class=\"pk-chatbot-message__footer\">\n <VvButtonGroup modifiers=\"compact\" class=\"mr-auto\">\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isMessageRegenerateButtonVisible(\n index,\n )\n \"\n icon=\"ri:reset-right-line\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.regenerate')\"\n @click.stop=\"$emit('regenerate')\" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'show-info',\n index,\n )\n \"\n icon=\"ri:information-line\"\n :title=\"$t('action.getMoreInfo')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('show-info', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'revise',\n index,\n )\n \"\n :icon=\"\n isRevised(message.id)\n ? 'ri:file-edit-fill'\n : 'ri:file-edit-line'\n \"\n :title=\"\n isRevised(message.id)\n ? $t('action.editRevise')\n : $t('action.createRevise')\n \"\n modifiers=\"action-quiet-small\"\n :class=\"{\n 'text-brand': isRevised(message.id),\n }\"\n @click.stop=\"\n $emit('revise', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'upvote',\n index,\n )\n \"\n :icon=\"\n getMessageFeedback(message.id)\n ?.vote === 'upvote'\n ? 'ri:thumb-up-fill'\n : 'ri:thumb-up-line'\n \"\n :title=\"$t('action.upvote')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('upvote', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'downvote',\n index,\n )\n \"\n :icon=\"\n getMessageFeedback(message.id)\n ?.vote === 'downvote'\n ? 'ri:thumb-down-fill'\n : 'ri:thumb-down-line'\n \"\n :title=\"$t('action.downvote')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('downvote', message)\n \" />\n </transition>\n <transition mode=\"out-in\">\n <VvButton\n v-if=\"\n isActionButtonVisible(\n 'feedback',\n index,\n )\n \"\n :icon=\"\n getMessageFeedback(message.id)\n ?.comment\n ? 'ri:feedback-fill'\n : 'ri:feedback-line'\n \"\n :title=\"$t('action.feedback')\"\n modifiers=\"action-quiet-small\"\n @click.stop=\"\n $emit('feedback', message)\n \" />\n </transition>\n </VvButtonGroup>\n <span\n v-if=\"\n showMessageTokensCount &&\n message.metadata?.totalTokens\n \"\n class=\"flex items-center gap-4 text-12 text-word-3\">\n <VvIcon name=\"ri:ai-generate-2-line\" />\n {{\n $n(message.metadata.totalTokens, 'integer')\n }}\n {{ $t('label.tokens') }}\n </span>\n <time\n v-if=\"\n showMessageDateTime &&\n message.metadata?.createdAt\n \"\n :datetime=\"\n new Date(\n message.metadata?.createdAt,\n ).toISOString()\n \"\n class=\"flex items-center gap-4 text-12 text-word-3\">\n <VvIcon name=\"ri:time-line\" />\n {{\n $d(\n new Date(message.metadata?.createdAt),\n 'date-time',\n )\n }}\n </time>\n <div\n v-if=\"\n showMessageDateTime &&\n message?.metadata?.completedAt &&\n message?.metadata?.createdAt\n \"\n class=\"flex items-center gap-4 text-12 text-word-3\">\n <VvIcon name=\"ri:hourglass-line\" />\n <PkRelativeTime\n :date=\"message.metadata?.createdAt\"\n :end-date=\"message.metadata?.completedAt\" />\n </div>\n </div>\n </transition>\n <transition mode=\"out-in\">\n <PkChatbotFeedbackForm\n v-if=\"message.id === feedbackMessageId\"\n ref=\"feedbackMessageEl\"\n :loading=\"feedbackLoading\"\n :submitted=\"feedbackSubmitted\"\n :error=\"feedbackError\"\n @submit=\"$emit('feedback-submit', $event)\"\n @close=\"$emit('feedback-close')\" />\n </transition>\n </div>\n </template>\n <PkChatbotError\n v-if=\"isError\"\n :error\n @retry=\"$emit('auto-retry')\"\n @reset=\"$emit('reset-chat')\" />\n <div\n v-if=\"activeMessage?.role === 'user' || isError\"\n :style=\"{ minHeight: `${height}px` }\"></div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-messages {\n overflow-y: auto;\n flex: 1;\n min-width: 0;\n font-size: var(--spacing-14);\n\n scrollbar-width: thin;\n scrollbar-gutter: auto;\n scrollbar-color: var(--color-word-5) var(--color-surface-1);\n\n &__wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n }\n\n &__divider {\n border-bottom: 1px solid var(--color-surface-3);\n }\n }\n\n .pk-chatbot-divider {\n position: relative;\n border-bottom: 1px solid var(--color-surface-3);\n\n &__label {\n position: absolute;\n padding-inline: var(--spacing-8);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--color-surface);\n color: var(--color-word-4);\n font-size: var(--text-12);\n }\n }\n\n .pk-chatbot-message {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n min-width: 0;\n align-items: flex-start;\n\n &__text {\n color: var(--color-word-2);\n line-height: var(--leading-normal);\n border-width: var(--spacing-px);\n border-color: var(--color-surface-3);\n padding: var(--spacing-sm);\n border-radius: var(--rounded-xl) var(--rounded-xl) var(--rounded-xl)\n 0;\n }\n\n &__loading-info {\n line-height: var(--leading-normal);\n border-width: var(--spacing-px);\n border-color: var(--color-surface-3);\n padding: var(--spacing-sm);\n border-radius: var(--rounded-xl) var(--rounded-xl) var(--rounded-xl)\n 0;\n font-size: var(--text-12);\n color: var(--color-word-3);\n }\n\n &__footer {\n width: 100%;\n display: flex;\n gap: var(--spacing-8);\n align-items: center;\n }\n\n &--user {\n align-items: flex-end;\n\n .pk-chatbot-message__text {\n background-color: var(\n --chatbot-main-color,\n var(--color-surface-1)\n );\n border-width: var(--spacing-px);\n border-color: var(--chatbot-main-color, var(--color-surface-4));\n color: var(--chatbot-contrast-color, var(--color-word-1));\n border-radius: var(--rounded-xl) var(--rounded-xl) 0\n var(--rounded-xl);\n }\n }\n\n &--assistant {\n width: 100%;\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: var(--spacing-16);\n overflow: hidden;\n\n .pk-chatbot-message__text {\n width: 100%;\n }\n }\n\n &--system {\n align-items: flex-end;\n\n .pk-chatbot-message__text {\n display: flex;\n gap: var(--spacing-8);\n font-size: var(--text-12);\n padding: var(--spacing-8) var(--spacing-sm);\n align-items: center;\n border-width: var(--spacing-px);\n border-color: var(--chatbot-main-color, var(--color-surface-4));\n color: var(--chatbot-main-color, var(--color-word-1));\n border-radius: var(--rounded-xl) var(--rounded-xl) 0\n var(--rounded-xl);\n }\n }\n }\n</style>\n"],"mappings":"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"}
|