@8wave/ai-elements 0.68.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.
Files changed (427) hide show
  1. package/README.md +30 -5
  2. package/dist/_chunks/{PkStreamingMarkdown-D3MJ5dfu.js → PkStreamingMarkdown-CCD_gifi.js} +3 -3
  3. package/dist/_chunks/{PkStreamingMarkdown-D3MJ5dfu.js.map → PkStreamingMarkdown-CCD_gifi.js.map} +1 -1
  4. package/dist/_chunks/{PkToolShowArtifact-BFe_MhNr.js → PkToolShowArtifact-BZ9-wuXH.js} +13 -12
  5. package/dist/_chunks/PkToolShowArtifact-BZ9-wuXH.js.map +1 -0
  6. package/dist/_chunks/{PkToolShowCalendarEvent-Dolb7MTf.js → PkToolShowCalendarEvent-BFHzjM9E.js} +2 -2
  7. package/dist/_chunks/{PkToolShowCalendarEvent-Dolb7MTf.js.map → PkToolShowCalendarEvent-BFHzjM9E.js.map} +1 -1
  8. package/dist/_chunks/{PkToolShowComparison-BWwQPM6d.js → PkToolShowComparison-D-cY7yXE.js} +1 -1
  9. package/dist/_chunks/{PkToolShowComparison-BWwQPM6d.js.map → PkToolShowComparison-D-cY7yXE.js.map} +1 -1
  10. package/dist/_chunks/PkToolShowContactForm-B5Zuup-c.js +2 -0
  11. package/dist/_chunks/PkToolShowContactForm-izy_eJOv.js +1102 -0
  12. package/dist/_chunks/PkToolShowContactForm-izy_eJOv.js.map +1 -0
  13. package/dist/_chunks/{PkToolShowEmail-BrBJY7Op.js → PkToolShowEmail-BhGdH4Ig.js} +1 -1
  14. package/dist/_chunks/{PkToolShowEmail-BrBJY7Op.js.map → PkToolShowEmail-BhGdH4Ig.js.map} +1 -1
  15. package/dist/_chunks/{PkToolShowImageGallery-dnCkJaK8.js → PkToolShowImageGallery-CiN2M02m.js} +3 -3
  16. package/dist/_chunks/{PkToolShowImageGallery-dnCkJaK8.js.map → PkToolShowImageGallery-CiN2M02m.js.map} +1 -1
  17. package/dist/_chunks/PkToolShowLocation-CbaF2oBf.js +2 -0
  18. package/dist/_chunks/PkToolShowLocation-gQtxMrSM.js +4996 -0
  19. package/dist/_chunks/PkToolShowLocation-gQtxMrSM.js.map +1 -0
  20. package/dist/_chunks/{PkToolShowMessage-D0hwYIlo.js → PkToolShowMessage-5Luc042T.js} +1 -1
  21. package/dist/_chunks/{PkToolShowMessage-D0hwYIlo.js.map → PkToolShowMessage-5Luc042T.js.map} +1 -1
  22. package/dist/_chunks/PkToolShowMultipleChoice-DgfLPaKE.js +2 -0
  23. package/dist/_chunks/PkToolShowMultipleChoice-WBsP83PW.js +44 -0
  24. package/dist/_chunks/PkToolShowMultipleChoice-WBsP83PW.js.map +1 -0
  25. package/dist/_chunks/{PkToolShowProductList-C-t2Q6vG.js → PkToolShowProductList-BSLTdM8w.js} +2 -2
  26. package/dist/_chunks/{PkToolShowProductList-C-t2Q6vG.js.map → PkToolShowProductList-BSLTdM8w.js.map} +1 -1
  27. package/dist/_chunks/{PkToolShowQrCode-pX-2NQ0q.js → PkToolShowQrCode-DLSOtaV9.js} +1 -1
  28. package/dist/_chunks/{PkToolShowQrCode-pX-2NQ0q.js.map → PkToolShowQrCode-DLSOtaV9.js.map} +1 -1
  29. package/dist/_chunks/PkToolShowSources-BZyYFWu6.js +490 -0
  30. package/dist/_chunks/PkToolShowSources-BZyYFWu6.js.map +1 -0
  31. package/dist/_chunks/PkToolShowSources-C0Edf43F.js +2 -0
  32. package/dist/_chunks/PkToolShowSuggestedReply-CMIWzymE.js +2 -0
  33. package/dist/_chunks/PkToolShowSuggestedReply-PyXHjIMg.js +40 -0
  34. package/dist/_chunks/PkToolShowSuggestedReply-PyXHjIMg.js.map +1 -0
  35. package/dist/_chunks/{PkToolShowWeather-BlxQ4-di.js → PkToolShowWeather-BmB6I1CQ.js} +1 -1
  36. package/dist/_chunks/{PkToolShowWeather-BlxQ4-di.js.map → PkToolShowWeather-BmB6I1CQ.js.map} +1 -1
  37. package/dist/_chunks/{PkToolShowWebPages-CflGTyAq.js → PkToolShowWebPages-BQEuy2SB.js} +3 -3
  38. package/dist/_chunks/{PkToolShowWebPages-CflGTyAq.js.map → PkToolShowWebPages-BQEuy2SB.js.map} +1 -1
  39. package/dist/_chunks/{PkUrl-BiCK2gUF.js → PkUrl-DbCzf0TH.js} +5 -8
  40. package/dist/_chunks/{PkUrl-BiCK2gUF.js.map → PkUrl-DbCzf0TH.js.map} +1 -1
  41. package/dist/_chunks/{VvCheckbox.es-BB__5AQf.js → VvCheckbox.es-xoDP7xfG.js} +1 -1
  42. package/dist/_chunks/{VvCheckbox.es-BB__5AQf.js.map → VvCheckbox.es-xoDP7xfG.js.map} +1 -1
  43. package/dist/_chunks/{VvCheckboxGroup.es-B8vNssFt.js → VvCheckboxGroup.es-CqmkSf32.js} +1 -1
  44. package/dist/_chunks/{VvCheckboxGroup.es-B8vNssFt.js.map → VvCheckboxGroup.es-CqmkSf32.js.map} +1 -1
  45. package/dist/_chunks/{VvCombobox.es-B3EXD0qk.js → VvCombobox.es-8c5A9J7u.js} +1 -1
  46. package/dist/_chunks/{VvCombobox.es-B3EXD0qk.js.map → VvCombobox.es-8c5A9J7u.js.map} +1 -1
  47. package/dist/_chunks/{VvInputText.es-Dz2nJhHg.js → VvInputText.es-C3DasKVI.js} +1 -1
  48. package/dist/_chunks/{VvInputText.es-Dz2nJhHg.js.map → VvInputText.es-C3DasKVI.js.map} +1 -1
  49. package/dist/_chunks/{VvRadio.es-CBNUR8-A.js → VvRadio.es-DWCbGLSw.js} +1 -1
  50. package/dist/_chunks/{VvRadio.es-CBNUR8-A.js.map → VvRadio.es-DWCbGLSw.js.map} +1 -1
  51. package/dist/_chunks/{VvRadioGroup.es-C3cxLQie.js → VvRadioGroup.es-DeZPOSLg.js} +1 -1
  52. package/dist/_chunks/{VvRadioGroup.es-C3cxLQie.js.map → VvRadioGroup.es-DeZPOSLg.js.map} +1 -1
  53. package/dist/_chunks/{VvSelect.es-DhnVYyFM.js → VvSelect.es-Cbdxv0hL.js} +1 -1
  54. package/dist/_chunks/{VvSelect.es-DhnVYyFM.js.map → VvSelect.es-Cbdxv0hL.js.map} +1 -1
  55. package/dist/_chunks/{VvTextarea.es-CqwOOwHn.js → VvTextarea.es-G6PqQj_w.js} +1 -1
  56. package/dist/_chunks/{VvTextarea.es-CqwOOwHn.js.map → VvTextarea.es-G6PqQj_w.js.map} +1 -1
  57. package/dist/_chunks/_plugin-vue_export-helper-C6kC663S.js +8 -0
  58. package/dist/_chunks/marker-icon-2x-B5zK5Qr3.js +7 -0
  59. package/dist/_chunks/marker-icon-2x-B5zK5Qr3.js.map +1 -0
  60. package/dist/_chunks/marker-icon-C9YVKiza.js +7 -0
  61. package/dist/_chunks/marker-icon-C9YVKiza.js.map +1 -0
  62. package/dist/_chunks/marker-shadow-C69K8Z1K.js +7 -0
  63. package/dist/_chunks/marker-shadow-C69K8Z1K.js.map +1 -0
  64. package/dist/_chunks/schemas-BzxsvNFR.js +3117 -0
  65. package/dist/_chunks/schemas-BzxsvNFR.js.map +1 -0
  66. package/dist/_chunks/{src-BRYn66N3.js → src-B7wQQMx2.js} +1 -1
  67. package/dist/_chunks/{src-BRYn66N3.js.map → src-B7wQQMx2.js.map} +1 -1
  68. package/dist/_chunks/{useLightbox-RmU8z981.js → useLightbox-krdR1Z0n.js} +2 -2
  69. package/{dist-vue/_chunks/useLightbox-CRpWDdlN.js.map → dist/_chunks/useLightbox-krdR1Z0n.js.map} +1 -1
  70. package/dist/ai-elements.es.js +7433 -12101
  71. package/dist/ai-elements.es.js.map +1 -1
  72. package/dist-vue/PkChatbot.js +1 -1
  73. package/dist-vue/PkChatbotError.js +1 -1
  74. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  75. package/dist-vue/PkChatbotFilePreview.js +1 -1
  76. package/dist-vue/PkChatbotInput.js +1 -1
  77. package/dist-vue/PkChatbotMessages.js +1 -1
  78. package/dist-vue/PkChatbotViewChat.js +1 -1
  79. package/dist-vue/PkChatbotViewConversations.js +1 -1
  80. package/dist-vue/PkChatbotViewProfile.js +1 -1
  81. package/dist-vue/_chunks/Media-COOsOMMv.js +120 -0
  82. package/dist-vue/_chunks/Media-COOsOMMv.js.map +1 -0
  83. package/dist-vue/_chunks/{PkChatbot-C_ASB2zq.js → PkChatbot-h7EIb9Y5.js} +61 -60
  84. package/dist-vue/_chunks/{PkChatbot-C_ASB2zq.js.map → PkChatbot-h7EIb9Y5.js.map} +1 -1
  85. package/dist-vue/_chunks/{PkChatbotError-DOkNTDsc.js → PkChatbotError-CBQaRNse.js} +1 -1
  86. package/dist-vue/_chunks/{PkChatbotError-DOkNTDsc.js.map → PkChatbotError-CBQaRNse.js.map} +1 -1
  87. package/dist-vue/_chunks/PkChatbotFeedbackForm-C5QLJeUc.js +91 -0
  88. package/dist-vue/_chunks/PkChatbotFeedbackForm-C5QLJeUc.js.map +1 -0
  89. package/dist-vue/_chunks/{PkChatbotFilePreview-zHYZ0F7j.js → PkChatbotFilePreview-0ow1cjom.js} +2 -2
  90. package/dist-vue/_chunks/{PkChatbotFilePreview-zHYZ0F7j.js.map → PkChatbotFilePreview-0ow1cjom.js.map} +1 -1
  91. package/dist-vue/_chunks/{PkChatbotInput-CXydKByS.js → PkChatbotInput-DjUU_5_9.js} +3 -3
  92. package/dist-vue/_chunks/{PkChatbotInput-CXydKByS.js.map → PkChatbotInput-DjUU_5_9.js.map} +1 -1
  93. package/dist-vue/_chunks/{PkChatbotMessages-CQdxH86L.js → PkChatbotMessages-DJngZXIX.js} +130 -121
  94. package/dist-vue/_chunks/PkChatbotMessages-DJngZXIX.js.map +1 -0
  95. package/dist-vue/_chunks/PkChatbotViewChat-LdHOe19w.js +246 -0
  96. package/dist-vue/_chunks/PkChatbotViewChat-LdHOe19w.js.map +1 -0
  97. package/dist-vue/_chunks/{PkChatbotViewConversations-DFv_8-8K.js → PkChatbotViewConversations-BAU8tPTf.js} +4 -4
  98. package/dist-vue/_chunks/{PkChatbotViewConversations-DFv_8-8K.js.map → PkChatbotViewConversations-BAU8tPTf.js.map} +1 -1
  99. package/dist-vue/_chunks/{PkChatbotViewProfile-BUj0YnIi.js → PkChatbotViewProfile-B_TpBkAf.js} +2 -2
  100. package/dist-vue/_chunks/{PkChatbotViewProfile-BUj0YnIi.js.map → PkChatbotViewProfile-B_TpBkAf.js.map} +1 -1
  101. package/dist-vue/_chunks/{PkRelativeTime-Bzh37jv5.js → PkRelativeTime-ivIkVQRR.js} +1 -1
  102. package/dist-vue/_chunks/{PkRelativeTime-Bzh37jv5.js.map → PkRelativeTime-ivIkVQRR.js.map} +1 -1
  103. package/dist-vue/_chunks/{PkStreamingMarkdown-C-XHB63C.js → PkStreamingMarkdown-CGEZEVZF.js} +2 -2
  104. package/dist-vue/_chunks/{PkStreamingMarkdown-C-XHB63C.js.map → PkStreamingMarkdown-CGEZEVZF.js.map} +1 -1
  105. package/dist-vue/_chunks/{PkToolShowArtifact-DIw-_JPA.js → PkToolShowArtifact-D1PnI-E1.js} +14 -13
  106. package/dist-vue/_chunks/PkToolShowArtifact-D1PnI-E1.js.map +1 -0
  107. package/dist-vue/_chunks/{PkToolShowCalendarEvent-ZZM8p7wu.js → PkToolShowCalendarEvent-HiRf_hSv.js} +3 -3
  108. package/dist-vue/_chunks/{PkToolShowCalendarEvent-ZZM8p7wu.js.map → PkToolShowCalendarEvent-HiRf_hSv.js.map} +1 -1
  109. package/dist-vue/_chunks/{PkToolShowComparison-7akNsf1w.js → PkToolShowComparison-Bll3lc1g.js} +2 -2
  110. package/dist-vue/_chunks/{PkToolShowComparison-7akNsf1w.js.map → PkToolShowComparison-Bll3lc1g.js.map} +1 -1
  111. package/dist-vue/_chunks/PkToolShowContactForm-DQDXyNco.js +130 -0
  112. package/dist-vue/_chunks/PkToolShowContactForm-DQDXyNco.js.map +1 -0
  113. package/dist-vue/_chunks/{PkToolShowEmail-CpiAbmr0.js → PkToolShowEmail-DzYBtaIE.js} +2 -2
  114. package/dist-vue/_chunks/{PkToolShowEmail-CpiAbmr0.js.map → PkToolShowEmail-DzYBtaIE.js.map} +1 -1
  115. package/dist-vue/_chunks/{PkToolShowImageGallery-jY7iYqTv.js → PkToolShowImageGallery-BQtLChsM.js} +4 -4
  116. package/dist-vue/_chunks/{PkToolShowImageGallery-jY7iYqTv.js.map → PkToolShowImageGallery-BQtLChsM.js.map} +1 -1
  117. package/dist-vue/_chunks/PkToolShowLocation-CaG0Txb6.js +148 -0
  118. package/dist-vue/_chunks/PkToolShowLocation-CaG0Txb6.js.map +1 -0
  119. package/dist-vue/_chunks/{PkToolShowMessage-AS8VNcYP.js → PkToolShowMessage-C4os87fJ.js} +2 -2
  120. package/dist-vue/_chunks/{PkToolShowMessage-AS8VNcYP.js.map → PkToolShowMessage-C4os87fJ.js.map} +1 -1
  121. package/dist-vue/_chunks/PkToolShowMultipleChoice-DB5ZvvhS.js +45 -0
  122. package/dist-vue/_chunks/PkToolShowMultipleChoice-DB5ZvvhS.js.map +1 -0
  123. package/dist-vue/_chunks/{PkToolShowProductList-FEq8sFxW.js → PkToolShowProductList-BR14mmfl.js} +3 -3
  124. package/dist-vue/_chunks/{PkToolShowProductList-FEq8sFxW.js.map → PkToolShowProductList-BR14mmfl.js.map} +1 -1
  125. package/dist-vue/_chunks/{PkToolShowQrCode-DAt8tBHK.js → PkToolShowQrCode-CTfDrItd.js} +2 -2
  126. package/dist-vue/_chunks/{PkToolShowQrCode-DAt8tBHK.js.map → PkToolShowQrCode-CTfDrItd.js.map} +1 -1
  127. package/dist-vue/_chunks/PkToolShowSources-B_UfP0QT.js +377 -0
  128. package/dist-vue/_chunks/PkToolShowSources-B_UfP0QT.js.map +1 -0
  129. package/dist-vue/_chunks/PkToolShowSuggestedReply-BVa6p4DJ.js +40 -0
  130. package/dist-vue/_chunks/PkToolShowSuggestedReply-BVa6p4DJ.js.map +1 -0
  131. package/dist-vue/_chunks/{PkToolShowWeather-iAV7Hn_J.js → PkToolShowWeather-D3MyAnH4.js} +1 -1
  132. package/dist-vue/_chunks/{PkToolShowWeather-iAV7Hn_J.js.map → PkToolShowWeather-D3MyAnH4.js.map} +1 -1
  133. package/dist-vue/_chunks/{PkToolShowWebPages-jA5eZRdi.js → PkToolShowWebPages-0pwK7psA.js} +4 -4
  134. package/dist-vue/_chunks/{PkToolShowWebPages-jA5eZRdi.js.map → PkToolShowWebPages-0pwK7psA.js.map} +1 -1
  135. package/dist-vue/_chunks/{PkUrl-C9annqfF.js → PkUrl-tuHTaGCy.js} +1 -1
  136. package/dist-vue/_chunks/{PkUrl-C9annqfF.js.map → PkUrl-tuHTaGCy.js.map} +1 -1
  137. package/dist-vue/_chunks/{ZodError-B3AvmUCJ.js → ZodError-DkVfTODd.js} +1 -1
  138. package/dist-vue/_chunks/{ZodError-B3AvmUCJ.js.map → ZodError-DkVfTODd.js.map} +1 -1
  139. package/dist-vue/_chunks/{apl-Bkqrrr3v.js → apl-j-tvtpTP.js} +1 -1
  140. package/dist-vue/_chunks/{apl-Bkqrrr3v.js.map → apl-j-tvtpTP.js.map} +1 -1
  141. package/dist-vue/_chunks/{asciiarmor-DMBg7NdB.js → asciiarmor-JNKKTtQt.js} +1 -1
  142. package/dist-vue/_chunks/{asciiarmor-DMBg7NdB.js.map → asciiarmor-JNKKTtQt.js.map} +1 -1
  143. package/dist-vue/_chunks/{asn1-WRfjxqL1.js → asn1-DBQ_amwa.js} +1 -1
  144. package/dist-vue/_chunks/{asn1-WRfjxqL1.js.map → asn1-DBQ_amwa.js.map} +1 -1
  145. package/dist-vue/_chunks/{asterisk-DYv-EHWB.js → asterisk-Di3iYNR-.js} +1 -1
  146. package/dist-vue/_chunks/{asterisk-DYv-EHWB.js.map → asterisk-Di3iYNR-.js.map} +1 -1
  147. package/dist-vue/_chunks/{brainfuck-hzOnKOH7.js → brainfuck-D8mwwQut.js} +1 -1
  148. package/dist-vue/_chunks/{brainfuck-hzOnKOH7.js.map → brainfuck-D8mwwQut.js.map} +1 -1
  149. package/dist-vue/_chunks/{clike-r66wHNGT.js → clike-I6ihTsJ5.js} +1 -1
  150. package/dist-vue/_chunks/{clike-r66wHNGT.js.map → clike-I6ihTsJ5.js.map} +1 -1
  151. package/dist-vue/_chunks/{clojure-BDb_WsAm.js → clojure-CGENQS-R.js} +1 -1
  152. package/dist-vue/_chunks/{clojure-BDb_WsAm.js.map → clojure-CGENQS-R.js.map} +1 -1
  153. package/dist-vue/_chunks/{cmake-Curqstum.js → cmake-D2jqXHLk.js} +1 -1
  154. package/dist-vue/_chunks/{cmake-Curqstum.js.map → cmake-D2jqXHLk.js.map} +1 -1
  155. package/dist-vue/_chunks/{cobol-BAx4MdII.js → cobol-Db3IHNru.js} +1 -1
  156. package/dist-vue/_chunks/{cobol-BAx4MdII.js.map → cobol-Db3IHNru.js.map} +1 -1
  157. package/dist-vue/_chunks/{coffeescript-jbcF4nR3.js → coffeescript-B4Rd3RcP.js} +1 -1
  158. package/dist-vue/_chunks/{coffeescript-jbcF4nR3.js.map → coffeescript-B4Rd3RcP.js.map} +1 -1
  159. package/dist-vue/_chunks/{commonlisp-BXKJxcTF.js → commonlisp-B-ehiawF.js} +1 -1
  160. package/dist-vue/_chunks/{commonlisp-BXKJxcTF.js.map → commonlisp-B-ehiawF.js.map} +1 -1
  161. package/dist-vue/_chunks/createChatbotApiClient-C520OTrB.js +521 -0
  162. package/dist-vue/_chunks/createChatbotApiClient-C520OTrB.js.map +1 -0
  163. package/dist-vue/_chunks/{crystal-Dq4io9oq.js → crystal-Bj2fwY3J.js} +1 -1
  164. package/dist-vue/_chunks/{crystal-Dq4io9oq.js.map → crystal-Bj2fwY3J.js.map} +1 -1
  165. package/dist-vue/_chunks/{css-Bd9Y1kSi.js → css-CDqbdUZS.js} +1 -1
  166. package/dist-vue/_chunks/{css-Bd9Y1kSi.js.map → css-CDqbdUZS.js.map} +1 -1
  167. package/dist-vue/_chunks/{cypher-D14rILSd.js → cypher-BPgl78lW.js} +1 -1
  168. package/dist-vue/_chunks/{cypher-D14rILSd.js.map → cypher-BPgl78lW.js.map} +1 -1
  169. package/dist-vue/_chunks/{d-B-E6YUkN.js → d-_9PAw1JO.js} +1 -1
  170. package/dist-vue/_chunks/{d-B-E6YUkN.js.map → d-_9PAw1JO.js.map} +1 -1
  171. package/dist-vue/_chunks/{diff-BPPcQvHC.js → diff-C_qwk3ek.js} +1 -1
  172. package/dist-vue/_chunks/{diff-BPPcQvHC.js.map → diff-C_qwk3ek.js.map} +1 -1
  173. package/dist-vue/_chunks/{dist-CJYiwDlx.js → dist-2RCoY9yL.js} +2 -2
  174. package/dist-vue/_chunks/{dist-CJYiwDlx.js.map → dist-2RCoY9yL.js.map} +1 -1
  175. package/dist-vue/_chunks/{dist-BrsWoii-.js → dist-B504iqq4.js} +3 -3
  176. package/dist-vue/_chunks/{dist-BrsWoii-.js.map → dist-B504iqq4.js.map} +1 -1
  177. package/dist-vue/_chunks/{dist-C-yeiSHm.js → dist-BbACD7ZF.js} +3 -3
  178. package/dist-vue/_chunks/{dist-C-yeiSHm.js.map → dist-BbACD7ZF.js.map} +1 -1
  179. package/dist-vue/_chunks/{dist-Bh5Q6aSI2.js → dist-BfWfkbOA.js} +2 -2
  180. package/dist-vue/_chunks/dist-BfWfkbOA.js.map +1 -0
  181. package/dist-vue/_chunks/{dist-Qq_6SbFF.js → dist-BnR5Kl9J.js} +3 -3
  182. package/dist-vue/_chunks/{dist-Qq_6SbFF.js.map → dist-BnR5Kl9J.js.map} +1 -1
  183. package/dist-vue/_chunks/{dist-KPI2eL8F.js → dist-Bx_jrcne.js} +2 -2
  184. package/dist-vue/_chunks/{dist-KPI2eL8F.js.map → dist-Bx_jrcne.js.map} +1 -1
  185. package/dist-vue/_chunks/{dist-DJ_vDk0q.js → dist-C4DKJxXu.js} +4 -4
  186. package/dist-vue/_chunks/{dist-DJ_vDk0q.js.map → dist-C4DKJxXu.js.map} +1 -1
  187. package/dist-vue/_chunks/{dist-CAZOa5qs2.js → dist-C9oRomIQ.js} +3 -3
  188. package/dist-vue/_chunks/dist-C9oRomIQ.js.map +1 -0
  189. package/dist-vue/_chunks/{dist-D3coexrW.js → dist-COvC03Xx.js} +3 -3
  190. package/dist-vue/_chunks/{dist-D3coexrW.js.map → dist-COvC03Xx.js.map} +1 -1
  191. package/dist-vue/_chunks/{dist-C38fHUMa.js → dist-CwB_dFae.js} +3 -3
  192. package/dist-vue/_chunks/{dist-C38fHUMa.js.map → dist-CwB_dFae.js.map} +1 -1
  193. package/dist-vue/_chunks/{dist-BaIe783A.js → dist-Cz8slHpf.js} +2 -2
  194. package/dist-vue/_chunks/{dist-BaIe783A.js.map → dist-Cz8slHpf.js.map} +1 -1
  195. package/dist-vue/_chunks/{dist-BmqFgHbN.js → dist-D-G-983p.js} +3 -3
  196. package/dist-vue/_chunks/{dist-BmqFgHbN.js.map → dist-D-G-983p.js.map} +1 -1
  197. package/dist-vue/_chunks/{dist-BNLIqE7O.js → dist-DGsr6BFK.js} +2 -2
  198. package/dist-vue/_chunks/{dist-BNLIqE7O.js.map → dist-DGsr6BFK.js.map} +1 -1
  199. package/dist-vue/_chunks/{dist-DMP9Xsk0.js → dist-DJFxbNlz.js} +2 -2
  200. package/dist-vue/_chunks/{dist-DMP9Xsk0.js.map → dist-DJFxbNlz.js.map} +1 -1
  201. package/dist-vue/_chunks/{dist-B65AhbTK.js → dist-DKeYnhzh.js} +5 -5
  202. package/dist-vue/_chunks/{dist-B65AhbTK.js.map → dist-DKeYnhzh.js.map} +1 -1
  203. package/dist-vue/_chunks/{dist--mE2E_mM.js → dist-DL84m6GA.js} +1 -1
  204. package/dist-vue/_chunks/{dist--mE2E_mM.js.map → dist-DL84m6GA.js.map} +1 -1
  205. package/dist-vue/_chunks/{dist-veLX58Me.js → dist-DS-IY-lt.js} +4 -4
  206. package/dist-vue/_chunks/{dist-veLX58Me.js.map → dist-DS-IY-lt.js.map} +1 -1
  207. package/dist-vue/_chunks/{dist-s_XUA-aw.js → dist-DZloX6N0.js} +3 -3
  208. package/dist-vue/_chunks/{dist-s_XUA-aw.js.map → dist-DZloX6N0.js.map} +1 -1
  209. package/dist-vue/_chunks/{dist-DmKzgdbO.js → dist-DapfuoOT.js} +3 -3
  210. package/dist-vue/_chunks/{dist-DmKzgdbO.js.map → dist-DapfuoOT.js.map} +1 -1
  211. package/dist-vue/_chunks/{dist-D2-23M8l.js → dist-DmUxIVrQ.js} +5 -5
  212. package/dist-vue/_chunks/{dist-D2-23M8l.js.map → dist-DmUxIVrQ.js.map} +1 -1
  213. package/dist-vue/_chunks/{dist-BQRG0D3Y.js → dist-LX3EryGA.js} +2 -2
  214. package/dist-vue/_chunks/{dist-BQRG0D3Y.js.map → dist-LX3EryGA.js.map} +1 -1
  215. package/dist-vue/_chunks/{dist-afJW4ohP2.js → dist-Z_cFz9nA.js} +2 -2
  216. package/dist-vue/_chunks/dist-Z_cFz9nA.js.map +1 -0
  217. package/dist-vue/_chunks/{dist-ByzpJpuj.js → dist-mJVylhvZ.js} +4 -4
  218. package/dist-vue/_chunks/{dist-ByzpJpuj.js.map → dist-mJVylhvZ.js.map} +1 -1
  219. package/dist-vue/_chunks/{dockerfile-CGxYmrOo.js → dockerfile-nMSg2tXY.js} +2 -2
  220. package/dist-vue/_chunks/{dockerfile-CGxYmrOo.js.map → dockerfile-nMSg2tXY.js.map} +1 -1
  221. package/dist-vue/_chunks/{dtd-ztbg9nev.js → dtd-BhtRjlzo.js} +1 -1
  222. package/dist-vue/_chunks/{dtd-ztbg9nev.js.map → dtd-BhtRjlzo.js.map} +1 -1
  223. package/dist-vue/_chunks/{dylan-Do2p-AA-.js → dylan-DyLL0Sxl.js} +1 -1
  224. package/dist-vue/_chunks/{dylan-Do2p-AA-.js.map → dylan-DyLL0Sxl.js.map} +1 -1
  225. package/dist-vue/_chunks/{ebnf-ChJPn51D.js → ebnf-DcBh-k1T.js} +1 -1
  226. package/dist-vue/_chunks/{ebnf-ChJPn51D.js.map → ebnf-DcBh-k1T.js.map} +1 -1
  227. package/dist-vue/_chunks/{ecl-ztl4D9j5.js → ecl-C-A1gGx7.js} +1 -1
  228. package/dist-vue/_chunks/{ecl-ztl4D9j5.js.map → ecl-C-A1gGx7.js.map} +1 -1
  229. package/dist-vue/_chunks/{eiffel-BYAAf3D8.js → eiffel-DwgfvIBI.js} +1 -1
  230. package/dist-vue/_chunks/{eiffel-BYAAf3D8.js.map → eiffel-DwgfvIBI.js.map} +1 -1
  231. package/dist-vue/_chunks/{elm-DFquGUxW.js → elm-RPF69bOV.js} +1 -1
  232. package/dist-vue/_chunks/{elm-DFquGUxW.js.map → elm-RPF69bOV.js.map} +1 -1
  233. package/dist-vue/_chunks/{erlang-BIndT8-8.js → erlang-BvNh96Ir.js} +1 -1
  234. package/dist-vue/_chunks/{erlang-BIndT8-8.js.map → erlang-BvNh96Ir.js.map} +1 -1
  235. package/dist-vue/_chunks/{factor-DqGzyyvS.js → factor-B_mOIxzF.js} +2 -2
  236. package/dist-vue/_chunks/{factor-DqGzyyvS.js.map → factor-B_mOIxzF.js.map} +1 -1
  237. package/dist-vue/_chunks/{fcl-MTt_AC1b.js → fcl-C9ulsEA4.js} +1 -1
  238. package/dist-vue/_chunks/{fcl-MTt_AC1b.js.map → fcl-C9ulsEA4.js.map} +1 -1
  239. package/dist-vue/_chunks/{forth-BPoSoJYE.js → forth-CFaZGhGS.js} +1 -1
  240. package/dist-vue/_chunks/{forth-BPoSoJYE.js.map → forth-CFaZGhGS.js.map} +1 -1
  241. package/dist-vue/_chunks/{fortran-BmHZEBN4.js → fortran-Cjm6fEBu.js} +1 -1
  242. package/dist-vue/_chunks/{fortran-BmHZEBN4.js.map → fortran-Cjm6fEBu.js.map} +1 -1
  243. package/dist-vue/_chunks/{gas-7ZHFSr9Y.js → gas-C3adNyJH.js} +1 -1
  244. package/dist-vue/_chunks/{gas-7ZHFSr9Y.js.map → gas-C3adNyJH.js.map} +1 -1
  245. package/dist-vue/_chunks/{gherkin-DiGPpFIT.js → gherkin-DFFRCqQB.js} +1 -1
  246. package/dist-vue/_chunks/{gherkin-DiGPpFIT.js.map → gherkin-DFFRCqQB.js.map} +1 -1
  247. package/dist-vue/_chunks/{groovy-DdKIH6vq.js → groovy-BHcqGGgZ.js} +1 -1
  248. package/dist-vue/_chunks/{groovy-DdKIH6vq.js.map → groovy-BHcqGGgZ.js.map} +1 -1
  249. package/dist-vue/_chunks/{haskell-DAISwZqR.js → haskell-BB45MUCR.js} +1 -1
  250. package/dist-vue/_chunks/{haskell-DAISwZqR.js.map → haskell-BB45MUCR.js.map} +1 -1
  251. package/dist-vue/_chunks/{haxe-CcCnoX02.js → haxe-QBohTRDI.js} +1 -1
  252. package/dist-vue/_chunks/{haxe-CcCnoX02.js.map → haxe-QBohTRDI.js.map} +1 -1
  253. package/dist-vue/_chunks/{http-Dy51A1Ji.js → http-HqJENFoz.js} +1 -1
  254. package/dist-vue/_chunks/{http-Dy51A1Ji.js.map → http-HqJENFoz.js.map} +1 -1
  255. package/dist-vue/_chunks/{idl-Cf5JG3Ez.js → idl-DZZwNvlw.js} +1 -1
  256. package/dist-vue/_chunks/{idl-Cf5JG3Ez.js.map → idl-DZZwNvlw.js.map} +1 -1
  257. package/dist-vue/_chunks/index.es-CikrfdXD.js +950 -0
  258. package/dist-vue/_chunks/index.es-CikrfdXD.js.map +1 -0
  259. package/dist-vue/_chunks/{javascript-CzLVX0gM.js → javascript-C85sLH7Y.js} +1 -1
  260. package/dist-vue/_chunks/{javascript-CzLVX0gM.js.map → javascript-C85sLH7Y.js.map} +1 -1
  261. package/dist-vue/_chunks/{julia-B2PXBujh.js → julia-ChIE7-ml.js} +1 -1
  262. package/dist-vue/_chunks/{julia-B2PXBujh.js.map → julia-ChIE7-ml.js.map} +1 -1
  263. package/dist-vue/_chunks/{livescript-2I87cCXG.js → livescript-BCs3u_kv.js} +1 -1
  264. package/dist-vue/_chunks/{livescript-2I87cCXG.js.map → livescript-BCs3u_kv.js.map} +1 -1
  265. package/dist-vue/_chunks/{lua-C3mMI1er.js → lua-DzZVFmfH.js} +1 -1
  266. package/dist-vue/_chunks/{lua-C3mMI1er.js.map → lua-DzZVFmfH.js.map} +1 -1
  267. package/dist-vue/_chunks/{mathematica-fQn4Bu4o.js → mathematica-Zz2lXOfW.js} +1 -1
  268. package/dist-vue/_chunks/{mathematica-fQn4Bu4o.js.map → mathematica-Zz2lXOfW.js.map} +1 -1
  269. package/dist-vue/_chunks/{mbox-DKAPFpEV.js → mbox-CuPDY4hp.js} +1 -1
  270. package/dist-vue/_chunks/{mbox-DKAPFpEV.js.map → mbox-CuPDY4hp.js.map} +1 -1
  271. package/dist-vue/_chunks/{mirc-BjO0qN2s.js → mirc-DwrsqNtD.js} +1 -1
  272. package/dist-vue/_chunks/{mirc-BjO0qN2s.js.map → mirc-DwrsqNtD.js.map} +1 -1
  273. package/dist-vue/_chunks/{mllike-BlZyj79n.js → mllike-76cVByXA.js} +1 -1
  274. package/dist-vue/_chunks/{mllike-BlZyj79n.js.map → mllike-76cVByXA.js.map} +1 -1
  275. package/dist-vue/_chunks/{modelica-QjIv2_JC.js → modelica-kytS8Bwg.js} +1 -1
  276. package/dist-vue/_chunks/{modelica-QjIv2_JC.js.map → modelica-kytS8Bwg.js.map} +1 -1
  277. package/dist-vue/_chunks/{mscgen-LfC5dXDe.js → mscgen-CoPuHfjN.js} +1 -1
  278. package/dist-vue/_chunks/{mscgen-LfC5dXDe.js.map → mscgen-CoPuHfjN.js.map} +1 -1
  279. package/dist-vue/_chunks/{mumps-Dv1DAXnR.js → mumps-B2uz6FeJ.js} +1 -1
  280. package/dist-vue/_chunks/{mumps-Dv1DAXnR.js.map → mumps-B2uz6FeJ.js.map} +1 -1
  281. package/dist-vue/_chunks/{nginx-3DgpfXl3.js → nginx-BSBpB1IU.js} +1 -1
  282. package/dist-vue/_chunks/{nginx-3DgpfXl3.js.map → nginx-BSBpB1IU.js.map} +1 -1
  283. package/dist-vue/_chunks/{nsis-K3Sov04-.js → nsis-R5ELJwT9.js} +2 -2
  284. package/dist-vue/_chunks/{nsis-K3Sov04-.js.map → nsis-R5ELJwT9.js.map} +1 -1
  285. package/dist-vue/_chunks/{ntriples-BEnyXf7m.js → ntriples-CAwEARBj.js} +1 -1
  286. package/dist-vue/_chunks/{ntriples-BEnyXf7m.js.map → ntriples-CAwEARBj.js.map} +1 -1
  287. package/dist-vue/_chunks/{octave-CyLDdHqN.js → octave-Ufq41PR2.js} +1 -1
  288. package/dist-vue/_chunks/{octave-CyLDdHqN.js.map → octave-Ufq41PR2.js.map} +1 -1
  289. package/dist-vue/_chunks/{oz-D5CDtCy5.js → oz-gzP8z3Q6.js} +1 -1
  290. package/dist-vue/_chunks/{oz-D5CDtCy5.js.map → oz-gzP8z3Q6.js.map} +1 -1
  291. package/dist-vue/_chunks/{pascal-BSLSyZrm.js → pascal-Ccg4lI6j.js} +1 -1
  292. package/dist-vue/_chunks/{pascal-BSLSyZrm.js.map → pascal-Ccg4lI6j.js.map} +1 -1
  293. package/dist-vue/_chunks/{perl-DBW5T0Wn.js → perl-64iNbjRD.js} +1 -1
  294. package/dist-vue/_chunks/{perl-DBW5T0Wn.js.map → perl-64iNbjRD.js.map} +1 -1
  295. package/dist-vue/_chunks/{pig-C5Bshhgj.js → pig-CsJsXnem.js} +1 -1
  296. package/dist-vue/_chunks/{pig-C5Bshhgj.js.map → pig-CsJsXnem.js.map} +1 -1
  297. package/dist-vue/_chunks/{powershell-BEB8cXp1.js → powershell-CPnsuu0v.js} +1 -1
  298. package/dist-vue/_chunks/{powershell-BEB8cXp1.js.map → powershell-CPnsuu0v.js.map} +1 -1
  299. package/dist-vue/_chunks/{properties-Dywxo8ET.js → properties-CEGInQuZ.js} +1 -1
  300. package/dist-vue/_chunks/{properties-Dywxo8ET.js.map → properties-CEGInQuZ.js.map} +1 -1
  301. package/dist-vue/_chunks/{protobuf-236BAJ7w.js → protobuf-BGU8l-K6.js} +1 -1
  302. package/dist-vue/_chunks/{protobuf-236BAJ7w.js.map → protobuf-BGU8l-K6.js.map} +1 -1
  303. package/dist-vue/_chunks/{pug-cbZddqK7.js → pug-DMZOuiBR.js} +2 -2
  304. package/dist-vue/_chunks/{pug-cbZddqK7.js.map → pug-DMZOuiBR.js.map} +1 -1
  305. package/dist-vue/_chunks/{puppet-C2NL98jI.js → puppet-CT38RAOR.js} +1 -1
  306. package/dist-vue/_chunks/{puppet-C2NL98jI.js.map → puppet-CT38RAOR.js.map} +1 -1
  307. package/dist-vue/_chunks/{python-CwQbjwek.js → python-BmpRibCQ.js} +1 -1
  308. package/dist-vue/_chunks/{python-CwQbjwek.js.map → python-BmpRibCQ.js.map} +1 -1
  309. package/dist-vue/_chunks/{q-BSTDwNDO.js → q-CtSYDlyO.js} +1 -1
  310. package/dist-vue/_chunks/{q-BSTDwNDO.js.map → q-CtSYDlyO.js.map} +1 -1
  311. package/dist-vue/_chunks/{r-DFZgsfAZ.js → r-oVGiwSoK.js} +1 -1
  312. package/dist-vue/_chunks/{r-DFZgsfAZ.js.map → r-oVGiwSoK.js.map} +1 -1
  313. package/dist-vue/_chunks/{rpm-C0LbsDPX.js → rpm-B5gOa5-q.js} +1 -1
  314. package/dist-vue/_chunks/{rpm-C0LbsDPX.js.map → rpm-B5gOa5-q.js.map} +1 -1
  315. package/dist-vue/_chunks/{ruby-Bier99ao.js → ruby-34fuN336.js} +1 -1
  316. package/dist-vue/_chunks/{ruby-Bier99ao.js.map → ruby-34fuN336.js.map} +1 -1
  317. package/dist-vue/_chunks/{sas-VrUpo2iQ.js → sas-BlnUKWuD.js} +1 -1
  318. package/dist-vue/_chunks/{sas-VrUpo2iQ.js.map → sas-BlnUKWuD.js.map} +1 -1
  319. package/dist-vue/_chunks/{scheme-D6LSF3th.js → scheme-Ba-z_mxe.js} +1 -1
  320. package/dist-vue/_chunks/{scheme-D6LSF3th.js.map → scheme-Ba-z_mxe.js.map} +1 -1
  321. package/dist-vue/_chunks/{shell-Pil6sZYj.js → shell-B-EgOeQy.js} +1 -1
  322. package/dist-vue/_chunks/{shell-Pil6sZYj.js.map → shell-B-EgOeQy.js.map} +1 -1
  323. package/dist-vue/_chunks/{sieve-BP6vUMh6.js → sieve-DsG7bfYX.js} +1 -1
  324. package/dist-vue/_chunks/{sieve-BP6vUMh6.js.map → sieve-DsG7bfYX.js.map} +1 -1
  325. package/dist-vue/_chunks/{simple-mode-BG7WQO3g.js → simple-mode-wQYx-pPa.js} +1 -1
  326. package/dist-vue/_chunks/{simple-mode-BG7WQO3g.js.map → simple-mode-wQYx-pPa.js.map} +1 -1
  327. package/dist-vue/_chunks/{smalltalk-BnTD_-u6.js → smalltalk-ChZvyDpP.js} +1 -1
  328. package/dist-vue/_chunks/{smalltalk-BnTD_-u6.js.map → smalltalk-ChZvyDpP.js.map} +1 -1
  329. package/dist-vue/_chunks/{solr-VuxI6OR2.js → solr-Dqcv2AYp.js} +1 -1
  330. package/dist-vue/_chunks/{solr-VuxI6OR2.js.map → solr-Dqcv2AYp.js.map} +1 -1
  331. package/dist-vue/_chunks/{sparql-7LilzgeP.js → sparql-DqMXm2dv.js} +1 -1
  332. package/dist-vue/_chunks/{sparql-7LilzgeP.js.map → sparql-DqMXm2dv.js.map} +1 -1
  333. package/dist-vue/_chunks/{spreadsheet-CMp1pfGY.js → spreadsheet-DZEh4bps.js} +1 -1
  334. package/dist-vue/_chunks/{spreadsheet-CMp1pfGY.js.map → spreadsheet-DZEh4bps.js.map} +1 -1
  335. package/dist-vue/_chunks/{sql-7pX-pbPB.js → sql-MyS5CFp1.js} +1 -1
  336. package/dist-vue/_chunks/{sql-7pX-pbPB.js.map → sql-MyS5CFp1.js.map} +1 -1
  337. package/dist-vue/_chunks/{src-DjRNH9vV.js → src-BteqqLGW.js} +1 -1
  338. package/dist-vue/_chunks/{src-DjRNH9vV.js.map → src-BteqqLGW.js.map} +1 -1
  339. package/dist-vue/_chunks/{stex-Bb7D4YTq.js → stex-CuUykOIw.js} +1 -1
  340. package/dist-vue/_chunks/{stex-Bb7D4YTq.js.map → stex-CuUykOIw.js.map} +1 -1
  341. package/dist-vue/_chunks/{stylus-DtQ7d5hI.js → stylus-BIh9GBXG.js} +1 -1
  342. package/dist-vue/_chunks/{stylus-DtQ7d5hI.js.map → stylus-BIh9GBXG.js.map} +1 -1
  343. package/dist-vue/_chunks/{swift-BUw5YtkI.js → swift-En1d22e-.js} +1 -1
  344. package/dist-vue/_chunks/{swift-BUw5YtkI.js.map → swift-En1d22e-.js.map} +1 -1
  345. package/dist-vue/_chunks/{tcl-DXJDyEhN.js → tcl-CA3XR2Sh.js} +1 -1
  346. package/dist-vue/_chunks/{tcl-DXJDyEhN.js.map → tcl-CA3XR2Sh.js.map} +1 -1
  347. package/dist-vue/_chunks/{textile-CFJlGF4J.js → textile-CKe5SU6F.js} +1 -1
  348. package/dist-vue/_chunks/{textile-CFJlGF4J.js.map → textile-CKe5SU6F.js.map} +1 -1
  349. package/dist-vue/_chunks/{tiddlywiki-BcfgI-U0.js → tiddlywiki-UOzNZSPW.js} +1 -1
  350. package/dist-vue/_chunks/{tiddlywiki-BcfgI-U0.js.map → tiddlywiki-UOzNZSPW.js.map} +1 -1
  351. package/dist-vue/_chunks/{tiki-Ck3ovlwE.js → tiki-CTiuYP9v.js} +1 -1
  352. package/dist-vue/_chunks/{tiki-Ck3ovlwE.js.map → tiki-CTiuYP9v.js.map} +1 -1
  353. package/dist-vue/_chunks/{toml-Cj82erLE.js → toml-DDNufn3M.js} +1 -1
  354. package/dist-vue/_chunks/{toml-Cj82erLE.js.map → toml-DDNufn3M.js.map} +1 -1
  355. package/dist-vue/_chunks/{troff-CizaXfug.js → troff-DW8Y_3S4.js} +1 -1
  356. package/dist-vue/_chunks/{troff-CizaXfug.js.map → troff-DW8Y_3S4.js.map} +1 -1
  357. package/dist-vue/_chunks/{ttcn-mPO-QsiQ.js → ttcn-C-DIoNCg.js} +1 -1
  358. package/dist-vue/_chunks/{ttcn-mPO-QsiQ.js.map → ttcn-C-DIoNCg.js.map} +1 -1
  359. package/dist-vue/_chunks/{ttcn-cfg-c_AW8b7V.js → ttcn-cfg-B4ziRnM-.js} +1 -1
  360. package/dist-vue/_chunks/{ttcn-cfg-c_AW8b7V.js.map → ttcn-cfg-B4ziRnM-.js.map} +1 -1
  361. package/dist-vue/_chunks/{turtle-BF5AsFbP.js → turtle-CARqpYpc.js} +1 -1
  362. package/dist-vue/_chunks/{turtle-BF5AsFbP.js.map → turtle-CARqpYpc.js.map} +1 -1
  363. package/dist-vue/_chunks/{useChatbotStore-B9BUWM4O.js → useChatbotStore-C9xj40sY.js} +27 -33
  364. package/dist-vue/_chunks/{useChatbotStore-B9BUWM4O.js.map → useChatbotStore-C9xj40sY.js.map} +1 -1
  365. package/dist-vue/_chunks/{useLightbox-CRpWDdlN.js → useLightbox-CsBDIq4B.js} +2 -2
  366. package/{dist/_chunks/useLightbox-RmU8z981.js.map → dist-vue/_chunks/useLightbox-CsBDIq4B.js.map} +1 -1
  367. package/dist-vue/_chunks/useSafeLocalStorage-C1GCM7nD.js +15 -0
  368. package/dist-vue/_chunks/useSafeLocalStorage-C1GCM7nD.js.map +1 -0
  369. package/dist-vue/_chunks/{utils-DBd_X5-V.js → utils-D1pBqT-n.js} +2 -2
  370. package/dist-vue/_chunks/{utils-DBd_X5-V.js.map → utils-D1pBqT-n.js.map} +1 -1
  371. package/dist-vue/_chunks/{vb-CeqEYgxc.js → vb-jy9Yl8VS.js} +1 -1
  372. package/dist-vue/_chunks/{vb-CeqEYgxc.js.map → vb-jy9Yl8VS.js.map} +1 -1
  373. package/dist-vue/_chunks/{vbscript-Dy7to0l6.js → vbscript-srk6lbz5.js} +1 -1
  374. package/dist-vue/_chunks/{vbscript-Dy7to0l6.js.map → vbscript-srk6lbz5.js.map} +1 -1
  375. package/dist-vue/_chunks/{velocity-CKubdsu-.js → velocity-DYmMYLwp.js} +1 -1
  376. package/dist-vue/_chunks/{velocity-CKubdsu-.js.map → velocity-DYmMYLwp.js.map} +1 -1
  377. package/dist-vue/_chunks/{verilog-BhlfpzOZ.js → verilog-UsIZeNkB.js} +1 -1
  378. package/dist-vue/_chunks/{verilog-BhlfpzOZ.js.map → verilog-UsIZeNkB.js.map} +1 -1
  379. package/dist-vue/_chunks/{vhdl-8WXkWtGM.js → vhdl-DNCP7Bn1.js} +1 -1
  380. package/dist-vue/_chunks/{vhdl-8WXkWtGM.js.map → vhdl-DNCP7Bn1.js.map} +1 -1
  381. package/dist-vue/_chunks/{webidl-Jc36v0Y0.js → webidl-DOqqk_0y.js} +1 -1
  382. package/dist-vue/_chunks/{webidl-Jc36v0Y0.js.map → webidl-DOqqk_0y.js.map} +1 -1
  383. package/dist-vue/_chunks/{xquery-H0oz85f3.js → xquery-DJDJrmLG.js} +1 -1
  384. package/dist-vue/_chunks/{xquery-H0oz85f3.js.map → xquery-DJDJrmLG.js.map} +1 -1
  385. package/dist-vue/_chunks/{yacas-BdW11VL8.js → yacas-BSgkPzcj.js} +1 -1
  386. package/dist-vue/_chunks/{yacas-BdW11VL8.js.map → yacas-BSgkPzcj.js.map} +1 -1
  387. package/dist-vue/_chunks/{z80-GK9AbKDL.js → z80-C0-Mg9L3.js} +1 -1
  388. package/dist-vue/_chunks/{z80-GK9AbKDL.js.map → z80-C0-Mg9L3.js.map} +1 -1
  389. package/dist-vue/api.js +1 -1
  390. package/dist-vue/apps/web-component/src/composables/useChatbotAuth.d.ts +2 -1
  391. package/dist-vue/composables.js +92 -80
  392. package/dist-vue/composables.js.map +1 -1
  393. package/dist-vue/index.js +874 -857
  394. package/dist-vue/index.js.map +1 -1
  395. package/dist-vue/locales.js +1 -0
  396. package/dist-vue/packages/ability/src/types.d.ts +3 -1
  397. package/dist-vue/packages/components/src/chat/PkChatbotMessages.d.ts +10 -3
  398. package/dist-vue/packages/components/src/chat/PkCopyBlock.d.ts +4 -2
  399. package/dist-vue/packages/components/src/chat/PkMessageParts.d.ts +5 -1
  400. package/dist-vue/packages/components/src/chat/PkToolShowLocation.d.ts +5 -0
  401. package/dist-vue/packages/components/src/index.d.ts +2 -1
  402. package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +5 -0
  403. package/dist-vue/packages/composable/src/index.d.ts +1 -0
  404. package/dist-vue/packages/composable/src/useSafeLocalStorage.d.ts +7 -0
  405. package/dist-vue/packages/models/src/schema/AgentEndpoint.d.ts +108 -0
  406. package/dist-vue/packages/models/src/schema/AgentEndpointLog.d.ts +48 -0
  407. package/dist-vue/packages/models/src/schema/index.d.ts +2 -0
  408. package/dist-vue/style.css +1 -1
  409. package/package.json +3 -2
  410. package/dist/_chunks/PkToolShowArtifact-BFe_MhNr.js.map +0 -1
  411. package/dist/_chunks/PkToolShowLocation-DN57lKN1.js +0 -134
  412. package/dist/_chunks/PkToolShowLocation-DN57lKN1.js.map +0 -1
  413. package/dist/_chunks/vue-leaflet.es-7LObg4WN.js +0 -1738
  414. package/dist/_chunks/vue-leaflet.es-7LObg4WN.js.map +0 -1
  415. package/dist-vue/_chunks/PkChatbotFeedbackForm-Dl1pWKbb.js +0 -1035
  416. package/dist-vue/_chunks/PkChatbotFeedbackForm-Dl1pWKbb.js.map +0 -1
  417. package/dist-vue/_chunks/PkChatbotMessages-CQdxH86L.js.map +0 -1
  418. package/dist-vue/_chunks/PkChatbotViewChat-DHOeNxnR.js +0 -792
  419. package/dist-vue/_chunks/PkChatbotViewChat-DHOeNxnR.js.map +0 -1
  420. package/dist-vue/_chunks/PkToolShowArtifact-DIw-_JPA.js.map +0 -1
  421. package/dist-vue/_chunks/PkToolShowLocation-BeOkj0Q2.js +0 -135
  422. package/dist-vue/_chunks/PkToolShowLocation-BeOkj0Q2.js.map +0 -1
  423. package/dist-vue/_chunks/createChatbotApiClient-BJL1_AVi.js +0 -630
  424. package/dist-vue/_chunks/createChatbotApiClient-BJL1_AVi.js.map +0 -1
  425. package/dist-vue/_chunks/dist-Bh5Q6aSI2.js.map +0 -1
  426. package/dist-vue/_chunks/dist-CAZOa5qs2.js.map +0 -1
  427. package/dist-vue/_chunks/dist-afJW4ohP2.js.map +0 -1
@@ -0,0 +1,377 @@
1
+ import { u as e } from "./useChatbotStore-C9xj40sY.js";
2
+ import { a as t, b as n, g as r, m as i, n as a, o, p as s, v as c, x as l, y as u } from "./schemas-sa2dDEGb.js";
3
+ import { a as d, c as f, i as p, l as m, n as h, s as g } from "./Media-COOsOMMv.js";
4
+ import { m as _ } from "./src-BteqqLGW.js";
5
+ import { t as ee } from "./PkUrl-tuHTaGCy.js";
6
+ import { t as v } from "./PkStreamingMarkdown-CGEZEVZF.js";
7
+ import { Fragment as y, Transition as b, computed as x, createBlock as S, createCommentVNode as C, createElementBlock as w, createElementVNode as T, createTextVNode as E, createVNode as D, defineComponent as O, normalizeClass as k, openBlock as A, reactive as j, ref as M, renderList as N, toDisplayString as P, unref as F, withCtx as I } from "vue";
8
+ import { VvIcon as L } from "@volverjs/ui-vue/components";
9
+ var R = t(i({
10
+ key: c().optional(),
11
+ value: c().optional()
12
+ })).transform((e) => e?.filter((e) => e.key?.trim() && e.value?.trim())), te = /* @__PURE__ */ function(e) {
13
+ return e.Pending = "pending", e.Processing = "processing", e.Success = "success", e.Failed = "failed", e;
14
+ }({}), z = i({
15
+ extractionStrategy: a(d).optional(),
16
+ browserEngine: a(p).optional(),
17
+ headers: R.nullish()
18
+ }), B = i({
19
+ source: i({
20
+ url: c(),
21
+ lastScrapedAt: c()
22
+ }).optional(),
23
+ media: h.optional(),
24
+ title: c().optional(),
25
+ author: c().optional(),
26
+ description: c().optional(),
27
+ summary: c().optional(),
28
+ keywords: t(c()).optional(),
29
+ subject: c().optional(),
30
+ creator: c().optional(),
31
+ producer: c().optional(),
32
+ creationDate: c().optional(),
33
+ modificationDate: c().optional(),
34
+ pageCount: u([s(), t(n())]).transform((e) => Array.isArray(e) ? e.length : e).optional(),
35
+ encrypted: o().optional(),
36
+ characterCount: s().optional(),
37
+ lineCount: s().optional(),
38
+ siteName: c().optional(),
39
+ canonicalUrl: l().optional(),
40
+ imageUrl: l().optional(),
41
+ favicon: l().optional(),
42
+ type: c().optional(),
43
+ locale: c().optional(),
44
+ tags: t(c()).optional(),
45
+ publishedTime: c().optional(),
46
+ modifiedTime: c().optional(),
47
+ wordCount: s().optional(),
48
+ paragraphCount: s().optional(),
49
+ readingTime: s().optional(),
50
+ conversionOptions: z.optional()
51
+ }).loose(), V = /* @__PURE__ */ function(e) {
52
+ return e.File = "file", e.Url = "url", e.RevisedAnswer = "revised-answer", e.PlainText = "plain-text", e;
53
+ }({});
54
+ i({
55
+ id: c(),
56
+ externalId: c().nullable(),
57
+ name: c(),
58
+ content: c(),
59
+ type: c(),
60
+ language: c(),
61
+ metadata: r(c(), n()),
62
+ indexStatus: c(),
63
+ processedAt: m().nullable(),
64
+ createdAt: m(),
65
+ createdBy: c(),
66
+ updatedAt: m(),
67
+ updatedBy: c(),
68
+ deleted: o(),
69
+ deletedAt: m().nullable(),
70
+ deletedBy: c().nullable(),
71
+ organizationId: c()
72
+ }).extend({
73
+ type: a(V),
74
+ indexStatus: a(te),
75
+ metadata: B,
76
+ chunksCount: s().optional()
77
+ }), i({
78
+ ...f.pagination(),
79
+ ...f.sort([
80
+ "id",
81
+ "updatedAt",
82
+ "createdAt",
83
+ "name"
84
+ ]),
85
+ ...f.filters([
86
+ "type",
87
+ "language",
88
+ "agentId",
89
+ "indexStatus"
90
+ ]),
91
+ ...f.fullText(),
92
+ ...f.ids(),
93
+ "filter[similarity]": c().optional()
94
+ }), i({
95
+ type: a(V).default(V.File),
96
+ name: c().min(1).max(255).optional(),
97
+ language: a(g).optional(),
98
+ organizationId: c(),
99
+ agentIds: t(c()).min(1, "At least one agent is required"),
100
+ media: h.optional(),
101
+ url: l().optional(),
102
+ content: c().optional(),
103
+ metadata: r(c(), n()).optional(),
104
+ extractionStrategy: a(d).optional(),
105
+ browserEngine: a(p).optional(),
106
+ headers: R.nullish().default([])
107
+ }).superRefine((e, t) => {
108
+ if (e.type === V.File && !e.media) {
109
+ t.addIssue({
110
+ code: "custom",
111
+ params: { i18n: "errors.required" },
112
+ path: ["media"]
113
+ });
114
+ return;
115
+ }
116
+ e.type === V.Url && !e.url && t.addIssue({
117
+ code: "custom",
118
+ params: { i18n: "errors.required" },
119
+ path: ["url"]
120
+ }), e.type === V.PlainText && !(e.name || e.language) && (e.name || t.addIssue({
121
+ code: "custom",
122
+ params: { i18n: "errors.required" },
123
+ path: ["name"]
124
+ }), e.language || t.addIssue({
125
+ code: "custom",
126
+ params: { i18n: "errors.required" },
127
+ path: ["language"]
128
+ }));
129
+ }), i({
130
+ id: c(),
131
+ organizationId: c(),
132
+ content: c().optional(),
133
+ name: c().min(1).max(255).optional(),
134
+ language: a(g).optional(),
135
+ agentIds: t(c()).min(1).optional(),
136
+ metadata: r(c(), n()).optional()
137
+ });
138
+ var H = (e) => {
139
+ switch (e) {
140
+ case V.File: return "ri:file-line";
141
+ case V.Url: return "ri:link";
142
+ case V.RevisedAnswer: return "ri:feedback-line";
143
+ default: return "ri:input-method-line";
144
+ }
145
+ }, U = ["title"], W = {
146
+ key: 0,
147
+ class: "text-10 text-word-4 shrink-0"
148
+ }, G = /* @__PURE__ */ O({
149
+ __name: "PkChunkPreview",
150
+ props: {
151
+ content: {},
152
+ similarity: {},
153
+ maxSimilarity: {},
154
+ expanded: { type: Boolean }
155
+ },
156
+ setup(e) {
157
+ let t = e, n = x(() => {
158
+ if (t.similarity == null) return null;
159
+ let e = t.maxSimilarity && t.maxSimilarity > 0 ? t.maxSimilarity : 1;
160
+ return Math.round(t.similarity / e * 100);
161
+ });
162
+ return (t, r) => {
163
+ let i = L;
164
+ return A(), w(y, null, [
165
+ D(i, {
166
+ name: "ri:text-snippet",
167
+ class: "shrink-0 text-12 text-word-4"
168
+ }),
169
+ T("span", {
170
+ class: "text-10 text-word-2 truncate flex-1",
171
+ title: e.content
172
+ }, P(F(_)(e.content)), 9, U),
173
+ n.value == null ? C("", !0) : (A(), w("span", W, P(n.value) + "% ", 1)),
174
+ D(i, {
175
+ name: e.expanded ? "ri:arrow-up-s-line" : "ri:arrow-down-s-line",
176
+ class: "text-14 text-word-4 shrink-0"
177
+ }, null, 8, ["name"])
178
+ ], 64);
179
+ };
180
+ }
181
+ }), K = { class: "flex flex-col gap-2 min-w-0 flex-1" }, q = { class: "font-bold text-12 text-word-1 truncate block" }, J = {
182
+ key: 0,
183
+ class: "text-10 text-word-4 truncate"
184
+ }, Y = {
185
+ key: 1,
186
+ class: "text-10 text-word-4 truncate flex items-center gap-4"
187
+ }, X = /* @__PURE__ */ O({
188
+ __name: "PkDocumentHeader",
189
+ props: {
190
+ type: {},
191
+ name: {},
192
+ url: {},
193
+ filename: {}
194
+ },
195
+ setup(e) {
196
+ return (t, n) => {
197
+ let r = L;
198
+ return A(), w(y, null, [D(r, {
199
+ name: F(H)(e.type),
200
+ class: "shrink-0 text-14 text-word-3"
201
+ }, null, 8, ["name"]), T("div", K, [
202
+ T("strong", q, P(e.name), 1),
203
+ e.filename ? (A(), w("span", J, P(e.filename), 1)) : C("", !0),
204
+ e.url ? (A(), w("span", Y, [D(r, {
205
+ name: "ri:link",
206
+ class: "shrink-0 text-10"
207
+ }), D(ee, { url: e.url }, null, 8, ["url"])])) : C("", !0)
208
+ ])], 64);
209
+ };
210
+ }
211
+ }), Z = {
212
+ key: 0,
213
+ class: "flex flex-col gap-xs w-full"
214
+ }, Q = { class: "flex items-center gap-4 text-12 text-word-3 font-semibold" }, ne = { class: "text-word-4 font-normal" }, re = { class: "flex flex-col gap-xs" }, ie = ["onClick"], ae = { class: "flex items-center gap-4 shrink-0" }, oe = {
215
+ key: 0,
216
+ class: "text-10 text-word-4 bg-surface-2 rounded px-4 py-2"
217
+ }, se = { class: "text-10 text-word-4 bg-surface-2 rounded px-4 py-2 uppercase" }, ce = {
218
+ key: 0,
219
+ class: "border-t border-surface-3"
220
+ }, le = ["onClick"], ue = {
221
+ key: 0,
222
+ class: "bg-surface-1 border-t border-surface-3"
223
+ }, de = { class: "p-8 text-10 text-word-3" }, fe = { class: "flex items-center gap-8 px-8 py-6 border-t border-surface-3 bg-surface" }, pe = ["disabled", "onClick"], me = ["onClick"], he = ["href"], ge = ["onClick"], _e = /* @__PURE__ */ O({
224
+ __name: "PkToolShowSources",
225
+ props: {
226
+ part: {},
227
+ onExpandContext: { type: Function },
228
+ onDownload: { type: Function }
229
+ },
230
+ setup(e) {
231
+ let t = e, n = x(() => t.part), r = x(() => n.value.input?.sources || []), i = x(() => {
232
+ let e = /* @__PURE__ */ new Map();
233
+ for (let t of r.value) {
234
+ let n = e.get(t.documentId);
235
+ n ? n.chunks.push(t) : e.set(t.documentId, {
236
+ document: t,
237
+ chunks: [t]
238
+ });
239
+ }
240
+ return [...e.values()];
241
+ }), a = x(() => Math.max(...r.value.map((e) => e.similarity ?? 0), 0)), o = j(/* @__PURE__ */ new Set()), s = j(/* @__PURE__ */ new Set()), c = j(/* @__PURE__ */ new Map()), l = j(/* @__PURE__ */ new Set()), u = (e) => {
242
+ o.has(e) ? o.delete(e) : o.add(e);
243
+ }, d = (e) => {
244
+ s.has(e) ? s.delete(e) : s.add(e);
245
+ }, f = async (e) => {
246
+ if (!(e.chunkIndex == null || !t.onExpandContext)) {
247
+ l.add(e.chunkId);
248
+ try {
249
+ let n = await t.onExpandContext({
250
+ documentId: e.documentId,
251
+ chunkIndex: e.chunkIndex
252
+ });
253
+ c.set(e.chunkId, n);
254
+ } finally {
255
+ l.delete(e.chunkId);
256
+ }
257
+ }
258
+ }, p = (e) => {
259
+ c.delete(e);
260
+ }, m = M(!1), h = x(() => m.value ? i.value : i.value.slice(0, 3)), g = x(() => i.value.length > 3);
261
+ return (t, n) => {
262
+ let _ = L;
263
+ return r.value.length ? (A(), w("div", Z, [
264
+ T("div", Q, [
265
+ D(_, {
266
+ name: "ri:article-line",
267
+ class: "text-14"
268
+ }),
269
+ E(" " + P(t.$t("label.sources")) + " ", 1),
270
+ T("span", ne, " (" + P(i.value.length) + ") ", 1)
271
+ ]),
272
+ T("ul", re, [(A(!0), w(y, null, N(h.value, (n) => (A(), w("li", {
273
+ key: n.document.documentId,
274
+ class: "border border-surface-3 rounded-lg overflow-hidden"
275
+ }, [T("button", {
276
+ class: "flex items-center gap-8 p-8 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer",
277
+ onClick: (e) => u(n.document.documentId)
278
+ }, [D(X, {
279
+ type: n.document.documentType,
280
+ name: n.document.documentName,
281
+ url: n.document.sourceUrl,
282
+ filename: n.document.sourceFilename
283
+ }, null, 8, [
284
+ "type",
285
+ "name",
286
+ "url",
287
+ "filename"
288
+ ]), T("div", ae, [
289
+ n.chunks.length > 1 ? (A(), w("span", oe, P(n.chunks.length), 1)) : C("", !0),
290
+ T("span", se, P(n.document.language), 1),
291
+ D(_, {
292
+ name: o.has(n.document.documentId) ? "ri:arrow-up-s-line" : "ri:arrow-down-s-line",
293
+ class: "text-16 text-word-3"
294
+ }, null, 8, ["name"])
295
+ ])], 8, ie), o.has(n.document.documentId) ? (A(), w("div", ce, [n.document.sourceDescription ? (A(), S(v, {
296
+ key: 0,
297
+ markdown: n.document.sourceDescription,
298
+ class: "px-8 py-4 text-10 text-word-3 bg-surface-1 border-b border-surface-3"
299
+ }, null, 8, ["markdown"])) : C("", !0), (A(!0), w(y, null, N(n.chunks, (n) => (A(), w("div", {
300
+ key: n.chunkId,
301
+ class: "border-b border-surface-3 last:border-b-0"
302
+ }, [T("button", {
303
+ class: "flex items-center gap-8 px-8 py-6 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer",
304
+ onClick: (e) => d(n.chunkId)
305
+ }, [D(G, {
306
+ content: n.content,
307
+ similarity: n.similarity,
308
+ "max-similarity": a.value,
309
+ expanded: s.has(n.chunkId)
310
+ }, null, 8, [
311
+ "content",
312
+ "similarity",
313
+ "max-similarity",
314
+ "expanded"
315
+ ])], 8, le), s.has(n.chunkId) ? (A(), w("div", ue, [T("div", de, [D(b, { mode: "out-in" }, {
316
+ default: I(() => [c.has(n.chunkId) ? (A(), S(v, {
317
+ key: 0,
318
+ markdown: c.get(n.chunkId),
319
+ class: "wysiwyg"
320
+ }, null, 8, ["markdown"])) : (A(), S(v, {
321
+ key: 1,
322
+ markdown: n.content,
323
+ class: "wysiwyg"
324
+ }, null, 8, ["markdown"]))]),
325
+ _: 2
326
+ }, 1024)]), T("div", fe, [
327
+ e.onExpandContext && n.chunkIndex != null && !c.has(n.chunkId) ? (A(), w("button", {
328
+ key: 0,
329
+ class: "text-10 text-word-3 hover:text-word flex items-center gap-4 cursor-pointer",
330
+ disabled: l.has(n.chunkId),
331
+ onClick: (e) => f(n)
332
+ }, [D(_, {
333
+ name: l.has(n.chunkId) ? "line-md:loading-loop" : "ri:expand-up-down-line",
334
+ class: "text-12"
335
+ }, null, 8, ["name"]), E(" " + P(t.$t("label.expandContext")), 1)], 8, pe)) : c.has(n.chunkId) ? (A(), w("button", {
336
+ key: 1,
337
+ class: "text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer",
338
+ onClick: (e) => p(n.chunkId)
339
+ }, [D(_, {
340
+ name: "ri:collapse-vertical-line",
341
+ class: "text-12"
342
+ }), E(" " + P(t.$t("label.collapseContext")), 1)], 8, me)) : C("", !0),
343
+ n.sourceUrl ? (A(), w("a", {
344
+ key: 2,
345
+ href: n.sourceUrl,
346
+ target: "_blank",
347
+ rel: "noopener noreferrer",
348
+ class: "text-10 text-word-3 hover:text-word-1 flex items-center gap-4 ml-auto"
349
+ }, [D(_, {
350
+ name: "ri:external-link-line",
351
+ class: "text-12"
352
+ }), E(" " + P(t.$t("label.openSource")), 1)], 8, he)) : C("", !0),
353
+ e.onDownload && n.documentType === "file" ? (A(), w("button", {
354
+ key: 3,
355
+ class: k(["text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer", { "ml-auto": !n.sourceUrl }]),
356
+ onClick: (t) => e.onDownload(n.documentId)
357
+ }, [D(_, {
358
+ name: "ri:download-line",
359
+ class: "text-12"
360
+ }), E(" " + P(t.$t("label.downloadFile")), 1)], 10, ge)) : C("", !0)
361
+ ])])) : C("", !0)]))), 128))])) : C("", !0)]))), 128))]),
362
+ g.value ? (A(), w("button", {
363
+ key: 0,
364
+ class: "text-12 text-word-3 cursor-pointer hover:underline flex items-center gap-4 mx-auto",
365
+ onClick: n[0] ||= (e) => m.value = !m.value
366
+ }, [D(_, {
367
+ name: m.value ? "ri:arrow-up-s-line" : "ri:arrow-down-s-line",
368
+ class: "text-16"
369
+ }, null, 8, ["name"]), E(" " + P(m.value ? t.$t("action.showLess") : t.$t("action.showMore", { count: i.value.length - 3 })), 1)])) : C("", !0)
370
+ ])) : C("", !0);
371
+ };
372
+ }
373
+ }), ve = /* @__PURE__ */ e({ default: () => $ }), $ = _e;
374
+ //#endregion
375
+ export { G as i, ve as n, X as r, $ as t };
376
+
377
+ //# sourceMappingURL=PkToolShowSources-B_UfP0QT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PkToolShowSources-B_UfP0QT.js","names":["$t"],"sources":["../../../../packages/models/src/schema/Header.ts","../../../../packages/models/src/schema/Document.ts","../../../../packages/components/src/chat/PkChunkPreview.vue","../../../../packages/components/src/chat/PkChunkPreview.vue","../../../../packages/components/src/chat/PkDocumentHeader.vue","../../../../packages/components/src/chat/PkDocumentHeader.vue","../../../../packages/components/src/chat/PkToolShowSources.vue","../../../../packages/components/src/chat/PkToolShowSources.vue"],"sourcesContent":["import * as z from 'zod'\n\nexport const HeaderSchema = z.object({\n key: z.string().optional(),\n value: z.string().optional(),\n})\n\nexport const HeadesSchema = z.array(HeaderSchema).transform((headers) => {\n return headers?.filter(\n (header) => header.key?.trim() && header.value?.trim(),\n ) as Array<{ key: string; value: string }>\n})\n\nexport type Header = z.infer<typeof HeaderSchema>\nexport type Headers = z.infer<typeof HeadesSchema>\n","import * as z from 'zod'\nimport { zodQs } from '../utils'\nimport {\n SupportedLanguage,\n ExtractionStrategy,\n BrowserEngine,\n} from './constants'\nimport { MediaSchema } from './Media'\nimport { HeadesSchema } from './Header'\n\n/**\n * Processing status for document indexing and embedding generation\n */\nexport enum IndexStatus {\n Pending = 'pending',\n Processing = 'processing',\n Success = 'success',\n Failed = 'failed',\n}\n\n// ===== Document Source Types =====\n\n/**\n * Conversion options for document processing\n * Used when creating or reprocessing documents\n */\nexport const ConversionOptionsSchema = z.object({\n extractionStrategy: z.enum(ExtractionStrategy).optional(),\n browserEngine: z.enum(BrowserEngine).optional(),\n headers: HeadesSchema.nullish(),\n})\n\nexport type ConversionOptions = z.infer<typeof ConversionOptionsSchema>\n\n/**\n * Metadata structure for document.metadata column\n * Consolidates all metadata from converters and source info\n */\nexport const DocumentMetadataSchema = z\n .object({\n // === Source Info (URL documents only) ===\n source: z\n .object({\n url: z.string(),\n lastScrapedAt: z.string(),\n })\n .optional(),\n\n // === Media Info (File documents only) ===\n media: MediaSchema.optional(),\n\n // === Common Fields (all document types) ===\n title: z.string().optional(),\n author: z.string().optional(),\n description: z.string().optional(),\n summary: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n\n // === PDF Specific ===\n subject: z.string().optional(),\n creator: z.string().optional(), // Original application\n producer: z.string().optional(), // PDF generator software\n creationDate: z.string().optional(),\n modificationDate: z.string().optional(),\n pageCount: z\n .union([z.number(), z.array(z.unknown())])\n .transform((val) => (Array.isArray(val) ? val.length : val))\n .optional(),\n encrypted: z.boolean().optional(),\n\n // === DOCX Specific ===\n characterCount: z.number().optional(),\n lineCount: z.number().optional(),\n\n // === URL Specific ===\n siteName: z.string().optional(),\n canonicalUrl: z.url().optional(),\n imageUrl: z.url().optional(),\n favicon: z.url().optional(),\n type: z.string().optional(), // og:type (article, website, etc.)\n locale: z.string().optional(),\n tags: z.array(z.string()).optional(),\n publishedTime: z.string().optional(),\n modifiedTime: z.string().optional(),\n\n // === Metrics (all document types) ===\n wordCount: z.number().optional(),\n paragraphCount: z.number().optional(),\n readingTime: z.number().optional(), // in minutes\n\n // === Conversion Options (for reprocessing) ===\n conversionOptions: ConversionOptionsSchema.optional(),\n })\n .loose() // Allow additional custom fields\n\nexport type DocumentMetadata = z.infer<typeof DocumentMetadataSchema>\n\n/**\n * Document type enum\n *\n * - 'file': Document created from uploaded file (PDF, DOCX)\n * - 'url': Document created from web scraping\n * - 'revised-answer': Document created from revised AI answer\n * - 'plain-text': Document created from plain text input\n */\nexport enum DocumentType {\n File = 'file',\n Url = 'url',\n RevisedAnswer = 'revised-answer',\n PlainText = 'plain-text',\n}\n\n// ===== Schemas =====\n\n/**\n * Full document schema from database\n * Extended with computed field chunksCount\n */\nconst BaseDocumentSchema = z.object({\n id: z.string(),\n externalId: z.string().nullable(),\n name: z.string(),\n content: z.string(),\n type: z.string(),\n language: z.string(),\n metadata: z.record(z.string(), z.unknown()),\n indexStatus: z.string(),\n processedAt: z.coerce.date().nullable(),\n createdAt: z.coerce.date(),\n createdBy: z.string(),\n updatedAt: z.coerce.date(),\n updatedBy: z.string(),\n deleted: z.boolean(),\n deletedAt: z.coerce.date().nullable(),\n deletedBy: z.string().nullable(),\n organizationId: z.string(),\n})\n\nexport const DocumentSchema = BaseDocumentSchema.extend({\n type: z.enum(DocumentType),\n indexStatus: z.enum(IndexStatus),\n metadata: DocumentMetadataSchema,\n // Add computed field for chunks count (populated by service layer)\n chunksCount: z.number().optional(),\n})\n\n/**\n * Query parameters for listing documents with pagination, sorting, and filters\n */\nexport const DocumentQuerystringSchema = z.object({\n ...zodQs.pagination(),\n ...zodQs.sort(['id', 'updatedAt', 'createdAt', 'name']),\n ...zodQs.filters(['type', 'language', 'agentId', 'indexStatus']),\n ...zodQs.fullText(),\n ...zodQs.ids(),\n 'filter[similarity]': z.string().optional(),\n})\n\n/**\n * Document creation schema for POST /documents endpoint\n *\n * Supports three types:\n * - 'file': Requires media object with uploaded file info\n * - 'url': Requires url string for web scraping\n * - 'revised-answer': Requires content (created from revisedAnswer service)\n */\nexport const DocumentCreateDtoSchema = z\n .object({\n type: z.enum(DocumentType).default(DocumentType.File),\n name: z.string().min(1).max(255).optional(),\n language: z.enum(SupportedLanguage).optional(),\n organizationId: z.string(),\n agentIds: z.array(z.string()).min(1, 'At least one agent is required'),\n media: MediaSchema.optional(),\n url: z.url().optional(),\n content: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n extractionStrategy: z.enum(ExtractionStrategy).optional(),\n browserEngine: z.enum(BrowserEngine).optional(),\n headers: HeadesSchema.nullish().default([]),\n })\n .superRefine((data, ctx) => {\n if (data.type === DocumentType.File && !data.media) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['media'],\n })\n return\n }\n if (data.type === DocumentType.Url && !data.url) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['url'],\n })\n }\n if (\n data.type === DocumentType.PlainText &&\n !(data.name || data.language)\n ) {\n if (!data.name) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['name'],\n })\n }\n if (!data.language) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['language'],\n })\n }\n }\n })\n\n/**\n * Document update schema for PUT /documents/:id endpoint\n *\n * All fields are optional, but at least one must be provided\n */\nexport const DocumentUpdateDtoSchema = z.object({\n id: z.string(),\n organizationId: z.string(),\n content: z.string().optional(),\n name: z.string().min(1).max(255).optional(),\n language: z.enum(SupportedLanguage).optional(),\n agentIds: z.array(z.string()).min(1).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n// ===== Type Exports =====\n\nexport type Document = z.infer<typeof DocumentSchema>\nexport type DocumentQuerystring = z.infer<typeof DocumentQuerystringSchema>\nexport type DocumentCreateDto = z.infer<typeof DocumentCreateDtoSchema>\nexport type DocumentUpdateDto = z.infer<typeof DocumentUpdateDtoSchema>\n\n// ===== Helper Functions =====\n\nexport const getStatusColor = (status: IndexStatus) => {\n switch (status) {\n case IndexStatus.Success:\n return 'success'\n case IndexStatus.Failed:\n return 'danger'\n case IndexStatus.Processing:\n return 'warning'\n default:\n return 'info'\n }\n}\n\nexport const getStatusIcon = (status: IndexStatus) => {\n switch (status) {\n case IndexStatus.Success:\n return 'ri:check-line'\n case IndexStatus.Failed:\n return 'ri:error-warning-line'\n case IndexStatus.Processing:\n return 'ri:hourglass-line'\n default:\n return 'ri:time-line'\n }\n}\n\nexport const getTypeIcon = (type: DocumentType) => {\n switch (type) {\n case DocumentType.File:\n return 'ri:file-line'\n case DocumentType.Url:\n return 'ri:link'\n case DocumentType.RevisedAnswer:\n return 'ri:feedback-line'\n default:\n return 'ri:input-method-line'\n }\n}\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { stripMarkdown } from 'utils'\n\n const props = defineProps<{\n content: string\n similarity?: number\n maxSimilarity?: number\n expanded: boolean\n }>()\n\n const similarityPercent = computed(() => {\n if (props.similarity == null) {\n return null\n }\n const max =\n props.maxSimilarity && props.maxSimilarity > 0\n ? props.maxSimilarity\n : 1\n return Math.round((props.similarity / max) * 100)\n })\n</script>\n\n<template>\n <VvIcon name=\"ri:text-snippet\" class=\"shrink-0 text-12 text-word-4\" />\n <span class=\"text-10 text-word-2 truncate flex-1\" :title=\"content\">\n {{ stripMarkdown(content) }}\n </span>\n <span v-if=\"similarityPercent != null\" class=\"text-10 text-word-4 shrink-0\">\n {{ similarityPercent }}%\n </span>\n <VvIcon\n :name=\"expanded ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-14 text-word-4 shrink-0\" />\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { stripMarkdown } from 'utils'\n\n const props = defineProps<{\n content: string\n similarity?: number\n maxSimilarity?: number\n expanded: boolean\n }>()\n\n const similarityPercent = computed(() => {\n if (props.similarity == null) {\n return null\n }\n const max =\n props.maxSimilarity && props.maxSimilarity > 0\n ? props.maxSimilarity\n : 1\n return Math.round((props.similarity / max) * 100)\n })\n</script>\n\n<template>\n <VvIcon name=\"ri:text-snippet\" class=\"shrink-0 text-12 text-word-4\" />\n <span class=\"text-10 text-word-2 truncate flex-1\" :title=\"content\">\n {{ stripMarkdown(content) }}\n </span>\n <span v-if=\"similarityPercent != null\" class=\"text-10 text-word-4 shrink-0\">\n {{ similarityPercent }}%\n </span>\n <VvIcon\n :name=\"expanded ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-14 text-word-4 shrink-0\" />\n</template>\n","<script setup lang=\"ts\">\n import type { DocumentType } from 'models'\n import { getTypeIcon } from 'models'\n import PkUrl from '../PkUrl.vue'\n\n defineProps<{\n type: string\n name: string\n url?: string\n filename?: string\n }>()\n</script>\n\n<template>\n <VvIcon\n :name=\"getTypeIcon(type as DocumentType)\"\n class=\"shrink-0 text-14 text-word-3\" />\n <div class=\"flex flex-col gap-2 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate block\">\n {{ name }}\n </strong>\n <span v-if=\"filename\" class=\"text-10 text-word-4 truncate\">\n {{ filename }}\n </span>\n <span\n v-if=\"url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-10\" />\n <PkUrl :url=\"url\" />\n </span>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import type { DocumentType } from 'models'\n import { getTypeIcon } from 'models'\n import PkUrl from '../PkUrl.vue'\n\n defineProps<{\n type: string\n name: string\n url?: string\n filename?: string\n }>()\n</script>\n\n<template>\n <VvIcon\n :name=\"getTypeIcon(type as DocumentType)\"\n class=\"shrink-0 text-14 text-word-3\" />\n <div class=\"flex flex-col gap-2 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate block\">\n {{ name }}\n </strong>\n <span v-if=\"filename\" class=\"text-10 text-word-4 truncate\">\n {{ filename }}\n </span>\n <span\n v-if=\"url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-10\" />\n <PkUrl :url=\"url\" />\n </span>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, reactive } from 'vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n import PkChunkPreview from './PkChunkPreview.vue'\n import PkDocumentHeader from './PkDocumentHeader.vue'\n\n interface SourceItem {\n chunkId: string\n documentId: string\n documentName: string\n documentType: string\n language: string\n content: string\n chunkIndex?: number | null\n similarity?: number\n sourceUrl?: string\n sourceFilename?: string\n sourceDescription?: string\n sourceImageUrl?: string\n }\n\n const props = defineProps<{\n part: unknown\n onExpandContext?: (payload: {\n documentId: string\n chunkIndex: number\n }) => Promise<string>\n onDownload?: (documentId: string) => void\n }>()\n\n const toolPart = computed(() => {\n return props.part as {\n input?: {\n sources: SourceItem[]\n }\n }\n })\n\n const sources = computed(() => toolPart.value.input?.sources || [])\n\n const groupedSources = computed(() => {\n const groups = new Map<\n string,\n { document: SourceItem; chunks: SourceItem[] }\n >()\n for (const source of sources.value) {\n const existing = groups.get(source.documentId)\n if (existing) {\n existing.chunks.push(source)\n } else {\n groups.set(source.documentId, {\n document: source,\n chunks: [source],\n })\n }\n }\n return [...groups.values()]\n })\n\n const maxSimilarity = computed(() => {\n return Math.max(...sources.value.map((s) => s.similarity ?? 0), 0)\n })\n\n const expandedDocuments = reactive(new Set<string>())\n const expandedChunks = reactive(new Set<string>())\n const contextData = reactive(new Map<string, string>())\n const loadingContext = reactive(new Set<string>())\n\n const toggleDocument = (documentId: string) => {\n if (expandedDocuments.has(documentId)) {\n expandedDocuments.delete(documentId)\n } else {\n expandedDocuments.add(documentId)\n }\n }\n\n const toggleChunk = (chunkId: string) => {\n if (expandedChunks.has(chunkId)) {\n expandedChunks.delete(chunkId)\n } else {\n expandedChunks.add(chunkId)\n }\n }\n\n const handleExpandContext = async (source: SourceItem) => {\n if (source.chunkIndex == null || !props.onExpandContext) {\n return\n }\n loadingContext.add(source.chunkId)\n try {\n const content = await props.onExpandContext({\n documentId: source.documentId,\n chunkIndex: source.chunkIndex,\n })\n contextData.set(source.chunkId, content)\n } finally {\n loadingContext.delete(source.chunkId)\n }\n }\n\n const clearContext = (chunkId: string) => {\n contextData.delete(chunkId)\n }\n\n const showMore = ref(false)\n const visibleGroups = computed(() => {\n if (showMore.value) {\n return groupedSources.value\n }\n return groupedSources.value.slice(0, 3)\n })\n const hasMore = computed(() => groupedSources.value.length > 3)\n</script>\n\n<template>\n <div v-if=\"sources.length\" class=\"flex flex-col gap-xs w-full\">\n <div class=\"flex items-center gap-4 text-12 text-word-3 font-semibold\">\n <VvIcon name=\"ri:article-line\" class=\"text-14\" />\n {{ $t('label.sources') }}\n <span class=\"text-word-4 font-normal\">\n ({{ groupedSources.length }})\n </span>\n </div>\n\n <ul class=\"flex flex-col gap-xs\">\n <li\n v-for=\"group in visibleGroups\"\n :key=\"group.document.documentId\"\n class=\"border border-surface-3 rounded-lg overflow-hidden\">\n <!-- Document header -->\n <button\n class=\"flex items-center gap-8 p-8 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleDocument(group.document.documentId)\">\n <PkDocumentHeader\n :type=\"group.document.documentType\"\n :name=\"group.document.documentName\"\n :url=\"group.document.sourceUrl\"\n :filename=\"group.document.sourceFilename\" />\n <div class=\"flex items-center gap-4 shrink-0\">\n <span\n v-if=\"group.chunks.length > 1\"\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2\">\n {{ group.chunks.length }}\n </span>\n <span\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2 uppercase\">\n {{ group.document.language }}\n </span>\n <VvIcon\n :name=\"\n expandedDocuments.has(group.document.documentId)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"text-16 text-word-3\" />\n </div>\n </button>\n\n <!-- Expanded content -->\n <div\n v-if=\"expandedDocuments.has(group.document.documentId)\"\n class=\"border-t border-surface-3\">\n <PkStreamingMarkdown\n v-if=\"group.document.sourceDescription\"\n :markdown=\"group.document.sourceDescription\"\n class=\"px-8 py-4 text-10 text-word-3 bg-surface-1 border-b border-surface-3\" />\n\n <!-- Chunk excerpts -->\n <div\n v-for=\"chunk in group.chunks\"\n :key=\"chunk.chunkId\"\n class=\"border-b border-surface-3 last:border-b-0\">\n <button\n class=\"flex items-center gap-8 px-8 py-6 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleChunk(chunk.chunkId)\">\n <PkChunkPreview\n :content=\"chunk.content\"\n :similarity=\"chunk.similarity\"\n :max-similarity=\"maxSimilarity\"\n :expanded=\"expandedChunks.has(chunk.chunkId)\" />\n </button>\n\n <!-- Expanded chunk content -->\n <div\n v-if=\"expandedChunks.has(chunk.chunkId)\"\n class=\"bg-surface-1 border-t border-surface-3\">\n <div class=\"p-8 text-10 text-word-3\">\n <transition mode=\"out-in\">\n <!-- Context expansion -->\n <PkStreamingMarkdown\n v-if=\"contextData.has(chunk.chunkId)\"\n :markdown=\"\n contextData.get(chunk.chunkId)!\n \"\n class=\"wysiwyg\" />\n\n <!-- Chunk content -->\n <PkStreamingMarkdown\n v-else\n :markdown=\"chunk.content\"\n class=\"wysiwyg\" />\n </transition>\n </div>\n\n <!-- Actions bar -->\n <div\n class=\"flex items-center gap-8 px-8 py-6 border-t border-surface-3 bg-surface\">\n <!-- Expand / collapse context -->\n <button\n v-if=\"\n onExpandContext &&\n chunk.chunkIndex != null &&\n !contextData.has(chunk.chunkId)\n \"\n class=\"text-10 text-word-3 hover:text-word flex items-center gap-4 cursor-pointer\"\n :disabled=\"\n loadingContext.has(chunk.chunkId)\n \"\n @click=\"handleExpandContext(chunk)\">\n <VvIcon\n :name=\"\n loadingContext.has(chunk.chunkId)\n ? 'line-md:loading-loop'\n : 'ri:expand-up-down-line'\n \"\n class=\"text-12\" />\n {{ $t('label.expandContext') }}\n </button>\n <button\n v-else-if=\"contextData.has(chunk.chunkId)\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n @click=\"clearContext(chunk.chunkId)\">\n <VvIcon\n name=\"ri:collapse-vertical-line\"\n class=\"text-12\" />\n {{ $t('label.collapseContext') }}\n </button>\n\n <!-- Open source URL -->\n <a\n v-if=\"chunk.sourceUrl\"\n :href=\"chunk.sourceUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 ml-auto\">\n <VvIcon\n name=\"ri:external-link-line\"\n class=\"text-12\" />\n {{ $t('label.openSource') }}\n </a>\n\n <!-- Download file -->\n <button\n v-if=\"\n onDownload &&\n chunk.documentType === 'file'\n \"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n :class=\"{\n 'ml-auto': !chunk.sourceUrl,\n }\"\n @click=\"onDownload(chunk.documentId)\">\n <VvIcon\n name=\"ri:download-line\"\n class=\"text-12\" />\n {{ $t('label.downloadFile') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n\n <!-- Show more -->\n <button\n v-if=\"hasMore\"\n class=\"text-12 text-word-3 cursor-pointer hover:underline flex items-center gap-4 mx-auto\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: groupedSources.length - 3,\n })\n }}\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, reactive } from 'vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n import PkChunkPreview from './PkChunkPreview.vue'\n import PkDocumentHeader from './PkDocumentHeader.vue'\n\n interface SourceItem {\n chunkId: string\n documentId: string\n documentName: string\n documentType: string\n language: string\n content: string\n chunkIndex?: number | null\n similarity?: number\n sourceUrl?: string\n sourceFilename?: string\n sourceDescription?: string\n sourceImageUrl?: string\n }\n\n const props = defineProps<{\n part: unknown\n onExpandContext?: (payload: {\n documentId: string\n chunkIndex: number\n }) => Promise<string>\n onDownload?: (documentId: string) => void\n }>()\n\n const toolPart = computed(() => {\n return props.part as {\n input?: {\n sources: SourceItem[]\n }\n }\n })\n\n const sources = computed(() => toolPart.value.input?.sources || [])\n\n const groupedSources = computed(() => {\n const groups = new Map<\n string,\n { document: SourceItem; chunks: SourceItem[] }\n >()\n for (const source of sources.value) {\n const existing = groups.get(source.documentId)\n if (existing) {\n existing.chunks.push(source)\n } else {\n groups.set(source.documentId, {\n document: source,\n chunks: [source],\n })\n }\n }\n return [...groups.values()]\n })\n\n const maxSimilarity = computed(() => {\n return Math.max(...sources.value.map((s) => s.similarity ?? 0), 0)\n })\n\n const expandedDocuments = reactive(new Set<string>())\n const expandedChunks = reactive(new Set<string>())\n const contextData = reactive(new Map<string, string>())\n const loadingContext = reactive(new Set<string>())\n\n const toggleDocument = (documentId: string) => {\n if (expandedDocuments.has(documentId)) {\n expandedDocuments.delete(documentId)\n } else {\n expandedDocuments.add(documentId)\n }\n }\n\n const toggleChunk = (chunkId: string) => {\n if (expandedChunks.has(chunkId)) {\n expandedChunks.delete(chunkId)\n } else {\n expandedChunks.add(chunkId)\n }\n }\n\n const handleExpandContext = async (source: SourceItem) => {\n if (source.chunkIndex == null || !props.onExpandContext) {\n return\n }\n loadingContext.add(source.chunkId)\n try {\n const content = await props.onExpandContext({\n documentId: source.documentId,\n chunkIndex: source.chunkIndex,\n })\n contextData.set(source.chunkId, content)\n } finally {\n loadingContext.delete(source.chunkId)\n }\n }\n\n const clearContext = (chunkId: string) => {\n contextData.delete(chunkId)\n }\n\n const showMore = ref(false)\n const visibleGroups = computed(() => {\n if (showMore.value) {\n return groupedSources.value\n }\n return groupedSources.value.slice(0, 3)\n })\n const hasMore = computed(() => groupedSources.value.length > 3)\n</script>\n\n<template>\n <div v-if=\"sources.length\" class=\"flex flex-col gap-xs w-full\">\n <div class=\"flex items-center gap-4 text-12 text-word-3 font-semibold\">\n <VvIcon name=\"ri:article-line\" class=\"text-14\" />\n {{ $t('label.sources') }}\n <span class=\"text-word-4 font-normal\">\n ({{ groupedSources.length }})\n </span>\n </div>\n\n <ul class=\"flex flex-col gap-xs\">\n <li\n v-for=\"group in visibleGroups\"\n :key=\"group.document.documentId\"\n class=\"border border-surface-3 rounded-lg overflow-hidden\">\n <!-- Document header -->\n <button\n class=\"flex items-center gap-8 p-8 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleDocument(group.document.documentId)\">\n <PkDocumentHeader\n :type=\"group.document.documentType\"\n :name=\"group.document.documentName\"\n :url=\"group.document.sourceUrl\"\n :filename=\"group.document.sourceFilename\" />\n <div class=\"flex items-center gap-4 shrink-0\">\n <span\n v-if=\"group.chunks.length > 1\"\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2\">\n {{ group.chunks.length }}\n </span>\n <span\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2 uppercase\">\n {{ group.document.language }}\n </span>\n <VvIcon\n :name=\"\n expandedDocuments.has(group.document.documentId)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"text-16 text-word-3\" />\n </div>\n </button>\n\n <!-- Expanded content -->\n <div\n v-if=\"expandedDocuments.has(group.document.documentId)\"\n class=\"border-t border-surface-3\">\n <PkStreamingMarkdown\n v-if=\"group.document.sourceDescription\"\n :markdown=\"group.document.sourceDescription\"\n class=\"px-8 py-4 text-10 text-word-3 bg-surface-1 border-b border-surface-3\" />\n\n <!-- Chunk excerpts -->\n <div\n v-for=\"chunk in group.chunks\"\n :key=\"chunk.chunkId\"\n class=\"border-b border-surface-3 last:border-b-0\">\n <button\n class=\"flex items-center gap-8 px-8 py-6 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleChunk(chunk.chunkId)\">\n <PkChunkPreview\n :content=\"chunk.content\"\n :similarity=\"chunk.similarity\"\n :max-similarity=\"maxSimilarity\"\n :expanded=\"expandedChunks.has(chunk.chunkId)\" />\n </button>\n\n <!-- Expanded chunk content -->\n <div\n v-if=\"expandedChunks.has(chunk.chunkId)\"\n class=\"bg-surface-1 border-t border-surface-3\">\n <div class=\"p-8 text-10 text-word-3\">\n <transition mode=\"out-in\">\n <!-- Context expansion -->\n <PkStreamingMarkdown\n v-if=\"contextData.has(chunk.chunkId)\"\n :markdown=\"\n contextData.get(chunk.chunkId)!\n \"\n class=\"wysiwyg\" />\n\n <!-- Chunk content -->\n <PkStreamingMarkdown\n v-else\n :markdown=\"chunk.content\"\n class=\"wysiwyg\" />\n </transition>\n </div>\n\n <!-- Actions bar -->\n <div\n class=\"flex items-center gap-8 px-8 py-6 border-t border-surface-3 bg-surface\">\n <!-- Expand / collapse context -->\n <button\n v-if=\"\n onExpandContext &&\n chunk.chunkIndex != null &&\n !contextData.has(chunk.chunkId)\n \"\n class=\"text-10 text-word-3 hover:text-word flex items-center gap-4 cursor-pointer\"\n :disabled=\"\n loadingContext.has(chunk.chunkId)\n \"\n @click=\"handleExpandContext(chunk)\">\n <VvIcon\n :name=\"\n loadingContext.has(chunk.chunkId)\n ? 'line-md:loading-loop'\n : 'ri:expand-up-down-line'\n \"\n class=\"text-12\" />\n {{ $t('label.expandContext') }}\n </button>\n <button\n v-else-if=\"contextData.has(chunk.chunkId)\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n @click=\"clearContext(chunk.chunkId)\">\n <VvIcon\n name=\"ri:collapse-vertical-line\"\n class=\"text-12\" />\n {{ $t('label.collapseContext') }}\n </button>\n\n <!-- Open source URL -->\n <a\n v-if=\"chunk.sourceUrl\"\n :href=\"chunk.sourceUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 ml-auto\">\n <VvIcon\n name=\"ri:external-link-line\"\n class=\"text-12\" />\n {{ $t('label.openSource') }}\n </a>\n\n <!-- Download file -->\n <button\n v-if=\"\n onDownload &&\n chunk.documentType === 'file'\n \"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n :class=\"{\n 'ml-auto': !chunk.sourceUrl,\n }\"\n @click=\"onDownload(chunk.documentId)\">\n <VvIcon\n name=\"ri:download-line\"\n class=\"text-12\" />\n {{ $t('label.downloadFile') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n\n <!-- Show more -->\n <button\n v-if=\"hasMore\"\n class=\"text-12 text-word-3 cursor-pointer hover:underline flex items-center gap-4 mx-auto\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: groupedSources.length - 3,\n })\n }}\n </button>\n </div>\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { u as e } from "./useChatbotStore-C9xj40sY.js";
2
+ import { computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createVNode as a, defineComponent as o, normalizeClass as s, openBlock as c, ref as l, toDisplayString as u, withModifiers as d } from "vue";
3
+ import { VvIcon as f } from "@volverjs/ui-vue/components";
4
+ //#region ../../packages/components/src/chat/PkToolShowSuggestedReply.vue?vue&type=script&setup=true&lang.ts
5
+ var p = {
6
+ key: 0,
7
+ class: "pk-tool-suggested-reply"
8
+ }, m = ["disabled"], h = /* @__PURE__ */ o({
9
+ __name: "PkToolShowSuggestedReply",
10
+ props: { part: {} },
11
+ emits: ["select"],
12
+ setup(e, { emit: o }) {
13
+ let h = e, g = o, _ = t(() => JSON.parse(JSON.stringify(h.part))), v = l(!1), y = t(() => _.value?.state === "input-available" && !v.value);
14
+ function b() {
15
+ if (!y.value) return;
16
+ v.value = !0;
17
+ let e = _.value?.input?.prompt ?? _.value?.input?.label;
18
+ e && g("select", e);
19
+ }
20
+ return (e, t) => {
21
+ let o = f;
22
+ return _.value.input?.label ? (c(), r("div", p, [i("button", {
23
+ type: "button",
24
+ class: s(["pk-tool-suggested-reply__link", {
25
+ "is-clicked": v.value,
26
+ "is-disabled": !y.value
27
+ }]),
28
+ disabled: !y.value,
29
+ onClick: d(b, ["stop"])
30
+ }, [a(o, {
31
+ name: "ri:corner-down-right-line",
32
+ class: "pk-tool-suggested-reply__icon"
33
+ }), i("span", null, u(_.value.input.label), 1)], 10, m)])) : n("", !0);
34
+ };
35
+ }
36
+ }), g = /* @__PURE__ */ e({ default: () => _ }), _ = h;
37
+ //#endregion
38
+ export { g as n, _ as t };
39
+
40
+ //# sourceMappingURL=PkToolShowSuggestedReply-BVa6p4DJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PkToolShowSuggestedReply-BVa6p4DJ.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowSuggestedReply.vue","../../../../packages/components/src/chat/PkToolShowSuggestedReply.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const emit = defineEmits<{\n select: [value: string]\n }>()\n\n const toolPart = computed(() => {\n return JSON.parse(JSON.stringify(props.part)) as {\n state?: string\n toolCallId?: string\n input?: {\n label: string\n prompt?: string\n }\n output?: string\n }\n })\n\n const clicked = ref(false)\n\n const isInteractive = computed(() => {\n return toolPart.value?.state === 'input-available' && !clicked.value\n })\n\n function handleClick() {\n if (!isInteractive.value) {\n return\n }\n clicked.value = true\n const value =\n toolPart.value?.input?.prompt ?? toolPart.value?.input?.label\n if (value) {\n emit('select', value)\n }\n }\n</script>\n\n<template>\n <div v-if=\"toolPart.input?.label\" class=\"pk-tool-suggested-reply\">\n <button\n type=\"button\"\n class=\"pk-tool-suggested-reply__link\"\n :class=\"{ 'is-clicked': clicked, 'is-disabled': !isInteractive }\"\n :disabled=\"!isInteractive\"\n @click.stop=\"handleClick\">\n <VvIcon\n name=\"ri:corner-down-right-line\"\n class=\"pk-tool-suggested-reply__icon\" />\n <span>{{ toolPart.input.label }}</span>\n </button>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-tool-suggested-reply {\n display: flex;\n align-items: center;\n\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: none;\n border: none;\n padding: 0;\n font: inherit;\n font-size: 0.875em;\n text-decoration: underline;\n text-underline-offset: 2px;\n cursor: pointer;\n transition: opacity 0.15s ease;\n color: var(--color-word-3);\n transition: var(--transition-colors);\n\n &:hover:not(:disabled) {\n color: var(--color-word);\n }\n\n &.is-disabled {\n cursor: default;\n pointer-events: none;\n color: var(--color-word-5);\n }\n\n &.is-clicked {\n color: var(--color-word-5);\n text-decoration: none;\n }\n }\n\n &__icon {\n width: 1em;\n height: 1em;\n flex-shrink: 0;\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const emit = defineEmits<{\n select: [value: string]\n }>()\n\n const toolPart = computed(() => {\n return JSON.parse(JSON.stringify(props.part)) as {\n state?: string\n toolCallId?: string\n input?: {\n label: string\n prompt?: string\n }\n output?: string\n }\n })\n\n const clicked = ref(false)\n\n const isInteractive = computed(() => {\n return toolPart.value?.state === 'input-available' && !clicked.value\n })\n\n function handleClick() {\n if (!isInteractive.value) {\n return\n }\n clicked.value = true\n const value =\n toolPart.value?.input?.prompt ?? toolPart.value?.input?.label\n if (value) {\n emit('select', value)\n }\n }\n</script>\n\n<template>\n <div v-if=\"toolPart.input?.label\" class=\"pk-tool-suggested-reply\">\n <button\n type=\"button\"\n class=\"pk-tool-suggested-reply__link\"\n :class=\"{ 'is-clicked': clicked, 'is-disabled': !isInteractive }\"\n :disabled=\"!isInteractive\"\n @click.stop=\"handleClick\">\n <VvIcon\n name=\"ri:corner-down-right-line\"\n class=\"pk-tool-suggested-reply__icon\" />\n <span>{{ toolPart.input.label }}</span>\n </button>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-tool-suggested-reply {\n display: flex;\n align-items: center;\n\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: none;\n border: none;\n padding: 0;\n font: inherit;\n font-size: 0.875em;\n text-decoration: underline;\n text-underline-offset: 2px;\n cursor: pointer;\n transition: opacity 0.15s ease;\n color: var(--color-word-3);\n transition: var(--transition-colors);\n\n &:hover:not(:disabled) {\n color: var(--color-word);\n }\n\n &.is-disabled {\n cursor: default;\n pointer-events: none;\n color: var(--color-word-5);\n }\n\n &.is-clicked {\n color: var(--color-word-5);\n text-decoration: none;\n }\n }\n\n &__icon {\n width: 1em;\n height: 1em;\n flex-shrink: 0;\n }\n }\n</style>\n"],"mappings":";;;;;;;;;;;;EAGI,IAAM,IAAQ,GAIR,IAAO,GAIP,IAAW,QACN,KAAK,MAAM,KAAK,UAAU,EAAM,KAAK,CAAC,CAShD,EAEK,IAAU,EAAI,GAAK,EAEnB,IAAgB,QACX,EAAS,OAAO,UAAU,qBAAqB,CAAC,EAAQ,MAClE;EAED,SAAS,IAAc;AACnB,OAAI,CAAC,EAAc,MACf;AAEJ,KAAQ,QAAQ;GAChB,IAAM,IACF,EAAS,OAAO,OAAO,UAAU,EAAS,OAAO,OAAO;AAC5D,GAAI,KACA,EAAK,UAAU,EAAK;;;;UAMjB,EAAA,MAAS,OAAO,SAAA,GAAA,EAA3B,EAYM,OAZN,GAYM,CAXF,EAUS,UAAA;IATL,MAAK;IACL,OAAK,EAAA,CAAC,iCAA+B;KAAA,cACb,EAAA;KAAO,eAAA,CAAkB,EAAA;KAAa,CAAA,CAAA;IAC7D,UAAQ,CAAG,EAAA;IACX,SAAK,EAAO,GAAW,CAAA,OAAA,CAAA;OACxB,EAE4C,GAAA;IADxC,MAAK;IACL,OAAM;OACV,EAAuC,QAAA,MAAA,EAA9B,EAAA,MAAS,MAAM,MAAK,EAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA"}
@@ -221,4 +221,4 @@ var ne = {
221
221
  //#endregion
222
222
  export { B as default };
223
223
 
224
- //# sourceMappingURL=PkToolShowWeather-iAV7Hn_J.js.map
224
+ //# sourceMappingURL=PkToolShowWeather-D3MyAnH4.js.map