@feathery/react 2.55.0 → 2.55.2
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/cjs/Form/index.d.ts.map +1 -1
- package/cjs/assistant/AssistantChat.d.ts +5 -1
- package/cjs/assistant/AssistantChat.d.ts.map +1 -1
- package/cjs/assistant/attachments.d.ts +2 -2
- package/cjs/assistant/attachments.d.ts.map +1 -1
- package/cjs/assistant/useChatAttachments.d.ts +2 -1
- package/cjs/assistant/useChatAttachments.d.ts.map +1 -1
- package/cjs/assistant/utils.d.ts +5 -4
- package/cjs/assistant/utils.d.ts.map +1 -1
- package/cjs/{fthry_AssistantChat.Cwyk3iiA.js → fthry_AssistantChat.BnU2Yr_h.js} +165 -112
- package/cjs/fthry_AssistantChat.BnU2Yr_h.js.map +1 -0
- package/cjs/{fthry_FormControl.DQFuYIrs.js → fthry_FormControl.BXzjcE0i.js} +2 -1
- package/cjs/fthry_FormControl.BXzjcE0i.js.map +1 -0
- package/cjs/{fthry_InlineTooltip.C-3eLvAv.js → fthry_InlineTooltip.CZBWvna6.js} +2 -1
- package/cjs/fthry_InlineTooltip.CZBWvna6.js.map +1 -0
- package/cjs/{fthry_PaymentMethodField.Cs9nBB47.js → fthry_PaymentMethodField.DyFNAYm2.js} +4 -3
- package/cjs/fthry_PaymentMethodField.DyFNAYm2.js.map +1 -0
- package/cjs/{fthry_Placeholder.CUmM_ix-.js → fthry_Placeholder.2CqXKrVM.js} +2 -1
- package/cjs/fthry_Placeholder.2CqXKrVM.js.map +1 -0
- package/cjs/{fthry_ShowEyeIcon.D6Lwhfy_.js → fthry_ShowEyeIcon.BZWrsLyq.js} +2 -1
- package/cjs/fthry_ShowEyeIcon.BZWrsLyq.js.map +1 -0
- package/cjs/{fthry_TabsElement.CgL3YMbf.js → fthry_TabsElement.CtTLQe5t.js} +2 -1
- package/cjs/fthry_TabsElement.CtTLQe5t.js.map +1 -0
- package/cjs/{fthry_auto-track.DhDJ7Six.js → fthry_auto-track.B22Ynq_K.js} +3 -2
- package/cjs/fthry_auto-track.B22Ynq_K.js.map +1 -0
- package/cjs/fthry_clsx.BtxeOLZW.js +1 -0
- package/cjs/fthry_clsx.BtxeOLZW.js.map +1 -0
- package/cjs/{fthry_highlighted-body-TPN3WLV5.BzjtpXVW.js → fthry_highlighted-body-TPN3WLV5.CelsmwcU.js} +4 -3
- package/cjs/fthry_highlighted-body-TPN3WLV5.CelsmwcU.js.map +1 -0
- package/cjs/{fthry_index.CusanmZ4.js → fthry_index.B3QL5_yA.js} +2 -1
- package/cjs/fthry_index.B3QL5_yA.js.map +1 -0
- package/cjs/{fthry_index.ZlEa6xRd.js → fthry_index.B8zBRpNw.js} +3 -2
- package/cjs/fthry_index.B8zBRpNw.js.map +1 -0
- package/cjs/{fthry_index.CPrsbFNe.js → fthry_index.B9JNWxwd.js} +2 -1
- package/cjs/fthry_index.B9JNWxwd.js.map +1 -0
- package/cjs/{fthry_index.CizURN5l.js → fthry_index.BCf4Av9_.js} +6 -5
- package/cjs/fthry_index.BCf4Av9_.js.map +1 -0
- package/cjs/{fthry_index.C0qSps2I.js → fthry_index.BW6SLOZn.js} +5 -4
- package/cjs/fthry_index.BW6SLOZn.js.map +1 -0
- package/cjs/{fthry_index.DjoQ9rvl.js → fthry_index.BilvjC0E.js} +2 -1
- package/cjs/fthry_index.BilvjC0E.js.map +1 -0
- package/cjs/{fthry_index.D-JzzjZq.js → fthry_index.BizvJqp6.js} +2 -1
- package/cjs/fthry_index.BizvJqp6.js.map +1 -0
- package/cjs/{fthry_index.Bgz8QD73.js → fthry_index.C4D2Sm78.js} +2 -1
- package/cjs/fthry_index.C4D2Sm78.js.map +1 -0
- package/cjs/{fthry_index.D--5x2--.js → fthry_index.CFfAHyvb.js} +2 -1
- package/cjs/fthry_index.CFfAHyvb.js.map +1 -0
- package/cjs/{fthry_index.BiQgM_mp.js → fthry_index.C_kvEPFs.js} +6 -5
- package/cjs/fthry_index.C_kvEPFs.js.map +1 -0
- package/cjs/{fthry_index.DZ7mRbvH.js → fthry_index.Cc58moM9.js} +5 -4
- package/cjs/fthry_index.Cc58moM9.js.map +1 -0
- package/cjs/{fthry_index.CD8G4Ned.js → fthry_index.CdOSFDbB.js} +3 -2
- package/cjs/fthry_index.CdOSFDbB.js.map +1 -0
- package/cjs/{fthry_index.hoemhTIo.js → fthry_index.Coww-iPH.js} +5 -4
- package/cjs/fthry_index.Coww-iPH.js.map +1 -0
- package/cjs/{fthry_index.BLh4y2dS.js → fthry_index.Cq8qj-8x.js} +2 -1
- package/cjs/fthry_index.Cq8qj-8x.js.map +1 -0
- package/cjs/{fthry_index.BiYemmOs.js → fthry_index.CuAdpyzK.js} +8 -7
- package/cjs/fthry_index.CuAdpyzK.js.map +1 -0
- package/cjs/{fthry_index.DYt_hVte.js → fthry_index.Cx7H2PhW.js} +5 -4
- package/cjs/fthry_index.Cx7H2PhW.js.map +1 -0
- package/cjs/{fthry_index.DcLxtTSW.js → fthry_index.D7fIuY96.js} +3 -2
- package/cjs/fthry_index.D7fIuY96.js.map +1 -0
- package/cjs/{fthry_index.DxAMmenQ.js → fthry_index.D9unqWJ7.js} +4 -3
- package/cjs/fthry_index.D9unqWJ7.js.map +1 -0
- package/cjs/{fthry_index.C9hwfIUQ.js → fthry_index.DCI5GoFx.js} +6 -5
- package/cjs/fthry_index.DCI5GoFx.js.map +1 -0
- package/cjs/{fthry_index.CGx_UCOl.js → fthry_index.DHs14TBz.js} +11 -10
- package/cjs/fthry_index.DHs14TBz.js.map +1 -0
- package/cjs/{fthry_index.Cl8PTNLj.js → fthry_index.DJeRiPEz.js} +6 -5
- package/cjs/fthry_index.DJeRiPEz.js.map +1 -0
- package/cjs/{fthry_index.BBtmp2lX.js → fthry_index.DQEcyx81.js} +3 -2
- package/cjs/fthry_index.DQEcyx81.js.map +1 -0
- package/cjs/{fthry_index.fHBYZguT.js → fthry_index.DTsKwPpr.js} +4 -3
- package/cjs/fthry_index.DTsKwPpr.js.map +1 -0
- package/cjs/{fthry_index.DPvMA8nx.js → fthry_index.DkWarcVx.js} +2 -1
- package/cjs/fthry_index.DkWarcVx.js.map +1 -0
- package/cjs/{fthry_index.y6sfh246.js → fthry_index.Dsroboof.js} +2 -1
- package/cjs/fthry_index.Dsroboof.js.map +1 -0
- package/cjs/{fthry_index.D01OXK-l.js → fthry_index.Fmvcqpwg.js} +3 -2
- package/cjs/fthry_index.Fmvcqpwg.js.map +1 -0
- package/cjs/fthry_index.KDrRVPx5.js +1 -0
- package/cjs/fthry_index.KDrRVPx5.js.map +1 -0
- package/cjs/{fthry_index.CPx7ld_r.js → fthry_index.KWfWjkO9.js} +2 -1
- package/cjs/fthry_index.KWfWjkO9.js.map +1 -0
- package/cjs/{fthry_index.CbTgNihl.js → fthry_index.NimIR9xa.js} +3 -2
- package/cjs/fthry_index.NimIR9xa.js.map +1 -0
- package/cjs/fthry_index.NshYktAt.js +1 -0
- package/cjs/fthry_index.NshYktAt.js.map +1 -0
- package/cjs/{fthry_index.BF-anQOj.js → fthry_index.Wjf5tBws.js} +36 -33
- package/cjs/fthry_index.Wjf5tBws.js.map +1 -0
- package/cjs/{fthry_index.COUHEKea.js → fthry_index.bvyDbUur.js} +2 -1
- package/cjs/fthry_index.bvyDbUur.js.map +1 -0
- package/cjs/{fthry_index.mHIYCN--.js → fthry_index.dr6NIozF.js} +4 -3
- package/cjs/fthry_index.dr6NIozF.js.map +1 -0
- package/cjs/{fthry_index.BkUZn1Wx.js → fthry_index.rT4jTu4g.js} +3 -2
- package/cjs/fthry_index.rT4jTu4g.js.map +1 -0
- package/cjs/{fthry_index.umd.DcnVOTNd.js → fthry_index.umd.CFNrHn6Q.js} +2 -1
- package/cjs/fthry_index.umd.CFNrHn6Q.js.map +1 -0
- package/cjs/{fthry_input.D_ZZBUiA.js → fthry_input.UurEDpH1.js} +2 -1
- package/cjs/fthry_input.UurEDpH1.js.map +1 -0
- package/cjs/fthry_is-plan-event-enabled.nMt_kVye.js +1 -0
- package/cjs/fthry_is-plan-event-enabled.nMt_kVye.js.map +1 -0
- package/cjs/fthry_logging.B-EvoWue.js +1 -0
- package/cjs/fthry_logging.B-EvoWue.js.map +1 -0
- package/cjs/{fthry_logging.DnMqEtZk.js → fthry_logging.Bb2ZzWt6.js} +2 -1
- package/cjs/fthry_logging.Bb2ZzWt6.js.map +1 -0
- package/cjs/fthry_mermaid-O7DHMXV3.CNHg9tm2.js +15 -0
- package/cjs/fthry_mermaid-O7DHMXV3.CNHg9tm2.js.map +1 -0
- package/cjs/{fthry_script.CiEL5EkQ.js → fthry_script.CcTuTa_n.js} +2 -1
- package/cjs/fthry_script.CcTuTa_n.js.map +1 -0
- package/cjs/{fthry_styles.BQvJdT7h.js → fthry_styles.C9PViF_z.js} +2 -1
- package/cjs/fthry_styles.C9PViF_z.js.map +1 -0
- package/cjs/{fthry_useElementSize.DuwzR_F7.js → fthry_useElementSize.BYo7N4Ze.js} +2 -1
- package/cjs/fthry_useElementSize.BYo7N4Ze.js.map +1 -0
- package/cjs/{fthry_useSalesforceSync.B6nQeLV2.js → fthry_useSalesforceSync.B7NXZ3Dk.js} +2 -1
- package/cjs/fthry_useSalesforceSync.B7NXZ3Dk.js.map +1 -0
- package/cjs/{fthry_webfontloader.DKvYHlYz.js → fthry_webfontloader.CjNRa40-.js} +2 -1
- package/cjs/fthry_webfontloader.CjNRa40-.js.map +1 -0
- package/cjs/index.js +2 -1
- package/cjs/index.js.map +1 -0
- package/cjs/thumbnail-renderer.js +2 -1
- package/cjs/thumbnail-renderer.js.map +1 -0
- package/cjs/utils/formHelperFunctions.d.ts +1 -0
- package/cjs/utils/formHelperFunctions.d.ts.map +1 -1
- package/dist/Form/index.d.ts.map +1 -1
- package/dist/assistant/AssistantChat.d.ts +5 -1
- package/dist/assistant/AssistantChat.d.ts.map +1 -1
- package/dist/assistant/attachments.d.ts +2 -2
- package/dist/assistant/attachments.d.ts.map +1 -1
- package/dist/assistant/useChatAttachments.d.ts +2 -1
- package/dist/assistant/useChatAttachments.d.ts.map +1 -1
- package/dist/assistant/utils.d.ts +5 -4
- package/dist/assistant/utils.d.ts.map +1 -1
- package/dist/{fthry_AssistantChat.Be6Mlyxj.js → fthry_AssistantChat.OX1AJD8h.js} +165 -112
- package/dist/fthry_AssistantChat.OX1AJD8h.js.map +1 -0
- package/dist/{fthry_FormControl.CCkAPkgv.js → fthry_FormControl.COa8B2Rj.js} +2 -1
- package/dist/fthry_FormControl.COa8B2Rj.js.map +1 -0
- package/dist/{fthry_InlineTooltip.DZD_oDzB.js → fthry_InlineTooltip.LXzEWNGG.js} +2 -1
- package/dist/fthry_InlineTooltip.LXzEWNGG.js.map +1 -0
- package/dist/{fthry_PaymentMethodField.CtsyjvwX.js → fthry_PaymentMethodField.DJuu_g41.js} +4 -3
- package/dist/fthry_PaymentMethodField.DJuu_g41.js.map +1 -0
- package/dist/{fthry_Placeholder.DuqjLBhG.js → fthry_Placeholder.BmGpTaPo.js} +2 -1
- package/dist/fthry_Placeholder.BmGpTaPo.js.map +1 -0
- package/dist/{fthry_ShowEyeIcon.Dl2TsElo.js → fthry_ShowEyeIcon.kRzTWGDO.js} +2 -1
- package/dist/fthry_ShowEyeIcon.kRzTWGDO.js.map +1 -0
- package/dist/{fthry_TabsElement.CYi3mzi8.js → fthry_TabsElement.Dmw8GpCX.js} +2 -1
- package/dist/fthry_TabsElement.Dmw8GpCX.js.map +1 -0
- package/dist/{fthry_auto-track.IfDBqGyL.js → fthry_auto-track.wmjzjBvu.js} +3 -2
- package/dist/fthry_auto-track.wmjzjBvu.js.map +1 -0
- package/dist/fthry_clsx.ChV9xqsO.js +1 -0
- package/dist/fthry_clsx.ChV9xqsO.js.map +1 -0
- package/dist/{fthry_highlighted-body-TPN3WLV5.HLcU1iPh.js → fthry_highlighted-body-TPN3WLV5.B4y3sv_A.js} +4 -3
- package/dist/fthry_highlighted-body-TPN3WLV5.B4y3sv_A.js.map +1 -0
- package/dist/{fthry_index.okrffQYp.js → fthry_index.B1mGJ8jK.js} +3 -2
- package/dist/fthry_index.B1mGJ8jK.js.map +1 -0
- package/dist/{fthry_index.C5AkH2wz.js → fthry_index.B3rocJXR.js} +2 -1
- package/dist/fthry_index.B3rocJXR.js.map +1 -0
- package/dist/{fthry_index.BEMCjmqu.js → fthry_index.BNLvItXG.js} +36 -33
- package/dist/fthry_index.BNLvItXG.js.map +1 -0
- package/dist/fthry_index.BNrDR7Qm.js +1 -0
- package/dist/fthry_index.BNrDR7Qm.js.map +1 -0
- package/dist/{fthry_index.DDTSEIcr.js → fthry_index.BOsL17ez.js} +5 -4
- package/dist/fthry_index.BOsL17ez.js.map +1 -0
- package/dist/{fthry_index.DMH1cJrX.js → fthry_index.BSX7p08P.js} +3 -2
- package/dist/fthry_index.BSX7p08P.js.map +1 -0
- package/dist/{fthry_index.BOvYhhGJ.js → fthry_index.Bdnsrbt1.js} +5 -4
- package/dist/fthry_index.Bdnsrbt1.js.map +1 -0
- package/dist/{fthry_index.C0NfUYmR.js → fthry_index.Bgn6Q4wm.js} +3 -2
- package/dist/fthry_index.Bgn6Q4wm.js.map +1 -0
- package/dist/{fthry_index.CK3aIPly.js → fthry_index.Bk5CBSM_.js} +6 -5
- package/dist/fthry_index.Bk5CBSM_.js.map +1 -0
- package/dist/{fthry_index.Dk6aTBdA.js → fthry_index.C05SOTJe.js} +2 -1
- package/dist/fthry_index.C05SOTJe.js.map +1 -0
- package/dist/{fthry_index.DP8hzsWg.js → fthry_index.C3-yA7kD.js} +2 -1
- package/dist/fthry_index.C3-yA7kD.js.map +1 -0
- package/dist/{fthry_index.C2LGfmCQ.js → fthry_index.CAdz5On-.js} +3 -2
- package/dist/fthry_index.CAdz5On-.js.map +1 -0
- package/dist/{fthry_index.D7q1aD6-.js → fthry_index.CFsIzKPo.js} +5 -4
- package/dist/fthry_index.CFsIzKPo.js.map +1 -0
- package/dist/{fthry_index.C09MbTMD.js → fthry_index.CTkrCrtB.js} +3 -2
- package/dist/fthry_index.CTkrCrtB.js.map +1 -0
- package/dist/{fthry_index.CfnDnR43.js → fthry_index.CW3BsL-h.js} +2 -1
- package/dist/fthry_index.CW3BsL-h.js.map +1 -0
- package/dist/{fthry_index.DM3jqh2p.js → fthry_index.CbNMK80J.js} +11 -10
- package/dist/fthry_index.CbNMK80J.js.map +1 -0
- package/dist/{fthry_index.IYd_eVta.js → fthry_index.CcvGJc4p.js} +6 -5
- package/dist/fthry_index.CcvGJc4p.js.map +1 -0
- package/dist/{fthry_index.BP1lC3Ex.js → fthry_index.CkWtsfP1.js} +2 -1
- package/dist/fthry_index.CkWtsfP1.js.map +1 -0
- package/dist/{fthry_index.BbE2kPjj.js → fthry_index.CrlRxlHD.js} +4 -3
- package/dist/fthry_index.CrlRxlHD.js.map +1 -0
- package/dist/{fthry_index.BN-dojiL.js → fthry_index.DH7bu7Fz.js} +3 -2
- package/dist/fthry_index.DH7bu7Fz.js.map +1 -0
- package/dist/{fthry_index.Ob5rm80I.js → fthry_index.DSbGI7WZ.js} +6 -5
- package/dist/fthry_index.DSbGI7WZ.js.map +1 -0
- package/dist/{fthry_index.DvUMGcjt.js → fthry_index.DhvGe23f.js} +3 -2
- package/dist/fthry_index.DhvGe23f.js.map +1 -0
- package/dist/{fthry_index.BvcpsGy9.js → fthry_index.DsC3kckm.js} +2 -1
- package/dist/fthry_index.DsC3kckm.js.map +1 -0
- package/dist/{fthry_index.DYf0nmmc.js → fthry_index.DuX_xYa-.js} +2 -1
- package/dist/fthry_index.DuX_xYa-.js.map +1 -0
- package/dist/{fthry_index.9S43igFs.js → fthry_index.DyEuRo_j.js} +2 -1
- package/dist/fthry_index.DyEuRo_j.js.map +1 -0
- package/dist/{fthry_index.4qpRAeb_.js → fthry_index.Dy_oabdy.js} +2 -1
- package/dist/fthry_index.Dy_oabdy.js.map +1 -0
- package/dist/{fthry_index.B8hwXw5R.js → fthry_index.Hoho-oHj.js} +8 -7
- package/dist/fthry_index.Hoho-oHj.js.map +1 -0
- package/dist/fthry_index.JD44HVFL.js +1 -0
- package/dist/fthry_index.JD44HVFL.js.map +1 -0
- package/dist/{fthry_index.B5JfgN_s.js → fthry_index.XccbApOJ.js} +2 -1
- package/dist/fthry_index.XccbApOJ.js.map +1 -0
- package/dist/{fthry_index.CtdDjHjk.js → fthry_index.aEMQTnfj.js} +4 -3
- package/dist/fthry_index.aEMQTnfj.js.map +1 -0
- package/dist/{fthry_index.C3o7HpC2.js → fthry_index.bq6lV-ln.js} +5 -4
- package/dist/fthry_index.bq6lV-ln.js.map +1 -0
- package/dist/{fthry_index.CaMfiw6o.js → fthry_index.l5f5UaV3.js} +4 -3
- package/dist/fthry_index.l5f5UaV3.js.map +1 -0
- package/dist/{fthry_index.C5qllWuc.js → fthry_index.lf7zmkQe.js} +2 -1
- package/dist/fthry_index.lf7zmkQe.js.map +1 -0
- package/dist/{fthry_index.T0q4NPjx.js → fthry_index.pdOpoICO.js} +5 -4
- package/dist/fthry_index.pdOpoICO.js.map +1 -0
- package/dist/{fthry_index.umd.DNLZlzl6.js → fthry_index.umd.BTO45CQD.js} +2 -1
- package/dist/fthry_index.umd.BTO45CQD.js.map +1 -0
- package/dist/{fthry_input.DBmpsGLP.js → fthry_input.DVrUfDtq.js} +2 -1
- package/dist/fthry_input.DVrUfDtq.js.map +1 -0
- package/dist/fthry_is-plan-event-enabled.mXX0dwl-.js +1 -0
- package/dist/fthry_is-plan-event-enabled.mXX0dwl-.js.map +1 -0
- package/dist/fthry_logging.B1LWsZ3K.js +1 -0
- package/dist/fthry_logging.B1LWsZ3K.js.map +1 -0
- package/dist/{fthry_logging.DXY4LvSS.js → fthry_logging.CYsqoXt9.js} +2 -1
- package/dist/fthry_logging.CYsqoXt9.js.map +1 -0
- package/dist/fthry_mermaid-O7DHMXV3.DilYiq5h.js +9 -0
- package/dist/fthry_mermaid-O7DHMXV3.DilYiq5h.js.map +1 -0
- package/dist/{fthry_script.C894YzAl.js → fthry_script.CZ2PSZDx.js} +2 -1
- package/dist/fthry_script.CZ2PSZDx.js.map +1 -0
- package/dist/{fthry_styles.Ds16q-VH.js → fthry_styles.DaCM6uPI.js} +2 -1
- package/dist/fthry_styles.DaCM6uPI.js.map +1 -0
- package/dist/{fthry_useElementSize.DAdDGR_p.js → fthry_useElementSize.CPUxh_D6.js} +2 -1
- package/dist/fthry_useElementSize.CPUxh_D6.js.map +1 -0
- package/dist/{fthry_useSalesforceSync.BGUfOU7k.js → fthry_useSalesforceSync.mGSW5qll.js} +2 -1
- package/dist/fthry_useSalesforceSync.mGSW5qll.js.map +1 -0
- package/dist/{fthry_webfontloader.j-I3KznG.js → fthry_webfontloader.CfoaWELz.js} +2 -1
- package/dist/fthry_webfontloader.CfoaWELz.js.map +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -0
- package/dist/thumbnail-renderer.js +2 -1
- package/dist/thumbnail-renderer.js.map +1 -0
- package/dist/utils/formHelperFunctions.d.ts +1 -0
- package/dist/utils/formHelperFunctions.d.ts.map +1 -1
- package/package.json +1 -1
- package/umd/AssistantChat.f4ed54e9ff905d547069.js +1 -0
- package/umd/index.js +1 -1
- package/cjs/fthry_mermaid-O7DHMXV3.D2BXxJ0r.js +0 -14
- package/dist/fthry_mermaid-O7DHMXV3.C56szY3n.js +0 -8
- package/umd/AssistantChat.31154097f6b644e3a50b.js +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index$1 = require('./fthry_index.
|
|
3
|
+
var index$1 = require('./fthry_index.Wjf5tBws.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var clsx = require('./fthry_clsx.BtxeOLZW.js');
|
|
6
6
|
var ReactJSXRuntime = require('react/jsx-runtime');
|
|
7
7
|
var ReactDOM = require('react-dom');
|
|
8
|
-
var index$2 = require('./fthry_index.
|
|
8
|
+
var index$2 = require('./fthry_index.C4D2Sm78.js');
|
|
9
9
|
|
|
10
10
|
// src/errors/ai-sdk-error.ts
|
|
11
11
|
var marker = "vercel.ai.error";
|
|
@@ -9769,6 +9769,85 @@ var WaveformIcon = function (props) { return (index$1.jsxs("svg", index$1.__assi
|
|
|
9769
9769
|
var PaperclipIcon = function (props) { return (index$1.jsx("svg", index$1.__assign({ width: '18', height: '18', viewBox: '0 0 24 24', fill: 'none' }, props, { children: index$1.jsx("path", { d: 'm21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48', stroke: 'currentColor', strokeWidth: '2', strokeLinecap: 'round', strokeLinejoin: 'round' }) }))); };
|
|
9770
9770
|
var DocumentIcon = function (props) { return (index$1.jsxs("svg", index$1.__assign({ width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none' }, props, { children: [index$1.jsx("path", { d: 'M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z', stroke: 'currentColor', strokeWidth: '2', strokeLinecap: 'round', strokeLinejoin: 'round' }), index$1.jsx("path", { d: 'M14 2v6h6', stroke: 'currentColor', strokeWidth: '2', strokeLinecap: 'round', strokeLinejoin: 'round' })] }))); };
|
|
9771
9771
|
|
|
9772
|
+
// Thread endpoints live on the unified /agent/threads/ family, same origin as
|
|
9773
|
+
// the assistant chat base
|
|
9774
|
+
var threadsBase = function (baseUrl) {
|
|
9775
|
+
return new URL('/agent/threads/', baseUrl).href;
|
|
9776
|
+
};
|
|
9777
|
+
// form_key lets backend form auth validate the session against the current
|
|
9778
|
+
// form, without it the request stays anonymous
|
|
9779
|
+
var withFormKey = function (url, formKey) {
|
|
9780
|
+
if (!formKey)
|
|
9781
|
+
return url;
|
|
9782
|
+
var parsed = new URL(url);
|
|
9783
|
+
parsed.searchParams.set('form_key', formKey);
|
|
9784
|
+
return parsed.href;
|
|
9785
|
+
};
|
|
9786
|
+
var getThreadList = function (baseUrl, headers, formKey) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
9787
|
+
var res;
|
|
9788
|
+
return index$1.__generator(this, function (_a) {
|
|
9789
|
+
switch (_a.label) {
|
|
9790
|
+
case 0: return [4 /*yield*/, fetch(withFormKey(threadsBase(baseUrl), formKey), {
|
|
9791
|
+
headers: headers()
|
|
9792
|
+
})];
|
|
9793
|
+
case 1:
|
|
9794
|
+
res = _a.sent();
|
|
9795
|
+
if (!res.ok)
|
|
9796
|
+
return [2 /*return*/, null];
|
|
9797
|
+
return [2 /*return*/, res.json()];
|
|
9798
|
+
}
|
|
9799
|
+
});
|
|
9800
|
+
}); };
|
|
9801
|
+
var getThreadDetail = function (baseUrl, headers, threadId, formKey) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
9802
|
+
var res;
|
|
9803
|
+
return index$1.__generator(this, function (_a) {
|
|
9804
|
+
switch (_a.label) {
|
|
9805
|
+
case 0: return [4 /*yield*/, fetch(withFormKey("".concat(threadsBase(baseUrl)).concat(threadId, "/"), formKey), {
|
|
9806
|
+
headers: headers()
|
|
9807
|
+
})];
|
|
9808
|
+
case 1:
|
|
9809
|
+
res = _a.sent();
|
|
9810
|
+
if (!res.ok)
|
|
9811
|
+
return [2 /*return*/, null];
|
|
9812
|
+
return [2 /*return*/, res.json()];
|
|
9813
|
+
}
|
|
9814
|
+
});
|
|
9815
|
+
}); };
|
|
9816
|
+
var generateThreadTitle = function (baseUrl, headers, threadId, message, context, formKey) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
9817
|
+
var res, data;
|
|
9818
|
+
var _a;
|
|
9819
|
+
return index$1.__generator(this, function (_b) {
|
|
9820
|
+
switch (_b.label) {
|
|
9821
|
+
case 0: return [4 /*yield*/, fetch(withFormKey("".concat(threadsBase(baseUrl), "title/"), formKey), {
|
|
9822
|
+
method: 'POST',
|
|
9823
|
+
headers: index$1.__assign(index$1.__assign({}, headers()), { 'Content-Type': 'application/json' }),
|
|
9824
|
+
body: JSON.stringify(index$1.__assign({ message: message, thread_id: threadId !== null && threadId !== void 0 ? threadId : undefined }, (context !== null && context !== void 0 ? context : {})))
|
|
9825
|
+
})];
|
|
9826
|
+
case 1:
|
|
9827
|
+
res = _b.sent();
|
|
9828
|
+
if (!res.ok)
|
|
9829
|
+
return [2 /*return*/, null];
|
|
9830
|
+
return [4 /*yield*/, res.json()];
|
|
9831
|
+
case 2:
|
|
9832
|
+
data = _b.sent();
|
|
9833
|
+
return [2 /*return*/, (_a = data.title) !== null && _a !== void 0 ? _a : null];
|
|
9834
|
+
}
|
|
9835
|
+
});
|
|
9836
|
+
}); };
|
|
9837
|
+
var deleteThread = function (baseUrl, headers, threadId, formKey) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
9838
|
+
return index$1.__generator(this, function (_a) {
|
|
9839
|
+
switch (_a.label) {
|
|
9840
|
+
case 0: return [4 /*yield*/, fetch(withFormKey("".concat(threadsBase(baseUrl)).concat(threadId, "/"), formKey), {
|
|
9841
|
+
method: 'DELETE',
|
|
9842
|
+
headers: headers()
|
|
9843
|
+
})];
|
|
9844
|
+
case 1:
|
|
9845
|
+
_a.sent();
|
|
9846
|
+
return [2 /*return*/];
|
|
9847
|
+
}
|
|
9848
|
+
});
|
|
9849
|
+
}); };
|
|
9850
|
+
|
|
9772
9851
|
var MAX_DIMENSION = 1568;
|
|
9773
9852
|
var MAX_FILE_SIZE = 25 * 1024 * 1024;
|
|
9774
9853
|
var MAX_ATTACHMENTS = 5;
|
|
@@ -9883,7 +9962,7 @@ function compressImage(file) {
|
|
|
9883
9962
|
});
|
|
9884
9963
|
});
|
|
9885
9964
|
}
|
|
9886
|
-
function uploadAttachment(file, baseUrl, headers, sessionId, signal) {
|
|
9965
|
+
function uploadAttachment(file, baseUrl, headers, sessionId, signal, formKey) {
|
|
9887
9966
|
return index$1.__awaiter(this, void 0, void 0, function () {
|
|
9888
9967
|
var form, response, message, body, err;
|
|
9889
9968
|
return index$1.__generator(this, function (_b) {
|
|
@@ -9891,7 +9970,7 @@ function uploadAttachment(file, baseUrl, headers, sessionId, signal) {
|
|
|
9891
9970
|
case 0:
|
|
9892
9971
|
form = new FormData();
|
|
9893
9972
|
form.append('file', file);
|
|
9894
|
-
return [4 /*yield*/, fetch(attachmentBase(baseUrl), {
|
|
9973
|
+
return [4 /*yield*/, fetch(withFormKey(attachmentBase(baseUrl), formKey), {
|
|
9895
9974
|
method: 'POST',
|
|
9896
9975
|
headers: index$1.__assign(index$1.__assign({}, headers()), { 'X-Session-ID': sessionId }),
|
|
9897
9976
|
body: form,
|
|
@@ -9944,7 +10023,7 @@ var delay = function (ms, signal) {
|
|
|
9944
10023
|
// Poll GET /:id/url/ until the row reaches a terminal state, upload
|
|
9945
10024
|
// auto-dispatches embedding server-side so polling is the whole client
|
|
9946
10025
|
// contract
|
|
9947
|
-
function pollAttachmentStatus(attachmentId, baseUrl, headers, sessionId, signal) {
|
|
10026
|
+
function pollAttachmentStatus(attachmentId, baseUrl, headers, sessionId, signal, formKey) {
|
|
9948
10027
|
return index$1.__awaiter(this, void 0, void 0, function () {
|
|
9949
10028
|
var id, deadline, resp, err_1, body;
|
|
9950
10029
|
return index$1.__generator(this, function (_a) {
|
|
@@ -9958,7 +10037,7 @@ function pollAttachmentStatus(attachmentId, baseUrl, headers, sessionId, signal)
|
|
|
9958
10037
|
_a.label = 2;
|
|
9959
10038
|
case 2:
|
|
9960
10039
|
_a.trys.push([2, 4, , 5]);
|
|
9961
|
-
return [4 /*yield*/, fetch("".concat(attachmentBase(baseUrl)).concat(id, "/url/"), {
|
|
10040
|
+
return [4 /*yield*/, fetch(withFormKey("".concat(attachmentBase(baseUrl)).concat(id, "/url/"), formKey), {
|
|
9962
10041
|
method: 'GET',
|
|
9963
10042
|
headers: index$1.__assign(index$1.__assign({}, headers()), { 'X-Session-ID': sessionId }),
|
|
9964
10043
|
signal: signal
|
|
@@ -10342,7 +10421,7 @@ var AttachmentPreviewOverlay = function (_a) {
|
|
|
10342
10421
|
// chat switch (another thread's session can't send them)
|
|
10343
10422
|
function useChatAttachments(_a) {
|
|
10344
10423
|
var _this = this;
|
|
10345
|
-
var activeChat = _a.activeChat, baseUrl = _a.baseUrl, headers = _a.headers;
|
|
10424
|
+
var activeChat = _a.activeChat, baseUrl = _a.baseUrl, headers = _a.headers, formKey = _a.formKey;
|
|
10346
10425
|
var _b = index$1.__read(React.useState([]), 2), attachments = _b[0], setAttachments = _b[1];
|
|
10347
10426
|
var _c = index$1.__read(React.useState(null), 2), attachmentError = _c[0], setAttachmentError = _c[1];
|
|
10348
10427
|
var _d = index$1.__read(React.useState(false), 2), isDragging = _d[0], setIsDragging = _d[1];
|
|
@@ -10384,7 +10463,7 @@ function useChatAttachments(_a) {
|
|
|
10384
10463
|
_b.label = 1;
|
|
10385
10464
|
case 1:
|
|
10386
10465
|
_b.trys.push([1, 4, 5, 6]);
|
|
10387
|
-
return [4 /*yield*/, uploadAttachment(file, baseUrl, headers, sessionId, controller.signal)];
|
|
10466
|
+
return [4 /*yield*/, uploadAttachment(file, baseUrl, headers, sessionId, controller.signal, formKey)];
|
|
10388
10467
|
case 2:
|
|
10389
10468
|
uploaded = _b.sent();
|
|
10390
10469
|
if (controller.signal.aborted)
|
|
@@ -10398,7 +10477,7 @@ function useChatAttachments(_a) {
|
|
|
10398
10477
|
});
|
|
10399
10478
|
if (isTerminalStatus(uploaded.processingStatus))
|
|
10400
10479
|
return [2 /*return*/];
|
|
10401
|
-
return [4 /*yield*/, pollAttachmentStatus(uploaded.id, baseUrl, headers, sessionId, controller.signal)];
|
|
10480
|
+
return [4 /*yield*/, pollAttachmentStatus(uploaded.id, baseUrl, headers, sessionId, controller.signal, formKey)];
|
|
10402
10481
|
case 3:
|
|
10403
10482
|
processed = _b.sent();
|
|
10404
10483
|
if (controller.signal.aborted)
|
|
@@ -10433,7 +10512,7 @@ function useChatAttachments(_a) {
|
|
|
10433
10512
|
case 6: return [2 /*return*/];
|
|
10434
10513
|
}
|
|
10435
10514
|
});
|
|
10436
|
-
}); }, [activeChat, baseUrl, headers]);
|
|
10515
|
+
}); }, [activeChat, baseUrl, headers, formKey]);
|
|
10437
10516
|
var addFiles = React.useCallback(function (files) { return index$1.__awaiter(_this, void 0, void 0, function () {
|
|
10438
10517
|
var validFiles, processedFiles, remaining, additions;
|
|
10439
10518
|
return index$1.__generator(this, function (_a) {
|
|
@@ -10700,10 +10779,10 @@ var VoiceMic = /** @class */ (function () {
|
|
|
10700
10779
|
switch (_d.label) {
|
|
10701
10780
|
case 0:
|
|
10702
10781
|
_d.trys.push([0, 4, , 5]);
|
|
10703
|
-
return [4 /*yield*/, Promise.resolve().then(function () { return require('./fthry_index.
|
|
10782
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./fthry_index.DkWarcVx.js'); }).then(function (n) { return n.index; })];
|
|
10704
10783
|
case 1:
|
|
10705
10784
|
_a = _d.sent(), MicVAD_1 = _a.MicVAD, vadUtils_1 = _a.utils;
|
|
10706
|
-
return [4 /*yield*/, Promise.resolve().then(function () { return require('./fthry_logging.
|
|
10785
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./fthry_logging.Bb2ZzWt6.js'); }).then(function (n) { return n.logging; })];
|
|
10707
10786
|
case 2:
|
|
10708
10787
|
vadLog = (_d.sent()).log;
|
|
10709
10788
|
vadLog.debug = function () { return undefined; };
|
|
@@ -52475,14 +52554,14 @@ ${e}</tr>
|
|
|
52475
52554
|
Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+T(n.message+"",true)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var L$1=new D;function g(u,e){return L$1.parse(u,e)}g.options=g.setOptions=function(u){return L$1.setOptions(u),g.defaults=L$1.defaults,G(g.defaults),g};g.getDefaults=M;g.defaults=O;g.use=function(...u){return L$1.use(...u),g.defaults=L$1.defaults,G(g.defaults),g};g.walkTokens=function(u,e){return L$1.walkTokens(u,e)};g.parseInline=L$1.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y$1;g.TextRenderer=$;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;g.options;g.setOptions;g.use;g.walkTokens;g.parseInline;b.parse;x.lex;
|
|
52476
52555
|
|
|
52477
52556
|
var En=300,Hn="300px",Dn=500;function Lt(e={}){let{immediate:t=false,debounceDelay:o=En,rootMargin:n=Hn,idleTimeout:r=Dn}=e,[s,a]=React.useState(false),l=React.useRef(null),i=React.useRef(null),c=React.useRef(null),d=React.useMemo(()=>p=>{let g=Date.now();return window.setTimeout(()=>{p({didTimeout:false,timeRemaining:()=>Math.max(0,50-(Date.now()-g))});},1)},[]),u=React.useMemo(()=>typeof window!="undefined"&&window.requestIdleCallback?(p,g)=>window.requestIdleCallback(p,g):d,[d]),m=React.useMemo(()=>typeof window!="undefined"&&window.cancelIdleCallback?p=>window.cancelIdleCallback(p):p=>{clearTimeout(p);},[]);return React.useEffect(()=>{if(t){a(true);return}let p=l.current;if(!p)return;i.current&&(clearTimeout(i.current),i.current=null),c.current&&(m(c.current),c.current=null);let g=()=>{i.current&&(clearTimeout(i.current),i.current=null),c.current&&(m(c.current),c.current=null);},h=x=>{c.current=u(w=>{w.timeRemaining()>0||w.didTimeout?(a(true),x.disconnect()):c.current=u(()=>{a(true),x.disconnect();},{timeout:r/2});},{timeout:r});},b=x=>{g(),i.current=window.setTimeout(()=>{var I,H;let w=x.takeRecords();(w.length===0||(H=(I=w.at(-1))==null?void 0:I.isIntersecting)!=null&&H)&&h(x);},o);},f=(x,w)=>{x.isIntersecting?b(w):g();},T=new IntersectionObserver(x=>{for(let w of x)f(w,T);},{rootMargin:n,threshold:0});return T.observe(p),()=>{i.current&&clearTimeout(i.current),c.current&&m(c.current),T.disconnect();}},[t,o,n,r,m,u]),{shouldRender:s,containerRef:l}}var Rt=/\s/,On=/^\s+$/,Vn=new Set(["code","pre","svg","math","annotation"]),jn=e=>typeof e=="object"&&e!==null&&"type"in e&&e.type==="element",Fn=e=>e.some(t=>jn(t)&&Vn.has(t.tagName)),zn=e=>{let t=[],o="",n=false;for(let r of e){let s=Rt.test(r);s!==n&&o&&(t.push(o),o=""),o+=r,n=s;}return o&&t.push(o),t},_n=e=>{let t=[],o="";for(let n of e)Rt.test(n)?o+=n:(o&&(t.push(o),o=""),t.push(n));return o&&t.push(o),t},qn=(e,t,o,n,r)=>({type:"element",tagName:"span",properties:{"data-sd-animate":true,style:r?`--sd-animation:sd-${t};--sd-duration:0ms;--sd-easing:${n}`:`--sd-animation:sd-${t};--sd-duration:${o}ms;--sd-easing:${n}`},children:[{type:"text",value:e}]}),$n=(e,t,o,n,r)=>{let s=t.at(-1);if(!(s&&"children"in s))return;if(Fn(t))return SKIP;let a=s,l=a.children.indexOf(e);if(l===-1)return;let i=e.value;if(!i.trim()){r.count+=i.length;return}let c=o.sep==="char"?_n(i):zn(i),d=n.prevContentLength,u=c.map(m=>{let p=r.count;if(r.count+=m.length,On.test(m))return {type:"text",value:m};let g=d>0&&p<d;return qn(m,o.animation,o.duration,o.easing,g)});return a.children.splice(l,1,...u),l+u.length},Wn=0;function be(e){var s,a,l,i;let t={animation:(s=e==null?void 0:e.animation)!=null?s:"fadeIn",duration:(a=e==null?void 0:e.duration)!=null?a:150,easing:(l=e==null?void 0:e.easing)!=null?l:"ease",sep:(i=e==null?void 0:e.sep)!=null?i:"word"},o={prevContentLength:0,lastRenderCharCount:0},n=Wn++,r=()=>c=>{let d={count:0};visitParents(c,"text",(u,m)=>$n(u,m,t,o,d)),o.lastRenderCharCount=d.count,o.prevContentLength=0;};return Object.defineProperty(r,"name",{value:`rehypeAnimate$${n}`}),{name:"animate",type:"animate",rehypePlugin:r,setPrevContentLength(c){o.prevContentLength=c;},getLastRenderCharCount(){let c=o.lastRenderCharCount;return o.lastRenderCharCount=0,c}}}be();var Qe=React.createContext(false),et=()=>React.useContext(Qe);var he=(...e)=>twMerge(clsx.clsx(e)),Jn=(e,t)=>{if(!e||!t)return t;let o=`${e}:`;return t.split(/\s+/).filter(Boolean).map(n=>n.startsWith(o)?n:`${e}:${n}`).join(" ")},Ht=e=>e?(...t)=>Jn(e,twMerge(clsx.clsx(t))):he,J=(e,t,o)=>{let n=typeof t=="string"?new Blob([t],{type:o}):t,r=URL.createObjectURL(n),s=document.createElement("a");s.href=r,s.download=e,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(r);};var Se=React.createContext(he),y=()=>React.useContext(Se);var Yn=he("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),Qn=e=>{let t={};for(let o of e.split(";")){let n=o.indexOf(":");if(n>0){let r=o.slice(0,n).trim(),s=o.slice(n+1).trim();r&&s&&(t[r]=s);}}return t},Bt=React.memo(({children:e,result:t,language:o,className:n,startLine:r,...s})=>{let a=y(),l=React.useMemo(()=>a(Yn),[a]),i=React.useMemo(()=>{let c={};return t.bg&&(c["--sdm-bg"]=t.bg),t.fg&&(c["--sdm-fg"]=t.fg),t.rootStyle&&Object.assign(c,Qn(t.rootStyle)),c},[t.bg,t.fg,t.rootStyle]);return ReactJSXRuntime.jsx("div",{className:a(n,"overflow-hidden rounded-md border border-border bg-background p-4 text-sm"),"data-language":o,"data-streamdown":"code-block-body",...s,children:ReactJSXRuntime.jsx("pre",{className:a(n,"bg-[var(--sdm-bg,inherit]","dark:bg-[var(--shiki-dark-bg,var(--sdm-bg,inherit)]"),style:i,children:ReactJSXRuntime.jsx("code",{className:a("[counter-increment:line_0] [counter-reset:line]"),style:r&&r>1?{counterReset:`line ${r-1}`}:void 0,children:t.tokens.map((c,d)=>ReactJSXRuntime.jsx("span",{className:l,children:c.length===0||c.length===1&&c[0].content===""?`
|
|
52478
|
-
`:c.map((u,m)=>{let p={},g=!!u.bgColor;if(u.color&&(p["--sdm-c"]=u.color),u.bgColor&&(p["--sdm-tbg"]=u.bgColor),u.htmlStyle)for(let[h,b]of Object.entries(u.htmlStyle))h==="color"?p["--sdm-c"]=b:h==="background-color"?(p["--sdm-tbg"]=b,g=true):p[h]=b;return ReactJSXRuntime.jsx("span",{className:a("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",g&&"bg-[var(--sdm-tbg)]",g&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:p,...u.htmlAttrs,children:u.content},m)})},d))})})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className&&e.startLine===t.startLine);var tt=({className:e,language:t,style:o,isIncomplete:n,...r})=>{let s=y();return ReactJSXRuntime.jsx("div",{className:s("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",e),"data-incomplete":n||void 0,"data-language":t,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...r})};var ot=React.createContext({code:""}),Ee=()=>React.useContext(ot);var nt=({language:e})=>{let t=y();return ReactJSXRuntime.jsx("div",{className:t("flex h-8 items-center text-muted-foreground text-xs"),"data-language":e,"data-streamdown":"code-block-header",children:ReactJSXRuntime.jsx("span",{className:t("ml-1 font-mono lowercase"),children:e})})};var sr=/\n+$/,ar=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_highlighted-body-TPN3WLV5.
|
|
52557
|
+
`:c.map((u,m)=>{let p={},g=!!u.bgColor;if(u.color&&(p["--sdm-c"]=u.color),u.bgColor&&(p["--sdm-tbg"]=u.bgColor),u.htmlStyle)for(let[h,b]of Object.entries(u.htmlStyle))h==="color"?p["--sdm-c"]=b:h==="background-color"?(p["--sdm-tbg"]=b,g=true):p[h]=b;return ReactJSXRuntime.jsx("span",{className:a("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",g&&"bg-[var(--sdm-tbg)]",g&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:p,...u.htmlAttrs,children:u.content},m)})},d))})})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className&&e.startLine===t.startLine);var tt=({className:e,language:t,style:o,isIncomplete:n,...r})=>{let s=y();return ReactJSXRuntime.jsx("div",{className:s("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",e),"data-incomplete":n||void 0,"data-language":t,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...r})};var ot=React.createContext({code:""}),Ee=()=>React.useContext(ot);var nt=({language:e})=>{let t=y();return ReactJSXRuntime.jsx("div",{className:t("flex h-8 items-center text-muted-foreground text-xs"),"data-language":e,"data-streamdown":"code-block-header",children:ReactJSXRuntime.jsx("span",{className:t("ml-1 font-mono lowercase"),children:e})})};var sr=/\n+$/,ar=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_highlighted-body-TPN3WLV5.CelsmwcU.js'); }).then(e=>({default:e.HighlightedCodeBlockBody}))),rt=({code:e,language:t,className:o,children:n,isIncomplete:r=false,startLine:s,...a})=>{let l=y(),i=React.useMemo(()=>e.replace(sr,""),[e]),c=React.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:i.split(`
|
|
52479
52558
|
`).map(d=>[{content:d,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[i]);return ReactJSXRuntime.jsx(ot.Provider,{value:{code:e},children:ReactJSXRuntime.jsxs(tt,{isIncomplete:r,language:t,children:[ReactJSXRuntime.jsx(nt,{language:t}),n?ReactJSXRuntime.jsx("div",{className:l("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:ReactJSXRuntime.jsx("div",{className:l("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"code-block-actions",children:n})}):null,ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Bt,{className:o,language:t,result:c,startLine:s,...a}),children:ReactJSXRuntime.jsx(ar,{className:o,code:i,language:t,raw:c,startLine:s,...a})})]})})};var Vt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z",fill:"currentColor",fillRule:"evenodd"})}),jt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z",fill:"currentColor",fillRule:"evenodd"})}),Ft=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z",fill:"currentColor",fillRule:"evenodd"})}),zt=e=>ReactJSXRuntime.jsxs("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:[ReactJSXRuntime.jsx("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),_t=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M1 5.25V6H2.5V5.25V2.5H5.25H6V1H5.25H2C1.44772 1 1 1.44772 1 2V5.25ZM5.25 14.9994H6V13.4994H5.25H2.5V10.7494V9.99939H1V10.7494V13.9994C1 14.5517 1.44772 14.9994 2 14.9994H5.25ZM15 10V10.75V14C15 14.5523 14.5523 15 14 15H10.75H10V13.5H10.75H13.5V10.75V10H15ZM10.75 1H10V2.5H10.75H13.5V5.25V6H15V5.25V2C15 1.44772 14.5523 1 14 1H10.75Z",fill:"currentColor",fillRule:"evenodd"})}),qt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M13.5 8C13.5 4.96643 11.0257 2.5 7.96452 2.5C5.42843 2.5 3.29365 4.19393 2.63724 6.5H5.25H6V8H5.25H0.75C0.335787 8 0 7.66421 0 7.25V2.75V2H1.5V2.75V5.23347C2.57851 2.74164 5.06835 1 7.96452 1C11.8461 1 15 4.13001 15 8C15 11.87 11.8461 15 7.96452 15C5.62368 15 3.54872 13.8617 2.27046 12.1122L1.828 11.5066L3.03915 10.6217L3.48161 11.2273C4.48831 12.6051 6.12055 13.5 7.96452 13.5C11.0257 13.5 13.5 11.0336 13.5 8Z",fill:"currentColor",fillRule:"evenodd"})}),$t=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z",fill:"currentColor",fillRule:"evenodd"})}),Wt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M13.5 10.25V13.25C13.5 13.3881 13.3881 13.5 13.25 13.5H2.75C2.61193 13.5 2.5 13.3881 2.5 13.25L2.5 2.75C2.5 2.61193 2.61193 2.5 2.75 2.5H5.75H6.5V1H5.75H2.75C1.7835 1 1 1.7835 1 2.75V13.25C1 14.2165 1.7835 15 2.75 15H13.25C14.2165 15 15 14.2165 15 13.25V10.25V9.5H13.5V10.25ZM9 1H9.75H14.2495C14.6637 1 14.9995 1.33579 14.9995 1.75V6.25V7H13.4995V6.25V3.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L12.4388 2.5H9.75H9V1Z",fill:"currentColor",fillRule:"evenodd"})}),Zt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H5.875V4.75V4.125H7.125V4.75V5.875H8.25H8.875V7.125H8.25H7.125V8.25V8.875H5.875V8.25V7.125H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),Xt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H8.25H8.875V7.125H8.25H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})});var we={CheckIcon:Vt,CopyIcon:jt,DownloadIcon:Ft,ExternalLinkIcon:Wt,Loader2Icon:zt,Maximize2Icon:_t,RotateCcwIcon:qt,XIcon:$t,ZoomInIcon:Zt,ZoomOutIcon:Xt},Kt=React.createContext(we),mr=(e,t)=>{if(e===t)return true;if(!(e&&t))return e===t;let o=Object.keys(e),n=Object.keys(t);return o.length!==n.length?false:o.every(r=>e[r]===t[r])},st=({icons:e,children:t})=>{let o=React.useRef(e),n=React.useRef(e?{...we,...e}:we);mr(o.current,e)||(o.current=e,n.current=e?{...we,...e}:we);let r=n.current;return ReactJSXRuntime.jsx(Kt.Provider,{value:r,children:t})},L=()=>React.useContext(Kt);var He={copyCode:"Copy Code",downloadFile:"Download file",downloadDiagram:"Download diagram",downloadDiagramAsSvg:"Download diagram as SVG",downloadDiagramAsPng:"Download diagram as PNG",downloadDiagramAsMmd:"Download diagram as MMD",viewFullscreen:"View fullscreen",exitFullscreen:"Exit fullscreen",mermaidFormatSvg:"SVG",mermaidFormatPng:"PNG",mermaidFormatMmd:"MMD",copyTable:"Copy table",copyTableAsMarkdown:"Copy table as Markdown",copyTableAsCsv:"Copy table as CSV",copyTableAsTsv:"Copy table as TSV",downloadTable:"Download table",downloadTableAsCsv:"Download table as CSV",downloadTableAsMarkdown:"Download table as Markdown",tableFormatMarkdown:"Markdown",tableFormatCsv:"CSV",tableFormatTsv:"TSV",imageNotAvailable:"Image not available",downloadImage:"Download image",openExternalLink:"Open external link?",externalLinkWarning:"You're about to visit an external website.",close:"Close",copyLink:"Copy link",copied:"Copied",openLink:"Open link"},De=React.createContext(He),B=()=>React.useContext(De);var Be=({onCopy:e,onError:t,timeout:o=2e3,children:n,className:r,code:s,...a})=>{let l=y(),[i,c]=React.useState(false),d=React.useRef(0),{code:u}=Ee(),{isAnimating:m}=React.useContext(R),p=B(),g=s!=null?s:u,h=async()=>{var T;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.writeText)){t==null||t(new Error("Clipboard API not available"));return}try{i||(await navigator.clipboard.writeText(g),c(!0),e==null||e(),d.current=window.setTimeout(()=>c(!1),o));}catch(x){t==null||t(x);}};React.useEffect(()=>()=>{window.clearTimeout(d.current);},[]);let b=L(),f=i?b.CheckIcon:b.CopyIcon;return ReactJSXRuntime.jsx("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),"data-streamdown":"code-block-copy-button",disabled:m,onClick:h,title:p.copyCode,type:"button",...a,children:n!=null?n:ReactJSXRuntime.jsx(f,{size:14})})};var Gt={"1c":"1c","1c-query":"1cq",abap:"abap","actionscript-3":"as",ada:"ada",adoc:"adoc","angular-html":"html","angular-ts":"ts",apache:"conf",apex:"cls",apl:"apl",applescript:"applescript",ara:"ara",asciidoc:"adoc",asm:"asm",astro:"astro",awk:"awk",ballerina:"bal",bash:"sh",bat:"bat",batch:"bat",be:"be",beancount:"beancount",berry:"berry",bibtex:"bib",bicep:"bicep",blade:"blade.php",bsl:"bsl",c:"c","c#":"cs","c++":"cpp",cadence:"cdc",cairo:"cairo",cdc:"cdc",clarity:"clar",clj:"clj",clojure:"clj","closure-templates":"soy",cmake:"cmake",cmd:"cmd",cobol:"cob",codeowners:"CODEOWNERS",codeql:"ql",coffee:"coffee",coffeescript:"coffee","common-lisp":"lisp",console:"sh",coq:"v",cpp:"cpp",cql:"cql",crystal:"cr",cs:"cs",csharp:"cs",css:"css",csv:"csv",cue:"cue",cypher:"cql",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",docker:"dockerfile",dockerfile:"dockerfile",dotenv:"env","dream-maker":"dm",edge:"edge",elisp:"el",elixir:"ex",elm:"elm","emacs-lisp":"el",erb:"erb",erl:"erl",erlang:"erl",f:"f","f#":"fs",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"f90",f95:"f95",fennel:"fnl",fish:"fish",fluent:"ftl",for:"for","fortran-fixed-form":"f","fortran-free-form":"f90",fs:"fs",fsharp:"fs",fsl:"fsl",ftl:"ftl",gdresource:"tres",gdscript:"gd",gdshader:"gdshader",genie:"gs",gherkin:"feature","git-commit":"gitcommit","git-rebase":"gitrebase",gjs:"js",gleam:"gleam","glimmer-js":"js","glimmer-ts":"ts",glsl:"glsl",gnuplot:"plt",go:"go",gql:"gql",graphql:"graphql",groovy:"groovy",gts:"gts",hack:"hack",haml:"haml",handlebars:"hbs",haskell:"hs",haxe:"hx",hbs:"hbs",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",hs:"hs",html:"html","html-derivative":"html",http:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",jade:"jade",java:"java",javascript:"js",jinja:"jinja",jison:"jison",jl:"jl",js:"js",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",julia:"jl",kotlin:"kt",kql:"kql",kt:"kt",kts:"kts",kusto:"kql",latex:"tex",lean:"lean",lean4:"lean",less:"less",liquid:"liquid",lisp:"lisp",lit:"lit",llvm:"ll",log:"log",logo:"logo",lua:"lua",luau:"luau",make:"mak",makefile:"mak",markdown:"md",marko:"marko",matlab:"m",md:"md",mdc:"mdc",mdx:"mdx",mediawiki:"wiki",mermaid:"mmd",mips:"s",mipsasm:"s",mmd:"mmd",mojo:"mojo",move:"move",nar:"nar",narrat:"narrat",nextflow:"nf",nf:"nf",nginx:"conf",nim:"nim",nix:"nix",nu:"nu",nushell:"nu",objc:"m","objective-c":"m","objective-cpp":"mm",ocaml:"ml",pascal:"pas",perl:"pl",perl6:"p6",php:"php",plsql:"pls",po:"po",polar:"polar",postcss:"pcss",pot:"pot",potx:"potx",powerquery:"pq",powershell:"ps1",prisma:"prisma",prolog:"pl",properties:"properties",proto:"proto",protobuf:"proto",ps:"ps",ps1:"ps1",pug:"pug",puppet:"pp",purescript:"purs",py:"py",python:"py",ql:"ql",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",racket:"rkt",raku:"raku",razor:"cshtml",rb:"rb",reg:"reg",regex:"regex",regexp:"regexp",rel:"rel",riscv:"s",rs:"rs",rst:"rst",ruby:"rb",rust:"rs",sas:"sas",sass:"sass",scala:"scala",scheme:"scm",scss:"scss",sdbl:"sdbl",sh:"sh",shader:"shader",shaderlab:"shader",shell:"sh",shellscript:"sh",shellsession:"sh",smalltalk:"st",solidity:"sol",soy:"soy",sparql:"rq",spl:"spl",splunk:"spl",sql:"sql","ssh-config":"config",stata:"do",styl:"styl",stylus:"styl",svelte:"svelte",swift:"swift","system-verilog":"sv",systemd:"service",talon:"talon",talonscript:"talon",tasl:"tasl",tcl:"tcl",templ:"templ",terraform:"tf",tex:"tex",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"ts","ts-tags":"ts",tsp:"tsp",tsv:"tsv",tsx:"tsx",turtle:"ttl",twig:"twig",typ:"typ",typescript:"ts",typespec:"tsp",typst:"typ",v:"v",vala:"vala",vb:"vb",verilog:"v",vhdl:"vhdl",vim:"vim",viml:"vim",vimscript:"vim",vue:"vue","vue-html":"html","vue-vine":"vine",vy:"vy",vyper:"vy",wasm:"wasm",wenyan:"wy",wgsl:"wgsl",wiki:"wiki",wikitext:"wiki",wit:"wit",wl:"wl",wolfram:"wl",xml:"xml",xsl:"xsl",yaml:"yaml",yml:"yml",zenscript:"zs",zig:"zig",zsh:"zsh",\u6587\u8A00:"wy"},at=({onDownload:e,onError:t,language:o,children:n,className:r,code:s,...a})=>{let l=y(),{code:i}=Ee(),{isAnimating:c}=React.useContext(R),d=B(),u=L(),m=s!=null?s:i,g=`file.${o&&o in Gt?Gt[o]:"txt"}`,h="text/plain",b=()=>{try{J(g,m,h),e==null||e();}catch(f){t==null||t(f);}};return ReactJSXRuntime.jsx("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),"data-streamdown":"code-block-download-button",disabled:c,onClick:b,title:d.downloadFile,type:"button",...a,children:n!=null?n:ReactJSXRuntime.jsx(u.DownloadIcon,{size:14})})};var Ae=()=>{let{Loader2Icon:e}=L(),t=y();return ReactJSXRuntime.jsxs("div",{className:t("w-full divide-y divide-border overflow-hidden rounded-xl border border-border"),children:[ReactJSXRuntime.jsx("div",{className:t("h-[46px] w-full bg-muted/80")}),ReactJSXRuntime.jsx("div",{className:t("flex w-full items-center justify-center p-4"),children:ReactJSXRuntime.jsx(e,{className:t("size-4 animate-spin")})})]})};var xr=/\.[^/.]+$/,to=({node:e,className:t,src:o,alt:n,onLoad:r,onError:s,...a})=>{let{DownloadIcon:l}=L(),i=y(),c=React.useRef(null),[d,u]=React.useState(false),[m,p]=React.useState(false),g=B(),h=a.width!=null||a.height!=null,b=(d||h)&&!m,f=m&&!h;React.useEffect(()=>{let k=c.current;if(k!=null&&k.complete){let I=k.naturalWidth>0;u(I),p(!I);}},[]);let T=React.useCallback(k=>{u(true),p(false),r==null||r(k);},[r]),x=React.useCallback(k=>{u(false),p(true),s==null||s(k);},[s]),w=async()=>{if(o)try{let I=await(await fetch(o)).blob(),S=new URL(o,window.location.origin).pathname.split("/").pop()||"",F=S.split(".").pop(),z=S.includes(".")&&F!==void 0&&F.length<=4,q="";if(z)q=S;else {let A=I.type,K="png";A.includes("jpeg")||A.includes("jpg")?K="jpg":A.includes("png")?K="png":A.includes("svg")?K="svg":A.includes("gif")?K="gif":A.includes("webp")&&(K="webp"),q=`${(n||S||"image").replace(xr,"")}.${K}`;}J(q,I,I.type);}catch(k){window.open(o,"_blank");}};return o?ReactJSXRuntime.jsxs("div",{className:i("group relative my-4 inline-block"),"data-streamdown":"image-wrapper",children:[ReactJSXRuntime.jsx("img",{alt:n,className:i("max-w-full rounded-lg",f&&"hidden",t),"data-streamdown":"image",onError:x,onLoad:T,ref:c,src:o,...a}),f&&ReactJSXRuntime.jsx("span",{className:i("text-muted-foreground text-xs italic"),"data-streamdown":"image-fallback",children:g.imageNotAvailable}),ReactJSXRuntime.jsx("div",{className:i("pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block")}),b&&ReactJSXRuntime.jsx("button",{className:i("absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background","opacity-0 group-hover:opacity-100"),onClick:w,title:g.downloadImage,type:"button",children:ReactJSXRuntime.jsx(l,{size:14})})]}):null};var ke=0,le=()=>{ke+=1,ke===1&&(document.body.style.overflow="hidden");},ce=()=>{ke=Math.max(0,ke-1),ke===0&&(document.body.style.overflow="");};var ro=({url:e,isOpen:t,onClose:o,onConfirm:n})=>{let{CheckIcon:r,CopyIcon:s,ExternalLinkIcon:a,XIcon:l}=L(),i=y(),[c,d]=React.useState(false),u=B(),m=React.useCallback(async()=>{try{await navigator.clipboard.writeText(e),d(!0),setTimeout(()=>d(!1),2e3);}catch(g){}},[e]),p=React.useCallback(()=>{n(),o();},[n,o]);return React.useEffect(()=>{if(t){le();let g=h=>{h.key==="Escape"&&o();};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g),ce();}}},[t,o]),t?ReactJSXRuntime.jsx("div",{className:i("fixed inset-0 z-50 flex items-center justify-center bg-background/50 backdrop-blur-sm"),"data-streamdown":"link-safety-modal",onClick:o,onKeyDown:g=>{g.key==="Escape"&&o();},role:"button",tabIndex:0,children:ReactJSXRuntime.jsxs("div",{className:i("relative mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border bg-background p-6 shadow-lg"),onClick:g=>g.stopPropagation(),onKeyDown:g=>g.stopPropagation(),role:"presentation",children:[ReactJSXRuntime.jsx("button",{className:i("absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:o,title:u.close,type:"button",children:ReactJSXRuntime.jsx(l,{size:16})}),ReactJSXRuntime.jsxs("div",{className:i("flex flex-col gap-2"),children:[ReactJSXRuntime.jsxs("div",{className:i("flex items-center gap-2 font-semibold text-lg"),children:[ReactJSXRuntime.jsx(a,{size:20}),ReactJSXRuntime.jsx("span",{children:u.openExternalLink})]}),ReactJSXRuntime.jsx("p",{className:i("text-muted-foreground text-sm"),children:u.externalLinkWarning})]}),ReactJSXRuntime.jsx("div",{className:i("break-all rounded-md bg-muted p-3 font-mono text-sm",e.length>100&&"max-h-32 overflow-y-auto"),children:e}),ReactJSXRuntime.jsxs("div",{className:i("flex gap-2"),children:[ReactJSXRuntime.jsx("button",{className:i("flex flex-1 items-center justify-center gap-2 rounded-md border bg-background px-4 py-2 font-medium text-sm transition-all hover:bg-muted"),onClick:m,type:"button",children:c?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx(r,{size:14}),ReactJSXRuntime.jsx("span",{children:u.copied})]}):ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx(s,{size:14}),ReactJSXRuntime.jsx("span",{children:u.copyLink})]})}),ReactJSXRuntime.jsxs("button",{className:i("flex flex-1 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 font-medium text-primary-foreground text-sm transition-all hover:bg-primary/90"),onClick:p,type:"button",children:[ReactJSXRuntime.jsx(a,{size:14}),ReactJSXRuntime.jsx("span",{children:u.openLink})]})]})]})}):null};var Oe=React.createContext(null),lt=()=>React.useContext(Oe),Mi=()=>{var t;let e=lt();return (t=e==null?void 0:e.code)!=null?t:null},de=()=>{var t;let e=lt();return (t=e==null?void 0:e.mermaid)!=null?t:null};var so=e=>{var o;let t=lt();return t!=null&&t.renderers&&e&&(o=t.renderers.find(n=>Array.isArray(n.language)?n.language.includes(e):n.language===e))!=null?o:null};var ao=(e,t)=>{var n;let o=(n=void 0)!=null?n:5;return new Promise((r,s)=>{let a="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(e))),l=new Image;l.crossOrigin="anonymous",l.onload=()=>{let i=document.createElement("canvas"),c=l.width*o,d=l.height*o;i.width=c,i.height=d;let u=i.getContext("2d");if(!u){s(new Error("Failed to create 2D canvas context for PNG export"));return}u.drawImage(l,0,0,c,d),i.toBlob(m=>{if(!m){s(new Error("Failed to create PNG blob"));return}r(m);},"image/png");},l.onerror=()=>s(new Error("Failed to load SVG image")),l.src=a;})};var lo=({chart:e,children:t,className:o,onDownload:n,config:r,onError:s})=>{let a=y(),[l,i]=React.useState(false),c=React.useRef(null),{isAnimating:d}=React.useContext(R),u=L(),m=de(),p=B(),g=async h=>{try{if(h==="mmd"){J("diagram.mmd",e,"text/plain"),i(!1),n==null||n(h);return}if(!m){s==null||s(new Error("Mermaid plugin not available"));return}let b=m.getMermaid(r),f=e.split("").reduce((w,k)=>(w<<5)-w+k.charCodeAt(0)|0,0),T=`mermaid-${Math.abs(f)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:x}=await b.render(T,e);if(!x){s==null||s(new Error("SVG not found. Please wait for the diagram to render."));return}if(h==="svg"){J("diagram.svg",x,"image/svg+xml"),i(!1),n==null||n(h);return}if(h==="png"){let w=await ao(x);J("diagram.png",w,"image/png"),n==null||n(h),i(!1);return}}catch(b){s==null||s(b);}};return React.useEffect(()=>{let h=b=>{let f=b.composedPath();c.current&&!f.includes(c.current)&&i(false);};return document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h);}},[]),ReactJSXRuntime.jsxs("div",{className:a("relative"),ref:c,children:[ReactJSXRuntime.jsx("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",o),disabled:d,onClick:()=>i(!l),title:p.downloadDiagram,type:"button",children:t!=null?t:ReactJSXRuntime.jsx(u.DownloadIcon,{size:14})}),l?ReactJSXRuntime.jsxs("div",{className:a("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("svg"),title:p.downloadDiagramAsSvg,type:"button",children:p.mermaidFormatSvg}),ReactJSXRuntime.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("png"),title:p.downloadDiagramAsPng,type:"button",children:p.mermaidFormatPng}),ReactJSXRuntime.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("mmd"),title:p.downloadDiagramAsMmd,type:"button",children:p.mermaidFormatMmd})]}):null]})};var po=({chart:e,config:t,onFullscreen:o,onExit:n,className:r,...s})=>{let{Maximize2Icon:a,XIcon:l}=L(),i=y(),[c,d]=React.useState(false),{isAnimating:u,controls:m}=React.useContext(R),p=B(),g=(()=>{if(typeof m=="boolean")return m;let b=m.mermaid;return b===false?false:b===true||b===void 0?true:b.panZoom!==false})(),h=()=>{d(!c);};return React.useEffect(()=>{if(c){le();let b=f=>{f.key==="Escape"&&d(false);};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b),ce();}}},[c]),React.useEffect(()=>{c?o==null||o():n&&n();},[c,o,n]),ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:i("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),disabled:u,onClick:h,title:p.viewFullscreen,type:"button",...s,children:ReactJSXRuntime.jsx(a,{size:14})}),c?ReactDOM.createPortal(ReactJSXRuntime.jsxs("div",{className:i("fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm"),onClick:h,onKeyDown:b=>{b.key==="Escape"&&h();},role:"button",tabIndex:0,children:[ReactJSXRuntime.jsx("button",{className:i("absolute top-4 right-4 z-10 rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:h,title:p.exitFullscreen,type:"button",children:ReactJSXRuntime.jsx(l,{size:20})}),ReactJSXRuntime.jsx("div",{className:i("flex size-full items-center justify-center p-4"),onClick:b=>b.stopPropagation(),onKeyDown:b=>b.stopPropagation(),role:"presentation",children:ReactJSXRuntime.jsx(uo,{chart:e,className:i("size-full [&_svg]:h-auto [&_svg]:w-auto"),config:t,fullscreen:true,showControls:g})})]}),document.body):null]})};var ue=e=>{var s,a;let t=[],o=[],n=e.querySelectorAll("thead th");for(let l of n)t.push(((s=l.textContent)==null?void 0:s.trim())||"");let r=e.querySelectorAll("tbody tr");for(let l of r){let i=[],c=l.querySelectorAll("td");for(let d of c)i.push(((a=d.textContent)==null?void 0:a.trim())||"");o.push(i);}return {headers:t,rows:o}},oe=e=>{let{headers:t,rows:o}=e,n=l=>{let i=false,c=false;for(let d of l){if(d==='"'){i=true,c=true;break}(d===","||d===`
|
|
52480
52559
|
`)&&(i=true);}return i?c?`"${l.replace(/"/g,'""')}"`:`"${l}"`:l},r=t.length>0?o.length+1:o.length,s=new Array(r),a=0;t.length>0&&(s[a]=t.map(n).join(","),a+=1);for(let l of o)s[a]=l.map(n).join(","),a+=1;return s.join(`
|
|
52481
52560
|
`)},ct=e=>{let{headers:t,rows:o}=e,n=l=>{let i=false;for(let d of l)if(d===" "||d===`
|
|
52482
52561
|
`||d==="\r"){i=true;break}if(!i)return l;let c=[];for(let d of l)d===" "?c.push("\\t"):d===`
|
|
52483
52562
|
`?c.push("\\n"):d==="\r"?c.push("\\r"):c.push(d);return c.join("")},r=t.length>0?o.length+1:o.length,s=new Array(r),a=0;t.length>0&&(s[a]=t.map(n).join(" "),a+=1);for(let l of o)s[a]=l.map(n).join(" "),a+=1;return s.join(`
|
|
52484
52563
|
`)},Ve=e=>{let t=false;for(let n of e)if(n==="\\"||n==="|"){t=true;break}if(!t)return e;let o=[];for(let n of e)n==="\\"?o.push("\\\\"):n==="|"?o.push("\\|"):o.push(n);return o.join("")},ne=e=>{let{headers:t,rows:o}=e;if(t.length===0)return "";let n=new Array(o.length+2),r=0,s=t.map(l=>Ve(l));n[r]=`| ${s.join(" | ")} |`,r+=1;let a=new Array(t.length);for(let l=0;l<t.length;l+=1)a[l]="---";n[r]=`| ${a.join(" | ")} |`,r+=1;for(let l of o)if(l.length<t.length){let i=new Array(t.length);for(let c=0;c<t.length;c+=1)i[c]=c<l.length?Ve(l[c]):"";n[r]=`| ${i.join(" | ")} |`,r+=1;}else {let i=l.map(c=>Ve(c));n[r]=`| ${i.join(" | ")} |`,r+=1;}return n.join(`
|
|
52485
|
-
`)};var Te=({children:e,className:t,onCopy:o,onError:n,timeout:r=2e3})=>{let s=y(),[a,l]=React.useState(false),[i,c]=React.useState(false),d=React.useRef(null),u=React.useRef(0),{isAnimating:m}=React.useContext(R),p=B(),g=async f=>{var T,x;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.write)){n==null||n(new Error("Clipboard API not available"));return}try{let w=(x=d.current)==null?void 0:x.closest('[data-streamdown="table-wrapper"]'),k=w==null?void 0:w.querySelector("table");if(!k){n==null||n(new Error("Table not found"));return}let I=ue(k),F=({csv:oe,tsv:ct,md:ne}[f]||ne)(I),z=new ClipboardItem({"text/plain":new Blob([F],{type:"text/plain"}),"text/html":new Blob([k.outerHTML],{type:"text/html"})});await navigator.clipboard.write([z]),c(!0),l(!1),o==null||o(f),u.current=window.setTimeout(()=>c(!1),r);}catch(w){n==null||n(w);}};React.useEffect(()=>{let f=T=>{let x=T.composedPath();d.current&&!x.includes(d.current)&&l(false);};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f),window.clearTimeout(u.current);}},[]);let h=L(),b=i?h.CheckIcon:h.CopyIcon;return ReactJSXRuntime.jsxs("div",{className:s("relative"),ref:d,children:[ReactJSXRuntime.jsx("button",{className:s("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:m,onClick:()=>l(!a),title:p.copyTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(b,{height:14,width:14})}),a?ReactJSXRuntime.jsxs("div",{className:s("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("md"),title:p.copyTableAsMarkdown,type:"button",children:p.tableFormatMarkdown}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("csv"),title:p.copyTableAsCsv,type:"button",children:p.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("tsv"),title:p.copyTableAsTsv,type:"button",children:p.tableFormatTsv})]}):null]})};var Pe=({children:e,className:t,onDownload:o,onError:n})=>{let r=y(),[s,a]=React.useState(false),l=React.useRef(null),{isAnimating:i}=React.useContext(R),c=B(),d=L(),u=m=>{var p;try{let g=(p=l.current)==null?void 0:p.closest('[data-streamdown="table-wrapper"]'),h=g==null?void 0:g.querySelector("table");if(!h){n==null||n(new Error("Table not found"));return}let b=ue(h),f=m==="csv"?oe(b):ne(b);J(`table.${m==="csv"?"csv":"md"}`,f,m==="csv"?"text/csv":"text/markdown"),a(!1),o==null||o(m);}catch(g){n==null||n(g);}};return React.useEffect(()=>{let m=p=>{let g=p.composedPath();l.current&&!g.includes(l.current)&&a(false);};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[]),ReactJSXRuntime.jsxs("div",{className:r("relative"),ref:l,children:[ReactJSXRuntime.jsx("button",{className:r("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>a(!s),title:c.downloadTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(d.DownloadIcon,{size:14})}),s?ReactJSXRuntime.jsxs("div",{className:r("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("csv"),title:c.downloadTableAsCsv,type:"button",children:c.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("markdown"),title:c.downloadTableAsMarkdown,type:"button",children:c.tableFormatMarkdown})]}):null]})};var wo=({children:e,className:t,showCopy:o=true,showDownload:n=true})=>{let{Maximize2Icon:r,XIcon:s}=L(),a=y(),[l,i]=React.useState(false),{isAnimating:c}=React.useContext(R),d=B(),u=()=>{i(true);},m=()=>{i(false);};return React.useEffect(()=>{if(l){le();let p=g=>{g.key==="Escape"&&i(false);};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p),ce();}}},[l]),ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:c,onClick:u,title:d.viewFullscreen,type:"button",children:ReactJSXRuntime.jsx(r,{size:14})}),l?ReactDOM.createPortal(ReactJSXRuntime.jsx("div",{"aria-label":d.viewFullscreen,"aria-modal":"true",className:a("fixed inset-0 z-50 flex flex-col bg-background"),"data-streamdown":"table-fullscreen",onClick:m,onKeyDown:p=>{p.key==="Escape"&&m();},role:"dialog",children:ReactJSXRuntime.jsxs("div",{className:a("flex h-full flex-col"),onClick:p=>p.stopPropagation(),onKeyDown:p=>p.stopPropagation(),role:"presentation",children:[ReactJSXRuntime.jsxs("div",{className:a("flex items-center justify-end gap-1 p-4"),children:[o?ReactJSXRuntime.jsx(Te,{}):null,n?ReactJSXRuntime.jsx(Pe,{}):null,ReactJSXRuntime.jsx("button",{className:a("rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:m,title:d.exitFullscreen,type:"button",children:ReactJSXRuntime.jsx(s,{size:20})})]}),ReactJSXRuntime.jsx("div",{className:a("flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10"),children:ReactJSXRuntime.jsx("table",{className:a("w-full border-collapse border border-border"),"data-streamdown":"table",children:e})})]})}),document.body):null]})};var ko=({children:e,className:t,showControls:o,showCopy:n=true,showDownload:r=true,showFullscreen:s=true,...a})=>{let l=y(),i=o&&n,c=o&&r,d=o&&s,u=i||c||d;return ReactJSXRuntime.jsxs("div",{className:l("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"),"data-streamdown":"table-wrapper",children:[u?ReactJSXRuntime.jsxs("div",{className:l("flex items-center justify-end gap-1"),children:[i?ReactJSXRuntime.jsx(Te,{}):null,c?ReactJSXRuntime.jsx(Pe,{}):null,d?ReactJSXRuntime.jsx(wo,{showCopy:i,showDownload:c,children:e}):null]}):null,ReactJSXRuntime.jsx("div",{className:l("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx("table",{className:l("w-full divide-y divide-border",t),"data-streamdown":"table",...a,children:e})})]})};var Gr=/startLine=(\d+)/,Yr=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_mermaid-O7DHMXV3.D2BXxJ0r.js'); }).then(e=>({default:e.Mermaid}))),Qr=/language-([^\s]+)/;function _e(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return true;if(!(e!=null&&e.position&&(t!=null&&t.position)))return false;let o=e.position.start,n=t.position.start,r=e.position.end,s=t.position.end;return (o==null?void 0:o.line)===(n==null?void 0:n.line)&&(o==null?void 0:o.column)===(n==null?void 0:n.column)&&(r==null?void 0:r.line)===(s==null?void 0:s.line)&&(r==null?void 0:r.column)===(s==null?void 0:s.column)}function E(e,t){return e.className===t.className&&_e(e.node,t.node)}var pt=(e,t)=>typeof e=="boolean"?e:e[t]!==false,ut=(e,t)=>{if(typeof e=="boolean")return e;let o=e.table;return o===false?false:o===true||o===void 0?true:o[t]!==false},xo=(e,t)=>{if(typeof e=="boolean")return e;let o=e.code;return o===false?false:o===true||o===void 0?true:o[t]!==false},je=(e,t)=>{if(typeof e=="boolean")return e;let o=e.mermaid;return o===false?false:o===true||o===void 0?true:o[t]!==false},gt=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ol",{className:r("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...n,children:e})},(e,t)=>E(e,t));gt.displayName="MarkdownOl";var To=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("li",{className:r("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...n,children:e})},(e,t)=>e.className===t.className&&_e(e.node,t.node));To.displayName="MarkdownLi";var Po=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ul",{className:r("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...n,children:e})},(e,t)=>E(e,t));Po.displayName="MarkdownUl";var Mo=React.memo(({className:e,node:t,...o})=>{let n=y();return ReactJSXRuntime.jsx("hr",{className:n("my-6 border-border",e),"data-streamdown":"horizontal-rule",...o})},(e,t)=>E(e,t));Mo.displayName="MarkdownHr";var Io=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("span",{className:r("font-semibold",t),"data-streamdown":"strong",...n,children:e})},(e,t)=>E(e,t));Io.displayName="MarkdownStrong";var es=({children:e,className:t,href:o,node:n,...r})=>{let s=y(),{linkSafety:a}=React.useContext(R),[l,i]=React.useState(false),c=o==="streamdown:incomplete-link",d=React.useCallback(async g=>{if(!(!(a!=null&&a.enabled&&o)||c)){if(g.preventDefault(),a.onLinkCheck&&await a.onLinkCheck(o)){window.open(o,"_blank","noreferrer");return}i(true);}},[a,o,c]),u=React.useCallback(()=>{o&&window.open(o,"_blank","noreferrer");},[o]),m=React.useCallback(()=>{i(false);},[]),p={url:o!=null?o:"",isOpen:l,onClose:m,onConfirm:u};return a!=null&&a.enabled&&o?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:s("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",onClick:d,type:"button",children:e}),a.renderModal?a.renderModal(p):ReactJSXRuntime.jsx(ro,{...p})]}):ReactJSXRuntime.jsx("a",{className:s("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",href:o,rel:"noreferrer",target:"_blank",...r,children:e})},No=React.memo(es,(e,t)=>E(e,t)&&e.href===t.href);No.displayName="MarkdownA";var Lo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h1",{className:r("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...n,children:e})},(e,t)=>E(e,t));Lo.displayName="MarkdownH1";var Ro=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h2",{className:r("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...n,children:e})},(e,t)=>E(e,t));Ro.displayName="MarkdownH2";var So=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h3",{className:r("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...n,children:e})},(e,t)=>E(e,t));So.displayName="MarkdownH3";var Eo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h4",{className:r("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...n,children:e})},(e,t)=>E(e,t));Eo.displayName="MarkdownH4";var Ho=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h5",{className:r("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...n,children:e})},(e,t)=>E(e,t));Ho.displayName="MarkdownH5";var Do=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h6",{className:r("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...n,children:e})},(e,t)=>E(e,t));Do.displayName="MarkdownH6";var Bo=React.memo(({children:e,className:t,node:o,...n})=>{let{controls:r}=React.useContext(R),s=pt(r,"table"),a=ut(r,"copy"),l=ut(r,"download"),i=ut(r,"fullscreen");return ReactJSXRuntime.jsx(ko,{className:t,showControls:s,showCopy:a,showDownload:l,showFullscreen:i,...n,children:e})},(e,t)=>E(e,t));Bo.displayName="MarkdownTable";var Ao=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("thead",{className:r("bg-muted/80",t),"data-streamdown":"table-header",...n,children:e})},(e,t)=>E(e,t));Ao.displayName="MarkdownThead";var Oo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tbody",{className:r("divide-y divide-border",t),"data-streamdown":"table-body",...n,children:e})},(e,t)=>E(e,t));Oo.displayName="MarkdownTbody";var Vo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tr",{className:r("border-border",t),"data-streamdown":"table-row",...n,children:e})},(e,t)=>E(e,t));Vo.displayName="MarkdownTr";var jo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("th",{className:r("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...n,children:e})},(e,t)=>E(e,t));jo.displayName="MarkdownTh";var Fo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("td",{className:r("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...n,children:e})},(e,t)=>E(e,t));Fo.displayName="MarkdownTd";var zo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("blockquote",{className:r("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...n,children:e})},(e,t)=>E(e,t));zo.displayName="MarkdownBlockquote";var _o=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sup",{className:r("text-sm",t),"data-streamdown":"superscript",...n,children:e})},(e,t)=>E(e,t));_o.displayName="MarkdownSup";var qo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sub",{className:r("text-sm",t),"data-streamdown":"subscript",...n,children:e})},(e,t)=>E(e,t));qo.displayName="MarkdownSub";var $o=React.memo(({children:e,className:t,node:o,...n})=>{if("data-footnotes"in n){let s=i=>{var m,p;if(!React.isValidElement(i))return false;let c=Array.isArray(i.props.children)?i.props.children:[i.props.children],d=false,u=false;for(let g of c)if(g){if(typeof g=="string")g.trim()!==""&&(d=true);else if(React.isValidElement(g))if(((m=g.props)==null?void 0:m["data-footnote-backref"])!==void 0)u=true;else {let h=Array.isArray(g.props.children)?g.props.children:[g.props.children];for(let b of h){if(typeof b=="string"&&b.trim()!==""){d=true;break}if(React.isValidElement(b)&&((p=b.props)==null?void 0:p["data-footnote-backref"])===void 0){d=true;break}}}}return u&&!d},a=Array.isArray(e)?e.map(i=>{if(!React.isValidElement(i))return i;if(i.type===gt){let d=(Array.isArray(i.props.children)?i.props.children:[i.props.children]).filter(u=>!s(u));return d.length===0?null:{...i,props:{...i.props,children:d}}}return i}):e;return (Array.isArray(a)?a.some(i=>i!==null):a!==null)?ReactJSXRuntime.jsx("section",{className:t,...n,children:a}):null}return ReactJSXRuntime.jsx("section",{className:t,...n,children:e})},(e,t)=>E(e,t));$o.displayName="MarkdownSection";var ts=({node:e,className:t,children:o,...n})=>{var k,I;let r=y(),s=!("data-block"in n),{mermaid:a,controls:l}=React.useContext(R),i=de(),c=et(),d=t==null?void 0:t.match(Qr),u=(k=d==null?void 0:d.at(1))!=null?k:"",m=so(u);if(s)return ReactJSXRuntime.jsx("code",{className:r("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...n,children:o});let p=(I=e==null?void 0:e.properties)==null?void 0:I.metastring,g=p==null?void 0:p.match(Gr),h=g?Number.parseInt(g[1],10):void 0,b=h!==void 0&&h>=1?h:void 0,f="";if(React.isValidElement(o)&&o.props&&typeof o.props=="object"&&"children"in o.props&&typeof o.props.children=="string"?f=o.props.children:typeof o=="string"&&(f=o),m){let H=m.component;return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsx(H,{code:f,isIncomplete:c,language:u})})}if(u==="mermaid"&&i){let H=pt(l,"mermaid"),S=je(l,"download"),F=je(l,"copy"),z=je(l,"fullscreen"),q=je(l,"panZoom"),A=H&&(S||F||z);return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsxs("div",{className:r("group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-streamdown":"mermaid-block",children:[ReactJSXRuntime.jsx("div",{className:r("flex h-8 items-center text-muted-foreground text-xs"),children:ReactJSXRuntime.jsx("span",{className:r("ml-1 font-mono lowercase"),children:"mermaid"})}),A?ReactJSXRuntime.jsx("div",{className:r("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:ReactJSXRuntime.jsxs("div",{className:r("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"mermaid-block-actions",children:[S?ReactJSXRuntime.jsx(lo,{chart:f,config:a==null?void 0:a.config}):null,F?ReactJSXRuntime.jsx(Be,{code:f}):null,z?ReactJSXRuntime.jsx(po,{chart:f,config:a==null?void 0:a.config}):null]})}):null,ReactJSXRuntime.jsx("div",{className:r("rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx(Yr,{chart:f,config:a==null?void 0:a.config,showControls:q})})]})})}let T=pt(l,"code"),x=xo(l,"download"),w=xo(l,"copy");return ReactJSXRuntime.jsx(rt,{className:t,code:f,isIncomplete:c,language:u,startLine:b,children:T?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[x?ReactJSXRuntime.jsx(at,{code:f,language:u}):null,w?ReactJSXRuntime.jsx(Be,{}):null]}):null})},Wo=React.memo(ts,(e,t)=>e.className===t.className&&_e(e.node,t.node));Wo.displayName="MarkdownCode";var Zo=React.memo(to,(e,t)=>e.className===t.className&&_e(e.node,t.node));Zo.displayName="MarkdownImg";var Xo=React.memo(({children:e,node:t,...o})=>{let r=(Array.isArray(e)?e:[e]).filter(s=>s!=null&&s!=="");if(r.length===1&&React.isValidElement(r[0])){let s=r[0].props.node,a=s==null?void 0:s.tagName;if(a==="img")return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e});if(a==="code"&&"data-block"in r[0].props)return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e})}return ReactJSXRuntime.jsx("p",{...o,children:e})},(e,t)=>E(e,t));Xo.displayName="MarkdownParagraph";var Jo={ol:gt,li:To,ul:Po,hr:Mo,strong:Io,a:No,h1:Lo,h2:Ro,h3:So,h4:Eo,h5:Ho,h6:Do,table:Bo,thead:Ao,tbody:Oo,tr:Vo,th:jo,td:Fo,blockquote:zo,code:Wo,img:Zo,pre:({children:e})=>React.isValidElement(e)?React.cloneElement(e,{"data-block":"true"}):e,sup:_o,sub:qo,p:Xo,section:$o};var os=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,ns=/\p{L}/u;function qe(e){let t=e.replace(/^#{1,6}\s+/gm,"").replace(/(\*{1,3}|_{1,3})/g,"").replace(/`[^`]*`/g,"").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^[\s>*\-+\d.]+/gm,"");for(let o of t){if(os.test(o))return "rtl";if(ns.test(o))return "ltr"}return "ltr"}var rs=/^[ \t]{0,3}(`{3,}|~{3,})/,ss=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,bt=e=>{let t=e.split(`
|
|
52564
|
+
`)};var Te=({children:e,className:t,onCopy:o,onError:n,timeout:r=2e3})=>{let s=y(),[a,l]=React.useState(false),[i,c]=React.useState(false),d=React.useRef(null),u=React.useRef(0),{isAnimating:m}=React.useContext(R),p=B(),g=async f=>{var T,x;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.write)){n==null||n(new Error("Clipboard API not available"));return}try{let w=(x=d.current)==null?void 0:x.closest('[data-streamdown="table-wrapper"]'),k=w==null?void 0:w.querySelector("table");if(!k){n==null||n(new Error("Table not found"));return}let I=ue(k),F=({csv:oe,tsv:ct,md:ne}[f]||ne)(I),z=new ClipboardItem({"text/plain":new Blob([F],{type:"text/plain"}),"text/html":new Blob([k.outerHTML],{type:"text/html"})});await navigator.clipboard.write([z]),c(!0),l(!1),o==null||o(f),u.current=window.setTimeout(()=>c(!1),r);}catch(w){n==null||n(w);}};React.useEffect(()=>{let f=T=>{let x=T.composedPath();d.current&&!x.includes(d.current)&&l(false);};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f),window.clearTimeout(u.current);}},[]);let h=L(),b=i?h.CheckIcon:h.CopyIcon;return ReactJSXRuntime.jsxs("div",{className:s("relative"),ref:d,children:[ReactJSXRuntime.jsx("button",{className:s("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:m,onClick:()=>l(!a),title:p.copyTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(b,{height:14,width:14})}),a?ReactJSXRuntime.jsxs("div",{className:s("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("md"),title:p.copyTableAsMarkdown,type:"button",children:p.tableFormatMarkdown}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("csv"),title:p.copyTableAsCsv,type:"button",children:p.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("tsv"),title:p.copyTableAsTsv,type:"button",children:p.tableFormatTsv})]}):null]})};var Pe=({children:e,className:t,onDownload:o,onError:n})=>{let r=y(),[s,a]=React.useState(false),l=React.useRef(null),{isAnimating:i}=React.useContext(R),c=B(),d=L(),u=m=>{var p;try{let g=(p=l.current)==null?void 0:p.closest('[data-streamdown="table-wrapper"]'),h=g==null?void 0:g.querySelector("table");if(!h){n==null||n(new Error("Table not found"));return}let b=ue(h),f=m==="csv"?oe(b):ne(b);J(`table.${m==="csv"?"csv":"md"}`,f,m==="csv"?"text/csv":"text/markdown"),a(!1),o==null||o(m);}catch(g){n==null||n(g);}};return React.useEffect(()=>{let m=p=>{let g=p.composedPath();l.current&&!g.includes(l.current)&&a(false);};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[]),ReactJSXRuntime.jsxs("div",{className:r("relative"),ref:l,children:[ReactJSXRuntime.jsx("button",{className:r("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>a(!s),title:c.downloadTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(d.DownloadIcon,{size:14})}),s?ReactJSXRuntime.jsxs("div",{className:r("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("csv"),title:c.downloadTableAsCsv,type:"button",children:c.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("markdown"),title:c.downloadTableAsMarkdown,type:"button",children:c.tableFormatMarkdown})]}):null]})};var wo=({children:e,className:t,showCopy:o=true,showDownload:n=true})=>{let{Maximize2Icon:r,XIcon:s}=L(),a=y(),[l,i]=React.useState(false),{isAnimating:c}=React.useContext(R),d=B(),u=()=>{i(true);},m=()=>{i(false);};return React.useEffect(()=>{if(l){le();let p=g=>{g.key==="Escape"&&i(false);};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p),ce();}}},[l]),ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:c,onClick:u,title:d.viewFullscreen,type:"button",children:ReactJSXRuntime.jsx(r,{size:14})}),l?ReactDOM.createPortal(ReactJSXRuntime.jsx("div",{"aria-label":d.viewFullscreen,"aria-modal":"true",className:a("fixed inset-0 z-50 flex flex-col bg-background"),"data-streamdown":"table-fullscreen",onClick:m,onKeyDown:p=>{p.key==="Escape"&&m();},role:"dialog",children:ReactJSXRuntime.jsxs("div",{className:a("flex h-full flex-col"),onClick:p=>p.stopPropagation(),onKeyDown:p=>p.stopPropagation(),role:"presentation",children:[ReactJSXRuntime.jsxs("div",{className:a("flex items-center justify-end gap-1 p-4"),children:[o?ReactJSXRuntime.jsx(Te,{}):null,n?ReactJSXRuntime.jsx(Pe,{}):null,ReactJSXRuntime.jsx("button",{className:a("rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:m,title:d.exitFullscreen,type:"button",children:ReactJSXRuntime.jsx(s,{size:20})})]}),ReactJSXRuntime.jsx("div",{className:a("flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10"),children:ReactJSXRuntime.jsx("table",{className:a("w-full border-collapse border border-border"),"data-streamdown":"table",children:e})})]})}),document.body):null]})};var ko=({children:e,className:t,showControls:o,showCopy:n=true,showDownload:r=true,showFullscreen:s=true,...a})=>{let l=y(),i=o&&n,c=o&&r,d=o&&s,u=i||c||d;return ReactJSXRuntime.jsxs("div",{className:l("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"),"data-streamdown":"table-wrapper",children:[u?ReactJSXRuntime.jsxs("div",{className:l("flex items-center justify-end gap-1"),children:[i?ReactJSXRuntime.jsx(Te,{}):null,c?ReactJSXRuntime.jsx(Pe,{}):null,d?ReactJSXRuntime.jsx(wo,{showCopy:i,showDownload:c,children:e}):null]}):null,ReactJSXRuntime.jsx("div",{className:l("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx("table",{className:l("w-full divide-y divide-border",t),"data-streamdown":"table",...a,children:e})})]})};var Gr=/startLine=(\d+)/,Yr=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_mermaid-O7DHMXV3.CNHg9tm2.js'); }).then(e=>({default:e.Mermaid}))),Qr=/language-([^\s]+)/;function _e(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return true;if(!(e!=null&&e.position&&(t!=null&&t.position)))return false;let o=e.position.start,n=t.position.start,r=e.position.end,s=t.position.end;return (o==null?void 0:o.line)===(n==null?void 0:n.line)&&(o==null?void 0:o.column)===(n==null?void 0:n.column)&&(r==null?void 0:r.line)===(s==null?void 0:s.line)&&(r==null?void 0:r.column)===(s==null?void 0:s.column)}function E(e,t){return e.className===t.className&&_e(e.node,t.node)}var pt=(e,t)=>typeof e=="boolean"?e:e[t]!==false,ut=(e,t)=>{if(typeof e=="boolean")return e;let o=e.table;return o===false?false:o===true||o===void 0?true:o[t]!==false},xo=(e,t)=>{if(typeof e=="boolean")return e;let o=e.code;return o===false?false:o===true||o===void 0?true:o[t]!==false},je=(e,t)=>{if(typeof e=="boolean")return e;let o=e.mermaid;return o===false?false:o===true||o===void 0?true:o[t]!==false},gt=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ol",{className:r("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...n,children:e})},(e,t)=>E(e,t));gt.displayName="MarkdownOl";var To=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("li",{className:r("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...n,children:e})},(e,t)=>e.className===t.className&&_e(e.node,t.node));To.displayName="MarkdownLi";var Po=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ul",{className:r("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...n,children:e})},(e,t)=>E(e,t));Po.displayName="MarkdownUl";var Mo=React.memo(({className:e,node:t,...o})=>{let n=y();return ReactJSXRuntime.jsx("hr",{className:n("my-6 border-border",e),"data-streamdown":"horizontal-rule",...o})},(e,t)=>E(e,t));Mo.displayName="MarkdownHr";var Io=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("span",{className:r("font-semibold",t),"data-streamdown":"strong",...n,children:e})},(e,t)=>E(e,t));Io.displayName="MarkdownStrong";var es=({children:e,className:t,href:o,node:n,...r})=>{let s=y(),{linkSafety:a}=React.useContext(R),[l,i]=React.useState(false),c=o==="streamdown:incomplete-link",d=React.useCallback(async g=>{if(!(!(a!=null&&a.enabled&&o)||c)){if(g.preventDefault(),a.onLinkCheck&&await a.onLinkCheck(o)){window.open(o,"_blank","noreferrer");return}i(true);}},[a,o,c]),u=React.useCallback(()=>{o&&window.open(o,"_blank","noreferrer");},[o]),m=React.useCallback(()=>{i(false);},[]),p={url:o!=null?o:"",isOpen:l,onClose:m,onConfirm:u};return a!=null&&a.enabled&&o?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:s("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",onClick:d,type:"button",children:e}),a.renderModal?a.renderModal(p):ReactJSXRuntime.jsx(ro,{...p})]}):ReactJSXRuntime.jsx("a",{className:s("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",href:o,rel:"noreferrer",target:"_blank",...r,children:e})},No=React.memo(es,(e,t)=>E(e,t)&&e.href===t.href);No.displayName="MarkdownA";var Lo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h1",{className:r("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...n,children:e})},(e,t)=>E(e,t));Lo.displayName="MarkdownH1";var Ro=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h2",{className:r("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...n,children:e})},(e,t)=>E(e,t));Ro.displayName="MarkdownH2";var So=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h3",{className:r("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...n,children:e})},(e,t)=>E(e,t));So.displayName="MarkdownH3";var Eo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h4",{className:r("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...n,children:e})},(e,t)=>E(e,t));Eo.displayName="MarkdownH4";var Ho=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h5",{className:r("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...n,children:e})},(e,t)=>E(e,t));Ho.displayName="MarkdownH5";var Do=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h6",{className:r("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...n,children:e})},(e,t)=>E(e,t));Do.displayName="MarkdownH6";var Bo=React.memo(({children:e,className:t,node:o,...n})=>{let{controls:r}=React.useContext(R),s=pt(r,"table"),a=ut(r,"copy"),l=ut(r,"download"),i=ut(r,"fullscreen");return ReactJSXRuntime.jsx(ko,{className:t,showControls:s,showCopy:a,showDownload:l,showFullscreen:i,...n,children:e})},(e,t)=>E(e,t));Bo.displayName="MarkdownTable";var Ao=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("thead",{className:r("bg-muted/80",t),"data-streamdown":"table-header",...n,children:e})},(e,t)=>E(e,t));Ao.displayName="MarkdownThead";var Oo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tbody",{className:r("divide-y divide-border",t),"data-streamdown":"table-body",...n,children:e})},(e,t)=>E(e,t));Oo.displayName="MarkdownTbody";var Vo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tr",{className:r("border-border",t),"data-streamdown":"table-row",...n,children:e})},(e,t)=>E(e,t));Vo.displayName="MarkdownTr";var jo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("th",{className:r("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...n,children:e})},(e,t)=>E(e,t));jo.displayName="MarkdownTh";var Fo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("td",{className:r("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...n,children:e})},(e,t)=>E(e,t));Fo.displayName="MarkdownTd";var zo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("blockquote",{className:r("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...n,children:e})},(e,t)=>E(e,t));zo.displayName="MarkdownBlockquote";var _o=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sup",{className:r("text-sm",t),"data-streamdown":"superscript",...n,children:e})},(e,t)=>E(e,t));_o.displayName="MarkdownSup";var qo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sub",{className:r("text-sm",t),"data-streamdown":"subscript",...n,children:e})},(e,t)=>E(e,t));qo.displayName="MarkdownSub";var $o=React.memo(({children:e,className:t,node:o,...n})=>{if("data-footnotes"in n){let s=i=>{var m,p;if(!React.isValidElement(i))return false;let c=Array.isArray(i.props.children)?i.props.children:[i.props.children],d=false,u=false;for(let g of c)if(g){if(typeof g=="string")g.trim()!==""&&(d=true);else if(React.isValidElement(g))if(((m=g.props)==null?void 0:m["data-footnote-backref"])!==void 0)u=true;else {let h=Array.isArray(g.props.children)?g.props.children:[g.props.children];for(let b of h){if(typeof b=="string"&&b.trim()!==""){d=true;break}if(React.isValidElement(b)&&((p=b.props)==null?void 0:p["data-footnote-backref"])===void 0){d=true;break}}}}return u&&!d},a=Array.isArray(e)?e.map(i=>{if(!React.isValidElement(i))return i;if(i.type===gt){let d=(Array.isArray(i.props.children)?i.props.children:[i.props.children]).filter(u=>!s(u));return d.length===0?null:{...i,props:{...i.props,children:d}}}return i}):e;return (Array.isArray(a)?a.some(i=>i!==null):a!==null)?ReactJSXRuntime.jsx("section",{className:t,...n,children:a}):null}return ReactJSXRuntime.jsx("section",{className:t,...n,children:e})},(e,t)=>E(e,t));$o.displayName="MarkdownSection";var ts=({node:e,className:t,children:o,...n})=>{var k,I;let r=y(),s=!("data-block"in n),{mermaid:a,controls:l}=React.useContext(R),i=de(),c=et(),d=t==null?void 0:t.match(Qr),u=(k=d==null?void 0:d.at(1))!=null?k:"",m=so(u);if(s)return ReactJSXRuntime.jsx("code",{className:r("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...n,children:o});let p=(I=e==null?void 0:e.properties)==null?void 0:I.metastring,g=p==null?void 0:p.match(Gr),h=g?Number.parseInt(g[1],10):void 0,b=h!==void 0&&h>=1?h:void 0,f="";if(React.isValidElement(o)&&o.props&&typeof o.props=="object"&&"children"in o.props&&typeof o.props.children=="string"?f=o.props.children:typeof o=="string"&&(f=o),m){let H=m.component;return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsx(H,{code:f,isIncomplete:c,language:u})})}if(u==="mermaid"&&i){let H=pt(l,"mermaid"),S=je(l,"download"),F=je(l,"copy"),z=je(l,"fullscreen"),q=je(l,"panZoom"),A=H&&(S||F||z);return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsxs("div",{className:r("group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-streamdown":"mermaid-block",children:[ReactJSXRuntime.jsx("div",{className:r("flex h-8 items-center text-muted-foreground text-xs"),children:ReactJSXRuntime.jsx("span",{className:r("ml-1 font-mono lowercase"),children:"mermaid"})}),A?ReactJSXRuntime.jsx("div",{className:r("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:ReactJSXRuntime.jsxs("div",{className:r("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"mermaid-block-actions",children:[S?ReactJSXRuntime.jsx(lo,{chart:f,config:a==null?void 0:a.config}):null,F?ReactJSXRuntime.jsx(Be,{code:f}):null,z?ReactJSXRuntime.jsx(po,{chart:f,config:a==null?void 0:a.config}):null]})}):null,ReactJSXRuntime.jsx("div",{className:r("rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx(Yr,{chart:f,config:a==null?void 0:a.config,showControls:q})})]})})}let T=pt(l,"code"),x=xo(l,"download"),w=xo(l,"copy");return ReactJSXRuntime.jsx(rt,{className:t,code:f,isIncomplete:c,language:u,startLine:b,children:T?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[x?ReactJSXRuntime.jsx(at,{code:f,language:u}):null,w?ReactJSXRuntime.jsx(Be,{}):null]}):null})},Wo=React.memo(ts,(e,t)=>e.className===t.className&&_e(e.node,t.node));Wo.displayName="MarkdownCode";var Zo=React.memo(to,(e,t)=>e.className===t.className&&_e(e.node,t.node));Zo.displayName="MarkdownImg";var Xo=React.memo(({children:e,node:t,...o})=>{let r=(Array.isArray(e)?e:[e]).filter(s=>s!=null&&s!=="");if(r.length===1&&React.isValidElement(r[0])){let s=r[0].props.node,a=s==null?void 0:s.tagName;if(a==="img")return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e});if(a==="code"&&"data-block"in r[0].props)return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e})}return ReactJSXRuntime.jsx("p",{...o,children:e})},(e,t)=>E(e,t));Xo.displayName="MarkdownParagraph";var Jo={ol:gt,li:To,ul:Po,hr:Mo,strong:Io,a:No,h1:Lo,h2:Ro,h3:So,h4:Eo,h5:Ho,h6:Do,table:Bo,thead:Ao,tbody:Oo,tr:Vo,th:jo,td:Fo,blockquote:zo,code:Wo,img:Zo,pre:({children:e})=>React.isValidElement(e)?React.cloneElement(e,{"data-block":"true"}):e,sup:_o,sub:qo,p:Xo,section:$o};var os=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,ns=/\p{L}/u;function qe(e){let t=e.replace(/^#{1,6}\s+/gm,"").replace(/(\*{1,3}|_{1,3})/g,"").replace(/`[^`]*`/g,"").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^[\s>*\-+\d.]+/gm,"");for(let o of t){if(os.test(o))return "rtl";if(ns.test(o))return "ltr"}return "ltr"}var rs=/^[ \t]{0,3}(`{3,}|~{3,})/,ss=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,bt=e=>{let t=e.split(`
|
|
52486
52565
|
`),o=null,n=0;for(let r of t){let s=rs.exec(r);if(o===null){if(s){let a=s[1];o=a[0],n=a.length;}}else if(s){let a=s[1],l=a[0],i=a.length;l===o&&i>=n&&(o=null,n=0);}}return o!==null},Ko=e=>{let t=e.split(`
|
|
52487
52566
|
`);for(let o of t){let n=o.trim();if(n.length>0&&n.includes("|")&&ss.test(n))return true}return false};var Uo=()=>e=>{visit(e,"html",(t,o,n)=>{!n||typeof o!="number"||(n.children[o]={type:"text",value:t.value});});};var Yo=[],Qo={allowDangerousHtml:true},$e=new WeakMap,yt=class{constructor(){this.cache=new Map;this.keyCache=new WeakMap;this.maxSize=100;}generateCacheKey(t){let o=this.keyCache.get(t);if(o)return o;let n=t.rehypePlugins,r=t.remarkPlugins,s=t.remarkRehypeOptions;if(!(n||r||s)){let u="default";return this.keyCache.set(t,u),u}let a=u=>{if(!u||u.length===0)return "";let m="";for(let p=0;p<u.length;p+=1){let g=u[p];if(p>0&&(m+=","),Array.isArray(g)){let[h,b]=g;if(typeof h=="function"){let f=$e.get(h);f||(f=h.name,$e.set(h,f)),m+=f;}else m+=String(h);m+=":",m+=JSON.stringify(b);}else if(typeof g=="function"){let h=$e.get(g);h||(h=g.name,$e.set(g,h)),m+=h;}else m+=String(g);}return m},l=a(n),i=a(r),c=s?JSON.stringify(s):"",d=`${i}::${l}::${c}`;return this.keyCache.set(t,d),d}get(t){let o=this.generateCacheKey(t),n=this.cache.get(o);return n&&(this.cache.delete(o),this.cache.set(o,n)),n}set(t,o){let n=this.generateCacheKey(t);if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r);}this.cache.set(n,o);}clear(){this.cache.clear();}},en=new yt,wt=e=>{let t=gs(e),o=e.children||"",n=t.runSync(t.parse(o),o);return ks(n,e)},gs=e=>{let t=en.get(e);if(t)return t;let o=hs(e);return en.set(e,o),o},bs=e=>e.some(t=>Array.isArray(t)?t[0]===rehypeRaw:t===rehypeRaw),hs=e=>{let t=e.rehypePlugins||Yo,o=e.remarkPlugins||Yo,n=bs(t)?o:[...o,Uo],r=e.remarkRehypeOptions?{...Qo,...e.remarkRehypeOptions}:Qo;return unified().use(remarkParse).use(n).use(remarkRehype,r).use(t)},tn=e=>e,ys=(e,t,o,n)=>{o?e.children.splice(t,1):e.children[t]={type:"text",value:n};},ws=(e,t)=>{var o;for(let n in urlAttributes)if(Object.hasOwn(urlAttributes,n)&&Object.hasOwn(e.properties,n)){let r=e.properties[n],s=urlAttributes[n];(s===null||s.includes(e.tagName))&&(e.properties[n]=(o=t(String(r||""),n,e))!=null?o:void 0);}},Cs=(e,t,o,n,r,s)=>{let a=false;return n?a=!n.includes(e.tagName):r&&(a=r.includes(e.tagName)),!a&&s&&typeof t=="number"&&(a=!s(e,t,o)),a},ks=(e,t)=>{let{allowElement:o,allowedElements:n,disallowedElements:r,skipHtml:s,unwrapDisallowed:a,urlTransform:l}=t;if(o||n||r||s||l){let c=l||tn;visit(e,(d,u,m)=>{if(d.type==="raw"&&m&&typeof u=="number")return ys(m,u,s,d.value),u;if(d.type==="element"&&(ws(d,c),Cs(d,u,m,n,r,o)&&m&&typeof u=="number"))return a&&d.children?m.children.splice(u,1,...d.children):m.children.splice(u,1),u});}return toJsxRuntime(e,{Fragment:ReactJSXRuntime.Fragment,components:t.components,ignoreInvalidStyle:true,jsx:ReactJSXRuntime.jsx,jsxs:ReactJSXRuntime.jsxs,passKeys:true,passNode:true})};var xs=/\[\^[\w-]{1,200}\](?!:)/,Ts=/\[\^[\w-]{1,200}\]:/;var Ps=/<(\w+)[\s>]/,Ms=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),on=new Map,nn=new Map,Is=e=>{let t=e.toLowerCase(),o=on.get(t);if(o)return o;let n=new RegExp(`<${t}(?=[\\s>/])[^>]*>`,"gi");return on.set(t,n),n},Ns=e=>{let t=e.toLowerCase(),o=nn.get(t);if(o)return o;let n=new RegExp(`</${t}(?=[\\s>])[^>]*>`,"gi");return nn.set(t,n),n},rn=(e,t)=>{if(Ms.has(t.toLowerCase()))return 0;let o=e.match(Is(t));if(!o)return 0;let n=0;for(let r of o)r.trimEnd().endsWith("/>")||(n+=1);return n},sn=(e,t)=>{let o=e.match(Ns(t));return o?o.length:0},Ls=e=>{let t=0;for(let o=0;o<e.length-1;o+=1)e[o]==="$"&&e[o+1]==="$"&&(t+=1,o+=1);return t},Ct=e=>{let t=xs.test(e),o=Ts.test(e);if(t||o)return [e];let n=x.lex(e,{gfm:true}),r=[],s=[],a=false;for(let l of n){let i=l.raw,c=r.length;if(s.length>0){r[c-1]+=i;let d=s.at(-1),u=rn(i,d),m=sn(i,d);for(let p=0;p<u;p+=1)s.push(d);for(let p=0;p<m;p+=1)s.length>0&&s.at(-1)===d&&s.pop();continue}if(l.type==="html"&&l.block){let d=i.match(Ps);if(d){let u=d[1],m=rn(i,u),p=sn(i,u);m>p&&s.push(u);}}if(c>0&&!a){let d=r[c-1];if(Ls(d)%2===1){r[c-1]=d+i;continue}}r.push(i),l.type!=="space"&&(a=l.type==="code");}return r};var an=(e,t)=>{if(!t.length)return e;let o=e;for(let n of t){let r=new RegExp(`(<${n}(?=[\\s>/])[^>]*>)([\\s\\S]*?)(</${n}\\s*>)`,"gi");o=o.replace(r,(s,a,l,i)=>{let c=l.replace(/\n\n/g,`
|
|
52488
52567
|
<!---->
|
|
@@ -52517,74 +52596,6 @@ var MarkdownText = React.memo(function (_a) {
|
|
|
52517
52596
|
});
|
|
52518
52597
|
MarkdownText.displayName = 'MarkdownText';
|
|
52519
52598
|
|
|
52520
|
-
// Thread endpoints live on the unified /agent/threads/ family, same origin as
|
|
52521
|
-
// the assistant chat base
|
|
52522
|
-
var threadsBase = function (baseUrl) {
|
|
52523
|
-
return new URL('/agent/threads/', baseUrl).href;
|
|
52524
|
-
};
|
|
52525
|
-
var getThreadList = function (baseUrl, headers) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
52526
|
-
var res;
|
|
52527
|
-
return index$1.__generator(this, function (_a) {
|
|
52528
|
-
switch (_a.label) {
|
|
52529
|
-
case 0: return [4 /*yield*/, fetch(threadsBase(baseUrl), { headers: headers() })];
|
|
52530
|
-
case 1:
|
|
52531
|
-
res = _a.sent();
|
|
52532
|
-
if (!res.ok)
|
|
52533
|
-
return [2 /*return*/, null];
|
|
52534
|
-
return [2 /*return*/, res.json()];
|
|
52535
|
-
}
|
|
52536
|
-
});
|
|
52537
|
-
}); };
|
|
52538
|
-
var getThreadDetail = function (baseUrl, headers, threadId) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
52539
|
-
var res;
|
|
52540
|
-
return index$1.__generator(this, function (_a) {
|
|
52541
|
-
switch (_a.label) {
|
|
52542
|
-
case 0: return [4 /*yield*/, fetch("".concat(threadsBase(baseUrl)).concat(threadId, "/"), {
|
|
52543
|
-
headers: headers()
|
|
52544
|
-
})];
|
|
52545
|
-
case 1:
|
|
52546
|
-
res = _a.sent();
|
|
52547
|
-
if (!res.ok)
|
|
52548
|
-
return [2 /*return*/, null];
|
|
52549
|
-
return [2 /*return*/, res.json()];
|
|
52550
|
-
}
|
|
52551
|
-
});
|
|
52552
|
-
}); };
|
|
52553
|
-
var generateThreadTitle = function (baseUrl, headers, threadId, message, context) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
52554
|
-
var res, data;
|
|
52555
|
-
var _a;
|
|
52556
|
-
return index$1.__generator(this, function (_b) {
|
|
52557
|
-
switch (_b.label) {
|
|
52558
|
-
case 0: return [4 /*yield*/, fetch("".concat(threadsBase(baseUrl), "title/"), {
|
|
52559
|
-
method: 'POST',
|
|
52560
|
-
headers: index$1.__assign(index$1.__assign({}, headers()), { 'Content-Type': 'application/json' }),
|
|
52561
|
-
body: JSON.stringify(index$1.__assign({ message: message, thread_id: threadId !== null && threadId !== void 0 ? threadId : undefined }, (context !== null && context !== void 0 ? context : {})))
|
|
52562
|
-
})];
|
|
52563
|
-
case 1:
|
|
52564
|
-
res = _b.sent();
|
|
52565
|
-
if (!res.ok)
|
|
52566
|
-
return [2 /*return*/, null];
|
|
52567
|
-
return [4 /*yield*/, res.json()];
|
|
52568
|
-
case 2:
|
|
52569
|
-
data = _b.sent();
|
|
52570
|
-
return [2 /*return*/, (_a = data.title) !== null && _a !== void 0 ? _a : null];
|
|
52571
|
-
}
|
|
52572
|
-
});
|
|
52573
|
-
}); };
|
|
52574
|
-
var deleteThread = function (baseUrl, headers, threadId) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
52575
|
-
return index$1.__generator(this, function (_a) {
|
|
52576
|
-
switch (_a.label) {
|
|
52577
|
-
case 0: return [4 /*yield*/, fetch("".concat(threadsBase(baseUrl)).concat(threadId, "/"), {
|
|
52578
|
-
method: 'DELETE',
|
|
52579
|
-
headers: headers()
|
|
52580
|
-
})];
|
|
52581
|
-
case 1:
|
|
52582
|
-
_a.sent();
|
|
52583
|
-
return [2 /*return*/];
|
|
52584
|
-
}
|
|
52585
|
-
});
|
|
52586
|
-
}); };
|
|
52587
|
-
|
|
52588
52599
|
var getLiveStepKey = function (state) { var _a, _b; return (_a = state.latestStepName) !== null && _a !== void 0 ? _a : (_b = state.currentStep) === null || _b === void 0 ? void 0 : _b.key; };
|
|
52589
52600
|
var snapshotInlineErrors = function (state) {
|
|
52590
52601
|
var e_1, _a;
|
|
@@ -54351,8 +54362,8 @@ var DEFAULT_MODES = [
|
|
|
54351
54362
|
];
|
|
54352
54363
|
var AssistantChat = function (_a) {
|
|
54353
54364
|
var _b, _c;
|
|
54354
|
-
var _d;
|
|
54355
|
-
var instanceId = _a.instanceId, getTargets = _a.getTargets, getJwt = _a.getJwt, baseUrl = _a.baseUrl,
|
|
54365
|
+
var _d, _e;
|
|
54366
|
+
var instanceId = _a.instanceId, getTargets = _a.getTargets, getJwt = _a.getJwt, baseUrl = _a.baseUrl, _f = _a.bottom, bottom = _f === void 0 ? 20 : _f, color = _a.color, _g = _a.voiceEnabled, voiceEnabled = _g === void 0 ? false : _g, _h = _a.workflowActions, workflowActions = _h === void 0 ? [] : _h, _j = _a.allowedModes, allowedModes = _j === void 0 ? DEFAULT_MODES : _j, _k = _a.stepSettings, stepSettings = _k === void 0 ? {} : _k, activeStepId = _a.activeStepId, onLayoutChange = _a.onLayoutChange;
|
|
54356
54367
|
var headers = React.useMemo(function () {
|
|
54357
54368
|
if (getJwt)
|
|
54358
54369
|
return function () { return ({ Authorization: "Bearer ".concat(getJwt()) }); };
|
|
@@ -54367,8 +54378,15 @@ var AssistantChat = function (_a) {
|
|
|
54367
54378
|
return headers;
|
|
54368
54379
|
};
|
|
54369
54380
|
}, [getJwt]);
|
|
54381
|
+
// form_key drives backend form auth on the SDK surface, the session only
|
|
54382
|
+
// resolves an account after validating against this form's auth settings
|
|
54383
|
+
var formKey = !getJwt
|
|
54384
|
+
? (_d = getTargets().find(function (t) { return t.type === 'panel'; })) === null || _d === void 0 ? void 0 : _d.id
|
|
54385
|
+
: undefined;
|
|
54370
54386
|
var buildChatBody = function () {
|
|
54371
54387
|
var body = {};
|
|
54388
|
+
if (formKey)
|
|
54389
|
+
body.form_key = formKey;
|
|
54372
54390
|
var targets = getTargets();
|
|
54373
54391
|
if (targets.length > 0)
|
|
54374
54392
|
body.targets = targets;
|
|
@@ -54379,14 +54397,30 @@ var AssistantChat = function (_a) {
|
|
|
54379
54397
|
}
|
|
54380
54398
|
return body;
|
|
54381
54399
|
};
|
|
54382
|
-
var
|
|
54383
|
-
var
|
|
54400
|
+
var _l = index$1.__read(React.useState(false), 2), isOpen = _l[0], setIsOpen = _l[1];
|
|
54401
|
+
var _m = index$1.__read(React.useState(readStoredMode), 2), mode = _m[0], setModeState = _m[1];
|
|
54384
54402
|
var setMode = React.useCallback(function (next) {
|
|
54385
54403
|
setModeState(next);
|
|
54386
54404
|
writeStoredMode(next);
|
|
54387
54405
|
}, []);
|
|
54388
|
-
|
|
54389
|
-
|
|
54406
|
+
// Whitelist: no steps configured = available everywhere, otherwise the
|
|
54407
|
+
// assistant is hidden on steps absent from the map (kept mounted, see render)
|
|
54408
|
+
var whitelistActive = Object.keys(stepSettings).length > 0;
|
|
54409
|
+
var hiddenByWhitelist = whitelistActive && (!activeStepId || !(activeStepId in stepSettings));
|
|
54410
|
+
// Apply the creator's open default once per step entry, close/switch still sticks
|
|
54411
|
+
var forcedStepRef = React.useRef(undefined);
|
|
54412
|
+
React.useEffect(function () {
|
|
54413
|
+
if (!activeStepId || activeStepId === forcedStepRef.current)
|
|
54414
|
+
return;
|
|
54415
|
+
forcedStepRef.current = activeStepId;
|
|
54416
|
+
var stepDefault = stepSettings[activeStepId];
|
|
54417
|
+
if (stepDefault === 'floating' || stepDefault === 'sidebar_right') {
|
|
54418
|
+
setIsOpen(true);
|
|
54419
|
+
setModeState(stepDefault === 'sidebar_right' ? 'sidebar-right' : 'current');
|
|
54420
|
+
}
|
|
54421
|
+
}, [activeStepId, stepSettings]);
|
|
54422
|
+
var _o = index$1.__read(React.useState(readStoredSidebarWidth), 2), sidebarWidth = _o[0], setSidebarWidth = _o[1];
|
|
54423
|
+
var _p = index$1.__read(React.useState(false), 2), isResizing = _p[0], setIsResizing = _p[1];
|
|
54390
54424
|
React.useEffect(function () {
|
|
54391
54425
|
var onWindowResize = function () {
|
|
54392
54426
|
setSidebarWidth(function (w) {
|
|
@@ -54432,12 +54466,12 @@ var AssistantChat = function (_a) {
|
|
|
54432
54466
|
setSidebarWidth(DEFAULT_SIDEBAR_WIDTH);
|
|
54433
54467
|
writeStoredSidebarWidth(DEFAULT_SIDEBAR_WIDTH);
|
|
54434
54468
|
}, []);
|
|
54435
|
-
var
|
|
54436
|
-
var
|
|
54437
|
-
var
|
|
54438
|
-
var
|
|
54439
|
-
var
|
|
54440
|
-
var
|
|
54469
|
+
var _q = index$1.__read(React.useState(''), 2), input = _q[0], setInput = _q[1];
|
|
54470
|
+
var _r = index$1.__read(React.useState([]), 2), threads = _r[0], setThreads = _r[1];
|
|
54471
|
+
var _s = index$1.__read(React.useState(null), 2), activeThreadId = _s[0], setActiveThreadId = _s[1];
|
|
54472
|
+
var _t = index$1.__read(React.useState(false), 2), isDropdownOpen = _t[0], setIsDropdownOpen = _t[1];
|
|
54473
|
+
var _u = index$1.__read(React.useState(false), 2), isModeMenuOpen = _u[0], setIsModeMenuOpen = _u[1];
|
|
54474
|
+
var _v = index$1.__read(React.useState(null), 2), actionTooltip = _v[0], setActionTooltip = _v[1];
|
|
54441
54475
|
var messagesContainerRef = React.useRef(null);
|
|
54442
54476
|
// Suppresses auto-scroll when the user has scrolled up to read earlier content
|
|
54443
54477
|
var atBottomRef = React.useRef(true);
|
|
@@ -54484,7 +54518,7 @@ var AssistantChat = function (_a) {
|
|
|
54484
54518
|
if (stepKey)
|
|
54485
54519
|
titleContext.current_step = stepKey;
|
|
54486
54520
|
}
|
|
54487
|
-
generateThreadTitle(baseUrl, headers, currentThreadId, userText, titleContext).then(function (title) {
|
|
54521
|
+
generateThreadTitle(baseUrl, headers, currentThreadId, userText, titleContext, formKey).then(function (title) {
|
|
54488
54522
|
if (!title)
|
|
54489
54523
|
return;
|
|
54490
54524
|
setThreads(function (prev) {
|
|
@@ -54514,6 +54548,8 @@ var AssistantChat = function (_a) {
|
|
|
54514
54548
|
form.append('audio', audio, 'speech.wav');
|
|
54515
54549
|
pendingAudioRef.current = null;
|
|
54516
54550
|
}
|
|
54551
|
+
if (formKey)
|
|
54552
|
+
form.append('form_key', formKey);
|
|
54517
54553
|
return [4 /*yield*/, fetch("".concat(baseUrl, "voice/turn/"), {
|
|
54518
54554
|
method: 'POST',
|
|
54519
54555
|
headers: headers(),
|
|
@@ -54537,7 +54573,7 @@ var AssistantChat = function (_a) {
|
|
|
54537
54573
|
});
|
|
54538
54574
|
});
|
|
54539
54575
|
setActiveThreadId(threadId);
|
|
54540
|
-
getThreadDetail(baseUrl, headers, threadId).then(function (t) {
|
|
54576
|
+
getThreadDetail(baseUrl, headers, threadId, formKey).then(function (t) {
|
|
54541
54577
|
if (t)
|
|
54542
54578
|
setThreads(function (prev) {
|
|
54543
54579
|
return prev.map(function (thread) {
|
|
@@ -54695,16 +54731,16 @@ var AssistantChat = function (_a) {
|
|
|
54695
54731
|
};
|
|
54696
54732
|
var readyChat = React.useMemo(function () { return makeChat(null); }, [headers, getTargets, getJwt]);
|
|
54697
54733
|
var activeThread = threads.find(function (t) { return t.id === activeThreadId; });
|
|
54698
|
-
var activeChat = (
|
|
54699
|
-
var
|
|
54734
|
+
var activeChat = (_e = activeThread === null || activeThread === void 0 ? void 0 : activeThread.chat) !== null && _e !== void 0 ? _e : readyChat;
|
|
54735
|
+
var _w = useChat({
|
|
54700
54736
|
chat: activeChat
|
|
54701
|
-
}), rawMessages =
|
|
54702
|
-
var
|
|
54703
|
-
var
|
|
54737
|
+
}), rawMessages = _w.messages, sendMessage = _w.sendMessage, setMessages = _w.setMessages, status = _w.status, error = _w.error;
|
|
54738
|
+
var _x = useChatAttachments({ activeChat: activeChat, baseUrl: baseUrl, headers: headers, formKey: formKey }), attachments = _x.attachments, attachmentError = _x.attachmentError, attachmentsInFlight = _x.attachmentsInFlight, isDragging = _x.isDragging, fileInputRef = _x.fileInputRef, addFiles = _x.addFiles, removeFile = _x.removeFile, takeAttachments = _x.takeAttachments, handleComposerPaste = _x.handlePaste, handleDragOver = _x.handleDragOver, handleDragLeave = _x.handleDragLeave, handleDrop = _x.handleDrop;
|
|
54739
|
+
var _y = index$1.__read(React.useState(null), 2), attachmentPreview = _y[0], setAttachmentPreview = _y[1];
|
|
54704
54740
|
// A send fired while attachments were indexing, the message shows
|
|
54705
54741
|
// optimistically and the real request replaces it via messageId once its
|
|
54706
54742
|
// batch is terminal, files attached meanwhile stay for the next message
|
|
54707
|
-
var
|
|
54743
|
+
var _z = index$1.__read(React.useState(null), 2), pendingSubmit = _z[0], setPendingSubmit = _z[1];
|
|
54708
54744
|
React.useEffect(function () { return setPendingSubmit(null); }, [activeChat]);
|
|
54709
54745
|
var stagedAttachments = pendingSubmit
|
|
54710
54746
|
? attachments.filter(function (a) { return !pendingSubmit.previewUrls.includes(a.previewUrl); })
|
|
@@ -54750,7 +54786,7 @@ var AssistantChat = function (_a) {
|
|
|
54750
54786
|
var data;
|
|
54751
54787
|
return index$1.__generator(this, function (_a) {
|
|
54752
54788
|
switch (_a.label) {
|
|
54753
|
-
case 0: return [4 /*yield*/, getThreadList(baseUrl, headers)];
|
|
54789
|
+
case 0: return [4 /*yield*/, getThreadList(baseUrl, headers, formKey)];
|
|
54754
54790
|
case 1:
|
|
54755
54791
|
data = _a.sent();
|
|
54756
54792
|
if (!data)
|
|
@@ -54762,7 +54798,7 @@ var AssistantChat = function (_a) {
|
|
|
54762
54798
|
return [2 /*return*/];
|
|
54763
54799
|
}
|
|
54764
54800
|
});
|
|
54765
|
-
}); }, [headers, baseUrl]);
|
|
54801
|
+
}); }, [headers, baseUrl, formKey]);
|
|
54766
54802
|
React.useEffect(function () {
|
|
54767
54803
|
if (isOpen)
|
|
54768
54804
|
fetchThreads();
|
|
@@ -54802,7 +54838,7 @@ var AssistantChat = function (_a) {
|
|
|
54802
54838
|
setIsDropdownOpen(false);
|
|
54803
54839
|
return [2 /*return*/];
|
|
54804
54840
|
}
|
|
54805
|
-
return [4 /*yield*/, getThreadDetail(baseUrl, headers, id)];
|
|
54841
|
+
return [4 /*yield*/, getThreadDetail(baseUrl, headers, id, formKey)];
|
|
54806
54842
|
case 1:
|
|
54807
54843
|
thread = _c.sent();
|
|
54808
54844
|
if (!thread)
|
|
@@ -54825,7 +54861,7 @@ var AssistantChat = function (_a) {
|
|
|
54825
54861
|
e.stopPropagation();
|
|
54826
54862
|
thread = threads.find(function (t) { return t.id === id; });
|
|
54827
54863
|
if (!!(thread === null || thread === void 0 ? void 0 : thread.isTemporary)) return [3 /*break*/, 2];
|
|
54828
|
-
return [4 /*yield*/, deleteThread(baseUrl, headers, id)];
|
|
54864
|
+
return [4 /*yield*/, deleteThread(baseUrl, headers, id, formKey)];
|
|
54829
54865
|
case 1:
|
|
54830
54866
|
_a.sent();
|
|
54831
54867
|
_a.label = 2;
|
|
@@ -54861,7 +54897,7 @@ var AssistantChat = function (_a) {
|
|
|
54861
54897
|
], index$1.__read(prev.filter(function (t) { return t.id !== activeThreadId; })), false); });
|
|
54862
54898
|
}
|
|
54863
54899
|
}, [activeThreadId, activeThread, activeChat]);
|
|
54864
|
-
var
|
|
54900
|
+
var _0 = useAssistantVoice({
|
|
54865
54901
|
status: status,
|
|
54866
54902
|
sendMessage: function (message) { return index$1.__awaiter(void 0, void 0, void 0, function () {
|
|
54867
54903
|
return index$1.__generator(this, function (_a) {
|
|
@@ -54878,7 +54914,12 @@ var AssistantChat = function (_a) {
|
|
|
54878
54914
|
voiceActiveRef: voiceActiveRef,
|
|
54879
54915
|
pendingAudioRef: pendingAudioRef,
|
|
54880
54916
|
voiceDataRef: voiceDataRef
|
|
54881
|
-
}), voiceState =
|
|
54917
|
+
}), voiceState = _0.voiceState, voiceActive = _0.voiceActive, micAvailable = _0.micAvailable, spokenChars = _0.spokenChars, audioDraining = _0.audioDraining, startVoice = _0.startVoice, stopVoice = _0.stopVoice, skipSpeaking = _0.skipSpeaking;
|
|
54918
|
+
// Stop the mic if the assistant becomes hidden on a whitelisted step
|
|
54919
|
+
React.useEffect(function () {
|
|
54920
|
+
if (hiddenByWhitelist)
|
|
54921
|
+
stopVoice();
|
|
54922
|
+
}, [hiddenByWhitelist, stopVoice]);
|
|
54882
54923
|
// Voice: keep the view pinned to the bottom as the reply reveals during playback
|
|
54883
54924
|
React.useEffect(function () {
|
|
54884
54925
|
pinToBottom();
|
|
@@ -55028,19 +55069,27 @@ var AssistantChat = function (_a) {
|
|
|
55028
55069
|
: mode === 'sidebar-right'
|
|
55029
55070
|
? 'right'
|
|
55030
55071
|
: null;
|
|
55031
|
-
var
|
|
55072
|
+
var layoutOpen = isOpen && !hiddenByWhitelist;
|
|
55073
|
+
var layoutWidth = layoutOpen && layoutSide ? sidebarWidth : 0;
|
|
55032
55074
|
var onLayoutChangeRef = React.useRef(onLayoutChange);
|
|
55033
55075
|
onLayoutChangeRef.current = onLayoutChange;
|
|
55034
55076
|
React.useEffect(function () {
|
|
55035
55077
|
var _a;
|
|
55036
55078
|
(_a = onLayoutChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onLayoutChangeRef, {
|
|
55037
55079
|
mode: mode,
|
|
55038
|
-
isOpen:
|
|
55039
|
-
side: layoutSide,
|
|
55080
|
+
isOpen: layoutOpen,
|
|
55081
|
+
side: hiddenByWhitelist ? null : layoutSide,
|
|
55040
55082
|
width: layoutWidth,
|
|
55041
55083
|
isResizing: isResizing
|
|
55042
55084
|
});
|
|
55043
|
-
}, [
|
|
55085
|
+
}, [
|
|
55086
|
+
mode,
|
|
55087
|
+
layoutOpen,
|
|
55088
|
+
layoutSide,
|
|
55089
|
+
layoutWidth,
|
|
55090
|
+
isResizing,
|
|
55091
|
+
hiddenByWhitelist
|
|
55092
|
+
]);
|
|
55044
55093
|
var CollapseIcon = mode === 'sidebar-left'
|
|
55045
55094
|
? ChevronsLeftIcon
|
|
55046
55095
|
: mode === 'sidebar-right'
|
|
@@ -55055,6 +55104,9 @@ var AssistantChat = function (_a) {
|
|
|
55055
55104
|
: mode === 'fullscreen'
|
|
55056
55105
|
? FullscreenIcon
|
|
55057
55106
|
: FloatingIcon;
|
|
55107
|
+
// Stay mounted so chat/thread state survives navigating hidden steps
|
|
55108
|
+
if (hiddenByWhitelist)
|
|
55109
|
+
return null;
|
|
55058
55110
|
var fabOnLeft = mode === 'sidebar-left';
|
|
55059
55111
|
var fabSide = fabOnLeft ? { left: '20px' } : { right: '20px' };
|
|
55060
55112
|
var fabBottom = fabOnLeft ? 20 : bottom;
|
|
@@ -55581,3 +55633,4 @@ exports.Bt = Bt;
|
|
|
55581
55633
|
exports.Mi = Mi;
|
|
55582
55634
|
exports.R = R;
|
|
55583
55635
|
exports.uo = uo;
|
|
55636
|
+
//# sourceMappingURL=fthry_AssistantChat.BnU2Yr_h.js.map
|