@8wave/ai-elements 0.110.0 → 0.111.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/_chunks/{Agent-Su_LDF9_.js → Agent-tE7ZJPxG.js} +80 -78
- package/dist/_chunks/Agent-tE7ZJPxG.js.map +1 -0
- package/dist/_chunks/{Document-DecVclEe.js → Document-Bmx6774B.js} +33 -21
- package/dist/_chunks/Document-Bmx6774B.js.map +1 -0
- package/dist/_chunks/Media-Cft7Pwrh.js +108 -0
- package/dist/_chunks/Media-Cft7Pwrh.js.map +1 -0
- package/dist/_chunks/{PkLazyImg-ClL4nr95.js → PkLazyImg-Dbj2dDXA.js} +2 -2
- package/dist/_chunks/{PkLazyImg-ClL4nr95.js.map → PkLazyImg-Dbj2dDXA.js.map} +1 -1
- package/dist/_chunks/{PkStreamingMarkdown-CwqsJnJJ.js → PkStreamingMarkdown-CNI8aV8t.js} +636 -427
- package/dist/_chunks/PkStreamingMarkdown-CNI8aV8t.js.map +1 -0
- package/dist/_chunks/{PkToolRequestGeolocation-CEVpl50q.js → PkToolRequestGeolocation-Bzy4IYSp.js} +4 -4
- package/dist/_chunks/PkToolRequestGeolocation-Bzy4IYSp.js.map +1 -0
- package/dist/_chunks/{PkToolRequestOAuthConnection-CncDU-Kl.js → PkToolRequestOAuthConnection-13CQH07t.js} +5 -5
- package/dist/_chunks/PkToolRequestOAuthConnection-13CQH07t.js.map +1 -0
- package/dist/_chunks/{PkToolShowArtifact-M6jlSmyJ.js → PkToolShowArtifact-CGbHDEie.js} +4 -4
- package/dist/_chunks/{PkToolShowArtifact-M6jlSmyJ.js.map → PkToolShowArtifact-CGbHDEie.js.map} +1 -1
- package/dist/_chunks/{PkToolShowCalendarEvent-C41JgOUA.js → PkToolShowCalendarEvent-DIFX_rUz.js} +3 -3
- package/dist/_chunks/{PkToolShowCalendarEvent-C41JgOUA.js.map → PkToolShowCalendarEvent-DIFX_rUz.js.map} +1 -1
- package/dist/_chunks/{PkToolShowComparison-DbbUD9pg.js → PkToolShowComparison-CWLFWT9h.js} +7 -7
- package/dist/_chunks/PkToolShowComparison-CWLFWT9h.js.map +1 -0
- package/dist/_chunks/{PkToolShowContactForm-D_dW59Dl.js → PkToolShowContactForm-CYxgatUA.js} +5 -5
- package/dist/_chunks/PkToolShowContactForm-CYxgatUA.js.map +1 -0
- package/dist/_chunks/{PkToolShowDiagram-Hy9qh68O.js → PkToolShowDiagram-Dx1Ba0PG.js} +4 -4
- package/dist/_chunks/PkToolShowDiagram-Dx1Ba0PG.js.map +1 -0
- package/dist/_chunks/{PkToolShowEmail-Dn3JHYIR.js → PkToolShowEmail-DnFFgzom.js} +3 -3
- package/dist/_chunks/{PkToolShowEmail-Dn3JHYIR.js.map → PkToolShowEmail-DnFFgzom.js.map} +1 -1
- package/dist/_chunks/{PkToolShowForm-DbJHMDbt.js → PkToolShowForm-B6x3Lp2i.js} +7 -8
- package/dist/_chunks/PkToolShowForm-B6x3Lp2i.js.map +1 -0
- package/dist/_chunks/{PkToolShowImageGallery-C1lzlO0y.js → PkToolShowImageGallery-D99N_Plf.js} +2 -2
- package/dist/_chunks/{PkToolShowImageGallery-C1lzlO0y.js.map → PkToolShowImageGallery-D99N_Plf.js.map} +1 -1
- package/dist/_chunks/{PkToolShowLocation-CKhPxKFA.js → PkToolShowLocation-AfnrtFVJ.js} +3 -3
- package/dist/_chunks/{PkToolShowLocation-CKhPxKFA.js.map → PkToolShowLocation-AfnrtFVJ.js.map} +1 -1
- package/dist/_chunks/{PkToolShowMessage-U9CCU7eG.js → PkToolShowMessage-DUo2c-im.js} +3 -3
- package/dist/_chunks/{PkToolShowMessage-U9CCU7eG.js.map → PkToolShowMessage-DUo2c-im.js.map} +1 -1
- package/dist/_chunks/{PkToolShowProductList-UeiRMLHu.js → PkToolShowProductList-BN6Qk1_y.js} +3 -3
- package/dist/_chunks/{PkToolShowProductList-UeiRMLHu.js.map → PkToolShowProductList-BN6Qk1_y.js.map} +1 -1
- package/dist/_chunks/{PkToolShowQrCode-CypLrfh5.js → PkToolShowQrCode-BLqeBecX.js} +3 -3
- package/dist/_chunks/{PkToolShowQrCode-CypLrfh5.js.map → PkToolShowQrCode-BLqeBecX.js.map} +1 -1
- package/dist/_chunks/{PkToolShowSources-B69JmwbZ.js → PkToolShowSources-DpZb5FUP.js} +5 -5
- package/dist/_chunks/PkToolShowSources-DpZb5FUP.js.map +1 -0
- package/dist/_chunks/{PkToolShowSuggestedReply-CKxSH0Y9.js → PkToolShowSuggestedReply-C10nNgBs.js} +3 -3
- package/dist/_chunks/{PkToolShowSuggestedReply-CKxSH0Y9.js.map → PkToolShowSuggestedReply-C10nNgBs.js.map} +1 -1
- package/dist/_chunks/{PkToolShowVideo-BgKxdBcC.js → PkToolShowVideo-S9b4QHUj.js} +2 -2
- package/dist/_chunks/{PkToolShowVideo-BgKxdBcC.js.map → PkToolShowVideo-S9b4QHUj.js.map} +1 -1
- package/dist/_chunks/{PkToolShowWeather-LPd3tC77.js → PkToolShowWeather-CqhG430w.js} +2 -2
- package/dist/_chunks/PkToolShowWeather-CqhG430w.js.map +1 -0
- package/dist/_chunks/{PkToolShowWebPages-ep_erFF0.js → PkToolShowWebPages-txAZi_iG.js} +3 -3
- package/dist/_chunks/{PkToolShowWebPages-ep_erFF0.js.map → PkToolShowWebPages-txAZi_iG.js.map} +1 -1
- package/dist/_chunks/PkUrl-BPbjZJ1A.js.map +1 -1
- package/dist/_chunks/{VvCheckboxGroup.es-Bdu2gFLN.js → VvCheckboxGroup.es-CTrF3pue.js} +2 -2
- package/dist/_chunks/{VvCheckboxGroup.es-Bdu2gFLN.js.map → VvCheckboxGroup.es-CTrF3pue.js.map} +1 -1
- package/dist/_chunks/{VvCombobox.es-C0wpJIr_.js → VvCombobox.es-BWiXmQ_S.js} +10 -10
- package/dist/_chunks/{VvCombobox.es-C0wpJIr_.js.map → VvCombobox.es-BWiXmQ_S.js.map} +1 -1
- package/dist/_chunks/{VvInputText.es-Zgtw2YNw.js → VvInputText.es-Bo9I6g8H.js} +6 -6
- package/dist/_chunks/{VvInputText.es-Zgtw2YNw.js.map → VvInputText.es-Bo9I6g8H.js.map} +1 -1
- package/dist/_chunks/{VvRadioGroup.es-DZLL19SC.js → VvRadioGroup.es-9ooHCuik.js} +2 -2
- package/dist/_chunks/{VvRadioGroup.es-DZLL19SC.js.map → VvRadioGroup.es-9ooHCuik.js.map} +1 -1
- package/dist/_chunks/{VvSelect.es-ovnZRHG5.js → VvSelect.es-DG0VuWtP.js} +2 -2
- package/dist/_chunks/{VvSelect.es-ovnZRHG5.js.map → VvSelect.es-DG0VuWtP.js.map} +1 -1
- package/dist/_chunks/{VvTextarea.es-DbP5Lt2T.js → VvTextarea.es-Dg3pxdZy.js} +6 -6
- package/dist/_chunks/{VvTextarea.es-DbP5Lt2T.js.map → VvTextarea.es-Dg3pxdZy.js.map} +1 -1
- package/dist/_chunks/{browser-NgY6LXg-.js → browser-B0Xnbqi7.js} +726 -751
- package/dist/_chunks/browser-B0Xnbqi7.js.map +1 -0
- package/dist/_chunks/{dist-n5iFNYf-.js → dist-QdjZA6MJ.js} +143 -133
- package/dist/_chunks/{dist-n5iFNYf-.js.map → dist-QdjZA6MJ.js.map} +1 -1
- package/dist/_chunks/{index.es-dtdl3VFG.js → index.es-0YpCa4c5.js} +6 -6
- package/dist/_chunks/{index.es-dtdl3VFG.js.map → index.es-0YpCa4c5.js.map} +1 -1
- package/dist/_chunks/{index.es-BJnUA_36.js → index.es-CHkJ2TMJ.js} +10 -10
- package/dist/_chunks/{index.es-BJnUA_36.js.map → index.es-CHkJ2TMJ.js.map} +1 -1
- package/dist/_chunks/text-DbSEK8si.js.map +1 -1
- package/dist/ai-elements.es.js +3077 -3134
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotEmptyState.js +1 -1
- package/dist-vue/PkChatbotError.js +1 -1
- package/dist-vue/PkChatbotFeedbackForm.js +1 -1
- package/dist-vue/PkChatbotFilePreview.js +1 -1
- package/dist-vue/PkChatbotInput.js +1 -1
- package/dist-vue/PkChatbotMessages.js +1 -1
- package/dist-vue/PkChatbotStepPayload.js +1 -1
- package/dist-vue/PkChatbotStepToolDetail.js +1 -1
- package/dist-vue/PkChatbotSteps.js +1 -1
- package/dist-vue/PkChatbotViewChat.js +1 -1
- package/dist-vue/PkChatbotViewConversations.js +1 -1
- package/dist-vue/PkChatbotViewFiles.js +1 -1
- package/dist-vue/PkChatbotViewProfile.js +1 -1
- package/dist-vue/_chunks/{Agent-C8BsTAxk.js → Agent-De2gFNjR.js} +165 -176
- package/dist-vue/_chunks/Agent-De2gFNjR.js.map +1 -0
- package/dist-vue/_chunks/{Document-CaUfI_SZ.js → Document-8umjeTVS.js} +84 -72
- package/dist-vue/_chunks/Document-8umjeTVS.js.map +1 -0
- package/dist-vue/_chunks/Media-_HfFLHGD.js.map +1 -1
- package/dist-vue/_chunks/{PkChatbot-o7k7d-fj.js → PkChatbot-CMajc7tE.js} +61 -61
- package/dist-vue/_chunks/PkChatbot-CMajc7tE.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotEmptyState-BvaeBxhx.js → PkChatbotEmptyState-BtzBYOHJ.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotEmptyState-BvaeBxhx.js.map → PkChatbotEmptyState-BtzBYOHJ.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotError-CBP2mf-n.js → PkChatbotError-gvDpRcEz.js} +21 -19
- package/dist-vue/_chunks/PkChatbotError-gvDpRcEz.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotFeedbackForm-DO1QIgmo.js → PkChatbotFeedbackForm-CxLOdwkm.js} +2 -2
- package/dist-vue/_chunks/PkChatbotFeedbackForm-CxLOdwkm.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotFilePreview-DO1wZPPj.js → PkChatbotFilePreview-CwiVQDF2.js} +3 -3
- package/dist-vue/_chunks/PkChatbotFilePreview-CwiVQDF2.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotInput-D8x52cVm.js → PkChatbotInput-MSpF6SB6.js} +140 -125
- package/dist-vue/_chunks/PkChatbotInput-MSpF6SB6.js.map +1 -0
- package/dist-vue/_chunks/PkChatbotMessages-Bz5q8EtT.js +776 -0
- package/dist-vue/_chunks/PkChatbotMessages-Bz5q8EtT.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotStepPayload-BH6piqOi.js → PkChatbotStepPayload-XW4gT9AZ.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotStepPayload-BH6piqOi.js.map → PkChatbotStepPayload-XW4gT9AZ.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotStepToolDetail-BJ7xUvgi.js → PkChatbotStepToolDetail-C4-K6Glw.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotStepToolDetail-BJ7xUvgi.js.map → PkChatbotStepToolDetail-C4-K6Glw.js.map} +1 -1
- package/dist-vue/_chunks/PkChatbotSteps-CrqjWpv0.js +190 -0
- package/dist-vue/_chunks/PkChatbotSteps-CrqjWpv0.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotViewChat-CNH_glPI.js → PkChatbotViewChat-DXu5ncaU.js} +10 -10
- package/dist-vue/_chunks/{PkChatbotViewChat-CNH_glPI.js.map → PkChatbotViewChat-DXu5ncaU.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewConversations-BENvHLZt.js → PkChatbotViewConversations-3LaZPFyw.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewConversations-BENvHLZt.js.map → PkChatbotViewConversations-3LaZPFyw.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewFiles-qmLESi1V.js → PkChatbotViewFiles-CTqnbsCj.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotViewFiles-qmLESi1V.js.map → PkChatbotViewFiles-CTqnbsCj.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewProfile-DzfZnitQ.js → PkChatbotViewProfile-B-Mp1jGQ.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewProfile-DzfZnitQ.js.map → PkChatbotViewProfile-B-Mp1jGQ.js.map} +1 -1
- package/dist-vue/_chunks/PkRelativeTime--1cIphlA.js.map +1 -1
- package/dist-vue/_chunks/{PkStreamingMarkdown-D8_LwZMR.js → PkStreamingMarkdown-D0IOaETI.js} +432 -419
- package/dist-vue/_chunks/PkStreamingMarkdown-D0IOaETI.js.map +1 -0
- package/dist-vue/_chunks/{PkSvgViewer-DPpE9fiz.js → PkSvgViewer-D-0M5bqg.js} +2 -2
- package/dist-vue/_chunks/PkSvgViewer-D-0M5bqg.js.map +1 -0
- package/dist-vue/_chunks/{PkToolRequestGeolocation-D1ZPmWiB.js → PkToolRequestGeolocation-Q3N3jlO8.js} +3 -3
- package/dist-vue/_chunks/PkToolRequestGeolocation-Q3N3jlO8.js.map +1 -0
- package/dist-vue/_chunks/{PkToolRequestOAuthConnection-CoJyKEE6.js → PkToolRequestOAuthConnection-lYoTJIF_.js} +4 -4
- package/dist-vue/_chunks/PkToolRequestOAuthConnection-lYoTJIF_.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowArtifact-CEXdfOGG.js → PkToolShowArtifact-DHdJuzDi.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowArtifact-CEXdfOGG.js.map → PkToolShowArtifact-DHdJuzDi.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowComparison-DMSjIpCR.js → PkToolShowComparison-BLn4pkno.js} +5 -5
- package/dist-vue/_chunks/PkToolShowComparison-BLn4pkno.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowContactForm-DHmzAIVF.js → PkToolShowContactForm-DceSyuX8.js} +3 -3
- package/dist-vue/_chunks/PkToolShowContactForm-DceSyuX8.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowDiagram-DuDp5EHd.js → PkToolShowDiagram-pwc0wpNo.js} +4 -4
- package/dist-vue/_chunks/PkToolShowDiagram-pwc0wpNo.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowEmail-CavhsPvi.js → PkToolShowEmail-DF__nKpR.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowEmail-CavhsPvi.js.map → PkToolShowEmail-DF__nKpR.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowForm-CO5A_j9L.js → PkToolShowForm-Dx10jOXm.js} +7 -7
- package/dist-vue/_chunks/PkToolShowForm-Dx10jOXm.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowImageGallery-V9U3LJfF.js → PkToolShowImageGallery-DudQzBx4.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowImageGallery-V9U3LJfF.js.map → PkToolShowImageGallery-DudQzBx4.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowMessage-DQojxDiV.js → PkToolShowMessage-Ck6VP-gw.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowMessage-DQojxDiV.js.map → PkToolShowMessage-Ck6VP-gw.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowProductList-Cn0yewM3.js → PkToolShowProductList-zfM8cx-l.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowProductList-Cn0yewM3.js.map → PkToolShowProductList-zfM8cx-l.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowSources-BvWOzVkQ.js → PkToolShowSources-Dlaz2Y77.js} +5 -5
- package/dist-vue/_chunks/PkToolShowSources-Dlaz2Y77.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowSuggestedReply-DQFOVonE.js → PkToolShowSuggestedReply-DWLkUh2L.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowSuggestedReply-DQFOVonE.js.map → PkToolShowSuggestedReply-DWLkUh2L.js.map} +1 -1
- package/dist-vue/_chunks/PkToolShowWeather-Bzqalzh8.js.map +1 -1
- package/dist-vue/_chunks/{PkToolShowWebPages-Bzkkn9GV.js → PkToolShowWebPages-CosBYLrE.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowWebPages-Bzkkn9GV.js.map → PkToolShowWebPages-CosBYLrE.js.map} +1 -1
- package/dist-vue/_chunks/{PkUrl-xUBKVJCv.js → PkUrl-B5CNTQj9.js} +2 -2
- package/dist-vue/_chunks/PkUrl-B5CNTQj9.js.map +1 -0
- package/dist-vue/_chunks/{createChatbotApiClient-CJ_5_3IT.js → createChatbotApiClient-MkaPbGWB.js} +6 -3
- package/dist-vue/_chunks/createChatbotApiClient-MkaPbGWB.js.map +1 -0
- package/dist-vue/_chunks/{useChatbotStore-CiRAuq7v.js → useChatbotStore-BzfqjiYz.js} +6 -3
- package/dist-vue/_chunks/useChatbotStore-BzfqjiYz.js.map +1 -0
- package/dist-vue/_chunks/useDialogConfirm-KWz0ohCQ.js.map +1 -1
- package/dist-vue/_chunks/{utils-Coqik0XI.js → utils-C1666_6C.js} +58 -43
- package/dist-vue/_chunks/utils-C1666_6C.js.map +1 -0
- package/dist-vue/api.js +1 -1
- package/dist-vue/composables.js +3 -3
- package/dist-vue/index.js +3869 -3490
- package/dist-vue/index.js.map +1 -1
- package/dist-vue/locales.js +36 -8
- package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +20 -3
- package/dist-vue/packages/components/src/chat/PkChatButton.d.ts +3 -2
- package/dist-vue/packages/components/src/chat/PkLanguageModel.d.ts +26 -2
- package/dist-vue/packages/components/src/chat/PkLanguageModelCombobox.d.ts +53 -1
- package/dist-vue/packages/components/src/chat/PkModelOption.d.ts +19 -0
- package/dist-vue/packages/components/src/chat/PkReasoningSettings.d.ts +6 -0
- package/dist-vue/packages/components/src/chat/PkStreamingMarkdown.d.ts +6 -0
- package/dist-vue/packages/components/src/chat/PkStreamingMarkdownAutoscroll.d.ts +1 -0
- package/dist-vue/packages/components/src/chat/constants.d.ts +5 -18
- package/dist-vue/packages/components/src/chat/index.d.ts +3 -1
- package/dist-vue/packages/components/src/chat/modelCatalog.d.ts +46 -0
- package/dist-vue/packages/components/src/chat/utils.d.ts +16 -0
- package/dist-vue/packages/components/src/table/PkTableSortable.d.ts +13 -1
- package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +18 -0
- package/dist-vue/packages/composable/src/useChatbotError.d.ts +2 -0
- package/dist-vue/packages/models/src/schema/Agent.d.ts +70 -10
- package/dist-vue/packages/models/src/schema/Chat.d.ts +31 -0
- package/dist-vue/packages/models/src/schema/ModelProvider.d.ts +316 -0
- package/dist-vue/packages/models/src/schema/Organization.d.ts +142 -2
- package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +20 -0
- package/dist-vue/packages/models/src/schema/SubAgent.d.ts +20 -0
- package/dist-vue/packages/models/src/schema/UserOverview.d.ts +41 -0
- package/dist-vue/packages/models/src/schema/constants.d.ts +56 -91
- package/dist-vue/packages/models/src/schema/index.d.ts +1 -0
- package/dist-vue/style.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/Agent-Su_LDF9_.js.map +0 -1
- package/dist/_chunks/Document-DecVclEe.js.map +0 -1
- package/dist/_chunks/Media-C6SOQfJZ.js +0 -122
- package/dist/_chunks/Media-C6SOQfJZ.js.map +0 -1
- package/dist/_chunks/PkStreamingMarkdown-CwqsJnJJ.js.map +0 -1
- package/dist/_chunks/PkToolRequestGeolocation-CEVpl50q.js.map +0 -1
- package/dist/_chunks/PkToolRequestOAuthConnection-CncDU-Kl.js.map +0 -1
- package/dist/_chunks/PkToolShowComparison-DbbUD9pg.js.map +0 -1
- package/dist/_chunks/PkToolShowContactForm-D_dW59Dl.js.map +0 -1
- package/dist/_chunks/PkToolShowDiagram-Hy9qh68O.js.map +0 -1
- package/dist/_chunks/PkToolShowForm-DbJHMDbt.js.map +0 -1
- package/dist/_chunks/PkToolShowSources-B69JmwbZ.js.map +0 -1
- package/dist/_chunks/PkToolShowWeather-LPd3tC77.js.map +0 -1
- package/dist/_chunks/browser-NgY6LXg-.js.map +0 -1
- package/dist/_chunks/utils-YJ0ZOLDG.js +0 -185
- package/dist/_chunks/utils-YJ0ZOLDG.js.map +0 -1
- package/dist-vue/_chunks/Agent-C8BsTAxk.js.map +0 -1
- package/dist-vue/_chunks/Document-CaUfI_SZ.js.map +0 -1
- package/dist-vue/_chunks/PkChatbot-o7k7d-fj.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotError-CBP2mf-n.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotFeedbackForm-DO1QIgmo.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotFilePreview-DO1wZPPj.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotInput-D8x52cVm.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotMessages-BFlU046I.js +0 -771
- package/dist-vue/_chunks/PkChatbotMessages-BFlU046I.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotSteps-DtV1beDc.js +0 -180
- package/dist-vue/_chunks/PkChatbotSteps-DtV1beDc.js.map +0 -1
- package/dist-vue/_chunks/PkStreamingMarkdown-D8_LwZMR.js.map +0 -1
- package/dist-vue/_chunks/PkSvgViewer-DPpE9fiz.js.map +0 -1
- package/dist-vue/_chunks/PkToolRequestGeolocation-D1ZPmWiB.js.map +0 -1
- package/dist-vue/_chunks/PkToolRequestOAuthConnection-CoJyKEE6.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowComparison-DMSjIpCR.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowContactForm-DHmzAIVF.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowDiagram-DuDp5EHd.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowForm-CO5A_j9L.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowSources-BvWOzVkQ.js.map +0 -1
- package/dist-vue/_chunks/PkUrl-xUBKVJCv.js.map +0 -1
- package/dist-vue/_chunks/createChatbotApiClient-CJ_5_3IT.js.map +0 -1
- package/dist-vue/_chunks/useChatbotStore-CiRAuq7v.js.map +0 -1
- package/dist-vue/_chunks/utils-Coqik0XI.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PkStreamingMarkdown-D8_LwZMR.js","names":["gn","hn","M","pn","P","I","b","kn","$","E","d","y","N","R","U","W","D","K","H","C","G","F","X","A","f","Y","T","h","m","Z","v","L","Q","J","V","x","B","cn","un","S","ne","We"],"sources":["../../../../packages/utils/src/citations.ts","../../../../packages/composable/src/chatbot/useShortUrlResolver.ts","../../../../node_modules/.pnpm/remend@1.3.1/node_modules/remend/dist/index.js","../../../../node_modules/.pnpm/marked@18.0.13/node_modules/marked/lib/marked.esm.js","../../../../packages/components/src/chat/PkStreamingMarkdown.vue","../../../../packages/components/src/chat/PkStreamingMarkdown.vue"],"sourcesContent":["/**\n * OpenAI's Responses API (native `web_search`, also through Azure and the\n * gateway) emits inline citations as a marker wrapped in Private Use Area\n * delimiters:\n *\n * \\uE200cite\\uE202turn1view1\\uE201\n *\n * `cite` is the marker kind and `turn1view1` is the reference: browsing turn 1,\n * first page viewed (`search4` = 4th search result, `news2`, `fetch0`, …).\n * Several refs can share one block.\n *\n * Those delimiters are invisible in every renderer and get dropped by most text\n * pipelines (JSON round-trips, markdown sanitizers, terminal output), which\n * leaves the bare payload behind as literal prose: `citeturn1view1`. Either way\n * the marker is display noise: the usable data lives in the part's\n * `providerMetadata.<provider>.annotations`, which carries url, title and the\n * span the marker occupied.\n *\n * IMPORTANT: those annotation `start_index`/`end_index` offsets are computed on\n * the text WITH the delimiters still in it. Render the citations from the\n * annotations FIRST (walking them last-to-first so earlier offsets stay valid),\n * and only then strip. Stripping first makes every offset stale.\n */\n\n/** A whole PUA-delimited block, `\\uE200…\\uE201`, plus the space before it. */\nconst DELIMITED_MARKER = /[ \\t]*\\uE200[^\\uE201]*\\uE201/g\n\n/**\n * The same payload once the delimiters are already lost: a marker keyword glued\n * to one or more `turn<n><kind><n>` refs. Anchored on both the keyword and the\n * ref shape, because on degraded text there are no boundaries left to trust and\n * a looser pattern would start eating prose.\n */\nconst DEGRADED_MARKER =\n /[ \\t]*(?:cite|filecite|videocite|audiocite|imagecite|screenshot)(?:turn\\d+[a-z]+\\d+)+/gi\n\n/**\n * Orphan delimiters: a block truncated mid-stream, or one whose payload some\n * upstream pass already removed.\n */\nconst STRAY_DELIMITERS = /[\\uE200-\\uE20F]/g\n\n/**\n * Removes provider citation markers from text meant for display, in all three\n * states they show up in: well-formed, delimiter-stripped, and truncated.\n */\nexport function stripProviderCitationMarkers(text: string): string {\n if (!text) {\n return text\n }\n return text\n .replace(DELIMITED_MARKER, '')\n .replace(DEGRADED_MARKER, '')\n .replace(STRAY_DELIMITERS, '')\n}\n","import {\n computed,\n inject,\n provide,\n reactive,\n toValue,\n type ComputedRef,\n type InjectionKey,\n type MaybeRefOrGetter,\n} from 'vue'\n\n/** Matches the short-url shape produced by the backend: `<host>/api/r/<hash>` */\nconst SHORT_URL_RE = /\\/api\\/r\\/([A-Za-z0-9_-]{1,20})(?:[?#]|$)/\n\n/** Global variant matching whole short urls embedded in free text (group 1 = hash) */\nconst FULL_SHORT_URL_RE =\n /https?:\\/\\/[^\\s)\"'<>]*\\/api\\/r\\/([A-Za-z0-9_-]{1,20})/g\n\nexport type ShortUrlBatchResolver = (\n hashes: string[],\n) => Promise<Record<string, string>>\n\nfunction extractHash(url: string): string | undefined {\n return SHORT_URL_RE.exec(url)?.[1]\n}\n\nexport interface ResolvedUrl {\n /** The resolved url, or the original short url until it arrives / on failure */\n url: string | undefined\n /** True while the short url is being resolved (use to show a skeleton) */\n loading: boolean\n}\n\nexport function createShortUrlResolver(batchResolve: ShortUrlBatchResolver) {\n // hash -> resolved long url (reactive so templates update on arrival)\n const cache = reactive(new Map<string, string>())\n // hashes whose batch has settled (resolved or not) — stops the loading state\n const settled = reactive(new Set<string>())\n const pending = new Set<string>()\n let scheduled = false\n\n async function flush() {\n scheduled = false\n const hashes = [...pending]\n pending.clear()\n if (hashes.length === 0) {\n return\n }\n try {\n const urls = await batchResolve(hashes)\n for (const [hash, url] of Object.entries(urls)) {\n cache.set(hash, url)\n }\n } catch {\n // leave short urls untouched on failure\n } finally {\n // mark every requested hash as settled so it stops loading even\n // when the backend returned no match (falls back to the short url)\n for (const hash of hashes) {\n settled.add(hash)\n }\n }\n }\n\n function request(hash: string) {\n if (cache.has(hash) || pending.has(hash)) {\n return\n }\n pending.add(hash)\n if (!scheduled) {\n scheduled = true\n // batch every hash requested within the same tick into one call\n queueMicrotask(flush)\n }\n }\n\n /** Resolves a short url, exposing both the value and its loading state */\n function resolve(\n input: MaybeRefOrGetter<string | undefined>,\n ): ComputedRef<ResolvedUrl> {\n return computed(() => {\n const url = toValue(input)\n const hash = url ? extractHash(url) : undefined\n if (!hash) {\n return { url, loading: false }\n }\n const resolved = cache.get(hash)\n if (resolved !== undefined) {\n return { url: resolved, loading: false }\n }\n request(hash)\n return { url, loading: !settled.has(hash) }\n })\n }\n\n /**\n * Resolves every short url embedded in a free-text string, replacing each\n * with its real target (full substitution). Unresolved hashes stay as short\n * urls until their batch settles. Meant for exported/copied content (email,\n * message bodies) and prose, where a short url must become the real one.\n */\n function resolveText(\n input: MaybeRefOrGetter<string | undefined>,\n ): ComputedRef<string> {\n return computed(() => {\n const text = toValue(input) ?? ''\n if (!text) {\n return text\n }\n return text.replace(FULL_SHORT_URL_RE, (full, hash: string) => {\n const resolved = cache.get(hash)\n if (resolved !== undefined) {\n return resolved\n }\n request(hash)\n return full\n })\n })\n }\n\n return { resolve, resolveText }\n}\n\nexport type ShortUrlResolver = ReturnType<typeof createShortUrlResolver>\n\nconst ShortUrlResolverKey: InjectionKey<ShortUrlResolver> =\n Symbol('shortUrlResolver')\n\n/** Call once in the chat root, passing the api client's batch resolver */\nexport function provideShortUrlResolver(\n batchResolve: ShortUrlBatchResolver,\n): ShortUrlResolver {\n const resolver = createShortUrlResolver(batchResolve)\n provide(ShortUrlResolverKey, resolver)\n return resolver\n}\n\n/** No-op fallback when no resolver is provided: returns urls untouched */\nconst identityResolver: ShortUrlResolver = {\n resolve: (input) =>\n computed(() => ({ url: toValue(input), loading: false })),\n resolveText: (input) => computed(() => toValue(input) ?? ''),\n}\n\nexport function useShortUrlResolver(): ShortUrlResolver {\n return inject(ShortUrlResolverKey, identityResolver)\n}\n","var dn=Object.defineProperty,gn=Object.defineProperties;var hn=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable;var P=(n,r,e)=>r in n?dn(n,r,{enumerable:true,configurable:true,writable:true,value:e}):n[r]=e,I=(n,r)=>{for(var e in r||(r={}))mn.call(r,e)&&P(n,e,r[e]);if(M)for(var e of M(r))pn.call(r,e)&&P(n,e,r[e]);return n},b=(n,r)=>gn(n,hn(r));var kn=n=>{let r=new Uint8Array(n.length+1),e=false,i=false,o=0;for(;o<n.length;){if(n[o]===\"\\\\\"&&o+1<n.length&&n[o+1]===\"`\"){let s=e||i?1:0;r[o+1]=s,r[o+2]=s,o+=2;continue}if(n.substring(o,o+3)===\"```\"){i=!i;let s=e||i?1:0,t=Math.min(o+3,n.length);for(let a=o+1;a<=t;a+=1)r[a]=s;o=t;continue}!i&&n[o]===\"`\"&&(e=!e),r[o+1]=e||i?1:0,o+=1;}return r},$=null,c=(n,r)=>{let e=$;return (e===null||e.text!==n)&&(e={text:n,lookup:kn(n)},$=e),e.lookup[Math.min(r,n.length)]===1},In=(n,r)=>{let e=n.substring(r,r+3)===\"```\",i=r>0&&n.substring(r-1,r+2)===\"```\",o=r>1&&n.substring(r-2,r+1)===\"```\";return e||i||o},E=n=>{let r=0;for(let e=0;e<n.length;e+=1){if(n[e]===\"\\\\\"&&e+1<n.length&&n[e+1]===\"`\"){e+=1;continue}n[e]===\"`\"&&!In(n,e)&&(r+=1);}return r},d=(n,r)=>{let e=false,i=false,o=-1;for(let s=0;s<n.length;s+=1){if(n[s]===\"\\\\\"&&s+1<n.length&&n[s+1]===\"`\"){s+=1;continue}if(n.substring(s,s+3)===\"```\"){i=!i,s+=2;continue}if(!i&&n[s]===\"`\")if(e){if(o<r&&r<s)return true;e=false,o=-1;}else e=true,o=s;}return false};var bn=/^(\\s*(?:[-*+]|\\d+[.)]) +)>(=?\\s*[$]?\\d)/gm,y=n=>!n||typeof n!=\"string\"||!n.includes(\">\")?n:n.replace(bn,(r,e,i,o)=>c(n,o)?r:`${e}\\\\>${i}`);var N=/(\\*\\*)([^*]*\\*?)$/,R=/(__)([^_]*?)$/,U=/(\\*\\*\\*)([^*]*?)$/,W=/(\\*)([^*]*?)$/,D=/(_)([^_]*?)$/,K=/(`)([^`]*?)$/,H=/(~~)([^~]*?)$/,g=/^[\\s_~*`]*$/,C=/^[\\s]*[-*+][\\s]+$/,w=/[\\p{L}\\p{N}_]/u,G=/^```[^`\\n]*```?$/,F=/^\\*{4,}$/;var X=/(__)([^_]+)_$/,z=/(~~)([^~]+)~$/;var A=/~~/g;var f=n=>{if(!n)return false;let r=n.charCodeAt(0);return r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===95?true:w.test(n)},Cn=(n,r)=>{let e=false;for(let i=0;i<r;i+=1)n[i]===\"`\"&&n[i+1]===\"`\"&&n[i+2]===\"`\"&&(e=!e,i+=2);return e},Y=(n,r)=>{let e=1;for(let i=r-1;i>=0;i-=1)if(n[i]===\"]\")e+=1;else if(n[i]===\"[\"&&(e-=1,e===0))return i;return -1},T=(n,r)=>{let e=1;for(let i=r+1;i<n.length;i+=1)if(n[i]===\"[\")e+=1;else if(n[i]===\"]\"&&(e-=1,e===0))return i;return -1},An=n=>n===\"inlineLatex\"||n===\"blockLatex\",Tn=(n,r)=>r===\"[\"&&n===\"none\"?\"blockLatex\":r===\"]\"&&n===\"blockLatex\"?\"none\":r===\"(\"&&n===\"none\"?\"inlineLatex\":r===\")\"&&n===\"inlineLatex\"?\"none\":null,Ln=(n,r)=>r?n===\"blockDollar\"?\"none\":\"blockDollar\":n===\"blockDollar\"?n:n===\"inlineDollar\"?\"none\":\"inlineDollar\",h=(n,r)=>{let e=\"none\";for(let i=0;i<n.length&&i<r;i+=1){if(n[i]===\"\\\\\"&&n[i+1]===\"$\"){i+=1;continue}if(n[i]===\"\\\\\"){let o=Tn(e,n[i+1]);if(o!==null){e=o,i+=1;continue}}if(n[i]===\"$\"&&!An(e)){let o=n[i+1]===\"$\";e=Ln(e,o),o&&(i+=1);}}return e!==\"none\"},Bn=(n,r)=>{for(let e=r;e<n.length;e+=1){if(n[e]===\")\")return true;if(n[e]===`\n`)return false}return false},m=(n,r)=>{for(let e=r-1;e>=0;e-=1){if(n[e]===\")\")return false;if(n[e]===\"(\")return e>0&&n[e-1]===\"]\"?Bn(n,r):false;if(n[e]===`\n`)return false}return false},j=(n,r)=>{for(let e=r-1;e>=0;e-=1){if(n[e]===\">\")return false;if(n[e]===\"<\"){let i=e+1<n.length?n[e+1]:\"\";return i>=\"a\"&&i<=\"z\"||i>=\"A\"&&i<=\"Z\"||i===\"/\"}if(n[e]===`\n`)return false}return false},p=(n,r,e)=>{let i=0;for(let l=r-1;l>=0;l-=1)if(n[l]===`\n`){i=l+1;break}let o=n.length;for(let l=r;l<n.length;l+=1)if(n[l]===`\n`){o=l;break}let s=n.substring(i,o),t=0,a=false;for(let l of s)if(l===e)t+=1;else if(l!==\" \"&&l!==\"\t\"){a=true;break}return t>=3&&!a};var Z=n=>n.includes(\"$\")||n.includes(\"\\\\(\")||n.includes(\"\\\\[\"),Sn=(n,r,e,i)=>e===\"\\\\\"||Z(n)&&h(n,r)?true:e!==\"*\"&&i===\"*\"?(r<n.length-2?n[r+2]:\"\")!==\"*\":e===\"*\"||(!e||e===\" \"||e===\"\t\"||e===`\n`)&&(!i||i===\" \"||i===\"\t\"||i===`\n`),k=n=>n===\" \"||n===\"\t\"||n===`\n`,On=(n,r)=>!!(n&&r&&f(n)&&f(r)),_n=(n,r,e,i)=>{let o=On(n,r),s=!!r&&!k(r),t=!!n&&!k(n);return o&&e%2===0&&!i?{count:false}:t&&e%2===1||s?{count:true,inWordAsteriskChain:o}:{count:false}},v=n=>{let r=0,e=false,i=false,o=n.length;for(let s=0;s<o;s+=1){if(n[s]===\"`\"&&s+2<o&&n[s+1]===\"`\"&&n[s+2]===\"`\"){e=!e,s+=2;continue}if(e)continue;if(n[s]!==\"*\"){f(n[s])||(i=false);continue}let t=s>0?n[s-1]:\"\",a=s<o-1?n[s+1]:\"\";if(Sn(n,s,t,a))continue;let l=_n(t,a,r,i);l.count&&(r+=1,i=l.inWordAsteriskChain);}return r},Mn=(n,r,e,i)=>!!(e===\"\\\\\"||Z(n)&&h(n,r)||m(n,r)||j(n,r)||e===\"_\"||i===\"_\"||e&&i&&f(e)&&f(i)),Pn=n=>{let r=0,e=false,i=n.length;for(let o=0;o<i;o+=1){if(n[o]===\"`\"&&o+2<i&&n[o+1]===\"`\"&&n[o+2]===\"`\"){e=!e,o+=2;continue}if(e||n[o]!==\"_\")continue;let s=o>0?n[o-1]:\"\",t=o<i-1?n[o+1]:\"\";Mn(n,o,s,t)||(r+=1);}return r},$n=n=>{let r=0,e=0,i=false;for(let o=0;o<n.length;o+=1){if(n[o]===\"`\"&&o+2<n.length&&n[o+1]===\"`\"&&n[o+2]===\"`\"){e>=3&&(r+=Math.floor(e/3)),e=0,i=!i,o+=2;continue}i||(n[o]===\"*\"?e+=1:(e>=3&&(r+=Math.floor(e/3)),e=0));}return e>=3&&(r+=Math.floor(e/3)),r},L=n=>{let r=0,e=false;for(let i=0;i<n.length;i+=1){if(n[i]===\"`\"&&i+2<n.length&&n[i+1]===\"`\"&&n[i+2]===\"`\"){e=!e,i+=2;continue}e||n[i]===\"*\"&&i+1<n.length&&n[i+1]===\"*\"&&(r+=1,i+=1);}return r},Q=n=>{let r=0,e=false;for(let i=0;i<n.length;i+=1){if(n[i]===\"`\"&&i+2<n.length&&n[i+1]===\"`\"&&n[i+2]===\"`\"){e=!e,i+=2;continue}e||n[i]===\"_\"&&i+1<n.length&&n[i+1]===\"_\"&&(r+=1,i+=1);}return r},En=(n,r,e)=>{if(!r||g.test(r))return true;let o=n.substring(0,e).lastIndexOf(`\n`),s=o===-1?0:o+1,t=n.substring(s,e);return C.test(t)&&r.includes(`\n`)?true:p(n,e,\"*\")},q=n=>{let r=n.match(N);if(!r)return n;let e=r[2],i=n.lastIndexOf(r[1]);return c(n,i)||d(n,i)||En(n,e,i)?n:L(n)%2===1?e.endsWith(\"*\")?`${n}*`:`${n}**`:n},yn=(n,r,e)=>{if(!r||g.test(r))return true;let o=n.substring(0,e).lastIndexOf(`\n`),s=o===-1?0:o+1,t=n.substring(s,e);return C.test(t)&&r.includes(`\n`)?true:p(n,e,\"_\")},J=n=>{let r=n.match(R);if(!r){let s=n.match(X);if(s){let t=n.lastIndexOf(s[1]);if(!(c(n,t)||d(n,t))&&Q(n)%2===1)return `${n}_`}return n}let e=r[2],i=n.lastIndexOf(r[1]);return c(n,i)||d(n,i)||yn(n,e,i)?n:Q(n)%2===1?`${n}__`:n},Nn=n=>{let r=false;for(let e=0;e<n.length;e+=1){if(n[e]===\"`\"&&e+2<n.length&&n[e+1]===\"`\"&&n[e+2]===\"`\"){r=!r,e+=2;continue}if(!r&&n[e]===\"*\"&&n[e-1]!==\"*\"&&n[e+1]!==\"*\"&&n[e-1]!==\"\\\\\"&&!h(n,e)){let i=e>0?n[e-1]:\"\",o=e<n.length-1?n[e+1]:\"\",s=!i||k(i),t=!o||k(o);if(s&&t||i&&o&&f(i)&&f(o)||t)continue;return e}}return -1},V=n=>{if(!n.match(W))return n;let e=Nn(n);if(e===-1||c(n,e)||d(n,e))return n;let i=n.substring(e+1);return !i||g.test(i)?n:v(n)%2===1?`${n}*`:n},x=n=>{let r=false;for(let e=0;e<n.length;e+=1){if(n[e]===\"`\"&&e+2<n.length&&n[e+1]===\"`\"&&n[e+2]===\"`\"){r=!r,e+=2;continue}if(!r&&n[e]===\"_\"&&n[e-1]!==\"_\"&&n[e+1]!==\"_\"&&n[e-1]!==\"\\\\\"&&!h(n,e)&&!m(n,e)){let i=e>0?n[e-1]:\"\",o=e<n.length-1?n[e+1]:\"\";if(i&&o&&f(i)&&f(o))continue;return e}}return -1},Rn=n=>{let r=n.length;for(;r>0&&n[r-1]===`\n`;)r-=1;if(r<n.length){let e=n.slice(0,r),i=n.slice(r);return `${e}_${i}`}return `${n}_`},Un=n=>{if(!n.endsWith(\"**\"))return null;let r=n.slice(0,-2);if(L(r)%2!==1)return null;let i=r.indexOf(\"**\"),o=x(r);return i!==-1&&o!==-1&&i<o?`${r}_**`:null},nn=n=>{if(!n.match(D))return n;let e=x(n);if(e===-1)return n;let i=n.substring(e+1);if(!i||g.test(i)||c(n,e)||d(n,e))return n;if(Pn(n)%2===1){let s=Un(n);return s!==null?s:Rn(n)}return n},Wn=n=>{let r=L(n),e=v(n);return r%2===0&&e%2===0},Dn=(n,r,e)=>!r||g.test(r)||c(n,e)||d(n,e)?true:p(n,e,\"*\"),en=n=>{if(F.test(n))return n;let r=n.match(U);if(!r)return n;let e=r[2],i=n.lastIndexOf(r[1]);return Dn(n,e,i)?n:$n(n)%2===1?Wn(n)?n:`${n}***`:n};var Kn=/<[a-zA-Z/][^>]*$/,rn=n=>{let r=n.match(Kn);return !r||r.index===void 0||c(n,r.index)?n:n.substring(0,r.index).trimEnd()};var Hn=n=>!n.match(G)||n.includes(`\n`)?null:n.endsWith(\"``\")&&!n.endsWith(\"```\")?`${n}\\``:n,wn=n=>(n.match(/```/g)||[]).length%2===1,on=n=>{let r=Hn(n);if(r!==null)return r;let e=n.match(K);if(e&&!wn(n)){let i=e[2];if(!i||g.test(i))return n;if(E(n)%2===1)return `${n}\\``}return n};var sn=(n,r)=>r>=2&&n.substring(r-2,r+1)===\"```\"||r>=1&&n.substring(r-1,r+2)===\"```\"||r<=n.length-3&&n.substring(r,r+3)===\"```\",Gn=n=>{let r=0,e=false;for(let i=0;i<n.length-1;i+=1)n[i]===\"`\"&&!sn(n,i)&&(e=!e),!e&&n[i]===\"$\"&&n[i+1]===\"$\"&&(r+=1,i+=1);return r},Fn=n=>{let r=0,e=false;for(let i=0;i<n.length;i+=1){if(n[i]===\"\\\\\"){i+=1;continue}if(n[i]===\"`\"&&!sn(n,i)){e=!e;continue}!e&&n[i]===\"$\"&&(i+1<n.length&&n[i+1]===\"$\"?i+=1:r+=1);}return r},Xn=n=>{if(n.endsWith(\"$\")&&!n.endsWith(\"$$\"))return `${n}$`;let r=n.indexOf(\"$$\");return r!==-1&&n.indexOf(`\n`,r)!==-1&&!n.endsWith(`\n`)?`${n}\n$$`:`${n}$$`},tn=n=>Gn(n)%2===0?n:Xn(n),ln=n=>Fn(n)%2===1?`${n}$`:n;var zn=(n,r,e)=>{if(n.substring(r+2).includes(\")\"))return null;let o=Y(n,r);if(o===-1||c(n,o))return null;let s=o>0&&n[o-1]===\"!\",t=s?o-1:o,a=n.substring(0,t);if(s)return a;let l=n.substring(o+1,r);return e===\"text-only\"?`${a}${l}`:`${a}[${l}](streamdown:incomplete-link)`},an=(n,r)=>{for(let e=0;e<r;e++)if(n[e]===\"[\"&&!c(n,e)){if(e>0&&n[e-1]===\"!\")continue;let i=T(n,e);if(i===-1)return e;if(i+1<n.length&&n[i+1]===\"(\"){let o=n.indexOf(\")\",i+2);o!==-1&&(e=o);}}return r},Yn=(n,r,e)=>{let i=r>0&&n[r-1]===\"!\",o=i?r-1:r;if(!n.substring(r+1).includes(\"]\")){let a=n.substring(0,o);if(i)return a;if(e===\"text-only\"){let l=an(n,r);return n.substring(0,l)+n.substring(l+1)}return `${n}](streamdown:incomplete-link)`}if(T(n,r)===-1){let a=n.substring(0,o);if(i)return a;if(e===\"text-only\"){let l=an(n,r);return n.substring(0,l)+n.substring(l+1)}return `${n}](streamdown:incomplete-link)`}return null},B=(n,r=\"protocol\")=>{let e=n.lastIndexOf(\"](\");if(e!==-1&&!c(n,e)){let i=zn(n,e,r);if(i!==null)return i}for(let i=n.length-1;i>=0;i-=1)if(n[i]===\"[\"&&!c(n,i)){let o=Yn(n,i,r);if(o!==null)return o}return n};var jn=/^-{1,2}$/,Qn=/^[\\s]*-{1,2}[\\s]+$/,Zn=/^={1,2}$/,vn=/^[\\s]*={1,2}[\\s]+$/,cn=n=>{if(!n||typeof n!=\"string\")return n;let r=n.lastIndexOf(`\n`);if(r===-1)return n;let e=n.substring(r+1),i=n.substring(0,r),o=e.trim();if(jn.test(o)&&!e.match(Qn)){let t=i.split(`\n`).at(-1);if(t&&t.trim().length>0)return `${n}\\u200B`}if(Zn.test(o)&&!e.match(vn)){let t=i.split(`\n`).at(-1);if(t&&t.trim().length>0)return `${n}\\u200B`}return n};var qn=/([\\p{L}\\p{N}_])~(?!~)(?=[\\p{L}\\p{N}_])/gu,un=n=>!n||typeof n!=\"string\"||!n.includes(\"~\")?n:n.replace(qn,(r,e,i)=>{let o=i+e.length;return c(n,o)?r:`${e}\\\\~`});var fn=n=>{var e,i;let r=n.match(H);if(r){let o=r[2];if(!o||g.test(o))return n;let s=n.lastIndexOf(r[1]);if(c(n,s)||d(n,s))return n;if(((e=n.match(A))==null?void 0:e.length)%2===1)return `${n}~~`}else {let o=n.match(z);if(o){let s=n.lastIndexOf(o[0].slice(0,2));if(c(n,s)||d(n,s))return n;if(((i=n.match(A))==null?void 0:i.length)%2===1)return `${n}~`}}return n};var S=n=>n!==false,Jn=n=>n===true,u={SINGLE_TILDE:0,COMPARISON_OPERATORS:5,HTML_TAGS:10,SETEXT_HEADINGS:15,LINKS:20,BOLD_ITALIC:30,BOLD:35,ITALIC_DOUBLE_UNDERSCORE:40,ITALIC_SINGLE_ASTERISK:41,ITALIC_SINGLE_UNDERSCORE:42,INLINE_CODE:50,STRIKETHROUGH:60,KATEX:70,INLINE_KATEX:75,DEFAULT:100},Vn=[{handler:{name:\"singleTilde\",handle:un,priority:u.SINGLE_TILDE},optionKey:\"singleTilde\"},{handler:{name:\"comparisonOperators\",handle:y,priority:u.COMPARISON_OPERATORS},optionKey:\"comparisonOperators\"},{handler:{name:\"htmlTags\",handle:rn,priority:u.HTML_TAGS},optionKey:\"htmlTags\"},{handler:{name:\"setextHeadings\",handle:cn,priority:u.SETEXT_HEADINGS},optionKey:\"setextHeadings\"},{handler:{name:\"links\",handle:B,priority:u.LINKS},optionKey:\"links\",earlyReturn:n=>n.endsWith(\"](streamdown:incomplete-link)\")},{handler:{name:\"boldItalic\",handle:en,priority:u.BOLD_ITALIC},optionKey:\"boldItalic\"},{handler:{name:\"bold\",handle:q,priority:u.BOLD},optionKey:\"bold\"},{handler:{name:\"italicDoubleUnderscore\",handle:J,priority:u.ITALIC_DOUBLE_UNDERSCORE},optionKey:\"italic\"},{handler:{name:\"italicSingleAsterisk\",handle:V,priority:u.ITALIC_SINGLE_ASTERISK},optionKey:\"italic\"},{handler:{name:\"italicSingleUnderscore\",handle:nn,priority:u.ITALIC_SINGLE_UNDERSCORE},optionKey:\"italic\"},{handler:{name:\"inlineCode\",handle:on,priority:u.INLINE_CODE},optionKey:\"inlineCode\"},{handler:{name:\"strikethrough\",handle:fn,priority:u.STRIKETHROUGH},optionKey:\"strikethrough\"},{handler:{name:\"katex\",handle:tn,priority:u.KATEX},optionKey:\"katex\"},{handler:{name:\"inlineKatex\",handle:ln,priority:u.INLINE_KATEX},optionKey:\"inlineKatex\"}],xn=n=>{var e;let r=(e=n==null?void 0:n.linkMode)!=null?e:\"protocol\";return Vn.filter(({handler:i,optionKey:o})=>i.name===\"links\"?S(n==null?void 0:n.links)||S(n==null?void 0:n.images):i.name===\"inlineKatex\"?Jn(n==null?void 0:n.inlineKatex):S(n==null?void 0:n[o])).map(({handler:i,earlyReturn:o})=>i.name===\"links\"?{handler:b(I({},i),{handle:s=>B(s,r)}),earlyReturn:r===\"protocol\"?o:void 0}:{handler:i,earlyReturn:o})},ne=(n,r)=>{var t;if(!n||typeof n!=\"string\")return n;let e=n.endsWith(\" \")&&!n.endsWith(\" \")?n.slice(0,-1):n,i=xn(r),o=((t=r==null?void 0:r.handlers)!=null?t:[]).map(a=>{var l;return {handler:b(I({},a),{priority:(l=a.priority)!=null?l:u.DEFAULT}),earlyReturn:void 0}}),s=[...i,...o].sort((a,l)=>{var O,_;return ((O=a.handler.priority)!=null?O:0)-((_=l.handler.priority)!=null?_:0)});for(let{handler:a,earlyReturn:l}of s)if(e=a.handle(e),l!=null&&l(e))return e;return e},We=ne;export{We as default,Cn as isWithinCodeBlock,m as isWithinLinkOrImageUrl,h as isWithinMathBlock,f as isWordChar};","/**\n * marked v18.0.13 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction A(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=A();function U(l){T=l}var E={exec:()=>null};function I(l){let e=[];return t=>{let n=Math.max(0,Math.min(3,t-1)),i=e[n];return i||(i=l(n),e[n]=i),i}}function d(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(i,r)=>{let o=typeof r==\"string\"?r:r.source;return o=o.replace(m.caret,\"$1\"),t=t.replace(i,o),n},getRegex:()=>new RegExp(t,e)};return n}var we=((l=\"\")=>{try{return!!new RegExp(\"(?<=1)(?<!1)\"+l)}catch{return!1}})(),m={codeRemoveIndent:/^(?: {0,3}\\t| {1,4})/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \\t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:I(l=>new RegExp(`^ {0,${l}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`)),hrRegex:I(l=>new RegExp(`^ {0,${l}}((?:-[ \t]*){3,}|(?:_[ \t]*){3,}|(?:\\\\*[ \t]*){3,})(?:\\\\n+|$)`)),fencesBeginRegex:I(l=>new RegExp(`^ {0,${l}}(?:\\`\\`\\`|~~~)`)),headingBeginRegex:I(l=>new RegExp(`^ {0,${l}}#`)),htmlBeginRegex:I(l=>new RegExp(`^ {0,${l}}(?:</?(?:${H})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,\"i\")),blockquoteBeginRegex:I(l=>new RegExp(`^ {0,${l}}>`))},ye=/^(?:[ \\t]*(?:\\n|$))+/,Pe=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,Se=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,v=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,_e=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,K=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,le=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,ue=d(le).replace(/bull/g,K).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\\s|$)/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),$e=d(le).replace(/bull/g,K).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\\s|$)/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),W=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \\t]+\\n)[^\\n]+)*)/,Le=/^[^\\n]+/,X=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,ze=d(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",X).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),Ee=d(/^(bull)([ \\t][^\\n]*?)?(?:\\n|$)/).replace(/bull/g,K).getRegex(),H=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",J=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,Me=d(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n*|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>[^\\\\n]*\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>[^\\\\n]*\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>[^\\\\n]*\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",J).replace(\"tag\",H).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),pe=l=>d(W).replace(\"hr\",v).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*(?:\\\\n|$))|~~~)[^\\\\n]*(?:\\\\n|$)\").replace(\"list\",l).replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Ae=pe(/ {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]/),Ie=pe(/ {0,3}(?:[*+-]|\\d{1,9}[.)])(?:[ \\t]|\\n|$)/),Ce=d(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",Ie).getRegex(),V={blockquote:Ce,code:Pe,def:ze,fences:Se,heading:_e,hr:v,html:Me,lheading:ue,list:Ee,newline:ye,paragraph:Ae,table:E,text:Le},ie=d(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",v).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*(?:\\\\n|$))|~~~)[^\\\\n]*(?:\\\\n|$)\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Be={...V,lheading:$e,table:ie,paragraph:d(W).replace(\"hr\",v).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",ie).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*(?:\\\\n|$))|~~~)[^\\\\n]*(?:\\\\n|$)\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]+[^ \\\\t\\\\n]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex()},De={...V,html:d(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",J).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:E,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:d(W).replace(\"hr\",v).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",ue).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},qe=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,ve=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,ce=/^( {2,}|\\\\)\\n(?!\\s*$)[ \\t]*/,He=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,_=/[\\p{P}\\p{S}]/u,C=/[\\s\\p{P}\\p{S}]/u,Z=/[^\\s\\p{P}\\p{S}]/u,Ze=d(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,C).getRegex(),Ge=/[\\p{Pi}\\p{Ps}\"']/u,he=/(?!~)[\\p{P}\\p{S}]/u,Qe=/(?!~)[\\s\\p{P}\\p{S}]/u,Ne=/(?:[^\\s\\p{P}\\p{S}]|~)/u,je=d(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",we?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),de=/^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/,Ue=d(de,\"u\").replace(/punct/g,_).getRegex(),Fe=d(de,\"u\").replace(/punct/g,he).getRegex(),Ke=/^(?:\\*+(?:((?!\\*)(?!openQuote)punct)|([^\\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\\s_]))?/,We=d(Ke,\"u\").replace(/openQuote/g,Ge).replace(/punct/g,_).getRegex(),ke=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Xe=d(ke,\"gu\").replace(/notPunctSpace/g,Z).replace(/punctSpace/g,C).replace(/punct/g,_).getRegex(),Je=d(ke,\"gu\").replace(/notPunctSpace/g,Ne).replace(/punctSpace/g,Qe).replace(/punct/g,he).getRegex(),Ve=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)[\\\\s](\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|(?:(?!\\\\*)punct|notPunctSpace)(\\\\*+)(?!\\\\*)(?=notPunctSpace)\",Ye=d(Ve,\"gu\").replace(/notPunctSpace/g,Z).replace(/punctSpace/g,C).replace(/punct/g,_).getRegex(),et=d(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,Z).replace(/punctSpace/g,C).replace(/punct/g,_).getRegex(),tt=\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\\\s](_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)\",nt=d(tt,\"gu\").replace(/notPunctSpace/g,Z).replace(/punctSpace/g,C).replace(/punct/g,_).getRegex(),rt=d(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,_).getRegex(),st=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",it=d(st,\"gu\").replace(/notPunctSpace/g,Z).replace(/punctSpace/g,C).replace(/punct/g,_).getRegex(),ot=d(/\\\\(punct)/,\"gu\").replace(/punct/g,_).getRegex(),at=d(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),lt=d(J).replace(\"(?:-->|$)\",\"-->\").getRegex(),ut=d(\"^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",lt).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),ge=/\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]/,N=d(/(?:\\[(?:brackets|\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/).replace(\"brackets\",ge).getRegex(),pt=d(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/).replace(\"label\",N).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]+|(?=\\))/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),ct=d(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",N).replace(\"ref\",X).getRegex(),ht=d(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",X).getRegex(),oe=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\]){1,999}/,dt=d(/(?:[^\\[\\]\\\\`]*(?:\\[(?:brackets|\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\]))){0,999}?[^\\[\\]\\\\`]*?/).replace(\"brackets\",ge).getRegex(),kt=d(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",d(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",dt).replace(\"ref\",oe).getRegex()).replace(\"nolink\",d(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",oe).getRegex()).getRegex(),ae=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Y={_backpedal:E,anyPunctuation:ot,autolink:at,blockSkip:je,br:ce,code:ve,del:E,delLDelim:E,delRDelim:E,emStrongLDelim:Ue,emStrongRDelimAst:Xe,emStrongRDelimUnd:et,escape:qe,link:pt,nolink:ht,punctuation:Ze,reflink:ct,reflinkSearch:kt,tag:ut,text:He,url:E},gt={...Y,emStrongLDelim:We,emStrongRDelimAst:Ye,emStrongRDelimUnd:nt,link:d(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",N).getRegex(),reflink:d(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",N).getRegex()},F={...Y,emStrongRDelimAst:Je,emStrongLDelim:Fe,delLDelim:rt,delRDelim:it,url:d(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",ae).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:d(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",ae).getRegex()},ft={...F,br:d(ce).replace(\"{2,}\",\"*\").getRegex(),text:d(F.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},G={normal:V,gfm:Be,pedantic:De},B={normal:Y,gfm:F,breaks:ft,pedantic:gt};var mt={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},fe=l=>mt[l];function R(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,fe)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,fe);return l}function ee(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function te(l,e){let t=l.replace(m.findPipe,(r,o,s)=>{let u=!1,a=o;for(;--a>=0&&s[a]===\"\\\\\";)u=!u;return u?\"|\":\" |\"}),n=t.split(m.splitPipe),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;i<n.length;i++)n[i]=n[i].trim().replace(m.slashPipe,\"|\");return n}function $(l,e,t){let n=l.length;if(n===0)return\"\";let i=0;for(;i<n;){let r=l.charAt(n-i-1);if(r===e&&!t)i++;else if(r!==e&&t)i++;else break}return l.slice(0,n-i)}function ne(l){let e=l.split(`\n`),t=e.length-1;for(;t>=0&&m.blankLine.test(e[t]);)t--;return e.length-t<=2?l:e.slice(0,t+1).join(`\n`)}function D(l){return l.toLowerCase().toUpperCase().toLowerCase()}function me(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function xe(l,e=0){let t=e,n=\"\";for(let i of l)if(i===\"\t\"){let r=4-t%4;n+=\" \".repeat(r),t+=r}else n+=i,t++;return n}function be(l,e,t,n,i){let r=e.href,o=e.title||null,s=l[1].replace(i.other.outputLinkReplace,\"$1\"),u=l[0].charAt(0)===\"!\";n.state.inLink=!0;let a=n.state.linkEmitted,p=n.state.inRawBlock;n.state.linkEmitted=!1;let c=n.inlineTokens(s),h=n.state.linkEmitted;if(n.state.linkEmitted=a,n.state.inLink=!1,!u){if(h){n.state.inRawBlock=p;return}n.state.linkEmitted=!0}return{type:u?\"image\":\"link\",raw:t,href:r,title:o,text:s,tokens:c}}function xt(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let i=n[1];return e.split(`\n`).map(r=>{let o=r.match(t.other.beginningSpace);if(o===null)return r;let[s]=o;return r.slice(Math.min(s.length,i.length))}).join(`\n`)}function Re(l,e,t,n){if(!e.includes(\"<\"))return!1;for(let i=0;i<e.length;i++){if(e[i]===\"\\\\\"){i++;continue}if(e[i]===\"`\"){let s=n.inline.code.exec(e.slice(i));if(s){i+=s[0].length-1;continue}}if(e[i]!==\"<\")continue;let r=l.slice(t+i),o=n.inline.tag.exec(r)||n.inline.autolink.exec(r);if(o){if(o[0].length>e.length-i)return!0;i+=o[0].length-1}}return!1}var y=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:ne(t[0]),i=n.replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:n,codeBlockStyle:\"indented\",text:i}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],i=xt(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:i}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let i=$(n,\"#\");(this.options.pedantic||!i||this.rules.other.endingSpaceTabChar.test(i))&&(n=i.trim())}return{type:\"heading\",raw:$(t[0],`\n`),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:$(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=$(t[0],`\n`).split(`\n`),i=\"\",r=\"\",o=[];for(;n.length>0;){let s=!1,u=[],a;for(a=0;a<n.length;a++)if(this.rules.other.blockquoteStart.test(n[a]))u.push(n[a]),s=!0;else if(!s)u.push(n[a]);else break;n=n.slice(a);let p=u.join(`\n`),c=p.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");i=i?`${i}\n${p}`:p,r=r?`${r}\n${c}`:c;let h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,o,!0),this.lexer.state.top=h,n.length===0)break;let k=o.at(-1);if(k?.type===\"code\")break;if(k?.type===\"blockquote\"){let O=k,g=n.join(`\n`),w=O.raw+`\n`+g.replace(this.rules.other.blockquoteSetextReplace2,\"\"),z=this.blockquote(w);o[o.length-1]=z,i=`${i}\n${g}`,r=r.substring(0,r.length-O.text.length)+z.text;break}else if(k?.type===\"list\"){let O=k,g=O.raw+`\n`+n.join(`\n`),w=this.list(g);o[o.length-1]=w,i=i.substring(0,i.length-k.raw.length)+w.raw,r=r.substring(0,r.length-O.raw.length)+w.raw,n=g.substring(o.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:i,tokens:o,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),i=n.length>1,r={type:\"list\",raw:\"\",ordered:i,start:i?+n.slice(0,-1):\"\",loose:!1,items:[]};n=i?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=i?n:\"[*+-]\");let o=this.rules.other.listItemRegex(n),s=!1;for(;e;){let a=!1,p=\"\",c=\"\";if(!(t=o.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let h=xe(t[2].split(`\n`,1)[0],t[1].length),k=e.split(`\n`,1)[0],O=!h.trim(),g=0;if(this.options.pedantic?(g=2,c=h.trimStart()):O?g=t[1].length+1:(g=h.search(this.rules.other.nonSpaceChar),g=g>4?1:g,c=h.slice(g),g+=t[1].length),O&&this.rules.other.blankLine.test(k)&&(p+=k+`\n`,e=e.substring(k.length+1),a=!0),!a){let w=this.rules.other.nextBulletRegex(g),z=this.rules.other.hrRegex(g),re=this.rules.other.fencesBeginRegex(g),se=this.rules.other.headingBeginRegex(g),Te=this.rules.other.htmlBeginRegex(g),Oe=this.rules.other.blockquoteBeginRegex(g);for(;e;){let j=e.split(`\n`,1)[0],q;if(k=j,this.options.pedantic?(k=k.replace(this.rules.other.listReplaceNesting,\" \"),q=k):q=k.replace(this.rules.other.tabCharGlobal,\" \"),re.test(k)||se.test(k)||Te.test(k)||Oe.test(k)||w.test(k)||z.test(k))break;if(q.search(this.rules.other.nonSpaceChar)>=g||!k.trim())c+=`\n`+q.slice(g);else{if(O||h.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||re.test(h)||se.test(h)||z.test(h))break;c+=`\n`+k}O=!k.trim(),p+=j+`\n`,e=e.substring(j.length+1),h=q.slice(g)}}r.loose||(s?r.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(s=!0)),r.items.push({type:\"list_item\",raw:p,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),r.raw+=p}let u=r.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let a of r.items)if(this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]),!r.loose){let p=a.tokens.filter(h=>h.type===\"space\"),c=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));r.loose=c}for(let a of r.items){let p=a.tokens[0];if(a.task&&(p?.type===\"text\"||p?.type===\"paragraph\")){a.text=a.text.replace(this.rules.other.listReplaceTask,\"\"),p.raw=p.raw.replace(this.rules.other.listReplaceTask,\"\"),p.text=p.text.replace(this.rules.other.listReplaceTask,\"\");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,\"\");break}let c=this.rules.other.listTaskCheckbox.exec(a.raw);if(c){let h={type:\"checkbox\",raw:c[0]+\" \",checked:c[0]!==\"[ ]\"};a.checked=h.checked,r.loose?a.tokens[0]&&[\"paragraph\",\"text\"].includes(a.tokens[0].type)&&\"tokens\"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=h.raw+a.tokens[0].raw,a.tokens[0].text=h.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(h)):a.tokens.unshift({type:\"paragraph\",raw:h.raw,text:h.raw,tokens:[h]}):a.tokens.unshift(h)}}else a.task&&(a.task=!1)}if(r.loose)for(let a of r.items){a.loose=!0;for(let p of a.tokens)p.type===\"text\"&&(p.type=\"paragraph\")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=ne(t[0]);return{type:\"html\",block:!0,raw:n,pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=D(t[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),i=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:$(t[0],`\n`),href:i,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=te(t[1]),i=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],o={type:\"table\",raw:$(t[0],`\n`),header:[],align:[],rows:[]};if(n.length===i.length){for(let s of i)this.rules.other.tableAlignRight.test(s)?o.align.push(\"right\"):this.rules.other.tableAlignCenter.test(s)?o.align.push(\"center\"):this.rules.other.tableAlignLeft.test(s)?o.align.push(\"left\"):o.align.push(null);for(let s=0;s<n.length;s++)o.header.push({text:n[s],tokens:this.lexer.inline(n[s]),header:!0,align:o.align[s]});for(let s of r)o.rows.push(te(s,o.header.length).map((u,a)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:o.align[a]})));return o}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:\"heading\",raw:$(t[0],`\n`),depth:t[2].charAt(0)===\"=\"?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[0].charAt(0)===\"!\"?2:1;if(!this.options.pedantic&&Re(e,t[1],n,this.rules))return;let i=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(i)){if(!this.rules.other.endAngleBracket.test(i))return;let s=$(i.slice(0,-1),\"\\\\\");if((i.length-s.length)%2===0)return}else{let s=me(t[2],\"()\");if(s===-2)return;if(s>-1){let a=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,a).trim(),t[3]=\"\"}}let r=t[2],o=\"\";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],o=s[3])}else o=t[3]?t[3].slice(1,-1):\"\";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(i)?r=r.slice(1):r=r.slice(1,-1)),be(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\"),title:o&&o.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let i=n[0].charAt(0)===\"!\"?2:1;if(!this.options.pedantic&&Re(e,n[1],i,this.rules))return;let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),o=t[D(r)];if(!o){let s=n[0].charAt(0);return{type:\"text\",raw:s,text:s}}return be(n,o,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||!i[1]&&!i[2]&&!i[3]&&!i[4]||i[4]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[3]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let o=[...i[0]].length-1,s,u,a=o,p=0,c=i[0][0],h=n===c,k=c===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(k.lastIndex=0,t=t.slice(-1*e.length+o);(i=k.exec(t))!==null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s)continue;if(u=[...s].length,i[3]||i[4]){a+=u;continue}else if(i[5]||i[6]){if(o%3&&!((o+u)%3)){p+=u;continue}if(h)break}if(a-=u,a>0)continue;u=Math.min(u,u+a+p);let O=[...i[0]][0].length,g=e.slice(0,o+i.index+O+u);if(Math.min(o,u)%2){let z=g.slice(1,-1);return{type:\"em\",raw:g,text:z,tokens:this.lexer.inlineTokens(z)}}let w=g.slice(2,-2);return{type:\"strong\",raw:g,text:w,tokens:this.lexer.inlineTokens(w)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),i=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return i&&r&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let i=this.rules.inline.delLDelim.exec(e);if(!i)return;if(!(i[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let o=[...i[0]].length-1,s,u,a=o,p=this.rules.inline.delRDelim;for(p.lastIndex=0,t=t.slice(-1*e.length+o);(i=p.exec(t))!==null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s||(u=[...s].length,u!==o))continue;if(i[3]||i[4]){a+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a);let c=[...i[0]][0].length,h=e.slice(0,o+i.index+c+u),k=h.slice(o,-o);return{type:\"del\",raw:h,text:k,tokens:this.lexer.inlineTokens(k)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,i;return t[2]===\"@\"?(n=t[1],i=\"mailto:\"+n):(n=t[1],i=n),{type:\"link\",raw:t[0],text:n,href:i,autolink:!0,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,i;if(t[2]===\"@\")n=t[0],i=\"mailto:\"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(r!==t[0]);n=t[0],t[1]===\"www.\"?i=\"http://\"+t[0]:i=t[0]}return{type:\"link\",raw:t[0],text:n,href:i,autolink:!0,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new y,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let t={other:m,block:G.normal,inline:B.normal};this.options.pedantic?(t.block=G.pedantic,t.inline=B.pedantic):this.options.gfm&&(t.block=G.gfm,this.options.breaks?t.inline=B.breaks:t.inline=B.gfm),this.tokenizer.rules=t}static get rules(){return{block:G,inline:B}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));let i=1/0;for(;e;){if(e.length<i)i=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let r;if(this.options.extensions?.block?.some(s=>(r=s.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let s=t.at(-1);r.raw.length===1&&s!==void 0?s.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let o=e;if(this.options.extensions?.startBlock){let s=1/0,u=e.slice(1),a;this.options.extensions.startBlock.forEach(p=>{a=p.call({lexer:this},u),typeof a==\"number\"&&a>=0&&(s=Math.min(s,a))}),s<1/0&&s>=0&&(o=e.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(o))){let s=t.at(-1);n&&s?.type===\"paragraph\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r),n=o.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes(\"[\"))return!1;let t=this.tokenizer.rules.inline.link;for(let n of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(n[0])&&e.charAt(n.index-1)!==\"!\")return!0;for(let n of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let i=n[0],r=i.lastIndexOf(\"[\");if(!(i.charAt(0)===\"!\"||!Object.hasOwn(this.tokens.links,D(i.slice(r+1,-1))))&&!(r>1&&this.linkInText(i.slice(1,r-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links&&e.includes(\"[\")){let s=this.tokenizer.rules.inline.reflinkSearch,u=a=>{let p=a.lastIndexOf(\"[\");if(!Object.hasOwn(this.tokens.links,D(a.slice(p+1,-1))))return a;if(p>1&&a.charAt(0)!==\"!\"){let c=a.slice(1,p-1);if(this.linkInText(c))return\"[\"+c.replace(s,u)+\"][\"+\"a\".repeat(a.length-p-2)+\"]\"}return\"[\"+\"a\".repeat(a.length-2)+\"]\"};n=n.replace(s,u)}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,s=>\"+\".repeat(s.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(s,u,a)=>{let p=a?a.length:0;return s.slice(0,p)+\"[\"+\"a\".repeat(s.length-p-2)+\"]\"}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,r=\"\",o=1/0;for(;e;){if(e.length<o)o=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}i||(r=\"\"),i=!1;let s;if(this.options.extensions?.inline?.some(a=>(s=a.call({lexer:this},e,t))?(e=e.substring(s.raw.length),t.push(s),!0):!1))continue;if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);let a=t.at(-1);s.type===\"text\"&&a?.type===\"text\"?(a.raw+=s.raw,a.text+=s.text):t.push(s);continue}if(s=this.tokenizer.emStrong(e,n,r)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.del(e,n,r)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),t.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),t.push(s);continue}let u=e;if(this.options.extensions?.startInline){let a=1/0,p=e.slice(1),c;this.options.extensions.startInline.forEach(h=>{c=h.call({lexer:this},p),typeof c==\"number\"&&c>=0&&(a=Math.min(a,c))}),a<1/0&&a>=0&&(u=e.substring(0,a+1))}if(s=this.tokenizer.inlineText(u)){e=e.substring(s.raw.length),s.raw.slice(-1)!==\"_\"&&(r=s.raw.slice(-1)),i=!0;let a=t.at(-1);a?.type===\"text\"?(a.raw+=s.raw,a.text+=s.text):t.push(s);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=\"Infinite loop on byte: \"+e;if(this.options.silent)console.error(t);else throw new Error(t)}};var P=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let i=(t||\"\").match(m.notSpaceStart)?.[0],r=e?e.replace(m.endingNewline,\"\")+`\n`:\"\";return i?'<pre><code class=\"language-'+R(i)+'\">'+(n?r:R(r,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?r:R(r,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,i=\"\";for(let s=0;s<e.items.length;s++){let u=e.items[s];i+=this.listitem(u)}let r=t?\"ol\":\"ul\",o=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+r+o+`>\n`+i+\"</\"+r+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let r=0;r<e.header.length;r++)n+=this.tablecell(e.header[r]);t+=this.tablerow({text:n});let i=\"\";for(let r=0;r<e.rows.length;r++){let o=e.rows[r];n=\"\";for(let s=0;s<o.length;s++)n+=this.tablecell(o[s]);i+=this.tablerow({text:n})}return i&&(i=`<tbody>${i}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+i+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${R(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:i,autolink:r}){let o=r?R(n,!0):this.parser.parseInline(i),s=ee(e);if(s===null)return o;e=R(s,r);let u='<a href=\"'+e+'\"';return t&&(u+=' title=\"'+R(t)+'\"'),u+=\">\"+o+\"</a>\",u}image({href:e,title:t,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let r=ee(e);if(r===null)return R(n);e=r;let o=`<img src=\"${R(e)}\" alt=\"${R(n)}\"`;return t&&(o+=` title=\"${R(t)}\"`),o+=\">\",o}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:R(e.text)}};var L=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class l{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new L}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e){this.renderer.parser=this;let t=\"\";for(let n=0;n<e.length;n++){let i=e[n];if(this.options.extensions?.renderers?.[i.type]){let o=i,s=this.options.extensions.renderers[o.type].call({parser:this},o);if(s!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"checkbox\",\"html\",\"def\",\"paragraph\",\"text\"].includes(o.type)){t+=s||\"\";continue}}let r=i;switch(r.type){case\"space\":{t+=this.renderer.space(r);break}case\"hr\":{t+=this.renderer.hr(r);break}case\"heading\":{t+=this.renderer.heading(r);break}case\"code\":{t+=this.renderer.code(r);break}case\"table\":{t+=this.renderer.table(r);break}case\"blockquote\":{t+=this.renderer.blockquote(r);break}case\"list\":{t+=this.renderer.list(r);break}case\"checkbox\":{t+=this.renderer.checkbox(r);break}case\"html\":{t+=this.renderer.html(r);break}case\"def\":{t+=this.renderer.def(r);break}case\"paragraph\":{t+=this.renderer.paragraph(r);break}case\"text\":{t+=this.renderer.text(r);break}default:{let o='Token with \"'+r.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=\"\";for(let i=0;i<e.length;i++){let r=e[i];if(this.options.extensions?.renderers?.[r.type]){let s=this.options.extensions.renderers[r.type].call({parser:this},r);if(s!==!1||![\"escape\",\"html\",\"link\",\"image\",\"checkbox\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(r.type)){n+=s||\"\";continue}}let o=r;switch(o.type){case\"escape\":{n+=t.text(o);break}case\"html\":{n+=t.html(o);break}case\"link\":{n+=t.link(o);break}case\"image\":{n+=t.image(o);break}case\"checkbox\":{n+=t.checkbox(o);break}case\"strong\":{n+=t.strong(o);break}case\"em\":{n+=t.em(o);break}case\"codespan\":{n+=t.codespan(o);break}case\"br\":{n+=t.br(o);break}case\"del\":{n+=t.del(o);break}case\"text\":{n+=t.text(o);break}default:{let s='Token with \"'+o.type+'\" type was not found.';if(this.options.silent)return console.error(s),\"\";throw new Error(s)}}}return n}};var S=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?x.lex:x.lexInline}provideParser(e=this.block){return e?b.parse:b.parseInline}};var Q=class{defaults=A();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=P;TextRenderer=L;Lexer=x;Tokenizer=y;Hooks=S;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let i of e)switch(n=n.concat(t.call(this,i)),i.type){case\"table\":{let r=i;for(let o of r.header)n=n.concat(this.walkTokens(o.tokens,t));for(let o of r.rows)for(let s of o)n=n.concat(this.walkTokens(s.tokens,t));break}case\"list\":{let r=i;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=i;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(o=>{let s=r[o].flat(1/0);n=n.concat(this.walkTokens(s,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error(\"extension name required\");if(\"renderer\"in r){let o=t.renderers[r.name];o?t.renderers[r.name]=function(...s){let u=r.renderer.apply(this,s);return u===!1&&(u=o.apply(this,s)),u}:t.renderers[r.name]=r.renderer}if(\"tokenizer\"in r){if(!r.level||r.level!==\"block\"&&r.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let o=t[r.level];o?o.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level===\"block\"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level===\"inline\"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}\"childTokens\"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),n.renderer){let r=this.defaults.renderer||new P(this.defaults);for(let o in n.renderer){if(!(o in r))throw new Error(`renderer '${o}' does not exist`);if([\"options\",\"parser\"].includes(o))continue;let s=o,u=n.renderer[s],a=r[s];r[s]=(...p)=>{let c=u.apply(r,p);return c===!1&&(c=a.apply(r,p)),c||\"\"}}i.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new y(this.defaults);for(let o in n.tokenizer){if(!(o in r))throw new Error(`tokenizer '${o}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(o))continue;let s=o,u=n.tokenizer[s],a=r[s];r[s]=(...p)=>{let c=u.apply(r,p);return c===!1&&(c=a.apply(r,p)),c}}i.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new S;for(let o in n.hooks){if(!(o in r))throw new Error(`hook '${o}' does not exist`);if([\"options\",\"block\"].includes(o))continue;let s=o,u=n.hooks[s],a=r[s];S.passThroughHooks.has(o)?r[s]=p=>{if(this.defaults.async&&S.passThroughHooksRespectAsync.has(o))return(async()=>{let h=await u.call(r,p);return a.call(r,h)})();let c=u.call(r,p);return a.call(r,c)}:r[s]=(...p)=>{if(this.defaults.async)return(async()=>{let h=await u.apply(r,p);return h===!1&&(h=await a.apply(r,p)),h})();let c=u.apply(r,p);return c===!1&&(c=a.apply(r,p)),c}}i.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,o=n.walkTokens;i.walkTokens=function(s){let u=[];return u.push(o.call(this,s)),r&&(u=u.concat(r.call(this,s))),u}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,i)=>{let r={...i},o={...this.defaults,...r},s=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&r.async===!1)return s(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return s(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return s(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(o.hooks&&(o.hooks.options=o,o.hooks.block=e),o.async)return(async()=>{let u=o.hooks?await o.hooks.preprocess(n):n,p=await(o.hooks?await o.hooks.provideLexer(e):e?x.lex:x.lexInline)(u,o),c=o.hooks?await o.hooks.processAllTokens(p):p;o.walkTokens&&await Promise.all(this.walkTokens(c,o.walkTokens));let k=await(o.hooks?await o.hooks.provideParser(e):e?b.parse:b.parseInline)(c,o);return o.hooks?await o.hooks.postprocess(k):k})().catch(s);try{o.hooks&&(n=o.hooks.preprocess(n));let a=(o.hooks?o.hooks.provideLexer(e):e?x.lex:x.lexInline)(n,o);o.hooks&&(a=o.hooks.processAllTokens(a)),o.walkTokens&&this.walkTokens(a,o.walkTokens);let c=(o.hooks?o.hooks.provideParser(e):e?b.parse:b.parseInline)(a,o);return o.hooks&&(c=o.hooks.postprocess(c)),c}catch(u){return s(u)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let i=\"<p>An error occurred:</p><pre>\"+R(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(i):i}if(t)return Promise.reject(n);throw n}}};var M=new Q;function f(l,e){return M.parse(l,e)}f.options=f.setOptions=function(l){return M.setOptions(l),f.defaults=M.defaults,U(f.defaults),f};f.getDefaults=A;f.defaults=T;function bt(...l){return M.use(...l),f.defaults=M.defaults,U(f.defaults),f}f.use=bt;f.walkTokens=function(l,e){return M.walkTokens(l,e)};f.parseInline=M.parseInline;f.Parser=b;f.parser=b.parse;f.Renderer=P;f.TextRenderer=L;f.Lexer=x;f.lexer=x.lex;f.Tokenizer=y;f.Hooks=S;f.parse=f;var un=f.options,pn=f.setOptions,cn=f.walkTokens,hn=f.parseInline,dn=f,kn=b.parse,gn=x.lex;export{S as Hooks,x as Lexer,Q as Marked,b as Parser,P as Renderer,L as TextRenderer,y as Tokenizer,T as defaults,A as getDefaults,gn as lexer,f as marked,un as options,dn as parse,hn as parseInline,kn as parser,pn as setOptions,bt as use,cn as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","<script setup lang=\"ts\">\n import remend from 'remend'\n import { marked, type Token } from 'marked'\n import {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n useTemplateRef,\n watch,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import {\n loadCdnCss,\n getShadowRoot,\n isSameSite,\n stripProviderCitationMarkers,\n } from 'utils'\n import { useShortUrlResolver } from 'composables'\n\n export type StreamingAnimation =\n 'fadeIn' | 'blurIn' | 'dropIn' | 'slideUp' | 'fadeAndScale' | null\n\n const props = withDefaults(\n defineProps<{\n markdown?: string\n loading?: boolean\n animation?: StreamingAnimation\n animationDuration?: string\n isDark?: boolean\n }>(),\n {\n markdown: '',\n loading: false,\n animation: 'fadeIn',\n animationDuration: '0.3s',\n isDark: false,\n },\n )\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n // --- Lazy-loaded heavy dependencies ---\n\n let beautifulMermaidPromise: Promise<\n typeof import('beautiful-mermaid')\n > | null = null\n function loadBeautifulMermaid() {\n if (!beautifulMermaidPromise) {\n beautifulMermaidPromise = import('beautiful-mermaid')\n }\n return beautifulMermaidPromise\n }\n\n let katexPromise: Promise<(typeof import('katex'))['default']> | null = null\n function loadKatex() {\n if (!katexPromise) {\n katexPromise = import('katex').then((mod) => mod.default)\n }\n return katexPromise\n }\n\n // --- Marked extensions ---\n\n const inlineKatexRule =\n /^(\\${1,2})(?!\\$)((?:\\\\.|[^\\\\\\n])*?(?:\\\\.|[^\\\\\\n$]))\\1(?=[\\s?!.,:\\uFF1F\\uFF01\\u3002\\uFF0C\\uFF1A]|$)/\n const blockKatexRule = /^(\\${1,2})\\n((?:\\\\[^]|[^\\\\])+?)\\n\\1(?:\\n|$)/\n\n function encodeKatexHtml(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n }\n\n function renderKatexPlaceholder(\n text: string,\n displayMode: boolean,\n ): string {\n const encoded = encodeKatexHtml(text)\n return `<span class=\"katex-pending\" data-katex=\"${encoded}\" data-display=\"${displayMode}\"></span>`\n }\n\n marked.use({\n extensions: [\n {\n name: 'inlineKatex',\n level: 'inline',\n start: (src) => {\n const idx = src.indexOf('$')\n if (idx === -1) return undefined\n if (idx === 0 || src.charAt(idx - 1) === ' ') return idx\n return undefined\n },\n tokenizer(src) {\n const match = src.match(inlineKatexRule)\n if (!match) return\n return {\n type: 'inlineKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return renderKatexPlaceholder(token.text, token.displayMode)\n },\n },\n {\n name: 'blockKatex',\n level: 'block',\n tokenizer(src) {\n const match = src.match(blockKatexRule)\n if (!match) return\n return {\n type: 'blockKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return (\n renderKatexPlaceholder(token.text, token.displayMode) +\n '\\n'\n )\n },\n },\n ],\n })\n\n marked.use({\n extensions: [\n {\n name: 'thinking',\n level: 'block',\n start: (src) => src.indexOf('<thinking>'),\n tokenizer(src) {\n const match = /^<thinking>([\\s\\S]*?)<\\/thinking>/.exec(src)\n if (!match) return\n const token = {\n type: 'thinking',\n raw: match[0],\n text: match[1].trim(),\n tokens: [] as Token[],\n }\n this.lexer.blockTokens(token.text, token.tokens)\n return token\n },\n renderer(token) {\n return `<div class=\"thinking-block\">${this.parser.parse(token.tokens ?? [])}</div>`\n },\n },\n ],\n })\n\n // --- Custom renderer ---\n\n const renderer = new marked.Renderer()\n\n // marked escapes href and title inside its own link renderer. This\n // override replaces that renderer, so until now both went into `v-html`\n // verbatim: a quote in the URL closed the attribute and everything after\n // it became markup, in a document written by a model and, through the\n // knowledge base, by whoever fed it.\n const escapeAttribute = (value: string) =>\n value\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n // Schemes that execute rather than navigate. The link becomes plain text,\n // so the reader still sees what it said.\n const UNSAFE_LINK_SCHEME = /^(?:javascript|data|vbscript|file):/i\n\n renderer.link = function ({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens)\n // Control characters go first: the browser strips them before reading\n // the scheme, so they are how `java\\tscript:` gets past a check.\n // eslint-disable-next-line no-control-regex -- they are the point here\n const target = (href ?? '').trim().replace(/[\\x00-\\x1f]/g, '')\n if (!target || UNSAFE_LINK_SCHEME.test(target)) {\n return text\n }\n const titleAttr = title ? ` title=\"${escapeAttribute(title)}\"` : ''\n const targetAttrs = isSameSite(target)\n ? ''\n : ' target=\"_blank\" rel=\"noopener noreferrer\"'\n return `<a href=\"${escapeAttribute(target)}\"${titleAttr}${targetAttrs}>${text}</a>`\n }\n\n renderer.table = function (token) {\n return `<div class=\"table-wrapper\">${marked.Renderer.prototype.table.call(this, token)}</div>`\n }\n\n const MERMAID_PREFIXES =\n /^(sequenceDiagram|graph|classDiagram|stateDiagram|erDiagram|flowchart|xychart-beta)/\n\n renderer.code = ({ text }) => {\n if (MERMAID_PREFIXES.test(text)) {\n return `<pre class=\"mermaid\">${text}</pre>`\n }\n return `<pre><code>${text}</code></pre>`\n }\n\n // --- Preprocessing pipeline ---\n\n function normalizeLatexDelimiters(md: string): string {\n return md\n .replace(/\\\\\\[([\\s\\S]*?)\\\\\\]/g, (_, content) => `$$${content}$$`)\n .replace(/\\\\\\(([\\s\\S]*?)\\\\\\)/g, (_, content) => `$${content}$`)\n .replace(/^(\\d+)\\.(?!\\s)/gm, '$1\\\\.')\n }\n\n /**\n * Strips JSON objects/arrays that appear outside fenced code blocks.\n * Some models dump tool-call JSON directly into the text response.\n */\n function stripLeakedJson(md: string): string {\n const fenced = new Set<number>()\n const fenceRe = /^(`{3,})[^\\n]*\\n([\\s\\S]*?)\\n\\1/gm\n let fenceMatch: RegExpExecArray | null\n while ((fenceMatch = fenceRe.exec(md)) !== null) {\n for (\n let i = fenceMatch.index;\n i < fenceMatch.index + fenceMatch[0].length;\n i++\n ) {\n fenced.add(i)\n }\n }\n\n return md\n .replace(\n /[{[]([\\s\\S]*?)[}\\]]/g,\n (match, _inner, offset: number) => {\n if (fenced.has(offset)) return match\n try {\n JSON.parse(match)\n return ''\n } catch {\n return match\n }\n },\n )\n .replace(/\\n{3,}/g, '\\n\\n')\n }\n\n // Runs on the accumulated text, not on deltas, so a marker split across two\n // stream chunks still gets caught once both have landed.\n const preprocessors: Array<(md: string) => string> = [\n stripProviderCitationMarkers,\n stripLeakedJson,\n remend,\n normalizeLatexDelimiters,\n ]\n\n // --- Computed HTML ---\n\n const containerRef = useTemplateRef<HTMLDivElement>('container')\n\n // Expand backend short urls (`/api/r/<hash>`) back to their real target so\n // prose (e.g. a bulleted list of links) shows/opens real urls, not the\n // token-cheap short ones the model sees. No-op when no resolver is provided.\n const { resolveText } = useShortUrlResolver()\n const expandedMarkdown = resolveText(() => props.markdown)\n\n const html = computed(() => {\n const md = preprocessors.reduce(\n (text, fn) => fn(text),\n expandedMarkdown.value,\n )\n return marked.parse(md, {\n async: false,\n breaks: true,\n renderer,\n }) as string\n })\n\n // --- Post-render processors ---\n\n async function renderMermaid() {\n if (props.loading) return\n\n await nextTick()\n const nodes = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre.mermaid:not([data-rendered])',\n )\n if (!nodes?.length) return\n\n const { renderMermaidSVG, THEMES } = await loadBeautifulMermaid()\n const theme = props.isDark\n ? THEMES['github-dark']\n : THEMES['github-light']\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const code = node.textContent?.trim()\n if (!code) continue\n\n try {\n const svg = renderMermaidSVG(code, theme)\n if (node.isConnected) {\n node.dataset.code = code\n node.innerHTML = svg\n node.setAttribute('data-rendered', 'true')\n }\n } catch {\n // Invalid syntax — node left untouched\n }\n }\n }\n\n async function highlightCode() {\n await nextTick()\n const blocks = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre:not(.mermaid) > code:not([data-highlighted])',\n )\n if (!blocks?.length) return\n\n const hljs = (await import('highlight.js/lib/common')).default\n for (const block of blocks) {\n hljs.highlightElement(block)\n block.setAttribute('data-highlighted', 'true')\n }\n }\n\n async function renderKatex() {\n await nextTick()\n const nodes =\n containerRef.value?.querySelectorAll<HTMLElement>('.katex-pending')\n if (!nodes?.length) return\n\n const katex = await loadKatex()\n // Keep this major in step with the installed katex: 0.18 prefixed the\n // internal class names (.sizing became .katex-sizing), so a stylesheet\n // from another major styles nothing. The widget pins the same major\n // again in its vite config, where katex is aliased to the CDN.\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/katex@0.18/dist/katex.min.css',\n getShadowRoot(containerRef.value),\n )\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const tex = node.dataset.katex\n if (!tex) continue\n const displayMode = node.dataset.display === 'true'\n try {\n node.innerHTML = katex.renderToString(tex, {\n throwOnError: false,\n displayMode,\n })\n node.classList.remove('katex-pending')\n } catch {\n // Invalid LaTeX — leave placeholder\n }\n }\n }\n\n async function rerenderMermaidOnThemeChange() {\n await nextTick()\n const nodes = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre.mermaid[data-rendered]',\n )\n if (!nodes?.length) return\n\n const { renderMermaidSVG, THEMES } = await loadBeautifulMermaid()\n const theme = props.isDark\n ? THEMES['github-dark']\n : THEMES['github-light']\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const code = node.dataset.code\n if (!code) continue\n try {\n node.innerHTML = renderMermaidSVG(code, theme)\n } catch {\n // Invalid syntax — leave as-is\n }\n }\n }\n\n /**\n * Markdown images come from model output (or from a scraped page), so their\n * urls die often. The markup is injected with `v-html`, so there is no place\n * to bind `@error`: `error` doesn't bubble but it does propagate in the\n * capture phase, so one container listener covers every image, including the\n * ones added by later stream chunks.\n */\n function handleImageError(event: Event) {\n const img = event.target\n if (!(img instanceof HTMLImageElement) || img.dataset.broken) {\n return\n }\n img.dataset.broken = 'true'\n const placeholder = document.createElement('span')\n placeholder.className = 'markdown-broken-image'\n placeholder.textContent = img.alt || $t('label.imageLoadError')\n placeholder.title = img.src\n img.replaceWith(placeholder)\n }\n\n onMounted(() => {\n containerRef.value?.addEventListener('error', handleImageError, true)\n })\n onBeforeUnmount(() => {\n containerRef.value?.removeEventListener('error', handleImageError, true)\n })\n\n watch([html, () => props.loading], renderMermaid, { immediate: true })\n watch(() => props.isDark, rerenderMermaidOnThemeChange)\n watch(html, highlightCode, { immediate: true })\n watch(html, renderKatex, { immediate: true })\n\n // --- Streaming animation (FlowToken-style) ---\n\n let prevCharCount = 0\n\n function createAnimatedSpan(text: string, delay: number): HTMLSpanElement {\n const span = document.createElement('span')\n span.style.cssText = `animation:ft-${props.animation} ${props.animationDuration} ease-out ${delay}ms both;display:inline-block`\n span.textContent = text\n span.addEventListener(\n 'animationend',\n () => {\n const parent = span.parentNode\n if (!parent) return\n parent.replaceChild(document.createTextNode(text), span)\n parent.normalize()\n },\n { once: true },\n )\n return span\n }\n\n function insertAnimatedWords(\n text: string,\n parent: Node,\n refNode: Node | null,\n startIndex: number,\n ): number {\n let idx = startIndex\n const parts = text.split(/(\\s+)/)\n for (const part of parts) {\n if (!part) continue\n if (/^\\s+$/.test(part)) {\n parent.insertBefore(document.createTextNode(part), refNode)\n continue\n }\n parent.insertBefore(createAnimatedSpan(part, idx * 30), refNode)\n idx++\n }\n return idx\n }\n\n function collectTextNodes(root: HTMLElement): Text[] {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n acceptNode(node) {\n if (\n node.parentElement?.closest(\n 'pre, code, .katex-pending, .markdown-broken-image',\n )\n ) {\n return NodeFilter.FILTER_REJECT\n }\n return NodeFilter.FILTER_ACCEPT\n },\n })\n const nodes: Text[] = []\n while (walker.nextNode()) {\n nodes.push(walker.currentNode as Text)\n }\n return nodes\n }\n\n function annotateNewContent() {\n if (!containerRef.value || !props.loading || !props.animation) return\n\n const textNodes = collectTextNodes(containerRef.value)\n let charsSeen = 0\n let wordIdx = 0\n\n for (const textNode of textNodes) {\n const text = textNode.textContent || ''\n const nodeStart = charsSeen\n const nodeEnd = charsSeen + text.length\n charsSeen = nodeEnd\n\n if (nodeEnd <= prevCharCount) continue\n\n const parent = textNode.parentNode\n if (!parent) continue\n\n // Entirely new node — animate all words\n if (nodeStart >= prevCharCount) {\n const ref = textNode.nextSibling\n parent.removeChild(textNode)\n wordIdx = insertAnimatedWords(text, parent, ref, wordIdx)\n continue\n }\n\n // Partially new — split and animate only the new portion\n const splitAt = prevCharCount - nodeStart\n const newTextNode = textNode.splitText(splitAt)\n const newText = newTextNode.textContent || ''\n const ref = newTextNode.nextSibling\n parent.removeChild(newTextNode)\n wordIdx = insertAnimatedWords(newText, parent, ref, wordIdx)\n }\n\n prevCharCount = charsSeen\n }\n\n watch(\n html,\n async () => {\n await nextTick()\n annotateNewContent()\n },\n { immediate: true },\n )\n\n watch(\n () => props.markdown,\n (newVal, oldVal) => {\n if (!newVal || (oldVal && newVal.length < oldVal.length)) {\n prevCharCount = 0\n }\n },\n )\n</script>\n\n<template>\n <div ref=\"container\" v-html=\"html\"></div>\n</template>\n\n<style>\n .markdown-broken-image {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\n max-width: 100%;\n padding: var(--spacing-4) var(--spacing-8);\n border: var(--border) dashed var(--color-surface-4);\n border-radius: var(--rounded-md);\n background-color: var(--color-surface-1);\n color: var(--color-word-4);\n font-size: var(--text-12);\n vertical-align: middle;\n }\n\n @keyframes ft-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes ft-blurIn {\n from {\n opacity: 0;\n filter: blur(4px);\n }\n to {\n opacity: 1;\n filter: blur(0px);\n }\n }\n\n @keyframes ft-dropIn {\n from {\n transform: translateY(-8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-slideUp {\n from {\n transform: translateY(8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-fadeAndScale {\n from {\n transform: scale(0.85);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import remend from 'remend'\n import { marked, type Token } from 'marked'\n import {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n useTemplateRef,\n watch,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import {\n loadCdnCss,\n getShadowRoot,\n isSameSite,\n stripProviderCitationMarkers,\n } from 'utils'\n import { useShortUrlResolver } from 'composables'\n\n export type StreamingAnimation =\n 'fadeIn' | 'blurIn' | 'dropIn' | 'slideUp' | 'fadeAndScale' | null\n\n const props = withDefaults(\n defineProps<{\n markdown?: string\n loading?: boolean\n animation?: StreamingAnimation\n animationDuration?: string\n isDark?: boolean\n }>(),\n {\n markdown: '',\n loading: false,\n animation: 'fadeIn',\n animationDuration: '0.3s',\n isDark: false,\n },\n )\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n // --- Lazy-loaded heavy dependencies ---\n\n let beautifulMermaidPromise: Promise<\n typeof import('beautiful-mermaid')\n > | null = null\n function loadBeautifulMermaid() {\n if (!beautifulMermaidPromise) {\n beautifulMermaidPromise = import('beautiful-mermaid')\n }\n return beautifulMermaidPromise\n }\n\n let katexPromise: Promise<(typeof import('katex'))['default']> | null = null\n function loadKatex() {\n if (!katexPromise) {\n katexPromise = import('katex').then((mod) => mod.default)\n }\n return katexPromise\n }\n\n // --- Marked extensions ---\n\n const inlineKatexRule =\n /^(\\${1,2})(?!\\$)((?:\\\\.|[^\\\\\\n])*?(?:\\\\.|[^\\\\\\n$]))\\1(?=[\\s?!.,:\\uFF1F\\uFF01\\u3002\\uFF0C\\uFF1A]|$)/\n const blockKatexRule = /^(\\${1,2})\\n((?:\\\\[^]|[^\\\\])+?)\\n\\1(?:\\n|$)/\n\n function encodeKatexHtml(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n }\n\n function renderKatexPlaceholder(\n text: string,\n displayMode: boolean,\n ): string {\n const encoded = encodeKatexHtml(text)\n return `<span class=\"katex-pending\" data-katex=\"${encoded}\" data-display=\"${displayMode}\"></span>`\n }\n\n marked.use({\n extensions: [\n {\n name: 'inlineKatex',\n level: 'inline',\n start: (src) => {\n const idx = src.indexOf('$')\n if (idx === -1) return undefined\n if (idx === 0 || src.charAt(idx - 1) === ' ') return idx\n return undefined\n },\n tokenizer(src) {\n const match = src.match(inlineKatexRule)\n if (!match) return\n return {\n type: 'inlineKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return renderKatexPlaceholder(token.text, token.displayMode)\n },\n },\n {\n name: 'blockKatex',\n level: 'block',\n tokenizer(src) {\n const match = src.match(blockKatexRule)\n if (!match) return\n return {\n type: 'blockKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return (\n renderKatexPlaceholder(token.text, token.displayMode) +\n '\\n'\n )\n },\n },\n ],\n })\n\n marked.use({\n extensions: [\n {\n name: 'thinking',\n level: 'block',\n start: (src) => src.indexOf('<thinking>'),\n tokenizer(src) {\n const match = /^<thinking>([\\s\\S]*?)<\\/thinking>/.exec(src)\n if (!match) return\n const token = {\n type: 'thinking',\n raw: match[0],\n text: match[1].trim(),\n tokens: [] as Token[],\n }\n this.lexer.blockTokens(token.text, token.tokens)\n return token\n },\n renderer(token) {\n return `<div class=\"thinking-block\">${this.parser.parse(token.tokens ?? [])}</div>`\n },\n },\n ],\n })\n\n // --- Custom renderer ---\n\n const renderer = new marked.Renderer()\n\n // marked escapes href and title inside its own link renderer. This\n // override replaces that renderer, so until now both went into `v-html`\n // verbatim: a quote in the URL closed the attribute and everything after\n // it became markup, in a document written by a model and, through the\n // knowledge base, by whoever fed it.\n const escapeAttribute = (value: string) =>\n value\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n // Schemes that execute rather than navigate. The link becomes plain text,\n // so the reader still sees what it said.\n const UNSAFE_LINK_SCHEME = /^(?:javascript|data|vbscript|file):/i\n\n renderer.link = function ({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens)\n // Control characters go first: the browser strips them before reading\n // the scheme, so they are how `java\\tscript:` gets past a check.\n // eslint-disable-next-line no-control-regex -- they are the point here\n const target = (href ?? '').trim().replace(/[\\x00-\\x1f]/g, '')\n if (!target || UNSAFE_LINK_SCHEME.test(target)) {\n return text\n }\n const titleAttr = title ? ` title=\"${escapeAttribute(title)}\"` : ''\n const targetAttrs = isSameSite(target)\n ? ''\n : ' target=\"_blank\" rel=\"noopener noreferrer\"'\n return `<a href=\"${escapeAttribute(target)}\"${titleAttr}${targetAttrs}>${text}</a>`\n }\n\n renderer.table = function (token) {\n return `<div class=\"table-wrapper\">${marked.Renderer.prototype.table.call(this, token)}</div>`\n }\n\n const MERMAID_PREFIXES =\n /^(sequenceDiagram|graph|classDiagram|stateDiagram|erDiagram|flowchart|xychart-beta)/\n\n renderer.code = ({ text }) => {\n if (MERMAID_PREFIXES.test(text)) {\n return `<pre class=\"mermaid\">${text}</pre>`\n }\n return `<pre><code>${text}</code></pre>`\n }\n\n // --- Preprocessing pipeline ---\n\n function normalizeLatexDelimiters(md: string): string {\n return md\n .replace(/\\\\\\[([\\s\\S]*?)\\\\\\]/g, (_, content) => `$$${content}$$`)\n .replace(/\\\\\\(([\\s\\S]*?)\\\\\\)/g, (_, content) => `$${content}$`)\n .replace(/^(\\d+)\\.(?!\\s)/gm, '$1\\\\.')\n }\n\n /**\n * Strips JSON objects/arrays that appear outside fenced code blocks.\n * Some models dump tool-call JSON directly into the text response.\n */\n function stripLeakedJson(md: string): string {\n const fenced = new Set<number>()\n const fenceRe = /^(`{3,})[^\\n]*\\n([\\s\\S]*?)\\n\\1/gm\n let fenceMatch: RegExpExecArray | null\n while ((fenceMatch = fenceRe.exec(md)) !== null) {\n for (\n let i = fenceMatch.index;\n i < fenceMatch.index + fenceMatch[0].length;\n i++\n ) {\n fenced.add(i)\n }\n }\n\n return md\n .replace(\n /[{[]([\\s\\S]*?)[}\\]]/g,\n (match, _inner, offset: number) => {\n if (fenced.has(offset)) return match\n try {\n JSON.parse(match)\n return ''\n } catch {\n return match\n }\n },\n )\n .replace(/\\n{3,}/g, '\\n\\n')\n }\n\n // Runs on the accumulated text, not on deltas, so a marker split across two\n // stream chunks still gets caught once both have landed.\n const preprocessors: Array<(md: string) => string> = [\n stripProviderCitationMarkers,\n stripLeakedJson,\n remend,\n normalizeLatexDelimiters,\n ]\n\n // --- Computed HTML ---\n\n const containerRef = useTemplateRef<HTMLDivElement>('container')\n\n // Expand backend short urls (`/api/r/<hash>`) back to their real target so\n // prose (e.g. a bulleted list of links) shows/opens real urls, not the\n // token-cheap short ones the model sees. No-op when no resolver is provided.\n const { resolveText } = useShortUrlResolver()\n const expandedMarkdown = resolveText(() => props.markdown)\n\n const html = computed(() => {\n const md = preprocessors.reduce(\n (text, fn) => fn(text),\n expandedMarkdown.value,\n )\n return marked.parse(md, {\n async: false,\n breaks: true,\n renderer,\n }) as string\n })\n\n // --- Post-render processors ---\n\n async function renderMermaid() {\n if (props.loading) return\n\n await nextTick()\n const nodes = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre.mermaid:not([data-rendered])',\n )\n if (!nodes?.length) return\n\n const { renderMermaidSVG, THEMES } = await loadBeautifulMermaid()\n const theme = props.isDark\n ? THEMES['github-dark']\n : THEMES['github-light']\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const code = node.textContent?.trim()\n if (!code) continue\n\n try {\n const svg = renderMermaidSVG(code, theme)\n if (node.isConnected) {\n node.dataset.code = code\n node.innerHTML = svg\n node.setAttribute('data-rendered', 'true')\n }\n } catch {\n // Invalid syntax — node left untouched\n }\n }\n }\n\n async function highlightCode() {\n await nextTick()\n const blocks = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre:not(.mermaid) > code:not([data-highlighted])',\n )\n if (!blocks?.length) return\n\n const hljs = (await import('highlight.js/lib/common')).default\n for (const block of blocks) {\n hljs.highlightElement(block)\n block.setAttribute('data-highlighted', 'true')\n }\n }\n\n async function renderKatex() {\n await nextTick()\n const nodes =\n containerRef.value?.querySelectorAll<HTMLElement>('.katex-pending')\n if (!nodes?.length) return\n\n const katex = await loadKatex()\n // Keep this major in step with the installed katex: 0.18 prefixed the\n // internal class names (.sizing became .katex-sizing), so a stylesheet\n // from another major styles nothing. The widget pins the same major\n // again in its vite config, where katex is aliased to the CDN.\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/katex@0.18/dist/katex.min.css',\n getShadowRoot(containerRef.value),\n )\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const tex = node.dataset.katex\n if (!tex) continue\n const displayMode = node.dataset.display === 'true'\n try {\n node.innerHTML = katex.renderToString(tex, {\n throwOnError: false,\n displayMode,\n })\n node.classList.remove('katex-pending')\n } catch {\n // Invalid LaTeX — leave placeholder\n }\n }\n }\n\n async function rerenderMermaidOnThemeChange() {\n await nextTick()\n const nodes = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre.mermaid[data-rendered]',\n )\n if (!nodes?.length) return\n\n const { renderMermaidSVG, THEMES } = await loadBeautifulMermaid()\n const theme = props.isDark\n ? THEMES['github-dark']\n : THEMES['github-light']\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const code = node.dataset.code\n if (!code) continue\n try {\n node.innerHTML = renderMermaidSVG(code, theme)\n } catch {\n // Invalid syntax — leave as-is\n }\n }\n }\n\n /**\n * Markdown images come from model output (or from a scraped page), so their\n * urls die often. The markup is injected with `v-html`, so there is no place\n * to bind `@error`: `error` doesn't bubble but it does propagate in the\n * capture phase, so one container listener covers every image, including the\n * ones added by later stream chunks.\n */\n function handleImageError(event: Event) {\n const img = event.target\n if (!(img instanceof HTMLImageElement) || img.dataset.broken) {\n return\n }\n img.dataset.broken = 'true'\n const placeholder = document.createElement('span')\n placeholder.className = 'markdown-broken-image'\n placeholder.textContent = img.alt || $t('label.imageLoadError')\n placeholder.title = img.src\n img.replaceWith(placeholder)\n }\n\n onMounted(() => {\n containerRef.value?.addEventListener('error', handleImageError, true)\n })\n onBeforeUnmount(() => {\n containerRef.value?.removeEventListener('error', handleImageError, true)\n })\n\n watch([html, () => props.loading], renderMermaid, { immediate: true })\n watch(() => props.isDark, rerenderMermaidOnThemeChange)\n watch(html, highlightCode, { immediate: true })\n watch(html, renderKatex, { immediate: true })\n\n // --- Streaming animation (FlowToken-style) ---\n\n let prevCharCount = 0\n\n function createAnimatedSpan(text: string, delay: number): HTMLSpanElement {\n const span = document.createElement('span')\n span.style.cssText = `animation:ft-${props.animation} ${props.animationDuration} ease-out ${delay}ms both;display:inline-block`\n span.textContent = text\n span.addEventListener(\n 'animationend',\n () => {\n const parent = span.parentNode\n if (!parent) return\n parent.replaceChild(document.createTextNode(text), span)\n parent.normalize()\n },\n { once: true },\n )\n return span\n }\n\n function insertAnimatedWords(\n text: string,\n parent: Node,\n refNode: Node | null,\n startIndex: number,\n ): number {\n let idx = startIndex\n const parts = text.split(/(\\s+)/)\n for (const part of parts) {\n if (!part) continue\n if (/^\\s+$/.test(part)) {\n parent.insertBefore(document.createTextNode(part), refNode)\n continue\n }\n parent.insertBefore(createAnimatedSpan(part, idx * 30), refNode)\n idx++\n }\n return idx\n }\n\n function collectTextNodes(root: HTMLElement): Text[] {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n acceptNode(node) {\n if (\n node.parentElement?.closest(\n 'pre, code, .katex-pending, .markdown-broken-image',\n )\n ) {\n return NodeFilter.FILTER_REJECT\n }\n return NodeFilter.FILTER_ACCEPT\n },\n })\n const nodes: Text[] = []\n while (walker.nextNode()) {\n nodes.push(walker.currentNode as Text)\n }\n return nodes\n }\n\n function annotateNewContent() {\n if (!containerRef.value || !props.loading || !props.animation) return\n\n const textNodes = collectTextNodes(containerRef.value)\n let charsSeen = 0\n let wordIdx = 0\n\n for (const textNode of textNodes) {\n const text = textNode.textContent || ''\n const nodeStart = charsSeen\n const nodeEnd = charsSeen + text.length\n charsSeen = nodeEnd\n\n if (nodeEnd <= prevCharCount) continue\n\n const parent = textNode.parentNode\n if (!parent) continue\n\n // Entirely new node — animate all words\n if (nodeStart >= prevCharCount) {\n const ref = textNode.nextSibling\n parent.removeChild(textNode)\n wordIdx = insertAnimatedWords(text, parent, ref, wordIdx)\n continue\n }\n\n // Partially new — split and animate only the new portion\n const splitAt = prevCharCount - nodeStart\n const newTextNode = textNode.splitText(splitAt)\n const newText = newTextNode.textContent || ''\n const ref = newTextNode.nextSibling\n parent.removeChild(newTextNode)\n wordIdx = insertAnimatedWords(newText, parent, ref, wordIdx)\n }\n\n prevCharCount = charsSeen\n }\n\n watch(\n html,\n async () => {\n await nextTick()\n annotateNewContent()\n },\n { immediate: true },\n )\n\n watch(\n () => props.markdown,\n (newVal, oldVal) => {\n if (!newVal || (oldVal && newVal.length < oldVal.length)) {\n prevCharCount = 0\n }\n },\n )\n</script>\n\n<template>\n <div ref=\"container\" v-html=\"html\"></div>\n</template>\n\n<style>\n .markdown-broken-image {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\n max-width: 100%;\n padding: var(--spacing-4) var(--spacing-8);\n border: var(--border) dashed var(--color-surface-4);\n border-radius: var(--rounded-md);\n background-color: var(--color-surface-1);\n color: var(--color-word-4);\n font-size: var(--text-12);\n vertical-align: middle;\n }\n\n @keyframes ft-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes ft-blurIn {\n from {\n opacity: 0;\n filter: blur(4px);\n }\n to {\n opacity: 1;\n filter: blur(0px);\n }\n }\n\n @keyframes ft-dropIn {\n from {\n transform: translateY(-8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-slideUp {\n from {\n transform: translateY(8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-fadeAndScale {\n from {\n transform: scale(0.85);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n</style>\n"],"x_google_ignoreList":[2,3],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PkSvgViewer-DPpE9fiz.js","names":[],"sources":["../../../../packages/components/src/PkSvgViewer.vue","../../../../packages/components/src/PkSvgViewer.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { ref, onMounted, computed, watch } from 'vue'\n import { useLightbox } from './composables/useLightbox'\n import { useI18n } from 'vue-i18n'\n\n const props = defineProps<{\n svg?: string\n title?: string\n }>()\n\n const { t: $t } = useI18n()\n\n const svgRef = ref<HTMLDivElement | null>(null)\n const galleryRef = ref<HTMLElement>()\n\n const scale = ref(1)\n const translateX = ref(0)\n const translateY = ref(0)\n const startX = ref(0)\n const startY = ref(0)\n\n // PhotoSwipe integration\n const svgDataUrl = ref('')\n const svgWidth = ref(0)\n const svgHeight = ref(0)\n\n const { lightbox, init } = useLightbox({\n gallery: galleryRef,\n downloadable: true,\n openInNewTab: false,\n })\n\n const svgStyle = computed(() => ({\n transform: `translate(${translateX.value}px, ${translateY.value}px) scale(${scale.value})`,\n }))\n\n const zoomIn = () => {\n scale.value = Math.min(scale.value * 1.2, 10)\n }\n\n const zoomOut = () => {\n scale.value = Math.max(scale.value / 1.2, 0.1)\n }\n\n const reset = () => {\n scale.value = 1\n translateX.value = 0\n translateY.value = 0\n }\n\n const openLightbox = () => {\n if (svgDataUrl.value) {\n lightbox.value?.loadAndOpen(0)\n }\n }\n\n const isDragging = ref(false)\n\n // Pan logic\n const onMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n isDragging.value = true\n startX.value = e.clientX - translateX.value\n startY.value = e.clientY - translateY.value\n }\n\n const onMouseMove = (e: MouseEvent) => {\n if (!isDragging.value) return\n translateX.value = e.clientX - startX.value\n translateY.value = e.clientY - startY.value\n }\n\n const onMouseUp = () => {\n isDragging.value = false\n }\n\n function serializeSvg(): string | null {\n const svg = svgRef.value?.querySelector('svg')\n if (!svg) return null\n return new XMLSerializer().serializeToString(svg)\n }\n\n function updateSvgExport() {\n const svg = svgRef.value?.querySelector('svg')\n const serialized = serializeSvg()\n if (!svg || !serialized) return\n\n const viewBox = svg.viewBox?.baseVal\n svgWidth.value =\n viewBox?.width || svg.getBoundingClientRect().width || 1200\n svgHeight.value =\n viewBox?.height || svg.getBoundingClientRect().height || 800\n svgDataUrl.value = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(serialized)}`\n }\n\n watch(\n () => props.svg,\n () => {\n if (props.svg && svgRef.value) {\n svgRef.value.innerHTML = props.svg\n updateSvgExport()\n }\n },\n )\n\n onMounted(async () => {\n if (props.svg && svgRef.value) {\n svgRef.value.innerHTML = props.svg\n updateSvgExport()\n }\n await init()\n })\n</script>\n\n<template>\n <div\n class=\"pk-svg-viewer\"\n :class=\"{\n 'pk-svg-viewer--dragging': isDragging,\n }\">\n <!-- Hidden Gallery for Lightbox -->\n <div ref=\"galleryRef\" class=\"hidden\">\n <a\n v-if=\"svgDataUrl\"\n :href=\"svgDataUrl\"\n :data-pswp-src=\"svgDataUrl\"\n :data-pswp-width=\"svgWidth\"\n :data-pswp-height=\"svgHeight\"\n :title=\"title\" />\n </div>\n\n <!-- SVG Stage -->\n <div\n class=\"pk-svg-viewer__stage\"\n @mousedown=\"onMouseDown\"\n @mousemove=\"onMouseMove\"\n @mouseup=\"onMouseUp\"\n @mouseleave=\"onMouseUp\">\n <div\n ref=\"svgRef\"\n :style=\"svgStyle\"\n class=\"pk-svg-viewer__content\" />\n </div>\n\n <!-- Floating Toolbar -->\n <div class=\"pk-svg-viewer__toolbar\">\n <VvButtonGroup\n modifiers=\"compact\"\n class=\"bg-surface-1 shadow-md overflow-hidden\">\n <transition name=\"fade\">\n <VvButton\n key=\"reset\"\n modifiers=\"action-small\"\n :disabled=\"\n scale === 1 && translateX === 0 && translateY === 0\n \"\n icon=\"ri:aspect-ratio-line\"\n :title=\"$t('action.reset')\"\n @click=\"reset\" />\n </transition>\n <VvButton\n v-if=\"svgDataUrl\"\n modifiers=\"action-small\"\n icon=\"ri:zoom-out-line\"\n :title=\"$t('action.zoomOut')\"\n @click=\"zoomOut\" />\n <VvButton\n modifiers=\"action-small\"\n icon=\"ri:zoom-in-line\"\n :title=\"$t('action.zoomIn')\"\n @click=\"zoomIn\" />\n <VvButton\n v-if=\"svgDataUrl\"\n modifiers=\"action-small\"\n icon=\"ri:fullscreen-line\"\n :title=\"$t('action.expand')\"\n @click=\"openLightbox\" />\n </VvButtonGroup>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-svg-viewer {\n position: relative;\n overflow: hidden;\n background-color: var(--color-surface-2);\n width: 100%;\n height: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &__content {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: grab;\n transition: transform 0.3s ease-out;\n transform-origin: center center;\n\n svg {\n max-width: 100%;\n max-height: 100%;\n height: auto;\n width: auto;\n }\n }\n\n &__toolbar {\n position: absolute;\n top: var(--spacing-8);\n right: var(--spacing-8);\n z-index: var(--z-dropdown);\n opacity: 0;\n transition: var(--transition-opacity);\n }\n\n &__stage {\n width: 100%;\n height: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n }\n\n &:hover {\n .pk-svg-viewer__toolbar {\n opacity: 1;\n }\n }\n\n &--dragging {\n .pk-svg-viewer__toolbar {\n opacity: 0.5 !important;\n pointer-events: none;\n\n & * {\n pointer-events: none;\n }\n }\n\n .pk-svg-viewer__content {\n cursor: grabbing !important;\n }\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import { ref, onMounted, computed, watch } from 'vue'\n import { useLightbox } from './composables/useLightbox'\n import { useI18n } from 'vue-i18n'\n\n const props = defineProps<{\n svg?: string\n title?: string\n }>()\n\n const { t: $t } = useI18n()\n\n const svgRef = ref<HTMLDivElement | null>(null)\n const galleryRef = ref<HTMLElement>()\n\n const scale = ref(1)\n const translateX = ref(0)\n const translateY = ref(0)\n const startX = ref(0)\n const startY = ref(0)\n\n // PhotoSwipe integration\n const svgDataUrl = ref('')\n const svgWidth = ref(0)\n const svgHeight = ref(0)\n\n const { lightbox, init } = useLightbox({\n gallery: galleryRef,\n downloadable: true,\n openInNewTab: false,\n })\n\n const svgStyle = computed(() => ({\n transform: `translate(${translateX.value}px, ${translateY.value}px) scale(${scale.value})`,\n }))\n\n const zoomIn = () => {\n scale.value = Math.min(scale.value * 1.2, 10)\n }\n\n const zoomOut = () => {\n scale.value = Math.max(scale.value / 1.2, 0.1)\n }\n\n const reset = () => {\n scale.value = 1\n translateX.value = 0\n translateY.value = 0\n }\n\n const openLightbox = () => {\n if (svgDataUrl.value) {\n lightbox.value?.loadAndOpen(0)\n }\n }\n\n const isDragging = ref(false)\n\n // Pan logic\n const onMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n isDragging.value = true\n startX.value = e.clientX - translateX.value\n startY.value = e.clientY - translateY.value\n }\n\n const onMouseMove = (e: MouseEvent) => {\n if (!isDragging.value) return\n translateX.value = e.clientX - startX.value\n translateY.value = e.clientY - startY.value\n }\n\n const onMouseUp = () => {\n isDragging.value = false\n }\n\n function serializeSvg(): string | null {\n const svg = svgRef.value?.querySelector('svg')\n if (!svg) return null\n return new XMLSerializer().serializeToString(svg)\n }\n\n function updateSvgExport() {\n const svg = svgRef.value?.querySelector('svg')\n const serialized = serializeSvg()\n if (!svg || !serialized) return\n\n const viewBox = svg.viewBox?.baseVal\n svgWidth.value =\n viewBox?.width || svg.getBoundingClientRect().width || 1200\n svgHeight.value =\n viewBox?.height || svg.getBoundingClientRect().height || 800\n svgDataUrl.value = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(serialized)}`\n }\n\n watch(\n () => props.svg,\n () => {\n if (props.svg && svgRef.value) {\n svgRef.value.innerHTML = props.svg\n updateSvgExport()\n }\n },\n )\n\n onMounted(async () => {\n if (props.svg && svgRef.value) {\n svgRef.value.innerHTML = props.svg\n updateSvgExport()\n }\n await init()\n })\n</script>\n\n<template>\n <div\n class=\"pk-svg-viewer\"\n :class=\"{\n 'pk-svg-viewer--dragging': isDragging,\n }\">\n <!-- Hidden Gallery for Lightbox -->\n <div ref=\"galleryRef\" class=\"hidden\">\n <a\n v-if=\"svgDataUrl\"\n :href=\"svgDataUrl\"\n :data-pswp-src=\"svgDataUrl\"\n :data-pswp-width=\"svgWidth\"\n :data-pswp-height=\"svgHeight\"\n :title=\"title\" />\n </div>\n\n <!-- SVG Stage -->\n <div\n class=\"pk-svg-viewer__stage\"\n @mousedown=\"onMouseDown\"\n @mousemove=\"onMouseMove\"\n @mouseup=\"onMouseUp\"\n @mouseleave=\"onMouseUp\">\n <div\n ref=\"svgRef\"\n :style=\"svgStyle\"\n class=\"pk-svg-viewer__content\" />\n </div>\n\n <!-- Floating Toolbar -->\n <div class=\"pk-svg-viewer__toolbar\">\n <VvButtonGroup\n modifiers=\"compact\"\n class=\"bg-surface-1 shadow-md overflow-hidden\">\n <transition name=\"fade\">\n <VvButton\n key=\"reset\"\n modifiers=\"action-small\"\n :disabled=\"\n scale === 1 && translateX === 0 && translateY === 0\n \"\n icon=\"ri:aspect-ratio-line\"\n :title=\"$t('action.reset')\"\n @click=\"reset\" />\n </transition>\n <VvButton\n v-if=\"svgDataUrl\"\n modifiers=\"action-small\"\n icon=\"ri:zoom-out-line\"\n :title=\"$t('action.zoomOut')\"\n @click=\"zoomOut\" />\n <VvButton\n modifiers=\"action-small\"\n icon=\"ri:zoom-in-line\"\n :title=\"$t('action.zoomIn')\"\n @click=\"zoomIn\" />\n <VvButton\n v-if=\"svgDataUrl\"\n modifiers=\"action-small\"\n icon=\"ri:fullscreen-line\"\n :title=\"$t('action.expand')\"\n @click=\"openLightbox\" />\n </VvButtonGroup>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-svg-viewer {\n position: relative;\n overflow: hidden;\n background-color: var(--color-surface-2);\n width: 100%;\n height: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &__content {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: grab;\n transition: transform 0.3s ease-out;\n transform-origin: center center;\n\n svg {\n max-width: 100%;\n max-height: 100%;\n height: auto;\n width: auto;\n }\n }\n\n &__toolbar {\n position: absolute;\n top: var(--spacing-8);\n right: var(--spacing-8);\n z-index: var(--z-dropdown);\n opacity: 0;\n transition: var(--transition-opacity);\n }\n\n &__stage {\n width: 100%;\n height: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n }\n\n &:hover {\n .pk-svg-viewer__toolbar {\n opacity: 1;\n }\n }\n\n &--dragging {\n .pk-svg-viewer__toolbar {\n opacity: 0.5 !important;\n pointer-events: none;\n\n & * {\n pointer-events: none;\n }\n }\n\n .pk-svg-viewer__content {\n cursor: grabbing !important;\n }\n }\n }\n</style>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolRequestGeolocation-D1ZPmWiB.js","names":["$n"],"sources":["../../../../packages/components/src/chat/PkToolRequestGeolocation.vue","../../../../packages/components/src/chat/PkToolRequestGeolocation.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, onMounted } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { isVoiceRenderAck } from 'models'\n\n import type { ReverseGeocodeFn } from 'utils/src/device-context'\n\n type GeolocationOutput =\n | {\n latitude: number\n longitude: number\n accuracy?: number\n city?: string\n }\n | { error: 'permission_denied' | 'position_unavailable' | 'timeout' }\n\n const props = defineProps<{\n part: unknown\n reverseGeocode?: ReverseGeocodeFn\n /**\n * Whether a voice call is on the line right now. A request drawn\n * during a call arrives already resolved with the render ack, and the\n * browser prompt must fire only while the caller who was asked is\n * still there: reopening the conversation later must not ask again.\n */\n callLive?: boolean\n }>()\n\n const emit = defineEmits<{\n result: [output: GeolocationOutput]\n }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const toolPart = computed(() => {\n return props.part as {\n state?: string\n input?: { reason?: string }\n /** The position, or the voice render ack (a string). */\n output?: GeolocationOutput | string\n }\n })\n\n const state = computed(() => toolPart.value.state ?? 'unknown')\n\n /**\n * The ack is not a position: it only says the card was drawn during a\n * call (see `isVoiceRenderAck`, same rule as the forms). Besides gating\n * the prompt below, it must be kept away from the output parsing: `in`\n * on a string throws, which broke this card on every spoken turn.\n */\n const isRenderAck = computed(() => isVoiceRenderAck(toolPart.value.output))\n\n const isOutputAvailable = computed(\n () => state.value === 'output-available' && !isRenderAck.value,\n )\n\n const successOutput = computed(() => {\n const out = toolPart.value.output\n if (!out || typeof out === 'string' || 'error' in out) {\n return undefined\n }\n return out\n })\n\n const errorOutput = computed(() => {\n const out = toolPart.value.output\n if (!out || typeof out === 'string' || !('error' in out)) {\n return undefined\n }\n return out\n })\n\n /** Maps GeolocationPositionError.code to a typed string */\n function mapGeolocationError(\n code: number,\n ): 'permission_denied' | 'position_unavailable' | 'timeout' {\n if (code === 1) {\n return 'permission_denied'\n }\n if (code === 3) {\n return 'timeout'\n }\n return 'position_unavailable'\n }\n\n onMounted(() => {\n const isAwaitingPosition =\n state.value === 'input-available' ||\n (isRenderAck.value && props.callLive === true)\n if (!isAwaitingPosition) {\n return\n }\n\n if (!navigator.geolocation) {\n emit('result', { error: 'position_unavailable' })\n return\n }\n\n navigator.geolocation.getCurrentPosition(\n async (position) => {\n const { latitude, longitude, accuracy } = position.coords\n const city = props.reverseGeocode\n ? await props\n .reverseGeocode(latitude, longitude)\n .catch(() => undefined)\n : undefined\n emit('result', { latitude, longitude, accuracy, city })\n },\n (error) => {\n emit('result', { error: mapGeolocationError(error.code) })\n },\n { timeout: 15000 },\n )\n })\n</script>\n\n<template>\n <div\n class=\"flex items-center gap-6 text-12 text-word-3 border border-surface-3 rounded-xl px-sm py-10\">\n <!-- Loading state -->\n <template v-if=\"!isOutputAvailable\">\n <VvIcon name=\"line-md:loading-loop\" class=\"text-16\" />\n <span>{{ $t('messagePart.requestGeolocation') }}</span>\n </template>\n\n <!-- Success state -->\n <template v-else-if=\"successOutput\">\n <VvIcon name=\"ri:map-pin-line\" class=\"text-16\" />\n <span>\n {{\n $n(successOutput.latitude, {\n style: 'decimal',\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n })\n }},\n {{\n $n(successOutput.longitude, {\n style: 'decimal',\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n })\n }}\n <template v-if=\"successOutput.accuracy !== undefined\">\n (±{{\n $n(successOutput.accuracy, {\n style: 'unit',\n unit: 'meter',\n })\n }})\n </template>\n </span>\n </template>\n\n <!-- Error state -->\n <template v-else-if=\"errorOutput\">\n <span class=\"i-vv-alert-circle text-16 shrink-0 text-danger\" />\n <span>\n {{\n errorOutput.error === 'permission_denied'\n ? $t('message.geolocationPermissionDenied')\n : $t('message.geolocationUnavailable')\n }}\n </span>\n </template>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, onMounted } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { isVoiceRenderAck } from 'models'\n\n import type { ReverseGeocodeFn } from 'utils/src/device-context'\n\n type GeolocationOutput =\n | {\n latitude: number\n longitude: number\n accuracy?: number\n city?: string\n }\n | { error: 'permission_denied' | 'position_unavailable' | 'timeout' }\n\n const props = defineProps<{\n part: unknown\n reverseGeocode?: ReverseGeocodeFn\n /**\n * Whether a voice call is on the line right now. A request drawn\n * during a call arrives already resolved with the render ack, and the\n * browser prompt must fire only while the caller who was asked is\n * still there: reopening the conversation later must not ask again.\n */\n callLive?: boolean\n }>()\n\n const emit = defineEmits<{\n result: [output: GeolocationOutput]\n }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const toolPart = computed(() => {\n return props.part as {\n state?: string\n input?: { reason?: string }\n /** The position, or the voice render ack (a string). */\n output?: GeolocationOutput | string\n }\n })\n\n const state = computed(() => toolPart.value.state ?? 'unknown')\n\n /**\n * The ack is not a position: it only says the card was drawn during a\n * call (see `isVoiceRenderAck`, same rule as the forms). Besides gating\n * the prompt below, it must be kept away from the output parsing: `in`\n * on a string throws, which broke this card on every spoken turn.\n */\n const isRenderAck = computed(() => isVoiceRenderAck(toolPart.value.output))\n\n const isOutputAvailable = computed(\n () => state.value === 'output-available' && !isRenderAck.value,\n )\n\n const successOutput = computed(() => {\n const out = toolPart.value.output\n if (!out || typeof out === 'string' || 'error' in out) {\n return undefined\n }\n return out\n })\n\n const errorOutput = computed(() => {\n const out = toolPart.value.output\n if (!out || typeof out === 'string' || !('error' in out)) {\n return undefined\n }\n return out\n })\n\n /** Maps GeolocationPositionError.code to a typed string */\n function mapGeolocationError(\n code: number,\n ): 'permission_denied' | 'position_unavailable' | 'timeout' {\n if (code === 1) {\n return 'permission_denied'\n }\n if (code === 3) {\n return 'timeout'\n }\n return 'position_unavailable'\n }\n\n onMounted(() => {\n const isAwaitingPosition =\n state.value === 'input-available' ||\n (isRenderAck.value && props.callLive === true)\n if (!isAwaitingPosition) {\n return\n }\n\n if (!navigator.geolocation) {\n emit('result', { error: 'position_unavailable' })\n return\n }\n\n navigator.geolocation.getCurrentPosition(\n async (position) => {\n const { latitude, longitude, accuracy } = position.coords\n const city = props.reverseGeocode\n ? await props\n .reverseGeocode(latitude, longitude)\n .catch(() => undefined)\n : undefined\n emit('result', { latitude, longitude, accuracy, city })\n },\n (error) => {\n emit('result', { error: mapGeolocationError(error.code) })\n },\n { timeout: 15000 },\n )\n })\n</script>\n\n<template>\n <div\n class=\"flex items-center gap-6 text-12 text-word-3 border border-surface-3 rounded-xl px-sm py-10\">\n <!-- Loading state -->\n <template v-if=\"!isOutputAvailable\">\n <VvIcon name=\"line-md:loading-loop\" class=\"text-16\" />\n <span>{{ $t('messagePart.requestGeolocation') }}</span>\n </template>\n\n <!-- Success state -->\n <template v-else-if=\"successOutput\">\n <VvIcon name=\"ri:map-pin-line\" class=\"text-16\" />\n <span>\n {{\n $n(successOutput.latitude, {\n style: 'decimal',\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n })\n }},\n {{\n $n(successOutput.longitude, {\n style: 'decimal',\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n })\n }}\n <template v-if=\"successOutput.accuracy !== undefined\">\n (±{{\n $n(successOutput.accuracy, {\n style: 'unit',\n unit: 'meter',\n })\n }})\n </template>\n </span>\n </template>\n\n <!-- Error state -->\n <template v-else-if=\"errorOutput\">\n <span class=\"i-vv-alert-circle text-16 shrink-0 text-danger\" />\n <span>\n {{\n errorOutput.error === 'permission_denied'\n ? $t('message.geolocationPermissionDenied')\n : $t('message.geolocationUnavailable')\n }}\n </span>\n </template>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAgBI,IAAM,IAAQ,GAYR,IAAO,GAIP,EAAE,GAAG,MAAO,EAAQ,EAAE,UAAU,SAAS,CAAC,GAE1C,IAAW,QACN,EAAM,IAMhB,GAEK,IAAQ,QAAe,EAAS,MAAM,SAAS,SAAS,GAQxD,IAAc,QAAe,EAAiB,EAAS,MAAM,MAAM,CAAC,GAEpE,IAAoB,QAChB,EAAM,UAAU,sBAAsB,CAAC,EAAY,KAC7D,GAEM,IAAgB,QAAe;GACjC,IAAM,IAAM,EAAS,MAAM;GACvB,OAAC,KAAO,OAAO,KAAQ,YAAY,WAAW,IAGlD,OAAO;EACX,CAAC,GAEK,IAAc,QAAe;GAC/B,IAAM,IAAM,EAAS,MAAM;GACvB,IAAC,KAAO,OAAO,KAAQ,YAAc,WAAW,GAGpD,OAAO;EACX,CAAC;EAGD,SAAS,EACL,GACwD;GAOxD,OANI,MAAS,IACF,sBAEP,MAAS,IACF,YAEJ;EACX;SAEA,QAAgB;GAER,MAAM,UAAU,qBACf,EAAY,SAAS,EAAM,aAAa,IAK7C;QAAI,CAAC,UAAU,aAAa;KACxB,EAAK,UAAU,EAAE,OAAO,uBAAuB,CAAC;KAChD;IACJ;IAEA,UAAU,YAAY,mBAClB,OAAO,MAAa;KAChB,IAAM,EAAE,aAAU,cAAW,gBAAa,EAAS,QAC7C,IAAO,EAAM,iBACb,MAAM,EACD,eAAe,GAAU,CAAS,CAAA,CAClC,YAAY,KAAA,CAAS,IAC1B,KAAA;KACN,EAAK,UAAU;MAAE;MAAU;MAAW;MAAU;KAAK,CAAC;IAC1D,IACC,MAAU;KACP,EAAK,UAAU,EAAE,OAAO,EAAoB,EAAM,IAAI,EAAE,CAAC;IAC7D,GACA,EAAE,SAAS,KAAM,CACrB;GAhBA;EAiBJ,CAAC;;GAID,OAAA,EAAA,GAAA,EAgDM,OAhDN,GAgDM,CA7Ce,EAAA,QAMI,EAAA,SAArB,EAAA,GAAA,EA0BW,GAAA,EAAA,KAAA,EAAA,GAAA,CAzBP,EAAiD,GAAA;IAAzC,MAAK;IAAkB,OAAM;GACrC,CAAA,GAAA,EAuBO,QAAA,MAAA,CArBCA,EAAAA,EAAAA,EAAAA,GAAG,EAAA,MAAc,UAAQ;;;;GAK3B,CAAA,CAAA,IAAA,OACF,EACIA,EAAAA,GAAG,EAAA,MAAc,WAAS;;;;GAK5B,CAAA,CAAA,IAAA,KACF,CAAA,GAAgB,EAAA,MAAc,aAAa,KAAA,IAO3C,EAAA,IAAA,EAAA,KAPA,EAAA,GAAA,EAOW,GAAA,EAAA,KAAA,EAAA,GAAA,CAP2C,EAAA,QAChD,EACEA,EAAAA,GAAG,EAAA,MAAc,UAAQ;;;GAI3B,CAAA,CAAA,IAAA,MACN,CAAA,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA,GAAA,EAAA,KAKa,EAAA,SAArB,EAAA,GAAA,EASW,GAAA,EAAA,KAAA,EAAA,GAAA,CARP,AAAA,EAAA,OAAA,EAA+D,QAAA,EAAzD,OAAM,iDAAgD,GAAA,MAAA,EAAA,GAC5D,EAMO,QAAA,MAAA,EAJC,EAAA,MAAY,UAAK,sBAAmD,EAAA,CAAA,CAAE,CAAA,qCAAA,IAAkE,EAAA,CAAA,CAAE,CAAA,gCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAvCtJ,EAAA,GAAA,EAGW,GAAA,EAAA,KAAA,EAAA,GAAA,CAFP,EAAsD,GAAA;IAA9C,MAAK;IAAuB,OAAM;GAC1C,CAAA,GAAA,EAAuD,QAAA,MAAA,EAA9C,EAAA,CAAA,CAAE,CAAA,gCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,EAAA,EAqCuI,CAAA"}
|