@8wave/ai-elements 0.84.0 → 0.85.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 (459) hide show
  1. package/README.md +109 -0
  2. package/dist/_chunks/Media-Cu3QLEp0.js +120 -0
  3. package/dist/_chunks/Media-Cu3QLEp0.js.map +1 -0
  4. package/dist/_chunks/{PkStreamingMarkdown-SVWv4Oye.js → PkStreamingMarkdown-C_fNNe9O.js} +307 -295
  5. package/dist/_chunks/PkStreamingMarkdown-C_fNNe9O.js.map +1 -0
  6. package/dist/_chunks/PkToolRequestConfirm-DfRFlvE0.js +48 -0
  7. package/dist/_chunks/PkToolRequestConfirm-DfRFlvE0.js.map +1 -0
  8. package/dist/_chunks/PkToolRequestGeolocation-BpH3Ev71.js +67 -0
  9. package/dist/_chunks/PkToolRequestGeolocation-BpH3Ev71.js.map +1 -0
  10. package/dist/_chunks/PkToolRequestOAuthConnection-Ctz50teF.js +63 -0
  11. package/dist/_chunks/PkToolRequestOAuthConnection-Ctz50teF.js.map +1 -0
  12. package/dist/_chunks/{PkToolShowArtifact-Ddz3DsWl.js → PkToolShowArtifact-Drp_zW-3.js} +33 -33
  13. package/dist/_chunks/{PkToolShowArtifact-Ddz3DsWl.js.map → PkToolShowArtifact-Drp_zW-3.js.map} +1 -1
  14. package/dist/_chunks/{PkToolShowCalendarEvent-Kl7HolAK.js → PkToolShowCalendarEvent-D1XYExcQ.js} +40 -40
  15. package/dist/_chunks/{PkToolShowCalendarEvent-Kl7HolAK.js.map → PkToolShowCalendarEvent-D1XYExcQ.js.map} +1 -1
  16. package/dist/_chunks/PkToolShowComparison-DjK4sXS0.js +64 -0
  17. package/dist/_chunks/{PkToolShowComparison-BzyqEIMV.js.map → PkToolShowComparison-DjK4sXS0.js.map} +1 -1
  18. package/dist/_chunks/PkToolShowContactForm-DresTyBD.js +119 -0
  19. package/dist/_chunks/PkToolShowContactForm-DresTyBD.js.map +1 -0
  20. package/dist/_chunks/PkToolShowDiagram-Bg6gQn7r.js +228 -0
  21. package/dist/_chunks/PkToolShowDiagram-Bg6gQn7r.js.map +1 -0
  22. package/dist/_chunks/{PkToolShowEmail-DsmUAss-.js → PkToolShowEmail-DGCKzD3s.js} +31 -31
  23. package/dist/_chunks/{PkToolShowEmail-DsmUAss-.js.map → PkToolShowEmail-DGCKzD3s.js.map} +1 -1
  24. package/dist/_chunks/{PkToolShowImageGallery-BDKm1kSX.js → PkToolShowImageGallery-BhyAMaes.js} +19 -19
  25. package/dist/_chunks/{PkToolShowImageGallery-BDKm1kSX.js.map → PkToolShowImageGallery-BhyAMaes.js.map} +1 -1
  26. package/dist/_chunks/PkToolShowLocation-BDVFw7qK.js +1140 -0
  27. package/dist/_chunks/PkToolShowLocation-BDVFw7qK.js.map +1 -0
  28. package/dist/_chunks/{PkToolShowMessage-xy09z85p.js → PkToolShowMessage-BqH-tE8K.js} +27 -27
  29. package/dist/_chunks/{PkToolShowMessage-xy09z85p.js.map → PkToolShowMessage-BqH-tE8K.js.map} +1 -1
  30. package/dist/_chunks/PkToolShowMultipleChoice-DNfjzGxI.js +81 -0
  31. package/dist/_chunks/PkToolShowMultipleChoice-DNfjzGxI.js.map +1 -0
  32. package/dist/_chunks/{PkToolShowProductList-Al_csZaz.js → PkToolShowProductList-DeU4qyZp.js} +26 -26
  33. package/dist/_chunks/{PkToolShowProductList-Al_csZaz.js.map → PkToolShowProductList-DeU4qyZp.js.map} +1 -1
  34. package/dist/_chunks/{PkToolShowQrCode-RUJ3enlC.js → PkToolShowQrCode-BrljSubk.js} +22 -22
  35. package/dist/_chunks/{PkToolShowQrCode-RUJ3enlC.js.map → PkToolShowQrCode-BrljSubk.js.map} +1 -1
  36. package/dist/_chunks/PkToolShowSources-Ca36N91a.js +396 -0
  37. package/dist/_chunks/PkToolShowSources-Ca36N91a.js.map +1 -0
  38. package/dist/_chunks/PkToolShowSuggestedReply-2lyEikVx.js +47 -0
  39. package/dist/_chunks/PkToolShowSuggestedReply-2lyEikVx.js.map +1 -0
  40. package/dist/_chunks/{PkToolShowWeather-CSua0gHs.js → PkToolShowWeather-CnTyMQTT.js} +63 -63
  41. package/dist/_chunks/{PkToolShowWeather-CSua0gHs.js.map → PkToolShowWeather-CnTyMQTT.js.map} +1 -1
  42. package/dist/_chunks/{PkToolShowWebPages-8GWslqfY.js → PkToolShowWebPages-X0tkNJhc.js} +19 -19
  43. package/dist/_chunks/{PkToolShowWebPages-8GWslqfY.js.map → PkToolShowWebPages-X0tkNJhc.js.map} +1 -1
  44. package/dist/_chunks/{PkUrl-CeYapZ9E.js → PkUrl-ChRoceUn.js} +12 -12
  45. package/dist/_chunks/{PkUrl-CeYapZ9E.js.map → PkUrl-ChRoceUn.js.map} +1 -1
  46. package/dist/_chunks/{VvCheckbox.es-kAXSBkfn.js → VvCheckbox.es-CjtdGRKd.js} +63 -63
  47. package/dist/_chunks/{VvCheckbox.es-kAXSBkfn.js.map → VvCheckbox.es-CjtdGRKd.js.map} +1 -1
  48. package/dist/_chunks/{VvCheckboxGroup.es-Db-bLs2D.js → VvCheckboxGroup.es-DYHTVBaF.js} +91 -91
  49. package/dist/_chunks/{VvCheckboxGroup.es-Db-bLs2D.js.map → VvCheckboxGroup.es-DYHTVBaF.js.map} +1 -1
  50. package/dist/_chunks/VvCombobox.es-BxxQaz48.js +1998 -0
  51. package/dist/_chunks/{VvCombobox.es-CUUNtqyJ.js.map → VvCombobox.es-BxxQaz48.js.map} +1 -1
  52. package/dist/_chunks/{VvInputText.es-DeAexenB.js → VvInputText.es-B13qbrJj.js} +420 -420
  53. package/dist/_chunks/{VvInputText.es-DeAexenB.js.map → VvInputText.es-B13qbrJj.js.map} +1 -1
  54. package/dist/_chunks/{VvRadio.es-lb_BYfq5.js → VvRadio.es-DuSk75Cl.js} +117 -117
  55. package/dist/_chunks/{VvRadio.es-lb_BYfq5.js.map → VvRadio.es-DuSk75Cl.js.map} +1 -1
  56. package/dist/_chunks/{VvRadioGroup.es-BjvxDtU_.js → VvRadioGroup.es-BjPz7xfR.js} +91 -91
  57. package/dist/_chunks/{VvRadioGroup.es-BjvxDtU_.js.map → VvRadioGroup.es-BjPz7xfR.js.map} +1 -1
  58. package/dist/_chunks/{VvSelect.es-C9hkmhJf.js → VvSelect.es-CKFBoQN-.js} +119 -119
  59. package/dist/_chunks/{VvSelect.es-C9hkmhJf.js.map → VvSelect.es-CKFBoQN-.js.map} +1 -1
  60. package/dist/_chunks/VvTextarea.es-CICFo2Rh.js +1110 -0
  61. package/dist/_chunks/{VvTextarea.es-B5txwRRm.js.map → VvTextarea.es-CICFo2Rh.js.map} +1 -1
  62. package/dist/_chunks/dist-Dplp2WfI.js +799 -0
  63. package/dist/_chunks/{dist-DHG50RNO.js.map → dist-Dplp2WfI.js.map} +1 -1
  64. package/dist/_chunks/{esm-8uCGyZon.js → esm-CtL6xvv9.js} +19 -19
  65. package/dist/_chunks/{esm-8uCGyZon.js.map → esm-CtL6xvv9.js.map} +1 -1
  66. package/dist/_chunks/{floating-ui.vue-bC-fUl9J.js → floating-ui.vue-BWkka9Fn.js} +6 -6
  67. package/dist/_chunks/{floating-ui.vue-bC-fUl9J.js.map → floating-ui.vue-BWkka9Fn.js.map} +1 -1
  68. package/dist/_chunks/{iconify-B2ZQHsNr.js → iconify-DlYsYC8z.js} +5 -5
  69. package/dist/_chunks/{iconify-B2ZQHsNr.js.map → iconify-DlYsYC8z.js.map} +1 -1
  70. package/dist/_chunks/{index.es-CusxIi0s.js → index.es-9_Td6lnP.js} +2306 -2306
  71. package/dist/_chunks/{index.es-CusxIi0s.js.map → index.es-9_Td6lnP.js.map} +1 -1
  72. package/dist/_chunks/index.es-BC4SxvmK.js +994 -0
  73. package/dist/_chunks/index.es-BC4SxvmK.js.map +1 -0
  74. package/dist/_chunks/{src-RaVs-PqK.js → src-L9Jq1dyr.js} +11 -11
  75. package/dist/_chunks/{src-RaVs-PqK.js.map → src-L9Jq1dyr.js.map} +1 -1
  76. package/dist/_chunks/{useLightbox-C7JFztx4.js → useLightbox-kKLPhYUx.js} +9 -7
  77. package/dist/_chunks/{useLightbox-C7JFztx4.js.map → useLightbox-kKLPhYUx.js.map} +1 -1
  78. package/dist/_chunks/{vue-i18n-fHp3k8qw.js → vue-i18n-BjaFxqmH.js} +40 -40
  79. package/dist/_chunks/{vue-i18n-fHp3k8qw.js.map → vue-i18n-BjaFxqmH.js.map} +1 -1
  80. package/dist/_chunks/{vue.runtime.esm-bundler-7_kt7y9A.js → vue.runtime.esm-bundler-B-iHWsf4.js} +702 -702
  81. package/dist/_chunks/{vue.runtime.esm-bundler-7_kt7y9A.js.map → vue.runtime.esm-bundler-B-iHWsf4.js.map} +1 -1
  82. package/dist/ai-elements.es.js +4016 -10669
  83. package/dist/ai-elements.es.js.map +1 -1
  84. package/dist-vue/PkChatbot.js +1 -1
  85. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  86. package/dist-vue/PkChatbotFilePreview.js +1 -1
  87. package/dist-vue/PkChatbotInput.js +1 -1
  88. package/dist-vue/PkChatbotMessages.js +1 -1
  89. package/dist-vue/PkChatbotViewChat.js +1 -1
  90. package/dist-vue/PkChatbotViewConversations.js +1 -1
  91. package/dist-vue/PkChatbotViewProfile.js +1 -1
  92. package/dist-vue/_chunks/Media-D5pFbMNh.js +120 -0
  93. package/dist-vue/_chunks/Media-D5pFbMNh.js.map +1 -0
  94. package/dist-vue/_chunks/PkChatbot-UDExD81D.js +190 -0
  95. package/dist-vue/_chunks/PkChatbot-UDExD81D.js.map +1 -0
  96. package/dist-vue/_chunks/{PkChatbotFeedbackForm-BiVUo4kv.js → PkChatbotFeedbackForm-Dy2ojy2E.js} +1 -1
  97. package/dist-vue/_chunks/{PkChatbotFeedbackForm-BiVUo4kv.js.map → PkChatbotFeedbackForm-Dy2ojy2E.js.map} +1 -1
  98. package/dist-vue/_chunks/{PkChatbotFilePreview-0N9ASbIp.js → PkChatbotFilePreview-7hRouK9o.js} +5 -3
  99. package/dist-vue/_chunks/PkChatbotFilePreview-7hRouK9o.js.map +1 -0
  100. package/dist-vue/_chunks/{PkChatbotInput-CsazCkTA.js → PkChatbotInput-Dn4KFNfx.js} +3 -3
  101. package/dist-vue/_chunks/{PkChatbotInput-CsazCkTA.js.map → PkChatbotInput-Dn4KFNfx.js.map} +1 -1
  102. package/dist-vue/_chunks/{PkChatbotMessages-BDziUgck.js → PkChatbotMessages-DUOrit9Y.js} +47 -33
  103. package/dist-vue/_chunks/PkChatbotMessages-DUOrit9Y.js.map +1 -0
  104. package/dist-vue/_chunks/PkChatbotViewChat-BgH9Op_G.js +225 -0
  105. package/dist-vue/_chunks/PkChatbotViewChat-BgH9Op_G.js.map +1 -0
  106. package/dist-vue/_chunks/{PkChatbotViewConversations-kIc1reZT.js → PkChatbotViewConversations-B9KC-0ir.js} +13 -13
  107. package/dist-vue/_chunks/{PkChatbotViewConversations-kIc1reZT.js.map → PkChatbotViewConversations-B9KC-0ir.js.map} +1 -1
  108. package/dist-vue/_chunks/{PkChatbotViewProfile-pSKOgtIR.js → PkChatbotViewProfile-C0q898hz.js} +2 -2
  109. package/dist-vue/_chunks/{PkChatbotViewProfile-pSKOgtIR.js.map → PkChatbotViewProfile-C0q898hz.js.map} +1 -1
  110. package/dist-vue/_chunks/{PkStreamingMarkdown-BUiAi-qv.js → PkStreamingMarkdown-BDtjktHX.js} +296 -284
  111. package/dist-vue/_chunks/PkStreamingMarkdown-BDtjktHX.js.map +1 -0
  112. package/dist-vue/_chunks/PkSvgViewer-DoClMDnF.js +125 -0
  113. package/dist-vue/_chunks/PkSvgViewer-DoClMDnF.js.map +1 -0
  114. package/dist-vue/_chunks/PkToolRequestConfirm-BcZ10rMb.js +48 -0
  115. package/dist-vue/_chunks/{PkToolRequestConfirm-BsHpoI-c.js.map → PkToolRequestConfirm-BcZ10rMb.js.map} +1 -1
  116. package/dist-vue/_chunks/PkToolRequestGeolocation-DXSqWFTR.js +67 -0
  117. package/dist-vue/_chunks/PkToolRequestGeolocation-DXSqWFTR.js.map +1 -0
  118. package/dist-vue/_chunks/PkToolRequestOAuthConnection-CIrFBhxL.js +63 -0
  119. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-shcJXxtk.js.map → PkToolRequestOAuthConnection-CIrFBhxL.js.map} +1 -1
  120. package/dist-vue/_chunks/{PkToolShowArtifact-D4BVWuMi.js → PkToolShowArtifact-BVFPfZT8.js} +3 -3
  121. package/dist-vue/_chunks/{PkToolShowArtifact-D4BVWuMi.js.map → PkToolShowArtifact-BVFPfZT8.js.map} +1 -1
  122. package/dist-vue/_chunks/{PkToolShowCalendarEvent-Q_2-tXmC.js → PkToolShowCalendarEvent-9jaBqWBJ.js} +3 -3
  123. package/dist-vue/_chunks/{PkToolShowCalendarEvent-Q_2-tXmC.js.map → PkToolShowCalendarEvent-9jaBqWBJ.js.map} +1 -1
  124. package/dist-vue/_chunks/{PkToolShowComparison-BpYZb-z5.js → PkToolShowComparison-D1YHzvyy.js} +2 -2
  125. package/dist-vue/_chunks/{PkToolShowComparison-BpYZb-z5.js.map → PkToolShowComparison-D1YHzvyy.js.map} +1 -1
  126. package/dist-vue/_chunks/{PkToolShowContactForm-DuOeYoCU.js → PkToolShowContactForm-BVtuQVGs.js} +5 -5
  127. package/dist-vue/_chunks/{PkToolShowContactForm-DuOeYoCU.js.map → PkToolShowContactForm-BVtuQVGs.js.map} +1 -1
  128. package/dist-vue/_chunks/PkToolShowDiagram-CLyYku9I.js +112 -0
  129. package/dist-vue/_chunks/PkToolShowDiagram-CLyYku9I.js.map +1 -0
  130. package/dist-vue/_chunks/{PkToolShowEmail-CDR-Cw-s.js → PkToolShowEmail-BZzv2-6y.js} +2 -2
  131. package/dist-vue/_chunks/{PkToolShowEmail-CDR-Cw-s.js.map → PkToolShowEmail-BZzv2-6y.js.map} +1 -1
  132. package/dist-vue/_chunks/{PkToolShowImageGallery-DhGmTPMP.js → PkToolShowImageGallery-Bt7QNtGe.js} +4 -4
  133. package/dist-vue/_chunks/{PkToolShowImageGallery-DhGmTPMP.js.map → PkToolShowImageGallery-Bt7QNtGe.js.map} +1 -1
  134. package/dist-vue/_chunks/PkToolShowLocation-DAg9HeYq.js +143 -0
  135. package/dist-vue/_chunks/PkToolShowLocation-DAg9HeYq.js.map +1 -0
  136. package/dist-vue/_chunks/{PkToolShowMessage-Cqb0WP-x.js → PkToolShowMessage-DvnO4DDb.js} +2 -2
  137. package/dist-vue/_chunks/{PkToolShowMessage-Cqb0WP-x.js.map → PkToolShowMessage-DvnO4DDb.js.map} +1 -1
  138. package/dist-vue/_chunks/{PkToolShowMultipleChoice-x7hNm6I2.js → PkToolShowMultipleChoice-BEWDze3p.js} +2 -2
  139. package/dist-vue/_chunks/{PkToolShowMultipleChoice-x7hNm6I2.js.map → PkToolShowMultipleChoice-BEWDze3p.js.map} +1 -1
  140. package/dist-vue/_chunks/{PkToolShowProductList-CMFBvHAY.js → PkToolShowProductList-Cyh_fdTh.js} +3 -3
  141. package/dist-vue/_chunks/{PkToolShowProductList-CMFBvHAY.js.map → PkToolShowProductList-Cyh_fdTh.js.map} +1 -1
  142. package/dist-vue/_chunks/{PkToolShowQrCode-LFCfdWyu.js → PkToolShowQrCode-Dz3HlJGs.js} +2 -2
  143. package/dist-vue/_chunks/{PkToolShowQrCode-LFCfdWyu.js.map → PkToolShowQrCode-Dz3HlJGs.js.map} +1 -1
  144. package/dist-vue/_chunks/{PkToolShowSources-D0wbYpTR.js → PkToolShowSources-cFvwqgDz.js} +21 -21
  145. package/dist-vue/_chunks/{PkToolShowSources-D0wbYpTR.js.map → PkToolShowSources-cFvwqgDz.js.map} +1 -1
  146. package/dist-vue/_chunks/{PkToolShowSuggestedReply-CIP1xfB1.js → PkToolShowSuggestedReply-DIrmkOUq.js} +2 -2
  147. package/dist-vue/_chunks/{PkToolShowSuggestedReply-CIP1xfB1.js.map → PkToolShowSuggestedReply-DIrmkOUq.js.map} +1 -1
  148. package/dist-vue/_chunks/{PkToolShowWeather-zT-4E-aX.js → PkToolShowWeather-CKFmoP6M.js} +1 -1
  149. package/dist-vue/_chunks/{PkToolShowWeather-zT-4E-aX.js.map → PkToolShowWeather-CKFmoP6M.js.map} +1 -1
  150. package/dist-vue/_chunks/{PkToolShowWebPages-DLc-5nE0.js → PkToolShowWebPages-DDsErkru.js} +4 -4
  151. package/dist-vue/_chunks/{PkToolShowWebPages-DLc-5nE0.js.map → PkToolShowWebPages-DDsErkru.js.map} +1 -1
  152. package/dist-vue/_chunks/{PkUrl-Da1k1VEM.js → PkUrl-DdRprvPJ.js} +1 -1
  153. package/dist-vue/_chunks/{PkUrl-Da1k1VEM.js.map → PkUrl-DdRprvPJ.js.map} +1 -1
  154. package/dist-vue/_chunks/{apl-gZJv8aE0.js → apl-CiKuf38q.js} +1 -1
  155. package/dist-vue/_chunks/{apl-gZJv8aE0.js.map → apl-CiKuf38q.js.map} +1 -1
  156. package/dist-vue/_chunks/{asciiarmor-BKzT2CxY.js → asciiarmor-Cv_figT_.js} +1 -1
  157. package/dist-vue/_chunks/{asciiarmor-BKzT2CxY.js.map → asciiarmor-Cv_figT_.js.map} +1 -1
  158. package/dist-vue/_chunks/{asn1-CUOx9oeT.js → asn1-o22T4Rhb.js} +1 -1
  159. package/dist-vue/_chunks/{asn1-CUOx9oeT.js.map → asn1-o22T4Rhb.js.map} +1 -1
  160. package/dist-vue/_chunks/{asterisk-CtQouKe4.js → asterisk-BVQJUqvD.js} +1 -1
  161. package/dist-vue/_chunks/{asterisk-CtQouKe4.js.map → asterisk-BVQJUqvD.js.map} +1 -1
  162. package/dist-vue/_chunks/{brainfuck-C6v-NuzS.js → brainfuck-BUjoLd18.js} +1 -1
  163. package/dist-vue/_chunks/{brainfuck-C6v-NuzS.js.map → brainfuck-BUjoLd18.js.map} +1 -1
  164. package/dist-vue/_chunks/{clike-DBPD1mz3.js → clike-DnfYdh2t.js} +1 -1
  165. package/dist-vue/_chunks/{clike-DBPD1mz3.js.map → clike-DnfYdh2t.js.map} +1 -1
  166. package/dist-vue/_chunks/{clojure-xtczAEDV.js → clojure-Spy-VDMe.js} +1 -1
  167. package/dist-vue/_chunks/{clojure-xtczAEDV.js.map → clojure-Spy-VDMe.js.map} +1 -1
  168. package/dist-vue/_chunks/{cmake-DdDZ3JWF.js → cmake-Ctp7rWzy.js} +1 -1
  169. package/dist-vue/_chunks/{cmake-DdDZ3JWF.js.map → cmake-Ctp7rWzy.js.map} +1 -1
  170. package/dist-vue/_chunks/{cobol-BAMxIfCa.js → cobol-DX59jXra.js} +1 -1
  171. package/dist-vue/_chunks/{cobol-BAMxIfCa.js.map → cobol-DX59jXra.js.map} +1 -1
  172. package/dist-vue/_chunks/{coffeescript-CGTuQQp6.js → coffeescript-Bq4R3kBT.js} +1 -1
  173. package/dist-vue/_chunks/{coffeescript-CGTuQQp6.js.map → coffeescript-Bq4R3kBT.js.map} +1 -1
  174. package/dist-vue/_chunks/{commonlisp-Ccb03OgK.js → commonlisp-qnCvPlJb.js} +1 -1
  175. package/dist-vue/_chunks/{commonlisp-Ccb03OgK.js.map → commonlisp-qnCvPlJb.js.map} +1 -1
  176. package/dist-vue/_chunks/{createChatbotApiClient-C_E35aQf.js → createChatbotApiClient-C-jT5hE0.js} +96 -95
  177. package/dist-vue/_chunks/createChatbotApiClient-C-jT5hE0.js.map +1 -0
  178. package/dist-vue/_chunks/{crystal-DdoSQSAv.js → crystal-B02ya4cQ.js} +1 -1
  179. package/dist-vue/_chunks/{crystal-DdoSQSAv.js.map → crystal-B02ya4cQ.js.map} +1 -1
  180. package/dist-vue/_chunks/{css-TU14Ca1R.js → css-CzWlO-Xb.js} +1 -1
  181. package/dist-vue/_chunks/{css-TU14Ca1R.js.map → css-CzWlO-Xb.js.map} +1 -1
  182. package/dist-vue/_chunks/{cypher-CXLa4pI5.js → cypher-CLyYkG2-.js} +1 -1
  183. package/dist-vue/_chunks/{cypher-CXLa4pI5.js.map → cypher-CLyYkG2-.js.map} +1 -1
  184. package/dist-vue/_chunks/{d-BArAGMlp.js → d-DGUXRLLi.js} +1 -1
  185. package/dist-vue/_chunks/{d-BArAGMlp.js.map → d-DGUXRLLi.js.map} +1 -1
  186. package/dist-vue/_chunks/{diff-C3LIbTwG.js → diff-DRe8JdWk.js} +1 -1
  187. package/dist-vue/_chunks/{diff-C3LIbTwG.js.map → diff-DRe8JdWk.js.map} +1 -1
  188. package/dist-vue/_chunks/{dist-CUYb2Ykk.js → dist-7BKkikZw.js} +2 -2
  189. package/dist-vue/_chunks/{dist-CUYb2Ykk.js.map → dist-7BKkikZw.js.map} +1 -1
  190. package/dist-vue/_chunks/{dist-DlMrwhCk.js → dist-7u7jBD-H.js} +1 -1
  191. package/dist-vue/_chunks/{dist-DlMrwhCk.js.map → dist-7u7jBD-H.js.map} +1 -1
  192. package/dist-vue/_chunks/{dist-Bj32YA2b.js → dist-8BVnK6QW.js} +4 -4
  193. package/dist-vue/_chunks/{dist-Bj32YA2b.js.map → dist-8BVnK6QW.js.map} +1 -1
  194. package/dist-vue/_chunks/{dist-BtzPY8uU.js → dist-9IwNDEHQ.js} +2 -2
  195. package/dist-vue/_chunks/{dist-BtzPY8uU.js.map → dist-9IwNDEHQ.js.map} +1 -1
  196. package/dist-vue/_chunks/{dist-BMTTRExI.js → dist-BGTESNxJ.js} +1 -1
  197. package/dist-vue/_chunks/{dist-BMTTRExI.js.map → dist-BGTESNxJ.js.map} +1 -1
  198. package/dist-vue/_chunks/{dist-BUm8Nt7d.js → dist-BWdaSTBW.js} +2 -2
  199. package/dist-vue/_chunks/{dist-BUm8Nt7d.js.map → dist-BWdaSTBW.js.map} +1 -1
  200. package/dist-vue/_chunks/{dist-tDt7-5Hh.js → dist-BtFxPYCM.js} +1 -1
  201. package/dist-vue/_chunks/{dist-tDt7-5Hh.js.map → dist-BtFxPYCM.js.map} +1 -1
  202. package/dist-vue/_chunks/{dist-BM3i3wHC.js → dist-BwrhMmQA.js} +1 -1
  203. package/dist-vue/_chunks/{dist-BM3i3wHC.js.map → dist-BwrhMmQA.js.map} +1 -1
  204. package/dist-vue/_chunks/{dist-B_3TGJwf.js → dist-Cm-J5l4S2.js} +1 -1
  205. package/dist-vue/_chunks/dist-Cm-J5l4S2.js.map +1 -0
  206. package/dist-vue/_chunks/{dist-CUah0Xys.js → dist-CnmeOb2N.js} +3 -3
  207. package/dist-vue/_chunks/{dist-CUah0Xys.js.map → dist-CnmeOb2N.js.map} +1 -1
  208. package/dist-vue/_chunks/{dist-DI-XHVdE.js → dist-D34LRAfv.js} +2 -2
  209. package/dist-vue/_chunks/{dist-DI-XHVdE.js.map → dist-D34LRAfv.js.map} +1 -1
  210. package/dist-vue/_chunks/{dist-DACzskoy2.js → dist-D35h9xud2.js} +3 -3
  211. package/dist-vue/_chunks/{dist-DACzskoy2.js.map → dist-D35h9xud2.js.map} +1 -1
  212. package/dist-vue/_chunks/dist-DMKuVADK2.js +441 -0
  213. package/dist-vue/_chunks/dist-DMKuVADK2.js.map +1 -0
  214. package/dist-vue/_chunks/{dist-CwWFe7zF.js → dist-Dg1nGvwP.js} +1 -1
  215. package/dist-vue/_chunks/{dist-CwWFe7zF.js.map → dist-Dg1nGvwP.js.map} +1 -1
  216. package/dist-vue/_chunks/{dist-B2nNrire.js → dist-YcwJuFBx.js} +2 -2
  217. package/dist-vue/_chunks/{dist-B2nNrire.js.map → dist-YcwJuFBx.js.map} +1 -1
  218. package/dist-vue/_chunks/{dist-2JsKACZj.js → dist-b5CbbjSp.js} +1 -1
  219. package/dist-vue/_chunks/{dist-2JsKACZj.js.map → dist-b5CbbjSp.js.map} +1 -1
  220. package/dist-vue/_chunks/{dist-Cr5fwgdD.js → dist-kywGQjza.js} +2 -2
  221. package/dist-vue/_chunks/{dist-Cr5fwgdD.js.map → dist-kywGQjza.js.map} +1 -1
  222. package/dist-vue/_chunks/{dist-Df_bnb-v.js → dist-l6sREGf7.js} +1 -1
  223. package/dist-vue/_chunks/{dist-Df_bnb-v.js.map → dist-l6sREGf7.js.map} +1 -1
  224. package/dist-vue/_chunks/{dist-B1Xwe66S.js → dist-x5C6fPIQ.js} +2 -2
  225. package/dist-vue/_chunks/{dist-B1Xwe66S.js.map → dist-x5C6fPIQ.js.map} +1 -1
  226. package/dist-vue/_chunks/{dist-BgntOJ9J.js → dist-x73cXb-w.js} +3 -3
  227. package/dist-vue/_chunks/{dist-BgntOJ9J.js.map → dist-x73cXb-w.js.map} +1 -1
  228. package/dist-vue/_chunks/{dockerfile-DzujQve1.js → dockerfile-BpKVodrd.js} +2 -2
  229. package/dist-vue/_chunks/{dockerfile-DzujQve1.js.map → dockerfile-BpKVodrd.js.map} +1 -1
  230. package/dist-vue/_chunks/{dtd-B1f0YqWO.js → dtd-q9vHTxZ1.js} +1 -1
  231. package/dist-vue/_chunks/{dtd-B1f0YqWO.js.map → dtd-q9vHTxZ1.js.map} +1 -1
  232. package/dist-vue/_chunks/{dylan-bedk9ukf.js → dylan-CTRyD_yN.js} +1 -1
  233. package/dist-vue/_chunks/{dylan-bedk9ukf.js.map → dylan-CTRyD_yN.js.map} +1 -1
  234. package/dist-vue/_chunks/{ebnf-Cs5X8R8U.js → ebnf-DPw9AGDC.js} +1 -1
  235. package/dist-vue/_chunks/{ebnf-Cs5X8R8U.js.map → ebnf-DPw9AGDC.js.map} +1 -1
  236. package/dist-vue/_chunks/{ecl-CXPqOJjc.js → ecl-CuLlc0XE.js} +1 -1
  237. package/dist-vue/_chunks/{ecl-CXPqOJjc.js.map → ecl-CuLlc0XE.js.map} +1 -1
  238. package/dist-vue/_chunks/{eiffel-Oa4yGKHO.js → eiffel-DYyjt7F3.js} +1 -1
  239. package/dist-vue/_chunks/{eiffel-Oa4yGKHO.js.map → eiffel-DYyjt7F3.js.map} +1 -1
  240. package/dist-vue/_chunks/{elm-CEbGa4zC.js → elm-DcYv6ZJY.js} +1 -1
  241. package/dist-vue/_chunks/{elm-CEbGa4zC.js.map → elm-DcYv6ZJY.js.map} +1 -1
  242. package/dist-vue/_chunks/{erlang-BNnTSw8C.js → erlang-nipePvRg.js} +1 -1
  243. package/dist-vue/_chunks/{erlang-BNnTSw8C.js.map → erlang-nipePvRg.js.map} +1 -1
  244. package/dist-vue/_chunks/{factor-BIER3ncI.js → factor-C_jm0Hi8.js} +2 -2
  245. package/dist-vue/_chunks/{factor-BIER3ncI.js.map → factor-C_jm0Hi8.js.map} +1 -1
  246. package/dist-vue/_chunks/{fcl-HxmGK-W5.js → fcl-CqmPhDgo.js} +1 -1
  247. package/dist-vue/_chunks/{fcl-HxmGK-W5.js.map → fcl-CqmPhDgo.js.map} +1 -1
  248. package/dist-vue/_chunks/{forth-BoRU1oYL.js → forth-GAg6IwF6.js} +1 -1
  249. package/dist-vue/_chunks/{forth-BoRU1oYL.js.map → forth-GAg6IwF6.js.map} +1 -1
  250. package/dist-vue/_chunks/{fortran-8E8eLx-x.js → fortran-DyrSTiy7.js} +1 -1
  251. package/dist-vue/_chunks/{fortran-8E8eLx-x.js.map → fortran-DyrSTiy7.js.map} +1 -1
  252. package/dist-vue/_chunks/{gas-DzrG9cIr.js → gas-CBY6LBUu.js} +1 -1
  253. package/dist-vue/_chunks/{gas-DzrG9cIr.js.map → gas-CBY6LBUu.js.map} +1 -1
  254. package/dist-vue/_chunks/{gherkin-d-xjbPN9.js → gherkin-F6vIWaV0.js} +1 -1
  255. package/dist-vue/_chunks/{gherkin-d-xjbPN9.js.map → gherkin-F6vIWaV0.js.map} +1 -1
  256. package/dist-vue/_chunks/{groovy-DluoS5pg.js → groovy-DBvpslJE.js} +1 -1
  257. package/dist-vue/_chunks/{groovy-DluoS5pg.js.map → groovy-DBvpslJE.js.map} +1 -1
  258. package/dist-vue/_chunks/{haskell-DWzSrwGO.js → haskell-CzcXTuY3.js} +1 -1
  259. package/dist-vue/_chunks/{haskell-DWzSrwGO.js.map → haskell-CzcXTuY3.js.map} +1 -1
  260. package/dist-vue/_chunks/{haxe-nucWqdAl.js → haxe-C0K87vd-.js} +1 -1
  261. package/dist-vue/_chunks/{haxe-nucWqdAl.js.map → haxe-C0K87vd-.js.map} +1 -1
  262. package/dist-vue/_chunks/{http-wcQY3fv1.js → http-lhCYiIUK.js} +1 -1
  263. package/dist-vue/_chunks/{http-wcQY3fv1.js.map → http-lhCYiIUK.js.map} +1 -1
  264. package/dist-vue/_chunks/{idl-BZjtu2uP.js → idl-DiwlVJ2e.js} +1 -1
  265. package/dist-vue/_chunks/{idl-BZjtu2uP.js.map → idl-DiwlVJ2e.js.map} +1 -1
  266. package/dist-vue/_chunks/{javascript-D-DeSYfi.js → javascript-DoLQ_01m.js} +1 -1
  267. package/dist-vue/_chunks/{javascript-D-DeSYfi.js.map → javascript-DoLQ_01m.js.map} +1 -1
  268. package/dist-vue/_chunks/{julia-BdkHYLKN.js → julia-D-9kev9I.js} +1 -1
  269. package/dist-vue/_chunks/{julia-BdkHYLKN.js.map → julia-D-9kev9I.js.map} +1 -1
  270. package/dist-vue/_chunks/{livescript-B-rE2yGH.js → livescript-BXKPrYL1.js} +1 -1
  271. package/dist-vue/_chunks/{livescript-B-rE2yGH.js.map → livescript-BXKPrYL1.js.map} +1 -1
  272. package/dist-vue/_chunks/{lua-8MR4kmO6.js → lua-CmoiUImJ.js} +1 -1
  273. package/dist-vue/_chunks/{lua-8MR4kmO6.js.map → lua-CmoiUImJ.js.map} +1 -1
  274. package/dist-vue/_chunks/{mathematica-DsQZ56s1.js → mathematica-C0zVH3hb.js} +1 -1
  275. package/dist-vue/_chunks/{mathematica-DsQZ56s1.js.map → mathematica-C0zVH3hb.js.map} +1 -1
  276. package/dist-vue/_chunks/{mbox-BlqAOSZk.js → mbox-BQjArxBt.js} +1 -1
  277. package/dist-vue/_chunks/{mbox-BlqAOSZk.js.map → mbox-BQjArxBt.js.map} +1 -1
  278. package/dist-vue/_chunks/{mirc-CeWiL7Xj.js → mirc-CH7vSjBP.js} +1 -1
  279. package/dist-vue/_chunks/{mirc-CeWiL7Xj.js.map → mirc-CH7vSjBP.js.map} +1 -1
  280. package/dist-vue/_chunks/{mllike-B4w9rV72.js → mllike-BtNDtwtH.js} +1 -1
  281. package/dist-vue/_chunks/{mllike-B4w9rV72.js.map → mllike-BtNDtwtH.js.map} +1 -1
  282. package/dist-vue/_chunks/{modelica-BeZSjbWb.js → modelica-D0D4gw71.js} +1 -1
  283. package/dist-vue/_chunks/{modelica-BeZSjbWb.js.map → modelica-D0D4gw71.js.map} +1 -1
  284. package/dist-vue/_chunks/{mscgen-Diy4rp5E.js → mscgen-BREuUTcQ.js} +1 -1
  285. package/dist-vue/_chunks/{mscgen-Diy4rp5E.js.map → mscgen-BREuUTcQ.js.map} +1 -1
  286. package/dist-vue/_chunks/{mumps-DHp_hepw.js → mumps-Cj1f6cBa.js} +1 -1
  287. package/dist-vue/_chunks/{mumps-DHp_hepw.js.map → mumps-Cj1f6cBa.js.map} +1 -1
  288. package/dist-vue/_chunks/{nginx-ZUseZ3KV.js → nginx-CTa-DOcs.js} +1 -1
  289. package/dist-vue/_chunks/{nginx-ZUseZ3KV.js.map → nginx-CTa-DOcs.js.map} +1 -1
  290. package/dist-vue/_chunks/{nsis-g-2nkKRi.js → nsis-BWAOyRUP.js} +2 -2
  291. package/dist-vue/_chunks/{nsis-g-2nkKRi.js.map → nsis-BWAOyRUP.js.map} +1 -1
  292. package/dist-vue/_chunks/{ntriples-COZl-CW9.js → ntriples-zIN_qrIe.js} +1 -1
  293. package/dist-vue/_chunks/{ntriples-COZl-CW9.js.map → ntriples-zIN_qrIe.js.map} +1 -1
  294. package/dist-vue/_chunks/{octave-qefefCKI.js → octave-DIV6S7Pt.js} +1 -1
  295. package/dist-vue/_chunks/{octave-qefefCKI.js.map → octave-DIV6S7Pt.js.map} +1 -1
  296. package/dist-vue/_chunks/{oz-B7xBKeTb.js → oz-5rNpxapS.js} +1 -1
  297. package/dist-vue/_chunks/{oz-B7xBKeTb.js.map → oz-5rNpxapS.js.map} +1 -1
  298. package/dist-vue/_chunks/{pascal-B0deIU4R.js → pascal-7C5712Nh.js} +1 -1
  299. package/dist-vue/_chunks/{pascal-B0deIU4R.js.map → pascal-7C5712Nh.js.map} +1 -1
  300. package/dist-vue/_chunks/{perl-CrEeHa0-.js → perl-eAVlqDxG.js} +1 -1
  301. package/dist-vue/_chunks/{perl-CrEeHa0-.js.map → perl-eAVlqDxG.js.map} +1 -1
  302. package/dist-vue/_chunks/{pig-CQcAmjLr.js → pig-C6AL_r8r.js} +1 -1
  303. package/dist-vue/_chunks/{pig-CQcAmjLr.js.map → pig-C6AL_r8r.js.map} +1 -1
  304. package/dist-vue/_chunks/{powershell-CEOsLn17.js → powershell-DsA9A7ee.js} +1 -1
  305. package/dist-vue/_chunks/{powershell-CEOsLn17.js.map → powershell-DsA9A7ee.js.map} +1 -1
  306. package/dist-vue/_chunks/{properties-CIZ3QFxD.js → properties-DuF6jBwF.js} +1 -1
  307. package/dist-vue/_chunks/{properties-CIZ3QFxD.js.map → properties-DuF6jBwF.js.map} +1 -1
  308. package/dist-vue/_chunks/{protobuf-B9FrV1JK.js → protobuf-nlPU8ZM-.js} +1 -1
  309. package/dist-vue/_chunks/{protobuf-B9FrV1JK.js.map → protobuf-nlPU8ZM-.js.map} +1 -1
  310. package/dist-vue/_chunks/{pug-Dn8VvwH3.js → pug-C1RwTStM.js} +2 -2
  311. package/dist-vue/_chunks/{pug-Dn8VvwH3.js.map → pug-C1RwTStM.js.map} +1 -1
  312. package/dist-vue/_chunks/{puppet-C6TXtx4p.js → puppet-DFYbyNW2.js} +1 -1
  313. package/dist-vue/_chunks/{puppet-C6TXtx4p.js.map → puppet-DFYbyNW2.js.map} +1 -1
  314. package/dist-vue/_chunks/{python-DcAJJ0JG.js → python-Dv1DGCiz.js} +1 -1
  315. package/dist-vue/_chunks/{python-DcAJJ0JG.js.map → python-Dv1DGCiz.js.map} +1 -1
  316. package/dist-vue/_chunks/{q-WbmgnnmF.js → q-X1HLKyVv.js} +1 -1
  317. package/dist-vue/_chunks/{q-WbmgnnmF.js.map → q-X1HLKyVv.js.map} +1 -1
  318. package/dist-vue/_chunks/{r-C22XZ_AN.js → r-BZGUCY-c.js} +1 -1
  319. package/dist-vue/_chunks/{r-C22XZ_AN.js.map → r-BZGUCY-c.js.map} +1 -1
  320. package/dist-vue/_chunks/{rpm-B9APie5d.js → rpm-CDLCwfOD.js} +1 -1
  321. package/dist-vue/_chunks/{rpm-B9APie5d.js.map → rpm-CDLCwfOD.js.map} +1 -1
  322. package/dist-vue/_chunks/{ruby-D24Ax8EE.js → ruby-cVyKV-zg.js} +1 -1
  323. package/dist-vue/_chunks/{ruby-D24Ax8EE.js.map → ruby-cVyKV-zg.js.map} +1 -1
  324. package/dist-vue/_chunks/{sas-D4-twsz3.js → sas-BDPIwc3L.js} +1 -1
  325. package/dist-vue/_chunks/{sas-D4-twsz3.js.map → sas-BDPIwc3L.js.map} +1 -1
  326. package/dist-vue/_chunks/{scheme-CCmbAfjG.js → scheme-6m6S6r1m.js} +1 -1
  327. package/dist-vue/_chunks/{scheme-CCmbAfjG.js.map → scheme-6m6S6r1m.js.map} +1 -1
  328. package/dist-vue/_chunks/{shell-oVzTSWfo.js → shell-Dcuubvcg.js} +1 -1
  329. package/dist-vue/_chunks/{shell-oVzTSWfo.js.map → shell-Dcuubvcg.js.map} +1 -1
  330. package/dist-vue/_chunks/{sieve-DUlxvKqS.js → sieve-C0Ec4mOZ.js} +1 -1
  331. package/dist-vue/_chunks/{sieve-DUlxvKqS.js.map → sieve-C0Ec4mOZ.js.map} +1 -1
  332. package/dist-vue/_chunks/{simple-mode-B6svE9zR.js → simple-mode-CaO_UoX6.js} +1 -1
  333. package/dist-vue/_chunks/{simple-mode-B6svE9zR.js.map → simple-mode-CaO_UoX6.js.map} +1 -1
  334. package/dist-vue/_chunks/{smalltalk-9-Xd93Rn.js → smalltalk-C8mY0f87.js} +1 -1
  335. package/dist-vue/_chunks/{smalltalk-9-Xd93Rn.js.map → smalltalk-C8mY0f87.js.map} +1 -1
  336. package/dist-vue/_chunks/{solr-DzeE5sFM.js → solr-jbM7m8s0.js} +1 -1
  337. package/dist-vue/_chunks/{solr-DzeE5sFM.js.map → solr-jbM7m8s0.js.map} +1 -1
  338. package/dist-vue/_chunks/{sparql-GFDxBmFa.js → sparql-DJZXdQFZ.js} +1 -1
  339. package/dist-vue/_chunks/{sparql-GFDxBmFa.js.map → sparql-DJZXdQFZ.js.map} +1 -1
  340. package/dist-vue/_chunks/{spreadsheet-BD6sBFg8.js → spreadsheet-iKWvNdRt.js} +1 -1
  341. package/dist-vue/_chunks/{spreadsheet-BD6sBFg8.js.map → spreadsheet-iKWvNdRt.js.map} +1 -1
  342. package/dist-vue/_chunks/{sql-JuMmsoSB.js → sql-BQ2tj9MP.js} +1 -1
  343. package/dist-vue/_chunks/{sql-JuMmsoSB.js.map → sql-BQ2tj9MP.js.map} +1 -1
  344. package/dist-vue/_chunks/{src-EtGd6cRz.js → src-DW4YojFN.js} +10 -10
  345. package/dist-vue/_chunks/{src-EtGd6cRz.js.map → src-DW4YojFN.js.map} +1 -1
  346. package/dist-vue/_chunks/{stex-Cy057UFl.js → stex-BEcrdSPS.js} +1 -1
  347. package/dist-vue/_chunks/{stex-Cy057UFl.js.map → stex-BEcrdSPS.js.map} +1 -1
  348. package/dist-vue/_chunks/{stylus-0KIe3uMX.js → stylus-b5gEI930.js} +1 -1
  349. package/dist-vue/_chunks/{stylus-0KIe3uMX.js.map → stylus-b5gEI930.js.map} +1 -1
  350. package/dist-vue/_chunks/{swift-tYMDqvYT.js → swift-RNJNWQs6.js} +1 -1
  351. package/dist-vue/_chunks/{swift-tYMDqvYT.js.map → swift-RNJNWQs6.js.map} +1 -1
  352. package/dist-vue/_chunks/{tcl-CSbjfJ81.js → tcl-BbY3AuDS.js} +1 -1
  353. package/dist-vue/_chunks/{tcl-CSbjfJ81.js.map → tcl-BbY3AuDS.js.map} +1 -1
  354. package/dist-vue/_chunks/{textile-Qe0pFxF7.js → textile-BM2q07iw.js} +1 -1
  355. package/dist-vue/_chunks/{textile-Qe0pFxF7.js.map → textile-BM2q07iw.js.map} +1 -1
  356. package/dist-vue/_chunks/{tiddlywiki-CYhUSC90.js → tiddlywiki-Bu7ffwvE.js} +1 -1
  357. package/dist-vue/_chunks/{tiddlywiki-CYhUSC90.js.map → tiddlywiki-Bu7ffwvE.js.map} +1 -1
  358. package/dist-vue/_chunks/{tiki-jtNVir5w.js → tiki-BSMiLiXp.js} +1 -1
  359. package/dist-vue/_chunks/{tiki-jtNVir5w.js.map → tiki-BSMiLiXp.js.map} +1 -1
  360. package/dist-vue/_chunks/{toml-C3FMZ9FE.js → toml-D3U9uI6V.js} +1 -1
  361. package/dist-vue/_chunks/{toml-C3FMZ9FE.js.map → toml-D3U9uI6V.js.map} +1 -1
  362. package/dist-vue/_chunks/{troff-FdVM_sPB.js → troff-DK_RaQh-.js} +1 -1
  363. package/dist-vue/_chunks/{troff-FdVM_sPB.js.map → troff-DK_RaQh-.js.map} +1 -1
  364. package/dist-vue/_chunks/{ttcn-Tmx7e7xS.js → ttcn-DVxr7ZdN.js} +1 -1
  365. package/dist-vue/_chunks/{ttcn-Tmx7e7xS.js.map → ttcn-DVxr7ZdN.js.map} +1 -1
  366. package/dist-vue/_chunks/{ttcn-cfg-BP7MXn1J.js → ttcn-cfg-CJG9xdrY.js} +1 -1
  367. package/dist-vue/_chunks/{ttcn-cfg-BP7MXn1J.js.map → ttcn-cfg-CJG9xdrY.js.map} +1 -1
  368. package/dist-vue/_chunks/{turtle-BtDXIrpF.js → turtle-Cj5kMy4D.js} +1 -1
  369. package/dist-vue/_chunks/{turtle-BtDXIrpF.js.map → turtle-Cj5kMy4D.js.map} +1 -1
  370. package/dist-vue/_chunks/{useChatbotStore-BXi-Gx7b.js → useChatbotStore-DCCWlutT.js} +1244 -1217
  371. package/dist-vue/_chunks/useChatbotStore-DCCWlutT.js.map +1 -0
  372. package/dist-vue/_chunks/{useSafeLocalStorage-BL5mqfb7.js → useSafeLocalStorage-DmA2eEi6.js} +2 -2
  373. package/dist-vue/_chunks/{useSafeLocalStorage-BL5mqfb7.js.map → useSafeLocalStorage-DmA2eEi6.js.map} +1 -1
  374. package/dist-vue/_chunks/{utils-CRojvghU.js → utils-UX35fb5C.js} +13 -13
  375. package/dist-vue/_chunks/{utils-CRojvghU.js.map → utils-UX35fb5C.js.map} +1 -1
  376. package/dist-vue/_chunks/{vb-DZ7E2F9i.js → vb-RlGsZALV.js} +1 -1
  377. package/dist-vue/_chunks/{vb-DZ7E2F9i.js.map → vb-RlGsZALV.js.map} +1 -1
  378. package/dist-vue/_chunks/{vbscript-DmYal433.js → vbscript-C6LN5bsX.js} +1 -1
  379. package/dist-vue/_chunks/{vbscript-DmYal433.js.map → vbscript-C6LN5bsX.js.map} +1 -1
  380. package/dist-vue/_chunks/{velocity-Dwi9C1bZ.js → velocity-7A5nvZTA.js} +1 -1
  381. package/dist-vue/_chunks/{velocity-Dwi9C1bZ.js.map → velocity-7A5nvZTA.js.map} +1 -1
  382. package/dist-vue/_chunks/{verilog-6XMMKLGD.js → verilog-CoPTkjsM.js} +1 -1
  383. package/dist-vue/_chunks/{verilog-6XMMKLGD.js.map → verilog-CoPTkjsM.js.map} +1 -1
  384. package/dist-vue/_chunks/{vhdl-BczymJF3.js → vhdl-BRtaeCKx.js} +1 -1
  385. package/dist-vue/_chunks/{vhdl-BczymJF3.js.map → vhdl-BRtaeCKx.js.map} +1 -1
  386. package/dist-vue/_chunks/{webidl-CaC70GJ2.js → webidl-BVwPXw7k.js} +1 -1
  387. package/dist-vue/_chunks/{webidl-CaC70GJ2.js.map → webidl-BVwPXw7k.js.map} +1 -1
  388. package/dist-vue/_chunks/{xquery-JS07XjNe.js → xquery-CXV9KVdL.js} +1 -1
  389. package/dist-vue/_chunks/{xquery-JS07XjNe.js.map → xquery-CXV9KVdL.js.map} +1 -1
  390. package/dist-vue/_chunks/{yacas-BXZNhOsZ.js → yacas-5ByKKRqf.js} +1 -1
  391. package/dist-vue/_chunks/{yacas-BXZNhOsZ.js.map → yacas-5ByKKRqf.js.map} +1 -1
  392. package/dist-vue/_chunks/{z80-Dtc8Q5vA.js → z80-wbH4fW7-.js} +1 -1
  393. package/dist-vue/_chunks/{z80-Dtc8Q5vA.js.map → z80-wbH4fW7-.js.map} +1 -1
  394. package/dist-vue/api.js +1 -1
  395. package/dist-vue/apps/web-component/src/components/EmbeddedChatWidget.ce.d.ts +8 -5
  396. package/dist-vue/apps/web-component/src/components/FloatingChatWidget.ce.d.ts +8 -1
  397. package/dist-vue/apps/web-component/src/composables/useChatbotAuth.d.ts +4 -0
  398. package/dist-vue/apps/web-component/src/lib.d.ts +34 -0
  399. package/dist-vue/apps/web-component/src/utils/emitWidgetEvent.d.ts +10 -0
  400. package/dist-vue/composables.js +4 -4
  401. package/dist-vue/index.js +8628 -4422
  402. package/dist-vue/index.js.map +1 -1
  403. package/dist-vue/locales.js +106 -62
  404. package/dist-vue/packages/auth/src/index.d.ts +12 -12
  405. package/dist-vue/packages/components/src/PkEditorJsonSchema.d.ts +36 -0
  406. package/dist-vue/packages/components/src/PkSchemaField.d.ts +17 -0
  407. package/dist-vue/packages/components/src/PkSvgViewer.d.ts +8 -0
  408. package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +5 -2
  409. package/dist-vue/packages/components/src/chat/PkChatbot.d.ts +2 -0
  410. package/dist-vue/packages/components/src/chat/PkChatbotMessages.d.ts +1 -0
  411. package/dist-vue/packages/components/src/chat/PkMessageParts.d.ts +6 -6
  412. package/dist-vue/packages/components/src/chat/PkStreamingMarkdown.d.ts +2 -0
  413. package/dist-vue/packages/components/src/chat/PkStreamingMarkdownAutoscroll.d.ts +1 -0
  414. package/dist-vue/packages/components/src/chat/PkToolShowDiagram.d.ts +8 -0
  415. package/dist-vue/packages/components/src/chat/PkToolShowLocation.d.ts +2 -0
  416. package/dist-vue/packages/components/src/chat/constants.d.ts +1 -1
  417. package/dist-vue/packages/components/src/index.d.ts +4 -1
  418. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +21 -3
  419. package/dist-vue/packages/composable/src/index.d.ts +1 -0
  420. package/dist-vue/packages/composable/src/useJsonSchemaEditor.d.ts +45 -0
  421. package/dist-vue/packages/models/src/schema/Agent.d.ts +4 -0
  422. package/dist-vue/packages/models/src/schema/Chat.d.ts +3 -0
  423. package/dist-vue/packages/models/src/schema/Notification.d.ts +6 -0
  424. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +2 -0
  425. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +2 -0
  426. package/dist-vue/packages/models/src/schema/constants.d.ts +2 -0
  427. package/dist-vue/packages/models/src/utils.d.ts +2 -0
  428. package/dist-vue/style.css +1 -1
  429. package/package.json +7 -7
  430. package/dist/_chunks/PkStreamingMarkdown-SVWv4Oye.js.map +0 -1
  431. package/dist/_chunks/PkToolShowComparison-BzyqEIMV.js +0 -64
  432. package/dist/_chunks/VvCombobox.es-CUUNtqyJ.js +0 -1998
  433. package/dist/_chunks/VvTextarea.es-B5txwRRm.js +0 -1110
  434. package/dist/_chunks/dist-DHG50RNO.js +0 -768
  435. package/dist/_chunks/marker-icon-2x-Df3ovzYv.js +0 -7
  436. package/dist/_chunks/marker-icon-2x-Df3ovzYv.js.map +0 -1
  437. package/dist/_chunks/marker-icon-CCYFvBsS.js +0 -7
  438. package/dist/_chunks/marker-icon-CCYFvBsS.js.map +0 -1
  439. package/dist/_chunks/marker-shadow-CHjnGkIt.js +0 -7
  440. package/dist/_chunks/marker-shadow-CHjnGkIt.js.map +0 -1
  441. package/dist-vue/_chunks/Media-Dq8UU7iQ.js +0 -120
  442. package/dist-vue/_chunks/Media-Dq8UU7iQ.js.map +0 -1
  443. package/dist-vue/_chunks/PkChatbot-CoXx7Rul.js +0 -191
  444. package/dist-vue/_chunks/PkChatbot-CoXx7Rul.js.map +0 -1
  445. package/dist-vue/_chunks/PkChatbotFilePreview-0N9ASbIp.js.map +0 -1
  446. package/dist-vue/_chunks/PkChatbotMessages-BDziUgck.js.map +0 -1
  447. package/dist-vue/_chunks/PkChatbotViewChat-DMnMkELX.js +0 -278
  448. package/dist-vue/_chunks/PkChatbotViewChat-DMnMkELX.js.map +0 -1
  449. package/dist-vue/_chunks/PkStreamingMarkdown-BUiAi-qv.js.map +0 -1
  450. package/dist-vue/_chunks/PkToolRequestConfirm-BsHpoI-c.js +0 -49
  451. package/dist-vue/_chunks/PkToolRequestOAuthConnection-shcJXxtk.js +0 -64
  452. package/dist-vue/_chunks/PkToolShowLocation-DBHdxOFr.js +0 -149
  453. package/dist-vue/_chunks/PkToolShowLocation-DBHdxOFr.js.map +0 -1
  454. package/dist-vue/_chunks/createChatbotApiClient-C_E35aQf.js.map +0 -1
  455. package/dist-vue/_chunks/dist-B_3TGJwf.js.map +0 -1
  456. package/dist-vue/_chunks/dist-sx4PacBp2.js +0 -440
  457. package/dist-vue/_chunks/dist-sx4PacBp2.js.map +0 -1
  458. package/dist-vue/_chunks/useChatbotStore-BXi-Gx7b.js.map +0 -1
  459. /package/dist/_chunks/{_plugin-vue_export-helper-BWIS0o4o.js → _plugin-vue_export-helper-5qR9iAls.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PkToolShowSources-Ca36N91a.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 aiDescriptionModel: z.string().optional(),\n aiDescriptionPrompt: z.string().max(5000).optional(),\n language: z.string().optional(),\n forceOcr: z.boolean().default(false),\n pages: z\n .string()\n .max(100)\n .regex(/^\\d+(\\s*-\\s*\\d+)?(\\s*,\\s*\\d+(\\s*-\\s*\\d+)?)*$/)\n .optional(),\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 // === OCR (PDF documents) ===\n ocrUsed: z.boolean().optional(),\n ocrProvider: z.string().optional(),\n ocrModel: z.string().optional(),\n ocrPages: z.string().optional(),\n ocrCost: z.number().optional(),\n ocrError: z.string().optional(),\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 // Agent IDs associated with this document (populated in single-item reads)\n agentIds: z.array(z.string()).optional(),\n // Folder ID for this document within an agent context (populated in agent-scoped reads)\n folderId: z.string().nullable().optional(),\n // Full folder path string e.g. \"Parent / Child\" (populated in list reads when agentId is set)\n folderPath: z.string().nullable().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 // UUID = documents in that folder; 'null' = documents at root (no folder); absent = all documents\n 'filter[folderId]': 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 folderId: z.uuid().nullable().optional(),\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 aiDescriptionModel: z.string().optional(),\n aiDescriptionPrompt: z.string().max(5000).optional(),\n forceOcr: z.boolean().default(false),\n pages: z\n .string()\n .max(100)\n .regex(/^\\d+(\\s*-\\s*\\d+)?(\\s*,\\s*\\d+(\\s*-\\s*\\d+)?)*$/)\n .optional(),\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\nexport const getFileIcon = (extension: string) => {\n const ext = (\n extension.startsWith('.') ? extension.slice(1) : extension\n ).toLowerCase()\n switch (ext) {\n case 'pdf':\n return 'ri:file-pdf-2-line'\n case 'doc':\n case 'docx':\n return 'ri:file-word-line'\n case 'xls':\n case 'xlsx':\n return 'ri:file-excel-line'\n case 'ppt':\n case 'pptx':\n return 'ri:file-ppt-line'\n case 'txt':\n return 'ri:file-text-line'\n case 'mp3':\n case 'wav':\n case 'ogg':\n return 'ri:file-music-line'\n case 'mp4':\n case 'avi':\n case 'mkv':\n return 'ri:file-video-line'\n case 'jpg':\n case 'jpeg':\n case 'png':\n case 'gif':\n case 'bmp':\n case 'svg':\n return 'ri:file-image-line'\n case 'zip':\n case 'rar':\n case '7z':\n return 'ri:file-zip-line'\n default:\n return 'ri:file-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-xl 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-xl 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,47 @@
1
+ import { E as e, Kt as t, V as n, Vt as r, _ as i, b as a, m as o, p as s, pt as c, v as l, w as u, x as d, z as f } from "./vue.runtime.esm-bundler-B-iHWsf4.js";
2
+ import { o as p } from "./index.es-9_Td6lnP.js";
3
+ import { t as m } from "./_plugin-vue_export-helper-5qR9iAls.js";
4
+ //#region ../../packages/components/src/chat/PkToolShowSuggestedReply.vue?vue&type=script&setup=true&lang.ts
5
+ var h = {
6
+ key: 0,
7
+ class: "pk-tool-suggested-reply"
8
+ }, g = ["disabled", "onClick"], _ = /* @__PURE__ */ m(/* @__PURE__ */ e({
9
+ __name: "PkToolShowSuggestedReply",
10
+ props: { part: { type: null } },
11
+ emits: ["select"],
12
+ setup(e, { emit: m }) {
13
+ let _ = e, v = m, y = i(() => JSON.parse(JSON.stringify(_.part))), b = i(() => {
14
+ let e = y.value?.input;
15
+ return e ? e.suggestions?.length ? e.suggestions : e.label ? [{
16
+ label: e.label,
17
+ prompt: e.prompt ?? e.label
18
+ }] : [] : [];
19
+ }), x = c(null), S = i(() => y.value?.state === "input-available" && x.value === null);
20
+ function C(e) {
21
+ if (!S.value) return;
22
+ x.value = e;
23
+ let t = b.value[e], n = t?.prompt ?? t?.label;
24
+ n && v("select", n);
25
+ }
26
+ return (e, i) => {
27
+ let c = p;
28
+ return b.value.length ? (f(), d("div", h, [(f(!0), d(o, null, n(b.value, (e, n) => (f(), d("button", {
29
+ key: n,
30
+ type: "button",
31
+ class: r(["pk-tool-suggested-reply__link", {
32
+ "is-clicked": x.value === n,
33
+ "is-disabled": !S.value
34
+ }]),
35
+ disabled: !S.value,
36
+ onClick: s((e) => C(n), ["stop"])
37
+ }, [u(c, {
38
+ name: "ri:corner-down-right-line",
39
+ class: "pk-tool-suggested-reply__icon"
40
+ }), l("span", null, t(e.label), 1)], 10, g))), 128))])) : a("", !0);
41
+ };
42
+ }
43
+ }), [["styles", [".pk-tool-suggested-reply{align-items:flex-start;gap:var(--spacing-4);flex-direction:column;display:flex}.pk-tool-suggested-reply__link{align-items:center;gap:var(--spacing-4);font:inherit;text-underline-offset:2px;cursor:pointer;color:var(--color-word-3);transition:var(--transition-colors);background:0 0;border:none;padding:0;font-size:.875em;text-decoration:underline;display:inline-flex}.pk-tool-suggested-reply__link:hover:not(:disabled){color:var(--color-word)}.pk-tool-suggested-reply__link.is-disabled{cursor:default;pointer-events:none;color:var(--color-word-5)}.pk-tool-suggested-reply__link.is-clicked{color:var(--color-word-5);text-decoration:none}.pk-tool-suggested-reply__icon{flex-shrink:0;width:1em;height:1em}"]]]);
44
+ //#endregion
45
+ export { _ as default };
46
+
47
+ //# sourceMappingURL=PkToolShowSuggestedReply-2lyEikVx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PkToolShowSuggestedReply-2lyEikVx.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowSuggestedReply.vue","../../../../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 type Suggestion = { label: string; prompt?: string }\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 /** New schema: array of suggestions */\n suggestions?: Suggestion[]\n /** Legacy schema: single suggestion */\n label?: string\n prompt?: string\n }\n output?: string\n }\n })\n\n /** Normalize to always work with an array of suggestions */\n const suggestions = computed<Suggestion[]>(() => {\n const input = toolPart.value?.input\n if (!input) {\n return []\n }\n if (input.suggestions?.length) {\n return input.suggestions\n }\n // Legacy single-suggestion format (client-side fallback)\n if (input.label) {\n return [{ label: input.label, prompt: input.prompt ?? input.label }]\n }\n return []\n })\n\n const clickedIndex = ref<number | null>(null)\n\n const isInteractive = computed(() => {\n return (\n toolPart.value?.state === 'input-available' &&\n clickedIndex.value === null\n )\n })\n\n function handleClick(index: number) {\n if (!isInteractive.value) {\n return\n }\n clickedIndex.value = index\n const suggestion = suggestions.value[index]\n const value = suggestion?.prompt ?? suggestion?.label\n if (value) {\n emit('select', value)\n }\n }\n</script>\n\n<template>\n <div v-if=\"suggestions.length\" class=\"pk-tool-suggested-reply\">\n <button\n v-for=\"(suggestion, index) in suggestions\"\n :key=\"index\"\n type=\"button\"\n class=\"pk-tool-suggested-reply__link\"\n :class=\"{\n 'is-clicked': clickedIndex === index,\n 'is-disabled': !isInteractive,\n }\"\n :disabled=\"!isInteractive\"\n @click.stop=\"handleClick(index)\">\n <VvIcon\n name=\"ri:corner-down-right-line\"\n class=\"pk-tool-suggested-reply__icon\" />\n <span>{{ suggestion.label }}</span>\n </button>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-tool-suggested-reply {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-4);\n\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\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 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 type Suggestion = { label: string; prompt?: string }\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 /** New schema: array of suggestions */\n suggestions?: Suggestion[]\n /** Legacy schema: single suggestion */\n label?: string\n prompt?: string\n }\n output?: string\n }\n })\n\n /** Normalize to always work with an array of suggestions */\n const suggestions = computed<Suggestion[]>(() => {\n const input = toolPart.value?.input\n if (!input) {\n return []\n }\n if (input.suggestions?.length) {\n return input.suggestions\n }\n // Legacy single-suggestion format (client-side fallback)\n if (input.label) {\n return [{ label: input.label, prompt: input.prompt ?? input.label }]\n }\n return []\n })\n\n const clickedIndex = ref<number | null>(null)\n\n const isInteractive = computed(() => {\n return (\n toolPart.value?.state === 'input-available' &&\n clickedIndex.value === null\n )\n })\n\n function handleClick(index: number) {\n if (!isInteractive.value) {\n return\n }\n clickedIndex.value = index\n const suggestion = suggestions.value[index]\n const value = suggestion?.prompt ?? suggestion?.label\n if (value) {\n emit('select', value)\n }\n }\n</script>\n\n<template>\n <div v-if=\"suggestions.length\" class=\"pk-tool-suggested-reply\">\n <button\n v-for=\"(suggestion, index) in suggestions\"\n :key=\"index\"\n type=\"button\"\n class=\"pk-tool-suggested-reply__link\"\n :class=\"{\n 'is-clicked': clickedIndex === index,\n 'is-disabled': !isInteractive,\n }\"\n :disabled=\"!isInteractive\"\n @click.stop=\"handleClick(index)\">\n <VvIcon\n name=\"ri:corner-down-right-line\"\n class=\"pk-tool-suggested-reply__icon\" />\n <span>{{ suggestion.label }}</span>\n </button>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-tool-suggested-reply {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-4);\n\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\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 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 type Suggestion = { label: string; prompt?: string }\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 /** New schema: array of suggestions */\n suggestions?: Suggestion[]\n /** Legacy schema: single suggestion */\n label?: string\n prompt?: string\n }\n output?: string\n }\n })\n\n /** Normalize to always work with an array of suggestions */\n const suggestions = computed<Suggestion[]>(() => {\n const input = toolPart.value?.input\n if (!input) {\n return []\n }\n if (input.suggestions?.length) {\n return input.suggestions\n }\n // Legacy single-suggestion format (client-side fallback)\n if (input.label) {\n return [{ label: input.label, prompt: input.prompt ?? input.label }]\n }\n return []\n })\n\n const clickedIndex = ref<number | null>(null)\n\n const isInteractive = computed(() => {\n return (\n toolPart.value?.state === 'input-available' &&\n clickedIndex.value === null\n )\n })\n\n function handleClick(index: number) {\n if (!isInteractive.value) {\n return\n }\n clickedIndex.value = index\n const suggestion = suggestions.value[index]\n const value = suggestion?.prompt ?? suggestion?.label\n if (value) {\n emit('select', value)\n }\n }\n</script>\n\n<template>\n <div v-if=\"suggestions.length\" class=\"pk-tool-suggested-reply\">\n <button\n v-for=\"(suggestion, index) in suggestions\"\n :key=\"index\"\n type=\"button\"\n class=\"pk-tool-suggested-reply__link\"\n :class=\"{\n 'is-clicked': clickedIndex === index,\n 'is-disabled': !isInteractive,\n }\"\n :disabled=\"!isInteractive\"\n @click.stop=\"handleClick(index)\">\n <VvIcon\n name=\"ri:corner-down-right-line\"\n class=\"pk-tool-suggested-reply__icon\" />\n <span>{{ suggestion.label }}</span>\n </button>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-tool-suggested-reply {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-4);\n\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\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 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":";;;;;;;;;;;;EAKI,IAAM,IAAQ,GAIR,IAAO,GAIP,IAAW,QACN,KAAK,MAAM,KAAK,UAAU,EAAM,IAAI,CAAC,CAY/C,GAGK,IAAc,QAA6B;GAC7C,IAAM,IAAQ,EAAS,OAAO;GAW9B,OAVK,IAGD,EAAM,aAAa,SACZ,EAAM,cAGb,EAAM,QACC,CAAC;IAAE,OAAO,EAAM;IAAO,QAAQ,EAAM,UAAU,EAAM;GAAM,CAAC,IAEhE,CAAC,IATG,CAAC;EAUhB,CAAC,GAEK,IAAe,EAAmB,IAAI,GAEtC,IAAgB,QAEd,EAAS,OAAO,UAAU,qBAC1B,EAAa,UAAU,IAE9B;EAED,SAAS,EAAY,GAAe;GAChC,IAAI,CAAC,EAAc,OACf;GAEJ,EAAa,QAAQ;GACrB,IAAM,IAAa,EAAY,MAAM,IAC/B,IAAQ,GAAY,UAAU,GAAY;GAChD,AAAI,KACA,EAAK,UAAU,CAAK;EAE5B;;;UAIW,EAAA,MAAY,UAAA,EAAA,GAAvB,EAiBM,OAjBN,GAiBM,EAAA,EAAA,EAAA,GAhBF,EAeS,GAAA,MAAA,EAdyB,EAAA,QAAtB,GAAY,YADxB,EAeS,UAAA;IAbJ,KAAK;IACN,MAAK;IACL,OAAK,EAAA,CAAC,iCAA+B;mBACG,EAAA,UAAiB;qBAAuC,EAAA;;IAI/F,UAAQ,CAAG,EAAA;IACX,SAAK,GAAA,MAAO,EAAY,CAAK,GAAA,CAAA,MAAA,CAAA;OAC9B,EAE4C,GAAA;IADxC,MAAK;IACL,OAAM;OACV,EAAmC,QAAA,MAAA,EAA1B,EAAW,KAAK,GAAA,CAAA,CAAA,GAAA,IAAA,CAAA"}
@@ -1,14 +1,14 @@
1
- import { $ as e, Bt as t, C as n, E as r, Gt as i, V as a, Z as o, _ as s, b as c, ft as l, h as u, n as d, v as f, w as p, x as m, y as ee, yt as h, z as g } from "./vue.runtime.esm-bundler-7_kt7y9A.js";
2
- import { n as te } from "./vue-i18n-fHp3k8qw.js";
3
- import { l as ne, o as re } from "./index.es-CusxIi0s.js";
1
+ import { C as e, E as t, Kt as n, Q as r, V as i, Vt as a, _ as o, b as s, bt as c, et as l, m as u, n as d, pt as f, v as p, w as m, x as h, y as ee, z as g } from "./vue.runtime.esm-bundler-B-iHWsf4.js";
2
+ import { n as _ } from "./vue-i18n-BjaFxqmH.js";
3
+ import { l as te, o as ne } from "./index.es-9_Td6lnP.js";
4
4
  //#region ../../packages/components/src/chat/PkToolShowWeather.vue?vue&type=script&setup=true&lang.ts
5
- var _ = {
5
+ var re = {
6
6
  key: 0,
7
7
  class: "border border-surface-3 rounded-xl w-full overflow-hidden"
8
- }, v = { class: "px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8 min-h-40" }, ie = { class: "font-bold truncate" }, ae = { class: "ml-auto shrink-0 capitalize" }, oe = {
8
+ }, ie = { class: "px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8 min-h-40" }, ae = { class: "font-bold truncate" }, oe = { class: "ml-auto shrink-0 capitalize" }, se = {
9
9
  key: 0,
10
10
  class: "px-sm py-md flex items-center gap-md flex-wrap"
11
- }, se = { class: "flex items-center gap-8" }, ce = { class: "text-48 font-light leading-none text-word-1" }, le = { class: "flex flex-col gap-4 text-12 text-word-3" }, ue = { class: "flex items-center gap-6" }, de = { class: "flex items-center gap-6" }, fe = { class: "flex items-center gap-6" }, pe = {
11
+ }, v = { class: "flex items-center gap-8" }, ce = { class: "text-48 font-light leading-none text-word-1" }, le = { class: "flex flex-col gap-4 text-12 text-word-3" }, ue = { class: "flex items-center gap-6" }, de = { class: "flex items-center gap-6" }, fe = { class: "flex items-center gap-6" }, pe = {
12
12
  key: 0,
13
13
  class: "flex items-center gap-6"
14
14
  }, y = {
@@ -35,15 +35,15 @@ var _ = {
35
35
  }, I = { class: "ml-auto flex items-center gap-8 text-word-3" }, L = { class: "text-word-1 font-semibold" }, R = {
36
36
  key: 2,
37
37
  class: "border-t border-surface-3 px-sm py-8 flex items-center gap-8 text-12"
38
- }, z = { class: "text-word-3" }, B = /* @__PURE__ */ r({
38
+ }, z = { class: "text-word-3" }, B = /* @__PURE__ */ t({
39
39
  __name: "PkToolShowWeather",
40
40
  props: { part: { type: null } },
41
- setup(r) {
42
- let B = r, { t: V, d: H, n: U } = te({ useScope: "global" }), W = s(() => B.part), G = s(() => W.value.output ?? W.value.input ?? null), K = l(0), q = l(!G.value?.current);
43
- o(K, (e) => {
41
+ setup(t) {
42
+ let B = t, { t: V, d: H, n: U } = _({ useScope: "global" }), W = o(() => B.part), G = o(() => W.value.output ?? W.value.input ?? null), K = f(0), q = f(!G.value?.current);
43
+ r(K, (e) => {
44
44
  e > 0 && (q.value = !0);
45
45
  });
46
- let J = s(() => G.value?.daily?.[K.value]), Y = s(() => {
46
+ let J = o(() => G.value?.daily?.[K.value]), Y = o(() => {
47
47
  if (!G.value?.hourly?.length || !J.value) return G.value?.hourly ?? [];
48
48
  let e = J.value.date;
49
49
  return G.value.hourly.filter((t) => t.time.startsWith(e));
@@ -79,7 +79,7 @@ var _ = {
79
79
  let i = /* @__PURE__ */ new Date();
80
80
  return i.setDate(i.getDate() + t), H(i, "weekday-day");
81
81
  }
82
- let he = s(() => {
82
+ let he = o(() => {
83
83
  if (J.value) {
84
84
  let e = X(J.value.date + "T12:00:00");
85
85
  if (!Number.isNaN(e.getTime())) return Q(J.value.date, K.value, G.value?.daily?.length ?? 1);
@@ -119,106 +119,106 @@ var _ = {
119
119
  "NO"
120
120
  ][Math.round(e / 45) % 8];
121
121
  }
122
- return (r, o) => {
123
- let s = re, l = ne;
124
- return G.value ? (g(), m("div", _, [
125
- f("div", v, [
126
- p(s, {
122
+ return (t, r) => {
123
+ let o = ne, f = te;
124
+ return G.value ? (g(), h("div", re, [
125
+ p("div", ie, [
126
+ m(o, {
127
127
  name: "ri:temp-cold-line",
128
128
  class: "text-16"
129
129
  }),
130
- f("strong", ie, i(G.value.locationName), 1),
131
- f("span", ae, i(he.value), 1)
130
+ p("strong", ae, n(G.value.locationName), 1),
131
+ p("span", oe, n(he.value), 1)
132
132
  ]),
133
- G.value.current && K.value === 0 ? (g(), m("div", oe, [f("div", se, [p(s, {
133
+ G.value.current && K.value === 0 ? (g(), h("div", se, [p("div", v, [m(o, {
134
134
  name: Z(G.value.current.weatherCode),
135
135
  class: "text-48 text-word-2 shrink-0"
136
- }, null, 8, ["name"]), f("span", ce, i(h(U)(G.value.current.temperature, "integer")) + "° ", 1)]), f("div", le, [
137
- f("div", ue, i(h(V)("weather.feelsLike")) + " " + i(h(U)(G.value.current.feelsLike, "integer")) + "° ", 1),
138
- f("div", de, [p(s, {
136
+ }, null, 8, ["name"]), p("span", ce, n(c(U)(G.value.current.temperature, "integer")) + "° ", 1)]), p("div", le, [
137
+ p("div", ue, n(c(V)("weather.feelsLike")) + " " + n(c(U)(G.value.current.feelsLike, "integer")) + "° ", 1),
138
+ p("div", de, [m(o, {
139
139
  name: "ri:water-percent-line",
140
140
  class: "text-14"
141
- }), n(" " + i(G.value.current.humidity) + "% ", 1)]),
142
- f("div", fe, [p(s, {
141
+ }), e(" " + n(G.value.current.humidity) + "% ", 1)]),
142
+ p("div", fe, [m(o, {
143
143
  name: "ri:windy-line",
144
144
  class: "text-14"
145
- }), n(" " + i(h(U)(G.value.current.windSpeed, "integer")) + " km/h " + i(ge(G.value.current.windDirection)), 1)]),
146
- G.value.current.uvIndex > 0 ? (g(), m("div", pe, [p(s, {
145
+ }), e(" " + n(c(U)(G.value.current.windSpeed, "integer")) + " km/h " + n(ge(G.value.current.windDirection)), 1)]),
146
+ G.value.current.uvIndex > 0 ? (g(), h("div", pe, [m(o, {
147
147
  name: "ri:sun-line",
148
148
  class: "text-14"
149
- }), n(" UV " + i(h(U)(G.value.current.uvIndex, "integer")), 1)])) : c("", !0)
150
- ])])) : J.value ? (g(), m("div", y, [f("div", b, [p(s, {
149
+ }), e(" UV " + n(c(U)(G.value.current.uvIndex, "integer")), 1)])) : s("", !0)
150
+ ])])) : J.value ? (g(), h("div", y, [p("div", b, [m(o, {
151
151
  name: Z(J.value.weatherCode),
152
152
  class: "text-48 text-word-2 shrink-0"
153
- }, null, 8, ["name"]), f("div", x, [f("span", S, i(h(U)(J.value.maxTemp, "integer")) + "° ", 1), f("span", C, i(h(U)(J.value.minTemp, "integer")) + "° ", 1)])]), f("div", w, [
154
- J.value.precipitationProbabilityMax > 0 ? (g(), m("div", T, [p(s, {
153
+ }, null, 8, ["name"]), p("div", x, [p("span", S, n(c(U)(J.value.maxTemp, "integer")) + "° ", 1), p("span", C, n(c(U)(J.value.minTemp, "integer")) + "° ", 1)])]), p("div", w, [
154
+ J.value.precipitationProbabilityMax > 0 ? (g(), h("div", T, [m(o, {
155
155
  name: "ri:drop-line",
156
156
  class: "text-14"
157
- }), n(" " + i(J.value.precipitationProbabilityMax) + "% (" + i(J.value.precipitationSum) + " mm) ", 1)])) : c("", !0),
158
- J.value.uvIndexMax > 0 ? (g(), m("div", E, [p(s, {
157
+ }), e(" " + n(J.value.precipitationProbabilityMax) + "% (" + n(J.value.precipitationSum) + " mm) ", 1)])) : s("", !0),
158
+ J.value.uvIndexMax > 0 ? (g(), h("div", E, [m(o, {
159
159
  name: "ri:sun-line",
160
160
  class: "text-14"
161
- }), n(" UV " + i(h(U)(J.value.uvIndexMax, "integer")), 1)])) : c("", !0),
162
- f("div", D, [p(s, {
161
+ }), e(" UV " + n(c(U)(J.value.uvIndexMax, "integer")), 1)])) : s("", !0),
162
+ p("div", D, [m(o, {
163
163
  name: "ri:sun-foggy-line",
164
164
  class: "text-14"
165
- }), n(" " + i(h(H)(X(J.value.sunrise), "time")) + " – " + i(h(H)(X(J.value.sunset), "time")), 1)])
166
- ])])) : c("", !0),
167
- p(d, null, {
168
- default: e(() => [Y.value.length > 0 ? (g(), m("div", O, [f("div", k, [(g(!0), m(u, null, a(Y.value, (e) => (g(), m("div", {
165
+ }), e(" " + n(c(H)(X(J.value.sunrise), "time")) + " – " + n(c(H)(X(J.value.sunset), "time")), 1)])
166
+ ])])) : s("", !0),
167
+ m(d, null, {
168
+ default: l(() => [Y.value.length > 0 ? (g(), h("div", O, [p("div", k, [(g(!0), h(u, null, i(Y.value, (e) => (g(), h("div", {
169
169
  key: e.time,
170
170
  class: "flex flex-col items-center gap-4 min-w-48 px-4 py-6 rounded-xl text-11 text-word-3 shrink-0"
171
171
  }, [
172
- f("span", A, i(Number.isNaN(X(e.time).getTime()) ? e.time : h(H)(X(e.time), "time")), 1),
173
- p(s, {
172
+ p("span", A, n(Number.isNaN(X(e.time).getTime()) ? e.time : c(H)(X(e.time), "time")), 1),
173
+ m(o, {
174
174
  name: Z(e.weatherCode),
175
175
  class: "text-20 text-word-2"
176
176
  }, null, 8, ["name"]),
177
- f("span", j, i(h(U)(e.temperature, "integer")) + "° ", 1),
178
- e.precipitationProbability > 0 ? (g(), m("span", M, i(e.precipitationProbability) + "% ", 1)) : c("", !0)
179
- ]))), 128))])])) : c("", !0)]),
177
+ p("span", j, n(c(U)(e.temperature, "integer")) + "° ", 1),
178
+ e.precipitationProbability > 0 ? (g(), h("span", M, n(e.precipitationProbability) + "% ", 1)) : s("", !0)
179
+ ]))), 128))])])) : s("", !0)]),
180
180
  _: 1
181
181
  }),
182
- p(d, null, {
183
- default: e(() => [G.value.daily?.length > 1 ? (g(), ee(l, {
182
+ m(d, null, {
183
+ default: l(() => [G.value.daily?.length > 1 ? (g(), ee(f, {
184
184
  key: 0,
185
185
  modelValue: q.value,
186
- "onUpdate:modelValue": o[0] ||= (e) => q.value = e,
186
+ "onUpdate:modelValue": r[0] ||= (e) => q.value = e,
187
187
  modifiers: "details no-padding",
188
- title: h(V)("weather.dailyForecast"),
188
+ title: c(V)("weather.dailyForecast"),
189
189
  class: "border-t border-surface-3"
190
190
  }, {
191
- default: e(() => [(g(!0), m(u, null, a(G.value.daily, (e, n) => (g(), m("button", {
191
+ default: l(() => [(g(!0), h(u, null, i(G.value.daily, (e, t) => (g(), h("button", {
192
192
  key: e.date,
193
193
  type: "button",
194
- class: t(["flex items-center gap-sm px-sm py-8 text-12 w-full text-left transition-colors cursor-pointer border-t border-surface-3", n === K.value ? "bg-surface-2" : "hover:bg-surface-1"]),
195
- onClick: (e) => K.value = n
194
+ class: a(["flex items-center gap-sm px-sm py-8 text-12 w-full text-left transition-colors cursor-pointer border-t border-surface-3", t === K.value ? "bg-surface-2" : "hover:bg-surface-1"]),
195
+ onClick: (e) => K.value = t
196
196
  }, [
197
- f("span", me, i(Q(e.date, n, G.value.daily.length)), 1),
198
- p(s, {
197
+ p("span", me, n(Q(e.date, t, G.value.daily.length)), 1),
198
+ m(o, {
199
199
  name: Z(e.weatherCode),
200
200
  class: "text-18 text-word-2 shrink-0"
201
201
  }, null, 8, ["name"]),
202
- e.precipitationProbabilityMax > 0 ? (g(), m("span", P, i(e.precipitationProbabilityMax) + "% ", 1)) : (g(), m("span", F)),
203
- f("div", I, [f("span", L, i(h(U)(e.maxTemp, "integer")) + "° ", 1), f("span", null, i(h(U)(e.minTemp, "integer")) + "°", 1)])
202
+ e.precipitationProbabilityMax > 0 ? (g(), h("span", P, n(e.precipitationProbabilityMax) + "% ", 1)) : (g(), h("span", F)),
203
+ p("div", I, [p("span", L, n(c(U)(e.maxTemp, "integer")) + "° ", 1), p("span", null, n(c(U)(e.minTemp, "integer")) + "°", 1)])
204
204
  ], 10, N))), 128))]),
205
205
  _: 1
206
- }, 8, ["modelValue", "title"])) : c("", !0)]),
206
+ }, 8, ["modelValue", "title"])) : s("", !0)]),
207
207
  _: 1
208
208
  }),
209
- G.value.airQuality ? (g(), m("div", R, [
210
- p(s, {
209
+ G.value.airQuality ? (g(), h("div", R, [
210
+ m(o, {
211
211
  name: "ri:windy-line",
212
212
  class: "text-14 text-word-3"
213
213
  }),
214
- f("span", z, i(h(V)("weather.airQuality")), 1),
215
- f("span", { class: t(["ml-auto px-8 py-2 text-11 font-semibold", $(G.value.airQuality.aqi).class]) }, i($(G.value.airQuality.aqi).label) + " (" + i(G.value.airQuality.aqi) + ") ", 3)
216
- ])) : c("", !0)
217
- ])) : c("", !0);
214
+ p("span", z, n(c(V)("weather.airQuality")), 1),
215
+ p("span", { class: a(["ml-auto px-8 py-2 text-11 font-semibold", $(G.value.airQuality.aqi).class]) }, n($(G.value.airQuality.aqi).label) + " (" + n(G.value.airQuality.aqi) + ") ", 3)
216
+ ])) : s("", !0)
217
+ ])) : s("", !0);
218
218
  };
219
219
  }
220
220
  });
221
221
  //#endregion
222
222
  export { B as default };
223
223
 
224
- //# sourceMappingURL=PkToolShowWeather-CSua0gHs.js.map
224
+ //# sourceMappingURL=PkToolShowWeather-CnTyMQTT.js.map