@8wave/ai-elements 0.73.0 → 0.75.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 (220) hide show
  1. package/README.md +62 -15
  2. package/dist/_chunks/{PkStreamingMarkdown-orhL2kzD.js → PkStreamingMarkdown-rIdQh5_D.js} +20 -20
  3. package/dist/_chunks/PkStreamingMarkdown-rIdQh5_D.js.map +1 -0
  4. package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js → PkToolShowArtifact-CeLgwZBA.js} +6 -6
  5. package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js.map → PkToolShowArtifact-CeLgwZBA.js.map} +1 -1
  6. package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js → PkToolShowCalendarEvent-cQpAAE3a.js} +10 -10
  7. package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js.map → PkToolShowCalendarEvent-cQpAAE3a.js.map} +1 -1
  8. package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js → PkToolShowComparison-Cu-zT8-Z.js} +6 -6
  9. package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js.map → PkToolShowComparison-Cu-zT8-Z.js.map} +1 -1
  10. package/dist/_chunks/PkToolShowContactForm-CqoSVvjG.js +1658 -0
  11. package/dist/_chunks/PkToolShowContactForm-CqoSVvjG.js.map +1 -0
  12. package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js → PkToolShowEmail-oLGym0R9.js} +10 -10
  13. package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js.map → PkToolShowEmail-oLGym0R9.js.map} +1 -1
  14. package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js → PkToolShowImageGallery-CDXSL1Mg.js} +2 -2
  15. package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js.map → PkToolShowImageGallery-CDXSL1Mg.js.map} +1 -1
  16. package/dist/_chunks/{PkToolShowLocation-US6u26ra.js → PkToolShowLocation-BtRUdoEw.js} +7 -7
  17. package/dist/_chunks/{PkToolShowLocation-US6u26ra.js.map → PkToolShowLocation-BtRUdoEw.js.map} +1 -1
  18. package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js → PkToolShowMessage-tJQGRhce.js} +9 -9
  19. package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js.map → PkToolShowMessage-tJQGRhce.js.map} +1 -1
  20. package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js → PkToolShowMultipleChoice-CtVvdyDg.js} +3 -3
  21. package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js.map → PkToolShowMultipleChoice-CtVvdyDg.js.map} +1 -1
  22. package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js → PkToolShowProductList-D_k6CDdb.js} +2 -2
  23. package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js.map → PkToolShowProductList-D_k6CDdb.js.map} +1 -1
  24. package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js → PkToolShowQrCode-S1j_T8wQ.js} +6 -6
  25. package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js.map → PkToolShowQrCode-S1j_T8wQ.js.map} +1 -1
  26. package/dist/_chunks/{PkToolShowSources-B2rf94fU.js → PkToolShowSources-CroItMtG.js} +6 -5
  27. package/dist/_chunks/PkToolShowSources-CroItMtG.js.map +1 -0
  28. package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js → PkToolShowSuggestedReply-BRa5Lpti.js} +2 -2
  29. package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js.map → PkToolShowSuggestedReply-BRa5Lpti.js.map} +1 -1
  30. package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js → PkToolShowWeather-CUpCJ8Nj.js} +3 -3
  31. package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js.map → PkToolShowWeather-CUpCJ8Nj.js.map} +1 -1
  32. package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js → PkToolShowWebPages-f-dHyxfD.js} +2 -2
  33. package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js.map → PkToolShowWebPages-f-dHyxfD.js.map} +1 -1
  34. package/dist/_chunks/{VvCheckbox.es-kmMsWlkU.js → VvCheckbox.es-BF8Mdg0O.js} +2 -2
  35. package/dist/_chunks/{VvCheckbox.es-kmMsWlkU.js.map → VvCheckbox.es-BF8Mdg0O.js.map} +1 -1
  36. package/dist/_chunks/{VvCheckboxGroup.es-BRRmuO9h.js → VvCheckboxGroup.es-BJc8MmJ3.js} +109 -109
  37. package/dist/_chunks/{VvCheckboxGroup.es-BRRmuO9h.js.map → VvCheckboxGroup.es-BJc8MmJ3.js.map} +1 -1
  38. package/dist/_chunks/{VvCombobox.es-pTM53Z4B.js → VvCombobox.es-ILRHqAye.js} +256 -256
  39. package/dist/_chunks/{VvCombobox.es-pTM53Z4B.js.map → VvCombobox.es-ILRHqAye.js.map} +1 -1
  40. package/dist/_chunks/{VvInputText.es-DO39OSWk.js → VvInputText.es-CDnMeO26.js} +190 -190
  41. package/dist/_chunks/{VvInputText.es-DO39OSWk.js.map → VvInputText.es-CDnMeO26.js.map} +1 -1
  42. package/dist/_chunks/{VvRadio.es-BpQAJbon.js → VvRadio.es-C2p5vvAx.js} +2 -2
  43. package/dist/_chunks/{VvRadio.es-BpQAJbon.js.map → VvRadio.es-C2p5vvAx.js.map} +1 -1
  44. package/dist/_chunks/{VvRadioGroup.es-BSBrmx9w.js → VvRadioGroup.es-6GlWuDjY.js} +10 -10
  45. package/dist/_chunks/{VvRadioGroup.es-BSBrmx9w.js.map → VvRadioGroup.es-6GlWuDjY.js.map} +1 -1
  46. package/dist/_chunks/{VvSelect.es-DALpUK5j.js → VvSelect.es-i4lO9onq.js} +6 -6
  47. package/dist/_chunks/{VvSelect.es-DALpUK5j.js.map → VvSelect.es-i4lO9onq.js.map} +1 -1
  48. package/dist/_chunks/{VvTextarea.es-C9dwYLOG.js → VvTextarea.es-CGpiCS4S.js} +248 -248
  49. package/dist/_chunks/{VvTextarea.es-C9dwYLOG.js.map → VvTextarea.es-CGpiCS4S.js.map} +1 -1
  50. package/dist/_chunks/{dist-DtF6poRc.js → dist-BTnzL-m0.js} +131 -119
  51. package/dist/_chunks/dist-BTnzL-m0.js.map +1 -0
  52. package/dist/_chunks/{index.es-Z3Hu-QIb.js → index.es-CUjDCkXD.js} +2428 -1558
  53. package/dist/_chunks/{index.es-Z3Hu-QIb.js.map → index.es-CUjDCkXD.js.map} +1 -1
  54. package/dist/_chunks/{schemas-Bp3a8tYV.js → schemas-aPiXCaCc.js} +1309 -945
  55. package/dist/_chunks/schemas-aPiXCaCc.js.map +1 -0
  56. package/dist/ai-elements.es.js +4746 -3352
  57. package/dist/ai-elements.es.js.map +1 -1
  58. package/dist-vue/PkChatbot.js +1 -1
  59. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  60. package/dist-vue/PkChatbotFilePreview.js +1 -1
  61. package/dist-vue/PkChatbotInput.js +1 -1
  62. package/dist-vue/PkChatbotMessages.js +1 -1
  63. package/dist-vue/PkChatbotViewChat.js +1 -1
  64. package/dist-vue/PkChatbotViewConversations.js +1 -1
  65. package/dist-vue/PkChatbotViewProfile.js +1 -1
  66. package/dist-vue/_chunks/{Media-Bic_vfSX.js → Media-CXQSoKqt.js} +3 -3
  67. package/dist-vue/_chunks/{Media-Bic_vfSX.js.map → Media-CXQSoKqt.js.map} +1 -1
  68. package/dist-vue/_chunks/PkChatbot-DAzGc7al.js +190 -0
  69. package/dist-vue/_chunks/{PkChatbot-D5_ytfqS.js.map → PkChatbot-DAzGc7al.js.map} +1 -1
  70. package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js → PkChatbotFeedbackForm-DvUzirPP.js} +3 -3
  71. package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js.map → PkChatbotFeedbackForm-DvUzirPP.js.map} +1 -1
  72. package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js → PkChatbotFilePreview-DHzuGtz5.js} +2 -2
  73. package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js.map → PkChatbotFilePreview-DHzuGtz5.js.map} +1 -1
  74. package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js → PkChatbotInput-C5QSmt21.js} +3 -3
  75. package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js.map → PkChatbotInput-C5QSmt21.js.map} +1 -1
  76. package/dist-vue/_chunks/{PkChatbotMessages-CMLqkhmb.js → PkChatbotMessages-dsjB0-26.js} +16 -16
  77. package/dist-vue/_chunks/PkChatbotMessages-dsjB0-26.js.map +1 -0
  78. package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js → PkChatbotViewChat-CjoezIyz.js} +9 -9
  79. package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js.map → PkChatbotViewChat-CjoezIyz.js.map} +1 -1
  80. package/dist-vue/_chunks/PkChatbotViewConversations-DSQu6vY1.js +163 -0
  81. package/dist-vue/_chunks/PkChatbotViewConversations-DSQu6vY1.js.map +1 -0
  82. package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js → PkChatbotViewProfile-BJJiaG9H.js} +2 -2
  83. package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js.map → PkChatbotViewProfile-BJJiaG9H.js.map} +1 -1
  84. package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js → PkRelativeTime-WZ2aPcp_.js} +1 -1
  85. package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js.map → PkRelativeTime-WZ2aPcp_.js.map} +1 -1
  86. package/dist-vue/_chunks/{PkStreamingMarkdown-CtiMH6FD.js → PkStreamingMarkdown-BAhC3uGK.js} +20 -20
  87. package/dist-vue/_chunks/PkStreamingMarkdown-BAhC3uGK.js.map +1 -0
  88. package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js → PkToolShowArtifact-RzrDPcEQ.js} +2 -2
  89. package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js.map → PkToolShowArtifact-RzrDPcEQ.js.map} +1 -1
  90. package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js → PkToolShowContactForm-r_GgO-ZX.js} +4 -4
  91. package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js.map → PkToolShowContactForm-r_GgO-ZX.js.map} +1 -1
  92. package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js → PkToolShowImageGallery-B7Bt6ZGv.js} +2 -2
  93. package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js.map → PkToolShowImageGallery-B7Bt6ZGv.js.map} +1 -1
  94. package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js → PkToolShowLocation-DteWf0Cs.js} +1 -1
  95. package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js.map → PkToolShowLocation-DteWf0Cs.js.map} +1 -1
  96. package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js → PkToolShowMultipleChoice-DZXfWtQp.js} +1 -1
  97. package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js.map → PkToolShowMultipleChoice-DZXfWtQp.js.map} +1 -1
  98. package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js → PkToolShowProductList-CtqWK0x4.js} +2 -2
  99. package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js.map → PkToolShowProductList-CtqWK0x4.js.map} +1 -1
  100. package/dist-vue/_chunks/{PkToolShowSources-D5cBZxwQ.js → PkToolShowSources-DK2DCvU3.js} +6 -5
  101. package/dist-vue/_chunks/PkToolShowSources-DK2DCvU3.js.map +1 -0
  102. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js → PkToolShowSuggestedReply-30m9yWDL.js} +1 -1
  103. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js.map → PkToolShowSuggestedReply-30m9yWDL.js.map} +1 -1
  104. package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js → PkToolShowWebPages-DZIdrdWs.js} +2 -2
  105. package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js.map → PkToolShowWebPages-DZIdrdWs.js.map} +1 -1
  106. package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js → PkUrl-CGbSBfuP.js} +1 -1
  107. package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js.map → PkUrl-CGbSBfuP.js.map} +1 -1
  108. package/dist-vue/_chunks/{ZodError-Ca0wCsGp.js → ZodError-C_est8SY.js} +2 -2
  109. package/dist-vue/_chunks/{ZodError-Ca0wCsGp.js.map → ZodError-C_est8SY.js.map} +1 -1
  110. package/dist-vue/_chunks/{createChatbotApiClient-2ynLWELM.js → createChatbotApiClient-f86KwRcq.js} +141 -119
  111. package/dist-vue/_chunks/createChatbotApiClient-f86KwRcq.js.map +1 -0
  112. package/dist-vue/_chunks/{dist-Bs6dYy7x.js → dist-21vPGg1O.js} +3 -3
  113. package/dist-vue/_chunks/{dist-Bs6dYy7x.js.map → dist-21vPGg1O.js.map} +1 -1
  114. package/dist-vue/_chunks/{dist-Bb1zRSg4.js → dist-BGXTbYew2.js} +4 -4
  115. package/dist-vue/_chunks/dist-BGXTbYew2.js.map +1 -0
  116. package/dist-vue/_chunks/{dist-BrlD3co0.js → dist-BL9cumqH.js} +2 -2
  117. package/dist-vue/_chunks/{dist-BrlD3co0.js.map → dist-BL9cumqH.js.map} +1 -1
  118. package/dist-vue/_chunks/{dist-B9Pw4_a5.js → dist-BU-VgsYM.js} +3 -3
  119. package/dist-vue/_chunks/{dist-B9Pw4_a5.js.map → dist-BU-VgsYM.js.map} +1 -1
  120. package/dist-vue/_chunks/{dist-D-tjAaHK.js → dist-BU5m1pTR.js} +3 -3
  121. package/dist-vue/_chunks/{dist-D-tjAaHK.js.map → dist-BU5m1pTR.js.map} +1 -1
  122. package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js → dist-BbP2I_Or.js} +2 -2
  123. package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js.map → dist-BbP2I_Or.js.map} +1 -1
  124. package/dist-vue/_chunks/{dist-Cvsv0YEw.js → dist-BvmTki6w.js} +3 -3
  125. package/dist-vue/_chunks/{dist-Cvsv0YEw.js.map → dist-BvmTki6w.js.map} +1 -1
  126. package/dist-vue/_chunks/{dist-QzbLuLIV.js → dist-C3dPzENq.js} +3 -3
  127. package/dist-vue/_chunks/{dist-QzbLuLIV.js.map → dist-C3dPzENq.js.map} +1 -1
  128. package/dist-vue/_chunks/{dist-BMWOJZqC.js → dist-C6AWJq9a.js} +2 -2
  129. package/dist-vue/_chunks/{dist-BMWOJZqC.js.map → dist-C6AWJq9a.js.map} +1 -1
  130. package/dist-vue/_chunks/{dist-BQCdUoYc.js → dist-CGNGkvWf.js} +4 -4
  131. package/dist-vue/_chunks/{dist-BQCdUoYc.js.map → dist-CGNGkvWf.js.map} +1 -1
  132. package/dist-vue/_chunks/{dist-JOgG1zY3.js → dist-CIN_Avbm.js} +1 -1
  133. package/dist-vue/_chunks/{dist-JOgG1zY3.js.map → dist-CIN_Avbm.js.map} +1 -1
  134. package/dist-vue/_chunks/{dist-NKG-Bt-Q.js → dist-CePpgudw.js} +3 -3
  135. package/dist-vue/_chunks/{dist-NKG-Bt-Q.js.map → dist-CePpgudw.js.map} +1 -1
  136. package/dist-vue/_chunks/{dist-C13mHkC-.js → dist-CtMo7ig_.js} +2 -2
  137. package/dist-vue/_chunks/{dist-C13mHkC-.js.map → dist-CtMo7ig_.js.map} +1 -1
  138. package/dist-vue/_chunks/{dist-DucfoJQX.js → dist-CwG072cD.js} +3 -3
  139. package/dist-vue/_chunks/{dist-DucfoJQX.js.map → dist-CwG072cD.js.map} +1 -1
  140. package/dist-vue/_chunks/{dist-_4yQQX_L.js → dist-DFvVVU0-.js} +2 -2
  141. package/dist-vue/_chunks/{dist-_4yQQX_L.js.map → dist-DFvVVU0-.js.map} +1 -1
  142. package/dist-vue/_chunks/{dist-C_tRbeXQ.js → dist-DGz57kzK.js} +2 -2
  143. package/dist-vue/_chunks/{dist-C_tRbeXQ.js.map → dist-DGz57kzK.js.map} +1 -1
  144. package/dist-vue/_chunks/{dist-C2tC3pDh.js → dist-DT30Xa-D.js} +2 -2
  145. package/dist-vue/_chunks/{dist-C2tC3pDh.js.map → dist-DT30Xa-D.js.map} +1 -1
  146. package/dist-vue/_chunks/{dist-DNn7FqmI.js → dist-DoRhRpjL.js} +2 -2
  147. package/dist-vue/_chunks/{dist-DNn7FqmI.js.map → dist-DoRhRpjL.js.map} +1 -1
  148. package/dist-vue/_chunks/{dist-CQmgfFIN.js → dist-GnhLE5-A.js} +4 -4
  149. package/dist-vue/_chunks/{dist-CQmgfFIN.js.map → dist-GnhLE5-A.js.map} +1 -1
  150. package/dist-vue/_chunks/{dist-1ToEz3Zq.js → dist-QzWOn2Kx.js} +3 -3
  151. package/dist-vue/_chunks/{dist-1ToEz3Zq.js.map → dist-QzWOn2Kx.js.map} +1 -1
  152. package/dist-vue/_chunks/{dist-e9UFeG14.js → dist-uYEYs0EJ.js} +2 -2
  153. package/dist-vue/_chunks/{dist-e9UFeG14.js.map → dist-uYEYs0EJ.js.map} +1 -1
  154. package/dist-vue/_chunks/{dist-BpT8aqtS.js → dist-ukeBjdwq.js} +4 -4
  155. package/dist-vue/_chunks/{dist-BpT8aqtS.js.map → dist-ukeBjdwq.js.map} +1 -1
  156. package/dist-vue/_chunks/{dist-BHTSdHeX.js → dist-wLB8N32T.js} +3 -3
  157. package/dist-vue/_chunks/{dist-BHTSdHeX.js.map → dist-wLB8N32T.js.map} +1 -1
  158. package/dist-vue/_chunks/{index.es-BnOT0fHY.js → index.es-_14zrNZB.js} +4 -4
  159. package/dist-vue/_chunks/{index.es-BnOT0fHY.js.map → index.es-_14zrNZB.js.map} +1 -1
  160. package/dist-vue/_chunks/{schemas-sa2dDEGb.js → schemas-Clx4oKCB.js} +1309 -945
  161. package/dist-vue/_chunks/schemas-Clx4oKCB.js.map +1 -0
  162. package/dist-vue/_chunks/{useChatbotStore-Im8Xjwte.js → useChatbotStore-CJlkoNn7.js} +756 -679
  163. package/dist-vue/_chunks/useChatbotStore-CJlkoNn7.js.map +1 -0
  164. package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js → useLightbox-1sB7fmFb.js} +1 -1
  165. package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js.map → useLightbox-1sB7fmFb.js.map} +1 -1
  166. package/dist-vue/_chunks/{utils-DO7emdsn.js → utils-BegUBK7s.js} +1 -1
  167. package/dist-vue/_chunks/{utils-DO7emdsn.js.map → utils-BegUBK7s.js.map} +1 -1
  168. package/dist-vue/api.js +1 -1
  169. package/dist-vue/apps/web-component/src/composables/useChatbotAgent.d.ts +9 -7
  170. package/dist-vue/apps/web-component/src/composables/useChatbotAuth.d.ts +8 -8
  171. package/dist-vue/apps/web-component/src/lib.d.ts +29 -0
  172. package/dist-vue/apps/web-component/src/main.d.ts +0 -0
  173. package/dist-vue/apps/web-component/src/modules/applicationInsights.d.ts +38 -0
  174. package/dist-vue/composables.js +3 -3
  175. package/dist-vue/index.js +3680 -3664
  176. package/dist-vue/index.js.map +1 -1
  177. package/dist-vue/locales.js +56 -20
  178. package/dist-vue/packages/auth/src/add-member-to-organization.d.ts +5 -0
  179. package/dist-vue/packages/auth/src/anonymous-reauth-plugin.d.ts +11 -0
  180. package/dist-vue/packages/auth/src/external-auth-plugin.d.ts +2 -0
  181. package/dist-vue/packages/auth/src/index.d.ts +3477 -8
  182. package/dist-vue/packages/auth/src/media-helpers.d.ts +13 -0
  183. package/dist-vue/packages/auth/src/organization-auto-join.d.ts +1 -0
  184. package/dist-vue/packages/components/src/PkEditorMarkdown.d.ts +1 -1
  185. package/dist-vue/packages/components/src/PkEditorPrompt.d.ts +2 -0
  186. package/dist-vue/packages/components/src/PkEditorRepeater.d.ts +2 -2
  187. package/dist-vue/packages/components/src/PkEditorWyswyg.d.ts +1 -1
  188. package/dist-vue/packages/components/src/PkFieldset.d.ts +3 -3
  189. package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +6 -3
  190. package/dist-vue/packages/components/src/chat/PkEditorChannels.d.ts +16 -0
  191. package/dist-vue/packages/components/src/composables/index.d.ts +3 -0
  192. package/dist-vue/packages/components/src/composables/useChatbotError.d.ts +11 -11
  193. package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +2 -0
  194. package/dist-vue/packages/composable/src/constants.d.ts +5 -0
  195. package/dist-vue/packages/composable/src/useDialog.d.ts +3 -3
  196. package/dist-vue/packages/composable/src/useSettingsStore.d.ts +4 -5
  197. package/dist-vue/packages/models/src/schema/Agent.d.ts +37 -27
  198. package/dist-vue/packages/models/src/schema/Chat.d.ts +6 -0
  199. package/dist-vue/packages/models/src/schema/Document.d.ts +2 -0
  200. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +8 -6
  201. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +13 -11
  202. package/dist-vue/style.css +1 -1
  203. package/package.json +3 -3
  204. package/dist/_chunks/PkStreamingMarkdown-orhL2kzD.js.map +0 -1
  205. package/dist/_chunks/PkToolShowContactForm-SmOSbCsp.js +0 -1103
  206. package/dist/_chunks/PkToolShowContactForm-SmOSbCsp.js.map +0 -1
  207. package/dist/_chunks/PkToolShowSources-B2rf94fU.js.map +0 -1
  208. package/dist/_chunks/dist-DtF6poRc.js.map +0 -1
  209. package/dist/_chunks/schemas-Bp3a8tYV.js.map +0 -1
  210. package/dist-vue/_chunks/PkChatbot-D5_ytfqS.js +0 -190
  211. package/dist-vue/_chunks/PkChatbotMessages-CMLqkhmb.js.map +0 -1
  212. package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js +0 -40
  213. package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js.map +0 -1
  214. package/dist-vue/_chunks/PkStreamingMarkdown-CtiMH6FD.js.map +0 -1
  215. package/dist-vue/_chunks/PkToolShowSources-D5cBZxwQ.js.map +0 -1
  216. package/dist-vue/_chunks/createChatbotApiClient-2ynLWELM.js.map +0 -1
  217. package/dist-vue/_chunks/dist-Bb1zRSg4.js.map +0 -1
  218. package/dist-vue/_chunks/schemas-sa2dDEGb.js.map +0 -1
  219. package/dist-vue/_chunks/useChatbotStore-Im8Xjwte.js.map +0 -1
  220. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PkChatbotViewConversations-DSQu6vY1.js","names":[],"sources":["../../../../packages/composable/src/useDialog.ts","../../../../packages/composable/src/useDialogConfirm.ts","../../../../packages/components/src/chat/PkChatbotViewConversations.vue","../../../../packages/components/src/chat/PkChatbotViewConversations.vue"],"sourcesContent":["import { VvDialog } from '@volverjs/ui-vue/components'\nimport { defineComponent, h, nextTick, ref, type VNode } from 'vue'\n\ntype DialogProps = {\n title?: string\n transition?: string\n size?: 'small' | 'standard' | 'fullscreen'\n role?: 'alert' | 'alertdialog'\n keepOpen?: boolean\n}\n\ntype DialogSlots = {\n footer?: () => VNode | string\n header?: () => VNode | string\n default?: () => VNode | string | VNode[] | string[]\n}\n\nconst isOpen = ref(false)\nconst title = ref<DialogProps['title']>()\nconst transition = ref<DialogProps['transition']>()\nconst size = ref<DialogProps['size']>()\nconst keepOpen = ref<DialogProps['keepOpen']>(false)\nconst role = ref<DialogProps['role']>()\nconst slots = ref<DialogSlots>()\n\nexport const useDialog = () => {\n const onUpdateModelValue = (value: boolean) => {\n isOpen.value = value\n }\n\n const onAfterLeave = () => {\n title.value = undefined\n transition.value = undefined\n size.value = undefined\n keepOpen.value = undefined\n role.value = undefined\n slots.value = undefined\n }\n\n const PkGlobalDialog = defineComponent({\n name: 'PkGlobalDialog',\n render: () =>\n h(\n VvDialog,\n {\n modelValue: isOpen.value,\n title: title.value,\n transition: transition.value,\n size: size.value,\n keepOpen: keepOpen.value,\n role: role.value,\n 'onUpdate:modelValue': onUpdateModelValue,\n onAfterLeave: onAfterLeave,\n },\n slots.value,\n ),\n })\n\n const openDialog = (newProps: DialogProps, newSlots?: DialogSlots) => {\n title.value = newProps?.title\n transition.value = newProps?.transition\n size.value = newProps?.size\n keepOpen.value = newProps?.keepOpen ?? false\n role.value = newProps?.role\n slots.value = newSlots\n nextTick(() => {\n isOpen.value = true\n })\n return isOpen\n }\n\n return { PkGlobalDialog, openDialog, isOpen }\n}\n","import { h, ref, VNode } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n VvButton,\n VvButtonGroup,\n VvInputText,\n} from '@volverjs/ui-vue/components'\nimport { useDialog } from './useDialog'\n\nexport const useDialogConfirm = () => {\n const { openDialog } = useDialog()\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const openDialogConfirm = ({\n emitReject = false,\n confirmLabel,\n cancelLabel,\n questionLabel,\n onlyConfirm = false,\n passphrase,\n passphraseLabel,\n passphraseHint,\n }: {\n emitReject?: boolean\n confirmLabel?: string\n cancelLabel?: string\n questionLabel?: string\n onlyConfirm?: boolean\n passphrase?: string\n passphraseLabel?: string\n passphraseHint?: string\n } = {}) => {\n return new Promise<boolean>((resolve, reject) => {\n const passphraseText = ref<string>()\n const isOpen = openDialog(\n {\n role: 'alertdialog',\n size: 'small',\n keepOpen: true,\n },\n {\n default: () =>\n h('div', [\n h(\n 'div',\n { class: 'mb-sm' },\n questionLabel ?? $t('message.confirm'),\n ),\n passphrase\n ? h(VvInputText, {\n modelValue: passphraseText.value,\n 'onUpdate:modelValue': (\n value: string,\n ) => {\n passphraseText.value = value\n },\n type: 'text',\n name: 'passphrase',\n class: 'mb-0',\n floating: true,\n label:\n passphraseLabel ??\n $t('label.passphrase'),\n hintLabel:\n passphraseHint ??\n $t('hint.passphrase', { passphrase }),\n })\n : undefined,\n ]),\n footer: () =>\n h(VvButtonGroup, () => {\n const toReturn: VNode[] = []\n if (!onlyConfirm) {\n toReturn.push(\n h(VvButton, {\n label:\n cancelLabel ?? $t('action.cancel'),\n modifiers: 'ghost',\n onClick: () => {\n if (emitReject) {\n reject()\n }\n resolve(false)\n isOpen.value = false\n },\n }),\n )\n }\n toReturn.push(\n h(VvButton, {\n label: confirmLabel ?? $t('action.proceed'),\n disabled: passphrase\n ? passphrase !== passphraseText.value\n : false,\n onClick: () => {\n resolve(true)\n isOpen.value = false\n },\n }),\n )\n return toReturn\n }),\n },\n )\n })\n }\n\n return { openDialogConfirm }\n}\n","<script setup lang=\"ts\">\n import { ref, nextTick } from 'vue'\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import type { Chat as Conversation, UIChatMessage } from 'models'\n import { stripMarkdown, getTextPart } from 'utils'\n import { useChatbotStore, useDialogConfirm } from 'composables'\n import PkRelativeTime from '../PkRelativeTime.vue'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { conversations, localChatId } = storeToRefs(store)\n const { navigate, startNewChat, renameChatTitle, deleteChat } = store\n\n const editingId = ref<string | null>(null)\n const editingTitle = ref('')\n const renameInputEl = ref<HTMLInputElement[]>()\n\n const openConversation = (id: string) => {\n if (editingId.value) {\n return\n }\n localChatId.value = id\n navigate('chat')\n }\n\n const isCurrentConversation = (conversation: Conversation) => {\n return localChatId.value === conversation.id\n }\n\n const getLastMessage = (\n messages: UIChatMessage[],\n role: 'user' | 'assistant',\n ) => {\n return stripMarkdown(\n getTextPart(messages.filter((m) => m.role === role).slice(-1)[0]) ||\n '',\n )\n }\n\n const startEdit = (conversation: Conversation) => {\n editingId.value = conversation.id\n editingTitle.value =\n stripMarkdown(conversation.title) ||\n getLastMessage(conversation.messages, 'assistant') ||\n ''\n nextTick(() => {\n if (renameInputEl.value?.[0]) {\n renameInputEl.value?.[0]?.focus()\n renameInputEl.value?.[0]?.select()\n }\n })\n }\n\n const confirmEdit = async (id: string) => {\n const trimmed = editingTitle.value.trim()\n editingId.value = null\n if (trimmed && trimmed.length <= 255) {\n try {\n await renameChatTitle(id, trimmed)\n } catch {\n // Revert optimistically: reload will pick up server state\n }\n }\n }\n\n const cancelEdit = () => {\n editingId.value = null\n }\n\n const { openDialogConfirm } = useDialogConfirm()\n const handleDelete = async (id: string) => {\n try {\n const proceed = await openDialogConfirm()\n if (!proceed) {\n return\n }\n await deleteChat(id)\n } catch {\n // Silently fail: next load will reconcile\n }\n }\n</script>\n\n<template>\n <div\n class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-sm relative\">\n <div\n v-if=\"conversations.length === 0\"\n class=\"flex justify-center p-lg text-word-3 text-sm\">\n {{ $t('message.noConversations') }}\n </div>\n <ul\n v-else\n class=\"flex flex-col min-h-0 gap-8 overflow-auto px-8 pb-8 light-scrollbar pb-64\">\n <li v-for=\"conversation in conversations\" :key=\"conversation.id\">\n <button\n type=\"button\"\n class=\"rounded-md border p-10 cursor-pointer block w-full transition-colors text-14 leading-relaxed border-b border-surface-3 hover:border-surface-5 hover:bg-surface-1 focus-within:border-word\"\n :class=\"{\n 'bg-surface-2 border-surface-5':\n isCurrentConversation(conversation),\n }\"\n @click=\"openConversation(conversation.id)\">\n <div class=\"flex items-center gap-8\">\n <template v-if=\"editingId === conversation.id\">\n <input\n ref=\"renameInputEl\"\n v-model=\"editingTitle\"\n class=\"flex-1 placeholder:text-word-4 leading-none\"\n :placeholder=\"$t('placeholder.insert')\"\n :maxlength=\"255\"\n @click.stop\n @keydown.enter.prevent=\"\n confirmEdit(conversation.id)\n \"\n @keydown.esc.prevent=\"cancelEdit()\" />\n <VvButton\n icon=\"ri:save-line\"\n :label=\"$t('action.save')\"\n modifiers=\"action-small\"\n @click.stop=\"confirmEdit(conversation.id)\" />\n </template>\n <template v-else>\n <strong class=\"font-bold truncate block flex-1\">\n {{\n stripMarkdown(conversation.title) ||\n getLastMessage(\n conversation.messages,\n 'assistant',\n )\n }}\n </strong>\n <PkRelativeTime\n class=\"text-word-4 text-smaller shrink-0\"\n :date=\"conversation.lastMessageAt\" />\n <div @click.stop>\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:more-2-fill\"\n :title=\"$t('action.moreActions')\"\n modifiers=\"action-quiet-small\" />\n <template #items>\n <VvDropdownAction\n @click=\"startEdit(conversation)\">\n <VvIcon name=\"ri:pencil-line\" />\n {{ $t('action.renameChat') }}\n </VvDropdownAction>\n <VvDropdownAction\n @click=\"\n handleDelete(conversation.id)\n \">\n <VvIcon name=\"ri:delete-bin-line\" />\n {{ $t('action.delete') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </div>\n </template>\n </div>\n <span\n v-if=\"editingId !== conversation.id\"\n class=\"text-12 text-word-4 line-clamp-2\">\n {{\n stripMarkdown(conversation.summary) ||\n getLastMessage(conversation.messages, 'user')\n }}\n </span>\n </button>\n </li>\n </ul>\n <div\n class=\"absolute bottom-0 left-0 right-0 flex justify-center px-16 pb-16 pt-32 bg-gradient-to-t\">\n <VvButton\n class=\"text-14\"\n modifiers=\"rounded\"\n :label=\"$t('action.startNewChat')\"\n @click.stop=\"startNewChat()\" />\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { ref, nextTick } from 'vue'\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import type { Chat as Conversation, UIChatMessage } from 'models'\n import { stripMarkdown, getTextPart } from 'utils'\n import { useChatbotStore, useDialogConfirm } from 'composables'\n import PkRelativeTime from '../PkRelativeTime.vue'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { conversations, localChatId } = storeToRefs(store)\n const { navigate, startNewChat, renameChatTitle, deleteChat } = store\n\n const editingId = ref<string | null>(null)\n const editingTitle = ref('')\n const renameInputEl = ref<HTMLInputElement[]>()\n\n const openConversation = (id: string) => {\n if (editingId.value) {\n return\n }\n localChatId.value = id\n navigate('chat')\n }\n\n const isCurrentConversation = (conversation: Conversation) => {\n return localChatId.value === conversation.id\n }\n\n const getLastMessage = (\n messages: UIChatMessage[],\n role: 'user' | 'assistant',\n ) => {\n return stripMarkdown(\n getTextPart(messages.filter((m) => m.role === role).slice(-1)[0]) ||\n '',\n )\n }\n\n const startEdit = (conversation: Conversation) => {\n editingId.value = conversation.id\n editingTitle.value =\n stripMarkdown(conversation.title) ||\n getLastMessage(conversation.messages, 'assistant') ||\n ''\n nextTick(() => {\n if (renameInputEl.value?.[0]) {\n renameInputEl.value?.[0]?.focus()\n renameInputEl.value?.[0]?.select()\n }\n })\n }\n\n const confirmEdit = async (id: string) => {\n const trimmed = editingTitle.value.trim()\n editingId.value = null\n if (trimmed && trimmed.length <= 255) {\n try {\n await renameChatTitle(id, trimmed)\n } catch {\n // Revert optimistically: reload will pick up server state\n }\n }\n }\n\n const cancelEdit = () => {\n editingId.value = null\n }\n\n const { openDialogConfirm } = useDialogConfirm()\n const handleDelete = async (id: string) => {\n try {\n const proceed = await openDialogConfirm()\n if (!proceed) {\n return\n }\n await deleteChat(id)\n } catch {\n // Silently fail: next load will reconcile\n }\n }\n</script>\n\n<template>\n <div\n class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-sm relative\">\n <div\n v-if=\"conversations.length === 0\"\n class=\"flex justify-center p-lg text-word-3 text-sm\">\n {{ $t('message.noConversations') }}\n </div>\n <ul\n v-else\n class=\"flex flex-col min-h-0 gap-8 overflow-auto px-8 pb-8 light-scrollbar pb-64\">\n <li v-for=\"conversation in conversations\" :key=\"conversation.id\">\n <button\n type=\"button\"\n class=\"rounded-md border p-10 cursor-pointer block w-full transition-colors text-14 leading-relaxed border-b border-surface-3 hover:border-surface-5 hover:bg-surface-1 focus-within:border-word\"\n :class=\"{\n 'bg-surface-2 border-surface-5':\n isCurrentConversation(conversation),\n }\"\n @click=\"openConversation(conversation.id)\">\n <div class=\"flex items-center gap-8\">\n <template v-if=\"editingId === conversation.id\">\n <input\n ref=\"renameInputEl\"\n v-model=\"editingTitle\"\n class=\"flex-1 placeholder:text-word-4 leading-none\"\n :placeholder=\"$t('placeholder.insert')\"\n :maxlength=\"255\"\n @click.stop\n @keydown.enter.prevent=\"\n confirmEdit(conversation.id)\n \"\n @keydown.esc.prevent=\"cancelEdit()\" />\n <VvButton\n icon=\"ri:save-line\"\n :label=\"$t('action.save')\"\n modifiers=\"action-small\"\n @click.stop=\"confirmEdit(conversation.id)\" />\n </template>\n <template v-else>\n <strong class=\"font-bold truncate block flex-1\">\n {{\n stripMarkdown(conversation.title) ||\n getLastMessage(\n conversation.messages,\n 'assistant',\n )\n }}\n </strong>\n <PkRelativeTime\n class=\"text-word-4 text-smaller shrink-0\"\n :date=\"conversation.lastMessageAt\" />\n <div @click.stop>\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:more-2-fill\"\n :title=\"$t('action.moreActions')\"\n modifiers=\"action-quiet-small\" />\n <template #items>\n <VvDropdownAction\n @click=\"startEdit(conversation)\">\n <VvIcon name=\"ri:pencil-line\" />\n {{ $t('action.renameChat') }}\n </VvDropdownAction>\n <VvDropdownAction\n @click=\"\n handleDelete(conversation.id)\n \">\n <VvIcon name=\"ri:delete-bin-line\" />\n {{ $t('action.delete') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </div>\n </template>\n </div>\n <span\n v-if=\"editingId !== conversation.id\"\n class=\"text-12 text-word-4 line-clamp-2\">\n {{\n stripMarkdown(conversation.summary) ||\n getLastMessage(conversation.messages, 'user')\n }}\n </span>\n </button>\n </li>\n </ul>\n <div\n class=\"absolute bottom-0 left-0 right-0 flex justify-center px-16 pb-16 pt-32 bg-gradient-to-t\">\n <VvButton\n class=\"text-14\"\n modifiers=\"rounded\"\n :label=\"$t('action.startNewChat')\"\n @click.stop=\"startNewChat()\" />\n </div>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./useChatbotStore-Im8Xjwte.js";
1
+ import { t as e } from "./useChatbotStore-CJlkoNn7.js";
2
2
  import { createBlock as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createSlots as a, createTextVNode as o, createVNode as s, defineComponent as c, openBlock as l, renderSlot as u, toDisplayString as d, unref as f, withCtx as p } from "vue";
3
3
  import { VvAvatar as m } from "@volverjs/ui-vue/components";
4
4
  import { useI18n as h } from "vue-i18n";
@@ -49,4 +49,4 @@ var _ = /* @__PURE__ */ c({
49
49
  //#endregion
50
50
  export { _ as n, S as t };
51
51
 
52
- //# sourceMappingURL=PkChatbotViewProfile-CXmmVXrD.js.map
52
+ //# sourceMappingURL=PkChatbotViewProfile-BJJiaG9H.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkChatbotViewProfile-CXmmVXrD.js","names":[],"sources":["../../../../packages/components/src/chat/PkAvatar.vue","../../../../packages/components/src/chat/PkAvatar.vue","../../../../packages/components/src/chat/PkChatbotViewProfile.vue","../../../../packages/components/src/chat/PkChatbotViewProfile.vue"],"sourcesContent":["<script setup lang=\"ts\">\n defineProps<{\n name?: string\n imgSrc?: string | null\n modifiers?: string\n }>()\n const getInitials = (name?: string) => {\n if (!name) {\n return ''\n }\n return name\n .split(' ')\n .slice(0, 2)\n .map((n) => n.charAt(0).toUpperCase())\n .join('')\n }\n</script>\n\n<template>\n <VvAvatar\n :img-src=\"imgSrc ? imgSrc : undefined\"\n :modifiers=\"`rounded ${!imgSrc ? modifiers : 'transparent'}`\">\n <template v-if=\"name && !imgSrc\" #default>\n {{ getInitials(name) }}\n </template>\n </VvAvatar>\n</template>\n","<script setup lang=\"ts\">\n defineProps<{\n name?: string\n imgSrc?: string | null\n modifiers?: string\n }>()\n const getInitials = (name?: string) => {\n if (!name) {\n return ''\n }\n return name\n .split(' ')\n .slice(0, 2)\n .map((n) => n.charAt(0).toUpperCase())\n .join('')\n }\n</script>\n\n<template>\n <VvAvatar\n :img-src=\"imgSrc ? imgSrc : undefined\"\n :modifiers=\"`rounded ${!imgSrc ? modifiers : 'transparent'}`\">\n <template v-if=\"name && !imgSrc\" #default>\n {{ getInitials(name) }}\n </template>\n </VvAvatar>\n</template>\n","<script setup lang=\"ts\">\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import PkAvatar from './PkAvatar.vue'\n import { useChatbotStore } from 'composables'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { name, agentInterface } = storeToRefs(store)\n</script>\n\n<template>\n <div class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-md\">\n <p class=\"text-sm font-semibold text-word-2\">\n {{ $t('label.profile') }}\n </p>\n\n <div class=\"flex flex-col items-center gap-sm p-lg\">\n <PkAvatar\n modifiers=\"surface ring\"\n class=\"w-48 h-48\"\n :name=\"name\"\n :img-src=\"agentInterface?.logo\" />\n <strong v-if=\"name\" class=\"text-base font-semibold text-word-1\">\n {{ name }}\n </strong>\n </div>\n\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import PkAvatar from './PkAvatar.vue'\n import { useChatbotStore } from 'composables'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { name, agentInterface } = storeToRefs(store)\n</script>\n\n<template>\n <div class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-md\">\n <p class=\"text-sm font-semibold text-word-2\">\n {{ $t('label.profile') }}\n </p>\n\n <div class=\"flex flex-col items-center gap-sm p-lg\">\n <PkAvatar\n modifiers=\"surface ring\"\n class=\"w-48 h-48\"\n :name=\"name\"\n :img-src=\"agentInterface?.logo\" />\n <strong v-if=\"name\" class=\"text-base font-semibold text-word-1\">\n {{ name }}\n </strong>\n </div>\n\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;EAMI,IAAM,KAAe,MACZ,IAGE,EACF,MAAM,IAAG,CACT,MAAM,GAAG,EAAC,CACV,KAAK,MAAM,EAAE,OAAO,EAAE,CAAC,aAAa,CAAA,CACpC,KAAK,GAAE,GAND;;;eAWf,EAMW,GAAA;IALN,WAAS,EAAA,SAAS,EAAA,SAAS,KAAA;IAC3B,WAAS,WAAc,EAAA,SAAkB,gBAAT,EAAA;mBACjB,EAAA,QAAI,CAAK,EAAA,SAAA;UAAS;gBACP,CAAA,EAAA,EAApB,EAAY,EAAA,KAAI,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;EEjB3B,IAAM,IAAQ,GAER,EAAE,GAAG,MAAO,EAAQ,EAAE,UAAU,UAAU,CAAA,EAG1C,EAAE,SAAM,sBAAmB,EADnB,EAAgB,EAAM,QACS,CAAK;yBAIlD,EAiBM,OAjBN,GAiBM;GAhBF,EAEI,KAFJ,GAEI,EADG,EAAA,EAAE,CAAA,gBAAA,CAAA,EAAA,EAAA;GAGT,EASM,OATN,GASM,CARF,EAIsC,GAAA;IAHlC,WAAU;IACV,OAAM;IACL,MAAM,EAAA,EAAI;IACV,WAAS,EAAA,EAAc,EAAE;qCAChB,EAAA,EAAI,IAAA,GAAA,EAAlB,EAES,UAFT,GAES,EADF,EAAA,EAAI,CAAA,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA;GAIf,EAAQ,EAAA,QAAA,UAAA"}
1
+ {"version":3,"file":"PkChatbotViewProfile-BJJiaG9H.js","names":[],"sources":["../../../../packages/components/src/chat/PkAvatar.vue","../../../../packages/components/src/chat/PkAvatar.vue","../../../../packages/components/src/chat/PkChatbotViewProfile.vue","../../../../packages/components/src/chat/PkChatbotViewProfile.vue"],"sourcesContent":["<script setup lang=\"ts\">\n defineProps<{\n name?: string\n imgSrc?: string | null\n modifiers?: string\n }>()\n const getInitials = (name?: string) => {\n if (!name) {\n return ''\n }\n return name\n .split(' ')\n .slice(0, 2)\n .map((n) => n.charAt(0).toUpperCase())\n .join('')\n }\n</script>\n\n<template>\n <VvAvatar\n :img-src=\"imgSrc ? imgSrc : undefined\"\n :modifiers=\"`rounded ${!imgSrc ? modifiers : 'transparent'}`\">\n <template v-if=\"name && !imgSrc\" #default>\n {{ getInitials(name) }}\n </template>\n </VvAvatar>\n</template>\n","<script setup lang=\"ts\">\n defineProps<{\n name?: string\n imgSrc?: string | null\n modifiers?: string\n }>()\n const getInitials = (name?: string) => {\n if (!name) {\n return ''\n }\n return name\n .split(' ')\n .slice(0, 2)\n .map((n) => n.charAt(0).toUpperCase())\n .join('')\n }\n</script>\n\n<template>\n <VvAvatar\n :img-src=\"imgSrc ? imgSrc : undefined\"\n :modifiers=\"`rounded ${!imgSrc ? modifiers : 'transparent'}`\">\n <template v-if=\"name && !imgSrc\" #default>\n {{ getInitials(name) }}\n </template>\n </VvAvatar>\n</template>\n","<script setup lang=\"ts\">\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import PkAvatar from './PkAvatar.vue'\n import { useChatbotStore } from 'composables'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { name, agentInterface } = storeToRefs(store)\n</script>\n\n<template>\n <div class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-md\">\n <p class=\"text-sm font-semibold text-word-2\">\n {{ $t('label.profile') }}\n </p>\n\n <div class=\"flex flex-col items-center gap-sm p-lg\">\n <PkAvatar\n modifiers=\"surface ring\"\n class=\"w-48 h-48\"\n :name=\"name\"\n :img-src=\"agentInterface?.logo\" />\n <strong v-if=\"name\" class=\"text-base font-semibold text-word-1\">\n {{ name }}\n </strong>\n </div>\n\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import PkAvatar from './PkAvatar.vue'\n import { useChatbotStore } from 'composables'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { name, agentInterface } = storeToRefs(store)\n</script>\n\n<template>\n <div class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-md\">\n <p class=\"text-sm font-semibold text-word-2\">\n {{ $t('label.profile') }}\n </p>\n\n <div class=\"flex flex-col items-center gap-sm p-lg\">\n <PkAvatar\n modifiers=\"surface ring\"\n class=\"w-48 h-48\"\n :name=\"name\"\n :img-src=\"agentInterface?.logo\" />\n <strong v-if=\"name\" class=\"text-base font-semibold text-word-1\">\n {{ name }}\n </strong>\n </div>\n\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;EAMI,IAAM,KAAe,MACZ,IAGE,EACF,MAAM,IAAG,CACT,MAAM,GAAG,EAAC,CACV,KAAK,MAAM,EAAE,OAAO,EAAE,CAAC,aAAa,CAAA,CACpC,KAAK,GAAE,GAND;;;eAWf,EAMW,GAAA;IALN,WAAS,EAAA,SAAS,EAAA,SAAS,KAAA;IAC3B,WAAS,WAAc,EAAA,SAAkB,gBAAT,EAAA;mBACjB,EAAA,QAAI,CAAK,EAAA,SAAA;UAAS;gBACP,CAAA,EAAA,EAApB,EAAY,EAAA,KAAI,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;EEjB3B,IAAM,IAAQ,GAER,EAAE,GAAG,MAAO,EAAQ,EAAE,UAAU,UAAU,CAAA,EAG1C,EAAE,SAAM,sBAAmB,EADnB,EAAgB,EAAM,QACS,CAAK;yBAIlD,EAiBM,OAjBN,GAiBM;GAhBF,EAEI,KAFJ,GAEI,EADG,EAAA,EAAE,CAAA,gBAAA,CAAA,EAAA,EAAA;GAGT,EASM,OATN,GASM,CARF,EAIsC,GAAA;IAHlC,WAAU;IACV,OAAM;IACL,MAAM,EAAA,EAAI;IACV,WAAS,EAAA,EAAc,EAAE;qCAChB,EAAA,EAAI,IAAA,GAAA,EAAlB,EAES,UAFT,GAES,EADF,EAAA,EAAI,CAAA,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA;GAIf,EAAQ,EAAA,QAAA,UAAA"}
@@ -66,4 +66,4 @@ var l = () => {
66
66
  //#endregion
67
67
  export { l as n, d as t };
68
68
 
69
- //# sourceMappingURL=PkRelativeTime-jP41qAJ5.js.map
69
+ //# sourceMappingURL=PkRelativeTime-WZ2aPcp_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkRelativeTime-jP41qAJ5.js","names":[],"sources":["../../../../packages/composable/src/useTime.ts","../../../../packages/components/src/PkRelativeTime.vue","../../../../packages/components/src/PkRelativeTime.vue"],"sourcesContent":["import { useI18n } from 'vue-i18n'\n\nexport const useTime = () => {\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const formatDelta = (delta?: number) => {\n if (!delta)\n return {\n value: 0,\n unit: $t('time.unit.second', 0),\n }\n const seconds = Math.floor(delta / 1000)\n const minutes = Math.floor(delta / (1000 * 60))\n const hours = Math.floor(delta / (1000 * 60 * 60))\n const days = Math.floor(delta / (1000 * 60 * 60 * 24))\n\n if (seconds < 60) {\n return {\n value: seconds,\n unit: $t('time.unit.second', seconds),\n }\n }\n\n if (minutes < 60) {\n return {\n value: minutes,\n unit: $t('time.unit.minute', minutes),\n }\n }\n\n if (hours < 24) {\n return {\n value: hours,\n unit: $t('time.unit.hour', hours),\n }\n }\n\n return {\n value: days,\n unit: $t('time.unit.day', days),\n }\n }\n\n const formatDeltaToString = (delta?: number) => {\n const { value, unit } = formatDelta(delta)\n return `${value} ${unit}`\n }\n\n return {\n formatDelta,\n formatDeltaToString,\n }\n}\n","<script setup lang=\"ts\">\n import { computed, onMounted, onUnmounted, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useTime } from 'composables/src/useTime'\n\n const props = withDefaults(\n defineProps<{\n date: Date | string | number\n endDate?: Date | string | number\n autoUpdate?: boolean\n updateInterval?: number\n }>(),\n {\n endDate: undefined,\n autoUpdate: true,\n updateInterval: 1000,\n },\n )\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const now = ref(Date.now())\n let intervalId: ReturnType<typeof setTimeout> | null = null\n\n const targetDate = computed(() => {\n if (props.date instanceof Date) {\n return props.date.getTime()\n }\n if (typeof props.date === 'string') {\n return new Date(props.date).getTime()\n }\n return props.date\n })\n\n const targetEndDate = computed(() => {\n if (props.endDate === undefined) {\n return null\n }\n if (props.endDate instanceof Date) {\n return props.endDate.getTime()\n }\n if (typeof props.endDate === 'string') {\n return new Date(props.endDate).getTime()\n }\n return props.endDate\n })\n\n const deltaMs = computed(() => {\n const reference = targetEndDate.value ?? now.value\n return targetDate.value - reference\n })\n\n const isInFuture = computed(() => {\n return deltaMs.value > 0\n })\n\n const absoluteDelta = computed(() => {\n return Math.abs(deltaMs.value)\n })\n\n const { formatDelta } = useTime()\n const formattedTime = computed(() => {\n const delta = absoluteDelta.value\n return formatDelta(delta)\n })\n\n const displayText = computed(() => {\n const { value, unit } = formattedTime.value\n\n if (props.endDate) {\n return `${value} ${unit}`\n }\n\n if (isInFuture.value) {\n return `${$t('time.future')} ${value} ${unit}`\n }\n\n return `${value} ${unit} ${$t('time.past')}`\n })\n\n const dateTimeAttribute = computed(() => {\n return new Date(targetDate.value).toISOString()\n })\n\n const getAdaptiveInterval = () => {\n const delta = Math.abs(Date.now() - targetDate.value)\n if (delta < 60_000) {\n return props.updateInterval\n }\n if (delta < 3_600_000) {\n return 60_000\n }\n return 3_600_000\n }\n\n const updateNow = () => {\n now.value = Date.now()\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n }\n\n onMounted(() => {\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n })\n\n onUnmounted(() => {\n if (intervalId) {\n clearTimeout(intervalId)\n }\n })\n</script>\n\n<template>\n <time :datetime=\"dateTimeAttribute\">\n {{ displayText }}\n </time>\n</template>\n","<script setup lang=\"ts\">\n import { computed, onMounted, onUnmounted, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useTime } from 'composables/src/useTime'\n\n const props = withDefaults(\n defineProps<{\n date: Date | string | number\n endDate?: Date | string | number\n autoUpdate?: boolean\n updateInterval?: number\n }>(),\n {\n endDate: undefined,\n autoUpdate: true,\n updateInterval: 1000,\n },\n )\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const now = ref(Date.now())\n let intervalId: ReturnType<typeof setTimeout> | null = null\n\n const targetDate = computed(() => {\n if (props.date instanceof Date) {\n return props.date.getTime()\n }\n if (typeof props.date === 'string') {\n return new Date(props.date).getTime()\n }\n return props.date\n })\n\n const targetEndDate = computed(() => {\n if (props.endDate === undefined) {\n return null\n }\n if (props.endDate instanceof Date) {\n return props.endDate.getTime()\n }\n if (typeof props.endDate === 'string') {\n return new Date(props.endDate).getTime()\n }\n return props.endDate\n })\n\n const deltaMs = computed(() => {\n const reference = targetEndDate.value ?? now.value\n return targetDate.value - reference\n })\n\n const isInFuture = computed(() => {\n return deltaMs.value > 0\n })\n\n const absoluteDelta = computed(() => {\n return Math.abs(deltaMs.value)\n })\n\n const { formatDelta } = useTime()\n const formattedTime = computed(() => {\n const delta = absoluteDelta.value\n return formatDelta(delta)\n })\n\n const displayText = computed(() => {\n const { value, unit } = formattedTime.value\n\n if (props.endDate) {\n return `${value} ${unit}`\n }\n\n if (isInFuture.value) {\n return `${$t('time.future')} ${value} ${unit}`\n }\n\n return `${value} ${unit} ${$t('time.past')}`\n })\n\n const dateTimeAttribute = computed(() => {\n return new Date(targetDate.value).toISOString()\n })\n\n const getAdaptiveInterval = () => {\n const delta = Math.abs(Date.now() - targetDate.value)\n if (delta < 60_000) {\n return props.updateInterval\n }\n if (delta < 3_600_000) {\n return 60_000\n }\n return 3_600_000\n }\n\n const updateNow = () => {\n now.value = Date.now()\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n }\n\n onMounted(() => {\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n })\n\n onUnmounted(() => {\n if (intervalId) {\n clearTimeout(intervalId)\n }\n })\n</script>\n\n<template>\n <time :datetime=\"dateTimeAttribute\">\n {{ displayText }}\n </time>\n</template>\n"],"mappings":";;;AAEA,IAAa,UAAgB;CACzB,IAAM,EAAE,GAAG,MAAO,EAAQ,EACtB,UAAU,UACb,CAAC,EAEI,KAAe,MAAmB;AACpC,MAAI,CAAC,EACD,QAAO;GACH,OAAO;GACP,MAAM,EAAG,oBAAoB,EAAE;GAClC;EACL,IAAM,IAAU,KAAK,MAAM,IAAQ,IAAK,EAClC,IAAU,KAAK,MAAM,KAAS,MAAO,IAAI,EACzC,IAAQ,KAAK,MAAM,KAAS,MAAO,KAAK,IAAI,EAC5C,IAAO,KAAK,MAAM,KAAS,MAAO,KAAK,KAAK,IAAI;AAuBtD,SArBI,IAAU,KACH;GACH,OAAO;GACP,MAAM,EAAG,oBAAoB,EAAQ;GACxC,GAGD,IAAU,KACH;GACH,OAAO;GACP,MAAM,EAAG,oBAAoB,EAAQ;GACxC,GAGD,IAAQ,KACD;GACH,OAAO;GACP,MAAM,EAAG,kBAAkB,EAAM;GACpC,GAGE;GACH,OAAO;GACP,MAAM,EAAG,iBAAiB,EAAK;GAClC;;AAQL,QAAO;EACH;EACA,sBAPyB,MAAmB;GAC5C,IAAM,EAAE,UAAO,YAAS,EAAY,EAAM;AAC1C,UAAO,GAAG,EAAM,GAAG;;EAMtB;;;;;;;;;;;;;EChDD,IAAM,IAAQ,GAcR,EAAE,GAAG,MAAO,EAAQ,EACtB,UAAU,UACb,CAAA,EAEK,IAAM,EAAI,KAAK,KAAK,CAAA,EACtB,IAAmD,MAEjD,IAAa,QACX,EAAM,gBAAgB,OACf,EAAM,KAAK,SAAQ,GAE1B,OAAO,EAAM,QAAS,WACf,IAAI,KAAK,EAAM,KAAK,CAAC,SAAQ,GAEjC,EAAM,KAChB,EAEK,IAAgB,QACd,EAAM,YAAY,KAAA,IACX,OAEP,EAAM,mBAAmB,OAClB,EAAM,QAAQ,SAAQ,GAE7B,OAAO,EAAM,WAAY,WAClB,IAAI,KAAK,EAAM,QAAQ,CAAC,SAAQ,GAEpC,EAAM,QAChB,EAEK,IAAU,QAAe;GAC3B,IAAM,IAAY,EAAc,SAAS,EAAI;AAC7C,UAAO,EAAW,QAAQ;IAC7B,EAEK,IAAa,QACR,EAAQ,QAAQ,EAC1B,EAEK,IAAgB,QACX,KAAK,IAAI,EAAQ,MAAK,CAChC,EAEK,EAAE,mBAAgB,GAAQ,EAC1B,IAAgB,QAAe;GACjC,IAAM,IAAQ,EAAc;AAC5B,UAAO,EAAY,EAAK;IAC3B,EAEK,IAAc,QAAe;GAC/B,IAAM,EAAE,UAAO,YAAS,EAAc;AAUtC,UARI,EAAM,UACC,GAAG,EAAM,GAAG,MAGnB,EAAW,QACJ,GAAG,EAAG,cAAc,CAAC,GAAG,EAAM,GAAG,MAGrC,GAAG,EAAM,GAAG,EAAK,GAAG,EAAG,YAAY;IAC7C,EAEK,IAAoB,QACf,IAAI,KAAK,EAAW,MAAM,CAAC,aAAY,CACjD,EAEK,UAA4B;GAC9B,IAAM,IAAQ,KAAK,IAAI,KAAK,KAAK,GAAG,EAAW,MAAK;AAOpD,UANI,IAAQ,MACD,EAAM,iBAEb,IAAQ,OACD,MAEJ;KAGL,UAAkB;AAEpB,GADA,EAAI,QAAQ,KAAK,KAAI,EACjB,EAAM,cAAc,CAAC,EAAM,YAC3B,IAAa,WAAW,GAAW,GAAqB,CAAA;;SAIhE,QAAgB;AACZ,GAAI,EAAM,cAAc,CAAC,EAAM,YAC3B,IAAa,WAAW,GAAW,GAAqB,CAAA;IAE/D,EAED,QAAkB;AACd,GAAI,KACA,aAAa,EAAU;IAE9B,kBAID,EAEO,QAAA,EAFA,UAAU,EAAA,OAAiB,EAAA,EAC3B,EAAA,MAAW,EAAA,GAAA,EAAA"}
1
+ {"version":3,"file":"PkRelativeTime-WZ2aPcp_.js","names":[],"sources":["../../../../packages/composable/src/useTime.ts","../../../../packages/components/src/PkRelativeTime.vue","../../../../packages/components/src/PkRelativeTime.vue"],"sourcesContent":["import { useI18n } from 'vue-i18n'\n\nexport const useTime = () => {\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const formatDelta = (delta?: number) => {\n if (!delta)\n return {\n value: 0,\n unit: $t('time.unit.second', 0),\n }\n const seconds = Math.floor(delta / 1000)\n const minutes = Math.floor(delta / (1000 * 60))\n const hours = Math.floor(delta / (1000 * 60 * 60))\n const days = Math.floor(delta / (1000 * 60 * 60 * 24))\n\n if (seconds < 60) {\n return {\n value: seconds,\n unit: $t('time.unit.second', seconds),\n }\n }\n\n if (minutes < 60) {\n return {\n value: minutes,\n unit: $t('time.unit.minute', minutes),\n }\n }\n\n if (hours < 24) {\n return {\n value: hours,\n unit: $t('time.unit.hour', hours),\n }\n }\n\n return {\n value: days,\n unit: $t('time.unit.day', days),\n }\n }\n\n const formatDeltaToString = (delta?: number) => {\n const { value, unit } = formatDelta(delta)\n return `${value} ${unit}`\n }\n\n return {\n formatDelta,\n formatDeltaToString,\n }\n}\n","<script setup lang=\"ts\">\n import { computed, onMounted, onUnmounted, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useTime } from 'composables/src/useTime'\n\n const props = withDefaults(\n defineProps<{\n date: Date | string | number\n endDate?: Date | string | number\n autoUpdate?: boolean\n updateInterval?: number\n }>(),\n {\n endDate: undefined,\n autoUpdate: true,\n updateInterval: 1000,\n },\n )\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const now = ref(Date.now())\n let intervalId: ReturnType<typeof setTimeout> | null = null\n\n const targetDate = computed(() => {\n if (props.date instanceof Date) {\n return props.date.getTime()\n }\n if (typeof props.date === 'string') {\n return new Date(props.date).getTime()\n }\n return props.date\n })\n\n const targetEndDate = computed(() => {\n if (props.endDate === undefined) {\n return null\n }\n if (props.endDate instanceof Date) {\n return props.endDate.getTime()\n }\n if (typeof props.endDate === 'string') {\n return new Date(props.endDate).getTime()\n }\n return props.endDate\n })\n\n const deltaMs = computed(() => {\n const reference = targetEndDate.value ?? now.value\n return targetDate.value - reference\n })\n\n const isInFuture = computed(() => {\n return deltaMs.value > 0\n })\n\n const absoluteDelta = computed(() => {\n return Math.abs(deltaMs.value)\n })\n\n const { formatDelta } = useTime()\n const formattedTime = computed(() => {\n const delta = absoluteDelta.value\n return formatDelta(delta)\n })\n\n const displayText = computed(() => {\n const { value, unit } = formattedTime.value\n\n if (props.endDate) {\n return `${value} ${unit}`\n }\n\n if (isInFuture.value) {\n return `${$t('time.future')} ${value} ${unit}`\n }\n\n return `${value} ${unit} ${$t('time.past')}`\n })\n\n const dateTimeAttribute = computed(() => {\n return new Date(targetDate.value).toISOString()\n })\n\n const getAdaptiveInterval = () => {\n const delta = Math.abs(Date.now() - targetDate.value)\n if (delta < 60_000) {\n return props.updateInterval\n }\n if (delta < 3_600_000) {\n return 60_000\n }\n return 3_600_000\n }\n\n const updateNow = () => {\n now.value = Date.now()\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n }\n\n onMounted(() => {\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n })\n\n onUnmounted(() => {\n if (intervalId) {\n clearTimeout(intervalId)\n }\n })\n</script>\n\n<template>\n <time :datetime=\"dateTimeAttribute\">\n {{ displayText }}\n </time>\n</template>\n","<script setup lang=\"ts\">\n import { computed, onMounted, onUnmounted, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useTime } from 'composables/src/useTime'\n\n const props = withDefaults(\n defineProps<{\n date: Date | string | number\n endDate?: Date | string | number\n autoUpdate?: boolean\n updateInterval?: number\n }>(),\n {\n endDate: undefined,\n autoUpdate: true,\n updateInterval: 1000,\n },\n )\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const now = ref(Date.now())\n let intervalId: ReturnType<typeof setTimeout> | null = null\n\n const targetDate = computed(() => {\n if (props.date instanceof Date) {\n return props.date.getTime()\n }\n if (typeof props.date === 'string') {\n return new Date(props.date).getTime()\n }\n return props.date\n })\n\n const targetEndDate = computed(() => {\n if (props.endDate === undefined) {\n return null\n }\n if (props.endDate instanceof Date) {\n return props.endDate.getTime()\n }\n if (typeof props.endDate === 'string') {\n return new Date(props.endDate).getTime()\n }\n return props.endDate\n })\n\n const deltaMs = computed(() => {\n const reference = targetEndDate.value ?? now.value\n return targetDate.value - reference\n })\n\n const isInFuture = computed(() => {\n return deltaMs.value > 0\n })\n\n const absoluteDelta = computed(() => {\n return Math.abs(deltaMs.value)\n })\n\n const { formatDelta } = useTime()\n const formattedTime = computed(() => {\n const delta = absoluteDelta.value\n return formatDelta(delta)\n })\n\n const displayText = computed(() => {\n const { value, unit } = formattedTime.value\n\n if (props.endDate) {\n return `${value} ${unit}`\n }\n\n if (isInFuture.value) {\n return `${$t('time.future')} ${value} ${unit}`\n }\n\n return `${value} ${unit} ${$t('time.past')}`\n })\n\n const dateTimeAttribute = computed(() => {\n return new Date(targetDate.value).toISOString()\n })\n\n const getAdaptiveInterval = () => {\n const delta = Math.abs(Date.now() - targetDate.value)\n if (delta < 60_000) {\n return props.updateInterval\n }\n if (delta < 3_600_000) {\n return 60_000\n }\n return 3_600_000\n }\n\n const updateNow = () => {\n now.value = Date.now()\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n }\n\n onMounted(() => {\n if (props.autoUpdate && !props.endDate) {\n intervalId = setTimeout(updateNow, getAdaptiveInterval())\n }\n })\n\n onUnmounted(() => {\n if (intervalId) {\n clearTimeout(intervalId)\n }\n })\n</script>\n\n<template>\n <time :datetime=\"dateTimeAttribute\">\n {{ displayText }}\n </time>\n</template>\n"],"mappings":";;;AAEA,IAAa,UAAgB;CACzB,IAAM,EAAE,GAAG,MAAO,EAAQ,EACtB,UAAU,UACb,CAAC,EAEI,KAAe,MAAmB;AACpC,MAAI,CAAC,EACD,QAAO;GACH,OAAO;GACP,MAAM,EAAG,oBAAoB,EAAE;GAClC;EACL,IAAM,IAAU,KAAK,MAAM,IAAQ,IAAK,EAClC,IAAU,KAAK,MAAM,KAAS,MAAO,IAAI,EACzC,IAAQ,KAAK,MAAM,KAAS,MAAO,KAAK,IAAI,EAC5C,IAAO,KAAK,MAAM,KAAS,MAAO,KAAK,KAAK,IAAI;AAuBtD,SArBI,IAAU,KACH;GACH,OAAO;GACP,MAAM,EAAG,oBAAoB,EAAQ;GACxC,GAGD,IAAU,KACH;GACH,OAAO;GACP,MAAM,EAAG,oBAAoB,EAAQ;GACxC,GAGD,IAAQ,KACD;GACH,OAAO;GACP,MAAM,EAAG,kBAAkB,EAAM;GACpC,GAGE;GACH,OAAO;GACP,MAAM,EAAG,iBAAiB,EAAK;GAClC;;AAQL,QAAO;EACH;EACA,sBAPyB,MAAmB;GAC5C,IAAM,EAAE,UAAO,YAAS,EAAY,EAAM;AAC1C,UAAO,GAAG,EAAM,GAAG;;EAMtB;;;;;;;;;;;;;EChDD,IAAM,IAAQ,GAcR,EAAE,GAAG,MAAO,EAAQ,EACtB,UAAU,UACb,CAAA,EAEK,IAAM,EAAI,KAAK,KAAK,CAAA,EACtB,IAAmD,MAEjD,IAAa,QACX,EAAM,gBAAgB,OACf,EAAM,KAAK,SAAQ,GAE1B,OAAO,EAAM,QAAS,WACf,IAAI,KAAK,EAAM,KAAK,CAAC,SAAQ,GAEjC,EAAM,KAChB,EAEK,IAAgB,QACd,EAAM,YAAY,KAAA,IACX,OAEP,EAAM,mBAAmB,OAClB,EAAM,QAAQ,SAAQ,GAE7B,OAAO,EAAM,WAAY,WAClB,IAAI,KAAK,EAAM,QAAQ,CAAC,SAAQ,GAEpC,EAAM,QAChB,EAEK,IAAU,QAAe;GAC3B,IAAM,IAAY,EAAc,SAAS,EAAI;AAC7C,UAAO,EAAW,QAAQ;IAC7B,EAEK,IAAa,QACR,EAAQ,QAAQ,EAC1B,EAEK,IAAgB,QACX,KAAK,IAAI,EAAQ,MAAK,CAChC,EAEK,EAAE,mBAAgB,GAAQ,EAC1B,IAAgB,QAAe;GACjC,IAAM,IAAQ,EAAc;AAC5B,UAAO,EAAY,EAAK;IAC3B,EAEK,IAAc,QAAe;GAC/B,IAAM,EAAE,UAAO,YAAS,EAAc;AAUtC,UARI,EAAM,UACC,GAAG,EAAM,GAAG,MAGnB,EAAW,QACJ,GAAG,EAAG,cAAc,CAAC,GAAG,EAAM,GAAG,MAGrC,GAAG,EAAM,GAAG,EAAK,GAAG,EAAG,YAAY;IAC7C,EAEK,IAAoB,QACf,IAAI,KAAK,EAAW,MAAM,CAAC,aAAY,CACjD,EAEK,UAA4B;GAC9B,IAAM,IAAQ,KAAK,IAAI,KAAK,KAAK,GAAG,EAAW,MAAK;AAOpD,UANI,IAAQ,MACD,EAAM,iBAEb,IAAQ,OACD,MAEJ;KAGL,UAAkB;AAEpB,GADA,EAAI,QAAQ,KAAK,KAAI,EACjB,EAAM,cAAc,CAAC,EAAM,YAC3B,IAAa,WAAW,GAAW,GAAqB,CAAA;;SAIhE,QAAgB;AACZ,GAAI,EAAM,cAAc,CAAC,EAAM,YAC3B,IAAa,WAAW,GAAW,GAAqB,CAAA;IAE/D,EAED,QAAkB;AACd,GAAI,KACA,aAAa,EAAU;IAE9B,kBAID,EAEO,QAAA,EAFA,UAAU,EAAA,OAAiB,EAAA,EAC3B,EAAA,MAAW,EAAA,GAAA,EAAA"}
@@ -529,7 +529,7 @@ $$` : `${e}$$`;
529
529
  return n;
530
530
  };
531
531
  //#endregion
532
- //#region ../../node_modules/.pnpm/marked@18.0.2/node_modules/marked/lib/marked.esm.js
532
+ //#region ../../node_modules/.pnpm/marked@18.0.3/node_modules/marked/lib/marked.esm.js
533
533
  function D() {
534
534
  return {
535
535
  async: !1,
@@ -930,29 +930,29 @@ ${c}` : c;
930
930
  else return;
931
931
  i.raw = i.raw.trimEnd();
932
932
  for (let e of i.items) {
933
- if (this.lexer.state.top = !1, e.tokens = this.lexer.blockTokens(e.text, []), e.task) {
934
- if (e.text = e.text.replace(this.rules.other.listReplaceTask, ""), e.tokens[0]?.type === "text" || e.tokens[0]?.type === "paragraph") {
935
- e.tokens[0].raw = e.tokens[0].raw.replace(this.rules.other.listReplaceTask, ""), e.tokens[0].text = e.tokens[0].text.replace(this.rules.other.listReplaceTask, "");
936
- for (let e = this.lexer.inlineQueue.length - 1; e >= 0; e--) if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)) {
937
- this.lexer.inlineQueue[e].src = this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask, "");
938
- break;
939
- }
933
+ this.lexer.state.top = !1, e.tokens = this.lexer.blockTokens(e.text, []);
934
+ let t = e.tokens[0];
935
+ if (e.task && (t?.type === "text" || t?.type === "paragraph")) {
936
+ e.text = e.text.replace(this.rules.other.listReplaceTask, ""), t.raw = t.raw.replace(this.rules.other.listReplaceTask, ""), t.text = t.text.replace(this.rules.other.listReplaceTask, "");
937
+ for (let e = this.lexer.inlineQueue.length - 1; e >= 0; e--) if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)) {
938
+ this.lexer.inlineQueue[e].src = this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask, "");
939
+ break;
940
940
  }
941
- let t = this.rules.other.listTaskCheckbox.exec(e.raw);
942
- if (t) {
943
- let n = {
941
+ let n = this.rules.other.listTaskCheckbox.exec(e.raw);
942
+ if (n) {
943
+ let t = {
944
944
  type: "checkbox",
945
- raw: t[0] + " ",
946
- checked: t[0] !== "[ ]"
945
+ raw: n[0] + " ",
946
+ checked: n[0] !== "[ ]"
947
947
  };
948
- e.checked = n.checked, i.loose ? e.tokens[0] && ["paragraph", "text"].includes(e.tokens[0].type) && "tokens" in e.tokens[0] && e.tokens[0].tokens ? (e.tokens[0].raw = n.raw + e.tokens[0].raw, e.tokens[0].text = n.raw + e.tokens[0].text, e.tokens[0].tokens.unshift(n)) : e.tokens.unshift({
948
+ e.checked = t.checked, i.loose ? e.tokens[0] && ["paragraph", "text"].includes(e.tokens[0].type) && "tokens" in e.tokens[0] && e.tokens[0].tokens ? (e.tokens[0].raw = t.raw + e.tokens[0].raw, e.tokens[0].text = t.raw + e.tokens[0].text, e.tokens[0].tokens.unshift(t)) : e.tokens.unshift({
949
949
  type: "paragraph",
950
- raw: n.raw,
951
- text: n.raw,
952
- tokens: [n]
953
- }) : e.tokens.unshift(n);
950
+ raw: t.raw,
951
+ text: t.raw,
952
+ tokens: [t]
953
+ }) : e.tokens.unshift(t);
954
954
  }
955
- }
955
+ } else e.task &&= !1;
956
956
  if (!i.loose) {
957
957
  let t = e.tokens.filter((e) => e.type === "space");
958
958
  i.loose = t.length > 0 && t.some((e) => this.rules.other.anyLine.test(e.raw));
@@ -2137,4 +2137,4 @@ var xn = ["innerHTML"], Sn = /* @__PURE__ */ a({
2137
2137
  //#endregion
2138
2138
  export { Sn as t };
2139
2139
 
2140
- //# sourceMappingURL=PkStreamingMarkdown-CtiMH6FD.js.map
2140
+ //# sourceMappingURL=PkStreamingMarkdown-BAhC3uGK.js.map