@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composables.js","names":[],"sources":["../src/utils/cookie.ts","../src/utils/index.ts","../src/composables/useChatbotAgent.ts","../src/composables/useChatbotAuth.ts","../src/composables/useFocusTrapBypass.ts"],"sourcesContent":["const DEFAULT_COOKIE_NAME = 'eight-wave-ai'\nconst DEFAULT_USER_ID_COOKIE_SUFFIX = '-uid'\nconst MAX_AGE_ONE_YEAR = 31536000\n\nfunction setCookie(name: string, value: string, maxAge: number) {\n document.cookie = `${name}=${value}; path=/; max-age=${maxAge}; SameSite=Lax; Secure`\n}\n\nfunction getCookie(name: string): string {\n return (\n document.cookie\n .split('; ')\n .find((row) => row.startsWith(`${name}=`))\n ?.split('=')[1] ?? ''\n )\n}\n\n// create first-party session cookie for authentication with 1 year expiry\nexport function setSessionCookie(\n token: string,\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n setCookie(cookieName, token, MAX_AGE_ONE_YEAR)\n}\n\n// retrieve first-party session cookie\nexport function getSessionCookie(cookieName: string = DEFAULT_COOKIE_NAME) {\n return getCookie(cookieName)\n}\n\n// persist anonymous userId alongside session token to enable re-auth after session expiry\nexport function setAnonymousUserIdCookie(\n userId: string,\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n setCookie(\n `${cookieName}${DEFAULT_USER_ID_COOKIE_SUFFIX}`,\n userId,\n MAX_AGE_ONE_YEAR,\n )\n}\n\n// retrieve persisted anonymous userId\nexport function getAnonymousUserIdCookie(\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n return getCookie(`${cookieName}${DEFAULT_USER_ID_COOKIE_SUFFIX}`)\n}\n\n// TODO: call this when an anonymous user links a real account (onLinkAccount flow on the client side)\nexport function clearAnonymousUserIdCookie(\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n setCookie(`${cookieName}${DEFAULT_USER_ID_COOKIE_SUFFIX}`, '', 0)\n}\n","export * from './cookie'\n\nexport const BACKEND_URL: string = import.meta.env.VITE_BACKEND_URL\nexport const AUTH_BASE_PATH = 'auth'\n","import type { MaybeRefOrGetter } from 'vue'\nimport { computed, ref, toValue, watch } from 'vue'\nimport type { AgentPublic } from 'models'\nimport { createChatbotApiClient } from 'composables'\nimport { resolveContrastColor } from 'components/src/chat/utils'\nimport { BACKEND_URL } from '~/utils'\n\nexport function useChatbotAgent(options: {\n baseUrl?: string\n basePath?: string\n organizationSlug?: MaybeRefOrGetter<string>\n agentId?: MaybeRefOrGetter<string>\n headers?: MaybeRefOrGetter<Record<string, string> | undefined>\n}) {\n const agent = ref<AgentPublic>()\n\n watch(\n [\n () => toValue(options.organizationSlug),\n () => toValue(options.agentId),\n ],\n async ([newOrganizationSlug, newAgentId]) => {\n if (!newOrganizationSlug || !newAgentId) {\n return\n }\n const apiClient = createChatbotApiClient({\n baseUrl: options.baseUrl ?? BACKEND_URL,\n basePath: options.basePath,\n headers: () => toValue(options.headers),\n })\n try {\n agent.value = await apiClient.getAgent(\n newOrganizationSlug,\n newAgentId,\n )\n } catch {\n agent.value = undefined\n }\n },\n { immediate: true },\n )\n\n const contrastColor = computed(() =>\n resolveContrastColor(\n agent.value?.interface.textColor,\n agent.value?.interface.mainColor,\n ),\n )\n const mainColor = computed(() => agent.value?.interface.mainColor)\n\n const themeClass = computed(() => {\n const theme = agent.value?.interface.theme\n if (!theme || theme === 'auto') {\n return ['theme']\n }\n return ['theme', `theme--${theme}`]\n })\n\n const themeStyle = computed(() =>\n agent.value\n ? {\n '--chatbot-main-color': mainColor.value,\n '--chatbot-contrast-color': contrastColor.value,\n }\n : undefined,\n )\n\n return {\n agent,\n contrastColor,\n mainColor,\n themeClass,\n themeStyle,\n }\n}\n","import type { MaybeRefOrGetter } from 'vue'\nimport type { BetterAuthClientPlugin } from 'better-auth/client'\nimport type { auth } from 'auth'\nimport { computed, ref, watch, toValue } from 'vue'\nimport { createAuthClient } from 'better-auth/vue'\nimport {\n inferAdditionalFields,\n anonymousClient,\n} from 'better-auth/client/plugins'\nimport {\n getSessionCookie,\n setSessionCookie,\n getAnonymousUserIdCookie,\n setAnonymousUserIdCookie,\n BACKEND_URL,\n AUTH_BASE_PATH,\n} from '~/utils'\n\nfunction anonymousReauthClient() {\n return {\n id: 'anonymous-reauth' as const,\n getActions: ($fetch) => ({\n signIn: {\n anonymousReauth: async (data: { userId: string }) => {\n return $fetch<{\n token: string\n user: Record<string, unknown>\n }>('/sign-in/anonymous-reauth', {\n method: 'POST',\n body: data,\n })\n },\n },\n }),\n pathMethods: {\n '/sign-in/anonymous-reauth': 'POST' as const,\n },\n } satisfies BetterAuthClientPlugin\n}\n\nfunction externalAuthClient() {\n return {\n id: 'external-auth' as const,\n getActions: ($fetch) => ({\n signIn: {\n externalToken: async (data: { token: string }) => {\n return $fetch<{\n token: string\n user: Record<string, unknown>\n }>('/sign-in/external-token', {\n method: 'POST',\n body: data,\n })\n },\n },\n }),\n pathMethods: {\n '/sign-in/external-token': 'POST' as const,\n },\n atomListeners: [\n {\n matcher: (path: string) => path === '/sign-in/external-token',\n signal: '$sessionSignal' as const,\n },\n ],\n } satisfies BetterAuthClientPlugin\n}\n\ntype AuthClientOptions = {\n baseURL?: string\n basePath?: string\n plugins: [\n ReturnType<typeof anonymousClient>,\n ReturnType<typeof anonymousReauthClient>,\n ReturnType<typeof externalAuthClient>,\n ]\n}\n\nexport type AuthClient = ReturnType<typeof createAuthClient<AuthClientOptions>>\n\nexport function useChatbotAuth(\n options: {\n baseUrl?: string\n basePath?: string\n externalToken?: string\n isActive?: MaybeRefOrGetter<boolean>\n cookieName?: string\n } = {},\n) {\n const _token = ref(getSessionCookie(options.cookieName))\n\n const token = computed({\n get: () => _token.value,\n set: (token: string) => {\n setSessionCookie(token, options.cookieName)\n _token.value = token\n },\n })\n\n const headers = computed(() =>\n token.value ? { Authorization: `Bearer ${token.value}` } : undefined,\n )\n\n const client = createAuthClient({\n baseURL: options.baseUrl ?? BACKEND_URL,\n basePath: options.basePath ?? AUTH_BASE_PATH,\n plugins: [\n inferAdditionalFields<typeof auth>(),\n anonymousClient(),\n anonymousReauthClient(),\n externalAuthClient(),\n ],\n fetchOptions: {\n onSuccess: (ctx) => {\n const newTokenFromHeader =\n ctx.response.headers.get('set-auth-token')\n if (newTokenFromHeader) {\n token.value = newTokenFromHeader\n }\n },\n auth: {\n type: 'Bearer',\n token: () => token.value,\n },\n },\n }) as AuthClient\n\n const session = client.useSession()\n const isAuthenticating = ref(false)\n const isActive = computed(() => {\n if (!options.isActive) {\n return true\n }\n if (typeof options.isActive === 'function') {\n return options.isActive()\n }\n return toValue(options.isActive)\n })\n\n async function signInAnonymously(): Promise<void> {\n const { data } = await client.signIn.anonymous()\n if (data?.token) {\n token.value = data.token\n if (data.user?.id) {\n setAnonymousUserIdCookie(\n data.user.id as string,\n options.cookieName,\n )\n }\n }\n }\n\n /**\n * Attempts to create a new session for an existing anonymous user.\n * Returns true if re-auth succeeded, false otherwise.\n */\n async function tryAnonymousReauth(): Promise<boolean> {\n const storedUserId = getAnonymousUserIdCookie(options.cookieName)\n if (!storedUserId) {\n return false\n }\n try {\n const { data } = await client.signIn.anonymousReauth({\n userId: storedUserId,\n })\n if (data?.token) {\n token.value = data.token\n await session.value.refetch()\n return true\n }\n } catch {\n // user record may have been deleted — fall back to creating a new one\n }\n return false\n }\n\n async function signInWithExternalToken(\n externalToken: string,\n ): Promise<void> {\n if (isAuthenticating.value) {\n return\n }\n isAuthenticating.value = true\n try {\n const { data } = await client.signIn.externalToken({\n token: externalToken,\n })\n if (data?.token) {\n token.value = data.token\n await session.value.refetch()\n return\n }\n await signInAnonymously()\n } catch {\n await signInAnonymously()\n } finally {\n isAuthenticating.value = false\n }\n }\n\n async function signInAnonymouslyWithFallback(): Promise<void> {\n if (isAuthenticating.value) {\n return\n }\n isAuthenticating.value = true\n try {\n const reauthed = await tryAnonymousReauth()\n if (!reauthed) {\n await signInAnonymously()\n }\n } finally {\n isAuthenticating.value = false\n }\n }\n\n watch(\n [isActive, session],\n ([isOpen, newValue]) => {\n if (!isOpen) {\n return\n }\n if (\n !newValue.isPending &&\n !newValue.isRefetching &&\n !isAuthenticating.value &&\n !newValue.data\n ) {\n if (options.externalToken) {\n signInWithExternalToken(options.externalToken)\n return\n }\n signInAnonymouslyWithFallback()\n return\n }\n\n // Backfill userId cookie for existing anonymous sessions\n const user = newValue.data?.user\n if (\n user?.isAnonymous &&\n user.id &&\n !getAnonymousUserIdCookie(options.cookieName)\n ) {\n setAnonymousUserIdCookie(user.id as string, options.cookieName)\n }\n },\n { immediate: true },\n )\n\n function onError(error: { type: string; title: string; status: number }) {\n if (error.status === 401) {\n if (options.externalToken) {\n signInWithExternalToken(options.externalToken)\n return\n }\n signInAnonymouslyWithFallback()\n }\n }\n\n const userId = computed(() => session.value.data?.user?.id)\n\n return {\n client,\n session,\n isAuthenticating,\n token,\n headers,\n onError,\n userId,\n }\n}\n","import { getCurrentInstance, onBeforeUnmount, onMounted } from 'vue'\n\n/**\n * Prevents external focus-trapping libraries (e.g. Bootstrap 5 modals) from\n * stealing focus away from elements inside this custom element's shadow root.\n *\n * Bootstrap modals attach a `focusin` listener on `document` that pulls focus\n * back whenever it leaves the modal subtree. Because our custom element lives\n * outside the modal in the DOM, every focus event that escapes the shadow root\n * is treated as a \"focus escape\" and gets redirected back into the modal.\n *\n * Fix: intercept `focusin` at the shadow root boundary in the **bubble phase**\n * and stop its propagation. The event still reaches every internal element\n * normally (capture → target → bubble up through the shadow tree), but is\n * stopped at the shadow root before it can re-target and continue to `document`.\n *\n * Must be called inside a `.ce.vue` root component's `<script setup>`.\n */\nexport function useFocusTrapBypass() {\n let shadowRoot: ShadowRoot | null = null\n\n const stopFocusPropagation = (event: Event) => {\n event.stopPropagation()\n }\n\n onMounted(() => {\n const instance = getCurrentInstance()\n const rootNode = instance?.proxy?.$el?.getRootNode()\n\n if (!(rootNode instanceof ShadowRoot)) {\n return\n }\n\n shadowRoot = rootNode\n shadowRoot.addEventListener('focusin', stopFocusPropagation)\n })\n\n onBeforeUnmount(() => {\n if (!shadowRoot) {\n return\n }\n\n shadowRoot.removeEventListener('focusin', stopFocusPropagation)\n shadowRoot = null\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composables.js","names":[],"sources":["../src/utils/cookie.ts","../src/utils/index.ts","../src/composables/useChatbotAgent.ts","../src/composables/useChatbotAuth.ts","../src/composables/useFocusTrapBypass.ts"],"sourcesContent":["import { logger } from 'utils'\n\nconst DEFAULT_COOKIE_NAME = 'eight-wave-ai'\nconst DEFAULT_USER_ID_COOKIE_SUFFIX = '-uid'\nconst MAX_AGE_ONE_YEAR = 31536000\n\nfunction setCookie(name: string, value: string, maxAge: number) {\n try {\n document.cookie = `${name}=${value}; path=/; max-age=${maxAge}; SameSite=Lax; Secure`\n } catch (error) {\n logger.warn(\n '[cookie] setCookie blocked (cross-origin/tracking protection)',\n error,\n )\n }\n}\n\nfunction getCookie(name: string): string {\n try {\n return (\n document.cookie\n .split('; ')\n .find((row) => row.startsWith(`${name}=`))\n ?.split('=')[1] ?? ''\n )\n } catch (error) {\n logger.warn(\n '[cookie] getCookie blocked (cross-origin/tracking protection)',\n error,\n )\n return ''\n }\n}\n\n// create first-party session cookie for authentication with 1 year expiry\nexport function setSessionCookie(\n token: string,\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n setCookie(cookieName, token, MAX_AGE_ONE_YEAR)\n}\n\n// retrieve first-party session cookie\nexport function getSessionCookie(cookieName: string = DEFAULT_COOKIE_NAME) {\n return getCookie(cookieName)\n}\n\n// persist anonymous userId alongside session token to enable re-auth after session expiry\nexport function setAnonymousUserIdCookie(\n userId: string,\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n setCookie(\n `${cookieName}${DEFAULT_USER_ID_COOKIE_SUFFIX}`,\n userId,\n MAX_AGE_ONE_YEAR,\n )\n}\n\n// retrieve persisted anonymous userId\nexport function getAnonymousUserIdCookie(\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n return getCookie(`${cookieName}${DEFAULT_USER_ID_COOKIE_SUFFIX}`)\n}\n\n// TODO: call this when an anonymous user links a real account (onLinkAccount flow on the client side)\nexport function clearAnonymousUserIdCookie(\n cookieName: string = DEFAULT_COOKIE_NAME,\n) {\n setCookie(`${cookieName}${DEFAULT_USER_ID_COOKIE_SUFFIX}`, '', 0)\n}\n","export * from './cookie'\n\nexport const BACKEND_URL: string = import.meta.env.VITE_BACKEND_URL\nexport const AUTH_BASE_PATH = 'auth'\n","import type { MaybeRefOrGetter } from 'vue'\nimport { computed, ref, toValue, watch } from 'vue'\nimport type { AgentPublic } from 'models'\nimport { createChatbotApiClient } from 'composables'\nimport { resolveContrastColor } from 'components/src/chat/utils'\nimport { BACKEND_URL } from '~/utils'\n\nexport function useChatbotAgent(options: {\n baseUrl?: string\n basePath?: string\n organizationSlug?: MaybeRefOrGetter<string>\n agentId?: MaybeRefOrGetter<string>\n headers?: MaybeRefOrGetter<Record<string, string> | undefined>\n}) {\n const agent = ref<AgentPublic>()\n\n watch(\n [\n () => toValue(options.organizationSlug),\n () => toValue(options.agentId),\n ],\n async ([newOrganizationSlug, newAgentId]) => {\n if (!newOrganizationSlug || !newAgentId) {\n return\n }\n const apiClient = createChatbotApiClient({\n baseUrl: options.baseUrl ?? BACKEND_URL,\n basePath: options.basePath,\n headers: () => toValue(options.headers),\n })\n try {\n agent.value = await apiClient.getAgent(\n newOrganizationSlug,\n newAgentId,\n )\n } catch {\n agent.value = undefined\n }\n },\n { immediate: true },\n )\n\n const contrastColor = computed(() =>\n resolveContrastColor(\n agent.value?.interface.textColor,\n agent.value?.interface.mainColor,\n ),\n )\n const mainColor = computed(() => agent.value?.interface.mainColor)\n\n const themeClass = computed(() => {\n const theme = agent.value?.interface.theme\n if (!theme || theme === 'auto') {\n return ['theme']\n }\n return ['theme', `theme--${theme}`]\n })\n\n const themeStyle = computed(() =>\n agent.value\n ? {\n '--chatbot-main-color': mainColor.value,\n '--chatbot-contrast-color': contrastColor.value,\n }\n : undefined,\n )\n\n return {\n agent,\n contrastColor,\n mainColor,\n themeClass,\n themeStyle,\n }\n}\n","import type { MaybeRefOrGetter } from 'vue'\nimport type { BetterAuthClientPlugin } from 'better-auth/client'\nimport type { auth } from 'auth'\nimport { computed, ref, watch, toValue } from 'vue'\nimport { createAuthClient } from 'better-auth/vue'\nimport {\n inferAdditionalFields,\n anonymousClient,\n} from 'better-auth/client/plugins'\nimport {\n getSessionCookie,\n setSessionCookie,\n getAnonymousUserIdCookie,\n setAnonymousUserIdCookie,\n BACKEND_URL,\n AUTH_BASE_PATH,\n} from '~/utils'\n\nfunction anonymousReauthClient() {\n return {\n id: 'anonymous-reauth' as const,\n getActions: ($fetch) => ({\n signIn: {\n anonymousReauth: async (data: { userId: string }) => {\n return $fetch<{\n token: string\n user: Record<string, unknown>\n }>('/sign-in/anonymous-reauth', {\n method: 'POST',\n body: data,\n })\n },\n },\n }),\n pathMethods: {\n '/sign-in/anonymous-reauth': 'POST' as const,\n },\n } satisfies BetterAuthClientPlugin\n}\n\nfunction externalAuthClient() {\n return {\n id: 'external-auth' as const,\n getActions: ($fetch) => ({\n signIn: {\n externalToken: async (data: { token: string }) => {\n return $fetch<{\n token: string\n user: Record<string, unknown>\n }>('/sign-in/external-token', {\n method: 'POST',\n body: data,\n })\n },\n },\n }),\n pathMethods: {\n '/sign-in/external-token': 'POST' as const,\n },\n atomListeners: [\n {\n matcher: (path: string) => path === '/sign-in/external-token',\n signal: '$sessionSignal' as const,\n },\n ],\n } satisfies BetterAuthClientPlugin\n}\n\ntype AuthClientOptions = {\n baseURL?: string\n basePath?: string\n plugins: [\n ReturnType<typeof anonymousClient>,\n ReturnType<typeof anonymousReauthClient>,\n ReturnType<typeof externalAuthClient>,\n ]\n}\n\nexport type AuthClient = ReturnType<typeof createAuthClient<AuthClientOptions>>\n\nexport function useChatbotAuth(\n options: {\n baseUrl?: string\n basePath?: string\n externalToken?: MaybeRefOrGetter<string | undefined>\n awaitExternalToken?: boolean\n isActive?: MaybeRefOrGetter<boolean>\n cookieName?: string\n } = {},\n) {\n const _token = ref(getSessionCookie(options.cookieName))\n\n const token = computed({\n get: () => _token.value,\n set: (token: string) => {\n setSessionCookie(token, options.cookieName)\n _token.value = token\n },\n })\n\n const headers = computed(() =>\n token.value ? { Authorization: `Bearer ${token.value}` } : undefined,\n )\n\n const client = createAuthClient({\n baseURL: options.baseUrl ?? BACKEND_URL,\n basePath: options.basePath ?? AUTH_BASE_PATH,\n plugins: [\n inferAdditionalFields<typeof auth>(),\n anonymousClient(),\n anonymousReauthClient(),\n externalAuthClient(),\n ],\n fetchOptions: {\n onSuccess: (ctx) => {\n const newTokenFromHeader =\n ctx.response.headers.get('set-auth-token')\n if (newTokenFromHeader) {\n token.value = newTokenFromHeader\n }\n },\n auth: {\n type: 'Bearer',\n token: () => token.value,\n },\n },\n }) as AuthClient\n\n const session = client.useSession()\n const isAuthenticating = ref(false)\n const externalToken = computed(() => toValue(options.externalToken))\n const isActive = computed(() => toValue(options.isActive) ?? true)\n\n async function signInAnonymously(): Promise<void> {\n const { data } = await client.signIn.anonymous()\n if (data?.token) {\n token.value = data.token\n if (data.user?.id) {\n setAnonymousUserIdCookie(\n data.user.id as string,\n options.cookieName,\n )\n }\n }\n }\n\n /**\n * Attempts to create a new session for an existing anonymous user.\n * Returns true if re-auth succeeded, false otherwise.\n */\n async function tryAnonymousReauth(): Promise<boolean> {\n const storedUserId = getAnonymousUserIdCookie(options.cookieName)\n if (!storedUserId) {\n return false\n }\n try {\n const { data } = await client.signIn.anonymousReauth({\n userId: storedUserId,\n })\n if (data?.token) {\n token.value = data.token\n await session.value.refetch()\n return true\n }\n } catch {\n // user record may have been deleted — fall back to creating a new one\n }\n return false\n }\n\n async function signInWithExternalToken(\n newExternalToken: string,\n ): Promise<void> {\n if (isAuthenticating.value) {\n return\n }\n isAuthenticating.value = true\n try {\n const { data } = await client.signIn.externalToken({\n token: newExternalToken,\n })\n if (data?.token) {\n token.value = data.token\n await session.value.refetch()\n return\n }\n await signInAnonymously()\n } catch {\n await signInAnonymously()\n } finally {\n isAuthenticating.value = false\n }\n }\n\n async function signInAnonymouslyWithFallback(): Promise<void> {\n if (isAuthenticating.value) {\n return\n }\n isAuthenticating.value = true\n try {\n const reauthed = await tryAnonymousReauth()\n if (!reauthed) {\n await signInAnonymously()\n }\n } finally {\n isAuthenticating.value = false\n }\n }\n\n watch(\n [isActive, session],\n ([newIsActive, newSession]) => {\n if (!newIsActive) {\n return\n }\n if (\n !newSession.isPending &&\n !newSession.isRefetching &&\n !isAuthenticating.value &&\n !newSession.data\n ) {\n if (externalToken.value) {\n signInWithExternalToken(externalToken.value)\n return\n }\n if (options.awaitExternalToken) {\n return\n }\n signInAnonymouslyWithFallback()\n return\n }\n\n // Backfill userId cookie for existing anonymous sessions\n const user = newSession.data?.user\n if (\n user?.isAnonymous &&\n user.id &&\n !getAnonymousUserIdCookie(options.cookieName)\n ) {\n setAnonymousUserIdCookie(user.id as string, options.cookieName)\n }\n },\n { immediate: true },\n )\n\n watch(externalToken, (newToken) => {\n if (newToken && isActive.value) {\n signInWithExternalToken(newToken)\n }\n })\n\n function onError(error: { type: string; title: string; status: number }) {\n if (error.status === 401) {\n if (externalToken.value) {\n signInWithExternalToken(externalToken.value)\n return\n }\n signInAnonymouslyWithFallback()\n }\n }\n\n const userId = computed(() => session.value.data?.user?.id)\n\n return {\n client,\n session,\n isAuthenticating,\n token,\n headers,\n onError,\n userId,\n }\n}\n","import { getCurrentInstance, onBeforeUnmount, onMounted } from 'vue'\n\n/**\n * Prevents external focus-trapping libraries (e.g. Bootstrap 5 modals) from\n * stealing focus away from elements inside this custom element's shadow root.\n *\n * Bootstrap modals attach a `focusin` listener on `document` that pulls focus\n * back whenever it leaves the modal subtree. Because our custom element lives\n * outside the modal in the DOM, every focus event that escapes the shadow root\n * is treated as a \"focus escape\" and gets redirected back into the modal.\n *\n * Fix: intercept `focusin` at the shadow root boundary in the **bubble phase**\n * and stop its propagation. The event still reaches every internal element\n * normally (capture → target → bubble up through the shadow tree), but is\n * stopped at the shadow root before it can re-target and continue to `document`.\n *\n * Must be called inside a `.ce.vue` root component's `<script setup>`.\n */\nexport function useFocusTrapBypass() {\n let shadowRoot: ShadowRoot | null = null\n\n const stopFocusPropagation = (event: Event) => {\n event.stopPropagation()\n }\n\n onMounted(() => {\n const instance = getCurrentInstance()\n const rootNode = instance?.proxy?.$el?.getRootNode()\n\n if (!(rootNode instanceof ShadowRoot)) {\n return\n }\n\n shadowRoot = rootNode\n shadowRoot.addEventListener('focusin', stopFocusPropagation)\n })\n\n onBeforeUnmount(() => {\n if (!shadowRoot) {\n return\n }\n\n shadowRoot.removeEventListener('focusin', stopFocusPropagation)\n shadowRoot = null\n })\n}\n"],"mappings":"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"}
|