@yuuichi/tools-assets 1.0.0-ym.2 → 1.0.0-ym.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/carbon/404/index.html +2 -2
  2. package/dist/carbon/_next/static/chunks/{webpack-c7eee30d6a530fba.js → webpack-145352ce0e98bf12.js} +1 -1
  3. package/dist/carbon/about/index.html +2 -2
  4. package/dist/carbon/account/index.html +2 -2
  5. package/dist/carbon/embed/index.html +2 -2
  6. package/dist/carbon/index.html +2 -2
  7. package/dist/carbon/snippets/index.html +2 -2
  8. package/dist/md/{i18n-toggle.js → i18n-bridge.js} +9 -33
  9. package/dist/md/index.html +117 -117
  10. package/dist/md/static/js/{md-AIAssistantPanel-CF4e4Vu5.js → md-AIAssistantPanel-AbRWnr8k.js} +1 -1
  11. package/dist/md/static/js/{md-AIConfig-DO9zDt5U.js → md-AIConfig-0A2NJlnO.js} +1 -1
  12. package/dist/md/static/js/{md-AIImageGeneratorPanel-CD1uJVoh.js → md-AIImageGeneratorPanel-DCyzssq7.js} +1 -1
  13. package/dist/md/static/js/{md-AccountDialog-B9bwHblP.js → md-AccountDialog-7T37gUUf.js} +1 -1
  14. package/dist/md/static/js/{md-CssEditor-CscA_fkp.js → md-CssEditor-BVHX5HDj.js} +1 -1
  15. package/dist/md/static/js/{md-CustomComponentDialog-B2dcYBPu.js → md-CustomComponentDialog-B1iN17Un.js} +1 -1
  16. package/dist/md/static/js/{md-EditorStateDialog-DDwS_6Tq.js → md-EditorStateDialog-Lt42FvkA.js} +1 -1
  17. package/dist/md/static/js/{md-EmojiManagerPanel-D1CqtlJh.js → md-EmojiManagerPanel-uIslmuqS.js} +1 -1
  18. package/dist/md/static/js/{md-FormulaEditorDialog-BMRetjWG.js → md-FormulaEditorDialog-CCIdePrb.js} +1 -1
  19. package/dist/md/static/js/{md-ImportMarkdownDialog-DxL17zpq.js → md-ImportMarkdownDialog-N8HpMw5z.js} +1 -1
  20. package/dist/md/static/js/{md-KeyboardShortcutsDialog-uRCXJSjd.js → md-KeyboardShortcutsDialog-WImy2X6K.js} +1 -1
  21. package/dist/md/static/js/{md-LocalImageUploadDialog-avfB7LHB.js → md-LocalImageUploadDialog-BbV43cOw.js} +1 -1
  22. package/dist/md/static/js/{md-MarketplaceDialog-Bx7VHRvQ.js → md-MarketplaceDialog-CzK5uLAk.js} +1 -1
  23. package/dist/md/static/js/{md-PdfExportDialog-CLmsnkhd.js → md-PdfExportDialog-DRbC0Gtt.js} +1 -1
  24. package/dist/md/static/js/{md-PreferencesDialog-DN-JtCU5.js → md-PreferencesDialog-DhI_LHE2.js} +1 -1
  25. package/dist/md/static/js/{md-RightSlider-CDcYf_n7.js → md-RightSlider-Bnl17S2o.js} +1 -1
  26. package/dist/md/static/js/{md-ShareDialog-DK8_fzlb.js → md-ShareDialog-BsgtWzfs.js} +1 -1
  27. package/dist/md/static/js/{md-SidebarAIToolbar-CBndViyU.js → md-SidebarAIToolbar-fOu5w_G0.js} +2 -2
  28. package/dist/md/static/js/{md-SlashCommandMenu-CBAaWcc8.js → md-SlashCommandMenu-Dlu7CyUU.js} +1 -1
  29. package/dist/md/static/js/{md-SyncDialog-C6UjzXRA.js → md-SyncDialog-C7mAbp34.js} +1 -1
  30. package/dist/md/static/js/{md-TableEditDialog-DBWg4Ms5.js → md-TableEditDialog-DsPa9fwJ.js} +1 -1
  31. package/dist/md/static/js/{md-TemplateDialog-CPjjDwhb.js → md-TemplateDialog-BhKNLG_g.js} +1 -1
  32. package/dist/md/static/js/{md-UploadImgDialog-BapxZ5ip.js → md-UploadImgDialog-CDE8wIHB.js} +2 -2
  33. package/dist/md/static/js/{md-abnfDiagram-YUKMZFIV-CmpHTRa0.js → md-abnfDiagram-YUKMZFIV-jxIywNi9.js} +1 -1
  34. package/dist/md/static/js/{md-aiConfig-CMgvtyLF.js → md-aiConfig-DVPjNuSa.js} +1 -1
  35. package/dist/md/static/js/{md-architecture-WOLXFQ4H-DQZEV3vU.js → md-architecture-WOLXFQ4H-RZab6uUU.js} +1 -1
  36. package/dist/md/static/js/{md-architectureDiagram-47P4ROYG-PyGo0e45.js → md-architectureDiagram-47P4ROYG-BGnBNmr-.js} +1 -1
  37. package/dist/md/static/js/{md-auth-B320eWZs.js → md-auth-CWx4h9Td.js} +2 -2
  38. package/dist/md/static/js/{md-blockDiagram-E7TT5TSB-uiHRgnyh.js → md-blockDiagram-E7TT5TSB-Cavoj-Il.js} +1 -1
  39. package/dist/md/static/js/{md-c4Diagram-CRA5TL53-9HPFN7-t.js → md-c4Diagram-CRA5TL53-i-oSIyBw.js} +1 -1
  40. package/dist/md/static/js/md-channel-B-t0BcGM.js +1 -0
  41. package/dist/md/static/js/{md-chunk-2BW5OAIV-D_IuJv-P.js → md-chunk-2BW5OAIV-Bzipx0js.js} +1 -1
  42. package/dist/md/static/js/{md-chunk-3YJQHVM4-CiXjgT0L.js → md-chunk-3YJQHVM4-Bb6IJj4C.js} +1 -1
  43. package/dist/md/static/js/{md-chunk-4EA7E6EY-aSJB1UxS.js → md-chunk-4EA7E6EY-DEwrdEp4.js} +1 -1
  44. package/dist/md/static/js/{md-chunk-7TKQ45FW-C72c6C3B.js → md-chunk-7TKQ45FW-Du1Mj90Z.js} +1 -1
  45. package/dist/md/static/js/{md-chunk-AW2ZBBNX-6YxV8_ON.js → md-chunk-AW2ZBBNX-B50GsoyY.js} +1 -1
  46. package/dist/md/static/js/{md-chunk-DBDB3WZW-HS7MXf4M.js → md-chunk-DBDB3WZW-CKZWAGTX.js} +1 -1
  47. package/dist/md/static/js/{md-chunk-E2ZNV5FY-BWwTF2Pa.js → md-chunk-E2ZNV5FY-W1Zi3naC.js} +1 -1
  48. package/dist/md/static/js/{md-chunk-EU5HNXII-DywVMjVA.js → md-chunk-EU5HNXII-B1XAeHxn.js} +1 -1
  49. package/dist/md/static/js/{md-chunk-FVRAUYC3-YieLSFki.js → md-chunk-FVRAUYC3-Cihr67T0.js} +1 -1
  50. package/dist/md/static/js/{md-chunk-HJ2JQQFS-DrdiUr0s.js → md-chunk-HJ2JQQFS-D3hh96VN.js} +1 -1
  51. package/dist/md/static/js/{md-chunk-HTAEGDNF-B5mqTFVi.js → md-chunk-HTAEGDNF-CiMkCh_G.js} +1 -1
  52. package/dist/md/static/js/{md-chunk-KQW6MTUR-CAR3krhO.js → md-chunk-KQW6MTUR-Dhx7IoNY.js} +1 -1
  53. package/dist/md/static/js/{md-chunk-NTY3LDVX-DSdR7sc4.js → md-chunk-NTY3LDVX-GQ44L1v5.js} +1 -1
  54. package/dist/md/static/js/{md-chunk-VPRB5NB3-CLIIed9Z.js → md-chunk-VPRB5NB3-DFAB8QDQ.js} +1 -1
  55. package/dist/md/static/js/{md-chunk-XC4XBNZT-BK_ztb60.js → md-chunk-XC4XBNZT-CfdESQNj.js} +1 -1
  56. package/dist/md/static/js/{md-classDiagram-v2-K4WV4PDN-CCHSKnhN.js → md-classDiagram-v2-K4WV4PDN-B6K4kqpa.js} +1 -1
  57. package/dist/md/static/js/{md-client-CGJU0lXF.js → md-client-BtyWCOJE.js} +1 -1
  58. package/dist/md/static/js/{md-clipboard-BYFl_-FZ.js → md-clipboard-D_fwX9Ex.js} +1 -1
  59. package/dist/md/static/js/{md-confirm-BihqdS5v.js → md-confirm-CaEl21Gf.js} +1 -1
  60. package/dist/md/static/js/{md-cynefin-EF2NZ3EQ-Bkz4pbNE.js → md-cynefin-EF2NZ3EQ-Co2SL3Gp.js} +1 -1
  61. package/dist/md/static/js/{md-cynefinDiagram-3GCD6N5R-Ds9PXIId.js → md-cynefinDiagram-3GCD6N5R-B8qs56z0.js} +1 -1
  62. package/dist/md/static/js/{md-dagre-W4DXFKR2-DkKVDIFC.js → md-dagre-W4DXFKR2-EbJ3K0Ky.js} +1 -1
  63. package/dist/md/static/js/{md-default-content-Cpz5V9G-.js → md-default-content-Cp2JUIKM.js} +1 -1
  64. package/dist/md/static/js/{md-diagram-2UJZ2QOL-qZHiizXP.js → md-diagram-2UJZ2QOL-DRFYDLnk.js} +1 -1
  65. package/dist/md/static/js/{md-diagram-OVF4WLC6-CN8lep7L.js → md-diagram-OVF4WLC6-B8E6egvP.js} +1 -1
  66. package/dist/md/static/js/{md-diagram-PFPMY2P6-BSwpiHtn.js → md-diagram-PFPMY2P6-GndkeoOu.js} +1 -1
  67. package/dist/md/static/js/{md-diagram-UMYRVEAY-DY0LU3Hd.js → md-diagram-UMYRVEAY-C_XRhzfS.js} +1 -1
  68. package/dist/md/static/js/{md-diagram-YEKJPTXX-QY8QLwTU.js → md-diagram-YEKJPTXX-W1nDPXpp.js} +1 -1
  69. package/dist/md/static/js/{md-diagram-ZIFT7M5P-BRN2Im2O.js → md-diagram-ZIFT7M5P-C0o4DKfz.js} +1 -1
  70. package/dist/md/static/js/{md-dist-es-cVMEFCse.js → md-dist-es-nelOcRBV.js} +2 -2
  71. package/dist/md/static/js/{md-ebnfDiagram-VR2GEFS7-DtH7XQzh.js → md-ebnfDiagram-VR2GEFS7-lmS32PGC.js} +1 -1
  72. package/dist/md/static/js/{md-editor-CAilbZEo.js → md-editor-CY6v2w8B.js} +2 -2
  73. package/dist/md/static/js/{md-elk-IJKZMXRS-DA-GN0L1.js → md-elk-IJKZMXRS-Cli79gRh.js} +1 -1
  74. package/dist/md/static/js/{md-emojiPack-iMjrppKC.js → md-emojiPack-C8pHg1Th.js} +1 -1
  75. package/dist/md/static/js/{md-erDiagram-O2IAPWRE-CPaqE6JI.js → md-erDiagram-O2IAPWRE-C9xQhs9y.js} +1 -1
  76. package/dist/md/static/js/{md-eventmodeling-K75KTNOO-Bc6tu7KV.js → md-eventmodeling-K75KTNOO-BAdWm5qy.js} +1 -1
  77. package/dist/md/static/js/{md-export-BjrxWZ9r.js → md-export-kujJShoi.js} +1 -1
  78. package/dist/md/static/js/{md-extensions-Glu0Pgjx.js → md-extensions-C8rTnfS0.js} +3 -3
  79. package/dist/md/static/js/md-flowDiagram-OXPTDLAJ-Cv2UXRIF.js +1 -0
  80. package/dist/md/static/js/{md-folder-source-panel-DFFe32GQ.js → md-folder-source-panel-YtE62CWK.js} +1 -1
  81. package/dist/md/static/js/{md-formatDoc-BNWCU6io.js → md-formatDoc-C4BJekJV.js} +1 -1
  82. package/dist/md/static/js/{md-ganttDiagram-R7TSEDQI-BayINpXC.js → md-ganttDiagram-R7TSEDQI-CdvKJ-qg.js} +1 -1
  83. package/dist/md/static/js/{md-gitGraph-VSP46ZUC-BUwLrmK3.js → md-gitGraph-VSP46ZUC-C3x-S46t.js} +1 -1
  84. package/dist/md/static/js/{md-gitGraphDiagram-XJZIOB7I-B5H3jLer.js → md-gitGraphDiagram-XJZIOB7I-Ccdv8lmf.js} +1 -1
  85. package/dist/md/static/js/{md-index-C3THyG4M.js → md-index-KksaGwCt.js} +4 -4
  86. package/dist/md/static/js/{md-index.browser-SY9JAlDq.js → md-index.browser-BgXgYd6H.js} +1 -1
  87. package/dist/md/static/js/{md-info-OHQRW6UA-CNO4zTrQ.js → md-info-OHQRW6UA-c5KWvdDg.js} +1 -1
  88. package/dist/md/static/js/{md-infoDiagram-5W2HQ5XZ-mYYrIV4u.js → md-infoDiagram-5W2HQ5XZ-BX8aRyyo.js} +1 -1
  89. package/dist/md/static/js/{md-ishikawaDiagram-K3B6WC7H-NabgEAym.js → md-ishikawaDiagram-K3B6WC7H-DdpyI-DP.js} +1 -1
  90. package/dist/md/static/js/{md-journeyDiagram-COXZFDF6-qclo2Jhn.js → md-journeyDiagram-COXZFDF6-CB6A5flW.js} +1 -1
  91. package/dist/md/static/js/{md-kanban-definition-P3RFRI5V-CfwJaDLN.js → md-kanban-definition-P3RFRI5V-BZHeGUdo.js} +1 -1
  92. package/dist/md/static/js/{md-locale-BZywaihl.js → md-locale-BO-XNOeF.js} +1 -1
  93. package/dist/md/static/js/{md-markdown-CHof_I2H.js → md-markdown-B-zbv6EE.js} +1 -1
  94. package/dist/md/static/js/{md-marketplace-Ds3POzKO.js → md-marketplace-ZqbDqCG7.js} +1 -1
  95. package/dist/md/static/js/{md-mermaid-parser.core-hfCUgsuY.js → md-mermaid-parser.core-D5qj8elB.js} +3 -3
  96. package/dist/md/static/js/{md-mermaid.core-qk0l9q9D.js → md-mermaid.core-DDSYz6Lj.js} +4 -4
  97. package/dist/md/static/js/{md-mindmap-definition-LZFPQGKD-C1cMWO7B.js → md-mindmap-definition-LZFPQGKD-BkTat9h5.js} +1 -1
  98. package/dist/md/static/js/{md-oauth-CXETOhnZ.js → md-oauth-BijzNF7k.js} +1 -1
  99. package/dist/md/static/js/{md-packet-JDAUHWVQ-DrOa3aVS.js → md-packet-JDAUHWVQ-QlNNtjkj.js} +1 -1
  100. package/dist/md/static/js/{md-pegDiagram-BGZESJAR-DU_dIOZl.js → md-pegDiagram-BGZESJAR-BAeSZgQ3.js} +1 -1
  101. package/dist/md/static/js/{md-pie-XZMESJXO-f8Y5JjcT.js → md-pie-XZMESJXO-DPTkNBWJ.js} +1 -1
  102. package/dist/md/static/js/{md-pieDiagram-CAPJLFHJ-mF6qIsfp.js → md-pieDiagram-CAPJLFHJ-LwAUugT_.js} +1 -1
  103. package/dist/md/static/js/{md-post-CHezuK0L.js → md-post-WD34OnCq.js} +1 -1
  104. package/dist/md/static/js/{md-post-slider-Xq8kjXXi.js → md-post-slider-DjhSy3SN.js} +2 -2
  105. package/dist/md/static/js/{md-preload-helper-2--UFWE9.js → md-preload-helper-CZ_s7YgV.js} +1 -1
  106. package/dist/md/static/js/{md-provider-registry-MsrJ0aEj.js → md-provider-registry-Cxtv8d-y.js} +1 -1
  107. package/dist/md/static/js/{md-providers-D1N92-lC.js → md-providers-B7kRoB_h.js} +2 -2
  108. package/dist/md/static/js/{md-quadrantDiagram-GDMTTRAM-DY68Gfb6.js → md-quadrantDiagram-GDMTTRAM-0rz_1vSP.js} +1 -1
  109. package/dist/md/static/js/{md-quickCommands-d-ysQNPU.js → md-quickCommands-phfj1m8Y.js} +1 -1
  110. package/dist/md/static/js/{md-radar-ABXABTNO-C9IJ98Xg.js → md-radar-ABXABTNO-2-4CT44H.js} +1 -1
  111. package/dist/md/static/js/{md-railroad-I3PHUGI6-DB6t5P7O.js → md-railroad-I3PHUGI6-V8xWSoyk.js} +1 -1
  112. package/dist/md/static/js/{md-railroad-abnf-LNEFI6M7-DQRmhEC7.js → md-railroad-abnf-LNEFI6M7-Do9BdsP_.js} +1 -1
  113. package/dist/md/static/js/{md-railroad-ebnf-DWYD2UWJ-Dp3zLEwp.js → md-railroad-ebnf-DWYD2UWJ-BL_fhDdd.js} +1 -1
  114. package/dist/md/static/js/{md-railroad-peg-JR7BVNR7-D9gfVlNF.js → md-railroad-peg-JR7BVNR7-CbJIM4Q4.js} +1 -1
  115. package/dist/md/static/js/{md-railroadDiagram-SM67HX2B-Cy5Q3yLw.js → md-railroadDiagram-SM67HX2B-DHKEwgkD.js} +1 -1
  116. package/dist/md/static/js/{md-renderer-4AQ1OZU1.js → md-renderer-C3j0sBEK.js} +1 -1
  117. package/dist/md/static/js/{md-requirementDiagram-X7JNWC4A-Ca1L-MSu.js → md-requirementDiagram-X7JNWC4A-DRJAUlBf.js} +1 -1
  118. package/dist/md/static/js/{md-sankeyDiagram-UM26HJRW-C4SRu7DB.js → md-sankeyDiagram-UM26HJRW-GDADPdwW.js} +1 -1
  119. package/dist/md/static/js/{md-sequenceDiagram-ZO4K6R2Y-DQDdiL2I.js → md-sequenceDiagram-ZO4K6R2Y-BqCqeFP1.js} +1 -1
  120. package/dist/md/static/js/{md-slashCommands-BkcP4b0C.js → md-slashCommands-DX973mid.js} +1 -1
  121. package/dist/md/static/js/{md-stateDiagram-v2-TBUQTH76-DgWJk1nQ.js → md-stateDiagram-v2-TBUQTH76-DX_X5UE4.js} +1 -1
  122. package/dist/md/static/js/{md-storage-TAchKcvc.js → md-storage-BSAs4c5b.js} +1 -1
  123. package/dist/md/static/js/{md-swimlanes-N4OXWK64-CTC8HdWE.js → md-swimlanes-N4OXWK64-Cjy17OrY.js} +1 -1
  124. package/dist/md/static/js/md-swimlanesDiagram-K3J5GTZL--VyEqkCo.js +8 -0
  125. package/dist/md/static/js/{md-sync-DzivBtxQ.js → md-sync-D4XCZ-io.js} +1 -1
  126. package/dist/md/static/js/{md-template-TV8U1qS4.js → md-template-DtFAO0nN.js} +1 -1
  127. package/dist/md/static/js/{md-timeline-definition-YOQAKGHF-Bd9f4Y10.js → md-timeline-definition-YOQAKGHF-HjNnETws.js} +1 -1
  128. package/dist/md/static/js/{md-translate-CzY24XmZ.js → md-translate-RJ_Id5UE.js} +1 -1
  129. package/dist/md/static/js/{md-treeView-D4JQ5SDB-D-XSvTMP.js → md-treeView-D4JQ5SDB-Ck4OYDV1.js} +1 -1
  130. package/dist/md/static/js/{md-treemap-SAJKECNS-Bd_rK9Mh.js → md-treemap-SAJKECNS-cpDKKtgH.js} +1 -1
  131. package/dist/md/static/js/{md-ui-Dq6MTvr4.js → md-ui-Bt-aDIF5.js} +3 -3
  132. package/dist/md/static/js/{md-useEditorRefresh-DQn4H1Wu.js → md-useEditorRefresh-C1KdD5FC.js} +1 -1
  133. package/dist/md/static/js/{md-useImageUploader-CYOKxpNX.js → md-useImageUploader-s3F44q5B.js} +2 -2
  134. package/dist/md/static/js/{md-useLocalizedAIServices-rhW4n8Ti.js → md-useLocalizedAIServices-1SgW-zt5.js} +1 -1
  135. package/dist/md/static/js/{md-useLocalizedBuiltinComponents-DADyqpKR.js → md-useLocalizedBuiltinComponents-KOhSrZ0U.js} +1 -1
  136. package/dist/md/static/js/{md-useLocalizedStyleOptions-B5NSKADz.js → md-useLocalizedStyleOptions-DSpLX0_2.js} +1 -1
  137. package/dist/md/static/js/{md-useSyncStatusMeta-ssY-63xV.js → md-useSyncStatusMeta-CobQo-Ih.js} +1 -1
  138. package/dist/md/static/js/{md-usecaseDiagram-VIAY4XPW-tkWd_m6m.js → md-usecaseDiagram-VIAY4XPW-C89u-Q5k.js} +1 -1
  139. package/dist/md/static/js/{md-validate-image-3dQVL-8x.js → md-validate-image-B8ox7pXU.js} +1 -1
  140. package/dist/md/static/js/{md-vennDiagram-BLWOH2XV-B1h1KBPU.js → md-vennDiagram-BLWOH2XV-D7RaDcl0.js} +1 -1
  141. package/dist/md/static/js/{md-wardley-7MLQ67FV-BMEyqZgl.js → md-wardley-7MLQ67FV-B1oyFXmn.js} +1 -1
  142. package/dist/md/static/js/{md-wardleyDiagram-YMQ3BMBF-4KQgaOjT.js → md-wardleyDiagram-YMQ3BMBF-UeuqPlcZ.js} +1 -1
  143. package/dist/md/static/js/{md-xychartDiagram-TAQBALBS-Cg-G6JP7.js → md-xychartDiagram-TAQBALBS-CqLl-yPp.js} +1 -1
  144. package/dist/transform/404/index.html +2 -2
  145. package/dist/transform/404.html +2 -2
  146. package/dist/transform/_next/static/chunks/5f58523c0e7f8a1496e44fb3aa9708ae212b3a59.7eb188b53aa5e032ca26.js +1 -0
  147. package/dist/transform/_next/static/chunks/pages/css-to-js-5318424ca1c1f2a567b5.js +1 -0
  148. package/dist/transform/_next/static/chunks/pages/graphql-to-components-3ab2af869fbcfa184855.js +1 -0
  149. package/dist/transform/_next/static/chunks/pages/graphql-to-flow-5873d22614a64f662965.js +1 -0
  150. package/dist/transform/_next/static/chunks/pages/graphql-to-fragment-matcher-da076cda5c237a7f299b.js +1 -0
  151. package/dist/transform/_next/static/chunks/pages/graphql-to-introspection-json-3a503ed929ca8973d6f7.js +1 -0
  152. package/dist/transform/_next/static/chunks/pages/graphql-to-java-c23506b8cea6425018e6.js +1 -0
  153. package/dist/transform/_next/static/chunks/pages/graphql-to-resolvers-signature-ec4f7bcb373fc1bfdc64.js +1 -0
  154. package/dist/transform/_next/static/chunks/pages/graphql-to-schema-ast-f125f56fede43a181a8a.js +1 -0
  155. package/dist/transform/_next/static/chunks/pages/graphql-to-typescript-46631f6e2b2d74aee5b6.js +1 -0
  156. package/dist/transform/_next/static/chunks/pages/{graphql-to-typescript-mongodb-e325d75119d2e7677e6b.js → graphql-to-typescript-mongodb-a6762f012c231ad53d4d.js} +1 -1
  157. package/dist/transform/_next/static/chunks/pages/index-f20eddd83614aa6fbc1a.js +1 -0
  158. package/dist/transform/_next/static/chunks/pages/json-to-mobx-state-tree-ba0ed623cbfd12c4150d.js +1 -0
  159. package/dist/transform/_next/static/chunks/pages/json-to-proptypes-74207e5e0180d6373fd9.js +1 -0
  160. package/dist/transform/_next/static/chunks/pages/object-styles-to-template-literal-4632ad4472ee11ec823f.js +1 -0
  161. package/dist/transform/_next/static/chunks/pages/svg-to-react-native-71e7874e599dda8ae7a5.js +1 -0
  162. package/dist/transform/_next/static/{s2f5sIpNXm2PBoE7dI3W4 → pHXDQTMyssHVxbIxujksW}/_buildManifest.js +1 -1
  163. package/dist/transform/cadence-to-go/index.html +2 -2
  164. package/dist/transform/css-to-js/index.html +2 -2
  165. package/dist/transform/css-to-tailwind/index.html +2 -2
  166. package/dist/transform/flow-to-javascript/index.html +2 -2
  167. package/dist/transform/flow-to-typescript/index.html +2 -2
  168. package/dist/transform/flow-to-typescript-declaration/index.html +2 -2
  169. package/dist/transform/graphql-to-components/index.html +2 -2
  170. package/dist/transform/graphql-to-flow/index.html +2 -2
  171. package/dist/transform/graphql-to-fragment-matcher/index.html +2 -2
  172. package/dist/transform/graphql-to-introspection-json/index.html +2 -2
  173. package/dist/transform/graphql-to-java/index.html +2 -2
  174. package/dist/transform/graphql-to-resolvers-signature/index.html +2 -2
  175. package/dist/transform/graphql-to-schema-ast/index.html +2 -2
  176. package/dist/transform/graphql-to-typescript/index.html +2 -2
  177. package/dist/transform/graphql-to-typescript-mongodb/index.html +2 -2
  178. package/dist/transform/html-to-jsx/index.html +2 -2
  179. package/dist/transform/html-to-pug/index.html +2 -2
  180. package/dist/transform/index.html +2 -2
  181. package/dist/transform/js-object-to-json/index.html +2 -2
  182. package/dist/transform/js-object-to-typescript/index.html +2 -2
  183. package/dist/transform/json-schema-to-openapi-schema/index.html +2 -2
  184. package/dist/transform/json-schema-to-protobuf/index.html +2 -2
  185. package/dist/transform/json-schema-to-typescript/index.html +2 -2
  186. package/dist/transform/json-schema-to-zod/index.html +2 -2
  187. package/dist/transform/json-to-big-query/index.html +2 -2
  188. package/dist/transform/json-to-flow/index.html +2 -2
  189. package/dist/transform/json-to-go/index.html +2 -2
  190. package/dist/transform/json-to-go-bson/index.html +2 -2
  191. package/dist/transform/json-to-graphql/index.html +2 -2
  192. package/dist/transform/json-to-io-ts/index.html +2 -2
  193. package/dist/transform/json-to-java/index.html +2 -2
  194. package/dist/transform/json-to-jsdoc/index.html +2 -2
  195. package/dist/transform/json-to-json-schema/index.html +2 -2
  196. package/dist/transform/json-to-kotlin/index.html +2 -2
  197. package/dist/transform/json-to-mobx-state-tree/index.html +2 -2
  198. package/dist/transform/json-to-mongoose/index.html +2 -2
  199. package/dist/transform/json-to-mysql/index.html +2 -2
  200. package/dist/transform/json-to-proptypes/index.html +2 -2
  201. package/dist/transform/json-to-rust-serde/index.html +2 -2
  202. package/dist/transform/json-to-sarcastic/index.html +2 -2
  203. package/dist/transform/json-to-scala-case-class/index.html +2 -2
  204. package/dist/transform/json-to-toml/index.html +2 -2
  205. package/dist/transform/json-to-typescript/index.html +2 -2
  206. package/dist/transform/json-to-yaml/index.html +2 -2
  207. package/dist/transform/json-to-zod/index.html +2 -2
  208. package/dist/transform/jsonld-to-compacted/index.html +2 -2
  209. package/dist/transform/jsonld-to-expanded/index.html +2 -2
  210. package/dist/transform/jsonld-to-flattened/index.html +2 -2
  211. package/dist/transform/jsonld-to-framed/index.html +2 -2
  212. package/dist/transform/jsonld-to-normalized/index.html +2 -2
  213. package/dist/transform/jsonld-to-nquads/index.html +2 -2
  214. package/dist/transform/markdown-to-html/index.html +2 -2
  215. package/dist/transform/object-styles-to-template-literal/index.html +2 -2
  216. package/dist/transform/svg-to-react-native/index.html +2 -2
  217. package/dist/transform/toml-to-json/index.html +2 -2
  218. package/dist/transform/toml-to-yaml/index.html +2 -2
  219. package/dist/transform/typescript-to-flow/index.html +2 -2
  220. package/dist/transform/typescript-to-javascript/index.html +2 -2
  221. package/dist/transform/typescript-to-json-schema/index.html +2 -2
  222. package/dist/transform/typescript-to-typescript-declaration/index.html +2 -2
  223. package/dist/transform/typescript-to-zod/index.html +2 -2
  224. package/dist/transform/xml-to-json/index.html +2 -2
  225. package/dist/transform/yaml-to-json/index.html +2 -2
  226. package/dist/transform/yaml-to-toml/index.html +2 -2
  227. package/package.json +1 -1
  228. package/dist/md/static/js/md-channel-Dx0LllE1.js +0 -1
  229. package/dist/md/static/js/md-flowDiagram-OXPTDLAJ-BJ9GLr8l.js +0 -1
  230. package/dist/md/static/js/md-swimlanesDiagram-K3J5GTZL-DxvPEfP2.js +0 -8
  231. package/dist/transform/_next/static/chunks/5f58523c0e7f8a1496e44fb3aa9708ae212b3a59.81877283f0ccf4cfa5ad.js +0 -1
  232. package/dist/transform/_next/static/chunks/pages/css-to-js-c151b6d517dfa79fec1c.js +0 -1
  233. package/dist/transform/_next/static/chunks/pages/graphql-to-components-870c7f6e926ea6492875.js +0 -1
  234. package/dist/transform/_next/static/chunks/pages/graphql-to-flow-30f6cd8de7e3479085b7.js +0 -1
  235. package/dist/transform/_next/static/chunks/pages/graphql-to-fragment-matcher-822fa095ae34dfa20d27.js +0 -1
  236. package/dist/transform/_next/static/chunks/pages/graphql-to-introspection-json-8702f04c773441e24332.js +0 -1
  237. package/dist/transform/_next/static/chunks/pages/graphql-to-java-c314a62d644b3b5c4b78.js +0 -1
  238. package/dist/transform/_next/static/chunks/pages/graphql-to-resolvers-signature-4564a0902441752a543f.js +0 -1
  239. package/dist/transform/_next/static/chunks/pages/graphql-to-schema-ast-17d93f460973a0435671.js +0 -1
  240. package/dist/transform/_next/static/chunks/pages/graphql-to-typescript-6599e329a8b3c7f28409.js +0 -1
  241. package/dist/transform/_next/static/chunks/pages/index-77392cac123afdb7d7ff.js +0 -1
  242. package/dist/transform/_next/static/chunks/pages/json-to-mobx-state-tree-faad7bbce0c5a4a90c69.js +0 -1
  243. package/dist/transform/_next/static/chunks/pages/json-to-proptypes-f5d98384dff3089f2f01.js +0 -1
  244. package/dist/transform/_next/static/chunks/pages/object-styles-to-template-literal-aaec7309c1a602288551.js +0 -1
  245. package/dist/transform/_next/static/chunks/pages/svg-to-react-native-034e52cf3747b84d4275.js +0 -1
  246. /package/dist/carbon/_next/static/{j89oBtYEmpICvj7fmBMRz → x-ujJmUU2P28xUB4xtC42}/_buildManifest.js +0 -0
  247. /package/dist/carbon/_next/static/{j89oBtYEmpICvj7fmBMRz → x-ujJmUU2P28xUB4xtC42}/_middlewareManifest.js +0 -0
  248. /package/dist/carbon/_next/static/{j89oBtYEmpICvj7fmBMRz → x-ujJmUU2P28xUB4xtC42}/_ssgManifest.js +0 -0
  249. /package/dist/transform/_next/data/{s2f5sIpNXm2PBoE7dI3W4 → pHXDQTMyssHVxbIxujksW}/css-to-tailwind.json +0 -0
  250. /package/dist/transform/_next/static/{s2f5sIpNXm2PBoE7dI3W4 → pHXDQTMyssHVxbIxujksW}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="zh-CN">
3
- <head><script data-yu-i18n="/*yu-i18n*/">(function(){window.__YU_I18N_APP__="md";var s=document.createElement('script');s.src='/md/i18n-toggle.js';s.defer=true;document.documentElement.appendChild(s);})();</script>
3
+ <head>
4
4
  <script src="https://www.googletagmanager.com/gtag/js?id=G-7NZL3PZ0NK" async></script>
5
5
  <script>window.dataLayer = window.dataLayer || [];
6
6
  function gtag(){dataLayer.push(arguments);}
@@ -8,15 +8,15 @@ gtag('js', new Date());
8
8
  gtag('config', 'G-7NZL3PZ0NK');
9
9
  </script>
10
10
 
11
- <meta charset="utf-8" />
11
+ <meta charset="utf-8" /><script data-yu-i18n="/*yu-i18n*/">(function(){window.__YU_I18N_APP__="md";try{var __l=localStorage.getItem('yu-lang')==='en'?'en-US':'zh-CN';localStorage.setItem('locale',__l);window.__MD_BOOT_LOCALE__=__l;}catch(e){}var s=document.createElement('script');s.src='/md/i18n-bridge.js';s.defer=true;document.documentElement.appendChild(s);})();</script>
12
12
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
13
13
  <meta name="keywords" content="md,markdown,markdown-editor,wechat,official-account,yanglbme,doocs" />
14
14
  <meta name="description" content="Wechat Markdown Editor | 一款高度简洁的微信 Markdown 编辑器" />
15
15
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
16
16
  <title>微信 Markdown 编辑器 | Doocs</title>
17
- <link rel="shortcut icon" href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/favicon.png" />
18
- <link rel="apple-touch-icon-precomposed" href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/favicon.png" />
19
- <style>html,body{height:100%;margin:0;overflow:hidden}.loading{z-index:99999;color:#171717;background-color:#fff;flex-direction:column;justify-content:center;align-items:center;font-size:18px;display:flex;position:fixed;inset:0}html.dark .loading{color:#fafafa;background-color:#141414}.loading:before{content:url(https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/favicon.png);width:100px;height:100px;margin-bottom:26px}.loading strong,.loading .txt{color:inherit}.loading .txt{position:absolute;bottom:10%}.loading .txt:after{content:"...";animation:1.5s steps(4,end) infinite dots}@keyframes dots{0%{content:" "}25%{content:"."}50%{content:".."}75%{content:"..."}}</style>
17
+ <link rel="shortcut icon" href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/favicon.png" />
18
+ <link rel="apple-touch-icon-precomposed" href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/favicon.png" />
19
+ <style>html,body{height:100%;margin:0;overflow:hidden}.loading{z-index:99999;color:#171717;background-color:#fff;flex-direction:column;justify-content:center;align-items:center;font-size:18px;display:flex;position:fixed;inset:0}html.dark .loading{color:#fafafa;background-color:#141414}.loading:before{content:url(https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/favicon.png);width:100px;height:100px;margin-bottom:26px}.loading strong,.loading .txt{color:inherit}.loading .txt{position:absolute;bottom:10%}.loading .txt:after{content:"...";animation:1.5s steps(4,end) infinite dots}@keyframes dots{0%{content:" "}25%{content:"."}50%{content:".."}75%{content:"..."}}</style>
20
20
  <script>
21
21
  ;(function () {
22
22
  const LOCALE_KEY = 'locale'
@@ -111,118 +111,118 @@ gtag('config', 'G-7NZL3PZ0NK');
111
111
  }
112
112
  })()
113
113
  </script>
114
- <script type="module" crossorigin src="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-index-C3THyG4M.js"></script>
115
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-configs-l_iJ-wjP.js">
116
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-rolldown-runtime-Dd_uD5pT.js">
117
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-vendor_vue-BeOfKbk1.js">
118
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-v4-DDdyfk2q.js">
119
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-vue-i18n-Cxvw1c3e.js">
120
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-preload-helper-2--UFWE9.js">
121
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-translate-CzY24XmZ.js">
122
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-lib-CvTniYNx.js">
123
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-storage-TAchKcvc.js">
124
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-config-Ck6OhP_V.js">
125
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-codemirror-BaABCPpB.js">
126
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-vendor_vueuse-B2NyWnbq.js">
127
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-highlight-CQhsZQAL.js">
128
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-purify.es-B0LuI4JX.js">
129
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-browser-AkLj9bPh.js">
130
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-extensions-Glu0Pgjx.js">
131
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-editor-CAilbZEo.js">
132
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-ui-Dq6MTvr4.js">
133
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-locale-BZywaihl.js">
134
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-createLucideIcon-BXdNAL-d.js">
135
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-blocks-Db875tl4.js">
136
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-oauth-CXETOhnZ.js">
137
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-auth-B320eWZs.js">
138
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-marketplace-Ds3POzKO.js">
139
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-default-content-Cpz5V9G-.js">
140
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-post-CHezuK0L.js">
141
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-useLocalizedStyleOptions-B5NSKADz.js">
142
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-slashCommands-BkcP4b0C.js">
143
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-square-function-Dcsq4V45.js">
144
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-check-lU7D5avq.js">
145
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-chevron-down-BMHj5Qr0.js">
146
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-chevron-right-BqZJnr1B.js">
147
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-utils-CfHWyiHX.js">
148
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-button-BSiUqWkb.js">
149
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-Teleport-C33MrUY6.js">
150
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-DialogTitle-DckujrLp.js">
151
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-DialogDescription-I_Nb5r3l.js">
152
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-AlertDialogTitle-tk5d1pHN.js">
153
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-ai-service-options-BnJLTh-y.js">
154
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-aiConfig-CMgvtyLF.js">
155
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-quickCommands-d-ysQNPU.js">
156
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-template-TV8U1qS4.js">
157
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-sync-DzivBtxQ.js">
158
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-loader-circle-CMCAxmDe.js">
159
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-useSyncStatusMeta-ssY-63xV.js">
160
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-circle-question-mark-D7cciLOv.js">
161
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-circle-CPKPEqFe.js">
162
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-clock-BO90uR9J.js">
163
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-copy-FPkQvYMT.js">
164
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-download-PHSmBRjD.js">
165
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-MenuSeparator-Bee7ZeuH.js">
166
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-eye-D87jI9hW.js">
167
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-face-slightly-smiling-BIxW4AS6.js">
168
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-package-B4OMyI92.js">
169
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-useImageUploader-CYOKxpNX.js">
170
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-file-text-g3522ZnA.js">
171
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-folder-open-BeUSQQdX.js">
172
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-heart-D1r4IGRy.js">
173
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-image-DZKTZmYn.js">
174
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-info-DloVl59m.js">
175
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-keyboard-Q7K6qWUE.js">
176
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-log-in-yXDzb3je.js">
177
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-minus-BmW7V9PF.js">
178
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-palette-Cj5ov4Zu.js">
179
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-refresh-cw-DuW6gMMW.js">
180
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-replace-DRe0Vda1.js">
181
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-search-5OR9AAo_.js">
182
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-settings-BQ0oxr26.js">
183
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-client-CGJU0lXF.js">
184
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-store-DJ9O8kXN.js">
185
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-trash-_QL9lZ9Z.js">
186
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-emojiPack-iMjrppKC.js">
187
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-upload-D-o2qobN.js">
188
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-user-CXP966A6.js">
189
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-wand-sparkles-BWES2HgT.js">
190
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-FieldRoot-BGMFmJ2C.js">
191
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-nullish-DHihWhf5.js">
192
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-VisuallyHidden-c5ryoUV1.js">
193
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-useForwardScopeId-f83MRwkF.js">
194
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-usePrimitiveElement-BroVhtbS.js">
195
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-VisuallyHiddenInput-CHIu9teZ.js">
196
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-Collection-iXxEemrA.js">
197
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-RovingFocusGroup-BdUtwAjh.js">
198
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-RovingFocusItem-C73VMTDl.js">
199
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-CheckboxIndicator-hbjLY94G.js">
200
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-PopperContent-BmY10hvR.js">
201
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-MenuPortal-DT7yRAVg.js">
202
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-TooltipTrigger-Bddfw7hJ.js">
203
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-useNonce-CDLUr9YI.js">
204
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-Label-BEXxOepa.js">
205
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-MenuRadioItem-B2SlGXW8.js">
206
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-PopoverTrigger-BkrNONB4.js">
207
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-_plugin-vue_export-helper-BDNMzG2s.js">
208
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-Progress-BqYoYbPS.js">
209
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-confirm-BihqdS5v.js">
210
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-DialogFooter-CBAeLIxQ.js">
211
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-Textarea-D5oizzXs.js">
212
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-Input-CXcSl6a3.js">
213
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-Alert-hAepI8xG.js">
214
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-useEditorRefresh-DQn4H1Wu.js">
215
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-markdown-CHof_I2H.js">
216
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-export-BjrxWZ9r.js">
217
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-clipboard-BYFl_-FZ.js">
218
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-index.esm-DjtxxCnL.js">
219
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-formula-BHWH4bVU.js">
220
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-table-CyBQSqkg.js">
221
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-useLocalizedBuiltinComponents-DADyqpKR.js">
222
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-provider-registry-MsrJ0aEj.js">
223
- <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/js/md-validate-image-3dQVL-8x.js">
224
- <link rel="stylesheet" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/css/md-Progress-BG8DdwwN.css">
225
- <link rel="stylesheet" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.2/dist/md/static/css/md-index-BdIyADE9.css">
114
+ <script type="module" crossorigin src="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-index-KksaGwCt.js"></script>
115
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-configs-l_iJ-wjP.js">
116
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-rolldown-runtime-Dd_uD5pT.js">
117
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-vendor_vue-BeOfKbk1.js">
118
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-v4-DDdyfk2q.js">
119
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-vue-i18n-Cxvw1c3e.js">
120
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-preload-helper-CZ_s7YgV.js">
121
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-translate-RJ_Id5UE.js">
122
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-lib-CvTniYNx.js">
123
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-storage-BSAs4c5b.js">
124
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-config-Ck6OhP_V.js">
125
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-codemirror-BaABCPpB.js">
126
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-vendor_vueuse-B2NyWnbq.js">
127
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-highlight-CQhsZQAL.js">
128
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-purify.es-B0LuI4JX.js">
129
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-browser-AkLj9bPh.js">
130
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-extensions-C8rTnfS0.js">
131
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-editor-CY6v2w8B.js">
132
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-ui-Bt-aDIF5.js">
133
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-locale-BO-XNOeF.js">
134
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-createLucideIcon-BXdNAL-d.js">
135
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-blocks-Db875tl4.js">
136
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-oauth-BijzNF7k.js">
137
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-auth-CWx4h9Td.js">
138
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-marketplace-ZqbDqCG7.js">
139
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-default-content-Cp2JUIKM.js">
140
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-post-WD34OnCq.js">
141
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-useLocalizedStyleOptions-DSpLX0_2.js">
142
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-slashCommands-DX973mid.js">
143
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-square-function-Dcsq4V45.js">
144
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-check-lU7D5avq.js">
145
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-chevron-down-BMHj5Qr0.js">
146
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-chevron-right-BqZJnr1B.js">
147
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-utils-CfHWyiHX.js">
148
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-button-BSiUqWkb.js">
149
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-Teleport-C33MrUY6.js">
150
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-DialogTitle-DckujrLp.js">
151
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-DialogDescription-I_Nb5r3l.js">
152
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-AlertDialogTitle-tk5d1pHN.js">
153
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-ai-service-options-BnJLTh-y.js">
154
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-aiConfig-DVPjNuSa.js">
155
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-quickCommands-phfj1m8Y.js">
156
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-template-DtFAO0nN.js">
157
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-sync-D4XCZ-io.js">
158
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-loader-circle-CMCAxmDe.js">
159
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-useSyncStatusMeta-CobQo-Ih.js">
160
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-circle-question-mark-D7cciLOv.js">
161
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-circle-CPKPEqFe.js">
162
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-clock-BO90uR9J.js">
163
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-copy-FPkQvYMT.js">
164
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-download-PHSmBRjD.js">
165
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-MenuSeparator-Bee7ZeuH.js">
166
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-eye-D87jI9hW.js">
167
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-face-slightly-smiling-BIxW4AS6.js">
168
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-package-B4OMyI92.js">
169
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-useImageUploader-s3F44q5B.js">
170
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-file-text-g3522ZnA.js">
171
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-folder-open-BeUSQQdX.js">
172
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-heart-D1r4IGRy.js">
173
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-image-DZKTZmYn.js">
174
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-info-DloVl59m.js">
175
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-keyboard-Q7K6qWUE.js">
176
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-log-in-yXDzb3je.js">
177
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-minus-BmW7V9PF.js">
178
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-palette-Cj5ov4Zu.js">
179
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-refresh-cw-DuW6gMMW.js">
180
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-replace-DRe0Vda1.js">
181
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-search-5OR9AAo_.js">
182
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-settings-BQ0oxr26.js">
183
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-client-BtyWCOJE.js">
184
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-store-DJ9O8kXN.js">
185
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-trash-_QL9lZ9Z.js">
186
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-emojiPack-C8pHg1Th.js">
187
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-upload-D-o2qobN.js">
188
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-user-CXP966A6.js">
189
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-wand-sparkles-BWES2HgT.js">
190
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-FieldRoot-BGMFmJ2C.js">
191
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-nullish-DHihWhf5.js">
192
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-VisuallyHidden-c5ryoUV1.js">
193
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-useForwardScopeId-f83MRwkF.js">
194
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-usePrimitiveElement-BroVhtbS.js">
195
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-VisuallyHiddenInput-CHIu9teZ.js">
196
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-Collection-iXxEemrA.js">
197
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-RovingFocusGroup-BdUtwAjh.js">
198
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-RovingFocusItem-C73VMTDl.js">
199
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-CheckboxIndicator-hbjLY94G.js">
200
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-PopperContent-BmY10hvR.js">
201
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-MenuPortal-DT7yRAVg.js">
202
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-TooltipTrigger-Bddfw7hJ.js">
203
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-useNonce-CDLUr9YI.js">
204
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-Label-BEXxOepa.js">
205
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-MenuRadioItem-B2SlGXW8.js">
206
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-PopoverTrigger-BkrNONB4.js">
207
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-_plugin-vue_export-helper-BDNMzG2s.js">
208
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-Progress-BqYoYbPS.js">
209
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-confirm-CaEl21Gf.js">
210
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-DialogFooter-CBAeLIxQ.js">
211
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-Textarea-D5oizzXs.js">
212
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-Input-CXcSl6a3.js">
213
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-Alert-hAepI8xG.js">
214
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-useEditorRefresh-C1KdD5FC.js">
215
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-markdown-B-zbv6EE.js">
216
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-export-kujJShoi.js">
217
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-clipboard-D_fwX9Ex.js">
218
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-index.esm-DjtxxCnL.js">
219
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-formula-BHWH4bVU.js">
220
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-table-CyBQSqkg.js">
221
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-useLocalizedBuiltinComponents-KOhSrZ0U.js">
222
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-provider-registry-Cxtv8d-y.js">
223
+ <link rel="modulepreload" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/js/md-validate-image-B8ox7pXU.js">
224
+ <link rel="stylesheet" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/css/md-Progress-BG8DdwwN.css">
225
+ <link rel="stylesheet" crossorigin href="https://cdn.cbd.int/@yuuichi/tools-assets@1.0.0-ym.4/dist/md/static/css/md-index-BdIyADE9.css">
226
226
  </head>
227
227
 
228
228
  <body>
@@ -1 +1 @@
1
- import{t as e}from"./md-ui-Dq6MTvr4.js";import{f as t,h as n}from"./md-storage-TAchKcvc.js";import{$ as r,C as i,Ct as a,E as o,Et as s,H as c,I as l,S as u,W as d,b as f,ct as p,f as m,m as h,nt as g,pt as _,q as v,r as y,w as b,x,xt as S,y as C,z as ee}from"./md-vendor_vue-BeOfKbk1.js";import{n as te}from"./md-vue-i18n-Cxvw1c3e.js";import{n as w}from"./md-lib-CvTniYNx.js";import{t as T}from"./md-createLucideIcon-BXdNAL-d.js";import{t as E}from"./md-check-lU7D5avq.js";import{t as D}from"./md-copy-FPkQvYMT.js";import{a as ne,i as re,r as ie}from"./md-useLocalizedAIServices-rhW4n8Ti.js";import{t as ae}from"./md-folder-open-BeUSQQdX.js";import{t as oe}from"./md-image-DZKTZmYn.js";import{n as se,t as ce}from"./md-refresh-ccw-B0suwZhW.js";import{n as le,t as ue}from"./md-AIConfig-DO9zDt5U.js";import{t as de}from"./md-plus-ByJ8LvCm.js";import{t as fe}from"./md-settings-BQ0oxr26.js";import{t as pe}from"./md-trash-_QL9lZ9Z.js";import{n as O}from"./md-button-BSiUqWkb.js";import{i as me,n as he,r as ge,t as _e}from"./md-DialogTitle-DckujrLp.js";import{t as ve}from"./md-DialogDescription-I_Nb5r3l.js";import{n as k,r as A,t as j}from"./md-PopoverTrigger-BkrNONB4.js";import{n as ye,r as be,t as xe}from"./md-DropdownMenuTrigger-Dc5A4zvK.js";import{t as Se}from"./md-DropdownMenuItem-BwyJT-E2.js";import{n as Ce}from"./md-editor-CAilbZEo.js";import{t as we}from"./md-aiConfig-CMgvtyLF.js";import{t as Te}from"./md-quickCommands-d-ysQNPU.js";import{t as Ee}from"./md-_plugin-vue_export-helper-BDNMzG2s.js";import{t as M}from"./md-Textarea-D5oizzXs.js";import{t as N}from"./md-Input-CXcSl6a3.js";import{t as De}from"./md-clipboard-BYFl_-FZ.js";var Oe=T({name:`file-plus-corner`,size:24,node:[[`path`,{d:`M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35`,key:`17jvcc`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 19h6`,key:`bvotb8`}],[`path`,{d:`M17 16v6`,key:`18yu1i`}]],aliases:[`file-plus-2`]}),ke=T({name:`send`,size:24,node:[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]}),P={class:`space-y-4 flex-1 overflow-y-auto pr-1`},F={class:`flex justify-end gap-2`},I={class:`flex items-center justify-between gap-2`},L={class:`flex min-w-0 items-center gap-2`},R={class:`break-all text-sm`},z={key:0,class:`bg-muted text-muted-foreground shrink-0 rounded px-1.5 py-0.5 text-[10px] leading-none`},B={key:0,class:`flex shrink-0 gap-1`},Ae={class:`flex flex-col gap-2`},V={class:`text-sm`},H={class:`flex justify-end gap-2`},U={key:0,class:`text-muted-foreground whitespace-pre-wrap break-all text-xs`},W={class:`space-y-2 mt-4 border rounded-md p-3`},je=o({__name:`QuickCommandManager`,props:{open:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=e,a=t,o=_(n.open),l=_(null);r(()=>n.open,e=>o.value=e),r(o,e=>{a(`update:open`,e),e||(l.value=null)});let p=Te(),{t:m}=te(),v=_(``),y=_(``);function ee(){v.value.trim()&&y.value.trim()&&(p.add(v.value.trim(),y.value.trim()),v.value=``,y.value=``)}let w=_(null),T=_(``),E=_(``);function D(e){e.builtin||(l.value=null,w.value=e.id,T.value=e.label,E.value=e.template)}function ne(){w.value=null}function re(){T.value.trim()&&E.value.trim()&&(p.update(w.value,T.value.trim(),E.value.trim()),w.value=null)}return(e,t)=>(c(),f(S(me),{open:o.value,"onUpdate:open":t[6]||=e=>o.value=e},{default:g(()=>[b(S(ge),{class:`max-h-[90vh] w-[92vw] flex flex-col sm:max-w-lg`},{default:g(()=>[b(S(he),null,{default:g(()=>[b(S(_e),null,{default:g(()=>[i(s(S(m)(`ai.quickCommand.title`)),1)]),_:1})]),_:1}),C(`div`,P,[(c(!0),u(h,null,d(S(p).commands,e=>(c(),u(`div`,{key:e.id,class:`flex flex-col gap-2 border rounded-md p-3`},[!e.builtin&&w.value===e.id?(c(),u(h,{key:0},[b(S(N),{modelValue:T.value,"onUpdate:modelValue":t[0]||=e=>T.value=e,placeholder:S(m)(`ai.quickCommand.namePlaceholder`)},null,8,[`modelValue`,`placeholder`]),b(S(M),{modelValue:E.value,"onUpdate:modelValue":t[1]||=e=>E.value=e,rows:`2`,placeholder:S(m)(`ai.quickCommand.templatePlaceholder`)},null,8,[`modelValue`,`placeholder`]),C(`div`,F,[b(S(O),{size:`xs`,onClick:re},{default:g(()=>[i(s(S(m)(`common.save`)),1)]),_:1}),b(S(O),{variant:`ghost`,size:`xs`,onClick:ne},{default:g(()=>[i(s(S(m)(`common.cancel`)),1)]),_:1})])],64)):(c(),u(h,{key:1},[C(`div`,I,[C(`div`,L,[C(`span`,R,s(e.label),1),e.builtin?(c(),u(`span`,z,s(S(m)(`ai.quickCommand.builtin`)),1)):x(``,!0)]),e.builtin?x(``,!0):(c(),u(`div`,B,[b(S(O),{variant:`ghost`,size:`xs`,onClick:t=>D(e)},{default:g(()=>[i(s(S(m)(`common.edit`)),1)]),_:1},8,[`onClick`]),b(S(A),{open:l.value===e.id,"onUpdate:open":t[3]||=e=>{e||(l.value=null)}},{default:g(()=>[b(S(j),{"as-child":``},{default:g(()=>[b(S(O),{variant:`outline`,size:`xs`,onClick:t=>l.value=e.id},{default:g(()=>[i(s(S(m)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024),b(S(k),{class:`w-auto p-3`},{default:g(()=>[C(`div`,Ae,[C(`p`,V,s(S(m)(`confirm.deleteItem`,{name:e.label})),1),C(`div`,H,[b(S(O),{size:`xs`,variant:`outline`,onClick:t[2]||=e=>l.value=null},{default:g(()=>[i(s(S(m)(`common.cancel`)),1)]),_:1}),b(S(O),{size:`xs`,onClick:t=>{S(p).remove(e.id),l.value=null}},{default:g(()=>[i(s(S(m)(`common.confirm`)),1)]),_:1},8,[`onClick`])])])]),_:2},1024)]),_:2},1032,[`open`])]))]),e.builtin?(c(),u(`p`,U,s(e.template),1)):x(``,!0)],64))]))),128))]),C(`div`,W,[b(S(N),{modelValue:v.value,"onUpdate:modelValue":t[4]||=e=>v.value=e,placeholder:S(m)(`ai.quickCommand.nameExamplePlaceholder`)},null,8,[`modelValue`,`placeholder`]),b(S(M),{modelValue:y.value,"onUpdate:modelValue":t[5]||=e=>y.value=e,rows:`2`,placeholder:S(m)(`ai.quickCommand.templateExamplePlaceholder`)},null,8,[`modelValue`,`placeholder`]),b(S(O),{class:`w-full`,onClick:ee},{default:g(()=>[i(s(S(m)(`common.add`)),1)]),_:1})])]),_:1})]),_:1},8,[`open`]))}}),Me={class:`space-x-1 flex items-center`},Ne={class:`flex-1 truncate`},Pe={key:0,class:`mb-3 flex flex-wrap gap-2 overflow-x-auto pb-1`},Fe={key:1,class:`text-muted-foreground flex items-center gap-2 border rounded-md border-dashed px-3 py-1 text-xs`},Ie={key:2,class:`custom-scroll space-y-3 chat-container mb-4 flex-1 overflow-y-auto pr-2`},Le={key:0,class:`text-muted-foreground mb-1 italic`},Re={class:`mt-1 flex gap-1`},ze={key:3,class:`relative mt-2`},Be={class:`bg-background border-border flex flex-col items-baseline gap-2 border rounded-xl px-3 py-2 pr-12 shadow-inner`},Ve={class:`text-xs`},He=1500,G=`ai_memory_context`,K=`ai_conversation_list`,q=Ee(o({__name:`AIAssistantPanel`,props:{open:{type:Boolean}},emits:[`update:open`],setup(o,{emit:T}){let k=o,A=T,j=Ce(),{editor:Ee}=y(j),{toggleAIImageDialog:N}=e(),P=_(k.open);r(()=>k.open,e=>P.value=e),r(P,e=>{A(`update:open`,e),e&&$(!0)});let F=_(``),I=_([]),L=_(null),R=_(!1),{loading:z,abort:B,fetchSSE:Ae}=ne(),V=_(null),H=_(null),U=_(!1),W=_(!1),q=_(null),J=_([]),Y=_([]),Ue=we(),{apiKey:We,endpoint:Ge,model:Ke,temperature:qe,maxToken:Je,type:Ye}=y(Ue),Xe=Te(),{t:X}=te(),Ze=_(null);function Qe(){let e=Ze.value?.$el;return e instanceof HTMLTextAreaElement?e:null}function $e(){Qe()?.focus()}function et(e){e.preventDefault(),l($e)}function tt(){return j.getSelection()}function nt(e){let t=tt();F.value=e.buildPrompt(t),L.value=null,l(()=>{let e=Qe();e?.focus(),e&&e.setSelectionRange(e.value.length,e.value.length)})}ee(async()=>{J.value=await t.getJSON(K,[]);let e=await t.getJSON(G,[]);Y.value=e.length>0?e.map(e=>({...e,id:e.id||n()})):Z(),await $(!0)});function Z(){return[{role:`assistant`,content:X(`ai.chat.greeting`),id:n()}]}function rt(){let e=Y.value.find(e=>e.role===`user`);if(!e)return X(`ai.chat.conversationTitle`,{date:new Date().toLocaleString()});let t=e.content.trim();return t.length>20&&(t=`${t.substring(0,20)}...`),t}async function Q(){if(!(Y.value.length<=1)){if(q.value){let e=J.value.find(e=>e.id===q.value);e&&(e.timestamp=Date.now(),await t.setJSON(K,J.value))}else{q.value=n();let e={id:q.value,name:rt(),timestamp:Date.now()};J.value.unshift(e),await t.setJSON(K,J.value)}await t.setJSON(`ai_conversation_${q.value}`,Y.value)}}async function it(){await Q(),q.value=null,Y.value=Z(),await t.setJSON(G,Y.value),await $(!0),w.success(X(`ai.chat.sessionCreated`))}async function at(e){await Q();let r=await t.getJSON(`ai_conversation_${e}`,[]);r.length>0&&(Y.value=r.map(e=>({...e,id:e.id||n()})),q.value=e,await t.setJSON(G,Y.value),await $(!0),w.success(X(`ai.chat.conversationLoaded`)))}async function ot(e){J.value=J.value.filter(t=>t.id!==e),await t.setJSON(K,J.value),await t.remove(`ai_conversation_${e}`),q.value===e&&(q.value=null,Y.value=Z(),await t.setJSON(G,Y.value)),w.success(X(`ai.chat.conversationDeleted`))}function st(){R.value=!1,$(!0)}function ct(){A(`update:open`,!1),setTimeout(()=>{N(!0)},100)}function lt(e){if(!(e.isComposing||e.keyCode===229)){if(e.key===`Enter`&&!e.shiftKey)e.preventDefault(),_t();else if(e.key===`ArrowUp`){if(e.preventDefault(),I.value.length===0)return;L.value===null?L.value=I.value.length-1:L.value>0&&L.value--,F.value=I.value[L.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),L.value===null)return;L.value<I.value.length-1?(L.value++,F.value=I.value[L.value]||``):(L.value=null,F.value=``)}}}async function ut(e,t){De(e),V.value=t,setTimeout(()=>V.value=null,He)}function dt(e,t){j.insertAtCursor(e),H.value=t,setTimeout(()=>H.value=null,He),w.success(X(`ai.chat.insertedToDoc`))}async function ft(){B(),q.value&&=(J.value=J.value.filter(e=>e.id!==q.value),await t.setJSON(K,J.value),await t.remove(`ai_conversation_${q.value}`),null),Y.value=Z(),await t.setJSON(G,Y.value),$(!0),w.success(X(`ai.chat.sessionCleared`))}function pt(){B();let e=Y.value[Y.value.length-1];e?.role===`assistant`&&(e.done=!0),$(!0)}async function $(e=!1){await l();let t=document.querySelector(`.chat-container`);if(t){let n=t.scrollTop+t.clientHeight>=t.scrollHeight-50;(e||n)&&(t.scrollTop=t.scrollHeight,await new Promise(e=>setTimeout(e,50)))}}function mt(){U.value=!U.value}async function ht(){if(z.value)return;let e=Y.value.length-1;if(e<0||Y.value[e].role!==`assistant`)return;Y.value.splice(e,1),z.value=!0,Y.value.push({role:`assistant`,content:``,reasoning:``,done:!1});let t=Y.value[Y.value.length-1];await $(!0),await gt(t)}async function gt(e){let n=Y.value.slice(-12).filter((e,t,n)=>!(t===n.length-1&&e.role===`assistant`&&!e.done)&&(t!==0||e.role!==`assistant`)),r;if(U.value){let e=[];for(let t=n.length-1;t>=0&&e.length<2;t--){let r=n[t];(e.length===0||r.role===`user`||r.role===`assistant`)&&e.unshift(r)}r=e}else r=n.slice(-10);let i=U.value?[{role:`system`,content:X(`ai.chat.systemQuote`,{content:Ee.value?.state.doc.toString()??``})}]:[],a=[{role:`system`,content:X(`ai.chat.systemPrompt`)},...i,...r],o={model:Ke.value,messages:a,temperature:qe.value,max_tokens:Je.value,stream:!0},s=ie(We.value,Ye.value),c=re(Ge.value,`chat`);try{await Ae(c,s,o,{onDelta(t){let n=Y.value[Y.value.length-1];n===e&&(n.content+=t,$())},onReasoningDelta(t){let n=Y.value[Y.value.length-1];n===e&&(n.reasoning=(n.reasoning||``)+t,$())},onDone(){let e=Y.value[Y.value.length-1];e.role===`assistant`&&(e.done=!0,$(!0))}})}catch(e){Y.value[Y.value.length-1].content=X(`ai.chat.requestFailed`,{message:e.message}),await $(!0)}finally{await t.setJSON(G,Y.value),await Q()}}async function _t(){if(!F.value.trim()||z.value)return;I.value.push(F.value.trim()),L.value=null,z.value=!0;let e=F.value.trim();Y.value.push({role:`user`,content:e}),F.value=``,Y.value.push({role:`assistant`,content:``,reasoning:``,done:!1});let t=Y.value[Y.value.length-1];await $(!0),await gt(t)}return(e,t)=>{let n=je,r=ue;return c(),f(S(me),{open:S(P),"onUpdate:open":t[6]||=e=>p(P)?P.value=e:null},{default:g(()=>[b(S(ge),{class:`bg-card text-card-foreground h-dvh max-h-dvh w-full flex flex-col rounded-none shadow-xl sm:max-h-[80vh] sm:max-w-2xl sm:rounded-xl`,onOpenAutoFocus:et},{default:g(()=>[b(S(he),{class:`space-y-1 flex flex-col items-start`},{default:g(()=>[C(`div`,Me,[b(S(_e),null,{default:g(()=>[i(s(S(X)(`ai.chat.title`)),1)]),_:1}),b(S(O),{title:S(R)?S(X)(`ai.chat.title`):S(X)(`ai.chat.configParams`),"aria-label":S(R)?S(X)(`ai.chat.title`):S(X)(`ai.chat.configParams`),variant:`ghost`,size:`icon`,onClick:t[0]||=e=>R.value=!S(R)},{default:g(()=>[S(R)?(c(),f(S(se),{key:0,class:`h-4 w-4`})):(c(),f(S(fe),{key:1,class:`h-4 w-4`}))]),_:1},8,[`title`,`aria-label`]),b(S(O),{title:S(X)(`ai.chat.imageGen`),"aria-label":S(X)(`ai.chat.imageGen`),variant:`ghost`,size:`icon`,onClick:t[1]||=e=>ct()},{default:g(()=>[b(S(oe),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),b(S(O),{title:S(X)(`ai.chat.newSession`),"aria-label":S(X)(`ai.chat.newSession`),variant:`ghost`,size:`icon`,onClick:it},{default:g(()=>[b(S(de),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),b(S(be),null,{default:g(()=>[b(S(xe),{"as-child":``},{default:g(()=>[b(S(O),{title:S(X)(`ai.chat.loadConversation`),"aria-label":S(X)(`ai.chat.loadConversation`),variant:`ghost`,size:`icon`},{default:g(()=>[b(S(ae),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`])]),_:1}),b(S(ye),{align:`end`,class:`max-h-64 overflow-y-auto w-64 z-[9999]`},{default:g(()=>[S(J).length===0?(c(),f(S(Se),{key:0,disabled:``,class:`text-muted-foreground text-sm`},{default:g(()=>[i(s(S(X)(`ai.chat.noSavedConversations`)),1)]),_:1})):x(``,!0),(c(!0),u(h,null,d(S(J),e=>(c(),f(S(Se),{key:e.id,class:`flex items-center justify-between gap-2 cursor-pointer`,onClick:t=>at(e.id)},{default:g(()=>[C(`span`,Ne,s(e.name),1),b(S(O),{variant:`ghost`,size:`icon`,class:`h-6 w-6 flex-shrink-0`,"aria-label":S(X)(`common.delete`),title:S(X)(`common.delete`),onClick:m(t=>ot(e.id),[`stop`])},{default:g(()=>[b(S(pe),{class:`h-3 w-3`})]),_:1},8,[`aria-label`,`title`,`onClick`])]),_:2},1032,[`onClick`]))),128))]),_:1})]),_:1}),b(S(O),{title:S(X)(`ai.chat.clearConversation`),"aria-label":S(X)(`ai.chat.clearConversation`),variant:`ghost`,size:`icon`,onClick:ft},{default:g(()=>[b(S(pe),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`])]),b(S(ve),{class:`text-muted-foreground text-sm`},{default:g(()=>[i(s(S(X)(`ai.chat.description`)),1)]),_:1})]),_:1}),S(R)?x(``,!0):(c(),u(`div`,Pe,[S(Xe).commands.length?(c(!0),u(h,{key:0},d(S(Xe).commands,e=>(c(),f(S(O),{key:e.id,variant:`secondary`,size:`sm`,class:`text-xs`,onClick:t=>nt(e)},{default:g(()=>[i(s(e.label),1)]),_:2},1032,[`onClick`]))),128)):(c(),u(`div`,Fe,s(S(X)(`ai.chat.noQuickCommands`)),1)),b(S(O),{variant:`ghost`,size:`sm`,title:S(X)(`ai.chat.manageCommands`),"aria-label":S(X)(`ai.chat.manageCommands`),onClick:t[2]||=e=>W.value=!0},{default:g(()=>[b(S(de),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),b(n,{open:S(W),"onUpdate:open":t[3]||=e=>p(W)?W.value=e:null},null,8,[`open`])])),S(R)?(c(),f(r,{key:1,class:`mb-4 w-full border rounded-md p-4`,onSaved:st})):x(``,!0),S(R)?x(``,!0):(c(),u(`div`,Ie,[(c(!0),u(h,null,d(S(Y),(e,t)=>(c(),u(`div`,{key:e.id||t,class:a([`flex flex-col`,e.role===`user`?`items-end`:`items-start`])},[C(`div`,{class:a([`ring-border/20 max-w-[75%] rounded-2xl px-4 py-2 text-sm leading-relaxed shadow-xs ring-1`,e.role===`user`?`bg-black text-white dark:bg-primary dark:text-primary-foreground`:`bg-gray-100 text-gray-800 dark:bg-muted/60 dark:text-muted-foreground`])},[e.reasoning?(c(),u(`div`,Le,s(e.reasoning),1)):x(``,!0),C(`div`,{class:a([`whitespace-pre-wrap`,e.content?``:`animate-pulse text-muted-foreground`])},s(e.content||(e.role===`assistant`&&!e.done?S(X)(`ai.chat.thinking`):``)),3)],2),C(`div`,Re,[t>0&&(e.role!==`assistant`||t!==S(Y).length-1||e.done)?(c(),f(S(O),{key:0,variant:`ghost`,size:`icon`,class:`h-5 w-5 p-1`,title:S(X)(`ai.chat.copyContent`),"aria-label":S(X)(`ai.chat.copyContent`),onClick:n=>ut(e.content,t)},{default:g(()=>[S(V)===t?(c(),f(S(E),{key:0,class:`h-3 w-3 text-green-600`})):(c(),f(S(D),{key:1,class:`text-muted-foreground h-3 w-3`}))]),_:2},1032,[`title`,`aria-label`,`onClick`])):x(``,!0),e.role===`assistant`&&(e.done||t<S(Y).length-1)&&t>0?(c(),f(S(O),{key:1,variant:`ghost`,size:`icon`,class:`h-5 w-5 p-1`,title:S(X)(`ai.chat.insertDoc`),"aria-label":S(X)(`ai.chat.insertDoc`),onClick:n=>dt(e.content,t)},{default:g(()=>[S(H)===t?(c(),f(S(E),{key:0,class:`h-3 w-3 text-green-600`})):(c(),f(S(Oe),{key:1,class:`text-muted-foreground h-3 w-3`}))]),_:2},1032,[`title`,`aria-label`,`onClick`])):x(``,!0),e.role===`assistant`&&e.done&&t===S(Y).length-1?(c(),f(S(O),{key:2,variant:`ghost`,size:`icon`,class:`h-5 w-5 p-1`,title:S(X)(`ai.chat.regenerate`),"aria-label":S(X)(`ai.chat.regenerate`),onClick:ht},{default:g(()=>[b(S(ce),{class:`text-muted-foreground h-3 w-3`})]),_:1},8,[`title`,`aria-label`])):x(``,!0)])],2))),128))])),S(R)?x(``,!0):(c(),u(`div`,ze,[C(`div`,Be,[b(S(M),{ref_key:`chatInputRef`,ref:Ze,modelValue:S(F),"onUpdate:modelValue":t[4]||=e=>p(F)?F.value=e:null,placeholder:S(X)(`ai.chat.inputPlaceholder`),rows:`2`,class:`custom-scroll min-h-16 w-full resize-none border-none bg-transparent p-0 focus-visible:outline-hidden focus:outline-hidden focus-visible:ring-0 focus:ring-0 focus-visible:ring-offset-0 focus:ring-offset-0 focus-visible:ring-transparent focus:ring-transparent`,onKeydown:lt},null,8,[`modelValue`,`placeholder`]),b(S(O),{size:`sm`,variant:`outline`,class:a([`h-8 flex items-center gap-1 rounded-md px-3 font-medium transition-colors duration-150`,[S(U)?`bg-primary text-white border-primary dark:bg-white dark:text-black dark:border-white`:`bg-background text-muted-foreground border-border hover:text-foreground hover:border-foreground dark:bg-muted dark:text-gray-400 dark:hover:text-white dark:hover:border-white/60`]]),"aria-label":S(X)(`ai.chat.quoteFullText`),onClick:mt},{default:g(()=>[(c(),f(v(S(U)?S(E):S(D)),{class:`h-4 w-4`})),C(`span`,Ve,s(S(X)(`ai.chat.quoteFullText`)),1)]),_:1},8,[`class`,`aria-label`]),b(S(O),{disabled:!S(F).trim()&&!S(z),size:`icon`,class:`absolute bottom-3 right-3 rounded-full disabled:opacity-40 bg-primary hover:bg-primary/90 text-primary-foreground`,"aria-label":S(z)?S(X)(`common.pause`):S(X)(`common.send`),onClick:t[5]||=e=>S(z)?pt():_t()},{default:g(()=>[S(z)?(c(),f(S(le),{key:0,class:`h-4 w-4`})):(c(),f(S(ke),{key:1,class:`h-4 w-4`}))]),_:1},8,[`disabled`,`aria-label`])])]))]),_:1})]),_:1},8,[`open`])}}}),[[`__scopeId`,`data-v-96c42179`]]);export{q as default};
1
+ import{t as e}from"./md-ui-Bt-aDIF5.js";import{f as t,h as n}from"./md-storage-BSAs4c5b.js";import{$ as r,C as i,Ct as a,E as o,Et as s,H as c,I as l,S as u,W as d,b as f,ct as p,f as m,m as h,nt as g,pt as _,q as v,r as y,w as b,x,xt as S,y as C,z as ee}from"./md-vendor_vue-BeOfKbk1.js";import{n as te}from"./md-vue-i18n-Cxvw1c3e.js";import{n as w}from"./md-lib-CvTniYNx.js";import{t as T}from"./md-createLucideIcon-BXdNAL-d.js";import{t as E}from"./md-check-lU7D5avq.js";import{t as D}from"./md-copy-FPkQvYMT.js";import{a as ne,i as re,r as ie}from"./md-useLocalizedAIServices-1SgW-zt5.js";import{t as ae}from"./md-folder-open-BeUSQQdX.js";import{t as oe}from"./md-image-DZKTZmYn.js";import{n as se,t as ce}from"./md-refresh-ccw-B0suwZhW.js";import{n as le,t as ue}from"./md-AIConfig-0A2NJlnO.js";import{t as de}from"./md-plus-ByJ8LvCm.js";import{t as fe}from"./md-settings-BQ0oxr26.js";import{t as pe}from"./md-trash-_QL9lZ9Z.js";import{n as O}from"./md-button-BSiUqWkb.js";import{i as me,n as he,r as ge,t as _e}from"./md-DialogTitle-DckujrLp.js";import{t as ve}from"./md-DialogDescription-I_Nb5r3l.js";import{n as k,r as A,t as j}from"./md-PopoverTrigger-BkrNONB4.js";import{n as ye,r as be,t as xe}from"./md-DropdownMenuTrigger-Dc5A4zvK.js";import{t as Se}from"./md-DropdownMenuItem-BwyJT-E2.js";import{n as Ce}from"./md-editor-CY6v2w8B.js";import{t as we}from"./md-aiConfig-DVPjNuSa.js";import{t as Te}from"./md-quickCommands-phfj1m8Y.js";import{t as Ee}from"./md-_plugin-vue_export-helper-BDNMzG2s.js";import{t as M}from"./md-Textarea-D5oizzXs.js";import{t as N}from"./md-Input-CXcSl6a3.js";import{t as De}from"./md-clipboard-D_fwX9Ex.js";var Oe=T({name:`file-plus-corner`,size:24,node:[[`path`,{d:`M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35`,key:`17jvcc`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 19h6`,key:`bvotb8`}],[`path`,{d:`M17 16v6`,key:`18yu1i`}]],aliases:[`file-plus-2`]}),ke=T({name:`send`,size:24,node:[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]}),P={class:`space-y-4 flex-1 overflow-y-auto pr-1`},F={class:`flex justify-end gap-2`},I={class:`flex items-center justify-between gap-2`},L={class:`flex min-w-0 items-center gap-2`},R={class:`break-all text-sm`},z={key:0,class:`bg-muted text-muted-foreground shrink-0 rounded px-1.5 py-0.5 text-[10px] leading-none`},B={key:0,class:`flex shrink-0 gap-1`},Ae={class:`flex flex-col gap-2`},V={class:`text-sm`},H={class:`flex justify-end gap-2`},U={key:0,class:`text-muted-foreground whitespace-pre-wrap break-all text-xs`},W={class:`space-y-2 mt-4 border rounded-md p-3`},je=o({__name:`QuickCommandManager`,props:{open:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=e,a=t,o=_(n.open),l=_(null);r(()=>n.open,e=>o.value=e),r(o,e=>{a(`update:open`,e),e||(l.value=null)});let p=Te(),{t:m}=te(),v=_(``),y=_(``);function ee(){v.value.trim()&&y.value.trim()&&(p.add(v.value.trim(),y.value.trim()),v.value=``,y.value=``)}let w=_(null),T=_(``),E=_(``);function D(e){e.builtin||(l.value=null,w.value=e.id,T.value=e.label,E.value=e.template)}function ne(){w.value=null}function re(){T.value.trim()&&E.value.trim()&&(p.update(w.value,T.value.trim(),E.value.trim()),w.value=null)}return(e,t)=>(c(),f(S(me),{open:o.value,"onUpdate:open":t[6]||=e=>o.value=e},{default:g(()=>[b(S(ge),{class:`max-h-[90vh] w-[92vw] flex flex-col sm:max-w-lg`},{default:g(()=>[b(S(he),null,{default:g(()=>[b(S(_e),null,{default:g(()=>[i(s(S(m)(`ai.quickCommand.title`)),1)]),_:1})]),_:1}),C(`div`,P,[(c(!0),u(h,null,d(S(p).commands,e=>(c(),u(`div`,{key:e.id,class:`flex flex-col gap-2 border rounded-md p-3`},[!e.builtin&&w.value===e.id?(c(),u(h,{key:0},[b(S(N),{modelValue:T.value,"onUpdate:modelValue":t[0]||=e=>T.value=e,placeholder:S(m)(`ai.quickCommand.namePlaceholder`)},null,8,[`modelValue`,`placeholder`]),b(S(M),{modelValue:E.value,"onUpdate:modelValue":t[1]||=e=>E.value=e,rows:`2`,placeholder:S(m)(`ai.quickCommand.templatePlaceholder`)},null,8,[`modelValue`,`placeholder`]),C(`div`,F,[b(S(O),{size:`xs`,onClick:re},{default:g(()=>[i(s(S(m)(`common.save`)),1)]),_:1}),b(S(O),{variant:`ghost`,size:`xs`,onClick:ne},{default:g(()=>[i(s(S(m)(`common.cancel`)),1)]),_:1})])],64)):(c(),u(h,{key:1},[C(`div`,I,[C(`div`,L,[C(`span`,R,s(e.label),1),e.builtin?(c(),u(`span`,z,s(S(m)(`ai.quickCommand.builtin`)),1)):x(``,!0)]),e.builtin?x(``,!0):(c(),u(`div`,B,[b(S(O),{variant:`ghost`,size:`xs`,onClick:t=>D(e)},{default:g(()=>[i(s(S(m)(`common.edit`)),1)]),_:1},8,[`onClick`]),b(S(A),{open:l.value===e.id,"onUpdate:open":t[3]||=e=>{e||(l.value=null)}},{default:g(()=>[b(S(j),{"as-child":``},{default:g(()=>[b(S(O),{variant:`outline`,size:`xs`,onClick:t=>l.value=e.id},{default:g(()=>[i(s(S(m)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024),b(S(k),{class:`w-auto p-3`},{default:g(()=>[C(`div`,Ae,[C(`p`,V,s(S(m)(`confirm.deleteItem`,{name:e.label})),1),C(`div`,H,[b(S(O),{size:`xs`,variant:`outline`,onClick:t[2]||=e=>l.value=null},{default:g(()=>[i(s(S(m)(`common.cancel`)),1)]),_:1}),b(S(O),{size:`xs`,onClick:t=>{S(p).remove(e.id),l.value=null}},{default:g(()=>[i(s(S(m)(`common.confirm`)),1)]),_:1},8,[`onClick`])])])]),_:2},1024)]),_:2},1032,[`open`])]))]),e.builtin?(c(),u(`p`,U,s(e.template),1)):x(``,!0)],64))]))),128))]),C(`div`,W,[b(S(N),{modelValue:v.value,"onUpdate:modelValue":t[4]||=e=>v.value=e,placeholder:S(m)(`ai.quickCommand.nameExamplePlaceholder`)},null,8,[`modelValue`,`placeholder`]),b(S(M),{modelValue:y.value,"onUpdate:modelValue":t[5]||=e=>y.value=e,rows:`2`,placeholder:S(m)(`ai.quickCommand.templateExamplePlaceholder`)},null,8,[`modelValue`,`placeholder`]),b(S(O),{class:`w-full`,onClick:ee},{default:g(()=>[i(s(S(m)(`common.add`)),1)]),_:1})])]),_:1})]),_:1},8,[`open`]))}}),Me={class:`space-x-1 flex items-center`},Ne={class:`flex-1 truncate`},Pe={key:0,class:`mb-3 flex flex-wrap gap-2 overflow-x-auto pb-1`},Fe={key:1,class:`text-muted-foreground flex items-center gap-2 border rounded-md border-dashed px-3 py-1 text-xs`},Ie={key:2,class:`custom-scroll space-y-3 chat-container mb-4 flex-1 overflow-y-auto pr-2`},Le={key:0,class:`text-muted-foreground mb-1 italic`},Re={class:`mt-1 flex gap-1`},ze={key:3,class:`relative mt-2`},Be={class:`bg-background border-border flex flex-col items-baseline gap-2 border rounded-xl px-3 py-2 pr-12 shadow-inner`},Ve={class:`text-xs`},He=1500,G=`ai_memory_context`,K=`ai_conversation_list`,q=Ee(o({__name:`AIAssistantPanel`,props:{open:{type:Boolean}},emits:[`update:open`],setup(o,{emit:T}){let k=o,A=T,j=Ce(),{editor:Ee}=y(j),{toggleAIImageDialog:N}=e(),P=_(k.open);r(()=>k.open,e=>P.value=e),r(P,e=>{A(`update:open`,e),e&&$(!0)});let F=_(``),I=_([]),L=_(null),R=_(!1),{loading:z,abort:B,fetchSSE:Ae}=ne(),V=_(null),H=_(null),U=_(!1),W=_(!1),q=_(null),J=_([]),Y=_([]),Ue=we(),{apiKey:We,endpoint:Ge,model:Ke,temperature:qe,maxToken:Je,type:Ye}=y(Ue),Xe=Te(),{t:X}=te(),Ze=_(null);function Qe(){let e=Ze.value?.$el;return e instanceof HTMLTextAreaElement?e:null}function $e(){Qe()?.focus()}function et(e){e.preventDefault(),l($e)}function tt(){return j.getSelection()}function nt(e){let t=tt();F.value=e.buildPrompt(t),L.value=null,l(()=>{let e=Qe();e?.focus(),e&&e.setSelectionRange(e.value.length,e.value.length)})}ee(async()=>{J.value=await t.getJSON(K,[]);let e=await t.getJSON(G,[]);Y.value=e.length>0?e.map(e=>({...e,id:e.id||n()})):Z(),await $(!0)});function Z(){return[{role:`assistant`,content:X(`ai.chat.greeting`),id:n()}]}function rt(){let e=Y.value.find(e=>e.role===`user`);if(!e)return X(`ai.chat.conversationTitle`,{date:new Date().toLocaleString()});let t=e.content.trim();return t.length>20&&(t=`${t.substring(0,20)}...`),t}async function Q(){if(!(Y.value.length<=1)){if(q.value){let e=J.value.find(e=>e.id===q.value);e&&(e.timestamp=Date.now(),await t.setJSON(K,J.value))}else{q.value=n();let e={id:q.value,name:rt(),timestamp:Date.now()};J.value.unshift(e),await t.setJSON(K,J.value)}await t.setJSON(`ai_conversation_${q.value}`,Y.value)}}async function it(){await Q(),q.value=null,Y.value=Z(),await t.setJSON(G,Y.value),await $(!0),w.success(X(`ai.chat.sessionCreated`))}async function at(e){await Q();let r=await t.getJSON(`ai_conversation_${e}`,[]);r.length>0&&(Y.value=r.map(e=>({...e,id:e.id||n()})),q.value=e,await t.setJSON(G,Y.value),await $(!0),w.success(X(`ai.chat.conversationLoaded`)))}async function ot(e){J.value=J.value.filter(t=>t.id!==e),await t.setJSON(K,J.value),await t.remove(`ai_conversation_${e}`),q.value===e&&(q.value=null,Y.value=Z(),await t.setJSON(G,Y.value)),w.success(X(`ai.chat.conversationDeleted`))}function st(){R.value=!1,$(!0)}function ct(){A(`update:open`,!1),setTimeout(()=>{N(!0)},100)}function lt(e){if(!(e.isComposing||e.keyCode===229)){if(e.key===`Enter`&&!e.shiftKey)e.preventDefault(),_t();else if(e.key===`ArrowUp`){if(e.preventDefault(),I.value.length===0)return;L.value===null?L.value=I.value.length-1:L.value>0&&L.value--,F.value=I.value[L.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),L.value===null)return;L.value<I.value.length-1?(L.value++,F.value=I.value[L.value]||``):(L.value=null,F.value=``)}}}async function ut(e,t){De(e),V.value=t,setTimeout(()=>V.value=null,He)}function dt(e,t){j.insertAtCursor(e),H.value=t,setTimeout(()=>H.value=null,He),w.success(X(`ai.chat.insertedToDoc`))}async function ft(){B(),q.value&&=(J.value=J.value.filter(e=>e.id!==q.value),await t.setJSON(K,J.value),await t.remove(`ai_conversation_${q.value}`),null),Y.value=Z(),await t.setJSON(G,Y.value),$(!0),w.success(X(`ai.chat.sessionCleared`))}function pt(){B();let e=Y.value[Y.value.length-1];e?.role===`assistant`&&(e.done=!0),$(!0)}async function $(e=!1){await l();let t=document.querySelector(`.chat-container`);if(t){let n=t.scrollTop+t.clientHeight>=t.scrollHeight-50;(e||n)&&(t.scrollTop=t.scrollHeight,await new Promise(e=>setTimeout(e,50)))}}function mt(){U.value=!U.value}async function ht(){if(z.value)return;let e=Y.value.length-1;if(e<0||Y.value[e].role!==`assistant`)return;Y.value.splice(e,1),z.value=!0,Y.value.push({role:`assistant`,content:``,reasoning:``,done:!1});let t=Y.value[Y.value.length-1];await $(!0),await gt(t)}async function gt(e){let n=Y.value.slice(-12).filter((e,t,n)=>!(t===n.length-1&&e.role===`assistant`&&!e.done)&&(t!==0||e.role!==`assistant`)),r;if(U.value){let e=[];for(let t=n.length-1;t>=0&&e.length<2;t--){let r=n[t];(e.length===0||r.role===`user`||r.role===`assistant`)&&e.unshift(r)}r=e}else r=n.slice(-10);let i=U.value?[{role:`system`,content:X(`ai.chat.systemQuote`,{content:Ee.value?.state.doc.toString()??``})}]:[],a=[{role:`system`,content:X(`ai.chat.systemPrompt`)},...i,...r],o={model:Ke.value,messages:a,temperature:qe.value,max_tokens:Je.value,stream:!0},s=ie(We.value,Ye.value),c=re(Ge.value,`chat`);try{await Ae(c,s,o,{onDelta(t){let n=Y.value[Y.value.length-1];n===e&&(n.content+=t,$())},onReasoningDelta(t){let n=Y.value[Y.value.length-1];n===e&&(n.reasoning=(n.reasoning||``)+t,$())},onDone(){let e=Y.value[Y.value.length-1];e.role===`assistant`&&(e.done=!0,$(!0))}})}catch(e){Y.value[Y.value.length-1].content=X(`ai.chat.requestFailed`,{message:e.message}),await $(!0)}finally{await t.setJSON(G,Y.value),await Q()}}async function _t(){if(!F.value.trim()||z.value)return;I.value.push(F.value.trim()),L.value=null,z.value=!0;let e=F.value.trim();Y.value.push({role:`user`,content:e}),F.value=``,Y.value.push({role:`assistant`,content:``,reasoning:``,done:!1});let t=Y.value[Y.value.length-1];await $(!0),await gt(t)}return(e,t)=>{let n=je,r=ue;return c(),f(S(me),{open:S(P),"onUpdate:open":t[6]||=e=>p(P)?P.value=e:null},{default:g(()=>[b(S(ge),{class:`bg-card text-card-foreground h-dvh max-h-dvh w-full flex flex-col rounded-none shadow-xl sm:max-h-[80vh] sm:max-w-2xl sm:rounded-xl`,onOpenAutoFocus:et},{default:g(()=>[b(S(he),{class:`space-y-1 flex flex-col items-start`},{default:g(()=>[C(`div`,Me,[b(S(_e),null,{default:g(()=>[i(s(S(X)(`ai.chat.title`)),1)]),_:1}),b(S(O),{title:S(R)?S(X)(`ai.chat.title`):S(X)(`ai.chat.configParams`),"aria-label":S(R)?S(X)(`ai.chat.title`):S(X)(`ai.chat.configParams`),variant:`ghost`,size:`icon`,onClick:t[0]||=e=>R.value=!S(R)},{default:g(()=>[S(R)?(c(),f(S(se),{key:0,class:`h-4 w-4`})):(c(),f(S(fe),{key:1,class:`h-4 w-4`}))]),_:1},8,[`title`,`aria-label`]),b(S(O),{title:S(X)(`ai.chat.imageGen`),"aria-label":S(X)(`ai.chat.imageGen`),variant:`ghost`,size:`icon`,onClick:t[1]||=e=>ct()},{default:g(()=>[b(S(oe),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),b(S(O),{title:S(X)(`ai.chat.newSession`),"aria-label":S(X)(`ai.chat.newSession`),variant:`ghost`,size:`icon`,onClick:it},{default:g(()=>[b(S(de),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),b(S(be),null,{default:g(()=>[b(S(xe),{"as-child":``},{default:g(()=>[b(S(O),{title:S(X)(`ai.chat.loadConversation`),"aria-label":S(X)(`ai.chat.loadConversation`),variant:`ghost`,size:`icon`},{default:g(()=>[b(S(ae),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`])]),_:1}),b(S(ye),{align:`end`,class:`max-h-64 overflow-y-auto w-64 z-[9999]`},{default:g(()=>[S(J).length===0?(c(),f(S(Se),{key:0,disabled:``,class:`text-muted-foreground text-sm`},{default:g(()=>[i(s(S(X)(`ai.chat.noSavedConversations`)),1)]),_:1})):x(``,!0),(c(!0),u(h,null,d(S(J),e=>(c(),f(S(Se),{key:e.id,class:`flex items-center justify-between gap-2 cursor-pointer`,onClick:t=>at(e.id)},{default:g(()=>[C(`span`,Ne,s(e.name),1),b(S(O),{variant:`ghost`,size:`icon`,class:`h-6 w-6 flex-shrink-0`,"aria-label":S(X)(`common.delete`),title:S(X)(`common.delete`),onClick:m(t=>ot(e.id),[`stop`])},{default:g(()=>[b(S(pe),{class:`h-3 w-3`})]),_:1},8,[`aria-label`,`title`,`onClick`])]),_:2},1032,[`onClick`]))),128))]),_:1})]),_:1}),b(S(O),{title:S(X)(`ai.chat.clearConversation`),"aria-label":S(X)(`ai.chat.clearConversation`),variant:`ghost`,size:`icon`,onClick:ft},{default:g(()=>[b(S(pe),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`])]),b(S(ve),{class:`text-muted-foreground text-sm`},{default:g(()=>[i(s(S(X)(`ai.chat.description`)),1)]),_:1})]),_:1}),S(R)?x(``,!0):(c(),u(`div`,Pe,[S(Xe).commands.length?(c(!0),u(h,{key:0},d(S(Xe).commands,e=>(c(),f(S(O),{key:e.id,variant:`secondary`,size:`sm`,class:`text-xs`,onClick:t=>nt(e)},{default:g(()=>[i(s(e.label),1)]),_:2},1032,[`onClick`]))),128)):(c(),u(`div`,Fe,s(S(X)(`ai.chat.noQuickCommands`)),1)),b(S(O),{variant:`ghost`,size:`sm`,title:S(X)(`ai.chat.manageCommands`),"aria-label":S(X)(`ai.chat.manageCommands`),onClick:t[2]||=e=>W.value=!0},{default:g(()=>[b(S(de),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),b(n,{open:S(W),"onUpdate:open":t[3]||=e=>p(W)?W.value=e:null},null,8,[`open`])])),S(R)?(c(),f(r,{key:1,class:`mb-4 w-full border rounded-md p-4`,onSaved:st})):x(``,!0),S(R)?x(``,!0):(c(),u(`div`,Ie,[(c(!0),u(h,null,d(S(Y),(e,t)=>(c(),u(`div`,{key:e.id||t,class:a([`flex flex-col`,e.role===`user`?`items-end`:`items-start`])},[C(`div`,{class:a([`ring-border/20 max-w-[75%] rounded-2xl px-4 py-2 text-sm leading-relaxed shadow-xs ring-1`,e.role===`user`?`bg-black text-white dark:bg-primary dark:text-primary-foreground`:`bg-gray-100 text-gray-800 dark:bg-muted/60 dark:text-muted-foreground`])},[e.reasoning?(c(),u(`div`,Le,s(e.reasoning),1)):x(``,!0),C(`div`,{class:a([`whitespace-pre-wrap`,e.content?``:`animate-pulse text-muted-foreground`])},s(e.content||(e.role===`assistant`&&!e.done?S(X)(`ai.chat.thinking`):``)),3)],2),C(`div`,Re,[t>0&&(e.role!==`assistant`||t!==S(Y).length-1||e.done)?(c(),f(S(O),{key:0,variant:`ghost`,size:`icon`,class:`h-5 w-5 p-1`,title:S(X)(`ai.chat.copyContent`),"aria-label":S(X)(`ai.chat.copyContent`),onClick:n=>ut(e.content,t)},{default:g(()=>[S(V)===t?(c(),f(S(E),{key:0,class:`h-3 w-3 text-green-600`})):(c(),f(S(D),{key:1,class:`text-muted-foreground h-3 w-3`}))]),_:2},1032,[`title`,`aria-label`,`onClick`])):x(``,!0),e.role===`assistant`&&(e.done||t<S(Y).length-1)&&t>0?(c(),f(S(O),{key:1,variant:`ghost`,size:`icon`,class:`h-5 w-5 p-1`,title:S(X)(`ai.chat.insertDoc`),"aria-label":S(X)(`ai.chat.insertDoc`),onClick:n=>dt(e.content,t)},{default:g(()=>[S(H)===t?(c(),f(S(E),{key:0,class:`h-3 w-3 text-green-600`})):(c(),f(S(Oe),{key:1,class:`text-muted-foreground h-3 w-3`}))]),_:2},1032,[`title`,`aria-label`,`onClick`])):x(``,!0),e.role===`assistant`&&e.done&&t===S(Y).length-1?(c(),f(S(O),{key:2,variant:`ghost`,size:`icon`,class:`h-5 w-5 p-1`,title:S(X)(`ai.chat.regenerate`),"aria-label":S(X)(`ai.chat.regenerate`),onClick:ht},{default:g(()=>[b(S(ce),{class:`text-muted-foreground h-3 w-3`})]),_:1},8,[`title`,`aria-label`])):x(``,!0)])],2))),128))])),S(R)?x(``,!0):(c(),u(`div`,ze,[C(`div`,Be,[b(S(M),{ref_key:`chatInputRef`,ref:Ze,modelValue:S(F),"onUpdate:modelValue":t[4]||=e=>p(F)?F.value=e:null,placeholder:S(X)(`ai.chat.inputPlaceholder`),rows:`2`,class:`custom-scroll min-h-16 w-full resize-none border-none bg-transparent p-0 focus-visible:outline-hidden focus:outline-hidden focus-visible:ring-0 focus:ring-0 focus-visible:ring-offset-0 focus:ring-offset-0 focus-visible:ring-transparent focus:ring-transparent`,onKeydown:lt},null,8,[`modelValue`,`placeholder`]),b(S(O),{size:`sm`,variant:`outline`,class:a([`h-8 flex items-center gap-1 rounded-md px-3 font-medium transition-colors duration-150`,[S(U)?`bg-primary text-white border-primary dark:bg-white dark:text-black dark:border-white`:`bg-background text-muted-foreground border-border hover:text-foreground hover:border-foreground dark:bg-muted dark:text-gray-400 dark:hover:text-white dark:hover:border-white/60`]]),"aria-label":S(X)(`ai.chat.quoteFullText`),onClick:mt},{default:g(()=>[(c(),f(v(S(U)?S(E):S(D)),{class:`h-4 w-4`})),C(`span`,Ve,s(S(X)(`ai.chat.quoteFullText`)),1)]),_:1},8,[`class`,`aria-label`]),b(S(O),{disabled:!S(F).trim()&&!S(z),size:`icon`,class:`absolute bottom-3 right-3 rounded-full disabled:opacity-40 bg-primary hover:bg-primary/90 text-primary-foreground`,"aria-label":S(z)?S(X)(`common.pause`):S(X)(`common.send`),onClick:t[5]||=e=>S(z)?pt():_t()},{default:g(()=>[S(z)?(c(),f(S(le),{key:0,class:`h-4 w-4`})):(c(),f(S(ke),{key:1,class:`h-4 w-4`}))]),_:1},8,[`disabled`,`aria-label`])])]))]),_:1})]),_:1},8,[`open`])}}}),[[`__scopeId`,`data-v-96c42179`]]);export{q as default};
@@ -1 +1 @@
1
- import{a as e}from"./md-ai-service-options-BnJLTh-y.js";import{$ as t,C as n,E as r,Et as i,H as a,S as o,W as s,b as c,ct as l,m as u,nt as d,pt as f,r as p,v as m,w as h,x as g,xt as _,y as v}from"./md-vendor_vue-BeOfKbk1.js";import{n as y}from"./md-vue-i18n-Cxvw1c3e.js";import{t as b}from"./md-createLucideIcon-BXdNAL-d.js";import{a as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./md-useLocalizedAIServices-rhW4n8Ti.js";import{t as O}from"./md-info-DloVl59m.js";import{n as k}from"./md-button-BSiUqWkb.js";import{i as ee,n as te,r as ne,t as re}from"./md-TooltipTrigger-Bddfw7hJ.js";import{t as ie}from"./md-Label-BEXxOepa.js";import{a as ae,i as oe,n as se,r as ce,t as A}from"./md-SelectContent-BTj2mBZa.js";import{t as j}from"./md-aiConfig-CMgvtyLF.js";import{t as M}from"./md-_plugin-vue_export-helper-BDNMzG2s.js";import{t as N}from"./md-Input-CXcSl6a3.js";var P=b({name:`pause`,size:24,node:[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]}),F={class:`custom-scroll space-y-4 max-h-[calc(100dvh-10rem)] overflow-y-auto text-xs sm:max-h-none sm:text-sm`},I={class:`font-medium`},L={key:0},R={key:1},z={class:`mt-2 flex flex-col gap-2 sm:flex-row`},B={key:2,class:`mt-1 text-xs text-gray-500`},V=M(r({__name:`AIConfig`,emits:[`saved`],setup(r,{emit:b}){let M=b,P=j(),{type:V,endpoint:H,model:U,apiKey:W,temperature:G,maxToken:K}=p(P),{t:q}=y(),{loading:J,fetchJSON:le}=x(),Y=f(``),{discoveredModels:ue,discovering:de,canDiscover:fe,discover:X,resetDiscovered:pe}=C({endpoint:H,apiKey:W,serviceType:V,kind:`chat`}),Z=D(),Q=m(()=>Z.value.serviceOptions.find(e=>e.value===V.value)||Z.value.serviceOptions[0]);t(V,()=>{Y.value=``}),t(U,()=>{Y.value=``});function $(e=!0){e&&(Y.value=q(`ai.config.saved`),M(`saved`))}function me(){pe(),P.reset(),Y.value=q(`ai.config.cleared`)}async function he(){Y.value=``,J.value=!0;let e=T(W.value,V.value);try{let t=S(H.value,`chat`),n={model:U.value,messages:[{role:`user`,content:`ping`}],temperature:0,max_tokens:1,stream:!1},r=await le(t,e,n);if(r.ok)Y.value=q(`ai.config.testSuccess`),$(!1);else{try{let{error:e}=JSON.parse(r.errorText);if(r.status===404&&(e?.code===`ModelNotOpen`||/not activated|未开通/i.test(e?.message))){Y.value=q(`ai.config.modelNotActivated`,{model:U.value}),$(!1);return}}catch{}Y.value=q(`ai.config.testFailed`,{status:r.status,statusText:r.statusText,errorText:r.errorText})}}catch(e){Y.value=q(`ai.config.testFailedMessage`,{message:e.message})}finally{J.value=!1}}async function ge(){Y.value=``;let e=await X();e&&(Y.value=e)}return(t,r)=>{let f=ie,p=se,m=ce,y=oe,b=A,x=ae,S=N,C=re,T=ne,D=ee,j=te,M=k;return a(),o(`div`,F,[v(`div`,I,i(_(q)(`ai.config.title`)),1),v(`div`,null,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.serviceType`)),1)]),_:1}),h(x,{modelValue:_(V),"onUpdate:modelValue":r[0]||=e=>l(V)?V.value=e:null},{default:d(()=>[h(m,{class:`w-full`},{default:d(()=>[h(p,null,{default:d(()=>[n(i(_(Q).label),1)]),_:1})]),_:1}),h(b,null,{default:d(()=>[(a(!0),o(u,null,s(_(Z).serviceOptions,e=>(a(),c(y,{key:e.value,value:e.value},{default:d(()=>[n(i(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),_(V)===_(e)?g(``,!0):(a(),o(`div`,L,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.apiEndpoint`)),1)]),_:1}),h(S,{modelValue:_(H),"onUpdate:modelValue":r[1]||=e=>l(H)?H.value=e:null,placeholder:_(q)(`ai.config.apiEndpointPlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])])),_(V)===_(e)?g(``,!0):(a(),o(`div`,R,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.apiKey`)),1)]),_:1}),h(_(w),{modelValue:_(W),"onUpdate:modelValue":r[2]||=e=>l(W)?W.value=e:null,placeholder:_(q)(`ai.config.apiKeyPlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])])),v(`div`,null,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.modelName`)),1)]),_:1}),h(E,{modelValue:_(U),"onUpdate:modelValue":r[3]||=e=>l(U)?U.value=e:null,"preset-models":_(Q).models,"discovered-models":_(ue),placeholder:_(q)(`ai.config.modelPlaceholder`),"select-placeholder":_(q)(`ai.config.selectModel`),"discover-label":_(q)(`ai.config.discoverModels`),"discovering-label":_(q)(`ai.config.discoveringModels`),"need-config-label":_(q)(`ai.config.discoverModelsNeedConfig`),discovering:_(de),"can-discover":_(fe),"show-discover":_(V)!==_(e),onDiscover:ge},null,8,[`modelValue`,`preset-models`,`discovered-models`,`placeholder`,`select-placeholder`,`discover-label`,`discovering-label`,`need-config-label`,`discovering`,`can-discover`,`show-discover`])]),v(`div`,null,[h(f,{class:`mb-1 flex items-center gap-1 text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.temperature`))+` `,1),h(j,null,{default:d(()=>[h(D,null,{default:d(()=>[h(C,{"as-child":``},{default:d(()=>[h(_(O),{class:`text-gray-500`,size:16})]),_:1}),h(T,{side:`top`,class:`z-[250]`},{default:d(()=>[v(`div`,null,i(_(q)(`ai.config.temperatureHint`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),h(S,{modelValue:_(G),"onUpdate:modelValue":r[4]||=e=>l(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.1`,min:`0`,max:`2`,placeholder:_(q)(`ai.config.temperaturePlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])]),v(`div`,null,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.maxTokens`)),1)]),_:1}),h(S,{modelValue:_(K),"onUpdate:modelValue":r[5]||=e=>l(K)?K.value=e:null,modelModifiers:{number:!0},type:`number`,min:`1`,max:`32768`,placeholder:_(q)(`ai.config.maxTokensPlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])]),v(`div`,z,[h(M,{size:`sm`,onClick:$},{default:d(()=>[n(i(_(q)(`common.save`)),1)]),_:1}),h(M,{size:`sm`,variant:`ghost`,onClick:me},{default:d(()=>[n(i(_(q)(`common.clear`)),1)]),_:1}),h(M,{size:`sm`,variant:`outline`,disabled:_(J),onClick:he},{default:d(()=>[n(i(_(J)?_(q)(`common.testing`):_(q)(`common.testConnection`)),1)]),_:1},8,[`disabled`])]),_(Y)?(a(),o(`div`,B,i(_(Y)),1)):g(``,!0)])}}}),[[`__scopeId`,`data-v-bac80ef7`]]);export{P as n,V as t};
1
+ import{a as e}from"./md-ai-service-options-BnJLTh-y.js";import{$ as t,C as n,E as r,Et as i,H as a,S as o,W as s,b as c,ct as l,m as u,nt as d,pt as f,r as p,v as m,w as h,x as g,xt as _,y as v}from"./md-vendor_vue-BeOfKbk1.js";import{n as y}from"./md-vue-i18n-Cxvw1c3e.js";import{t as b}from"./md-createLucideIcon-BXdNAL-d.js";import{a as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./md-useLocalizedAIServices-1SgW-zt5.js";import{t as O}from"./md-info-DloVl59m.js";import{n as k}from"./md-button-BSiUqWkb.js";import{i as ee,n as te,r as ne,t as re}from"./md-TooltipTrigger-Bddfw7hJ.js";import{t as ie}from"./md-Label-BEXxOepa.js";import{a as ae,i as oe,n as se,r as ce,t as A}from"./md-SelectContent-BTj2mBZa.js";import{t as j}from"./md-aiConfig-DVPjNuSa.js";import{t as M}from"./md-_plugin-vue_export-helper-BDNMzG2s.js";import{t as N}from"./md-Input-CXcSl6a3.js";var P=b({name:`pause`,size:24,node:[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]}),F={class:`custom-scroll space-y-4 max-h-[calc(100dvh-10rem)] overflow-y-auto text-xs sm:max-h-none sm:text-sm`},I={class:`font-medium`},L={key:0},R={key:1},z={class:`mt-2 flex flex-col gap-2 sm:flex-row`},B={key:2,class:`mt-1 text-xs text-gray-500`},V=M(r({__name:`AIConfig`,emits:[`saved`],setup(r,{emit:b}){let M=b,P=j(),{type:V,endpoint:H,model:U,apiKey:W,temperature:G,maxToken:K}=p(P),{t:q}=y(),{loading:J,fetchJSON:le}=x(),Y=f(``),{discoveredModels:ue,discovering:de,canDiscover:fe,discover:X,resetDiscovered:pe}=C({endpoint:H,apiKey:W,serviceType:V,kind:`chat`}),Z=D(),Q=m(()=>Z.value.serviceOptions.find(e=>e.value===V.value)||Z.value.serviceOptions[0]);t(V,()=>{Y.value=``}),t(U,()=>{Y.value=``});function $(e=!0){e&&(Y.value=q(`ai.config.saved`),M(`saved`))}function me(){pe(),P.reset(),Y.value=q(`ai.config.cleared`)}async function he(){Y.value=``,J.value=!0;let e=T(W.value,V.value);try{let t=S(H.value,`chat`),n={model:U.value,messages:[{role:`user`,content:`ping`}],temperature:0,max_tokens:1,stream:!1},r=await le(t,e,n);if(r.ok)Y.value=q(`ai.config.testSuccess`),$(!1);else{try{let{error:e}=JSON.parse(r.errorText);if(r.status===404&&(e?.code===`ModelNotOpen`||/not activated|未开通/i.test(e?.message))){Y.value=q(`ai.config.modelNotActivated`,{model:U.value}),$(!1);return}}catch{}Y.value=q(`ai.config.testFailed`,{status:r.status,statusText:r.statusText,errorText:r.errorText})}}catch(e){Y.value=q(`ai.config.testFailedMessage`,{message:e.message})}finally{J.value=!1}}async function ge(){Y.value=``;let e=await X();e&&(Y.value=e)}return(t,r)=>{let f=ie,p=se,m=ce,y=oe,b=A,x=ae,S=N,C=re,T=ne,D=ee,j=te,M=k;return a(),o(`div`,F,[v(`div`,I,i(_(q)(`ai.config.title`)),1),v(`div`,null,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.serviceType`)),1)]),_:1}),h(x,{modelValue:_(V),"onUpdate:modelValue":r[0]||=e=>l(V)?V.value=e:null},{default:d(()=>[h(m,{class:`w-full`},{default:d(()=>[h(p,null,{default:d(()=>[n(i(_(Q).label),1)]),_:1})]),_:1}),h(b,null,{default:d(()=>[(a(!0),o(u,null,s(_(Z).serviceOptions,e=>(a(),c(y,{key:e.value,value:e.value},{default:d(()=>[n(i(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),_(V)===_(e)?g(``,!0):(a(),o(`div`,L,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.apiEndpoint`)),1)]),_:1}),h(S,{modelValue:_(H),"onUpdate:modelValue":r[1]||=e=>l(H)?H.value=e:null,placeholder:_(q)(`ai.config.apiEndpointPlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])])),_(V)===_(e)?g(``,!0):(a(),o(`div`,R,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.apiKey`)),1)]),_:1}),h(_(w),{modelValue:_(W),"onUpdate:modelValue":r[2]||=e=>l(W)?W.value=e:null,placeholder:_(q)(`ai.config.apiKeyPlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])])),v(`div`,null,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.modelName`)),1)]),_:1}),h(E,{modelValue:_(U),"onUpdate:modelValue":r[3]||=e=>l(U)?U.value=e:null,"preset-models":_(Q).models,"discovered-models":_(ue),placeholder:_(q)(`ai.config.modelPlaceholder`),"select-placeholder":_(q)(`ai.config.selectModel`),"discover-label":_(q)(`ai.config.discoverModels`),"discovering-label":_(q)(`ai.config.discoveringModels`),"need-config-label":_(q)(`ai.config.discoverModelsNeedConfig`),discovering:_(de),"can-discover":_(fe),"show-discover":_(V)!==_(e),onDiscover:ge},null,8,[`modelValue`,`preset-models`,`discovered-models`,`placeholder`,`select-placeholder`,`discover-label`,`discovering-label`,`need-config-label`,`discovering`,`can-discover`,`show-discover`])]),v(`div`,null,[h(f,{class:`mb-1 flex items-center gap-1 text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.temperature`))+` `,1),h(j,null,{default:d(()=>[h(D,null,{default:d(()=>[h(C,{"as-child":``},{default:d(()=>[h(_(O),{class:`text-gray-500`,size:16})]),_:1}),h(T,{side:`top`,class:`z-[250]`},{default:d(()=>[v(`div`,null,i(_(q)(`ai.config.temperatureHint`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),h(S,{modelValue:_(G),"onUpdate:modelValue":r[4]||=e=>l(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.1`,min:`0`,max:`2`,placeholder:_(q)(`ai.config.temperaturePlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])]),v(`div`,null,[h(f,{class:`mb-1 block text-sm font-medium`},{default:d(()=>[n(i(_(q)(`ai.config.maxTokens`)),1)]),_:1}),h(S,{modelValue:_(K),"onUpdate:modelValue":r[5]||=e=>l(K)?K.value=e:null,modelModifiers:{number:!0},type:`number`,min:`1`,max:`32768`,placeholder:_(q)(`ai.config.maxTokensPlaceholder`),class:`focus:border-gray-400 focus:ring-1 focus:ring-gray-300`},null,8,[`modelValue`,`placeholder`])]),v(`div`,z,[h(M,{size:`sm`,onClick:$},{default:d(()=>[n(i(_(q)(`common.save`)),1)]),_:1}),h(M,{size:`sm`,variant:`ghost`,onClick:me},{default:d(()=>[n(i(_(q)(`common.clear`)),1)]),_:1}),h(M,{size:`sm`,variant:`outline`,disabled:_(J),onClick:he},{default:d(()=>[n(i(_(J)?_(q)(`common.testing`):_(q)(`common.testConnection`)),1)]),_:1},8,[`disabled`])]),_(Y)?(a(),o(`div`,B,i(_(Y)),1)):g(``,!0)])}}}),[[`__scopeId`,`data-v-bac80ef7`]]);export{P as n,V as t};
@@ -1 +1 @@
1
- import{t as e}from"./md-ui-Dq6MTvr4.js";import{a as t,r as n,t as r}from"./md-ai-service-options-BnJLTh-y.js";import{f as i}from"./md-storage-TAchKcvc.js";import"./md-configs-l_iJ-wjP.js";import{$ as a,C as o,Ct as s,E as c,Et as l,H as u,I as d,R as f,S as p,W as m,b as h,ct as g,d as _,f as v,h as y,l as b,m as x,n as S,nt as C,pt as w,r as T,rt as E,v as D,w as O,x as k,xt as A,y as j,z as M}from"./md-vendor_vue-BeOfKbk1.js";import{n as ee}from"./md-vue-i18n-Cxvw1c3e.js";import{n as N}from"./md-lib-CvTniYNx.js";import{t as P}from"./md-copy-FPkQvYMT.js";import{t as te}from"./md-download-PHSmBRjD.js";import{a as F,i as ne,n as I,o as L,r as re,s as R,t as z}from"./md-useLocalizedAIServices-rhW4n8Ti.js";import{t as B}from"./md-image-DZKTZmYn.js";import{t as V}from"./md-info-DloVl59m.js";import{t as ie}from"./md-loader-circle-CMCAxmDe.js";import{n as ae,t as oe}from"./md-refresh-ccw-B0suwZhW.js";import{t as H}from"./md-settings-BQ0oxr26.js";import{t as U}from"./md-trash-_QL9lZ9Z.js";import{o as se}from"./md-utils-CfHWyiHX.js";import{n as W}from"./md-button-BSiUqWkb.js";import{a as ce,i as le,n as ue,r as de,t as fe}from"./md-DialogTitle-DckujrLp.js";import{t as pe}from"./md-DialogDescription-I_Nb5r3l.js";import{t as G}from"./md-Label-BEXxOepa.js";import{a as K,i as q,n as J,r as Y,t as X}from"./md-SelectContent-BTj2mBZa.js";import{n as me}from"./md-editor-CAilbZEo.js";import{t as he}from"./md-_plugin-vue_export-helper-BDNMzG2s.js";import{t as ge}from"./md-Textarea-D5oizzXs.js";import{t as _e}from"./md-clipboard-BYFl_-FZ.js";var ve=S(`AIImageConfig`,()=>{let e=i.reactive(`openai_image_type`,t),o=i.reactive(`openai_image_size`,`1024x1024`),s=i.reactive(`openai_image_quality`,`standard`),c=i.reactive(`openai_image_style`,`natural`),l=w(``);Promise.resolve().then(async()=>{let t=e.value;if(t===`custom`){let n=await i.get(`openai_image_endpoint_${t}`);e.value===t&&(l.value=n||``)}else{let n=r.find(e=>e.value===t)??r[0];e.value===t&&(l.value=n.endpoint)}});let u=w(``),d=w(n);return Promise.resolve().then(async()=>{let t=e.value,r=await i.get(`openai_image_key_${t}`);e.value===t&&(d.value=r||n)}),a(e,async e=>{let t=r.find(t=>t.value===e)??r[0];if(e===`custom`){let t=await i.get(`openai_image_endpoint_${e}`);l.value=t||``}else l.value=t.endpoint;let a=await i.get(`openai_image_model_${e}`)||``;u.value=a||t.models[0]||``,await i.set(`openai_image_model_${e}`,u.value);let o=await i.get(`openai_image_key_${e}`);d.value=o||n},{immediate:!0}),a(u,async t=>{await i.set(`openai_image_model_${e.value}`,t)}),a(d,async n=>{e.value!==t&&await i.set(`openai_image_key_${e.value}`,n)}),a(l,async t=>{e.value===`custom`&&await i.set(`openai_image_endpoint_${e.value}`,t)}),{type:e,endpoint:l,model:u,size:o,quality:s,style:c,apiKey:d,reset:async()=>{e.value=t,o.value=`1024x1024`,s.value=`standard`,c.value=`natural`,await Promise.all(r.map(async({value:e})=>{await i.remove(`openai_image_key_${e}`),await i.remove(`openai_image_model_${e}`),await i.remove(`openai_image_endpoint_${e}`)}))}}}),ye={class:`space-y-4 max-w-full`},be={class:`font-medium`},xe=[`placeholder`,`readonly`],Se={key:0},Ce={key:1},Z={key:2},we={key:3,class:`flex items-start gap-2 p-3 bg-blue-50 dark:bg-blue-950/30 rounded-md text-sm`},Te={class:`text-blue-700 dark:text-blue-300`},Ee={class:`font-medium`},De={key:4,class:`flex items-start gap-2 p-3 bg-orange-50 dark:bg-orange-950/30 rounded-md text-sm`},Oe={class:`text-orange-700 dark:text-orange-300`},ke={class:`font-medium`},Ae={class:`mt-1 text-xs`},je={class:`flex flex-wrap gap-2`},Me={key:5,class:`mt-1 text-xs text-gray-500`},Ne=c({__name:`AIImageConfig`,emits:[`saved`],setup(e,{emit:n}){let r=n,i=ve(),{type:s,endpoint:c,model:d,apiKey:f,size:_,quality:v,style:y}=T(i),{t:S}=ee(),{loading:M,fetchJSON:N}=F(),P=w(``),{discoveredModels:te,discovering:B,canDiscover:ie,discover:ae,resetDiscovered:oe}=I({endpoint:c,apiKey:f,serviceType:s,kind:`image`}),H=z(),U=D(()=>H.value.imageServiceOptions.find(e=>e.value===s.value)||H.value.imageServiceOptions[0]);a(s,()=>{P.value=``}),a(d,()=>{P.value=``}),a(c,()=>{P.value=``});function se(){if(!c.value.trim()||!d.value.trim())P.value=S(`ai.imageConfig.incompleteConfig`);else if(s.value!==t&&!f.value.trim())P.value=S(`ai.imageConfig.apiKeyRequired`);else{try{new URL(c.value)}catch{P.value=S(`ai.imageConfig.invalidEndpoint`);return}P.value=S(`ai.imageConfig.saved`),r(`saved`)}}function ce(){oe(),i.reset(),P.value=S(`ai.imageConfig.cleared`)}async function le(){P.value=``,M.value=!0;let e=re(f.value,s.value);try{let t=ne(c.value,`image`),n={model:d.value,prompt:`test connection`,size:_.value,quality:v.value,style:y.value,n:1},r=await N(t,e,n);r.ok?P.value=S(`ai.imageConfig.connectionSuccess`):P.value=S(`ai.imageConfig.connectionFailed`,{message:`${r.status} ${r.errorText}`})}catch(e){P.value=S(`ai.imageConfig.connectionFailed`,{message:e.message})}finally{M.value=!1}}async function ue(){P.value=``;let e=await ae();e&&(P.value=e)}let de=D(()=>[{label:S(`ai.imageConfig.sizeSquare`),value:`1024x1024`},{label:S(`ai.imageConfig.sizeLandscape`),value:`1792x1024`},{label:S(`ai.imageConfig.sizePortrait`),value:`1024x1792`}]),fe=D(()=>[{label:S(`ai.imageConfig.qualityStandard`),value:`standard`},{label:S(`ai.imageConfig.qualityHd`),value:`hd`}]),pe=D(()=>[{label:S(`ai.imageConfig.styleNatural`),value:`natural`},{label:S(`ai.imageConfig.styleVivid`),value:`vivid`}]);return(e,n)=>(u(),p(`div`,ye,[j(`div`,be,l(A(S)(`ai.imageConfig.title`)),1),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.provider`)),1)]),_:1}),O(A(K),{modelValue:A(s),"onUpdate:modelValue":n[0]||=e=>g(s)?s.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(U).label),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(H).imageServiceOptions,e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.apiEndpoint`)),1)]),_:1}),E(j(`input`,{"onUpdate:modelValue":n[1]||=e=>g(c)?c.value=e:null,type:`url`,class:`w-full mt-1 rounded-md border bg-background p-2 transition-colors focus:border-primary focus:ring-2 focus:ring-primary`,placeholder:A(S)(`ai.imageConfig.apiEndpointPlaceholder`),readonly:A(s)!==`custom`},null,8,xe),[[b,A(c)]])]),A(s)==="default"?k(``,!0):(u(),p(`div`,Se,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.apiKey`)),1)]),_:1}),O(A(L),{modelValue:A(f),"onUpdate:modelValue":n[2]||=e=>g(f)?f.value=e:null,class:`w-full mt-1 focus:ring-2 focus:ring-primary focus:border-primary transition-colors`,placeholder:A(S)(`ai.imageConfig.apiKeyPlaceholder`)},null,8,[`modelValue`,`placeholder`])])),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.model`)),1)]),_:1}),O(R,{modelValue:A(d),"onUpdate:modelValue":n[3]||=e=>g(d)?d.value=e:null,"preset-models":A(U).models,"discovered-models":A(te),placeholder:A(S)(`ai.imageConfig.modelPlaceholder`),"select-placeholder":A(S)(`ai.imageConfig.selectModel`),"discover-label":A(S)(`ai.imageConfig.discoverModels`),"discovering-label":A(S)(`ai.imageConfig.discoveringModels`),"need-config-label":A(S)(`ai.imageConfig.discoverModelsNeedConfig`),discovering:A(B),"can-discover":A(ie),"show-discover":A(s)!==A(t),onDiscover:ue},null,8,[`modelValue`,`preset-models`,`discovered-models`,`placeholder`,`select-placeholder`,`discover-label`,`discovering-label`,`need-config-label`,`discovering`,`can-discover`,`show-discover`])]),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.imageSize`)),1)]),_:1}),O(A(K),{modelValue:A(_),"onUpdate:modelValue":n[4]||=e=>g(_)?_.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(de).find(e=>e.value===A(_))?.label||A(_)),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(de),e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),A(d).includes(`dall-e`)?(u(),p(`div`,Ce,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.imageQuality`)),1)]),_:1}),O(A(K),{modelValue:A(v),"onUpdate:modelValue":n[5]||=e=>g(v)?v.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(fe).find(e=>e.value===A(v))?.label||A(v)),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(fe),e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])])):k(``,!0),A(d).includes(`dall-e`)?(u(),p(`div`,Z,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.imageStyle`)),1)]),_:1}),O(A(K),{modelValue:A(y),"onUpdate:modelValue":n[6]||=e=>g(y)?y.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(pe).find(e=>e.value===A(y))?.label||A(y)),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(pe),e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])])):k(``,!0),A(s)==="default"?(u(),p(`div`,we,[O(A(V),{class:`h-4 w-4 text-blue-500 mt-0.5 flex-shrink-0`}),j(`div`,Te,[j(`p`,Ee,l(A(S)(`ai.imageConfig.defaultServiceTitle`)),1),j(`p`,null,l(A(S)(`ai.imageConfig.defaultServiceDesc`)),1)])])):A(s)===`custom`?(u(),p(`div`,De,[O(A(V),{class:`h-4 w-4 text-orange-500 mt-0.5 flex-shrink-0`}),j(`div`,Oe,[j(`p`,ke,l(A(S)(`ai.imageConfig.customServiceTitle`)),1),j(`p`,null,l(A(S)(`ai.imageConfig.customServiceDesc`)),1),j(`p`,Ae,l(A(S)(`ai.imageConfig.endpointExample`)),1)])])):k(``,!0),j(`div`,je,[O(A(W),{type:`button`,class:`flex-1 min-w-[100px]`,onClick:se},{default:C(()=>[o(l(A(S)(`ai.imageConfig.saveConfig`)),1)]),_:1}),O(A(W),{variant:`outline`,type:`button`,class:`flex-1 min-w-[80px]`,onClick:ce},{default:C(()=>[o(l(A(S)(`common.clear`)),1)]),_:1}),O(A(W),{size:`sm`,variant:`outline`,class:`flex-1 min-w-[100px]`,disabled:A(M),onClick:le},{default:C(()=>[o(l(A(M)?A(S)(`common.testing`):A(S)(`common.testConnection`)),1)]),_:1},8,[`disabled`])]),A(P)?(u(),p(`div`,Me,l(A(P)),1)):k(``,!0)]))}}),Pe={class:`space-x-1 flex items-center`},Fe={key:0,class:`mb-4 w-full border rounded-md p-4 max-h-[60vh] overflow-y-auto flex-shrink-0`},Ie={key:1,class:`flex flex-col space-y-4 flex-shrink-0`},Le={class:`flex items-center justify-center bg-gray-50 dark:bg-gray-800 rounded-lg min-h-[250px] sm:min-h-[300px]`},Re={key:0,class:`flex flex-col items-center gap-4`},ze={class:`text-sm text-muted-foreground`},Be={key:1,class:`w-full flex flex-col space-y-3`},Ve={key:0,class:`flex items-center justify-between p-2 bg-muted/20 rounded`},He={class:`text-sm text-muted-foreground`},Ue={class:`flex items-center justify-center p-2 sm:p-4`},We=[`aria-label`],Ge=[`src`],Ke={class:`absolute inset-0 bg-black/0 group-hover:bg-black/10 rounded-lg flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none`},qe={class:`bg-black/70 text-white px-3 py-1 rounded-md text-sm`},Je={class:`px-2 sm:px-4 py-2 bg-muted/10 rounded space-y-1`},Ye={class:`text-xs text-muted-foreground text-center`},Xe={class:`text-xs text-muted-foreground break-words text-center`},Ze={class:`font-medium`},Qe={class:`ml-1`},$e={class:`text-xs text-muted-foreground text-center`},et={class:`font-medium`},tt={class:`font-medium`},nt={class:`flex flex-wrap justify-center gap-2 p-2 sm:p-4 bg-muted/20 border-t border-border rounded-b-lg`},rt={key:2,class:`relative flex-shrink-0 mt-auto`},it={class:`bg-background border-border flex flex-col items-baseline gap-2 border rounded-xl px-3 py-2 pr-12 shadow-inner`},at=[`aria-label`,`onKeydown`],ot=[`src`,`alt`],st=36e5,ct=he(c({__name:`AIImageGeneratorPanel`,props:{open:{type:Boolean}},emits:[`update:open`],setup(t,{emit:n}){let r=t,c=n,{t:m}=ee(),g=me(),{editor:b}=T(g),{toggleAIDialog:S}=e(),E=w(r.open);a(()=>r.open,e=>{E.value=e,e&&Z()}),a(E,e=>c(`update:open`,e));let D=w(!1),F=w(!1),I=w(``),L=w([]),R=w([]),z=w([]),V=w(null),G=w(0),K=w(Date.now()),q=null,J=ve(),{apiKey:Y,endpoint:X,model:he,type:ye,size:be,quality:xe,style:Se}=T(J);function Ce(e){return Date.now()-e>st}async function Z(){let e=await i.getJSON(`ai_generated_images`,[]),t=await i.getJSON(`ai_image_timestamps`,[]);if(e.length===0)return;let n=await i.getJSON(`ai_image_prompts`,[]);if(t.length===0){L.value=[],R.value=[],z.value=[],await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`);return}let r=[];t.forEach((e,t)=>{Ce(e)||r.push(t)});let a=r.map(t=>e[t]).filter(Boolean),o=r.map(e=>n[e]||``).filter((e,t)=>a[t]),s=r.map(e=>t[e]).filter(Boolean);L.value=a,R.value=o,z.value=s,a.length<e.length&&(a.length>0?(await i.setJSON(`ai_generated_images`,a),await i.setJSON(`ai_image_prompts`,o),await i.setJSON(`ai_image_timestamps`,s)):(await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`)))}M(async()=>{await Z();let e=L.value.length,t=R.value.length,n=z.value.length;e<Math.max(e,t,n)?(L.value=[],R.value=[],z.value=[],await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`)):(t<e&&(R.value=[...R.value,...Array.from({length:e-t}).fill(``)]),n<e&&(z.value=[...z.value,...Array.from({length:e-n},()=>Date.now())]));let r=0;q=setInterval(()=>{K.value=Date.now(),r++,r%30==0&&L.value.length>0&&Z()},1e3)}),f(()=>{q!==null&&(clearInterval(q),q=null)});function we(){D.value=!1}function Te(){c(`update:open`,!1),setTimeout(()=>{S(!0)},100)}function Ee(e){e.isComposing||e.keyCode===229||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),Oe())}async function De(e,t=!1){if(!e.trim()||F.value)return;F.value=!0,V.value=new AbortController;let n=re(Y.value,ye.value);try{let r=ne(X.value,`image`),a={model:he.value,prompt:e.trim(),size:be.value,n:1};he.value.includes(`dall-e`)&&(a.quality=xe.value,a.style=Se.value);let o=await window.fetch(r,{method:`POST`,headers:n,body:JSON.stringify(a),signal:V.value.signal});if(!o.ok){let e=await o.text();throw Error(`${o.status}: ${e}`)}let s=await o.json();if(s.data&&s.data.length>0){let n=s.data[0].url||s.data[0].b64_json;if(n){let r=n.startsWith(`data:`)||n.startsWith(`http`)?n:`data:image/png;base64,${n}`,a=Date.now();L.value.unshift(r),R.value.unshift(e.trim()),z.value.unshift(a),G.value=0,L.value.length>20&&(L.value=L.value.slice(0,20),R.value=R.value.slice(0,20),z.value=z.value.slice(0,20)),await i.setJSON(`ai_generated_images`,L.value),await i.setJSON(`ai_image_prompts`,R.value),await i.setJSON(`ai_image_timestamps`,z.value),t&&(I.value=``)}}else throw Error(m(`ai.image.noValidData`))}catch(e){e.name!==`AbortError`&&N.error(m(`ai.image.generateFailed`,{message:e.message}))}finally{F.value=!1,V.value=null}}async function Oe(){I.value.trim()&&!F.value&&await De(I.value,!0)}function ke(){V.value&&=(V.value.abort(),null),F.value=!1}async function Ae(){L.value=[],R.value=[],z.value=[],G.value=0,await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`)}async function je(e,t){try{let n=await fetch(e);if(!n.ok)throw Error(`Failed to download image: ${n.status}`);let r=await n.blob(),i=window.URL.createObjectURL(r),a=document.createElement(`a`);a.href=i;let o=R.value[t]||``,s=o?o.substring(0,20).replace(/[^\w\s-]/g,``).replace(/\s+/g,`-`):`no-prompt`;a.download=`ai-image-${t+1}-${s}.png`,document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(i),N.success(m(`ai.image.downloadStarted`))}catch{N.error(m(`ai.image.downloadFailed`))}}async function Me(e){try{await _e(e),N.success(m(`common.copiedToClipboard`))}catch{N.error(m(`ai.image.copyFailed`))}}function ct(){let e=R.value[G.value];e&&lt(e)}async function lt(e){await De(e)}function ut(){G.value>0&&G.value--}function dt(){G.value<L.value.length-1&&G.value++}function ft(e){if(b.value)try{let t=R.value[G.value]||``,n=`![${t.trim()?t.trim().substring(0,30).replace(/\n/g,` `):m(`ai.image.aiGeneratedAlt`)}](${e})`,r=b.value.state.selection.main.head;b.value.dispatch({changes:{from:r,insert:n},selection:{anchor:r+n.length}}),b.value.focus(),N.success(m(`ai.image.insertedToEditor`)),E.value=!1}catch{N.error(m(`ai.image.insertFailed`))}}let Q=w(``),pt=w(null);a(Q,async e=>{e&&(ce(),await d(),pt.value?.focus())});function mt(e){e&&(Q.value=e)}function $(){Q.value=``}function ht(e){if(!z.value[e])return m(`common.unknown`);let t=z.value[e],n=st-(K.value-t);if(n<=0)return m(`ai.image.expired`);let r=Math.floor(n/6e4),i=Math.floor(n%6e4/1e3);return r>0?m(`ai.image.timeRemaining`,{minutes:r,seconds:i}):m(`ai.image.secondsRemaining`,{seconds:i})}function gt(e){if(!z.value[e])return`text-muted-foreground`;let t=z.value[e],n=st-(K.value-t);return n<=0?`text-red-500 font-medium`:n<6e5?`text-orange-500 font-medium`:n<18e5?`text-yellow-600`:`text-green-600`}return(e,t)=>(u(),p(x,null,[O(A(le),{open:E.value,"onUpdate:open":t[10]||=e=>E.value=e},{default:C(()=>[O(A(de),{class:`bg-card text-card-foreground flex flex-col w-[95vw] max-h-[90vh] sm:max-h-[85vh] sm:max-w-4xl overflow-y-auto`},{default:C(()=>[O(A(ue),{class:`space-y-1 flex flex-col items-start`},{default:C(()=>[j(`div`,Pe,[O(A(fe),null,{default:C(()=>[o(l(A(m)(`ai.image.title`)),1)]),_:1}),O(A(W),{title:D.value?A(m)(`ai.image.title`):A(m)(`ai.image.configParams`),"aria-label":D.value?A(m)(`ai.image.title`):A(m)(`ai.image.configParams`),variant:`ghost`,size:`icon`,onClick:t[0]||=e=>D.value=!D.value},{default:C(()=>[D.value?(u(),h(A(B),{key:0,class:`h-4 w-4`})):(u(),h(A(H),{key:1,class:`h-4 w-4`}))]),_:1},8,[`title`,`aria-label`]),O(A(W),{title:A(m)(`ai.image.chat`),"aria-label":A(m)(`ai.image.chat`),variant:`ghost`,size:`icon`,onClick:t[1]||=e=>Te()},{default:C(()=>[O(A(ae),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),O(A(W),{title:A(m)(`ai.image.clearImages`),"aria-label":A(m)(`ai.image.clearImages`),variant:`ghost`,size:`icon`,onClick:Ae},{default:C(()=>[O(A(U),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`])]),O(A(pe),{class:`text-muted-foreground text-sm`},{default:C(()=>[o(l(A(m)(`ai.image.description`)),1)]),_:1})]),_:1}),D.value?(u(),p(`div`,Fe,[O(Ne,{onSaved:we})])):k(``,!0),!D.value&&(F.value||L.value.length>0)?(u(),p(`div`,Ie,[j(`div`,Le,[F.value?(u(),p(`div`,Re,[O(A(ie),{class:`h-8 w-8 animate-spin text-primary`}),j(`p`,ze,l(A(m)(`ai.image.generating`)),1),O(A(W),{variant:`outline`,size:`sm`,onClick:ke},{default:C(()=>[o(l(A(m)(`ai.image.cancelGeneration`)),1)]),_:1})])):L.value.length>0?(u(),p(`div`,Be,[L.value.length>1?(u(),p(`div`,Ve,[O(A(W),{variant:`outline`,size:`sm`,disabled:G.value<=0,onClick:ut},{default:C(()=>[o(l(A(m)(`ai.image.previous`)),1)]),_:1},8,[`disabled`]),j(`span`,He,l(G.value+1)+` / `+l(L.value.length),1),O(A(W),{variant:`outline`,size:`sm`,disabled:G.value>=L.value.length-1,onClick:dt},{default:C(()=>[o(l(A(m)(`ai.image.next`)),1)]),_:1},8,[`disabled`])])):k(``,!0),j(`div`,Ue,[j(`div`,{role:`button`,tabindex:`0`,class:`relative group cursor-pointer max-w-lg inline-flex justify-center`,"aria-label":A(m)(`ai.image.clickToViewLarge`),onClick:t[2]||=e=>mt(L.value[G.value]),onKeydown:[t[3]||=_(v(e=>mt(L.value[G.value]),[`prevent`]),[`enter`]),t[4]||=_(v(e=>mt(L.value[G.value]),[`prevent`]),[`space`])]},[j(`img`,{src:L.value[G.value],alt:``,"aria-hidden":`true`,class:`max-w-full h-[300px] object-contain rounded-lg shadow-lg border border-border transition-transform hover:scale-105`},null,8,Ge),j(`div`,Ke,[j(`div`,qe,l(A(m)(`ai.image.clickToViewLarge`)),1)])],40,We)]),j(`div`,Je,[j(`p`,Ye,l(A(m)(`ai.image.size`))+`: `+l(A(be)),1),j(`div`,Xe,[j(`span`,Ze,l(A(m)(`ai.image.prompt`))+`:`,1),j(`span`,Qe,l(R.value[G.value]||A(m)(`ai.image.noPrompt`)),1)]),j(`div`,$e,[j(`span`,et,l(A(m)(`ai.image.remainingValidity`))+`:`,1),j(`span`,{class:s([`ml-1`,gt(G.value)])},l(ht(G.value)),3),j(`span`,tt,l(A(m)(`ai.image.downloadReminder`)),1)])]),j(`div`,nt,[O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:t[5]||=e=>ft(L.value[G.value])},{default:C(()=>[O(A(B),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`common.insert`)),1)]),_:1}),O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:t[6]||=e=>je(L.value[G.value],G.value)},{default:C(()=>[O(A(te),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`common.download`)),1)]),_:1}),O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:t[7]||=e=>Me(L.value[G.value])},{default:C(()=>[O(A(P),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`common.copy`)),1)]),_:1}),O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:ct},{default:C(()=>[O(A(oe),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`ai.image.regenerate`)),1)]),_:1})])])):k(``,!0)])])):k(``,!0),D.value?k(``,!0):(u(),p(`div`,rt,[j(`div`,it,[O(A(ge),{modelValue:I.value,"onUpdate:modelValue":t[8]||=e=>I.value=e,placeholder:A(m)(`ai.image.inputPlaceholder`),rows:`2`,class:`custom-scroll min-h-16 w-full resize-none border-none bg-transparent p-0 focus-visible:outline-hidden focus:outline-hidden focus-visible:ring-0 focus:ring-0 focus-visible:ring-offset-0 focus:ring-offset-0 focus-visible:ring-transparent focus:ring-transparent`,onKeydown:Ee},null,8,[`modelValue`,`placeholder`]),O(A(W),{disabled:!I.value.trim()&&!F.value,size:`icon`,class:`absolute bottom-3 right-3 rounded-full disabled:opacity-40 bg-primary hover:bg-primary/90 text-primary-foreground`,"aria-label":F.value?A(m)(`common.cancel`):A(m)(`ai.image.generate`),onClick:t[9]||=e=>F.value?ke():Oe()},{default:C(()=>[F.value?(u(),h(A(ie),{key:0,class:`h-4 w-4 animate-spin`})):(u(),h(A(B),{key:1,class:`h-4 w-4`}))]),_:1},8,[`disabled`,`aria-label`])])]))]),_:1})]),_:1},8,[`open`]),(u(),h(y,{to:`body`},[Q.value?(u(),p(`div`,{key:0,ref_key:`previewOverlayRef`,ref:pt,tabindex:`-1`,role:`dialog`,"aria-modal":`true`,"aria-label":A(m)(`ai.image.preview`),class:`fixed inset-0 z-[1000] bg-black/90 flex items-center justify-center`,onClick:[v($,[`self`]),t[11]||=v(()=>{},[`stop`])],onPointerdown:t[12]||=v(()=>{},[`stop`]),onKeydown:_(v($,[`stop`]),[`escape`])},[O(A(W),{variant:`ghost`,size:`icon`,"aria-label":A(m)(`ai.image.closePreview`),title:A(m)(`ai.image.closePreview`),class:`absolute top-4 right-4 text-white hover:bg-white/20 z-10`,onClick:v($,[`stop`])},{default:C(()=>[O(A(se),{class:`h-6 w-6`})]),_:1},8,[`aria-label`,`title`]),j(`img`,{src:Q.value,alt:A(m)(`ai.image.previewLarge`),class:`max-w-[95vw] max-h-[95vh] object-contain`,onClick:v($,[`stop`])},null,8,ot)],40,at)):k(``,!0)]))],64))}}),[[`__scopeId`,`data-v-27fb3ae1`]]);export{ct as default};
1
+ import{t as e}from"./md-ui-Bt-aDIF5.js";import{a as t,r as n,t as r}from"./md-ai-service-options-BnJLTh-y.js";import{f as i}from"./md-storage-BSAs4c5b.js";import"./md-configs-l_iJ-wjP.js";import{$ as a,C as o,Ct as s,E as c,Et as l,H as u,I as d,R as f,S as p,W as m,b as h,ct as g,d as _,f as v,h as y,l as b,m as x,n as S,nt as C,pt as w,r as T,rt as E,v as D,w as O,x as k,xt as A,y as j,z as M}from"./md-vendor_vue-BeOfKbk1.js";import{n as ee}from"./md-vue-i18n-Cxvw1c3e.js";import{n as N}from"./md-lib-CvTniYNx.js";import{t as P}from"./md-copy-FPkQvYMT.js";import{t as te}from"./md-download-PHSmBRjD.js";import{a as F,i as ne,n as I,o as L,r as re,s as R,t as z}from"./md-useLocalizedAIServices-1SgW-zt5.js";import{t as B}from"./md-image-DZKTZmYn.js";import{t as V}from"./md-info-DloVl59m.js";import{t as ie}from"./md-loader-circle-CMCAxmDe.js";import{n as ae,t as oe}from"./md-refresh-ccw-B0suwZhW.js";import{t as H}from"./md-settings-BQ0oxr26.js";import{t as U}from"./md-trash-_QL9lZ9Z.js";import{o as se}from"./md-utils-CfHWyiHX.js";import{n as W}from"./md-button-BSiUqWkb.js";import{a as ce,i as le,n as ue,r as de,t as fe}from"./md-DialogTitle-DckujrLp.js";import{t as pe}from"./md-DialogDescription-I_Nb5r3l.js";import{t as G}from"./md-Label-BEXxOepa.js";import{a as K,i as q,n as J,r as Y,t as X}from"./md-SelectContent-BTj2mBZa.js";import{n as me}from"./md-editor-CY6v2w8B.js";import{t as he}from"./md-_plugin-vue_export-helper-BDNMzG2s.js";import{t as ge}from"./md-Textarea-D5oizzXs.js";import{t as _e}from"./md-clipboard-D_fwX9Ex.js";var ve=S(`AIImageConfig`,()=>{let e=i.reactive(`openai_image_type`,t),o=i.reactive(`openai_image_size`,`1024x1024`),s=i.reactive(`openai_image_quality`,`standard`),c=i.reactive(`openai_image_style`,`natural`),l=w(``);Promise.resolve().then(async()=>{let t=e.value;if(t===`custom`){let n=await i.get(`openai_image_endpoint_${t}`);e.value===t&&(l.value=n||``)}else{let n=r.find(e=>e.value===t)??r[0];e.value===t&&(l.value=n.endpoint)}});let u=w(``),d=w(n);return Promise.resolve().then(async()=>{let t=e.value,r=await i.get(`openai_image_key_${t}`);e.value===t&&(d.value=r||n)}),a(e,async e=>{let t=r.find(t=>t.value===e)??r[0];if(e===`custom`){let t=await i.get(`openai_image_endpoint_${e}`);l.value=t||``}else l.value=t.endpoint;let a=await i.get(`openai_image_model_${e}`)||``;u.value=a||t.models[0]||``,await i.set(`openai_image_model_${e}`,u.value);let o=await i.get(`openai_image_key_${e}`);d.value=o||n},{immediate:!0}),a(u,async t=>{await i.set(`openai_image_model_${e.value}`,t)}),a(d,async n=>{e.value!==t&&await i.set(`openai_image_key_${e.value}`,n)}),a(l,async t=>{e.value===`custom`&&await i.set(`openai_image_endpoint_${e.value}`,t)}),{type:e,endpoint:l,model:u,size:o,quality:s,style:c,apiKey:d,reset:async()=>{e.value=t,o.value=`1024x1024`,s.value=`standard`,c.value=`natural`,await Promise.all(r.map(async({value:e})=>{await i.remove(`openai_image_key_${e}`),await i.remove(`openai_image_model_${e}`),await i.remove(`openai_image_endpoint_${e}`)}))}}}),ye={class:`space-y-4 max-w-full`},be={class:`font-medium`},xe=[`placeholder`,`readonly`],Se={key:0},Ce={key:1},Z={key:2},we={key:3,class:`flex items-start gap-2 p-3 bg-blue-50 dark:bg-blue-950/30 rounded-md text-sm`},Te={class:`text-blue-700 dark:text-blue-300`},Ee={class:`font-medium`},De={key:4,class:`flex items-start gap-2 p-3 bg-orange-50 dark:bg-orange-950/30 rounded-md text-sm`},Oe={class:`text-orange-700 dark:text-orange-300`},ke={class:`font-medium`},Ae={class:`mt-1 text-xs`},je={class:`flex flex-wrap gap-2`},Me={key:5,class:`mt-1 text-xs text-gray-500`},Ne=c({__name:`AIImageConfig`,emits:[`saved`],setup(e,{emit:n}){let r=n,i=ve(),{type:s,endpoint:c,model:d,apiKey:f,size:_,quality:v,style:y}=T(i),{t:S}=ee(),{loading:M,fetchJSON:N}=F(),P=w(``),{discoveredModels:te,discovering:B,canDiscover:ie,discover:ae,resetDiscovered:oe}=I({endpoint:c,apiKey:f,serviceType:s,kind:`image`}),H=z(),U=D(()=>H.value.imageServiceOptions.find(e=>e.value===s.value)||H.value.imageServiceOptions[0]);a(s,()=>{P.value=``}),a(d,()=>{P.value=``}),a(c,()=>{P.value=``});function se(){if(!c.value.trim()||!d.value.trim())P.value=S(`ai.imageConfig.incompleteConfig`);else if(s.value!==t&&!f.value.trim())P.value=S(`ai.imageConfig.apiKeyRequired`);else{try{new URL(c.value)}catch{P.value=S(`ai.imageConfig.invalidEndpoint`);return}P.value=S(`ai.imageConfig.saved`),r(`saved`)}}function ce(){oe(),i.reset(),P.value=S(`ai.imageConfig.cleared`)}async function le(){P.value=``,M.value=!0;let e=re(f.value,s.value);try{let t=ne(c.value,`image`),n={model:d.value,prompt:`test connection`,size:_.value,quality:v.value,style:y.value,n:1},r=await N(t,e,n);r.ok?P.value=S(`ai.imageConfig.connectionSuccess`):P.value=S(`ai.imageConfig.connectionFailed`,{message:`${r.status} ${r.errorText}`})}catch(e){P.value=S(`ai.imageConfig.connectionFailed`,{message:e.message})}finally{M.value=!1}}async function ue(){P.value=``;let e=await ae();e&&(P.value=e)}let de=D(()=>[{label:S(`ai.imageConfig.sizeSquare`),value:`1024x1024`},{label:S(`ai.imageConfig.sizeLandscape`),value:`1792x1024`},{label:S(`ai.imageConfig.sizePortrait`),value:`1024x1792`}]),fe=D(()=>[{label:S(`ai.imageConfig.qualityStandard`),value:`standard`},{label:S(`ai.imageConfig.qualityHd`),value:`hd`}]),pe=D(()=>[{label:S(`ai.imageConfig.styleNatural`),value:`natural`},{label:S(`ai.imageConfig.styleVivid`),value:`vivid`}]);return(e,n)=>(u(),p(`div`,ye,[j(`div`,be,l(A(S)(`ai.imageConfig.title`)),1),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.provider`)),1)]),_:1}),O(A(K),{modelValue:A(s),"onUpdate:modelValue":n[0]||=e=>g(s)?s.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(U).label),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(H).imageServiceOptions,e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.apiEndpoint`)),1)]),_:1}),E(j(`input`,{"onUpdate:modelValue":n[1]||=e=>g(c)?c.value=e:null,type:`url`,class:`w-full mt-1 rounded-md border bg-background p-2 transition-colors focus:border-primary focus:ring-2 focus:ring-primary`,placeholder:A(S)(`ai.imageConfig.apiEndpointPlaceholder`),readonly:A(s)!==`custom`},null,8,xe),[[b,A(c)]])]),A(s)==="default"?k(``,!0):(u(),p(`div`,Se,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.apiKey`)),1)]),_:1}),O(A(L),{modelValue:A(f),"onUpdate:modelValue":n[2]||=e=>g(f)?f.value=e:null,class:`w-full mt-1 focus:ring-2 focus:ring-primary focus:border-primary transition-colors`,placeholder:A(S)(`ai.imageConfig.apiKeyPlaceholder`)},null,8,[`modelValue`,`placeholder`])])),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.model`)),1)]),_:1}),O(R,{modelValue:A(d),"onUpdate:modelValue":n[3]||=e=>g(d)?d.value=e:null,"preset-models":A(U).models,"discovered-models":A(te),placeholder:A(S)(`ai.imageConfig.modelPlaceholder`),"select-placeholder":A(S)(`ai.imageConfig.selectModel`),"discover-label":A(S)(`ai.imageConfig.discoverModels`),"discovering-label":A(S)(`ai.imageConfig.discoveringModels`),"need-config-label":A(S)(`ai.imageConfig.discoverModelsNeedConfig`),discovering:A(B),"can-discover":A(ie),"show-discover":A(s)!==A(t),onDiscover:ue},null,8,[`modelValue`,`preset-models`,`discovered-models`,`placeholder`,`select-placeholder`,`discover-label`,`discovering-label`,`need-config-label`,`discovering`,`can-discover`,`show-discover`])]),j(`div`,null,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.imageSize`)),1)]),_:1}),O(A(K),{modelValue:A(_),"onUpdate:modelValue":n[4]||=e=>g(_)?_.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(de).find(e=>e.value===A(_))?.label||A(_)),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(de),e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),A(d).includes(`dall-e`)?(u(),p(`div`,Ce,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.imageQuality`)),1)]),_:1}),O(A(K),{modelValue:A(v),"onUpdate:modelValue":n[5]||=e=>g(v)?v.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(fe).find(e=>e.value===A(v))?.label||A(v)),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(fe),e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])])):k(``,!0),A(d).includes(`dall-e`)?(u(),p(`div`,Z,[O(A(G),{class:`mb-1 block text-sm font-medium`},{default:C(()=>[o(l(A(S)(`ai.imageConfig.imageStyle`)),1)]),_:1}),O(A(K),{modelValue:A(y),"onUpdate:modelValue":n[6]||=e=>g(y)?y.value=e:null},{default:C(()=>[O(A(Y),{class:`w-full`},{default:C(()=>[O(A(J),null,{default:C(()=>[o(l(A(pe).find(e=>e.value===A(y))?.label||A(y)),1)]),_:1})]),_:1}),O(A(X),null,{default:C(()=>[(u(!0),p(x,null,m(A(pe),e=>(u(),h(A(q),{key:e.value,value:e.value},{default:C(()=>[o(l(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])])):k(``,!0),A(s)==="default"?(u(),p(`div`,we,[O(A(V),{class:`h-4 w-4 text-blue-500 mt-0.5 flex-shrink-0`}),j(`div`,Te,[j(`p`,Ee,l(A(S)(`ai.imageConfig.defaultServiceTitle`)),1),j(`p`,null,l(A(S)(`ai.imageConfig.defaultServiceDesc`)),1)])])):A(s)===`custom`?(u(),p(`div`,De,[O(A(V),{class:`h-4 w-4 text-orange-500 mt-0.5 flex-shrink-0`}),j(`div`,Oe,[j(`p`,ke,l(A(S)(`ai.imageConfig.customServiceTitle`)),1),j(`p`,null,l(A(S)(`ai.imageConfig.customServiceDesc`)),1),j(`p`,Ae,l(A(S)(`ai.imageConfig.endpointExample`)),1)])])):k(``,!0),j(`div`,je,[O(A(W),{type:`button`,class:`flex-1 min-w-[100px]`,onClick:se},{default:C(()=>[o(l(A(S)(`ai.imageConfig.saveConfig`)),1)]),_:1}),O(A(W),{variant:`outline`,type:`button`,class:`flex-1 min-w-[80px]`,onClick:ce},{default:C(()=>[o(l(A(S)(`common.clear`)),1)]),_:1}),O(A(W),{size:`sm`,variant:`outline`,class:`flex-1 min-w-[100px]`,disabled:A(M),onClick:le},{default:C(()=>[o(l(A(M)?A(S)(`common.testing`):A(S)(`common.testConnection`)),1)]),_:1},8,[`disabled`])]),A(P)?(u(),p(`div`,Me,l(A(P)),1)):k(``,!0)]))}}),Pe={class:`space-x-1 flex items-center`},Fe={key:0,class:`mb-4 w-full border rounded-md p-4 max-h-[60vh] overflow-y-auto flex-shrink-0`},Ie={key:1,class:`flex flex-col space-y-4 flex-shrink-0`},Le={class:`flex items-center justify-center bg-gray-50 dark:bg-gray-800 rounded-lg min-h-[250px] sm:min-h-[300px]`},Re={key:0,class:`flex flex-col items-center gap-4`},ze={class:`text-sm text-muted-foreground`},Be={key:1,class:`w-full flex flex-col space-y-3`},Ve={key:0,class:`flex items-center justify-between p-2 bg-muted/20 rounded`},He={class:`text-sm text-muted-foreground`},Ue={class:`flex items-center justify-center p-2 sm:p-4`},We=[`aria-label`],Ge=[`src`],Ke={class:`absolute inset-0 bg-black/0 group-hover:bg-black/10 rounded-lg flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none`},qe={class:`bg-black/70 text-white px-3 py-1 rounded-md text-sm`},Je={class:`px-2 sm:px-4 py-2 bg-muted/10 rounded space-y-1`},Ye={class:`text-xs text-muted-foreground text-center`},Xe={class:`text-xs text-muted-foreground break-words text-center`},Ze={class:`font-medium`},Qe={class:`ml-1`},$e={class:`text-xs text-muted-foreground text-center`},et={class:`font-medium`},tt={class:`font-medium`},nt={class:`flex flex-wrap justify-center gap-2 p-2 sm:p-4 bg-muted/20 border-t border-border rounded-b-lg`},rt={key:2,class:`relative flex-shrink-0 mt-auto`},it={class:`bg-background border-border flex flex-col items-baseline gap-2 border rounded-xl px-3 py-2 pr-12 shadow-inner`},at=[`aria-label`,`onKeydown`],ot=[`src`,`alt`],st=36e5,ct=he(c({__name:`AIImageGeneratorPanel`,props:{open:{type:Boolean}},emits:[`update:open`],setup(t,{emit:n}){let r=t,c=n,{t:m}=ee(),g=me(),{editor:b}=T(g),{toggleAIDialog:S}=e(),E=w(r.open);a(()=>r.open,e=>{E.value=e,e&&Z()}),a(E,e=>c(`update:open`,e));let D=w(!1),F=w(!1),I=w(``),L=w([]),R=w([]),z=w([]),V=w(null),G=w(0),K=w(Date.now()),q=null,J=ve(),{apiKey:Y,endpoint:X,model:he,type:ye,size:be,quality:xe,style:Se}=T(J);function Ce(e){return Date.now()-e>st}async function Z(){let e=await i.getJSON(`ai_generated_images`,[]),t=await i.getJSON(`ai_image_timestamps`,[]);if(e.length===0)return;let n=await i.getJSON(`ai_image_prompts`,[]);if(t.length===0){L.value=[],R.value=[],z.value=[],await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`);return}let r=[];t.forEach((e,t)=>{Ce(e)||r.push(t)});let a=r.map(t=>e[t]).filter(Boolean),o=r.map(e=>n[e]||``).filter((e,t)=>a[t]),s=r.map(e=>t[e]).filter(Boolean);L.value=a,R.value=o,z.value=s,a.length<e.length&&(a.length>0?(await i.setJSON(`ai_generated_images`,a),await i.setJSON(`ai_image_prompts`,o),await i.setJSON(`ai_image_timestamps`,s)):(await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`)))}M(async()=>{await Z();let e=L.value.length,t=R.value.length,n=z.value.length;e<Math.max(e,t,n)?(L.value=[],R.value=[],z.value=[],await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`)):(t<e&&(R.value=[...R.value,...Array.from({length:e-t}).fill(``)]),n<e&&(z.value=[...z.value,...Array.from({length:e-n},()=>Date.now())]));let r=0;q=setInterval(()=>{K.value=Date.now(),r++,r%30==0&&L.value.length>0&&Z()},1e3)}),f(()=>{q!==null&&(clearInterval(q),q=null)});function we(){D.value=!1}function Te(){c(`update:open`,!1),setTimeout(()=>{S(!0)},100)}function Ee(e){e.isComposing||e.keyCode===229||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),Oe())}async function De(e,t=!1){if(!e.trim()||F.value)return;F.value=!0,V.value=new AbortController;let n=re(Y.value,ye.value);try{let r=ne(X.value,`image`),a={model:he.value,prompt:e.trim(),size:be.value,n:1};he.value.includes(`dall-e`)&&(a.quality=xe.value,a.style=Se.value);let o=await window.fetch(r,{method:`POST`,headers:n,body:JSON.stringify(a),signal:V.value.signal});if(!o.ok){let e=await o.text();throw Error(`${o.status}: ${e}`)}let s=await o.json();if(s.data&&s.data.length>0){let n=s.data[0].url||s.data[0].b64_json;if(n){let r=n.startsWith(`data:`)||n.startsWith(`http`)?n:`data:image/png;base64,${n}`,a=Date.now();L.value.unshift(r),R.value.unshift(e.trim()),z.value.unshift(a),G.value=0,L.value.length>20&&(L.value=L.value.slice(0,20),R.value=R.value.slice(0,20),z.value=z.value.slice(0,20)),await i.setJSON(`ai_generated_images`,L.value),await i.setJSON(`ai_image_prompts`,R.value),await i.setJSON(`ai_image_timestamps`,z.value),t&&(I.value=``)}}else throw Error(m(`ai.image.noValidData`))}catch(e){e.name!==`AbortError`&&N.error(m(`ai.image.generateFailed`,{message:e.message}))}finally{F.value=!1,V.value=null}}async function Oe(){I.value.trim()&&!F.value&&await De(I.value,!0)}function ke(){V.value&&=(V.value.abort(),null),F.value=!1}async function Ae(){L.value=[],R.value=[],z.value=[],G.value=0,await i.remove(`ai_generated_images`),await i.remove(`ai_image_prompts`),await i.remove(`ai_image_timestamps`)}async function je(e,t){try{let n=await fetch(e);if(!n.ok)throw Error(`Failed to download image: ${n.status}`);let r=await n.blob(),i=window.URL.createObjectURL(r),a=document.createElement(`a`);a.href=i;let o=R.value[t]||``,s=o?o.substring(0,20).replace(/[^\w\s-]/g,``).replace(/\s+/g,`-`):`no-prompt`;a.download=`ai-image-${t+1}-${s}.png`,document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(i),N.success(m(`ai.image.downloadStarted`))}catch{N.error(m(`ai.image.downloadFailed`))}}async function Me(e){try{await _e(e),N.success(m(`common.copiedToClipboard`))}catch{N.error(m(`ai.image.copyFailed`))}}function ct(){let e=R.value[G.value];e&&lt(e)}async function lt(e){await De(e)}function ut(){G.value>0&&G.value--}function dt(){G.value<L.value.length-1&&G.value++}function ft(e){if(b.value)try{let t=R.value[G.value]||``,n=`![${t.trim()?t.trim().substring(0,30).replace(/\n/g,` `):m(`ai.image.aiGeneratedAlt`)}](${e})`,r=b.value.state.selection.main.head;b.value.dispatch({changes:{from:r,insert:n},selection:{anchor:r+n.length}}),b.value.focus(),N.success(m(`ai.image.insertedToEditor`)),E.value=!1}catch{N.error(m(`ai.image.insertFailed`))}}let Q=w(``),pt=w(null);a(Q,async e=>{e&&(ce(),await d(),pt.value?.focus())});function mt(e){e&&(Q.value=e)}function $(){Q.value=``}function ht(e){if(!z.value[e])return m(`common.unknown`);let t=z.value[e],n=st-(K.value-t);if(n<=0)return m(`ai.image.expired`);let r=Math.floor(n/6e4),i=Math.floor(n%6e4/1e3);return r>0?m(`ai.image.timeRemaining`,{minutes:r,seconds:i}):m(`ai.image.secondsRemaining`,{seconds:i})}function gt(e){if(!z.value[e])return`text-muted-foreground`;let t=z.value[e],n=st-(K.value-t);return n<=0?`text-red-500 font-medium`:n<6e5?`text-orange-500 font-medium`:n<18e5?`text-yellow-600`:`text-green-600`}return(e,t)=>(u(),p(x,null,[O(A(le),{open:E.value,"onUpdate:open":t[10]||=e=>E.value=e},{default:C(()=>[O(A(de),{class:`bg-card text-card-foreground flex flex-col w-[95vw] max-h-[90vh] sm:max-h-[85vh] sm:max-w-4xl overflow-y-auto`},{default:C(()=>[O(A(ue),{class:`space-y-1 flex flex-col items-start`},{default:C(()=>[j(`div`,Pe,[O(A(fe),null,{default:C(()=>[o(l(A(m)(`ai.image.title`)),1)]),_:1}),O(A(W),{title:D.value?A(m)(`ai.image.title`):A(m)(`ai.image.configParams`),"aria-label":D.value?A(m)(`ai.image.title`):A(m)(`ai.image.configParams`),variant:`ghost`,size:`icon`,onClick:t[0]||=e=>D.value=!D.value},{default:C(()=>[D.value?(u(),h(A(B),{key:0,class:`h-4 w-4`})):(u(),h(A(H),{key:1,class:`h-4 w-4`}))]),_:1},8,[`title`,`aria-label`]),O(A(W),{title:A(m)(`ai.image.chat`),"aria-label":A(m)(`ai.image.chat`),variant:`ghost`,size:`icon`,onClick:t[1]||=e=>Te()},{default:C(()=>[O(A(ae),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`]),O(A(W),{title:A(m)(`ai.image.clearImages`),"aria-label":A(m)(`ai.image.clearImages`),variant:`ghost`,size:`icon`,onClick:Ae},{default:C(()=>[O(A(U),{class:`h-4 w-4`})]),_:1},8,[`title`,`aria-label`])]),O(A(pe),{class:`text-muted-foreground text-sm`},{default:C(()=>[o(l(A(m)(`ai.image.description`)),1)]),_:1})]),_:1}),D.value?(u(),p(`div`,Fe,[O(Ne,{onSaved:we})])):k(``,!0),!D.value&&(F.value||L.value.length>0)?(u(),p(`div`,Ie,[j(`div`,Le,[F.value?(u(),p(`div`,Re,[O(A(ie),{class:`h-8 w-8 animate-spin text-primary`}),j(`p`,ze,l(A(m)(`ai.image.generating`)),1),O(A(W),{variant:`outline`,size:`sm`,onClick:ke},{default:C(()=>[o(l(A(m)(`ai.image.cancelGeneration`)),1)]),_:1})])):L.value.length>0?(u(),p(`div`,Be,[L.value.length>1?(u(),p(`div`,Ve,[O(A(W),{variant:`outline`,size:`sm`,disabled:G.value<=0,onClick:ut},{default:C(()=>[o(l(A(m)(`ai.image.previous`)),1)]),_:1},8,[`disabled`]),j(`span`,He,l(G.value+1)+` / `+l(L.value.length),1),O(A(W),{variant:`outline`,size:`sm`,disabled:G.value>=L.value.length-1,onClick:dt},{default:C(()=>[o(l(A(m)(`ai.image.next`)),1)]),_:1},8,[`disabled`])])):k(``,!0),j(`div`,Ue,[j(`div`,{role:`button`,tabindex:`0`,class:`relative group cursor-pointer max-w-lg inline-flex justify-center`,"aria-label":A(m)(`ai.image.clickToViewLarge`),onClick:t[2]||=e=>mt(L.value[G.value]),onKeydown:[t[3]||=_(v(e=>mt(L.value[G.value]),[`prevent`]),[`enter`]),t[4]||=_(v(e=>mt(L.value[G.value]),[`prevent`]),[`space`])]},[j(`img`,{src:L.value[G.value],alt:``,"aria-hidden":`true`,class:`max-w-full h-[300px] object-contain rounded-lg shadow-lg border border-border transition-transform hover:scale-105`},null,8,Ge),j(`div`,Ke,[j(`div`,qe,l(A(m)(`ai.image.clickToViewLarge`)),1)])],40,We)]),j(`div`,Je,[j(`p`,Ye,l(A(m)(`ai.image.size`))+`: `+l(A(be)),1),j(`div`,Xe,[j(`span`,Ze,l(A(m)(`ai.image.prompt`))+`:`,1),j(`span`,Qe,l(R.value[G.value]||A(m)(`ai.image.noPrompt`)),1)]),j(`div`,$e,[j(`span`,et,l(A(m)(`ai.image.remainingValidity`))+`:`,1),j(`span`,{class:s([`ml-1`,gt(G.value)])},l(ht(G.value)),3),j(`span`,tt,l(A(m)(`ai.image.downloadReminder`)),1)])]),j(`div`,nt,[O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:t[5]||=e=>ft(L.value[G.value])},{default:C(()=>[O(A(B),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`common.insert`)),1)]),_:1}),O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:t[6]||=e=>je(L.value[G.value],G.value)},{default:C(()=>[O(A(te),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`common.download`)),1)]),_:1}),O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:t[7]||=e=>Me(L.value[G.value])},{default:C(()=>[O(A(P),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`common.copy`)),1)]),_:1}),O(A(W),{variant:`outline`,size:`sm`,class:`flex-shrink-0 bg-background text-xs sm:text-sm`,onClick:ct},{default:C(()=>[O(A(oe),{class:`h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2`}),o(` `+l(A(m)(`ai.image.regenerate`)),1)]),_:1})])])):k(``,!0)])])):k(``,!0),D.value?k(``,!0):(u(),p(`div`,rt,[j(`div`,it,[O(A(ge),{modelValue:I.value,"onUpdate:modelValue":t[8]||=e=>I.value=e,placeholder:A(m)(`ai.image.inputPlaceholder`),rows:`2`,class:`custom-scroll min-h-16 w-full resize-none border-none bg-transparent p-0 focus-visible:outline-hidden focus:outline-hidden focus-visible:ring-0 focus:ring-0 focus-visible:ring-offset-0 focus:ring-offset-0 focus-visible:ring-transparent focus:ring-transparent`,onKeydown:Ee},null,8,[`modelValue`,`placeholder`]),O(A(W),{disabled:!I.value.trim()&&!F.value,size:`icon`,class:`absolute bottom-3 right-3 rounded-full disabled:opacity-40 bg-primary hover:bg-primary/90 text-primary-foreground`,"aria-label":F.value?A(m)(`common.cancel`):A(m)(`ai.image.generate`),onClick:t[9]||=e=>F.value?ke():Oe()},{default:C(()=>[F.value?(u(),h(A(ie),{key:0,class:`h-4 w-4 animate-spin`})):(u(),h(A(B),{key:1,class:`h-4 w-4`}))]),_:1},8,[`disabled`,`aria-label`])])]))]),_:1})]),_:1},8,[`open`]),(u(),h(y,{to:`body`},[Q.value?(u(),p(`div`,{key:0,ref_key:`previewOverlayRef`,ref:pt,tabindex:`-1`,role:`dialog`,"aria-modal":`true`,"aria-label":A(m)(`ai.image.preview`),class:`fixed inset-0 z-[1000] bg-black/90 flex items-center justify-center`,onClick:[v($,[`self`]),t[11]||=v(()=>{},[`stop`])],onPointerdown:t[12]||=v(()=>{},[`stop`]),onKeydown:_(v($,[`stop`]),[`escape`])},[O(A(W),{variant:`ghost`,size:`icon`,"aria-label":A(m)(`ai.image.closePreview`),title:A(m)(`ai.image.closePreview`),class:`absolute top-4 right-4 text-white hover:bg-white/20 z-10`,onClick:v($,[`stop`])},{default:C(()=>[O(A(se),{class:`h-6 w-6`})]),_:1},8,[`aria-label`,`title`]),j(`img`,{src:Q.value,alt:A(m)(`ai.image.previewLarge`),class:`max-w-[95vw] max-h-[95vh] object-contain`,onClick:v($,[`stop`])},null,8,ot)],40,at)):k(``,!0)]))],64))}}),[[`__scopeId`,`data-v-27fb3ae1`]]);export{ct as default};