@pheem49/mint 1.17.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +6 -6
- package/Cargo.toml +2 -2
- package/README.md +8 -2
- package/Release_Note.md +222 -71
- package/crates/mint-cli/src/agent/diff_render.rs +66 -44
- package/crates/mint-cli/src/agent/live_status.rs +21 -4
- package/crates/mint-cli/src/agent/markdown_render.rs +342 -5
- package/crates/mint-cli/src/agent.rs +25 -10
- package/crates/mint-cli/src/commands/agent.rs +4 -92
- package/crates/mint-cli/src/commands/browser.rs +2 -15
- package/crates/mint-cli/src/commands/integrations.rs +3 -3
- package/crates/mint-cli/src/commands/mod.rs +0 -3
- package/crates/mint-cli/src/commands/tailnet_web.rs +1 -0
- package/crates/mint-cli/src/interactive/chat_tui/dialog.rs +572 -0
- package/crates/mint-cli/src/interactive/chat_tui/mod.rs +1427 -0
- package/crates/mint-cli/src/interactive/chat_tui/render.rs +1524 -0
- package/crates/mint-cli/src/interactive/chat_tui/selection.rs +401 -0
- package/crates/mint-cli/src/interactive/chat_tui/state.rs +1833 -0
- package/crates/mint-cli/src/interactive/chat_tui/tests.rs +3414 -0
- package/crates/mint-cli/src/interactive/chat_tui/thought.rs +202 -0
- package/crates/mint-cli/src/interactive/chat_tui/transcript.rs +728 -0
- package/crates/mint-cli/src/interactive/chat_tui/watermark.rs +148 -0
- package/crates/mint-cli/src/interactive/command_ui.rs +53 -5
- package/crates/mint-cli/src/interactive/composer.rs +186 -0
- package/crates/mint-cli/src/interactive/format.rs +78 -3
- package/crates/mint-cli/src/interactive/input_box.rs +61 -1
- package/crates/mint-cli/src/interactive/resume_picker.rs +367 -25
- package/crates/mint-cli/src/interactive/slash_commands.rs +648 -371
- package/crates/mint-cli/src/interactive/tool_activity.rs +93 -20
- package/crates/mint-cli/src/interactive.rs +37 -0
- package/crates/mint-cli/src/main.rs +6 -3
- package/crates/mint-cli/src/markdown.rs +2 -37
- package/crates/mint-cli/src/onboard.rs +700 -282
- package/crates/mint-cli/src/setup.rs +1342 -624
- package/crates/mint-cli/src/terminal_theme.rs +159 -35
- package/crates/mint-cli/tests/library_intake.rs +1 -0
- package/crates/mint-core/src/agent/chat/anthropic.rs +318 -0
- package/crates/mint-core/src/agent/chat/custom.rs +149 -0
- package/crates/mint-core/src/agent/chat/gemini.rs +518 -0
- package/crates/mint-core/src/agent/chat/mod.rs +857 -0
- package/crates/mint-core/src/agent/chat/ollama.rs +321 -0
- package/crates/mint-core/src/agent/chat/openai.rs +582 -0
- package/crates/mint-core/src/agent/chat/streaming.rs +469 -0
- package/crates/mint-core/src/agent/chat/tests.rs +1479 -0
- package/crates/mint-core/src/agent/memory.rs +56 -2
- package/crates/mint-core/src/agent/tasks.rs +2 -2
- package/crates/mint-core/src/api_server/routes/chat.rs +24 -2
- package/crates/mint-core/src/api_server/routes/gemini_live.rs +14 -1
- package/crates/mint-core/src/api_server/routes/html_preview.rs +1 -8
- package/crates/mint-core/src/api_server/routes/sessions.rs +21 -0
- package/crates/mint-core/src/avatar_bridge.rs +0 -22
- package/crates/mint-core/src/browser/cdp.rs +10 -4
- package/crates/mint-core/src/browser/headless.rs +582 -0
- package/crates/mint-core/src/browser/input.rs +7 -62
- package/crates/mint-core/src/browser/interact.rs +0 -14
- package/crates/mint-core/src/browser/mod.rs +8 -29
- package/crates/mint-core/src/browser/navigate.rs +2 -36
- package/crates/mint-core/src/browser/runtime.rs +2 -4
- package/crates/mint-core/src/browser/session.rs +50 -466
- package/crates/mint-core/src/browser/workflow.rs +142 -32
- package/crates/mint-core/src/cron/store.rs +2 -2
- package/crates/mint-core/src/integrations/mcp.rs +6 -8
- package/crates/mint-core/src/lib.rs +0 -5
- package/crates/mint-core/src/media/gemini_live.rs +636 -86
- package/crates/mint-core/src/media/library/migration.rs +26 -0
- package/crates/mint-core/src/media/library/tests.rs +1 -1
- package/crates/mint-core/src/media/library/thumbnails.rs +8 -2
- package/crates/mint-core/src/media/pictures.rs +1 -1
- package/crates/mint-core/src/media/tool_images.rs +92 -1
- package/crates/mint-core/src/mods/manager.rs +101 -35
- package/crates/mint-core/src/orchestration/context_render.rs +441 -24
- package/crates/mint-core/src/orchestration/decision_parsing.rs +531 -16
- package/crates/mint-core/src/orchestration/full_skill_result_tests.rs +12 -0
- package/crates/mint-core/src/orchestration/loop_guard.rs +145 -0
- package/crates/mint-core/src/orchestration/mcp_outcome_tests.rs +864 -0
- package/crates/mint-core/src/orchestration/memory_skill.rs +88 -28
- package/crates/mint-core/src/orchestration/mod.rs +320 -4249
- package/crates/mint-core/src/orchestration/reliability.rs +67 -27
- package/crates/mint-core/src/orchestration/review_regressions.rs +5 -0
- package/crates/mint-core/src/orchestration/tests.rs +1665 -0
- package/crates/mint-core/src/orchestration/tools/dispatch.rs +967 -0
- package/crates/mint-core/src/orchestration/tools/files.rs +1 -0
- package/crates/mint-core/src/orchestration/tools/mod.rs +5 -1
- package/crates/mint-core/src/orchestration/tools/planning.rs +102 -42
- package/crates/mint-core/src/orchestration/tools/shell.rs +129 -58
- package/crates/mint-core/src/orchestration/truncation.rs +170 -13
- package/crates/mint-core/src/orchestration/types.rs +648 -0
- package/crates/mint-core/src/orchestration/verification.rs +0 -3
- package/crates/mint-core/src/orchestration/workspace_helpers.rs +24 -6
- package/crates/mint-core/src/prompts/agent.rs +52 -76
- package/crates/mint-core/src/prompts/tool_catalog.rs +8 -151
- package/crates/mint-core/src/search/files.rs +20 -0
- package/crates/mint-core/src/slash/mod.rs +228 -265
- package/crates/mint-core/src/slash/models.rs +6 -1
- package/crates/mint-core/src/system/bg_shell.rs +1 -0
- package/crates/mint-core/src/system/config.rs +176 -34
- package/crates/mint-mod-runtime/src/lib.rs +37 -23
- package/out/web/assets/ArtifactPreviewPanel-Cx6BVOOF.js +2 -0
- package/out/web/assets/CalculationCard-D2E74u5q.js +1 -0
- package/out/web/assets/CliSessionsView-ZbdtSjvK.css +1 -0
- package/out/web/assets/{CliSessionsView-MI8kXMAb.js → CliSessionsView-z5i6qGyb.js} +1 -1
- package/out/web/assets/CodeReviewPage-BK2bOScd.css +1 -0
- package/out/web/assets/CodeReviewPage-Dp6zHuHu.js +2 -0
- package/out/web/assets/{CommandPalette-BD8SlTE5.js → CommandPalette-DaKlzbKs.js} +1 -1
- package/out/web/assets/ImageGenCard-BMCJHP9O.js +1 -0
- package/out/web/assets/ImageSearchCard-Cld_SOUg.js +1 -0
- package/out/web/assets/{ImageStudioPanel-BP7N4rLr.js → ImageStudioPanel-B5N7TjeB.js} +1 -1
- package/out/web/assets/LibraryPage-CMB89rJ0.css +1 -0
- package/out/web/assets/LibraryPage-DbZEi4W_.js +2 -0
- package/out/web/assets/LinkedFoldersView-9B9DIPoZ.js +1 -0
- package/out/web/assets/{McpRegistryPicker-CoS83vtc.js → McpRegistryPicker-DnXPlzI7.js} +1 -1
- package/out/web/assets/McpServersView-CiNBNUl4.js +1 -0
- package/out/web/assets/MermaidCard-BBDNEXbY.js +2 -0
- package/out/web/assets/MintDashboard-C_UYPoNV.js +119 -0
- package/out/web/assets/MintDashboard-DTd8C_c8.css +1 -0
- package/out/web/assets/PlanCard-C2x5pajq.js +1 -0
- package/out/web/assets/{PluginsView-jBYmcKh4.js → PluginsView-DoTg9MVa.js} +1 -1
- package/out/web/assets/RewindModal-B5oowrR0.js +1 -0
- package/out/web/assets/{ScheduledTasksView-5uw9-V9H.js → ScheduledTasksView-BD5DVPkZ.js} +1 -1
- package/out/web/assets/{SelectField-DXBQtrUK.js → SelectField-Cy6CghrU.js} +1 -1
- package/out/web/assets/SettingsWindow-BYl_oCFh.js +4 -0
- package/out/web/assets/SettingsWindow-Ckcgnjt8.css +1 -0
- package/out/web/assets/{SkillsView-C-gp9J7m.js → SkillsView-CIeWwq5z.js} +1 -1
- package/out/web/assets/StockCard-DxUciKyp.js +1 -0
- package/out/web/assets/ToolSurfacePage-qBgs_VHq.css +1 -0
- package/out/web/assets/ToolSurfacePage-saVbVrkE.js +38 -0
- package/out/web/assets/{UiFeatureCard-6BwxTOCe.js → UiFeatureCard-CdY0hGWy.js} +1 -1
- package/out/web/assets/{UiGridCard-DvZcLNxb.js → UiGridCard-BBK3I5hC.js} +1 -1
- package/out/web/assets/UiMockupWidget-CpR9EDuc.js +1 -0
- package/out/web/assets/{VeoStudioPanel-DOj7_WR3.css → VeoStudioPanel-9kU9YLEN.css} +1 -1
- package/out/web/assets/{VeoStudioPanel-DfsOJKv0.js → VeoStudioPanel-Co6-wEWM.js} +2 -2
- package/out/web/assets/WeatherCard-Buzi7Vfu.js +1 -0
- package/out/web/assets/WorkspacePdfPreview-Bi8Zzyir.js +2 -0
- package/out/web/assets/{abnfDiagram-VCTEODGH-BOo3Ckng.js → abnfDiagram-VCTEODGH-CMfR95N2.js} +1 -1
- package/out/web/assets/{architecture-7GRP2DOG-ZOwheW3n.js → architecture-7GRP2DOG-DhAM4HyO.js} +1 -1
- package/out/web/assets/{architectureDiagram-5GKGNRK7-DC2FDzVd.js → architectureDiagram-5GKGNRK7-Yk3TUJ_F.js} +1 -1
- package/out/web/assets/{blockDiagram-I7D4REHJ-BrKFWdAH.js → blockDiagram-I7D4REHJ-X9fBgJik.js} +1 -1
- package/out/web/assets/{c4Diagram-7LVT6UL2-BHTHK1Yd.js → c4Diagram-7LVT6UL2-Bk9x7N-8.js} +1 -1
- package/out/web/assets/{chunk-4HAMMTFA-BYFkZwNj.js → chunk-4HAMMTFA-Dx5fk1_0.js} +1 -1
- package/out/web/assets/{chunk-75Z2AOVW-BSKfSKSA.js → chunk-75Z2AOVW-BszTQoM4.js} +1 -1
- package/out/web/assets/{chunk-DU6HZSFF-vIhsiW6n.js → chunk-DU6HZSFF-DK-As3rk.js} +1 -1
- package/out/web/assets/{chunk-F27PBJKO-BlYpW9xq.js → chunk-F27PBJKO-LmncZZIS.js} +1 -1
- package/out/web/assets/{chunk-GMAD6QVW-BIBz_Ug5.js → chunk-GMAD6QVW-DSQ_sDRJ.js} +1 -1
- package/out/web/assets/{chunk-GVQU2GXP-NPSHxeqC.js → chunk-GVQU2GXP-Cno3ulje.js} +1 -1
- package/out/web/assets/{chunk-IMKFNOWR-YlJK8_Fp.js → chunk-IMKFNOWR-bIzfY9Jc.js} +1 -1
- package/out/web/assets/{chunk-L3NEJ4N5-DMYi4-af.js → chunk-L3NEJ4N5-Dl6eOa0D.js} +1 -1
- package/out/web/assets/{chunk-OSK3NFVY-Begd3-jA.js → chunk-OSK3NFVY-BaUGJ-cM.js} +1 -1
- package/out/web/assets/{chunk-P2QGCYS3-D1I4xFHN.js → chunk-P2QGCYS3-_066ndhH.js} +1 -1
- package/out/web/assets/{chunk-POPQ4Y6H-CafZZzNE.js → chunk-POPQ4Y6H-YT1AKhTv.js} +1 -1
- package/out/web/assets/{chunk-PWAF6VOD-Dwh6_Lnt.js → chunk-PWAF6VOD-CrEgDsxh.js} +1 -1
- package/out/web/assets/{chunk-SHT3W25Y-B0XrCSEb.js → chunk-SHT3W25Y-_KwaRLOl.js} +1 -1
- package/out/web/assets/{chunk-SVP7TREG-CxLsddxC.js → chunk-SVP7TREG-BQ1qb32L.js} +1 -1
- package/out/web/assets/{chunk-TICWLB2K-y156QInb.js → chunk-TICWLB2K-BDyehCtg.js} +1 -1
- package/out/web/assets/classDiagram-ZZMXUADV-BoSpzRCJ.js +1 -0
- package/out/web/assets/classDiagram-v2-VYDZK3BY-BoSpzRCJ.js +1 -0
- package/out/web/assets/{config-DqXJXeZM.css → config-2suVFPZg.css} +1 -1
- package/out/web/assets/config-CkRCdkxn.js +2 -0
- package/out/web/assets/{cynefin-OW5HDTMX-SMVvrLf-.js → cynefin-OW5HDTMX-Dl_31aaN.js} +1 -1
- package/out/web/assets/{cynefinDiagram-5FMLGOSQ-rZznN24T.js → cynefinDiagram-5FMLGOSQ-Bpir8jha.js} +1 -1
- package/out/web/assets/{dagre-GXQ25YYZ-BOToydFu.js → dagre-GXQ25YYZ-D9xu3nsq.js} +1 -1
- package/out/web/assets/{diagram-S7CK7UJ4-TMVaGQEJ.js → diagram-S7CK7UJ4-DeveoEeB.js} +1 -1
- package/out/web/assets/{diagram-UQ7AKVKN-C2JK-GP2.js → diagram-UQ7AKVKN-p4xWRESV.js} +1 -1
- package/out/web/assets/{diagram-VSXAHHWV-Cw8VSi2K.js → diagram-VSXAHHWV-C7qz9NDF.js} +1 -1
- package/out/web/assets/{diagram-VX7I27RA-DXp4fKk9.js → diagram-VX7I27RA-DRiCa3Vd.js} +1 -1
- package/out/web/assets/{diagram-Z3DM3KII-CzSicYiW.js → diagram-Z3DM3KII-Bt7zduQX.js} +1 -1
- package/out/web/assets/{ebnfDiagram-PWID7BFC-Dqj-zqPu.js → ebnfDiagram-PWID7BFC-DV9WpwdR.js} +1 -1
- package/out/web/assets/{erDiagram-RLTQ6QDP-DZwFZAuD.js → erDiagram-RLTQ6QDP-BJ_nwG2m.js} +1 -1
- package/out/web/assets/{eventmodeling-NTZA5JFV-C0O-Lvgp.js → eventmodeling-NTZA5JFV-BTBMrfVa.js} +1 -1
- package/out/web/assets/flowDiagram-HODETNUW-Cdlq3cJL.js +1 -0
- package/out/web/assets/{ganttDiagram-EL5Y4UJY-Da4ULXTl.js → ganttDiagram-EL5Y4UJY-DQLdsXrC.js} +1 -1
- package/out/web/assets/{gitGraph-4MIJSDKK-B9wNFZIP.js → gitGraph-4MIJSDKK-CL1OEOQ_.js} +1 -1
- package/out/web/assets/{gitGraphDiagram-WWUBYQGX-RjrhB0MP.js → gitGraphDiagram-WWUBYQGX-8cSi42H7.js} +1 -1
- package/out/web/assets/index-BocxnrDG.js +168 -0
- package/out/web/assets/index-yeh_r55a.css +1 -0
- package/out/web/assets/{info-A6RAGUB7-B3dfCpeY.js → info-A6RAGUB7-C1zsX5sc.js} +1 -1
- package/out/web/assets/{infoDiagram-27XIBGKW-QVWkLVx7.js → infoDiagram-27XIBGKW-DsRYtIyI.js} +1 -1
- package/out/web/assets/{ishikawaDiagram-5VMMS53U-CLFNIRI9.js → ishikawaDiagram-5VMMS53U-B2crwIXj.js} +1 -1
- package/out/web/assets/{journeyDiagram-3NMN7TZE-fgOQadYF.js → journeyDiagram-3NMN7TZE-BTH-GyVR.js} +1 -1
- package/out/web/assets/{kanban-definition-UXKFOSKX-G3Q_9g9O.js → kanban-definition-UXKFOSKX-BeRfCnuA.js} +1 -1
- package/out/web/assets/{mermaid-parser.core-v3Jm7nco.js → mermaid-parser.core-BJwgCBBc.js} +3 -3
- package/out/web/assets/{mermaid.core-DTEjLUA1.js → mermaid.core-CsDDodN8.js} +4 -4
- package/out/web/assets/{mindmap-definition-YA3MSWOX-C_D42_fF.js → mindmap-definition-YA3MSWOX-B42efOQ1.js} +1 -1
- package/out/web/assets/{modelManager-BPLycQrN.js → modelManager-B3ZFMh8v.js} +2 -2
- package/out/web/assets/{oauthManager-BUK7ic7q.js → oauthManager-Ch5Du2fF.js} +1 -1
- package/out/web/assets/{packet-AYTQ26CC-B-R-SHlF.js → packet-AYTQ26CC-B6xUyE6r.js} +1 -1
- package/out/web/assets/{pegDiagram-XKGWAZYB-Da2q_giz.js → pegDiagram-XKGWAZYB-1LabVycL.js} +1 -1
- package/out/web/assets/{pie-WAS4IAKB-BC8F0N7-.js → pie-WAS4IAKB-DJwo-nf_.js} +1 -1
- package/out/web/assets/{pieDiagram-E7YTZNPT-Iy9REJNC.js → pieDiagram-E7YTZNPT-icmAqzy4.js} +1 -1
- package/out/web/assets/{quadrantDiagram-AXDQQJYC-ztsiYw7h.js → quadrantDiagram-AXDQQJYC-CZ-wEx41.js} +1 -1
- package/out/web/assets/{radar-RG4KPBEZ-B_1P8Z_z.js → radar-RG4KPBEZ-D7d-Xriw.js} +1 -1
- package/out/web/assets/{railroad-74A4TZTK-DuTqczSo.js → railroad-74A4TZTK-viuhdYbs.js} +1 -1
- package/out/web/assets/{railroad-abnf-HS5TGJTU-Df29WLmp.js → railroad-abnf-HS5TGJTU-DNXiCNea.js} +1 -1
- package/out/web/assets/{railroad-ebnf-LZEXJU2U-ePFMo-qp.js → railroad-ebnf-LZEXJU2U-nkSu1-0C.js} +1 -1
- package/out/web/assets/{railroad-peg-WCYAUIDC-DYXLW4_E.js → railroad-peg-WCYAUIDC-BhbMeQzz.js} +1 -1
- package/out/web/assets/{railroadDiagram-O6MQD6OU-LStnZf2S.js → railroadDiagram-O6MQD6OU-CLpG1jUX.js} +1 -1
- package/out/web/assets/{requirementDiagram-BXWQKSXE-DmzonMH-.js → requirementDiagram-BXWQKSXE-kRDrvWrc.js} +1 -1
- package/out/web/assets/{sankeyDiagram-P5KCCOFB-B8vjmUU1.js → sankeyDiagram-P5KCCOFB-DxAwmq4x.js} +1 -1
- package/out/web/assets/{sequenceDiagram-WJ2MYXX4-CTnplOAX.js → sequenceDiagram-WJ2MYXX4-aLgY-6Wz.js} +1 -1
- package/out/web/assets/{stateDiagram-D77RDMKH-BFrIaLdI.js → stateDiagram-D77RDMKH-D5QWfOhp.js} +1 -1
- package/out/web/assets/stateDiagram-v2-MP3YSRHH-D6OiZoAP.js +1 -0
- package/out/web/assets/{swimlanes-42K2YHIH-BXGngUNU.js → swimlanes-42K2YHIH-CRs5UyA-.js} +1 -1
- package/out/web/assets/swimlanesDiagram-VR7AAH4N-UgEXIsV0.js +8 -0
- package/out/web/assets/syntaxHighlight-C-wAGT84.js +3 -0
- package/out/web/assets/{timeline-definition-24CTP7MA-CegH7n43.js → timeline-definition-24CTP7MA-Denqd9qb.js} +1 -1
- package/out/web/assets/{treeView-Q6P3EWNA-DTpJv2Tw.js → treeView-Q6P3EWNA-0my3Z3s4.js} +1 -1
- package/out/web/assets/{treemap-WGGIJYW6-i8M9iJU6.js → treemap-WGGIJYW6-B_EjkLYq.js} +1 -1
- package/out/web/assets/{vennDiagram-4TSXK5OY-Dpzo1S8U.js → vennDiagram-4TSXK5OY-DxVg3Ewr.js} +1 -1
- package/out/web/assets/{wardley-WFR3VGLG-BrNsgtfw.js → wardley-WFR3VGLG-CGD-Tj4p.js} +1 -1
- package/out/web/assets/{wardleyDiagram-VM6X3IG4-lQ92LFE1.js → wardleyDiagram-VM6X3IG4-CmfS39Xm.js} +1 -1
- package/out/web/assets/{xychartDiagram-S5SC5T6Z-BaOaEoBd.js → xychartDiagram-S5SC5T6Z-BVM9bKis.js} +1 -1
- package/out/web/index-web.html +2 -2
- package/out/web/index.html +2 -2
- package/package.json +2 -2
- package/shared-modules/CODEOWNERS +3 -3
- package/shared-modules/SDL2/SDL2_mixer.json +27 -0
- package/shared-modules/appstream/README.md +13 -0
- package/shared-modules/appstream/appstream-compose.json +111 -0
- package/shared-modules/dbus-glib/dbus-glib.json +2 -2
- package/shared-modules/libportal/libportal.json +23 -0
- package/shared-modules/linux-audio/fluidsynth2-static.json +2 -2
- package/shared-modules/linux-audio/fluidsynth2.json +2 -2
- package/shared-modules/linux-audio/libinstpatch.json +2 -2
- package/shared-modules/linux-audio/liblo-static.json +3 -0
- package/shared-modules/luajit/luajit.json +2 -2
- package/shared-modules/squashfs-tools/squashfs-tools.json +0 -3
- package/slash-commands.json +7 -2
- package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/src/renderer/shared/agentProgress.ts +51 -3
- package/src/renderer/shared/components/Settings/AutomationTab.tsx +2 -56
- package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +15 -1
- package/src/renderer/shared/components/Settings/GeneralTab.tsx +25 -12
- package/src/renderer/shared/components/Settings/ThemeTab.test.tsx +45 -0
- package/src/renderer/shared/components/Settings/ThemeTab.tsx +106 -3
- package/src/renderer/shared/components/activity/AgentActivityDrawer.tsx +67 -17
- package/src/renderer/shared/components/activity/AgentActivityTable.tsx +376 -134
- package/src/renderer/shared/components/activity/AskUserActivityCard.test.tsx +122 -0
- package/src/renderer/shared/components/activity/AskUserActivityCard.tsx +70 -0
- package/src/renderer/shared/components/activity/McpToolResults.tsx +39 -2
- package/src/renderer/shared/components/activity/SubagentDagView.tsx +7 -7
- package/src/renderer/shared/components/activity/ViewedImages.tsx +41 -2
- package/src/renderer/shared/components/app/ChunkErrorBoundary.tsx +3 -3
- package/src/renderer/shared/components/app/CommandPalette.tsx +7 -7
- package/src/renderer/shared/components/app/DesktopTitlebar.tsx +2 -2
- package/src/renderer/shared/components/app/MintDashboard.tsx +27 -17
- package/src/renderer/shared/components/app/ModalErrorBoundary.tsx +3 -3
- package/src/renderer/shared/components/cards/CalculationCard.tsx +3 -3
- package/src/renderer/shared/components/cards/ImageGenCard.tsx +2 -2
- package/src/renderer/shared/components/cards/ImageSearchCard.tsx +2 -2
- package/src/renderer/shared/components/cards/MermaidCard.tsx +1 -1
- package/src/renderer/shared/components/cards/PlanCard.test.tsx +41 -0
- package/src/renderer/shared/components/cards/PlanCard.tsx +32 -0
- package/src/renderer/shared/components/cards/ReleaseNotesCard.test.tsx +29 -0
- package/src/renderer/shared/components/cards/ReleaseNotesCard.tsx +137 -0
- package/src/renderer/shared/components/cards/StockCard.tsx +7 -7
- package/src/renderer/shared/components/cards/ToolResultCards.tsx +11 -3
- package/src/renderer/shared/components/cards/UiMockupWidget.tsx +4 -4
- package/src/renderer/shared/components/cards/WeatherCard.tsx +5 -5
- package/src/renderer/shared/components/chat/ApprovalCard.test.tsx +11 -0
- package/src/renderer/shared/components/chat/ApprovalCard.tsx +21 -2
- package/src/renderer/shared/components/chat/ArtifactCards.test.tsx +69 -0
- package/src/renderer/shared/components/chat/ArtifactCards.tsx +238 -0
- package/src/renderer/shared/components/chat/AttachedDocumentCard.test.tsx +39 -0
- package/src/renderer/shared/components/chat/AttachedDocumentCard.tsx +220 -0
- package/src/renderer/shared/components/chat/ChatCodeBlock.test.tsx +33 -0
- package/src/renderer/shared/components/chat/ChatCodeBlock.tsx +15 -1
- package/src/renderer/shared/components/chat/ChatMessageItem.test.tsx +40 -2
- package/src/renderer/shared/components/chat/ChatMessageItem.tsx +180 -34
- package/src/renderer/shared/components/chat/ChatModeSelector.css +227 -0
- package/src/renderer/shared/components/chat/ChatModeSelector.test.tsx +45 -0
- package/src/renderer/shared/components/chat/ChatModeSelector.tsx +198 -0
- package/src/renderer/shared/components/chat/ChatPanel.test.tsx +22 -0
- package/src/renderer/shared/components/chat/ChatPanel.tsx +227 -53
- package/src/renderer/shared/components/chat/DiffReviewModal.tsx +6 -6
- package/src/renderer/shared/components/chat/GeminiLiveOverlay.test.tsx +142 -1
- package/src/renderer/shared/components/chat/GeminiLiveOverlay.tsx +45 -3
- package/src/renderer/shared/components/chat/ModelSelectorPopover.tsx +42 -14
- package/src/renderer/shared/components/chat/RewindModal.tsx +10 -10
- package/src/renderer/shared/components/chat/SlashSuggestions.test.tsx +14 -0
- package/src/renderer/shared/components/chat/SourcesBlock.test.tsx +53 -0
- package/src/renderer/shared/components/chat/SourcesBlock.tsx +236 -90
- package/src/renderer/shared/components/chat/TurnFileChanges.test.tsx +45 -1
- package/src/renderer/shared/components/chat/TurnFileChanges.tsx +202 -169
- package/src/renderer/shared/components/extensions/CliSessionsView.tsx +5 -4
- package/src/renderer/shared/components/extensions/McpRegistryPicker.tsx +3 -3
- package/src/renderer/shared/components/studio/LibraryPage.tsx +48 -5
- package/src/renderer/shared/components/workspace/ArtifactPreviewPanel.tsx +125 -13
- package/src/renderer/shared/components/workspace/CodeReviewPage.test.tsx +50 -0
- package/src/renderer/shared/components/workspace/CodeReviewPage.tsx +77 -16
- package/src/renderer/shared/components/workspace/GitBranchSelector.tsx +78 -22
- package/src/renderer/shared/components/workspace/ToolSurfacePage.test.tsx +13 -0
- package/src/renderer/shared/components/workspace/ToolSurfacePage.tsx +48 -28
- package/src/renderer/shared/components/workspace/WorkspacePdfPreview.tsx +266 -47
- package/src/renderer/shared/components/workspace/WorkspacePreviewActions.test.tsx +18 -6
- package/src/renderer/shared/components/workspace/background-terminals.css +11 -11
- package/src/renderer/shared/constants/config.ts +1 -5
- package/src/renderer/shared/constants/models.test.ts +51 -0
- package/src/renderer/shared/constants/models.ts +139 -32
- package/src/renderer/shared/conversation/lifecycle.test.ts +91 -3
- package/src/renderer/shared/conversation/lifecycle.ts +104 -5
- package/src/renderer/shared/conversation/progressiveStream.test.ts +83 -0
- package/src/renderer/shared/conversation/progressiveStream.ts +219 -0
- package/src/renderer/shared/css/agent-observability.css +133 -0
- package/src/renderer/shared/css/chat-ui-cards.css +13 -13
- package/src/renderer/shared/css/code-review.css +63 -34
- package/src/renderer/shared/css/code-sessions.css +47 -18
- package/src/renderer/shared/css/collapsed-paste.css +1 -1
- package/src/renderer/shared/css/error-notice.css +1 -1
- package/src/renderer/shared/css/file-changes.css +165 -80
- package/src/renderer/shared/css/library.css +105 -10
- package/src/renderer/shared/css/management-views.css +1 -1
- package/src/renderer/shared/css/mcp-results.css +5 -5
- package/src/renderer/shared/css/model-selector.css +18 -18
- package/src/renderer/shared/css/mods.css +7 -7
- package/src/renderer/shared/css/notification-notice.css +2 -2
- package/src/renderer/shared/css/queued-messages.css +5 -5
- package/src/renderer/shared/css/settings/general.css +18 -13
- package/src/renderer/shared/css/settings/profile.css +5 -5
- package/src/renderer/shared/css/settings/theme.css +5 -5
- package/src/renderer/shared/css/slash-choice.css +2 -2
- package/src/renderer/shared/css/slash-suggestions.css +3 -3
- package/src/renderer/shared/css/sources-block.css +41 -2
- package/src/renderer/shared/css/tools-panel.css +2 -2
- package/src/renderer/shared/css/ui-tailwind.css +8 -0
- package/src/renderer/shared/css/veo-studio.css +2 -2
- package/src/renderer/shared/css/viewed-images.css +7 -7
- package/src/renderer/shared/platform.ts +2 -1
- package/src/renderer/shared/theme/themeManager.test.ts +17 -0
- package/src/renderer/shared/theme/themeManager.ts +21 -4
- package/src/renderer/shared/theme/themes.ts +54 -0
- package/src/renderer/shared/theme/tokens.css +6 -4
- package/src/renderer/shared/types.ts +1 -1
- package/src/renderer/shared/utils/agentActivity.test.ts +468 -2
- package/src/renderer/shared/utils/agentActivity.ts +602 -35
- package/src/renderer/shared/utils/artifactBrowser.test.ts +37 -32
- package/src/renderer/shared/utils/artifactBrowser.ts +17 -19
- package/src/renderer/shared/utils/attachedDocument.test.ts +73 -0
- package/src/renderer/shared/utils/attachedDocument.ts +49 -0
- package/src/renderer/shared/utils/fileIcons.test.ts +59 -0
- package/src/renderer/shared/utils/fileIcons.ts +149 -16
- package/src/renderer/shared/utils/markdown.tsx +72 -19
- package/src/renderer/shared/utils/markdown.webImages.test.tsx +16 -0
- package/src/renderer/shared/utils/mcpResults.test.tsx +29 -0
- package/src/renderer/shared/utils/slashCommandProcessor.ts +4 -1
- package/src/renderer/shared/utils/syntaxHighlight.test.tsx +11 -1
- package/src/renderer/shared/utils/syntaxHighlight.tsx +51 -3
- package/src/renderer/shared/utils/useGeminiLiveVoice.ts +324 -51
- package/src/renderer/shared/utils/workspaceDrag.test.ts +153 -0
- package/src/renderer/shared/utils/workspaceDrag.ts +142 -0
- package/src/renderer/shared/utils/workspaceMedia.ts +10 -2
- package/src/renderer/src/App.tsx +14 -8
- package/src/renderer/src/agentProgress.ts +1 -0
- package/src/renderer/src/components/ScreenPicker.css +1 -1
- package/src/renderer/src/components/WorkspacePanel.tsx +6 -5
- package/src/renderer/src/css/app-shell.css +4 -4
- package/src/renderer/src/css/chat.css +1261 -241
- package/src/renderer/src/css/desktop-tools.css +11 -11
- package/src/renderer/src/css/sidebar-workspace.css +2 -2
- package/src/renderer/src/css/tool-surfaces.css +12 -12
- package/src/renderer/src/index.css +38 -20
- package/src/renderer/src/tauri.ts +22 -2
- package/src/renderer/src-web/App.tsx +14 -0
- package/src/renderer/src-web/agentProgress.ts +1 -0
- package/src/renderer/src-web/css/app-shell.css +4 -4
- package/src/renderer/src-web/css/chat.css +1278 -190
- package/src/renderer/src-web/css/mobile.css +29 -13
- package/src/renderer/src-web/css/settings/mobile.css +2 -2
- package/src/renderer/src-web/css/sidebar-workspace.css +1 -1
- package/src/renderer/src-web/index.css +38 -20
- package/src/renderer/src-web/tauri.ts +22 -2
- package/src/renderer/tests/browserArtifacts.browser.tsx +1 -1
- package/src/renderer/tests/library.browser.tsx +3 -0
- package/src/renderer/tests/liveVoice.browser.html +1 -0
- package/src/renderer/tests/workspaceDrop.browser.tsx +1 -1
- package/src-tauri/src/app/lifecycle.rs +1 -14
- package/src-tauri/src/background/headless.rs +14 -8
- package/src-tauri/src/commands/conversation.rs +38 -0
- package/src-tauri/src/native/mod.rs +0 -1
- package/src-tauri/src/native/system.rs +4 -47
- package/crates/mint-cli/src/interactive/chat_tui.rs +0 -8855
- package/crates/mint-core/src/agent/chat.rs +0 -4394
- package/crates/mint-core/src/browser/lifecycle.rs +0 -291
- package/crates/mint-core/src/browser/logging.rs +0 -20
- package/crates/mint-core/src/orchestration/tools/browser.rs +0 -31
- package/out/web/assets/ArtifactPreviewPanel-S0dPfYFx.js +0 -2
- package/out/web/assets/CalculationCard-CRjP3E1j.js +0 -1
- package/out/web/assets/CliSessionsView-C3Br2v5Y.css +0 -1
- package/out/web/assets/CodeReviewPage-CUJceQme.css +0 -1
- package/out/web/assets/CodeReviewPage-VCUgPla_.js +0 -2
- package/out/web/assets/ImageGenCard-BCXxkVJX.js +0 -1
- package/out/web/assets/ImageSearchCard-N3yQOr8Z.js +0 -1
- package/out/web/assets/LibraryPage-DAxUTAg7.css +0 -1
- package/out/web/assets/LibraryPage-WlviRdR8.js +0 -2
- package/out/web/assets/LinkedFoldersView-CKRgroWK.js +0 -1
- package/out/web/assets/McpServersView-D3wHnuHg.js +0 -1
- package/out/web/assets/MermaidCard-NqrHdyJW.js +0 -2
- package/out/web/assets/MintDashboard-B2DJsDDO.css +0 -1
- package/out/web/assets/MintDashboard-COw_xol7.js +0 -63
- package/out/web/assets/RewindModal-DempuDod.js +0 -1
- package/out/web/assets/SettingsWindow-2YP3yj7s.js +0 -4
- package/out/web/assets/SettingsWindow-Dz8LQVgD.css +0 -1
- package/out/web/assets/StockCard-BDMCe7mx.js +0 -1
- package/out/web/assets/ToolSurfacePage-B0J_q0Jl.js +0 -38
- package/out/web/assets/ToolSurfacePage-CRIQ1owD.css +0 -1
- package/out/web/assets/UiMockupWidget-DD73QWg1.js +0 -1
- package/out/web/assets/WeatherCard-CPucIfq8.js +0 -1
- package/out/web/assets/WorkspacePdfPreview-Dx_lkjNu.js +0 -2
- package/out/web/assets/classDiagram-ZZMXUADV-BgJ5WtSp.js +0 -1
- package/out/web/assets/classDiagram-v2-VYDZK3BY-BgJ5WtSp.js +0 -1
- package/out/web/assets/config-CvIO5hkn.js +0 -2
- package/out/web/assets/flowDiagram-HODETNUW-uqCHJond.js +0 -1
- package/out/web/assets/index-BmpulIkg.js +0 -168
- package/out/web/assets/index-CkvBwhX_.css +0 -1
- package/out/web/assets/stateDiagram-v2-MP3YSRHH-uf3kdNW4.js +0 -1
- package/out/web/assets/swimlanesDiagram-VR7AAH4N-Y8q5bQce.js +0 -8
- package/shared-modules/libsecret/libsecret.json +0 -23
- package/shared-modules/libusb/libusb.json +0 -27
- package/shared-modules/lzo/lzo.json +0 -27
- package/src/renderer/src/components/BrowserShell.tsx +0 -108
- package/src/renderer/src/components/BrowserSuggestionsPopup.tsx +0 -91
- package/src/renderer/src/components/browser-shell.css +0 -185
- package/src-tauri/src/native/browser.rs +0 -252
|
@@ -1 +1 @@
|
|
|
1
|
-
.management-container{max-width:1200px;color:var(--text-main,#f8fafc);margin:0 auto;padding:32px 28px;font-family:inherit;animation:.3s ease-out mgFadeIn}@keyframes mgFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.management-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.mcp-management-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.mcp-search-wrapper{flex:0 400px;min-width:min(260px,100%)}.management-title-group{flex-direction:column;gap:4px;display:flex}.management-title{letter-spacing:-.02em;color:var(--text-main,#fff);align-items:center;gap:12px;margin:0;font-size:1.65rem;font-weight:700;display:flex}.management-title-icon{font-size:1.75rem;line-height:1}.management-subtitle{color:var(--text-muted,#94a3b8);margin:0;font-size:.92rem}.management-workspace-info{color:var(--text-muted,#94a3b8);align-items:center;gap:6px;margin-top:4px;font-size:.82rem;display:inline-flex}.management-workspace-label{font-weight:500}.management-workspace-path{border-radius:var(--radius-sm,4px);background:var(--bg-secondary,#ffffff0f);color:var(--text-main,#f8fafc);font-size:.8rem;font-family:var(--font-mono,monospace);word-break:break-all;padding:2px 6px}.management-workspace-none{color:var(--text-muted,#94a3b8);font-style:italic}.management-modal-source{color:var(--text-muted,#64748b);word-break:break-all;margin-top:6px;font-size:.8rem}.management-modal-source code{font-family:var(--font-mono,monospace);color:var(--text-muted,#94a3b8);font-size:.78rem}.management-primary-btn{background:var(--accent,#3b82f6);color:var(--text-on-accent);border-radius:var(--radius-lg);cursor:pointer;box-shadow:0 4px 14px var(--accent-glow,#2563eb47);border:none;align-items:center;gap:8px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.management-primary-btn:hover{background:var(--accent-hover,#60a5fa);box-shadow:0 6px 20px var(--accent-glow,#2563eb52);transform:translateY(-1px)}.management-primary-btn:active{transform:translateY(0)}.management-control-bar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.management-search-wrapper{flex:1;min-width:260px;position:relative}.management-search-icon{color:var(--text-muted,#64748b);pointer-events:none;font-size:.95rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.management-search-input{background:var(--input-bg,#0f172a99);border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-lg);width:100%;color:var(--text-main,#f8fafc);box-sizing:border-box;outline:none;padding:10px 14px 10px 42px;font-size:.9rem;transition:all .2s}.management-search-input:focus{border-color:var(--accent,#3b82f6);background:var(--surface-strong,#0f172ad9);box-shadow:0 0 0 3px var(--accent-glow,#3b82f633)}.management-filter-pills{background:var(--input-bg,#0f172a99);border-radius:var(--radius-lg);border:1px solid var(--border,#ffffff14);gap:4px;padding:4px;display:flex}.management-pill-btn{border-radius:var(--radius-md);color:var(--text-muted,#94a3b8);cursor:pointer;text-transform:none;background:0 0;border:none;padding:6px 14px;font-size:.85rem;font-weight:500;transition:all .2s}.management-pill-btn:hover{color:var(--text-main,#f8fafc)}.management-pill-btn.active{background:var(--accent,#3b82f6);color:var(--text-on-accent);box-shadow:0 2px 8px var(--accent-glow,#3b82f64d);font-weight:600}.schedule-inline-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.schedule-inline-word{color:var(--text-muted,#94a3b8);white-space:nowrap;font-size:.85rem}.schedule-repeat-select{width:auto;min-width:130px}.schedule-day-input{width:auto;min-width:90px}.schedule-time-input{width:auto;min-width:110px}.schedule-timezone-select{width:auto;min-width:180px;max-width:260px}.schedule-weekday-circles{gap:6px;display:flex}.management-pill-btn-circle{border:1px solid var(--border,#ffffff1a);background:var(--input-bg,#0f172a99);width:30px;height:30px;color:var(--text-muted,#94a3b8);cursor:pointer;border-radius:50%;flex:none;font-size:.78rem;font-weight:600;transition:all .2s}.management-pill-btn-circle:hover{color:var(--text-main,#f8fafc)}.management-pill-btn-circle.active{background:var(--accent,#3b82f6);border-color:var(--accent,#3b82f6);color:var(--text-on-accent);box-shadow:0 2px 8px var(--accent-glow,#3b82f64d)}.mgmt-list{border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);flex-direction:column;display:flex;overflow:hidden}.mgmt-row{background:var(--surface-bg,#1e293b66);border-top:1px solid var(--border,#ffffff0f);cursor:pointer;align-items:center;gap:16px;padding:13px 16px;transition:background .15s;display:flex}.mgmt-row:first-child{border-top:none}.mgmt-row:hover{background:var(--surface-strong,#1e293b9e)}.mgmt-row.is-disabled .mgmt-row-main{opacity:.5}.mgmt-row-main{flex:1;min-width:0}.mgmt-row-title{color:var(--text-main,#f8fafc);white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:600;overflow:hidden}.mgmt-row-meta{color:var(--text-muted,#94a3b8);flex-wrap:wrap;align-items:center;gap:8px;margin-top:3px;font-size:.78rem;display:flex}.mgmt-row-meta code{font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.74rem}.mgmt-row-sep{opacity:.4}.mgmt-row-sub{color:var(--text-muted,#94a3b8);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:.8rem;overflow:hidden}.mgmt-status{letter-spacing:.05em;text-transform:none;font-size:.72rem;font-weight:700}.mgmt-status.ok{color:#34d399}.mgmt-status.failed{color:#f87171}.mgmt-status.running{color:var(--interactive-fg)}.mgmt-empty{text-align:center;color:var(--text-muted,#94a3b8);padding:48px 20px;font-size:.88rem;line-height:1.7}.mgmt-empty p{margin:0}.linked-empty{text-align:center;max-width:760px;color:var(--text-muted);margin:clamp(28px,7vh,80px) auto 0}.linked-empty-icon{margin-bottom:18px;display:inline-flex}.linked-empty h2{color:var(--text-main);margin:0 0 10px;font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.3}.linked-empty>p{max-width:520px;margin:0 auto;font-size:.92rem;line-height:1.6}.linked-empty-steps{text-align:left;border-block:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:28px 0;display:grid}.linked-empty-steps>div{flex-direction:column;gap:7px;min-width:0;padding:18px 20px;display:flex}.linked-empty-steps>div+div{border-inline-start:1px solid var(--border)}.linked-empty-steps strong{color:var(--text-main);font-size:.86rem}.linked-empty-steps span{font-size:.82rem;line-height:1.5}.linked-empty-cli{margin-top:14px!important;font-size:.79rem!important}.linked-folder-row{cursor:default;align-items:flex-start}.linked-folder-heading,.linked-folder-actions,.linked-folder-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.linked-folder-heading .mgmt-row-title{white-space:normal;overflow-wrap:anywhere}.linked-folder-description,.linked-folder-note-snippet{color:var(--text-soft,var(--text-muted));overflow-wrap:anywhere;margin:8px 0 0;font-size:.82rem;line-height:1.45}.linked-folder-meta{color:var(--text-muted);margin-top:10px;font-size:.78rem}.linked-folder-note-snippet{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.linked-folder-error,.linked-field-error{color:var(--error,#f87171);margin:8px 0 0;font-size:.8rem;line-height:1.4}.linked-load-error{text-align:center;color:var(--text-main);padding:44px 20px}.linked-load-error p{margin:0 0 14px}.management-error-banner{border:1px solid var(--error,#f87171);border-radius:var(--radius-lg);color:var(--error,#f87171);overflow-wrap:anywhere;margin:0 0 14px;padding:10px 12px;font-size:.82rem;line-height:1.45}.linked-add-modal .management-error-banner,.management-modal-body .management-error-banner{margin:0}.linked-folder-actions{flex:none;justify-content:flex-end}.linked-add-modal{max-height:calc(100vh - 40px);overflow-y:auto}.linked-detail-modal{flex-direction:column;height:calc(100dvh - 40px);max-height:calc(100dvh - 40px);display:flex}.linked-detail-modal .management-modal-header,.linked-detail-modal .management-modal-footer{flex:none}.linked-detail-modal .management-modal-body{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.linked-detail-modal .management-modal-body>.mgmt-list{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:min(46vh,420px);overflow:hidden auto}.linked-note-row{cursor:default}.linked-note-preview{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--input-bg);margin-top:12px;padding:14px}.linked-note-preview p{color:var(--text-muted);margin:0}.linked-note-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:min(36vh,320px);font:inherit;margin:0;font-size:.83rem;line-height:1.6;overflow:auto}.linked-path-row{gap:8px;display:flex}.linked-path-row .management-input-field{flex:1;min-width:0}.linked-optional,.linked-field-hint{color:var(--text-muted);font-weight:400}.linked-optional{margin-inline-start:5px}.linked-field-hint{margin:0;font-size:.78rem;line-height:1.45}.linked-scope-note{border-inline-start:2px solid var(--accent);background:var(--input-bg);color:var(--text-soft,var(--text-muted));margin:2px 0 0;padding:12px 14px;font-size:.81rem;line-height:1.5}.linked-add-modal [aria-invalid=true]{border-color:var(--error,#f87171)}.linked-add-modal :is(button,input,textarea):focus-visible,.linked-folder-actions button:focus-visible,.linked-empty button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=680px){.linked-empty{margin-top:24px}.linked-empty-steps{text-align:center;grid-template-columns:1fr}.linked-empty-steps>div{padding:13px 10px}.linked-empty-steps>div+div{border-inline-start:0;border-block-start:1px solid var(--border)}.linked-folder-row{flex-direction:column}.linked-folder-actions{justify-content:flex-start;width:100%}}.mgmt-row-stack{flex-direction:column;gap:8px;display:flex}.mcp-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width<=640px){.mcp-catalog-grid{grid-template-columns:1fr}}.mcp-catalog-card{background:var(--surface-bg,#1e293b73);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);text-align:left;cursor:pointer;box-sizing:border-box;flex-direction:column;min-height:84px;padding:12px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.mcp-catalog-card:hover:not(:disabled){border-color:var(--accent,#3b82f6);background:var(--surface-strong,#1e293ba6);box-shadow:var(--shadow-md,0 8px 24px #00000038);transform:translateY(-1px)}.mcp-catalog-card.selected{box-shadow:0 0 0 1px var(--accent,#10b981), 0 4px 14px var(--accent-glow,#10b98133);border-color:var(--accent,#10b981)!important}.mcp-catalog-card-header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.mcp-catalog-card-title{color:var(--text-main,#f8fafc);flex:1;align-items:center;gap:6px;min-width:0;font-size:.92rem;font-weight:600;display:flex}.mcp-catalog-card-title .name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mcp-catalog-card-desc{color:var(--text-muted,#94a3b8);-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.45;display:-webkit-box;overflow:hidden}.mgmt-detail-grid{color:var(--text-muted,#94a3b8);grid-template-columns:max-content 1fr;gap:6px 16px;font-size:.85rem;display:grid}.mgmt-detail-grid>span:nth-child(odd){color:var(--text-muted,#64748b)}.mgmt-detail-grid code{color:var(--text-main,#cbd5e1);word-break:break-word;font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.8rem}.mgmt-prose{border:1px solid var(--border,#ffffff14);border-radius:var(--radius-lg);background:var(--input-bg,#0f172a59);max-height:340px;padding:2px 14px;overflow-y:auto}.management-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.management-card{background:var(--surface-bg,#1e293b73);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);-webkit-backdrop-filter:var(--glass-blur,blur(12px));backdrop-filter:var(--glass-blur,blur(12px));flex-direction:column;justify-content:space-between;padding:20px;transition:all .2s;display:flex;position:relative;overflow:hidden}.management-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent,#3b82f680), transparent);opacity:0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.management-card:hover{border-color:var(--accent,#3b82f6);box-shadow:var(--shadow-md,0 8px 24px #00000038), 0 0 12px var(--accent-glow,#3b82f626);background:var(--surface-strong,#1e293ba6);transform:translateY(-2px)}.management-card:hover:before{opacity:1}.management-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.management-card-title-group{align-items:center;gap:10px;display:flex}.management-card-icon{border-radius:var(--radius-lg);background:var(--accent-subtle,#3b82f626);border:1px solid var(--accent-border,#3b82f640);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.2rem;display:flex}.management-card-title{color:var(--text-main,#f8fafc);word-break:break-word;margin:0;font-size:1.05rem;font-weight:600}.management-card-title-badge{color:var(--interactive-fg);background:var(--accent-subtle,#10b9811f);border-radius:var(--radius-sm);border:1px solid var(--accent-border,#10b98140);padding:3px 10px;font-size:.88rem;font-weight:700}.management-badge{border-radius:var(--radius-sm);letter-spacing:.02em;flex-shrink:0;align-items:center;gap:6px;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-flex}.management-badge.active,.management-badge.connected{background:var(--status-success-bg);color:var(--status-success-fg);border:1px solid var(--status-success-border)}.management-badge.workspace{background:var(--accent-subtle,#3b82f626);color:var(--interactive-fg);border:1px solid var(--accent-border,#3b82f64d)}.management-badge.global{background:var(--status-purple-bg);color:var(--status-purple-fg);border:1px solid var(--status-purple-border)}.management-badge.inactive,.management-badge.disconnected{background:var(--bg-surface-soft);color:var(--text-muted,#94a3b8);border:1px solid var(--border-default)}.management-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.management-tag{letter-spacing:.06em;text-transform:none;flex-shrink:0;font-size:.7rem;font-weight:700}.management-tag.workspace{color:var(--interactive-fg)}.management-tag.global{color:var(--status-purple-fg)}.management-plugin-row{background:var(--surface-bg,#1e293b73);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);cursor:pointer;align-items:center;gap:14px;padding:12px 16px;transition:all .2s;display:flex}.management-plugin-row:hover{border-color:var(--accent,#3b82f6);background:var(--surface-strong,#1e293ba6);box-shadow:var(--shadow-md,0 8px 24px #00000038)}.management-plugin-info{flex:1;min-width:0}.management-plugin-name{color:var(--text-main,#f8fafc);align-items:center;gap:8px;font-size:.92rem;font-weight:600;display:flex}.management-plugin-desc{color:var(--text-muted,#94a3b8);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.8rem;overflow:hidden}.management-plugin-name .management-dot{background:var(--text-muted,#64748b)}.management-plugin-name .management-dot.connected{background:var(--status-success-fg)}.management-section-title{color:var(--text-main,#f8fafc);margin:0 0 12px;font-size:.95rem;font-weight:600}.mcp-image-input-setting{border:1px solid var(--border,#ffffff14);border-radius:var(--radius-lg,12px);background:var(--surface,#ffffff08);width:fit-content;max-width:min(100%,620px);color:var(--text-main,#f8fafc);cursor:pointer;align-items:flex-start;gap:10px;margin:0 0 28px;padding:12px 14px;font-size:.88rem;line-height:1.5;transition:border-color .18s,background-color .18s;display:flex}.mcp-image-input-setting:hover,.mcp-image-input-setting:focus-within{border-color:var(--accent,#3b82f6);background:var(--surface-hover,#ffffff0d)}.mcp-image-input-setting input{width:16px;height:16px;accent-color:var(--accent,#3b82f6);flex:none;margin:2px 0 0}.mcp-image-input-hint{color:var(--text-muted,#94a3b8)}@media (width<=640px){.mcp-management-actions{justify-content:flex-start;width:100%}.mcp-management-actions>button{flex:auto}.mcp-search-wrapper{flex:100%;min-width:0}.mcp-image-input-setting{width:auto;max-width:100%;margin-bottom:24px;font-size:.84rem}}.management-installed-row{flex-wrap:wrap;gap:12px;margin-bottom:28px;display:flex}.mcp-installed-section{margin-bottom:28px}.mcp-installed-section .management-section-title{margin-bottom:12px}.management-plugin-avatar{border-radius:var(--radius-lg);border:1px solid var(--border,#ffffff14);cursor:pointer;background:#ffffff0f;justify-content:center;align-items:center;width:52px;height:52px;padding:0;transition:all .2s;display:flex}.management-plugin-avatar:hover{border-color:var(--accent,#3b82f6);box-shadow:var(--shadow-sm,0 4px 14px #00000029);transform:translateY(-2px)}.management-plugin-avatar:focus-visible{outline:2px solid var(--accent,#3b82f6);outline-offset:3px;border-color:var(--accent,#3b82f6)}.management-plugin-icon-btn{border:1px solid var(--border,#ffffff24);width:30px;height:30px;color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.management-plugin-icon-btn:hover{border-color:var(--accent,#3b82f6);color:var(--interactive-fg);background:var(--accent-subtle,#3b82f61a)}.management-card-body{flex:1;margin-bottom:16px}.management-card-desc{color:var(--text-muted,#94a3b8);-webkit-line-clamp:3;line-clamp:3;white-space:pre-wrap;-webkit-box-orient:vertical;margin:0 0 10px;font-size:.88rem;line-height:1.55;display:-webkit-box;overflow:hidden}.management-code-snippet{background:var(--input-bg,#0f172ab3);border-radius:var(--radius-md);border:1px solid var(--border,#ffffff0f);color:var(--interactive-fg);word-break:break-all;padding:8px 12px;font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.8rem}.management-card-footer{border-top:1px solid var(--border,#ffffff0f);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:14px;display:flex}.management-action-btn{border-radius:var(--radius-md);border:1px solid var(--btn-gray-border,var(--border,#ffffff1a));background:var(--btn-gray-bg,var(--bg-surface-soft));color:var(--btn-gray-fg,var(--text-main,#f8fafc));cursor:pointer;padding:6px 12px;font-size:.82rem;font-weight:500;transition:all .2s}.management-action-btn:hover{background:var(--btn-gray-bg-hover,var(--bg-surface-hover));color:var(--btn-gray-fg,var(--text-main));border-color:var(--accent-border,var(--btn-gray-border-hover))}.management-action-btn.danger{color:var(--status-error-fg);border-color:var(--status-error-border);background:var(--status-error-bg)}.management-action-btn.danger:hover{background:var(--hover-delete-bg);color:var(--hover-delete);border-color:var(--status-error)}.management-expand-btn{border-radius:var(--radius-md);border:1px solid var(--border,#ffffff1f);background:var(--input-bg,#ffffff0d);width:32px;height:32px;color:var(--text-main,#f8fafc);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.management-expand-btn:hover{background:var(--surface-strong,#ffffff26);border-color:var(--accent,#3b82f6);color:var(--interactive-fg)}.management-expand-btn.is-expanded{background:var(--accent-subtle,#3b82f626);border-color:var(--accent,#3b82f6);color:var(--interactive-fg)}.management-expand-btn svg{transition:transform .25s}.management-expand-btn.is-expanded svg{transform:rotate(180deg)}.settings-toggle-switch{flex-shrink:0;width:44px;min-width:44px;height:24px;display:inline-block;position:relative}.settings-toggle-switch input{opacity:0;width:0;height:0}.settings-toggle-slider{border:1px solid var(--border-strong,transparent);border-radius:var(--radius-3xl);cursor:pointer;background-color:#fff3;transition:background-color .2s,border-color .2s;position:absolute;inset:0}.settings-toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s,background-color .2s;position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #00000040}.settings-toggle-switch input:checked+.settings-toggle-slider{background-color:var(--accent,#10b981);border-color:color-mix(in srgb, var(--accent,#10b981) 70%, var(--border-strong,#fff3))}.settings-toggle-switch input:checked+.settings-toggle-slider:before{background-color:var(--accent-contrast,#fff);transform:translate(20px)}.management-modal-overlay{-webkit-backdrop-filter:var(--glass-blur,blur(8px));backdrop-filter:var(--glass-blur,blur(8px));z-index:9999;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out mgFadeIn;display:flex;position:fixed;inset:0}.management-modal{background:var(--surface-bg,#1e293b);border:1px solid var(--border,#ffffff1f);border-radius:var(--radius-2xl);width:100%;max-width:720px;box-shadow:var(--shadow-lg,0 20px 40px #00000080);overflow:hidden}.management-modal.mcp-catalog-modal{max-width:820px}.management-modal-header{border-bottom:1px solid var(--border,#ffffff14);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.management-modal-title{color:var(--text-main,#fff);margin:0;font-size:1.2rem;font-weight:600}.management-modal-close{color:var(--text-muted,#94a3b8);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;font-size:1.2rem;transition:color .15s}.management-modal-close:hover{color:var(--text-main)}.management-modal-body{flex-direction:column;gap:16px;padding:24px;display:flex}.management-form-group{flex-direction:column;gap:6px;display:flex}.management-label{color:var(--text-main,#cbd5e1);font-size:.85rem;font-weight:500}.management-input-field,.management-textarea-field{background:var(--input-bg,#0f172a99);border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-lg);width:100%;color:var(--text-main,#f8fafc);box-sizing:border-box;outline:none;padding:10px 14px;font-family:inherit;font-size:.9rem;transition:all .2s}.management-input-field:focus,.management-textarea-field:focus{border-color:var(--accent,#3b82f6);background:var(--surface-strong,#0f172ad9);box-shadow:0 0 0 3px var(--accent-glow,#3b82f633)}.mcp-timeout-input{font-variant-numeric:tabular-nums;min-height:42px}.mcp-timeout-input:focus-visible{outline:2px solid var(--accent,#10b981);outline-offset:2px}.mcp-allowlist-heading{align-items:center;gap:10px;margin-bottom:8px;display:flex}.mcp-allowlist-toggle{border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-md,8px);background:var(--surface-bg,#ffffff0a);color:var(--text-main,#f8fafc);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-left:auto;padding:6px 10px;font-size:.82rem;line-height:1.3;transition:border-color .18s,background-color .18s;display:inline-flex}.mcp-allowlist-toggle:hover,.mcp-allowlist-toggle:focus-within{border-color:var(--interactive-fg,#10b981);background:var(--surface-strong,#ffffff12)}.mcp-allowlist-toggle .mint-custom-checkbox{width:17px;min-width:17px;height:17px}.mcp-allowlist-toggle .mint-custom-checkbox:checked{background-color:var(--interactive-fg,#10b981);border-color:var(--interactive-fg,#10b981);box-shadow:0 0 0 3px color-mix(in srgb, var(--interactive-fg,#10b981) 20%, transparent)}.management-textarea-field{resize:vertical;min-height:110px}.management-modal-footer{border-top:1px solid var(--border,#ffffff14);background:#00000026;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.management-empty-state{text-align:center;background:var(--surface-bg,#1e293b40);border:1px dashed var(--border,#ffffff1a);border-radius:var(--radius-2xl);grid-column:1/-1;padding:60px 20px}.management-empty-icon{opacity:.7;margin-bottom:16px;font-size:3rem}.management-empty-title{color:var(--text-main,#f8fafc);margin:0 0 8px;font-size:1.15rem;font-weight:600}.management-empty-desc{color:var(--text-muted,#94a3b8);max-width:420px;margin:0 auto 20px;font-size:.9rem;line-height:1.5}.mcp-server-type-toggle{background:var(--input-bg,#00000040);border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-xl,12px);gap:4px;padding:4px;display:flex}.mcp-toggle-btn{border-radius:var(--radius-lg,8px);cursor:pointer;color:var(--text-muted,#94a3b8);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.88rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.mcp-toggle-btn:hover{color:var(--text-main,#fff);background:#ffffff0d}.mcp-toggle-btn.active{background:var(--accent,#3b82f6);color:var(--text-on-accent);box-shadow:0 2px 8px var(--accent-glow,#3b82f64d)}.mcp-toggle-icon{font-size:1rem}.mcp-test-row{flex-wrap:wrap;align-items:center;gap:12px;padding-top:4px;display:flex}.mcp-test-btn{border-radius:var(--radius-lg,8px);cursor:pointer;border:1px solid var(--border,#ffffff26);background:var(--surface-bg,#ffffff0f);color:var(--text-main,#fff);align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.mcp-test-btn:hover:not(:disabled){background:var(--surface-strong,#ffffff1f);border-color:var(--accent,#3b82f6)}.mcp-test-btn:disabled{opacity:.6;cursor:not-allowed}.mcp-test-status{word-break:break-word;align-items:center;gap:6px;font-size:.84rem;line-height:1.4;display:flex}.mcp-test-status.success{color:var(--status-success-fg)}.mcp-test-status.error{color:var(--status-error-fg)}.mcp-test-status.testing{color:var(--interactive-fg)}.management-badge.remote{background:var(--status-info-bg);color:var(--status-info-fg);border:1px solid var(--status-info-border)}.mcp-spin{animation:.8s linear infinite mcp-spin}@keyframes mcp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mcp-security-notice{border-radius:var(--radius-lg,10px);border:1px solid var(--status-warning-border);background:var(--status-warning-bg);margin-top:14px;overflow:hidden}.mcp-security-header{background:var(--status-warning-bg);color:var(--status-warning-fg);border-bottom:1px solid var(--status-warning-border);align-items:center;gap:8px;padding:10px 14px;font-size:.86rem;font-weight:600;display:flex}.mcp-security-icon{color:var(--status-warning);flex-shrink:0}.mcp-security-body{background:var(--bg-surface-soft);padding:12px 14px}.mcp-security-ack{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:12px;display:flex}.mcp-security-ack-text{color:var(--text-main,#e2e8f0);flex-direction:column;gap:4px;font-size:.84rem;display:flex}.mcp-security-subtext{color:var(--text-muted,#94a3b8);font-size:.78rem;line-height:1.4}.mint-custom-checkbox{appearance:none;cursor:pointer;box-sizing:border-box;background:#ffffff14;border:1.5px solid #ffffff38;border-radius:5px;outline:none;flex-shrink:0;justify-content:center;align-items:center;width:18px;min-width:18px;height:18px;margin:0;transition:all .16s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.mint-custom-checkbox:hover{border-color:var(--accent,#10b981);background:var(--bg-surface-hover);box-shadow:0 0 0 3px var(--accent-glow,#10b98129)}.mint-custom-checkbox:checked{background-color:var(--accent,#10b981);border-color:var(--accent,#10b981);box-shadow:0 2px 8px var(--accent-glow,#10b98159)}.mint-custom-checkbox:checked:after{content:"";background:var(--text-on-accent);width:11px;height:11px;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='3.5 8.5 6.5 11.5 12.5 5.5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='3.5 8.5 6.5 11.5 12.5 5.5'/%3E%3C/svg%3E") 50%/contain no-repeat}.mint-custom-checkbox:active{transform:scale(.92)}.mint-custom-checkbox:focus-visible{box-shadow:0 0 0 3px var(--accent-glow,#10b9814d)}.mcp-allow-all-row{border-radius:var(--radius-lg,10px);background:var(--surface-bg,#ffffff08);border:1px solid var(--border,#ffffff14);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:12px;margin-top:14px;padding:12px 14px;transition:all .2s;display:flex}.mcp-allow-all-row:hover{background:var(--surface-strong,#ffffff0f);border-color:#ffffff29}.mcp-allow-all-row:hover .mint-custom-checkbox:not(:checked),.mcp-security-ack:hover .mint-custom-checkbox:not(:checked){border-color:var(--accent,#10b981);background:#ffffff1f}.mcp-allow-all-row .mint-custom-checkbox,.mcp-security-ack .mint-custom-checkbox{margin-top:2px}.mcp-allow-all-text{flex-direction:column;gap:3px;display:flex}.mcp-allow-all-title{color:var(--text-main,#fff);font-size:.88rem;font-weight:500}.mcp-allow-all-desc{color:var(--text-muted,#94a3b8);font-size:.78rem;line-height:1.4}
|
|
1
|
+
.management-container{max-width:1200px;color:var(--text-main,#f8fafc);margin:0 auto;padding:32px 28px;font-family:inherit;animation:.3s ease-out mgFadeIn}@keyframes mgFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.management-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.mcp-management-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.mcp-search-wrapper{flex:0 400px;min-width:min(260px,100%)}.management-title-group{flex-direction:column;gap:4px;display:flex}.management-title{letter-spacing:-.02em;color:var(--text-main,#fff);align-items:center;gap:12px;margin:0;font-size:1.65rem;font-weight:700;display:flex}.management-title-icon{font-size:1.75rem;line-height:1}.management-subtitle{color:var(--text-muted,#94a3b8);margin:0;font-size:.92rem}.management-workspace-info{color:var(--text-muted,#94a3b8);align-items:center;gap:6px;margin-top:4px;font-size:.82rem;display:inline-flex}.management-workspace-label{font-weight:500}.management-workspace-path{border-radius:var(--radius-sm,4px);background:var(--bg-secondary,#ffffff0f);color:var(--text-main,#f8fafc);font-size:.8rem;font-family:var(--font-mono,monospace);word-break:break-all;padding:2px 6px}.management-workspace-none{color:var(--text-muted,#94a3b8);font-style:italic}.management-modal-source{color:var(--text-muted,#64748b);word-break:break-all;margin-top:6px;font-size:.8rem}.management-modal-source code{font-family:var(--font-mono,monospace);color:var(--text-muted,#94a3b8);font-size:.78rem}.management-primary-btn{background:var(--accent,#3b82f6);color:var(--text-on-accent);border-radius:var(--radius-lg);cursor:pointer;box-shadow:0 4px 14px var(--accent-glow,#2563eb47);border:none;align-items:center;gap:8px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.management-primary-btn:hover{background:var(--accent-hover,#60a5fa);box-shadow:0 6px 20px var(--accent-glow,#2563eb52);transform:translateY(-1px)}.management-primary-btn:active{transform:translateY(0)}.management-control-bar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.management-search-wrapper{flex:1;min-width:260px;position:relative}.management-search-icon{color:var(--text-muted,#64748b);pointer-events:none;font-size:.95rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.management-search-input{background:var(--input-bg,#0f172a99);border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-lg);width:100%;color:var(--text-main,#f8fafc);box-sizing:border-box;outline:none;padding:10px 14px 10px 42px;font-size:.9rem;transition:all .2s}.management-search-input:focus{border-color:var(--accent,#3b82f6);background:var(--surface-strong,#0f172ad9);box-shadow:0 0 0 3px var(--accent-glow,#3b82f633)}.management-filter-pills{background:var(--input-bg,#0f172a99);border-radius:var(--radius-lg);border:1px solid var(--border,#ffffff14);gap:4px;padding:4px;display:flex}.management-pill-btn{border-radius:var(--radius-md);color:var(--text-muted,#94a3b8);cursor:pointer;text-transform:none;background:0 0;border:none;padding:6px 14px;font-size:.85rem;font-weight:500;transition:all .2s}.management-pill-btn:hover{color:var(--text-main,#f8fafc)}.management-pill-btn.active{background:var(--accent,#3b82f6);color:var(--text-on-accent);box-shadow:0 2px 8px var(--accent-glow,#3b82f64d);font-weight:600}.schedule-inline-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.schedule-inline-word{color:var(--text-muted,#94a3b8);white-space:nowrap;font-size:.85rem}.schedule-repeat-select{width:auto;min-width:130px}.schedule-day-input{width:auto;min-width:90px}.schedule-time-input{width:auto;min-width:110px}.schedule-timezone-select{width:auto;min-width:180px;max-width:260px}.schedule-weekday-circles{gap:6px;display:flex}.management-pill-btn-circle{border:1px solid var(--border,#ffffff1a);background:var(--input-bg,#0f172a99);width:30px;height:30px;color:var(--text-muted,#94a3b8);cursor:pointer;border-radius:50%;flex:none;font-size:.78rem;font-weight:600;transition:all .2s}.management-pill-btn-circle:hover{color:var(--text-main,#f8fafc)}.management-pill-btn-circle.active{background:var(--accent,#3b82f6);border-color:var(--accent,#3b82f6);color:var(--text-on-accent);box-shadow:0 2px 8px var(--accent-glow,#3b82f64d)}.mgmt-list{border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);flex-direction:column;display:flex;overflow:hidden}.mgmt-row{background:var(--surface-bg,#1e293b66);border-top:1px solid var(--border,#ffffff0f);cursor:pointer;align-items:center;gap:16px;padding:13px 16px;transition:background .15s;display:flex}.mgmt-row:first-child{border-top:none}.mgmt-row:hover{background:var(--surface-strong,#1e293b9e)}.mgmt-row.is-disabled .mgmt-row-main{opacity:.5}.mgmt-row-main{flex:1;min-width:0}.mgmt-row-title{color:var(--text-main,#f8fafc);white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:600;overflow:hidden}.mgmt-row-meta{color:var(--text-muted,#94a3b8);flex-wrap:wrap;align-items:center;gap:8px;margin-top:3px;font-size:.78rem;display:flex}.mgmt-row-meta code{font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.74rem}.mgmt-row-sep{opacity:.4}.mgmt-row-sub{color:var(--text-muted,#94a3b8);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:.8rem;overflow:hidden}.mgmt-status{letter-spacing:.05em;text-transform:none;font-size:.72rem;font-weight:700}.mgmt-status.ok{color:#34d399}.mgmt-status.failed{color:#f87171}.mgmt-status.running{color:var(--interactive-fg)}.mgmt-empty{text-align:center;color:var(--text-muted,#94a3b8);padding:48px 20px;font-size:.88rem;line-height:1.7}.mgmt-empty p{margin:0}.linked-empty{text-align:center;max-width:760px;color:var(--text-muted);margin:clamp(28px,7vh,80px) auto 0}.linked-empty-icon{margin-bottom:18px;display:inline-flex}.linked-empty h2{color:var(--text-main);margin:0 0 10px;font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.3}.linked-empty>p{max-width:520px;margin:0 auto;font-size:.92rem;line-height:1.6}.linked-empty-steps{text-align:left;border-block:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:28px 0;display:grid}.linked-empty-steps>div{flex-direction:column;gap:7px;min-width:0;padding:18px 20px;display:flex}.linked-empty-steps>div+div{border-inline-start:1px solid var(--border)}.linked-empty-steps strong{color:var(--text-main);font-size:.86rem}.linked-empty-steps span{font-size:.82rem;line-height:1.5}.linked-empty-cli{margin-top:14px!important;font-size:.79rem!important}.linked-folder-row{cursor:default;align-items:flex-start}.linked-folder-heading,.linked-folder-actions,.linked-folder-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.linked-folder-heading .mgmt-row-title{white-space:normal;overflow-wrap:anywhere}.linked-folder-description,.linked-folder-note-snippet{color:var(--text-soft,var(--text-muted));overflow-wrap:anywhere;margin:8px 0 0;font-size:.82rem;line-height:1.45}.linked-folder-meta{color:var(--text-muted);margin-top:10px;font-size:.78rem}.linked-folder-note-snippet{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.linked-folder-error,.linked-field-error{color:var(--error,#f87171);margin:8px 0 0;font-size:.8rem;line-height:1.4}.linked-load-error{text-align:center;color:var(--text-main);padding:44px 20px}.linked-load-error p{margin:0 0 14px}.management-error-banner{border:1px solid var(--error,#f87171);border-radius:var(--radius-lg);color:var(--error,#f87171);overflow-wrap:anywhere;margin:0 0 14px;padding:10px 12px;font-size:.82rem;line-height:1.45}.linked-add-modal .management-error-banner,.management-modal-body .management-error-banner{margin:0}.linked-folder-actions{flex:none;justify-content:flex-end}.linked-add-modal{max-height:calc(100vh - 40px);overflow-y:auto}.linked-detail-modal{flex-direction:column;height:calc(100dvh - 40px);max-height:calc(100dvh - 40px);display:flex}.linked-detail-modal .management-modal-header,.linked-detail-modal .management-modal-footer{flex:none}.linked-detail-modal .management-modal-body{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.linked-detail-modal .management-modal-body>.mgmt-list{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:min(46vh,420px);overflow:hidden auto}.linked-note-row{cursor:default}.linked-note-preview{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--input-bg);margin-top:12px;padding:14px}.linked-note-preview p{color:var(--text-muted);margin:0}.linked-note-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:min(36vh,320px);font:inherit;margin:0;font-size:.83rem;line-height:1.6;overflow:auto}.linked-path-row{gap:8px;display:flex}.linked-path-row .management-input-field{flex:1;min-width:0}.linked-optional,.linked-field-hint{color:var(--text-muted);font-weight:400}.linked-optional{margin-inline-start:5px}.linked-field-hint{margin:0;font-size:.78rem;line-height:1.45}.linked-scope-note{border-inline-start:2px solid var(--accent);background:var(--input-bg);color:var(--text-soft,var(--text-muted));margin:2px 0 0;padding:12px 14px;font-size:.81rem;line-height:1.5}.linked-add-modal [aria-invalid=true]{border-color:var(--error,#f87171)}.linked-add-modal :is(button,input,textarea):focus-visible,.linked-folder-actions button:focus-visible,.linked-empty button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=680px){.linked-empty{margin-top:24px}.linked-empty-steps{text-align:center;grid-template-columns:1fr}.linked-empty-steps>div{padding:13px 10px}.linked-empty-steps>div+div{border-inline-start:0;border-block-start:1px solid var(--border)}.linked-folder-row{flex-direction:column}.linked-folder-actions{justify-content:flex-start;width:100%}}.mgmt-row-stack{flex-direction:column;gap:8px;display:flex}.mcp-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width<=640px){.mcp-catalog-grid{grid-template-columns:1fr}}.mcp-catalog-card{background:var(--surface-bg,#1e293b73);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);text-align:left;cursor:pointer;box-sizing:border-box;flex-direction:column;min-height:84px;padding:12px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.mcp-catalog-card:hover:not(:disabled){border-color:var(--accent,#3b82f6);background:var(--surface-strong,#1e293ba6);box-shadow:var(--shadow-md,0 8px 24px #00000038);transform:translateY(-1px)}.mcp-catalog-card.selected{box-shadow:0 0 0 1px var(--accent,#10b981), 0 4px 14px var(--accent-glow,#10b98133);border-color:var(--accent,#10b981)!important}.mcp-catalog-card-header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.mcp-catalog-card-title{color:var(--text-main,#f8fafc);flex:1;align-items:center;gap:6px;min-width:0;font-size:.92rem;font-weight:600;display:flex}.mcp-catalog-card-title .name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mcp-catalog-card-desc{color:var(--text-muted,#94a3b8);-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.45;display:-webkit-box;overflow:hidden}.mgmt-detail-grid{color:var(--text-muted,#94a3b8);grid-template-columns:max-content 1fr;gap:6px 16px;font-size:.85rem;display:grid}.mgmt-detail-grid>span:nth-child(odd){color:var(--text-muted,#64748b)}.mgmt-detail-grid code{color:var(--text-main,#cbd5e1);word-break:break-word;font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.8rem}.mgmt-prose{border:1px solid var(--border,#ffffff14);border-radius:var(--radius-lg);background:var(--input-bg,#0f172a59);max-height:340px;padding:2px 14px;overflow-y:auto}.management-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.management-card{background:var(--surface-bg,#1e293b73);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);-webkit-backdrop-filter:var(--glass-blur,blur(12px));backdrop-filter:var(--glass-blur,blur(12px));flex-direction:column;justify-content:space-between;padding:20px;transition:all .2s;display:flex;position:relative;overflow:hidden}.management-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent,#3b82f680), transparent);opacity:0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.management-card:hover{border-color:var(--accent,#3b82f6);box-shadow:var(--shadow-md,0 8px 24px #00000038), 0 0 12px var(--accent-glow,#3b82f626);background:var(--surface-strong,#1e293ba6);transform:translateY(-2px)}.management-card:hover:before{opacity:1}.management-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.management-card-title-group{align-items:center;gap:10px;display:flex}.management-card-icon{border-radius:var(--radius-lg);background:var(--accent-subtle,#3b82f626);border:1px solid var(--accent-border,#3b82f640);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.2rem;display:flex}.management-card-title{color:var(--text-main,#f8fafc);word-break:break-word;margin:0;font-size:1.05rem;font-weight:600}.management-card-title-badge{color:var(--interactive-fg);background:var(--accent-subtle,#10b9811f);border-radius:var(--radius-sm);border:1px solid var(--accent-border,#10b98140);padding:3px 10px;font-size:.88rem;font-weight:700}.management-badge{border-radius:var(--radius-sm);letter-spacing:.02em;flex-shrink:0;align-items:center;gap:6px;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-flex}.management-badge.active,.management-badge.connected{background:var(--status-success-bg);color:var(--status-success-fg);border:1px solid var(--status-success-border)}.management-badge.workspace{background:var(--accent-subtle,#3b82f626);color:var(--interactive-fg);border:1px solid var(--accent-border,#3b82f64d)}.management-badge.global{background:var(--status-purple-bg);color:var(--status-purple-fg);border:1px solid var(--status-purple-border)}.management-badge.inactive,.management-badge.disconnected{background:var(--bg-surface-soft);color:var(--text-muted,#94a3b8);border:1px solid var(--border-default)}.management-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.management-tag{letter-spacing:.06em;text-transform:none;flex-shrink:0;font-size:.7rem;font-weight:700}.management-tag.workspace{color:var(--interactive-fg)}.management-tag.global{color:var(--status-purple-fg)}.management-plugin-row{background:var(--surface-bg,#1e293b73);border:1px solid var(--border,#ffffff14);border-radius:var(--radius-xl);cursor:pointer;align-items:center;gap:14px;padding:12px 16px;transition:all .2s;display:flex}.management-plugin-row:hover{border-color:var(--accent,#3b82f6);background:var(--surface-strong,#1e293ba6);box-shadow:var(--shadow-md,0 8px 24px #00000038)}.management-plugin-info{flex:1;min-width:0}.management-plugin-name{color:var(--text-main,#f8fafc);align-items:center;gap:8px;font-size:.92rem;font-weight:600;display:flex}.management-plugin-desc{color:var(--text-muted,#94a3b8);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.8rem;overflow:hidden}.management-plugin-name .management-dot{background:var(--text-muted,#64748b)}.management-plugin-name .management-dot.connected{background:var(--status-success-fg)}.management-section-title{color:var(--text-main,#f8fafc);margin:0 0 12px;font-size:.95rem;font-weight:600}.mcp-image-input-setting{border:1px solid var(--border,#ffffff14);border-radius:var(--radius-lg,12px);background:var(--surface,#ffffff08);width:fit-content;max-width:min(100%,620px);color:var(--text-main,#f8fafc);cursor:pointer;align-items:flex-start;gap:10px;margin:0 0 28px;padding:12px 14px;font-size:.88rem;line-height:1.5;transition:border-color .18s,background-color .18s;display:flex}.mcp-image-input-setting:hover,.mcp-image-input-setting:focus-within{border-color:var(--accent,#3b82f6);background:var(--surface-hover,#ffffff0d)}.mcp-image-input-setting input{width:16px;height:16px;accent-color:var(--accent,#3b82f6);flex:none;margin:2px 0 0}.mcp-image-input-hint{color:var(--text-muted,#94a3b8)}@media (width<=640px){.mcp-management-actions{justify-content:flex-start;width:100%}.mcp-management-actions>button{flex:auto}.mcp-search-wrapper{flex:100%;min-width:0}.mcp-image-input-setting{width:auto;max-width:100%;margin-bottom:24px;font-size:.84rem}}.management-installed-row{flex-wrap:wrap;gap:12px;margin-bottom:28px;display:flex}.mcp-installed-section{margin-bottom:28px}.mcp-installed-section .management-section-title{margin-bottom:12px}.management-plugin-avatar{border-radius:var(--radius-lg);border:1px solid var(--border,#ffffff14);cursor:pointer;background:#ffffff0f;justify-content:center;align-items:center;width:52px;height:52px;padding:0;transition:all .2s;display:flex}.management-plugin-avatar:hover{border-color:var(--accent,#3b82f6);box-shadow:var(--shadow-sm,0 4px 14px #00000029);transform:translateY(-2px)}.management-plugin-avatar:focus-visible{outline:2px solid var(--accent,#3b82f6);outline-offset:3px;border-color:var(--accent,#3b82f6)}.management-plugin-icon-btn{border:1px solid var(--border,#ffffff24);width:30px;height:30px;color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.management-plugin-icon-btn:hover{border-color:var(--accent,#3b82f6);color:var(--interactive-fg);background:var(--accent-subtle,#3b82f61a)}.management-card-body{flex:1;margin-bottom:16px}.management-card-desc{color:var(--text-muted,#94a3b8);-webkit-line-clamp:3;line-clamp:3;white-space:pre-wrap;-webkit-box-orient:vertical;margin:0 0 10px;font-size:.88rem;line-height:1.55;display:-webkit-box;overflow:hidden}.management-code-snippet{background:var(--input-bg,#0f172ab3);border-radius:var(--radius-md);border:1px solid var(--border,#ffffff0f);color:var(--interactive-fg);word-break:break-all;padding:8px 12px;font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.8rem}.management-card-footer{border-top:1px solid var(--border,#ffffff0f);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:14px;display:flex}.management-action-btn{border-radius:var(--radius-md);border:1px solid var(--btn-gray-border,var(--border,#ffffff1a));background:var(--btn-gray-bg,var(--bg-surface-soft));color:var(--btn-gray-fg,var(--text-main,#f8fafc));cursor:pointer;padding:6px 12px;font-size:.82rem;font-weight:500;transition:all .2s}.management-action-btn:hover{background:var(--btn-gray-bg-hover,var(--bg-surface-hover));color:var(--btn-gray-fg,var(--text-main));border-color:var(--accent-border,var(--btn-gray-border-hover))}.management-action-btn.danger{color:var(--status-error-fg);border-color:var(--status-error-border);background:var(--status-error-bg)}.management-action-btn.danger:hover{background:var(--hover-delete-bg);color:var(--hover-delete);border-color:var(--status-error)}.management-expand-btn{border-radius:var(--radius-md);border:1px solid var(--border,#ffffff1f);background:var(--input-bg,#ffffff0d);width:32px;height:32px;color:var(--text-main,#f8fafc);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.management-expand-btn:hover{background:var(--surface-strong,#ffffff26);border-color:var(--accent,#3b82f6);color:var(--interactive-fg)}.management-expand-btn.is-expanded{background:var(--accent-subtle,#3b82f626);border-color:var(--accent,#3b82f6);color:var(--interactive-fg)}.management-expand-btn svg{transition:transform .25s}.management-expand-btn.is-expanded svg{transform:rotate(180deg)}.settings-toggle-switch{flex-shrink:0;width:44px;min-width:44px;height:24px;display:inline-block;position:relative}.settings-toggle-switch input{opacity:0;width:0;height:0}.settings-toggle-slider{border:1px solid var(--border-strong,transparent);border-radius:var(--radius-3xl);cursor:pointer;background-color:#fff3;transition:background-color .2s,border-color .2s;position:absolute;inset:0}.settings-toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s,background-color .2s;position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #00000040}.settings-toggle-switch input:checked+.settings-toggle-slider{background-color:var(--accent,#10b981);border-color:color-mix(in srgb, var(--accent,#10b981) 70%, var(--border-strong,#fff3))}.settings-toggle-switch input:checked+.settings-toggle-slider:before{background-color:var(--accent-contrast,#fff);transform:translate(20px)}.management-modal-overlay{-webkit-backdrop-filter:var(--glass-blur,blur(8px));backdrop-filter:var(--glass-blur,blur(8px));z-index:9999;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out mgFadeIn;display:flex;position:fixed;inset:0}.management-modal{background:var(--surface-bg,#1e293b);border:1px solid var(--border,#ffffff1f);border-radius:var(--radius-2xl);width:100%;max-width:720px;box-shadow:var(--shadow-lg,0 20px 40px #00000080);overflow:hidden}.management-modal.mcp-catalog-modal{max-width:820px}.management-modal-header{border-bottom:1px solid var(--border,#ffffff14);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.management-modal-title{color:var(--text-main,#fff);margin:0;font-size:1.2rem;font-weight:600}.management-modal-close{color:var(--text-muted,#94a3b8);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;font-size:1.2rem;transition:color .15s}.management-modal-close:hover{color:var(--text-main)}.management-modal-body{flex-direction:column;gap:16px;padding:24px;display:flex}.management-form-group{flex-direction:column;gap:6px;display:flex}.management-label{color:var(--text-main,#cbd5e1);font-size:.85rem;font-weight:500}.management-input-field,.management-textarea-field{background:var(--input-bg,#0f172a99);border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-lg);width:100%;color:var(--text-main,#f8fafc);box-sizing:border-box;outline:none;padding:10px 14px;font-family:inherit;font-size:.9rem;transition:all .2s}.management-input-field:focus,.management-textarea-field:focus{border-color:var(--accent,#3b82f6);background:var(--surface-strong,#0f172ad9);box-shadow:0 0 0 3px var(--accent-glow,#3b82f633)}.mcp-timeout-input{font-variant-numeric:tabular-nums;min-height:42px}.mcp-timeout-input:focus-visible{outline:2px solid var(--accent,#10b981);outline-offset:2px}.mcp-allowlist-heading{align-items:center;gap:10px;margin-bottom:8px;display:flex}.mcp-allowlist-toggle{border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-md,8px);background:var(--surface-bg,#ffffff0a);color:var(--text-main,#f8fafc);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-left:auto;padding:6px 10px;font-size:.82rem;line-height:1.3;transition:border-color .18s,background-color .18s;display:inline-flex}.mcp-allowlist-toggle:hover,.mcp-allowlist-toggle:focus-within{border-color:var(--interactive-fg,#10b981);background:var(--surface-strong,#ffffff12)}.mcp-allowlist-toggle .mint-custom-checkbox{width:17px;min-width:17px;height:17px}.mcp-allowlist-toggle .mint-custom-checkbox:checked{background-color:var(--interactive-fg,#10b981);border-color:var(--interactive-fg,#10b981);box-shadow:0 0 0 3px color-mix(in srgb, var(--interactive-fg,#10b981) 20%, transparent)}.management-textarea-field{resize:vertical;min-height:110px}.management-modal-footer{border-top:1px solid var(--border,#ffffff14);background:#00000026;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.management-empty-state{text-align:center;background:var(--surface-bg,#1e293b40);border:1px dashed var(--border,#ffffff1a);border-radius:var(--radius-2xl);grid-column:1/-1;padding:60px 20px}.management-empty-icon{opacity:.7;margin-bottom:16px;font-size:3rem}.management-empty-title{color:var(--text-main,#f8fafc);margin:0 0 8px;font-size:1.15rem;font-weight:600}.management-empty-desc{color:var(--text-muted,#94a3b8);max-width:420px;margin:0 auto 20px;font-size:.9rem;line-height:1.5}.mcp-server-type-toggle{background:var(--input-bg,#00000040);border:1px solid var(--border,#ffffff1a);border-radius:var(--radius-xl,12px);gap:4px;padding:4px;display:flex}.mcp-toggle-btn{border-radius:var(--radius-lg,8px);cursor:pointer;color:var(--text-muted,#94a3b8);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.88rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.mcp-toggle-btn:hover{color:var(--text-main,#fff);background:#ffffff0d}.mcp-toggle-btn.active{background:var(--accent,#3b82f6);color:var(--text-on-accent);box-shadow:0 2px 8px var(--accent-glow,#3b82f64d)}.mcp-toggle-icon{font-size:1rem}.mcp-test-row{flex-wrap:wrap;align-items:center;gap:12px;padding-top:4px;display:flex}.mcp-test-btn{border-radius:var(--radius-lg,8px);cursor:pointer;border:1px solid var(--border,#ffffff26);background:var(--surface-bg,#ffffff0f);color:var(--text-main,#fff);align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.mcp-test-btn:hover:not(:disabled){background:var(--surface-strong,#ffffff1f);border-color:var(--accent,#3b82f6)}.mcp-test-btn:disabled{opacity:.6;cursor:not-allowed}.mcp-test-status{word-break:break-word;align-items:center;gap:6px;font-size:.84rem;line-height:1.4;display:flex}.mcp-test-status.success{color:var(--status-success-fg)}.mcp-test-status.error{color:var(--status-error-fg)}.mcp-test-status.testing{color:var(--interactive-fg)}.management-badge.remote{background:var(--status-info-bg);color:var(--status-info-fg);border:1px solid var(--status-info-border)}.mcp-spin{animation:.8s linear infinite mcp-spin}@keyframes mcp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mcp-security-notice{border-radius:var(--radius-lg,10px);border:1px solid var(--status-warning-border);background:var(--status-warning-bg);margin-top:14px;overflow:hidden}.mcp-security-header{background:var(--status-warning-bg);color:var(--status-warning-fg);border-bottom:1px solid var(--status-warning-border);align-items:center;gap:8px;padding:10px 14px;font-size:.86rem;font-weight:600;display:flex}.mcp-security-icon{color:var(--status-warning);flex-shrink:0}.mcp-security-body{background:var(--bg-surface-soft);padding:12px 14px}.mcp-security-ack{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:12px;display:flex}.mcp-security-ack-text{color:var(--text-main,#e2e8f0);flex-direction:column;gap:4px;font-size:.84rem;display:flex}.mcp-security-subtext{color:var(--text-muted,#94a3b8);font-size:.78rem;line-height:1.4}.mint-custom-checkbox{appearance:none;border-radius:var(--radius-xs,6px);cursor:pointer;box-sizing:border-box;background:#ffffff14;border:1.5px solid #ffffff38;outline:none;flex-shrink:0;justify-content:center;align-items:center;width:18px;min-width:18px;height:18px;margin:0;transition:all .16s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.mint-custom-checkbox:hover{border-color:var(--accent,#10b981);background:var(--bg-surface-hover);box-shadow:0 0 0 3px var(--accent-glow,#10b98129)}.mint-custom-checkbox:checked{background-color:var(--accent,#10b981);border-color:var(--accent,#10b981);box-shadow:0 2px 8px var(--accent-glow,#10b98159)}.mint-custom-checkbox:checked:after{content:"";background:var(--text-on-accent);width:11px;height:11px;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='3.5 8.5 6.5 11.5 12.5 5.5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='3.5 8.5 6.5 11.5 12.5 5.5'/%3E%3C/svg%3E") 50%/contain no-repeat}.mint-custom-checkbox:active{transform:scale(.92)}.mint-custom-checkbox:focus-visible{box-shadow:0 0 0 3px var(--accent-glow,#10b9814d)}.mcp-allow-all-row{border-radius:var(--radius-lg,10px);background:var(--surface-bg,#ffffff08);border:1px solid var(--border,#ffffff14);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:12px;margin-top:14px;padding:12px 14px;transition:all .2s;display:flex}.mcp-allow-all-row:hover{background:var(--surface-strong,#ffffff0f);border-color:#ffffff29}.mcp-allow-all-row:hover .mint-custom-checkbox:not(:checked),.mcp-security-ack:hover .mint-custom-checkbox:not(:checked){border-color:var(--accent,#10b981);background:#ffffff1f}.mcp-allow-all-row .mint-custom-checkbox,.mcp-security-ack .mint-custom-checkbox{margin-top:2px}.mcp-allow-all-text{flex-direction:column;gap:3px;display:flex}.mcp-allow-all-title{color:var(--text-main,#fff);font-size:.88rem;font-weight:500}.mcp-allow-all-desc{color:var(--text-muted,#94a3b8);font-size:.78rem;line-height:1.4}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-js-BV3mI7uw.js","assets/rolldown-runtime-CNOWq4Kh.js","assets/core-Mi3s5D4_.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e,n as t}from"./rolldown-runtime-CNOWq4Kh.js";import{n,t as r}from"./jsx-runtime-DmUwWVTj.js";import{b as i,g as a,h as o,i as s,s as c,x as l,y as u}from"./index-BocxnrDG.js";var d,f,p,m=t((()=>{d=e(n()),f={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`},p=(0,d.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n,absoluteStrokeWidth:r=!1,className:i=``,altIcon:a,showAlt:o=!1,icon:s,primaryColor:c,secondaryColor:l,disableSecondaryOpacity:u=!1,...p},m)=>{let h=n===void 0?void 0:r?Number(n)*24/Number(t):n,g=h===void 0?{}:{strokeWidth:h,stroke:`currentColor`},_={ref:m,...f,width:t,height:t,color:c||e,className:i,...g,...p},v=[...o&&a?a:s].sort(([,e],[,t])=>{let n=e.opacity!==void 0;return t.opacity===void 0?n?-1:0:1}).map(([t,n])=>{let r=n.opacity!==void 0,i=r&&!u?n.opacity:void 0,a=l?{...n.stroke===void 0?{fill:r?l:c||e}:{stroke:r?l:c||e}}:{};return(0,d.createElement)(t,{...n,...g,...a,opacity:i,key:n.key})});return(0,d.createElement)(`svg`,_,v)}),p.displayName=`HugeiconsIcon`})),h=t((()=>{m()})),g,_=t((()=>{g=[[`path`,{d:`M18 9.00005C18 9.00005 13.5811 15 12 15C10.4188 15 6 9 6 9`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]]})),v,ee=t((()=>{v=[[`path`,{d:`M15 6C15 6 9.00001 10.4189 9 12C8.99999 13.5812 15 18 15 18`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]]})),y,b=t((()=>{y=[[`path`,{d:`M7 6.5C7 4.01472 9.01472 2 11.5 2C13.9853 2 16 4.01472 16 6.5V11.5C16 13.9853 13.9853 16 11.5 16C9.01472 16 7 13.9853 7 11.5V6.5Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M11.5 19H11.0828C7.57267 19 4.57706 16.4623 4 13M11.5 19H11.9172C15.4273 19 18.4229 16.4623 19 13M11.5 19V22`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}]]})),x,S=t((()=>{x=[[`path`,{d:`M5 14L8.5 17.5L19 6.5`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]]})),te=t((()=>{_(),ee(),b(),S()})),C,ne,w,T,E,D,re=t((()=>{l(),u(),C=e=>{let t=e.replace(`#`,``);if(t.length===3)return{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16)};let n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:{r:16,g:185,b:129}},ne=(e,t)=>{let n=e.replace(`#`,``);if(n.length!==6)return e;let r=parseInt(n,16),i=Math.min(255,(r>>16)+t),a=Math.min(255,(r>>8&255)+t),o=Math.min(255,(r&255)+t);return`#${(i<<16|a<<8|o).toString(16).padStart(6,`0`)}`},w=e=>{let t=C(e);return .299*t.r+.587*t.g+.114*t.b>160?`#09090b`:`#ffffff`},T=null,E=null,D=e=>{if(typeof document>`u`)return;let t=e.theme||`dark`,n=e.glassBlur===`none`?`opaque`:e.surfaceStyle||`glass`,r=e.accentColor||`#10b981`,a=C(r),o=w(r),s=t;t===`system`?(s=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`,E||(T=window.matchMedia(`(prefers-color-scheme: dark)`),E=e=>{document.documentElement.setAttribute(`data-theme`,e.matches?`dark`:`light`)},T.addEventListener(`change`,E))):E&&T&&(T.removeEventListener(`change`,E),E=null,T=null),i(),document.documentElement.setAttribute(`data-reduced-effects`,String(e.reducedEffects===!0)),document.documentElement.setAttribute(`data-theme`,s),document.documentElement.setAttribute(`data-surface`,n);let c=r.trim().toLowerCase(),l=c===`#ffffff`||c===`#fff`,u=c===`#52525b`||c===`#475569`||c===`#3f3f46`||c===`#64748b`;document.documentElement.setAttribute(`data-accent-mode`,l?`monochrome`:u?`gray`:`color`),document.documentElement.style.setProperty(`--accent-default`,r),document.documentElement.style.setProperty(`--accent`,r),document.documentElement.style.setProperty(`--accent-hover`,ne(r,20)),document.documentElement.style.setProperty(`--accent-glow`,`rgba(${a.r}, ${a.g}, ${a.b}, 0.35)`),document.documentElement.style.setProperty(`--accent-subtle`,`rgba(${a.r}, ${a.g}, ${a.b}, 0.14)`),document.documentElement.style.setProperty(`--accent-border`,`rgba(${a.r}, ${a.g}, ${a.b}, 0.3)`),document.documentElement.style.setProperty(`--text-on-accent`,o),document.documentElement.style.setProperty(`--accent-contrast`,o);let d=e.textColor||e.systemTextColor||e.chatTextColor;if(d?(document.documentElement.style.setProperty(`--text-main`,d),document.documentElement.style.setProperty(`--text-chat`,d),document.documentElement.style.setProperty(`--text-primary`,d),document.documentElement.style.setProperty(`--text-soft`,`color-mix(in srgb, ${d} 82%, transparent)`),document.documentElement.style.setProperty(`--text-secondary`,`color-mix(in srgb, ${d} 82%, transparent)`),document.documentElement.style.setProperty(`--text-muted`,`color-mix(in srgb, ${d} 58%, transparent)`)):[`--text-main`,`--text-chat`,`--text-primary`,`--text-soft`,`--text-secondary`,`--text-muted`].forEach(e=>document.documentElement.style.removeProperty(e)),n===`opaque`?document.documentElement.style.setProperty(`--glass-blur`,`none`):document.documentElement.style.setProperty(`--glass-blur`,e.glassBlur||`blur(16px)`),e.fontFamily&&(document.body.style.fontFamily=e.fontFamily),e.fontSize&&(document.documentElement.style.fontSize=e.fontSize),t===`custom`){if(e.customBgStart&&e.customBgEnd&&(document.documentElement.style.setProperty(`--bg-canvas`,e.customBgStart),document.documentElement.style.setProperty(`--bg-color`,e.customBgStart),document.documentElement.style.setProperty(`--bg-gradient`,`linear-gradient(135deg, ${e.customBgStart} 0%, ${e.customBgEnd} 100%)`)),e.customPanelBg){let t=C(e.customPanelBg),r=n===`opaque`?e.customPanelBg:`rgba(${t.r}, ${t.g}, ${t.b}, 0.75)`,i=n===`opaque`?e.customPanelBg:`rgba(${t.r}, ${t.g}, ${t.b}, 0.62)`;document.documentElement.style.setProperty(`--bg-surface`,r),document.documentElement.style.setProperty(`--panel-bg`,r),document.documentElement.style.setProperty(`--surface-bg`,i)}}else[`--bg-canvas`,`--bg-color`,`--bg-gradient`,`--panel-bg`,`--panel-raised`,`--panel-soft`,`--chrome-bg`,`--surface-bg`,`--surface-strong`,`--input-bg`].forEach(e=>document.documentElement.style.removeProperty(e))}}));function O(e){if(!e)return new Date;if(e instanceof Date)return e;if(typeof e!=`string`)return new Date(e);let t=e.trim();/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/.test(t)?t=t.replace(` `,`T`)+`Z`:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?$/.test(t)&&(t+=`Z`);let n=new Date(t);return Number.isNaN(n.getTime())?new Date:n}function ie(e,t){let n=O(e).getTime(),r=O(t).getTime();return!Number.isFinite(n)||!Number.isFinite(r)?!1:Math.abs(r-n)>k}function ae(e){let t=O(e);if(Number.isNaN(t.getTime()))return``;let n=new Date,r=t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`});if(t.toDateString()===n.toDateString())return r;let i=new Date(n);return i.setDate(n.getDate()-1),t.toDateString()===i.toDateString()?`Yesterday, ${r}`:`${t.toLocaleDateString([],{month:`short`,day:`numeric`})}, ${r}`}function oe(e){return e instanceof Error?e.message:String(e)}function se(e){let t=URL.createObjectURL(e);return{objectUrl:t,revoke:()=>{try{URL.revokeObjectURL(t)}catch{}}}}function ce(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result)),r.onerror=()=>n(r.error??Error(`Unable to read image`)),r.readAsDataURL(e)})}function le(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result)),r.onerror=()=>n(r.error??Error(`Unable to read document`)),r.readAsDataURL(e)})}async function ue(e){let t=await new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error(`Unable to prepare image preview`)),r.src=e}),n=document.createElement(`canvas`);n.width=t.naturalWidth||t.width,n.height=t.naturalHeight||t.height;let r=n.getContext(`2d`,{willReadFrequently:!0});if(!r||n.width===0||n.height===0)return e;r.drawImage(t,0,0);let i=r.getImageData(0,0,n.width,n.height),a=n.width,o=n.height,s=-1,c=-1;for(let e=0;e<n.height;e+=1)for(let t=0;t<n.width;t+=1)i.data[(e*n.width+t)*4+3]>12&&(a=Math.min(a,t),o=Math.min(o,e),s=Math.max(s,t),c=Math.max(c,e));if(s<a||c<o)return e;let l=Math.max(0,a-8),u=Math.max(0,o-8),d=Math.min(n.width-l,s-a+1+16),f=Math.min(n.height-u,c-o+1+16);if(d>=n.width*.92&&f>=n.height*.92)return e;let p=document.createElement(`canvas`);p.width=d,p.height=f;let m=p.getContext(`2d`);return m?(m.drawImage(n,l,u,d,f,0,0,d,f),p.toDataURL(`image/png`)):e}var k,A,de=t((()=>{re(),k=18e5,A=e=>{D(e)}}));function fe(e,t){if(t){if(t.trim().startsWith(`<svg`))return(0,M.jsx)(`div`,{dangerouslySetInnerHTML:{__html:t},style:{width:`22px`,height:`22px`,display:`flex`,alignItems:`center`,justifyContent:`center`}});if(t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`data:image`))return(0,M.jsx)(`img`,{src:t,alt:e,style:{width:`22px`,height:`22px`,objectFit:`contain`}});let n=t.toLowerCase().trim();if(n===`search`)return(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#3b82f6`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,M.jsx)(`line`,{x1:`21`,y1:`21`,x2:`16.65`,y2:`16.65`})]});if(n===`database`)return(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#a855f7`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}),(0,M.jsx)(`path`,{d:`M21 12c0 1.66-4 3-9 3s-9-1.34-9-3`}),(0,M.jsx)(`path`,{d:`M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5`})]});if(n===`cloud`)return(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#38bdf8`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,M.jsx)(`path`,{d:`M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z`})});if(n===`code`||n===`terminal`)return(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#10b981`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`polyline`,{points:`16 18 22 12 16 6`}),(0,M.jsx)(`polyline`,{points:`8 6 2 12 8 18`})]});if(n===`api`||n===`bolt`)return(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#f59e0b`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,M.jsx)(`polygon`,{points:`13 2 3 14 12 14 11 22 21 10 12 10 13 2`})});if(n===`globe`||n===`remote`||n===`web`||n===`url`||n===`🌐`)return(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#38bdf8`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,M.jsx)(`line`,{x1:`2`,y1:`12`,x2:`22`,y2:`12`}),(0,M.jsx)(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]})}let n=e.toLowerCase().trim();return n===`docker`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`#0db7ed`,children:(0,M.jsx)(`path`,{d:`M13 8.5h2v2h-2zm-3 0h2v2h-2zm-3 0h2v2H7zm-3 3h2v2H4zm3 0h2v2H7zm3 0h2v2h-2zm3 0h2v2h-2zm3 0h2v2h-2zm-12 3h2v2H4zm3 0h2v2H7zm3 0h2v2h-2zm3 0h2v2h-2zm3 0h2v2h-2zm-6.2 3.8c-.8.5-2.1.8-3.4.6-2.5-.3-4.5-2.2-4.8-4.7h-1c.4 3.4 3.1 6 6.5 6 3 0 5.6-2 6.4-4.8.6-.2 1.4-.4 2.2-.2.3.1.6.3.8.5.6.6 1.4.9 2.2.9h.4c.5-.7.8-1.5.8-2.4 0-.3 0-.6-.1-.9-.7.1-1.4 0-2.1-.3-.6-.3-1.1-.8-1.5-1.4l-.2-.3h-2.1c-.2.7-.6 1.3-1.2 1.7-.6.4-1.3.6-2 .4z`})}):n===`git`||n===`gitkraken`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#f05032`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`18`,cy:`18`,r:`3`}),(0,M.jsx)(`circle`,{cx:`6`,cy:`6`,r:`3`}),(0,M.jsx)(`circle`,{cx:`6`,cy:`18`,r:`3`}),(0,M.jsx)(`path`,{d:`M6 9v6`}),(0,M.jsx)(`path`,{d:`M9 18h6`})]}):n===`github`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`#f0f6fc`,children:(0,M.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.53 1.032 1.53 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z`})}):n===`node`||n===`nodejs`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`#68a063`,children:(0,M.jsx)(`path`,{d:`M12 2L2 7.5v9L12 22l10-5.5v-9L12 2zm0 2.3l7.7 4.2v7L12 19.7 4.3 15.5v-7L12 4.3zm-1 4.2v3.5l-3-1.7V8.5l3 1.7zm2 0l3-1.7v1.8l-3 1.7V8.5z`})}):n===`gmail`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,children:[(0,M.jsx)(`path`,{fill:`#EA4335`,d:`M20 4H4C2.9 4 2 4.9 2 6v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2z`,fillOpacity:`0.1`}),(0,M.jsx)(`path`,{fill:`#EA4335`,d:`M20 5H4c-.6 0-1.1.3-1.5.7l9.5 7.1 9.5-7.1c-.4-.4-.9-.7-1.5-.7z`}),(0,M.jsx)(`path`,{fill:`#34A853`,d:`M2 7v11c0 .6.4 1 1 1h2V9.3L2 7z`}),(0,M.jsx)(`path`,{fill:`#4285F4`,d:`M22 7l-3 2.3V19h2c.6 0 1-.4 1-1V7z`}),(0,M.jsx)(`path`,{fill:`#FBBC05`,d:`M5 19h14v-9.7l-7 5.3-7-5.3V19z`})]}):n===`calendar`||n===`google_calendar`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,children:[(0,M.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`3`,fill:`#ffffff`}),(0,M.jsx)(`path`,{d:`M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z`,fill:`#4285F4`}),(0,M.jsx)(`path`,{d:`M19 3H5a2 2 0 0 0-2 2v3h18V5a2 2 0 0 0-2-2z`,fill:`#185ABC`}),(0,M.jsx)(`path`,{d:`M7 2v3M17 2v3`,stroke:`#ffffff`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,M.jsx)(`text`,{x:`12`,y:`17`,fontSize:`8.5`,fontWeight:`bold`,fill:`#ffffff`,textAnchor:`middle`,fontFamily:`system-ui, -apple-system, sans-serif`,children:`31`})]}):n===`notion`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`#ffffff`,children:(0,M.jsx)(`path`,{d:`M4.459 4.208c.746.606 1.026.56 2.424.466l11.424-.701c.28 0 .093-.28-.047-.326L15.69 2.155c-.42-.326-.98-.42-1.54-.373L3.712 2.808c-.42.046-.7.326-.7.7 0 .093.047.233.094.28l1.353 1.42zm.84 3.733v12.775c0 .7.373 1.073 1.12 1.026l12.774-.746c.746-.047.886-.606.886-1.12V7.1c0-.513-.233-.746-.746-.7l-13.24.793c-.56.047-.794.28-.794.746zm11.794 1.306c.093.373 0 .746-.373.793l-1.026.14v8.583c-.42.233-.886.373-1.306.373-.513 0-.84-.14-1.26-.653l-4.153-6.53v6.067l1.353.326c.093.047.14.28.14.42 0 .28-.233.373-.7.373l-2.846.14c-.093 0-.233-.093-.233-.373 0-.233.14-.373.28-.42l1.026-.14V9.95l-1.026-.14c-.093-.047-.186-.28-.186-.42 0-.28.233-.373.746-.373l2.8.047c.56 0 .98.14 1.353.746l4.06 6.344V10.23l-1.167-.14c-.093-.047-.14-.28-.14-.42 0-.28.233-.373.746-.373l2.707-.093c.14 0 .28.093.28.42z`})}):n===`youtube_music`||n===`yt_music`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,children:[(0,M.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,fill:`#FF0000`}),(0,M.jsx)(`circle`,{cx:`12`,cy:`12`,r:`5.5`,fill:`none`,stroke:`#FFFFFF`,strokeWidth:`1.6`}),(0,M.jsx)(`polygon`,{points:`10.5 8.5 15.5 12 10.5 15.5`,fill:`#FFFFFF`})]}):n===`vercel`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`#ffffff`,children:(0,M.jsx)(`path`,{d:`M12 1L24 22H0L12 1Z`})}):n===`spotify`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`#1ed760`,children:(0,M.jsx)(`path`,{d:`M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.308-1.758-8.793-.963-.335.077-.67-.133-.746-.467-.077-.334.132-.67.467-.746 3.812-.871 7.102-.494 9.722 1.112.294.18.386.563.207.857zm1.233-2.743c-.226.367-.706.482-1.073.257-2.687-1.652-6.785-2.131-9.965-1.166-.413.126-.847-.106-.973-.519-.125-.413.106-.847.519-.973 3.632-1.102 8.147-.568 11.235 1.328.367.226.482.706.257 1.073zm.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.496.15-1.022-.132-1.173-.628-.15-.496.132-1.022.628-1.173 3.535-1.073 9.404-.871 12.984 1.254.446.265.592.844.327 1.29-.265.446-.844.592-1.29.327z`})}):n===`discord`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`#5865f2`,children:(0,M.jsx)(`path`,{d:`M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994.021-.041.001-.09-.041-.106a13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.061 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.893.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.028zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z`})}):n===`filesystem`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#f59e0b`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,M.jsx)(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`})}):n===`slack`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#e01e5a`,strokeWidth:`2.4`,strokeLinecap:`round`,children:[(0,M.jsx)(`line`,{x1:`9`,y1:`3`,x2:`7`,y2:`21`}),(0,M.jsx)(`line`,{x1:`17`,y1:`3`,x2:`15`,y2:`21`}),(0,M.jsx)(`line`,{x1:`3`,y1:`9`,x2:`21`,y2:`7`}),(0,M.jsx)(`line`,{x1:`3`,y1:`17`,x2:`21`,y2:`15`})]}):n===`postgres`||n===`sqlite`||n===`postgresql`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:n===`postgres`||n===`postgresql`?`#336791`:`#0f80cc`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}),(0,M.jsx)(`path`,{d:`M21 12c0 1.66-4 3-9 3s-9-1.34-9-3`}),(0,M.jsx)(`path`,{d:`M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5`})]}):n===`puppeteer`||n===`playwright`||n===`browser`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#38bdf8`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,M.jsx)(`line`,{x1:`2`,y1:`12`,x2:`22`,y2:`12`}),(0,M.jsx)(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}):n===`fetch`||n===`web`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#22c55e`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,M.jsx)(`line`,{x1:`2`,y1:`12`,x2:`22`,y2:`12`}),(0,M.jsx)(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}):n===`time`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#a78bfa`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,M.jsx)(`polyline`,{points:`12 6 12 12 16 14`})]}):n===`memory`?(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#f472b6`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`path`,{d:`M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44 2.5 2.5 0 0 1-2.96-3.08 3 3 0 0 1-.34-5.58 2.5 2.5 0 0 1 1.32-4.24 2.5 2.5 0 0 1 1.98-3A2.5 2.5 0 0 1 9.5 2z`}),(0,M.jsx)(`path`,{d:`M14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 4.96.44 2.5 2.5 0 0 0 2.96-3.08 3 3 0 0 0 .34-5.58 2.5 2.5 0 0 0-1.32-4.24 2.5 2.5 0 0 0-1.98-3A2.5 2.5 0 0 0 14.5 2z`})]}):n===`sequential-thinking`||n===`sequentialthinking`?(0,M.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#fb923c`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,M.jsx)(`path`,{d:`M8 3v18M16 3v18M3 8h5M3 16h5M16 8h5M16 16h5`})}):(0,M.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#10b981`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`rect`,{x:`2`,y:`2`,width:`20`,height:`8`,rx:`2`,ry:`2`}),(0,M.jsx)(`rect`,{x:`2`,y:`14`,width:`20`,height:`8`,rx:`2`,ry:`2`}),(0,M.jsx)(`line`,{x1:`6`,y1:`6`,x2:`6.01`,y2:`6`}),(0,M.jsx)(`line`,{x1:`6`,y1:`18`,x2:`6.01`,y2:`18`})]})}function pe(e=20,t=`currentColor`){return(0,M.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:t,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`path`,{d:`M22 10v6M2 10l10-5 10 5-10 5z`}),(0,M.jsx)(`path`,{d:`M6 12v5c3 3 9 3 12 0v-5`})]})}function me(e=20,t=`currentColor`){return(0,M.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:t,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`path`,{d:`M12 2v8M18 10V4M6 10V4`}),(0,M.jsx)(`path`,{d:`M4 10h16v3a4 4 0 0 1-4 4h-8a4 4 0 0 1-4-4v-3z`}),(0,M.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12`,y2:`22`})]})}function he(e=20,t=`currentColor`){return(0,M.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:t,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`path`,{d:`M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z`}),(0,M.jsx)(`polyline`,{points:`3.27 6.96 12 12.01 20.73 6.96`}),(0,M.jsx)(`line`,{x1:`12`,y1:`22.08`,x2:`12`,y2:`12`})]})}function ge(e=20,t=`currentColor`){return(0,M.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:t,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`12`,cy:`13`,r:`8`}),(0,M.jsx)(`polyline`,{points:`12 9 12 13 15 15`}),(0,M.jsx)(`path`,{d:`M9 2h6M5 5l-1.5-1.5M19 5l1.5-1.5`})]})}function _e(e=20,t=`currentColor`){return(0,M.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:t,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`path`,{d:`M10 13a5 5 0 0 0 7.07 0l2.83-2.83a5 5 0 0 0-7.07-7.07l-1.5 1.5`}),(0,M.jsx)(`path`,{d:`M14 11a5 5 0 0 0-7.07 0l-2.83 2.83a5 5 0 0 0 7.07 7.07l1.5-1.5`})]})}function j(e,t){return(0,M.jsx)(`div`,{style:{width:t,height:t,borderRadius:`var(--radius-lg)`,background:`var(--accent, #10b981)`,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:e})}function ve(e=38){return j((0,M.jsx)(`svg`,{width:e*.56,height:e*.56,viewBox:`0 0 24 24`,fill:`rgba(255, 255, 255, 0.92)`,children:(0,M.jsx)(`path`,{d:`M3 7a2 2 0 0 1 2-2h4.17a2 2 0 0 1 1.41.59L12 7h7a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z`})}),e)}function ye(e=38){return j((0,M.jsxs)(`svg`,{width:e*.56,height:e*.56,viewBox:`0 0 24 24`,fill:`none`,stroke:`rgba(255, 255, 255, 0.92)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`path`,{d:`M22 10v6M2 10l10-5 10 5-10 5z`}),(0,M.jsx)(`path`,{d:`M6 12v5c3 3 9 3 12 0v-5`})]}),e)}function be(e=38){return j((0,M.jsxs)(`svg`,{width:e*.56,height:e*.56,viewBox:`0 0 24 24`,fill:`none`,stroke:`rgba(255, 255, 255, 0.92)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,M.jsx)(`circle`,{cx:`12`,cy:`13`,r:`8`}),(0,M.jsx)(`polyline`,{points:`12 9 12 13 15 15`}),(0,M.jsx)(`path`,{d:`M9 2h6M5 5l-1.5-1.5M19 5l1.5-1.5`})]}),e)}var M,xe,Se=t((()=>{n(),M=r(),xe=[{key:`spotify`,name:`Spotify`,desc:`Control playback with AI. Requires playerctl locally or Spotify OAuth.`,icon:`🎵`,enabledField:`pluginSpotifyEnabled`,nativeName:`spotify`,hasCredentials:!0,isOAuth:!0,oauthProvider:`spotify`,fields:[{label:`Spotify Client ID`,field:`spotifyClientId`,type:`text`,placeholder:`Enter Spotify Client ID...`},{label:`Spotify Client Secret`,field:`spotifyClientSecret`,type:`password`,placeholder:`Enter Spotify Client Secret...`}]},{key:`discord`,name:`Discord RPC`,desc:`Show "Using Mint Assistant" status in your local Discord client.`,icon:`💬`,enabledField:`pluginDiscordEnabled`,hasCredentials:!1},{key:`gmail`,name:`Gmail`,desc:`Read, summarize, draft, and send emails via Google OAuth / API credentials.`,icon:`📧`,enabledField:`pluginGmailEnabled`,nativeName:`gmail`,hasCredentials:!0,isOAuth:!0,oauthProvider:`google`,fields:[{label:`Google Client ID`,field:`gmailClientId`,type:`text`,placeholder:`your_client_id.apps.googleusercontent.com`},{label:`Google Client Secret`,field:`gmailClientSecret`,type:`password`,placeholder:`your_client_secret`},{label:`Gmail Refresh Token`,field:`gmailRefreshToken`,type:`password`,placeholder:`your_refresh_token`}]},{key:`calendar`,name:`Google Calendar`,desc:`Read schedule, check availability, and create calendar events.`,icon:`📅`,enabledField:`pluginCalendarEnabled`,nativeName:`google_calendar`,hasCredentials:!0,isOAuth:!0,oauthProvider:`google`,fields:[{label:`Google Client ID`,field:`googleCalendarClientId`,type:`text`,placeholder:`your_client_id.apps.googleusercontent.com`},{label:`Google Client Secret`,field:`googleCalendarClientSecret`,type:`password`,placeholder:`your_client_secret`},{label:`Google Refresh Token`,field:`googleCalendarRefreshToken`,type:`password`,placeholder:`your_refresh_token`}]},{key:`notion`,name:`Notion`,desc:`Search pages, query databases, and create notes in Notion.`,icon:`📝`,enabledField:`pluginNotionEnabled`,nativeName:`notion`,hasCredentials:!0,isOAuth:!0,oauthProvider:`notion`,fields:[{label:`Notion Integration API Key`,field:`notionApiKey`,type:`password`,placeholder:`secret_...`},{label:`Default Database ID`,field:`notionDatabaseId`,type:`text`,placeholder:`32-character database ID`}]},{key:`github`,name:`GitHub`,desc:`Access repositories, pull requests, and issues via GitHub OAuth.`,icon:`🐱`,enabledField:`pluginGithubEnabled`,nativeName:`github`,hasCredentials:!0,isOAuth:!0,oauthProvider:`github`,fields:[{label:`GitHub Client ID`,field:`githubClientId`,type:`text`,placeholder:`Ov23...`},{label:`GitHub Client Secret`,field:`githubClientSecret`,type:`password`,placeholder:`your_github_client_secret`},{label:`GitHub Personal Access Token (Optional)`,field:`githubToken`,type:`password`,placeholder:`ghp_...`}]},{key:`dev_tools`,name:`Dev Tools`,desc:`Read git status, log, and branch info from the workspace.`,icon:`🛠️`,enabledField:`pluginDevToolsEnabled`,hasCredentials:!1,nativeName:`dev_tools`},{key:`docker`,name:`Docker`,desc:`List, start, stop, or restart local Docker containers.`,icon:`🐳`,enabledField:`pluginDockerEnabled`,hasCredentials:!1,nativeName:`docker`},{key:`obsidian`,name:`Local Notes`,desc:`List, read, or append Markdown notes in your notes folder.`,icon:`🗒️`,enabledField:`pluginObsidianEnabled`,hasCredentials:!1,nativeName:`obsidian`},{key:`system_metrics`,name:`System Metrics`,desc:`Read native RAM, CPU, and uptime metrics.`,icon:`📊`,enabledField:`pluginSystemMetricsEnabled`,hasCredentials:!1,nativeName:`system_metrics`}]})),Ce=t((()=>{}));function we(e){if(!e)return!1;let t=e.toLowerCase();return t.endsWith(`:free`)||t.includes(`:free`)}function Te(e){let t=e.trim().toLowerCase(),n=t.split(`/`).pop()||t;return n.includes(`banana`)||n.includes(`imagen`)||n.includes(`image`)||n.includes(`dall-e`)||n.includes(`flux`)||n.includes(`sdxl`)||n.includes(`sd3`)||n.includes(`ideogram`)||n.includes(`veo-`)||n.includes(`tts`)||n.includes(`whisper`)||n.includes(`embed`)||n.includes(`aqa`)||n.includes(`moderation`)||n.includes(`native-audio`)||n.includes(`-live-`)||n.endsWith(`-live`)}function Ee(e,t){if(Te(e))return!1;let n=(t||``).trim().toLowerCase(),r=e.trim().toLowerCase(),i=r.split(`/`).pop()||r;return i.includes(`gemini`)||n===`gemini`?i.startsWith(`gemini-2.5`)||i.startsWith(`gemini-3`)||i.includes(`thinking`):i.includes(`claude`)||n===`anthropic`?i.includes(`3-7`)||i.includes(`3.7`)||i.includes(`sonnet-4`)||i.includes(`opus-4`)||i.includes(`haiku-4`)||i.includes(`claude-4`)||i.includes(`sonnet-5`)||i.includes(`opus-5`)||i.includes(`haiku-5`)||i.includes(`thinking`):i.includes(`deepseek`)||n===`deepseek`?i.includes(`reasoner`)||i.includes(`r1`)||i.includes(`v4`)||i.includes(`flash`)||i.includes(`pro`)||i.includes(`thinking`):i.startsWith(`o1`)||i.startsWith(`o3`)||i.startsWith(`o4`)||i.startsWith(`gpt-5`)?!0:i.includes(`thinking`)||i.includes(`reason`)||i.includes(`qwq`)||i.includes(`r1`)||i.includes(`qwen3`)||i.includes(`glm-5`)||i.includes(`glm-4.5`)||i.includes(`grok-3-mini`)||i.includes(`grok-4`)}function De(e,t){let n=e.trim(),r=n.toLowerCase();if(q[n])return q[n];for(let[e,t]of Object.entries(q))if(e.toLowerCase()===r||r.endsWith(e.toLowerCase()))return t;let i=`128K Context`;r.includes(`gemini`)||t===`gemini`?i=r.includes(`pro`)?`2M Context`:`1M Context`:r.includes(`claude`)||t===`anthropic`?i=`200K Context`:r.includes(`deepseek-flash`)||r.includes(`deepseek-v4`)?i=`1M Context`:(r.includes(`llama-3`)||r.includes(`qwen`))&&(i=`128K Context`);let a=!Te(n),o=Ee(n,t);return{description:a?o?`${n} supports native multi-step reasoning and dynamic thinking effort.`:`${n} is an optimized conversational model supporting prompted chain-of-thought reasoning.`:`${n} is a specialized media or embedding model.`,contextWindow:i,supportsThinking:a}}var N,Oe,P,F,I,L,R,z,B,V,H,U,W,G,K,q,J=t((()=>{N=[`gemini-3.6-flash`,`gemini-3.5-flash`,`gemini-3.5-flash-lite`,`gemini-3.1-flash-lite`,`gemini-2.5-flash`],Oe=[`gemini-2.5-flash-native-audio-preview-12-2025`,`gemini-3.1-flash-live-preview`],P=[`Puck`,`Charon`,`Kore`,`Fenrir`,`Aoede`,`Leda`,`Orus`,`Zephyr`],F=[`gpt-5.6-sol`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5-thinking`,`gpt-5.5-pro`],I=[`claude-sonnet-5`,`claude-opus-5`,`claude-sonnet-4.6`,`claude-opus-4.8`,`claude-haiku-4.5`],L=[`openai/gpt-5.6-terra`,`anthropic/claude-sonnet-5`,`google/gemini-3.6-flash`,`x-ai/grok-4.5`,`deepseek/deepseek-v4-pro`],R=[`anthropic/claude-3.7-sonnet`,`anthropic/claude-3.5-sonnet`,`openai/gpt-4o`,`openai/gpt-4o-mini`,`deepseek/deepseek-r1`,`deepseek/deepseek-chat`,`google/gemini-2.5-flash`,`google/gemini-2.5-pro`,`meta-llama/llama-3.3-70b-instruct`,`qwen/qwen-2.5-72b-instruct`],z=[`deepseek-flash`,`deepseek-v4-pro`,`deepseek-chat`,`deepseek-reasoner`],B=[`Qwen/Qwen3.6-27B`,`deepseek-ai/DeepSeek-V4-Flash`,`google/gemma-3-27b-it`,`meta-llama/Llama-3.3-70B-Instruct`,`microsoft/phi-4`,`zai-org/GLM-5.2-FP8`,`mistralai/Mistral-Large-Instruct`,`openai/gpt-oss-120b`],V=[`local-model`,`Qwen/Qwen2.5-7B-Instruct-GGUF`,`meta-llama/Llama-3.2-3B-Instruct-GGUF`,`lmstudio-community/gemma-2-9b-it-GGUF`],H=[],U={gemini:N,openai:F,anthropic:I,openrouter:L,deepseek:z,huggingface:B,local_openai:V,ollama:H},W={nanobanana:[{value:`gemini-3.1-flash-image`,label:`Gemini 3.1 Flash Image (Default)`},{value:`gemini-3-pro-image`,label:`Gemini 3 Pro Image`},{value:`gemini-2.5-flash-image`,label:`Gemini 2.5 Flash Image`}],bfl:[{value:`flux-pro-1.1`,label:`FLUX 1.1 Pro (Default)`},{value:`flux-pro-1.1-ultra`,label:`FLUX 1.1 Pro Ultra`},{value:`flux-pro`,label:`FLUX Pro`},{value:`flux-dev`,label:`FLUX Dev`},{value:`flux-schnell`,label:`FLUX Schnell`},{value:`flux-kontext-pro`,label:`FLUX Kontext Pro`},{value:`flux-kontext-max`,label:`FLUX Kontext Max`},{value:`flux-fill-pro`,label:`FLUX Fill Pro`}],dalle:[{value:`gpt-image-1`,label:`GPT Image 1 (Default)`},{value:`dall-e-3`,label:`DALL·E 3`}],stability:[{value:`ultra`,label:`Stable Image Ultra (Default)`},{value:`core`,label:`Stable Image Core`},{value:`sd3.5-large`,label:`SD3.5 Large`},{value:`sd3.5-large-turbo`,label:`SD3.5 Large Turbo`},{value:`sd3-medium`,label:`SD3 Medium`}],ideogram:[{value:`V_3`,label:`Ideogram V3 (Default)`},{value:`V_2`,label:`Ideogram V2`},{value:`V_2_TURBO`,label:`Ideogram V2 Turbo`}],replicate:[{value:`black-forest-labs/flux-1.1-pro`,label:`FLUX 1.1 Pro (Default)`},{value:`black-forest-labs/flux-kontext-pro`,label:`FLUX Kontext Pro`},{value:`black-forest-labs/flux-fill-pro`,label:`FLUX Fill Pro`},{value:`black-forest-labs/flux-schnell`,label:`FLUX Schnell`},{value:`stability-ai/sdxl`,label:`SDXL`},{value:`timbrooks/instruct-pix2pix`,label:`InstructPix2Pix`}]},G={veo:[{value:`veo-3.1-generate-preview`,label:`Veo 3.1 Generate Preview (Default)`},{value:`veo-3.1-fast-generate-preview`,label:`Veo 3.1 Fast Generate Preview`},{value:`veo-3.1-lite-generate-preview`,label:`Veo 3.1 Lite Generate Preview`},{value:`veo-2.0-generate-001`,label:`Veo 2.0 Generate`}]},K={gemini:{listKey:`nanobanana`,configField:`nanobananaModel`},dalle:{listKey:`dalle`,configField:`dalleModel`},stability:{listKey:`stability`,configField:`stabilityModel`},ideogram:{listKey:`ideogram`,configField:`ideogramModel`},replicate:{listKey:`replicate`,configField:`replicateModel`},bfl:{listKey:`bfl`,configField:`bflModel`}},q={"gemini-2.5-flash":{description:`Google ultra-fast multimodal model with adaptive reasoning and high efficiency.`,contextWindow:`1M Context`,supportsThinking:!0},"gemini-2.5-pro":{description:`Google advanced flagship model for complex coding, mathematical reasoning, and multimodal analysis.`,contextWindow:`2M Context`,supportsThinking:!0},"gemini-3.6-flash":{description:`Next-gen Gemini Flash model with enhanced tool use and native speed.`,contextWindow:`1M Context`,supportsThinking:!0},"gemini-3.5-flash":{description:`High-throughput Gemini reasoning model for fast agentic workflows.`,contextWindow:`1M Context`,supportsThinking:!0},"gemini-3.5-flash-lite":{description:`Ultra-lightweight Gemini model optimized for latency and quick queries.`,contextWindow:`1M Context`,supportsThinking:!0},"gemini-3.1-flash-lite":{description:`Compact high-speed Gemini variant for real-time applications.`,contextWindow:`1M Context`,supportsThinking:!0},"nano-banana-pro-preview":{description:`Google Gemini Nano Banana Pro model for AI image generation and photo editing.`,contextWindow:`32K Context`,supportsThinking:!1},"gemini-nano-banana-2.1":{description:`Google Gemini Nano Banana 2.1 model for fast image generation and visual editing.`,contextWindow:`32K Context`,supportsThinking:!1},"claude-sonnet-5":{description:`Anthropic flagship hybrid model with extended thinking and deep coding comprehension.`,contextWindow:`200K Context`,supportsThinking:!0},"claude-opus-5":{description:`Anthropic frontier model for state-of-the-art reasoning, analysis, and architecture.`,contextWindow:`200K Context`,supportsThinking:!0},"claude-sonnet-4.6":{description:`High-intelligence Claude model optimized for precise software engineering.`,contextWindow:`200K Context`,supportsThinking:!0},"claude-opus-4.8":{description:`Heavyweight reasoning model designed for complex multi-turn logic.`,contextWindow:`200K Context`,supportsThinking:!0},"claude-haiku-4.5":{description:`Fast and responsive Claude model for lightweight conversational turns.`,contextWindow:`200K Context`,supportsThinking:!0},"gpt-5.6-terra":{description:`Balanced frontier OpenAI model with robust multi-step reasoning capabilities.`,contextWindow:`128K Context`,supportsThinking:!0},"gpt-5.6-luna":{description:`Next-generation versatile model for coding, creative synthesis, and tool use.`,contextWindow:`128K Context`,supportsThinking:!0},"gpt-5.6-sol":{description:`High-performance OpenAI model designed for deep analysis and problem solving.`,contextWindow:`128K Context`,supportsThinking:!0},"gpt-5.5-thinking":{description:`OpenAI dedicated thinking model with extended chain-of-thought processing.`,contextWindow:`128K Context`,supportsThinking:!0},"gpt-5.5-pro":{description:`Flagship OpenAI model with high instruction precision and broad domain mastery.`,contextWindow:`128K Context`,supportsThinking:!0},"gpt-4o":{description:`OpenAI versatile multimodal model for text, vision, and high-speed chat.`,contextWindow:`128K Context`,supportsThinking:!0},"gpt-4o-mini":{description:`Compact and fast OpenAI model for everyday conversational tasks.`,contextWindow:`128K Context`,supportsThinking:!0},"deepseek-flash":{description:`DeepSeek V4.1 Flash (1M context) supporting both thinking and fast non-thinking modes.`,contextWindow:`1M Context`,supportsThinking:!0},"deepseek-v4-flash":{description:`High-throughput DeepSeek V4 Flash model supporting both thinking and non-thinking modes.`,contextWindow:`1M Context`,supportsThinking:!0},"deepseek-v4-pro":{description:`Advanced DeepSeek V4 Pro model (1M context) featuring deep multilingual and coding reasoning.`,contextWindow:`1M Context`,supportsThinking:!0},"deepseek-reasoner":{description:`DeepSeek native reasoning model (R1 / V3.2 thinking) with comprehensive chain-of-thought.`,contextWindow:`128K Context`,supportsThinking:!0},"deepseek-chat":{description:`General-purpose DeepSeek conversational and coding model.`,contextWindow:`128K Context`,supportsThinking:!0}}}));function ke(e){let t=e&&typeof e==`object`?e:{};return Object.fromEntries(Object.entries(Y).map(([e,n])=>[e,typeof t[e]==`boolean`?t[e]:n]))}function Ae(e,t,n){let r=ke(e);return r.enabled&&r[t]&&r[n]}async function je(e=!1){if(window.__TAURI_INTERNALS__){let t=await o(()=>import(`./dist-js-BV3mI7uw.js`),__vite__mapDeps([0,1,2]));return await t.isPermissionGranted()?`granted`:e?t.requestPermission():`default`}return typeof Notification>`u`?`unsupported`:e?Notification.requestPermission():Notification.permission}var Y,Me=t((()=>{a(),Y={enabled:!0,replies:!0,approvals:!0,system:!0,os:!0,inApp:!0}}));function X(e){if(!e)return`Primary provider`;let t=e.startsWith(`custom:`)?e.replace(/^custom:/,``):e;switch(t.toLowerCase()){case`gemini`:return`Gemini`;case`openai`:return`OpenAI`;case`openrouter`:return`OpenRouter`;case`deepseek`:return`DeepSeek`;case`anthropic`:return`Claude`;case`huggingface`:return`Hugging Face`;case`local_openai`:return`Local OpenAI`;case`ollama`:return`Ollama`;case`groq`:return`Groq`;default:return t.charAt(0).toUpperCase()+t.slice(1)}}function Ne(e){if(!e?.fallbackProvider)return``;let t=e.fallbackReason?` (${e.fallbackReason})`:``;return`${X(e.fallbackProvider)} unavailable${t}, fell back to ${X(e.provider)}.`}var Pe=t((()=>{})),Fe,Ie=t((()=>{Fe=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eAnthropic%3c/title%3e%3cpath%20d='M13.827%203.52h3.603L24%2020h-3.603l-6.57-16.48zm-7.258%200h3.767L16.906%2020h-3.674l-1.343-3.461H5.017l-1.344%203.46H0L6.57%203.522zm4.132%209.959L8.453%207.687%206.205%2013.48H10.7z'%3e%3c/path%3e%3c/svg%3e`})),Le,Re=t((()=>{Le=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%20fill='%234D6BFE'%3e%3c/path%3e%3c/svg%3e`})),Z,ze=t((()=>{Z=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGemini%3c/title%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='%233186FF'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-0-_R_0_)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-1-_R_0_)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-2-_R_0_)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-0-_R_0_'%20x1='7'%20x2='11'%20y1='15.5'%20y2='12'%3e%3cstop%20stop-color='%2308B962'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%2308B962'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-1-_R_0_'%20x1='8'%20x2='11.5'%20y1='5.5'%20y2='11'%3e%3cstop%20stop-color='%23F94543'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%23F94543'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-2-_R_0_'%20x1='3.5'%20x2='17.5'%20y1='13.5'%20y2='12'%3e%3cstop%20stop-color='%23FABC12'%3e%3c/stop%3e%3cstop%20offset='.46'%20stop-color='%23FABC12'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`})),Be,Ve=t((()=>{Be=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eHuggingFace%3c/title%3e%3cpath%20d='M2.25%2011.535c0-3.407%201.847-6.554%204.844-8.258a9.822%209.822%200%20019.687%200c2.997%201.704%204.844%204.851%204.844%208.258%200%205.266-4.337%209.535-9.687%209.535S2.25%2016.8%202.25%2011.535z'%20fill='%23FF9D0B'%3e%3c/path%3e%3cpath%20d='M11.938%2020.086c4.797%200%208.687-3.829%208.687-8.551%200-4.722-3.89-8.55-8.687-8.55-4.798%200-8.688%203.828-8.688%208.55%200%204.722%203.89%208.55%208.688%208.55z'%20fill='%23FFD21E'%3e%3c/path%3e%3cpath%20d='M11.875%2015.113c2.457%200%203.25-2.156%203.25-3.263%200-.576-.393-.394-1.023-.089-.582.283-1.365.675-2.224.675-1.798%200-3.25-1.693-3.25-.586%200%201.107.79%203.263%203.25%203.263h-.003z'%20fill='%23FF323D'%3e%3c/path%3e%3cpath%20d='M14.76%209.21c.32.108.445.753.767.585.447-.233.707-.708.659-1.204a1.235%201.235%200%2000-.879-1.059%201.262%201.262%200%2000-1.33.394c-.322.384-.377.92-.14%201.36.153.283.638-.177.925-.079l-.002.003zm-5.887%200c-.32.108-.448.753-.768.585a1.226%201.226%200%2001-.658-1.204c.048-.495.395-.913.878-1.059a1.262%201.262%200%20011.33.394c.322.384.377.92.14%201.36-.152.283-.64-.177-.925-.079l.003.003zm1.12%205.34a2.166%202.166%200%20011.325-1.106c.07-.02.144.06.219.171l.192.306c.069.1.139.175.209.175.074%200%20.15-.074.223-.172l.205-.302c.08-.11.157-.188.234-.165.537.168.986.536%201.25%201.026.932-.724%201.275-1.905%201.275-2.633%200-.508-.306-.426-.81-.19l-.616.296c-.52.24-1.148.48-1.824.48-.676%200-1.302-.24-1.823-.48l-.589-.283c-.52-.248-.838-.342-.838.177%200%20.703.32%201.831%201.187%202.56l.18.14z'%20fill='%233A3B45'%3e%3c/path%3e%3cpath%20d='M17.812%2010.366a.806.806%200%2000.813-.8c0-.441-.364-.8-.813-.8a.806.806%200%2000-.812.8c0%20.442.364.8.812.8zm-11.624%200a.806.806%200%2000.812-.8c0-.441-.364-.8-.812-.8a.806.806%200%2000-.813.8c0%20.442.364.8.813.8zM4.515%2013.073c-.405%200-.765.162-1.017.46a1.455%201.455%200%2000-.333.925%201.801%201.801%200%2000-.485-.074c-.387%200-.737.146-.985.409a1.41%201.41%200%2000-.2%201.722%201.302%201.302%200%2000-.447.694c-.06.222-.12.69.2%201.166a1.267%201.267%200%2000-.093%201.236c.238.533.81.958%201.89%201.405l.24.096c.768.3%201.473.492%201.478.494.89.243%201.808.375%202.732.394%201.465%200%202.513-.443%203.115-1.314.93-1.342.842-2.575-.274-3.763l-.151-.154c-.692-.684-1.155-1.69-1.25-1.912-.195-.655-.71-1.383-1.562-1.383-.46.007-.889.233-1.15.605-.25-.31-.495-.553-.715-.694a1.87%201.87%200%2000-.993-.312zm14.97%200c.405%200%20.767.162%201.017.46.216.262.333.588.333.925.158-.047.322-.071.487-.074.388%200%20.738.146.985.409a1.41%201.41%200%2001.2%201.722c.22.178.377.422.445.694.06.222.12.69-.2%201.166.244.37.279.836.093%201.236-.238.533-.81.958-1.889%201.405l-.239.096c-.77.3-1.475.492-1.48.494-.89.243-1.808.375-2.732.394-1.465%200-2.513-.443-3.115-1.314-.93-1.342-.842-2.575.274-3.763l.151-.154c.695-.684%201.157-1.69%201.252-1.912.195-.655.708-1.383%201.56-1.383.46.007.889.233%201.15.605.25-.31.495-.553.718-.694.244-.162.523-.265.814-.3l.176-.012z'%20fill='%23FF9D0B'%3e%3c/path%3e%3cpath%20d='M9.785%2020.132c.688-.994.638-1.74-.305-2.667-.945-.928-1.495-2.288-1.495-2.288s-.205-.788-.672-.714c-.468.074-.81%201.25.17%201.971.977.721-.195%201.21-.573.534-.375-.677-1.405-2.416-1.94-2.751-.532-.332-.907-.148-.782.541.125.687%202.357%202.35%202.14%202.707-.218.362-.983-.42-.983-.42S2.953%2014.9%202.43%2015.46c-.52.558.398%201.026%201.7%201.803%201.308.778%201.41.985%201.225%201.28-.187.295-3.07-2.1-3.34-1.083-.27%201.011%202.943%201.304%202.745%202.006-.2.7-2.265-1.324-2.685-.537-.425.79%202.913%201.718%202.94%201.725%201.075.276%203.813.859%204.77-.522zm4.432%200c-.687-.994-.64-1.74.305-2.667.943-.928%201.493-2.288%201.493-2.288s.205-.788.675-.714c.465.074.807%201.25-.17%201.971-.98.721.195%201.21.57.534.377-.677%201.407-2.416%201.94-2.751.532-.332.91-.148.782.541-.125.687-2.355%202.35-2.137%202.707.215.362.98-.42.98-.42S21.05%2014.9%2021.57%2015.46c.52.558-.395%201.026-1.7%201.803-1.308.778-1.408.985-1.225%201.28.187.295%203.07-2.1%203.34-1.083.27%201.011-2.94%201.304-2.743%202.006.2.7%202.263-1.324%202.685-.537.423.79-2.912%201.718-2.94%201.725-1.077.276-3.815.859-4.77-.522z'%20fill='%23FFD21E'%3e%3c/path%3e%3c/svg%3e`})),He,Ue=t((()=>{He=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eLM%20Studio%3c/title%3e%3cpath%20d='M2.84%202a1.273%201.273%200%20100%202.547h14.107a1.273%201.273%200%20100-2.547H2.84zM7.935%205.33a1.273%201.273%200%20000%202.548H22.04a1.274%201.274%200%20000-2.547H7.935zM3.624%209.935c0-.704.57-1.274%201.274-1.274h14.106a1.274%201.274%200%20010%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM1.273%2012.188a1.273%201.273%200%20100%202.547H15.38a1.274%201.274%200%20000-2.547H1.273zM3.624%2016.792c0-.704.57-1.274%201.274-1.274h14.106a1.273%201.273%200%20110%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM13.029%2018.849a1.273%201.273%200%20100%202.547h9.698a1.273%201.273%200%20100-2.547h-9.698z'%20fill-opacity='.3'%3e%3c/path%3e%3cpath%20d='M2.84%202a1.273%201.273%200%20100%202.547h10.287a1.274%201.274%200%20000-2.547H2.84zM7.935%205.33a1.273%201.273%200%20000%202.548H18.22a1.274%201.274%200%20000-2.547H7.935zM3.624%209.935c0-.704.57-1.274%201.274-1.274h10.286a1.273%201.273%200%20010%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM1.273%2012.188a1.273%201.273%200%20100%202.547H11.56a1.274%201.274%200%20000-2.547H1.273zM3.624%2016.792c0-.704.57-1.274%201.274-1.274h10.286a1.273%201.273%200%20110%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM13.029%2018.849a1.273%201.273%200%20100%202.547h5.78a1.273%201.273%200%20100-2.547h-5.78z'%3e%3c/path%3e%3c/svg%3e`})),We,Ge=t((()=>{We=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOllama%3c/title%3e%3cpath%20d='M7.905%201.09c.216.085.411.225.588.41.295.306.544.744.734%201.263.191.522.315%201.1.362%201.68a5.054%205.054%200%20012.049-.636l.051-.004c.87-.07%201.73.087%202.48.474.101.053.2.11.297.17.05-.569.172-1.134.36-1.644.19-.52.439-.957.733-1.264a1.67%201.67%200%2001.589-.41c.257-.1.53-.118.796-.042.401.114.745.368%201.016.737.248.337.434.769.561%201.287.23.934.27%202.163.115%203.645l.053.04.026.019c.757.576%201.284%201.397%201.563%202.35.435%201.487.216%203.155-.534%204.088l-.018.021.002.003c.417.762.67%201.567.724%202.4l.002.03c.064%201.065-.2%202.137-.814%203.19l-.007.01.01.024c.472%201.157.62%202.322.438%203.486l-.006.039a.651.651%200%2001-.747.536.648.648%200%2001-.54-.742c.167-1.033.01-2.069-.48-3.123a.643.643%200%2001.04-.617l.004-.006c.604-.924.854-1.83.8-2.72-.046-.779-.325-1.544-.8-2.273a.644.644%200%2001.18-.886l.009-.006c.243-.159.467-.565.58-1.12a4.229%204.229%200%2000-.095-1.974c-.205-.7-.58-1.284-1.105-1.683-.595-.454-1.383-.673-2.38-.61a.653.653%200%2001-.632-.371c-.314-.665-.772-1.141-1.343-1.436a3.288%203.288%200%2000-1.772-.332c-1.245.099-2.343.801-2.67%201.686a.652.652%200%2001-.61.425c-1.067.002-1.893.252-2.497.703-.522.39-.878.935-1.066%201.588a4.07%204.07%200%2000-.068%201.886c.112.558.331%201.02.582%201.269l.008.007c.212.207.257.53.109.785-.36.622-.629%201.549-.673%202.44-.05%201.018.186%201.902.719%202.536l.016.019a.643.643%200%2001.095.69c-.576%201.236-.753%202.252-.562%203.052a.652.652%200%2001-1.269.298c-.243-1.018-.078-2.184.473-3.498l.014-.035-.008-.012a4.339%204.339%200%2001-.598-1.309l-.005-.019a5.764%205.764%200%2001-.177-1.785c.044-.91.278-1.842.622-2.59l.012-.026-.002-.002c-.293-.418-.51-.953-.63-1.545l-.005-.024a5.352%205.352%200%2001.093-2.49c.262-.915.777-1.701%201.536-2.269.06-.045.123-.09.186-.132-.159-1.493-.119-2.73.112-3.67.127-.518.314-.95.562-1.287.27-.368.614-.622%201.015-.737.266-.076.54-.059.797.042zm4.116%209.09c.936%200%201.8.313%202.446.855.63.527%201.005%201.235%201.005%201.94%200%20.888-.406%201.58-1.133%202.022-.62.375-1.451.557-2.403.557-1.009%200-1.871-.259-2.493-.734-.617-.47-.963-1.13-.963-1.845%200-.707.398-1.417%201.056-1.946.668-.537%201.55-.849%202.485-.849zm0%20.896a3.07%203.07%200%2000-1.916.65c-.461.37-.722.835-.722%201.25%200%20.428.21.829.61%201.134.455.347%201.124.548%201.943.548.799%200%201.473-.147%201.932-.426.463-.28.7-.686.7-1.257%200-.423-.246-.89-.683-1.256-.484-.405-1.14-.643-1.864-.643zm.662%201.21l.004.004c.12.151.095.37-.056.49l-.292.23v.446a.375.375%200%2001-.376.373.375.375%200%2001-.376-.373v-.46l-.271-.218a.347.347%200%2001-.052-.49.353.353%200%2001.494-.051l.215.172.22-.174a.353.353%200%2001.49.051zm-5.04-1.919c.478%200%20.867.39.867.871a.87.87%200%2001-.868.871.87.87%200%2001-.867-.87.87.87%200%2001.867-.872zm8.706%200c.48%200%20.868.39.868.871a.87.87%200%2001-.868.871.87.87%200%2001-.867-.87.87.87%200%2001.867-.872zM7.44%202.3l-.003.002a.659.659%200%2000-.285.238l-.005.006c-.138.189-.258.467-.348.832-.17.692-.216%201.631-.124%202.782.43-.128.899-.208%201.404-.237l.01-.001.019-.034c.046-.082.095-.161.148-.239.123-.771.022-1.692-.253-2.444-.134-.364-.297-.65-.453-.813a.628.628%200%2000-.107-.09L7.44%202.3zm9.174.04l-.002.001a.628.628%200%2000-.107.09c-.156.163-.32.45-.453.814-.29.794-.387%201.776-.23%202.572l.058.097.008.014h.03a5.184%205.184%200%20011.466.212c.086-1.124.038-2.043-.128-2.722-.09-.365-.21-.643-.349-.832l-.004-.006a.659.659%200%2000-.285-.239h-.004z'%3e%3c/path%3e%3c/svg%3e`})),Ke,qe=t((()=>{Ke=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M9.205%208.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357%201.356-.523%202.117-.523%202.854%200%204.662%202.212%204.662%204.566%200%20.167%200%20.357-.024.547l-4.71-2.759a.797.797%200%2000-.856%200l-5.97%203.473zm10.609%208.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473%201.95-1.118a.433.433%200%2001.476%200l4.543%202.617c1.309.76%202.189%202.378%202.189%203.948%200%201.808-1.07%203.473-2.76%204.163zM7.802%2012.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545%201.95-4.472%204.591-4.472%201%200%201.927.333%202.712.928L8.23%205.067c-.285.166-.428.404-.428.737v6.898zM12%2015.128l-2.795-1.57v-3.33L12%208.658l2.795%201.57v3.33L12%2015.128zm1.796%207.23c-1%200-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974%201.142c.167.095.238.238.238.428v5.233c0%202.545-1.974%204.472-4.614%204.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482%204.482%200%20014.21%206.327v5.423c0%20.333.143.571.428.738l5.947%203.449-1.95%201.118a.432.432%200%2001-.476%200zm-.262%203.9c-2.688%200-4.662-2.021-4.662-4.519%200-.19.024-.38.047-.57l4.686%202.71c.286.167.571.167.856%200l5.97-3.448v2.26c0%20.19-.07.333-.237.428l-4.543%202.616c-.619.357-1.356.523-2.117.523zm5.899%202.83a5.947%205.947%200%20005.827-4.756C22.287%2018.339%2024%2015.84%2024%2013.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498%200-3.401-2.759-5.947-5.946-5.947-.642%200-1.26.095-1.88.31A5.962%205.962%200%200010.205%200a5.947%205.947%200%2000-5.827%204.757C1.713%205.447%200%207.945%200%2010.49c0%201.666.713%203.283%201.998%204.448-.119.5-.19%201-.19%201.499%200%203.401%202.759%205.946%205.946%205.946.642%200%201.26-.095%201.88-.309a5.96%205.96%200%20004.162%201.713z'%3e%3c/path%3e%3c/svg%3e`})),Je,Ye=t((()=>{Je=`data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenRouter%3c/title%3e%3cpath%20d='M18.654%203.87a5.087%205.087%200%20110%2010.174L23.7%2019.09c.64.641.187%201.737-.72%201.737H8.48a8.479%208.479%200%20010-16.958h10.175zM8.479%207.26a5.087%205.087%200%20100%2010.176%205.087%205.087%200%20000-10.175z'%20fill='%23C8FF00'%3e%3c/path%3e%3c/svg%3e`}));function Xe(e){return[...U[e]??[]]}function Ze(e,t,n){let[r,i]=(0,Q.useState)(Xe(e)),[a,o]=(0,Q.useState)(!1),c=(0,Q.useRef)(0);return(0,Q.useEffect)(()=>{if(i(Xe(e)),e===`ollama`||e===`huggingface`)return;let r=++c.current;o(!0),s(e,t,n).then(e=>{r===c.current&&i(e)}).catch(()=>{}).finally(()=>{r===c.current&&o(!1)})},[e,t,n]),{models:r,loading:a}}var Q,Qe=t((()=>{Q=e(n()),J(),c()}));function $e(e){let t=e.fontFamily;return t?t===`'Inter', 'Noto Sans Thai', ui-sans-serif, system-ui, sans-serif`?{...e,fontFamily:$.fontFamily}:t===`'Noto Sans Thai', sans-serif`||t===`'Noto Sans Thai', 'Inter', ui-sans-serif, system-ui, sans-serif`?{...e,fontFamily:`'Noto Sans Thai', 'Inter', ui-sans-serif, system-ui, sans-serif`}:[`'Prompt', sans-serif`,`'Outfit', sans-serif`,`'Inter', sans-serif`,`'Sarabun', sans-serif`,`'Kanit', sans-serif`,`'Mitr', sans-serif`,`'Mali', sans-serif`,`'Mali', cursive`].includes(t)?{...e,fontFamily:$.fontFamily}:e:e}function et(e){return!e||e.typographyScaleVersion===2?e:{...e,fontSize:e.fontSize===`18px`?`16px`:e.fontSize,typographyScaleVersion:2}}var $,tt,nt=t((()=>{Me(),$={notificationSettings:{...Y},theme:`dark`,tuiTheme:`dark`,accentColor:`#10b981`,textColor:`#f8fafc`,systemTextColor:`#f8fafc`,chatTextColor:`#f8fafc`,customBgStart:`#0f172a`,customBgEnd:`#1e1b4b`,customPanelBg:`#1e293b`,surfaceStyle:`opaque`,glassBlur:`none`,reducedEffects:!1,fontFamily:`'IBM Plex Sans Thai', 'Noto Sans Thai', 'Inter', ui-sans-serif, system-ui, sans-serif`,fontSize:`16px`,typographyScaleVersion:2,apiKey:``,aiProvider:`gemini`,geminiModel:`gemini-2.5-flash`,openaiModel:`gpt-5.6-luna`,openrouterModel:`openai/gpt-5.6-terra`,deepseekModel:`deepseek-v4-flash`,anthropicModel:`claude-sonnet-5`,ollamaModel:`llama3:latest`,temperature:null,modelTemperatures:{},thinkingEnabled:!0,thinkingEffort:`medium`,modelThinkingConfigs:{},language:`th-TH`,proactiveInterval:60,proactiveCooldown:120,enableVoiceReply:!0,enableAgentCollaboration:!1,swarmMaxParallel:4,agentMaxSteps:40,autoSkillWriting:!1,ttsProvider:`google`,ttsVolume:1,ttsSpeed:1,ttsPitch:1,voiceMode:`legacy`,geminiLiveModel:`gemini-2.5-flash-native-audio-preview-12-2025`,geminiLiveVoice:`Puck`,pluginSpotifyEnabled:!1,pluginCalendarEnabled:!1,pluginGmailEnabled:!1,pluginNotionEnabled:!1,pluginDiscordEnabled:!1,showDesktopWidget:!0,mcpServers:{},hfModel:`Qwen/Qwen3.6-27B`,localApiBaseUrl:``,localModelName:`local-model`,ollamaHost:``,anthropicApiKey:``,openaiApiKey:``,openrouterApiKey:``,deepseekApiKey:``,hfApiKey:``,bflApiKey:``,bflModel:`flux-pro-1.1`,browserExecutable:``,browserViewportWidth:1440,browserViewportHeight:900,enableHeadlessTaskQueue:!1,enableAutoUpdate:!1,updaterEndpoint:``,updaterPublicKey:``,telegramBotToken:``,enableTelegramBridge:!1,discordBotToken:``,discordApplicationId:``,enableDiscordBridge:!1,slackBotToken:``,slackAppToken:``,enableSlackBridge:!1,lineChannelAccessToken:``,lineChannelSecret:``,enableLineBridge:!1,lineWebhookHost:`127.0.0.1`,lineWebhookPort:3e3,whatsappCloudAccessToken:``,whatsappPhoneNumberId:``,whatsappVerifyToken:``,whatsappAppSecret:``,enableWhatsappBridge:!1,whatsappWebhookHost:`127.0.0.1`,whatsappWebhookPort:3001,enableBridgeAckNotification:!0,bridgeAckMessage:`[Mint Agent] Remote command received, processing...`,notionApiKey:``,notionDatabaseId:``,gmailClientId:``,gmailClientSecret:``,spotifyClientId:``,spotifyClientSecret:``,googleCalendarClientId:``,googleCalendarClientSecret:``,searchProvider:`google`,braveSearchApiKey:``,googleSearchApiKey:``,googleSearchCx:``,searxngBaseUrl:``,imageGenProvider:`gemini`,stabilityApiKey:``,ideogramApiKey:``,replicateApiKey:``,nanobananaModel:`gemini-3.1-flash-image`,dalleModel:`gpt-image-1`,stabilityModel:`ultra`,ideogramModel:`V_3`,replicateModel:`black-forest-labs/flux-1.1-pro`,videoGenProvider:`veo`,veoModel:`veo-3.1-generate-preview`,agents:[{id:`planner`,name:`Planner`,provider:`gemini`,model:`gemini-2.5-flash`,apiKey:``,systemPrompt:`You are the Lead Planning Agent. Break down user goals into clear executable steps.`,systemInstruction:`You are the Lead Planning Agent. Break down user goals into clear executable steps.`,enabled:!0,avatar:`🎯`},{id:`coder`,name:`Coder`,provider:`openai`,model:`gpt-5.6-luna`,apiKey:``,systemPrompt:`You are the Senior Software Engineer. Implement features with clean code and tests.`,systemInstruction:`You are the Senior Software Engineer. Implement features with clean code and tests.`,enabled:!0,avatar:`💻`},{id:`critic`,name:`Critic`,provider:`anthropic`,model:`claude-sonnet-5`,apiKey:``,systemPrompt:`You are the Security & Quality Auditor. Review code, find bugs, and suggest improvements.`,systemInstruction:`You are the Security & Quality Auditor. Review code, find bugs, and suggest improvements.`,enabled:!0,avatar:`🔍`}],customProviders:[],customModelSelections:{}},tt=e=>{let t=e.tuiTheme||e.theme,n=t===`system`||t===`light`?t:`dark`;return{...e,tuiTheme:n}}}));export{_e as $,Ae as A,H as B,Ie as C,ee as Ct,Me as D,p as Dt,X as E,h as Et,N as F,De as G,L as H,B as I,we as J,Ee as K,K as L,z as M,Oe as N,je as O,m as Ot,P,ve as Q,W as R,Fe as S,v as St,Pe as T,_ as Tt,R as U,F as V,G as W,xe as X,Ce as Y,Se as Z,Ve as _,te as _t,et as a,pe as at,Le as b,y as bt,Ye as c,se as ct,Ke as d,ae as dt,me as et,Ge as f,de as ft,Be as g,ie as gt,He as h,ce as ht,tt as i,ye as it,I as j,ke as k,Je as l,ue as lt,Ue as m,le as mt,nt as n,he as nt,Qe as o,be as ot,We as p,O as pt,J as q,$e as r,ge as rt,Ze as s,A as st,$ as t,fe as tt,qe as u,oe as ut,Z as v,x as vt,Ne as w,g as wt,Re as x,b as xt,ze as y,S as yt,V as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{w as t}from"./chunk-FOHPRMQF-JXEeeJ9r.js";import{G as n,W as r}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{w as t}from"./chunk-FOHPRMQF-JXEeeJ9r.js";import{G as n,W as r}from"./mermaid-parser.core-BJwgCBBc.js";var i=e((()=>{n(),t()}));n(),i();export{r as createCynefinServices};
|
package/out/web/assets/{cynefinDiagram-5FMLGOSQ-rZznN24T.js → cynefinDiagram-5FMLGOSQ-Bpir8jha.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-BJwgCBBc.js";import{n as r,r as i}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as a,zt as o}from"./src-CRDfRlHM.js";import{D as s,U as c,W as l,a as u,b as d,c as f,f as p,j as m,q as h,v as g,w as _,y as v}from"./chunk-DU6HZSFF-DK-As3rk.js";import{n as y,t as b}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{d as x,i as S}from"./chunk-75Z2AOVW-BszTQoM4.js";import{g as C,h as w}from"./mermaid.core-CsDDodN8.js";function T(e){let t=e+1831565813|0;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function E(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t|=0}return t}function D(e,t){return typeof e==`number`&&Number.isFinite(e)&&e!==0?e:E(t)}function O(e,t,n,r){let i=e/2,a=r??e*.015,o=t/7,s=[];for(let e=0;e<=7;e++){let t=T(n+e*17)*a*2-a;s.push({x:i+t,y:e*o})}let c=`M${s[0].x},${s[0].y}`;for(let e=0;e<s.length-1;e++){let t=s[e],r=s[e+1],i=(t.y+r.y)/2,o=e%2==0?1:-1,l=a*1.5*o*T(n+e*31+7),u=t.x+l,d=i,f=r.x-l;c+=` C${u},${d} ${f},${i} ${r.x},${r.y}`}return c}function k(e,t,n,r){let i=t/2,a=r??t*.015,o=e/7,s=[];for(let e=0;e<=7;e++){let t=T(n+e*23)*a*2-a;s.push({x:e*o,y:i+t})}let c=`M${s[0].x},${s[0].y}`;for(let e=0;e<s.length-1;e++){let t=s[e],r=s[e+1],i=(t.x+r.x)/2,o=e%2==0?1:-1,l=a*1.5*o*T(n+e*37+11),u=i,d=t.y+l,f=i,p=r.y-l;c+=` C${u},${d} ${f},${p} ${r.x},${r.y}`}return c}function A(e,t){let n=e/2,r=t*.5,i=t,a=e*.03;return[`M${n},${r}`,`C${n+a},${r+(i-r)*.2}`,`${n-a*1.5},${r+(i-r)*.55}`,`${n+a*.5},${r+(i-r)*.75}`,`C${n-a},${r+(i-r)*.85}`,`${n+a*.3},${r+(i-r)*.95}`,`${n},${i}`].join(` `)}function j(e,t,n,r){return[`M${e-n},${t}`,`A${n},${r} 0 1,1 ${e+n},${t}`,`A${n},${r} 0 1,1 ${e-n},${t}`,`Z`].join(` `)}var M,N,P,F,I,L,R,z,B,V,H,U;e((()=>{b(),w(),x(),m(),o(),i(),t(),M=r(()=>({domains:new Map,transitions:[]}),`createDefaultData`),N=M(),P={getDomains:r(()=>N.domains,`getDomains`),getTransitions:r(()=>N.transitions,`getTransitions`),setDomains:r(e=>{if(e)for(let t of e){let e=t.domain,n=(t.items??[]).map(e=>({label:e.label}));N.domains.set(e,{name:e,items:n})}},`setDomains`),setTransitions:r(e=>{e&&(N.transitions=e.filter(e=>e.from!==e.to||(a.warn(`Cynefin: self-loop transition on domain "${e.from}" is not meaningful and will be skipped.`),!1)).map(e=>({from:e.from,to:e.to,label:e.label||void 0})))},`setTransitions`),getConfig:r(()=>S({...p.cynefin,...d().cynefin}),`getConfig`),clear:r(()=>{u(),N=M()},`clear`),setAccTitle:l,getAccTitle:v,setDiagramTitle:h,getDiagramTitle:_,getAccDescription:g,setAccDescription:c},F=r(e=>{y(e,P),P.setDomains(e.domains),P.setTransitions(e.transitions)},`populate`),I={parse:r(async e=>{let t=await n(`cynefin`,e);a.debug(t),F(t)},`parse`)},r(T,`seededRandom`),r(E,`hashString`),r(D,`resolveSeed`),r(O,`generateFoldPath`),r(k,`generateHorizontalBoundary`),r(A,`generateCliffPath`),r(j,`generateConfusionPath`),L={complex:{model:`Probe → Sense → Respond`,practice:`Emergent Practices`},complicated:{model:`Sense → Analyse → Respond`,practice:`Good Practices`},clear:{model:`Sense → Categorise → Respond`,practice:`Best Practices`},chaotic:{model:`Act → Sense → Respond`,practice:`Novel Practices`},confusion:{model:``,practice:`Disorder`}},R=r((e,t)=>{let n=e/2,r=t/2;return{complex:{cx:n/2,cy:r/2,x:0,y:0,w:n,h:r},complicated:{cx:n+n/2,cy:r/2,x:n,y:0,w:n,h:r},chaotic:{cx:n/2,cy:r+r/2,x:0,y:r,w:n,h:r},clear:{cx:n+n/2,cy:r+r/2,x:n,y:r,w:n,h:r},confusion:{cx:n,cy:r,x:n*.7,y:r*.7,w:n*.6,h:r*.6}}},`getDomainLayouts`),z=r(()=>{let e=s(),t=d();return S(e,t.themeVariables).cynefin},`getCynefinDomainColors`),B=3,V={draw:r((e,t,n,r)=>{let i=r.db,o=i.getDomains(),s=i.getTransitions(),c=i.getDiagramTitle(),l=i.getAccTitle(),u=i.getAccDescription(),d=i.getConfig(),p=z();a.debug(`Rendering Cynefin diagram`);let m=d.width,h=d.height,g=d.padding,_=d.showDomainDescriptions,v=d.boundaryAmplitude,y=m+g*2,b=h+g*2,x={complex:p.complexBg,complicated:p.complicatedBg,clear:p.clearBg,chaotic:p.chaoticBg,confusion:p.confusionBg},S=C(t);f(S,b,y,d.useMaxWidth??!0),S.attr(`viewBox`,`0 0 ${y} ${b}`),l&&S.append(`title`).text(l),u&&S.append(`desc`).text(u);let w=S.append(`g`).attr(`transform`,`translate(${g}, ${g})`),T=R(m,h),E=D(d.seed,t),M=w.append(`g`).attr(`class`,`cynefin-backgrounds`),N=[`complex`,`complicated`,`chaotic`,`clear`];for(let e of N){let t=T[e];M.append(`rect`).attr(`class`,`cynefinDomain`).attr(`x`,t.x).attr(`y`,t.y).attr(`width`,t.w).attr(`height`,t.h).attr(`fill`,x[e]).attr(`fill-opacity`,.4).attr(`stroke`,`none`)}let P=w.append(`g`).attr(`class`,`cynefin-boundaries`);P.append(`path`).attr(`class`,`cynefinBoundary`).attr(`d`,O(m,h,E,v)).attr(`fill`,`none`),P.append(`path`).attr(`class`,`cynefinBoundary`).attr(`d`,k(m,h,E+100,v)).attr(`fill`,`none`),P.append(`path`).attr(`class`,`cynefinCliff`).attr(`d`,A(m,h)).attr(`fill`,`none`);let F=m*.15,I=h*.15;w.append(`path`).attr(`class`,`cynefinConfusion`).attr(`d`,j(m/2,h/2,F,I)).attr(`fill`,x.confusion).attr(`fill-opacity`,.5);let V=w.append(`g`).attr(`class`,`cynefin-labels`);for(let e of N){let t=T[e];V.append(`text`).attr(`class`,`cynefinDomainLabel`).attr(`x`,t.cx).attr(`y`,_?t.cy-30:t.cy).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(e.charAt(0).toUpperCase()+e.slice(1))}if(V.append(`text`).attr(`class`,`cynefinDomainLabel`).attr(`x`,m/2).attr(`y`,_?h/2-10:h/2).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(`Confusion`),_){let e=w.append(`g`).attr(`class`,`cynefin-subtitles`);for(let t of N){let n=T[t],r=L[t];e.append(`text`).attr(`class`,`cynefinSubtitle`).attr(`x`,n.cx).attr(`y`,n.cy-10).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(r.model),e.append(`text`).attr(`class`,`cynefinSubtitle`).attr(`x`,n.cx).attr(`y`,n.cy+5).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(r.practice)}e.append(`text`).attr(`class`,`cynefinSubtitle`).attr(`x`,m/2).attr(`y`,h/2+8).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(L.confusion.practice)}let H=w.append(`g`).attr(`class`,`cynefin-items`);for(let e of[`complex`,`complicated`,`chaotic`,`clear`,`confusion`]){let t=o.get(e);if(!t||t.items.length===0)continue;let n=T[e],r=e===`confusion`,i=t.items,a=0;r&&t.items.length>B&&(a=t.items.length-B,i=t.items.slice(0,B));let s;if(r){let e=_?22:14;s=n.cy+e}else s=n.cy+(_?25:15);if([...i].forEach((t,r)=>{let i=s+r*30,a=H.append(`g`),o=a.append(`text`).attr(`class`,`cynefinItemText`).attr(`x`,0).attr(`y`,13).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).text(t.label),c=t.label.length*7,l=o.node();if(l&&typeof l.getBBox==`function`){let e=l.getBBox();e.width>0&&(c=e.width)}let u=c+20,d=n.cx-u/2;a.attr(`transform`,`translate(${d}, ${i})`),a.insert(`rect`,`text`).attr(`class`,`cynefinItem`).attr(`x`,0).attr(`y`,0).attr(`width`,u).attr(`height`,26).attr(`rx`,4).attr(`ry`,4).attr(`fill`,x[e]).attr(`fill-opacity`,.95),o.attr(`x`,u/2).attr(`y`,13)}),a>0){let t=s+i.length*30,r=`+${a} more`,o=H.append(`g`),c=o.append(`text`).attr(`class`,`cynefinItemText`).attr(`x`,0).attr(`y`,13).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).text(r),l=r.length*7,u=c.node();if(u&&typeof u.getBBox==`function`){let e=u.getBBox();e.width>0&&(l=e.width)}let d=l+20,f=n.cx-d/2;o.attr(`transform`,`translate(${f}, ${t})`),o.insert(`rect`,`text`).attr(`class`,`cynefinItemOverflow`).attr(`x`,0).attr(`y`,0).attr(`width`,d).attr(`height`,26).attr(`rx`,4).attr(`ry`,4).attr(`fill`,x[e]).attr(`fill-opacity`,.6),c.attr(`x`,d/2).attr(`y`,13)}}if(s.length>0){let e=S.select(`defs`).empty()?S.append(`defs`):S.select(`defs`),n=`cynefin-arrow-${t}`;e.append(`marker`).attr(`id`,n).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto-start-reverse`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`class`,`cynefinArrowHead`);let r=w.append(`g`).attr(`class`,`cynefin-arrows`);s.forEach(e=>{let t=T[e.from],i=T[e.to];if(!t||!i)return;if(e.from===e.to){a.warn(`Cynefin renderer: skipping self-loop on domain "${e.from}"`);return}let o=t.cx,s=t.cy,c=i.cx,l=i.cy,u=(o+c)/2,d=(s+l)/2,f=c-o,p=l-s,m=Math.sqrt(f*f+p*p),h=m*.15,g=-p/m,_=f/m,v=u+g*h,y=d+_*h;r.append(`path`).attr(`class`,`cynefinArrowLine`).attr(`d`,`M${o},${s} Q${v},${y} ${c},${l}`).attr(`fill`,`none`).attr(`marker-end`,`url(#${n})`),e.label&&r.append(`text`).attr(`class`,`cynefinArrowLabel`).attr(`x`,v).attr(`y`,y-6).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`auto`).text(e.label)})}c&&w.append(`text`).attr(`class`,`cynefinTitle`).attr(`x`,m/2).attr(`y`,-g/2).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(c)},`draw`)},H=r(()=>{let e=s(),t=d();return S(e,t.themeVariables).cynefin},`getCynefinTheme`),U={parser:I,db:P,renderer:V,styles:r(()=>{let e=H();return`
|
|
2
2
|
.cynefinDomain {
|
|
3
3
|
stroke: none;
|
|
4
4
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as r,zt as i}from"./src-CRDfRlHM.js";import{j as a,x as o}from"./chunk-DU6HZSFF-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as r,zt as i}from"./src-CRDfRlHM.js";import{j as a,x as o}from"./chunk-DU6HZSFF-DK-As3rk.js";import{n as s}from"./chunk-PWAF6VOD-CrEgDsxh.js";import{d as c}from"./chunk-75Z2AOVW-BszTQoM4.js";import{i as l}from"./chunk-GMAD6QVW-DSQ_sDRJ.js";import{n as u}from"./chunk-P2QGCYS3-_066ndhH.js";import{c as d,r as f}from"./chunk-4HAMMTFA-Dx5fk1_0.js";import{a as p,n as m,o as h,r as g}from"./chunk-GVQU2GXP-Cno3ulje.js";import{a as _,i as v,l as y,o as b}from"./chunk-OSK3NFVY-BaUGJ-cM.js";import{n as ee,t as x}from"./graphlib-Bh9gHply.js";import{n as S,r as C}from"./chunk-L3NEJ4N5-Dl6eOa0D.js";import{r as w,t as T}from"./dagre-CnWJJM5f.js";import{a as E,c as D,d as O,i as k,l as A,o as j,s as M,u as N}from"./mermaid.core-CsDDodN8.js";var P,F,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$;e((()=>{A(),S(),v(),g(),f(),u(),l(),s(),c(),a(),i(),n(),T(),x(),P=t((e,t,n)=>Math.max(t,Math.min(n,e)),`clamp`),F=t((e=`TB`)=>{switch(e){case`BT`:return`bottom`;case`LR`:return`right`;case`RL`:return`left`;default:return`top`}},`getDefaultSelfLoopSide`),I=t(e=>e===`flowchart`||e===`flowchart-v2`||e===`stateDiagram`||e===`er`||e===`classDiagram`,`shouldMergeSelfLoopSegments`),L=[`x`,`y`,`width`,`height`,`labelBBox`,`intersect`,`calcIntersect`,`diff`,`clusterNode`],R=t((e,t,n,r,i)=>{let a=[],o=new Set;if(n.forEach(({start:e,end:t})=>{e!==r&&o.add(e),t!==r&&o.add(t)}),o.forEach(t=>{let n=e.node(t);typeof n?.x==`number`&&typeof n?.y==`number`&&a.push(n)}),a.length===0&&n.forEach(({edge:e})=>{(e.points??[]).forEach(e=>{typeof e?.x==`number`&&typeof e?.y==`number`&&a.push(e)})}),a.length===0)return F(i);let s=a.reduce((e,t)=>({x:e.x+t.x/a.length,y:e.y+t.y/a.length}),{x:0,y:0}),c=s.x-t.x,l=s.y-t.y;return Math.abs(c)>Math.abs(l)?c>0?`right`:`left`:Math.abs(l)>0?l>0?`bottom`:`top`:F(i)},`getSelfLoopSide`),z=t((e,t=`top`,n=0,r=0)=>{let i=e.x,a=e.y-n,o=e.width/2,s=e.height/2,c=Math.max(36,Math.min(100,e.width*.8)),l=P(Math.max(r,e.width*.35),36,c),u=P(Math.min(e.width,e.height)*.45,24,48);switch(t){case`bottom`:{let e=a+s;return[{x:i-l/2,y:e},{x:i-l/2,y:e+u},{x:i+l/2,y:e+u},{x:i+l/2,y:e}]}case`right`:{let e=i+o;return[{x:e,y:a-l/2},{x:e+u,y:a-l/2},{x:e+u,y:a+l/2},{x:e,y:a+l/2}]}case`left`:{let e=i-o;return[{x:e,y:a-l/2},{x:e-u,y:a-l/2},{x:e-u,y:a+l/2},{x:e,y:a+l/2}]}default:{let e=a-s;return[{x:i-l/2,y:e},{x:i-l/2,y:e-u},{x:i+l/2,y:e-u},{x:i+l/2,y:e}]}}},`getSelfLoopPoints`),B=t((e,t,n=`top`,r=0,i={})=>{let a=e.x,o=e.y-r,s=i.width??0,c=i.height??0;switch(n){case`bottom`:return{x:a,y:Math.max(...t.map(e=>e.y))+c/2+4};case`right`:return{x:Math.max(...t.map(e=>e.x))+s/2+4,y:o};case`left`:return{x:Math.min(...t.map(e=>e.x))-s/2-4,y:o};default:return{x:a,y:Math.min(...t.map(e=>e.y))-c/2-4}}},`getSelfLoopLabelPosition`),V=t((e,t=0,{mergeSelfLoops:n=!0}={})=>{let r=new Map,i=[],a=e.graph()?.rankdir;return e.edges().forEach(t=>{let a=e.edge(t);if(n&&a.selfLoop){let e=a.selfLoop.id;r.has(e)||r.set(e,[]),r.get(e).push({edge:a,start:t.v,end:t.w})}else i.push({edge:a,start:t.v,end:t.w})}),r.forEach(n=>{if(n.length!==3){n.forEach(e=>i.push(e));return}n.sort((e,t)=>e.edge.selfLoop.order-t.edge.selfLoop.order);let[r,o,s]=n,c=r.edge.originalEdge??o.edge.originalEdge??s.edge.originalEdge??o.edge,l=e.node(c.start);if(!l){n.forEach(e=>i.push(e));return}let u={width:o.edge.width,height:o.edge.height},d=R(e,l,n,c.start,a),f=z(l,d,t,u.width??0),p=B(l,f,d,t,u),m={...o.edge,...c,id:c.id,points:f,start:c.start,end:c.end,x:p.x,y:p.y,width:u.width,height:u.height,labelStyle:o.edge.labelStyle,fromCluster:r.edge.fromCluster??o.edge.fromCluster??s.edge.fromCluster,toCluster:r.edge.toCluster??o.edge.toCluster??s.edge.toCluster};delete m.selfLoop,delete m.originalEdge,i.push({edge:m,start:m.start,end:m.end})}),i},`getEdgesToRender`),H=t(async({element:e,graph:n,diagramType:i,id:a,parentCluster:o,siteConfig:s})=>{let c=n.graph().rankdir;r.trace(`Dir in recursive render - dir:`,c);let{clusters:l,edgePaths:u,edgeLabels:f,nodes:p,rootGroups:g}=M(e,{edgePathsClass:`edgePaths`});n.nodes()?r.info(`Recursive render XXX`,n.nodes()):r.info(`No nodes found for`,n),n.edges().length>0&&r.info(`Recursive edges`,n.edge(n.edges()[0]));let _=I(i);await Promise.all(n.nodes().map(async function(e){let t=n.node(e);if(o!==void 0){let t=JSON.parse(JSON.stringify(o.clusterData));r.trace(`Setting data for parent cluster XXX
|
|
2
2
|
Node.id = `,e,`
|
|
3
3
|
data=`,t.height,`
|
|
4
4
|
Parent cluster`,o.height),n.setNode(o.id,t),n.parent(e)||(r.trace(`Setting parent`,e,o.id),n.setParent(e,o.id,t))}if(r.info(`(Insert) Node XXX`+e+`: `+JSON.stringify(n.node(e))),t?.clusterNode){r.info(`Cluster identified XBX`,e,t.width,n.node(e));let{ranksep:o,nodesep:c}=n.graph();t.graph.setGraph({...t.graph.graph(),ranksep:o+25,nodesep:c});let l=await Y({element:p,graph:t.graph,diagramType:i,id:a,parentCluster:n.node(e),siteConfig:s}),u=l.elem;d(t,u),t.diff=l.diff||0,r.info(`New compound node after recursive render XAX`,e,`width`,t.width,`height`,t.height),h(u,t)}else n.children(e).length>0?(r.trace(`Cluster - the non recursive path XBX`,e,t.id,t,t.width,`Graph:`,n),r.trace(D(t.id,n)),E.set(t.id,{id:D(t.id,n),node:t})):(r.trace(`Node - the non recursive path XAX`,e,p,n.node(e),c),await N(p,n.node(e),{config:s,dir:c}))})),await t(async()=>{let e=n.edges().map(async function(e){let t=n.edge(e.v,e.w,e.name);if(r.info(`Edge `+e.v+` -> `+e.w+`: `+JSON.stringify(e)),r.info(`Edge `+e.v+` -> `+e.w+`: `,e,` `,JSON.stringify(n.edge(e))),r.info(`Fix`,E,`ids:`,e.v,e.w,`Translating: `,E.get(e.v),E.get(e.w)),_&&t.selfLoop){if(t.selfLoop.order!==1)return;let e={...t.originalEdge,...t,id:t.selfLoop.id,startLabelLeft:t.originalEdge?.startLabelLeft??t.startLabelLeft,startLabelRight:t.originalEdge?.startLabelRight??t.startLabelRight,endLabelLeft:t.originalEdge?.endLabelLeft??t.endLabelLeft,endLabelRight:t.originalEdge?.endLabelRight??t.endLabelRight};await b(f,e),t.width=e.width,t.height=e.height,t.labelStyle=e.labelStyle}else await b(f,t)});await Promise.all(e)},`processEdges`)();let{subGraphTitleTotalMargin:v}=m(s);return{elem:g,graph:n,groups:{clusters:l,edgePaths:u,edgeLabels:f,nodes:p,rootGroups:g},diagramType:i,id:a,mergeSelfLoops:_,subGraphTitleTotalMargin:v}},`measureDagreGraph`),U=t(e=>{r.info(`############################################# XXX`),r.info(`### Layout ### XXX`),r.info(`############################################# XXX`),w(e)},`runDagreGraphLayout`),W=t((e,t,n)=>{let r=e.node(t);if(!r)return;let i={...r};return r?.clusterNode?i.y=(r.y??0)+n:e.children(t).length>0?i.height=(r.height??0)+n:i.y=(r.y??0)+n/2,i},`normalizeDagreNode`),G=t((e,t)=>{L.forEach(n=>{t[n]!==void 0&&(e[n]=t[n])})},`applyDagreNodeLayout`),K=t((e,t,n,r)=>({...e,start:e.start??t,end:e.end??n,points:(e.points??[]).map(e=>({...e,y:typeof e.y==`number`?e.y+r:e.y}))}),`normalizeDagreEdge`),q=t((e,t)=>{let{graph:n,mergeSelfLoops:r,subGraphTitleTotalMargin:i=0}=t,a=new Map(e.nodes.map(e=>[e.id,e]));O(n).forEach(e=>{let t=W(n,e,i);if(!t)return;G(n.node(e),t);let r=a.get(e);r&&G(r,t)});let o=i/2;return e.edges=V(n,o,{mergeSelfLoops:r}).map(({edge:e,start:t,end:n})=>K(e,t,n,o)),e},`applyDagreLayoutResult`),J=t(async({elem:e,graph:t,groups:{clusters:n,edgePaths:i},diagramType:a,id:o,mergeSelfLoops:s,subGraphTitleTotalMargin:c})=>{let l=0;await Promise.all(O(t).map(async function(e){let i=t.node(e);if(r.info(`Position XBX => `+e+`: (`+i.x,`,`+i.y,`) width: `,i.width,` height: `,i.height),i?.clusterNode)i.y+=c,r.info(`A tainted cluster node XBX1`,e,i.id,i.width,i.height,i.x,i.y,t.parent(e)),E.get(i.id).node=i,p(i);else if(t.children(e).length>0){r.info(`A pure cluster node XBX1`,e,i.id,i.x,i.y,i.width,i.height,t.parent(e)),i.height+=c,t.node(i.parentId);let a=i?.padding/2||0,o=i?.labelBBox?.height||0,s=o-a||0;r.debug(`OffsetY`,s,`labelHeight`,o,`halfPadding`,a),await C(n,i),E.get(i.id).node=i}else{let e=t.node(i.parentId);i.y+=c/2,r.info(`A regular node XBX1 - using the padding`,i.id,`parent`,i.parentId,i.width,i.height,i.x,i.y,`offsetY`,i.offsetY,`parent`,e,e?.offsetY,i),p(i)}}));let u=c/2;return V(t,u,{mergeSelfLoops:s}).forEach(function({edge:e,start:n,end:s}){r.info(`Edge `+n+` -> `+s+`: `+JSON.stringify(e),e),e.points.forEach(e=>e.y+=u);let c=t.node(n),l=t.node(s),d=_(i,e,E,a,c,l,o);y(e,d)}),t.nodes().forEach(function(e){let n=t.node(e);r.info(e,n.type,n.diff),n.isGroup&&(l=n.diff)}),r.warn(`Returning from recursive render XAX`,e,l),{elem:e,diff:l}},`paintDagreLayoutCore`),Y=t(async e=>{let t=await H(e);return U(t.graph),await J(t)},`renderDagreSubgraph`),X=t(e=>{let t=new ee({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.nodeSpacing||e.config?.flowchart?.nodeSpacing,ranksep:e.config?.rankSpacing||e.rankSpacing||e.config?.flowchart?.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});return e.nodes.forEach(e=>{t.setNode(e.id,{...e}),e.parentId&&t.setParent(e.id,e.parentId)}),r.debug(`Edges:`,e.edges),e.edges.forEach(e=>{if(e.start===e.end){let n=e.start,r=n+`---`+n+`---1`,i=n+`---`+n+`---2`,a=t.node(n);t.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:``,label:``,padding:0,shape:`labelRect`,style:``,width:10,height:10}),t.setParent(r,a.parentId),t.setNode(i,{domId:i,id:i,parentId:a.parentId,labelStyle:``,padding:0,shape:`labelRect`,label:``,style:``,width:10,height:10}),t.setParent(i,a.parentId);let o=structuredClone(e),s=structuredClone(e),c=structuredClone(e),l=structuredClone(e);s.originalEdge=o,s.selfLoop={id:o.id,order:0},c.originalEdge=o,c.selfLoop={id:o.id,order:1},l.originalEdge=o,l.selfLoop={id:o.id,order:2},s.label=``,s.arrowTypeEnd=`none`,s.endLabelLeft=``,s.endLabelRight=``,s.startLabelLeft=``,s.id=n+`-cyclic-special-1`,c.startLabelRight=``,c.startLabelLeft=``,c.endLabelLeft=``,c.endLabelRight=``,c.arrowTypeStart=`none`,c.arrowTypeEnd=`none`,c.id=n+`-cyclic-special-mid`,l.label=``,l.startLabelRight=``,l.startLabelLeft=``,l.arrowTypeStart=`none`,a.isGroup&&(s.fromCluster=n,l.toCluster=n),l.id=n+`-cyclic-special-2`,l.arrowTypeStart=`none`,t.setEdge(n,r,s,n+`-cyclic-special-0`),t.setEdge(r,i,c,n+`-cyclic-special-1`),t.setEdge(i,n,l,n+`-cyclic-special-2`)}else t.setEdge(e.start,e.end,{...e},e.id)}),k(t),{graph:t}},`prepareLayoutForDagre`),Z=t(async(e,{element:t,preparedLayout:n})=>{let r=n??X(e),i=o(),a=await H({element:t,graph:r.graph,diagramType:e.type,id:e.diagramId,parentCluster:void 0,siteConfig:i});return r.measuredLayout=a,a},`measureDagreLayout`),Q=t((e,t)=>{let n=t.preparedLayout?.measuredLayout;if(!n)throw Error(`runDagreLayoutCore requires measureDagreLayout to run first`);return U(n.graph),q(e,n),n},`runDagreLayoutCore`),$=j({prepareLayout:X,measureLayout:Z,runLayoutCore:Q,paintOptions:{clusterDb:E,getNodes:t((e,{measure:t})=>O(t.graph).map(e=>t.graph.node(e)).filter(Boolean),`getDagrePaintNodes`),getEdgeNode:t((e,t,{measure:n})=>e?n.graph.node(e):void 0,`getDagreEdgeNode`),skipNode:t((e,{measure:t})=>!t.graph.hasNode(e.id),`skipNode`),isCluster:t((e,{measure:t})=>t.graph.hasNode(e.id)&&(t.graph.children(e.id)??[]).length>0,`isCluster`)}})}))();export{q as applyDagreLayoutResult,V as getEdgesToRender,Z as measureDagreLayout,X as prepareLayoutForDagre,$ as render,Q as runDagreLayoutCore};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-BJwgCBBc.js";import{n as r,r as i}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as a,zt as o}from"./src-CRDfRlHM.js";import{B as s,U as c,W as l,a as u,b as d,c as f,f as p,j as m,q as h,v as g,w as ee,y as te}from"./chunk-DU6HZSFF-DK-As3rk.js";import{n as ne,t as re}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{i as ie,n as ae,t as oe}from"./chunk-PWAF6VOD-CrEgDsxh.js";import{d as se,i as _}from"./chunk-75Z2AOVW-BszTQoM4.js";import{n as v,t as y}from"./chunk-2Q5K7J3B-D2JLPQzF.js";import{g as ce,h as b}from"./mermaid.core-CsDDodN8.js";function x(e){return e.some(e=>O.test(e))}function S(e){for(let t of e){let e=k.exec(t);if(e?.index&&e.index>0)return e.index}return 4}function C(e,t){return e.replace(/\bline\s+(\d+)\b/gi,(e,n)=>{let r=parseInt(n,10),i=t.get(r);return i?`line ${i}`:e})}function w(e){let t=e.split(`
|
|
2
2
|
`),n=new Map,r=-1;for(let[e,n]of t.entries())if(n.trim()===`treeView-beta`){r=e;break}if(r===-1)return{text:e,lineMap:n};let i=[];for(let e=r+1;e<t.length;e++){let n=t[e];n.trim()===``||N.test(n)||M.test(n)||j.test(n)||i.push(n.replace(/\t/g,` `))}if(!x(i))return{text:e,lineMap:n};let a=S(i),o=[],s=0;for(let e=0;e<=r;e++)o.push(t[e]),s++,n.set(s,e+1);for(let e=r+1;e<t.length;e++){let r=t[e],i=r.trim(),c=e+1;if(i===``||N.test(r)||M.test(r)){o.push(r),s++,n.set(s,c);continue}if(j.test(r))continue;let l=r.replace(/\t/g,` `),u=k.exec(l);if(u?.index!==void 0){let e=u.index,t=Math.round(e/a)+1,r=e+1;for(;r<l.length&&A.test(l[r]);)r++;for(;r<l.length&&l[r]===` `;)r++;let i=l.slice(r).trimEnd();if(!i)throw Error(`Line ${c}: Empty node \u2014 expected a filename or directory name after the box-drawing prefix`);let d=P.repeat(t);o.push(d+i),s++,n.set(s,c)}else if(/^[\s─━│┃└┗├┣]+$/.test(l))continue;else if(O.test(l))o.push(r),s++,n.set(s,c);else if(/^\s+/.test(l))throw Error(`Line ${c}: Unexpected indentation without box-drawing characters. In box-drawing format, use \u251C\u2500\u2500 or \u2514\u2500\u2500 prefixes for indented nodes.`);else o.push(r),s++,n.set(s,c)}return{text:o.join(`
|
|
3
3
|
`),lineMap:n}}function T(e,t){let n=t?.filenameIcons?.[e];if(n)return n;let r=e.lastIndexOf(`.`);if(r>0){let n=e.substring(r).toLowerCase(),i=t?.extensionIcons;return i?.[n]??i?.[n.slice(1)]}}function E(e,t){return e.includes(`:`)?e:e in U.icons||!t?`${U.prefix}:${e}`:`${t}:${e}`}function D(e,t){if(e.icon!==`none`){if(e.icon)return E(e.icon,t.defaultIconPack);if(t.showIcons){if(e.nodeType===`file`){let n=T(e.name,t);if(n===`none`)return;if(n)return E(n,t.defaultIconPack)}return`${U.prefix}:${e.nodeType===`directory`?`folder`:`file`}`}}}var O,k,A,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$;e((()=>{v(),re(),b(),ae(),se(),m(),o(),i(),t(),O=/[─━│┃└┗├┣]/,k=/[└┗├┣]/,A=/[─━]/,j=/^[\s│┃]+$/,M=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,N=/^\s*%%/,P=` `,r(x,`isBoxDrawingFormat`),r(S,`inferSegmentWidth`),r(C,`remapErrorLines`),r(w,`preprocessBoxDrawing`),F=new y(()=>({cnt:1,stack:[{id:0,level:-1,name:`/`,nodeType:`directory`,children:[]}]})),I=r(()=>{F.reset(),u()},`clear`),L=r(()=>F.records.stack[0],`getRoot`),R=r(()=>F.records.cnt,`getCount`),z=p.treeView,B={clear:I,addNode:r((e,t,n,r,i,a)=>{for(;e<=F.records.stack[F.records.stack.length-1].level;)F.records.stack.pop();let o={id:F.records.cnt++,level:e,name:t,nodeType:n,icon:i,cssClass:r,description:a,children:[]};F.records.stack[F.records.stack.length-1].children.push(o),F.records.stack.push(o)},`addNode`),getRoot:L,getCount:R,getConfig:r(()=>_(z,d().treeView),`getConfig`),getAccTitle:te,getAccDescription:g,getDiagramTitle:ee,setAccDescription:c,setAccTitle:l,setDiagramTitle:h},V=r(e=>{ne(e,B);for(let t of e.nodes){let e=typeof t.indent==`number`?t.indent:0,n=t.name,r=n.endsWith(`/`);r&&(n=n.slice(0,-1));let i=r?`directory`:`file`,a=t.classAnnotation||void 0,o=t.iconAnnotation,c=o===void 0?void 0:o||`none`,l=t.descAnnotation||void 0,u=l?s(l,d()):void 0;B.addNode(e,n,i,a,c,u)}},`populate`),H={parse:r(async e=>{let{text:t,lineMap:r}=w(e);try{let e=await n(`treeView`,t);a.debug(e),V(e)}catch(e){throw r.size>0&&e instanceof Error&&(e.message=C(e.message,r)),e}},`parse`)},U={prefix:`mermaid-treeview`,height:24,width:24,icons:{folder:{body:`<path fill="currentColor" d="M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z"/>`},file:{body:`<path fill="currentColor" fill-rule="evenodd" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z" clip-rule="evenodd"/>`}}},r(T,`detectIcon`),r(E,`qualifyIcon`),r(D,`getNodeIcon`),ie([{name:U.prefix,icons:U}]),W=14,G=4,K=16,q=r(async(e,t)=>{let n=[],i=r(e=>{let r=D(e,t);r&&n.push({icon:r,node:e}),e.children.forEach(i)},`collect`);i(e);let a=await Promise.all(n.map(async({icon:e,node:t})=>({id:t.id,svg:await oe(e,{height:W,width:W})})));return new Map(a.map(({id:e,svg:t})=>[e,t]))},`resolveNodeIcons`),J=r((e,t,n,r,i,a)=>{let o=r.append(`g`),s=`treeView-node-label`;n.nodeType===`directory`&&(s+=` treeView-node-dir`),n.cssClass&&(s+=` ${n.cssClass}`);let c=W+G,l=D(n,i),u=l!==void 0;l&&o.append(`g`).attr(`class`,`treeView-node-icon`).attr(`transform`,`translate(${e+i.paddingX}, ${t+i.paddingY})`).html(a.get(n.id)??``);let d=o.append(`text`).text(n.name).attr(`dominant-baseline`,`middle`).attr(`class`,s),{height:f,width:p}=d.node().getBBox(),m=f+i.paddingY*2,h=e+i.paddingX+(u?c:0);d.attr(`x`,h),d.attr(`y`,t+m/2);let g=h+p;return n.BBox={x:e,y:t,width:p+i.paddingX*2+(u?c:0),height:m},n.cssClass?.split(/\s+/).includes(`highlight`)&&o.insert(`rect`,`:first-child`).attr(`x`,e).attr(`y`,t+1).attr(`width`,0).attr(`height`,m-2).attr(`rx`,3).attr(`class`,`treeView-highlight-bg`),{node:n,nodeGroup:o,labelRightEdge:g,centerY:t+m/2}},`positionLabel`),Y=r((e,t,n,r,i,a)=>e.append(`line`).attr(`x1`,t).attr(`y1`,n).attr(`x2`,r).attr(`y2`,i).attr(`stroke-width`,a).attr(`class`,`treeView-node-line`),`positionLine`),X=r((e,t,n,i)=>{let a=0,o=0,s=[],c=r((e,t,n,r)=>{let c=r*(n.rowIndent+n.paddingX),l=J(c,a,t,e,n,i);s.push(l);let{height:u,width:d}=t.BBox;Y(e,c-n.rowIndent,a+u/2,c,a+u/2,n.lineThickness),o=Math.max(o,c+d),a+=u},`drawNode`),l=r((t,r=0)=>{c(e,t,n,r),t.children.forEach(e=>{l(e,r+1)});let{x:i,y:a,height:o}=t.BBox;if(t.children.length){let{y:r,height:s}=t.children[t.children.length-1].BBox;Y(e,i+n.paddingX,a+o,i+n.paddingX,r+s/2+n.lineThickness/2,n.lineThickness)}},`processNode`);l(t);let u=s.filter(e=>e.node.description);if(u.length>0){let e=Math.max(...s.map(e=>e.labelRightEdge))+K;for(let t of u){let r=t.nodeGroup.append(`text`).text(t.node.description).attr(`dominant-baseline`,`middle`).attr(`class`,`treeView-node-description`).attr(`x`,e).attr(`y`,t.centerY).node().getBBox();o=Math.max(o,e+r.width+n.paddingX)}}for(let e of s)if(e.node.cssClass?.split(/\s+/).includes(`highlight`)){let t=e.nodeGroup.select(`.treeView-highlight-bg`);if(!t.empty()){let n=o-e.node.BBox.x+8;t.attr(`width`,n),o=Math.max(o,e.node.BBox.x+n+2)}}return{totalHeight:a,totalWidth:o}},`drawTree`),Z={draw:r(async(e,t,n,r)=>{a.debug(`Rendering treeView diagram
|
|
4
4
|
`+e);let i=r.db,o=i.getRoot(),s=i.getConfig(),c=ce(t),l=c.append(`g`);l.attr(`class`,`tree-view`);let{totalHeight:u,totalWidth:d}=X(l,o,s,await q(o,s));c.attr(`viewBox`,`-${s.lineThickness/2} 0 ${d} ${u}`),f(c,u,d,s.useMaxWidth)},`draw`)},Q={labelFontSize:`16px`,labelColor:`black`,lineColor:`black`,iconColor:`#546e7a`,descriptionColor:`#6a9955`,highlightBg:`rgba(255, 193, 7, 0.15)`,highlightStroke:`#ffc107`},$={db:B,renderer:Z,parser:H,styles:r(({treeView:e})=>{let{labelFontSize:t,labelColor:n,lineColor:r,iconColor:i,descriptionColor:a,highlightBg:o,highlightStroke:s}=_(Q,e);return`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-BJwgCBBc.js";import{n as r,r as i}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as a,zt as o}from"./src-CRDfRlHM.js";import{D as s,U as c,W as l,a as u,b as d,c as f,f as p,j as m,q as h,v as g,w as _,y as v}from"./chunk-DU6HZSFF-DK-As3rk.js";import{n as y,t as b}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{d as x,i as S}from"./chunk-75Z2AOVW-BszTQoM4.js";import{g as C,h as w}from"./mermaid.core-CsDDodN8.js";function T(e,t,n,r,i,a,o){let s=t.length,c=Math.min(o.width,o.height)/2;n.forEach((t,n)=>{if(t.entries.length!==s)return;let l=t.entries.map((e,t)=>{let n=2*Math.PI*t/s-Math.PI/2,a=E(e,r,i,c);return{x:a*Math.cos(n),y:a*Math.sin(n)}});a===`circle`?e.append(`path`).attr(`d`,D(l,o.curveTension)).attr(`class`,`radarCurve-${n}`):a===`polygon`&&e.append(`polygon`).attr(`points`,l.map(e=>`${e.x},${e.y}`).join(` `)).attr(`class`,`radarCurve-${n}`)})}function E(e,t,n,r){return r*(Math.min(Math.max(e,t),n)-t)/(n-t)}function D(e,t){let n=e.length,r=`M${e[0].x},${e[0].y}`;for(let i=0;i<n;i++){let a=e[(i-1+n)%n],o=e[i],s=e[(i+1)%n],c=e[(i+2)%n],l={x:o.x+(s.x-a.x)*t,y:o.y+(s.y-a.y)*t},u={x:s.x-(c.x-o.x)*t,y:s.y-(c.y-o.y)*t};r+=` C${l.x},${l.y} ${u.x},${u.y} ${s.x},${s.y}`}return`${r} Z`}function O(e,t,n,r){if(!n)return;let i=(r.width/2+r.marginRight)*3/4,a=-(r.height/2+r.marginTop)*3/4;t.forEach((t,n)=>{let r=e.append(`g`).attr(`transform`,`translate(${i}, ${a+n*20})`);r.append(`rect`).attr(`width`,12).attr(`height`,12).attr(`class`,`radarLegendBox-${n}`),r.append(`text`).attr(`x`,16).attr(`y`,0).attr(`class`,`radarLegendText`).text(t.label)})}var k,A,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z;e((()=>{b(),w(),x(),m(),o(),i(),t(),k={showLegend:!0,ticks:5,max:null,min:0,graticule:`circle`},A=32,j={axes:[],curves:[],options:k},M=structuredClone(j),N=p.radar,P=r(()=>S({...N,...d().radar}),`getConfig`),F=r(()=>M.axes,`getAxes`),I=r(()=>M.curves,`getCurves`),L=r(()=>M.options,`getOptions`),R=r(e=>{M.axes=e.map(e=>({name:e.name,label:e.label??e.name}))},`setAxes`),z=r(e=>{M.curves=e.map(e=>({name:e.name,label:e.label??e.name,entries:B(e.entries)}))},`setCurves`),B=r(e=>{if(e[0].axis==null)return e.map(e=>e.value);let t=F();if(t.length===0)throw Error(`Axes must be populated before curves for reference entries`);return t.map(t=>{let n=e.find(e=>e.axis?.$refText===t.name);if(n===void 0)throw Error(`Missing entry for axis `+t.label);return n.value})},`computeCurveEntries`),V={getAxes:F,getCurves:I,getOptions:L,setAxes:R,setCurves:z,setOptions:r(e=>{let t=e.reduce((e,t)=>(e[t.name]=t,e),{});M.options={showLegend:t.showLegend?.value??k.showLegend,ticks:t.ticks?.value??k.ticks,max:t.max?.value??k.max,min:t.min?.value??k.min,graticule:t.graticule?.value??k.graticule},M.options.ticks>A&&(a.warn(`Radar diagram ticks (${M.options.ticks}) exceeds maximum allowed (${A}). Using ${A} instead.`),M.options.ticks=A)},`setOptions`),getConfig:P,clear:r(()=>{u(),M=structuredClone(j)},`clear`),setAccTitle:l,getAccTitle:v,setDiagramTitle:h,getDiagramTitle:_,getAccDescription:g,setAccDescription:c},H=r(e=>{y(e,V);let{axes:t,curves:n,options:r}=e;V.setAxes(t),V.setCurves(n),V.setOptions(r)},`populate`),U={parse:r(async e=>{let t=await n(`radar`,e);a.debug(t),H(t)},`parse`)},W=r((e,t,n,r)=>{let i=r.db,a=i.getAxes(),o=i.getCurves(),s=i.getOptions(),c=i.getConfig(),l=i.getDiagramTitle(),u=G(C(t),c),d=s.max??Math.max(...o.map(e=>Math.max(...e.entries))),f=s.min,p=Math.min(c.width,c.height)/2;K(u,a,p,s.ticks,s.graticule),q(u,a,p,c),T(u,a,o,f,d,s.graticule,c),O(u,o,s.showLegend,c),u.append(`text`).attr(`class`,`radarTitle`).text(l).attr(`x`,0).attr(`y`,-c.height/2-c.marginTop)},`draw`),G=r((e,t)=>{let n=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,i={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return f(e,r,n,t.useMaxWidth??!0),e.attr(`viewBox`,`0 0 ${n} ${r}`).attr(`overflow`,`visible`),e.append(`g`).attr(`transform`,`translate(${i.x}, ${i.y})`)},`drawFrame`),K=r((e,t,n,r,i)=>{if(i===`circle`)for(let t=0;t<r;t++){let i=n*(t+1)/r;e.append(`circle`).attr(`r`,i).attr(`class`,`radarGraticule`)}else if(i===`polygon`){let i=t.length;for(let a=0;a<r;a++){let o=n*(a+1)/r,s=t.map((e,t)=>{let n=2*t*Math.PI/i-Math.PI/2;return`${o*Math.cos(n)},${o*Math.sin(n)}`}).join(` `);e.append(`polygon`).attr(`points`,s).attr(`class`,`radarGraticule`)}}},`drawGraticule`),q=r((e,t,n,r)=>{let i=t.length;for(let a=0;a<i;a++){let o=t[a].label,s=2*a*Math.PI/i-Math.PI/2,c=Math.cos(s),l=Math.sin(s);e.append(`line`).attr(`x1`,0).attr(`y1`,0).attr(`x2`,n*r.axisScaleFactor*c).attr(`y2`,n*r.axisScaleFactor*l).attr(`class`,`radarAxisLine`);let u=c>.01?`start`:c<-.01?`end`:`middle`,d=l>.01?`hanging`:l<-.01?`auto`:`central`;e.append(`text`).text(o).attr(`x`,n*r.axisLabelFactor*c+4*c).attr(`y`,n*r.axisLabelFactor*l+4*l).attr(`text-anchor`,u).attr(`dominant-baseline`,d).attr(`class`,`radarAxisLabel`)}},`drawAxes`),r(T,`drawCurves`),r(E,`relativeRadius`),r(D,`closedRoundCurve`),r(O,`drawLegend`),J={draw:W},Y=r((e,t)=>{let n=``;for(let r=0;r<e.THEME_COLOR_LIMIT;r++){let i=e[`cScale${r}`];n+=`
|
|
2
2
|
.radarCurve-${r} {
|
|
3
3
|
color: ${i};
|
|
4
4
|
fill: ${i};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{E as t}from"./chunk-FOHPRMQF-JXEeeJ9r.js";import{n,r}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{E as t}from"./chunk-FOHPRMQF-JXEeeJ9r.js";import{n,r}from"./mermaid-parser.core-BJwgCBBc.js";import{n as i,r as a}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as o,jt as s,t as c,zt as l}from"./src-CRDfRlHM.js";import{B as u,U as d,W as f,X as p,a as m,b as h,f as ee,j as te,q as ne,v as re,w as ie,x as ae,y as oe}from"./chunk-DU6HZSFF-DK-As3rk.js";import{n as se,t as ce}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{d as le,i as ue,t as de,v as g}from"./chunk-75Z2AOVW-BszTQoM4.js";function _(){Z={}}function v(){let e=ge,{ast:t}=Z,n=b();if(!t)throw Error(`No data for EventModel`);return t.frames.forEach((r,i)=>{let a=D(r,t.dataEntities,n);e=B(e,{$kind:G,index:i,frame:r,textProps:a});let s;P(r)?(o.debug(`source frame`,r.sourceFrames),s=t.frames.filter(e=>r.sourceFrames.some(t=>t.$refText===e.name)),s.forEach(t=>{e=B(e,{$kind:q,index:i,frame:r,sourceFrame:t})})):e=B(e,{$kind:q,index:i,frame:r})}),e={...e,sortedSwimlanesArray:j(e.swimlanes)},e}function y(e){Z.ast=e}function b(){return Q}function x(e){let t=e.split(`.`);if(t.length===2)return t[0]}function S(e){let t=e.split(`.`);return t.length===2?t[1]:e}function C(e,t){if(t&&t.length!==0)return Object.values(e).find(e=>e.namespace===t)}function w(e,t,n){return Math.max(t,...Object.keys(e).filter(e=>{let r=Number.parseInt(e);return r>t&&r<n}).map(e=>Number.parseInt(e)))+1}function T(e,t){let n=x(e.entityIdentifier),r=C(t,n);switch(e.modelEntityType){case`ui`:case`pcr`:case`processor`:return r?{index:r.index,label:r.namespace||Q.labelUiAutomation}:n?{index:w(t,0,100),label:Q.labelUiAutomationPrefix+n}:{index:0,label:Q.labelUiAutomation};case`rmo`:case`readmodel`:case`cmd`:case`command`:return r?{index:r.index,label:r.namespace||Q.labelCommandReadModel}:n?{index:w(t,100,200),label:Q.labelCommandReadModelPrefix+n}:{index:100,label:Q.labelCommandReadModel};default:return r?{index:r.index,label:r.namespace||Q.labelEvents}:n?{index:w(t,200,300),label:Q.labelEventsPrefix+n}:{index:200,label:Q.labelEvents}}}function E(e){let{themeVariables:t}=h();switch(e.modelEntityType){case`ui`:return{fill:t.emUiFill??`white`,stroke:t.emUiStroke??`#dbdada`};case`pcr`:case`processor`:return{fill:t.emProcessorFill??`#edb3f6`,stroke:t.emProcessorStroke??`#b88cbf`};case`rmo`:case`readmodel`:return{fill:t.emReadModelFill??`#d3f1a2`,stroke:t.emReadModelStroke??`#a3b732`};case`cmd`:case`command`:return{fill:t.emCommandFill??`#bcd6fe`,stroke:t.emCommandStroke??`#679ac3`};case`evt`:case`event`:return{fill:t.emEventFill??`#ffb778`,stroke:t.emEventStroke??`#c19a0f`};default:return{fill:`red`,stroke:`black`}}}function D(e,t,n){let r=h(),i=u(S(e.entityIdentifier)??``,r),a,s={fontSize:16,fontWeight:700,fontFamily:`"trebuchet ms", verdana, arial, sans-serif`,joinWith:`<br/>`},c=`<b>${g(i,n.textMaxWidth,s)}</b>`;if(e.dataInlineValue&&(a=e.dataInlineValue,a=a.substring(a.indexOf(`{`)+1),a=a.substring(0,a.lastIndexOf(`}`)-1),a=u(a,r),a=g(a,n.textMaxWidth,s),a=a.replaceAll(` `,` `)),e.dataReference){let i=t.find(t=>t.name===e.dataReference?.$refText);i&&(a=i.dataBlockValue,a=a.substring(a.indexOf(`{
|
|
2
2
|
`)+2),a=a.substring(0,a.lastIndexOf(`}`)-1),a=u(a,r),a=g(a,n.textMaxWidth,s),a=a.replaceAll(` `,` `),a+=`<br/>`)}let l=a!==void 0;l&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${n.textMaxWidth}px">${a}</code>`);let d={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=de(c,d),p=l?f.width/3:f.width,m={content:c,width:p,height:f.height};return o.debug(`[${e.name}] ${e.entityIdentifier} text`,m),m}function O(e,t){let n=t,r=E(n.frame),i={width:n.textProps.width+2*Q.boxTextPadding,height:n.textProps.height+2*Q.boxTextPadding};return[{$kind:K,frame:n.frame,index:n.index,visual:r,dimension:i,textProps:n.textProps}]}function k(e,t,n){return t===void 0?Q.contentStartX:t.index===e.index&&e.r?e.r+Q.boxPadding:n===void 0?Q.contentStartX:n.r-Q.boxOverlap+Q.boxPadding}function A(e,t){let n=[...e.map(e=>e.r),t];return Math.max(...n)}function j(e){return Object.values(e).sort((e,t)=>e.index-t.index)}function M(e,t){let n=t,r=T(n.frame,e.swimlanes),i;i=r.index in e.swimlanes?e.swimlanes[r.index]:{index:r.index,label:r.label,r:0,y:r.index*Q.swimlaneMinHeight+Q.swimlaneGap,height:Q.swimlaneMinHeight,maxHeight:Q.swimlaneMinHeight};let a=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,o=e.previousSwimlaneNumber===void 0?void 0:e.swimlanes[e.previousSwimlaneNumber],s={width:Math.max(Q.boxMinWidth,Math.min(Q.boxMaxWidth,n.dimension.width))+2*Q.boxPadding,height:Math.max(Q.boxMinHeight,Math.min(Q.boxMaxHeight,n.dimension.height))+2*Q.boxPadding},c=k(i,o,a),l=c+s.width+Q.boxPadding,u=A(Object.values(e.swimlanes),l);i.r=c+s.width,i.maxHeight=Math.max(i.maxHeight,s.height),i.height=Math.max(Q.swimlaneMinHeight,i.maxHeight)+2*Q.swimlanePadding;let d={x:c,y:Q.swimlanePadding+i.y,r:l,dimension:s,leftSibling:!1,swimlane:i,visual:n.visual,text:n.textProps.content,frame:n.frame,index:n.index},f={...e,boxes:[...e.boxes,d],swimlanes:{...e.swimlanes,[`${i.index}`]:i},previousSwimlaneNumber:r.index,previousFrame:n.frame,maxR:u},p=j(f.swimlanes);p.length>0&&(p[0].y=0);for(let e=1;e<p.length;e++){let t=p[e],n=p[e-1];t.y=n.y+n.height+Q.swimlaneGap}return f}function N(e,t){return e===0&&t.sourceFrames.length===0}function P(e){return e.sourceFrames!==void 0&&e.sourceFrames!==null&&e.sourceFrames.length>0}function F(e,t){if(t!=null)return e.find(e=>e.frame.name===t.name)}function I(e,t,n){if(!(n<0))for(let r=n;r>=0;r--){let n=e[r];if(n.swimlane.index!==t)return n}}function L(e,n){let r=n;if(t(r.frame)||N(r.index,r.frame))return[];let i=F(e.boxes,r.frame);if(i===void 0)throw Error(`Target box not found for frame ${r.frame.name}`);let a;return a=r.sourceFrame?F(e.boxes,r.sourceFrame):I(e.boxes,i.swimlane.index,r.index-1),a===void 0?[]:[{$kind:J,frame:r.frame,index:r.index,sourceBox:a,targetBox:i}]}function fe(e,t){let n=t,r={visual:{fill:`none`,stroke:`#000`},source:{x:n.sourceBox.x,y:n.sourceBox.y},target:{x:n.targetBox.x,y:n.targetBox.y},sourceBox:n.sourceBox,targetBox:n.targetBox};return{...e,relations:[...e.relations,r]}}function R(e,t){let n=_e[t.$kind];if(n==null)return[];let r=n(e,t);return o.debug(`decided events`,r),r}function z(e,t){let n=t.reduce((e,t)=>{let n=ve[t.$kind];return n==null?e:n(e,t)},e);return o.debug(`evolve events`,{state:e,newState:n,events:t}),n}function B(e,t){return z(e,R(e,t))}function V(e,t){return n=>{let r=n.swimlane.y+t.swimlanePadding,i=e.append(`g`).attr(`class`,`em-box`);i.append(`rect`).attr(`x`,n.x).attr(`y`,r).attr(`rx`,`3`).attr(`width`,n.dimension.width).attr(`height`,n.dimension.height).attr(`stroke`,n.visual.stroke).attr(`fill`,n.visual.fill),i.append(`foreignObject`).attr(`x`,n.x+t.boxPadding).attr(`y`,r+10).attr(`width`,n.dimension.width-2*t.boxPadding).attr(`height`,n.dimension.height-2*t.boxPadding).append(`xhtml:div`).style(`display`,`table`).style(`height`,`100%`).style(`width`,`100%`).append(`span`).style(`display`,`table-cell`).style(`text-align`,`center`).style(`vertical-align`,`middle`).html(n.text)}}function H(e,t){return e>t}function U(e,t,n,r){return i=>{let a=i.sourceBox.swimlane.y+t.swimlanePadding,s=i.targetBox.swimlane.y+t.swimlanePadding,c=H(a,s),l=i.sourceBox.x+i.sourceBox.dimension.width*2/3,u=i.targetBox.x+i.targetBox.dimension.width/3,d,f;o.debug(`rendering relation up=${c} for `,{sourceBox:i.sourceBox,targetBox:i.targetBox}),c?(d=a,f=s+i.targetBox.dimension.height):(d=a+i.sourceBox.dimension.height,f=s);let p=r.emRelationStroke??i.visual.stroke;e.append(`path`).attr(`class`,`em-relation`).attr(`fill`,i.visual.fill).attr(`stroke`,p).attr(`stroke-width`,`1`).attr(`marker-end`,`url(#${n})`).attr(`d`,`M${l} ${d} L${u} ${f}`)}}function W(e,t,n,r){return i=>{let a=e.append(`g`).attr(`class`,`em-swimlane`),o=r.emSwimlaneBackgroundOdd??`rgb(250,250,250)`,s=r.emSwimlaneBackgroundStroke??`rgb(240,240,240)`;a.append(`rect`).attr(`x`,0).attr(`y`,i.y).attr(`rx`,`3`).attr(`width`,t+n.swimlanePadding).attr(`height`,i.height).attr(`fill`,o).attr(`stroke`,s),a.append(`text`).attr(`font-weight`,n.swimlaneTextFontWeight).attr(`x`,30).attr(`y`,i.y+30).text(i.label)}}var G,K,q,J,Y,X,pe,me,he,Z,Q,ge,_e,ve,$,ye,be,xe;e((()=>{ce(),le(),te(),l(),a(),n(),c(),G=`position frame`,K=`frame positioned`,q=`position relation`,J=`relation positioned`,Y=i(function(e){o.debug(`options str`,e)},`setOptions`),X=i(function(){return{}},`getOptions`),pe=i(function(){_(),m()},`clear`),i(_,`reset`),me=ee.eventmodeling,he=i(()=>ue({...me,...h().eventmodeling}),`getConfig`),Z={},i(v,`getState`),i(y,`setAst`),Q={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:`bold`,boxTextPadding:10,swimlaneTextFontWeight:`bold`,labelUiAutomation:`UI/Automation`,labelUiAutomationPrefix:`UI/A: `,labelCommandReadModel:`Command/Read Model`,labelCommandReadModelPrefix:`C/RM: `,labelEvents:`Events`,labelEventsPrefix:`Stream: `},i(b,`getDiagramProps`),ge={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]},i(x,`extractNamespace`),i(S,`extractName`),i(C,`findSwimlaneByNamespace`),i(w,`findNextAvailableIndex`),i(T,`calculateSwimlaneProps`),i(E,`calculateEntityVisualProps`),i(D,`calculateTextProps`),i(O,`decidePositionFrame`),i(k,`calculateX`),i(A,`calculateMaxRight`),i(j,`sortedSwimlanesArray`),i(M,`evolveFramePositioned`),i(N,`isFirstFrame`),i(P,`hasSourceFrame`),i(F,`findBoxByFrame`),i(I,`findBoxByLineIndex`),i(L,`decidePositionRelation`),i(fe,`evolveRelationPositioned`),_e={[G]:O,[q]:L},ve={[K]:M,[J]:fe},i(R,`decide`),i(z,`evolve`),i(B,`dispatch`),$={getConfig:he,setOptions:Y,getOptions:X,clear:pe,setAccTitle:f,getAccTitle:oe,getAccDescription:re,setAccDescription:d,setDiagramTitle:ne,getDiagramTitle:ie,setAst:y,getDiagramProps:b,getState:v},ye={parse:i(async e=>{let t=await r(`eventmodeling`,e);o.debug(t),$.setAst(t),se(t,$)},`parse`)},be=ae()?.eventmodeling,i(V,`renderD3Box`),i(H,`dirUpwards`),i(U,`renderD3Relation`),i(W,`renderD3Swimlane`),xe={parser:ye,db:$,renderer:{draw:i(function(e,t,n,r){if(o.debug(`in eventmodeling renderer`,e+`
|
|
3
3
|
`,`id:`,t,n),!be)throw Error(`EventModeling config not found`);let i=r.db,{themeVariables:a,eventmodeling:c}=ae(),l=s(`[id="${t}"]`),u=i.getDiagramProps(),d=i.getState(),f=`em-arrowhead-${t}`,m=a.emArrowhead??`#000000`;d.sortedSwimlanesArray.forEach(W(l,d.maxR,u,a)),d.boxes.forEach(V(l,u)),d.relations.forEach(U(l,u,f,a)),l.append(`defs`).append(`marker`).attr(`id`,f).attr(`markerWidth`,`10`).attr(`markerHeight`,`7`).attr(`refX`,`10`).attr(`refY`,`3.5`).attr(`orient`,`auto`).append(`polygon`).attr(`points`,`0 0, 10 3.5, 0 7`).attr(`fill`,m),p(void 0,l,c?.padding??30,c?.useMaxWidth)},`draw`)},styles:i(e=>``,`getStyles`)}}))();export{xe as diagram};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-v3Jm7nco.js";import{n as r,r as i}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as a,Ct as o,Et as s,jt as c,t as l,wt as u,xt as d,zt as f}from"./src-CRDfRlHM.js";import{D as p,U as m,W as h,a as g,b as _,c as v,f as y,j as b,q as x,v as S,w as C,y as w}from"./chunk-DU6HZSFF-vIhsiW6n.js";import{n as T,t as E}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{d as D,i as O}from"./chunk-75Z2AOVW-BSKfSKSA.js";import{a as k,n as A,r as j}from"./chunk-P2QGCYS3-D1I4xFHN.js";import{n as M,t as N}from"./chunk-POPQ4Y6H-CafZZzNE.js";import{g as P,h as F}from"./mermaid.core-DTEjLUA1.js";function I(e){if(!e.length)return[];let t=[],n=[];return e.forEach(e=>{let r={name:e.name,children:e.type===`Leaf`?void 0:[]};for(r.classSelector=e?.classSelector,e?.cssCompiledStyles&&(r.cssCompiledStyles=e.cssCompiledStyles),e.type===`Leaf`&&e.value!==void 0&&(r.value=e.value);n.length>0&&n[n.length-1].level>=e.level;)n.pop();if(n.length===0)t.push(r);else{let e=n[n.length-1].node;e.children?e.children.push(r):e.children=[r]}e.type!==`Leaf`&&n.push({node:r,level:e.level})}),t}var L,R,z,B,V,H,U,W,G,K;e((()=>{E(),F(),N(),A(),D(),b(),f(),i(),t(),l(),L=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=h,this.getAccTitle=w,this.setDiagramTitle=x,this.getDiagramTitle=C,this.getAccDescription=S,this.setAccDescription=m}static{r(this,`TreeMapDB`)}getNodes(){return this.nodes}getConfig(){let e=y,t=_();return O({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),t===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:``,children:this.outerNodes}}addClass(e,t){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},r=t.replace(/\\,/g,`§§§`).replace(/,/g,`;`).replace(/§§§/g,`,`).split(`;`);r&&r.forEach(e=>{j(e)&&(n?.textStyles?n.textStyles.push(e):n.textStyles=[e]),n?.styles?n.styles.push(e):n.styles=[e]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){g(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}},r(I,`buildHierarchy`),R=r((e,t)=>{T(e,t);let n=[];for(let n of e.TreemapRows??[])n.$type===`ClassDefStatement`&&t.addClass(n.className??``,n.styleText??``);for(let r of e.TreemapRows??[]){let e=r.item;if(!e)continue;let i=r.indent?parseInt(r.indent):0,a=z(e),o=e.classSelector?t.getStylesForClass(e.classSelector):[],s=o.length>0?o:void 0,c={level:i,name:a,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:s};n.push(c)}let i=I(n),a=r((e,n)=>{for(let r of e)t.addNode(r,n),r.children&&r.children.length>0&&a(r.children,n+1)},`addNodesRecursively`);a(i,0)},`populate`),z=r(e=>e.name?String(e.name):``,`getItemName`),B={parser:{yy:void 0},parse:r(async e=>{try{let t=await n(`treemap`,e);a.debug(`Treemap AST:`,t);let r=B.parser?.yy;if(!(r instanceof L))throw Error(`parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);R(t,r)}catch(e){throw a.error(`Error parsing treemap:`,e),e}},`parse`)},V=10,H=10,U=25,W={draw:r((e,t,n,i)=>{let l=i.db,f=l.getConfig(),p=f.padding??V,m=l.getDiagramTitle(),h=l.getRoot(),{themeVariables:g}=_();if(!h)return;let y=m?30:0,b=P(t),x=f.nodeWidth?f.nodeWidth*H:960,S=f.nodeHeight?f.nodeHeight*H:500,C=x,w=S+y;b.attr(`viewBox`,`0 0 ${C} ${w}`),v(b,w,C,f.useMaxWidth);let T;try{let e=f.valueFormat||`,`;if(e===`$0,0`)T=r(e=>`$`+s(`,`)(e),`valueFormat`);else if(e.startsWith(`$`)&&e.includes(`,`)){let t=/\.\d+/.exec(e),n=t?t[0]:``;T=r(e=>`$`+s(`,`+n)(e),`valueFormat`)}else if(e.startsWith(`$`)){let t=e.substring(1);T=r(e=>`$`+s(t||``)(e),`valueFormat`)}else T=s(e)}catch(e){a.error(`Error creating format function:`,e),T=s(`,`)}let E=d().range([`transparent`,g.cScale0,g.cScale1,g.cScale2,g.cScale3,g.cScale4,g.cScale5,g.cScale6,g.cScale7,g.cScale8,g.cScale9,g.cScale10,g.cScale11]),D=d().range([`transparent`,g.cScalePeer0,g.cScalePeer1,g.cScalePeer2,g.cScalePeer3,g.cScalePeer4,g.cScalePeer5,g.cScalePeer6,g.cScalePeer7,g.cScalePeer8,g.cScalePeer9,g.cScalePeer10,g.cScalePeer11]),O=d().range([g.cScaleLabel0,g.cScaleLabel1,g.cScaleLabel2,g.cScaleLabel3,g.cScaleLabel4,g.cScaleLabel5,g.cScaleLabel6,g.cScaleLabel7,g.cScaleLabel8,g.cScaleLabel9,g.cScaleLabel10,g.cScaleLabel11]);m&&b.append(`text`).attr(`x`,C/2).attr(`y`,y/2).attr(`class`,`treemapTitle`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(m);let A=b.append(`g`).attr(`transform`,`translate(0, ${y})`).attr(`class`,`treemapContainer`),j=u(h).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),N=o().size([x,S]).paddingTop(e=>e.children&&e.children.length>0?U+H:0).paddingInner(p).paddingLeft(e=>e.children&&e.children.length>0?H:0).paddingRight(e=>e.children&&e.children.length>0?H:0).paddingBottom(e=>e.children&&e.children.length>0?H:0).round(!0)(j),F=N.descendants().filter(e=>e.children&&e.children.length>0),I=A.selectAll(`.treemapSection`).data(F).enter().append(`g`).attr(`class`,`treemapSection`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);I.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,U).attr(`class`,`treemapSectionHeader`).attr(`fill`,`none`).attr(`fill-opacity`,.6).attr(`stroke-width`,.6).attr(`style`,e=>e.depth===0?`display: none;`:``),I.append(`clipPath`).attr(`id`,(e,n)=>`clip-section-${t}-${n}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-12)).attr(`height`,U),I.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,(e,t)=>`treemapSection section${t}`).attr(`fill`,e=>E(e.data.name)).attr(`fill-opacity`,.6).attr(`stroke`,e=>D(e.data.name)).attr(`stroke-width`,2).attr(`stroke-opacity`,.4).attr(`style`,e=>{if(e.depth===0)return`display: none;`;let t=k({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+`;`+t.borderStyles.join(`;`)}),I.append(`text`).attr(`class`,`treemapSectionLabel`).attr(`x`,6).attr(`y`,U/2).attr(`dominant-baseline`,`middle`).text(e=>e.depth===0?``:e.data.name).attr(`font-weight`,`bold`).attr(`clip-path`,(e,n)=>`url(#clip-section-${t}-${n})`).attr(`style`,e=>e.depth===0?`display: none;`:`dominant-baseline: middle; font-size: 12px; fill:`+O(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).each(function(e){if(e.depth===0)return;let t=c(this),n=e.data.name;t.text(n);let r=e.x1-e.x0,i;i=f.showValues!==!1&&e.value?r-10-30-10-6:r-6-6;let a=Math.max(15,i),o=t.node();if(o.getComputedTextLength()>a){let e=n;for(;e.length>0;){if(e=n.substring(0,e.length-1),e.length===0){t.text(`...`),o.getComputedTextLength()>a&&t.text(``);break}if(t.text(e+`...`),o.getComputedTextLength()<=a)break}}}),f.showValues!==!1&&I.append(`text`).attr(`class`,`treemapSectionValue`).attr(`x`,e=>e.x1-e.x0-10).attr(`y`,U/2).attr(`text-anchor`,`end`).attr(`dominant-baseline`,`middle`).text(e=>e.value?T(e.value):``).attr(`font-style`,`italic`).attr(`style`,e=>e.depth===0?`display: none;`:`text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:`+O(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`));let L=N.leaves(),R=L.length>20,z=R?16:38,B=R?14:28,W=R?4:8,G=R?4:6,K=R?2:4,q=R?8:10,J=R?1:2,Y=A.selectAll(`.treemapLeafGroup`).data(L).enter().append(`g`).attr(`class`,(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:``}x`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);Y.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,`treemapLeaf`).attr(`fill`,e=>e.parent?E(e.parent.data.name):E(e.data.name)).attr(`style`,e=>k({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr(`fill-opacity`,.3).attr(`stroke`,e=>e.parent?E(e.parent.data.name):E(e.data.name)).attr(`stroke-width`,3),Y.append(`clipPath`).attr(`id`,(e,n)=>`clip-${t}-${n}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-4)).attr(`height`,e=>Math.max(0,e.y1-e.y0-4)),Y.append(`text`).attr(`class`,`treemapLabel`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,e=>(e.y1-e.y0)/2).attr(`style`,e=>`text-anchor: middle; dominant-baseline: middle; font-size: ${z}px;fill:`+O(e.data.name)+`;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,n)=>`url(#clip-${t}-${n})`).text(e=>e.data.name).each(function(e){let t=c(this),n=e.x1-e.x0,r=e.y1-e.y0,i=t.node(),a=n-2*K,o=r-2*K;if(a<q||o<q){t.style(`display`,`none`);return}let s=parseInt(t.style(`font-size`),10),l=.6;for(;i.getComputedTextLength()>a&&s>W;)s--,t.style(`font-size`,`${s}px`);let u=Math.max(G,Math.min(B,Math.round(s*l))),d=s+J+u;for(;d>o&&s>W&&(s--,u=Math.max(G,Math.min(B,Math.round(s*l))),!(u<G&&s===W));)t.style(`font-size`,`${s}px`),d=s+J+u;t.style(`font-size`,`${s}px`),R?(s<W||o<W)&&t.style(`display`,`none`):(i.getComputedTextLength()>a||s<W||o<s)&&t.style(`display`,`none`)}),f.showValues!==!1&&Y.append(`text`).attr(`class`,`treemapValue`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,function(e){return(e.y1-e.y0)/2}).attr(`style`,e=>`text-anchor: middle; dominant-baseline: hanging; font-size: ${B}px;fill:`+O(e.data.name)+`;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,n)=>`url(#clip-${t}-${n})`).text(e=>e.value?T(e.value):``).each(function(e){let t=c(this),n=this.parentNode;if(!n){t.style(`display`,`none`);return}let r=c(n).select(`.treemapLabel`);if(r.empty()||r.style(`display`)===`none`){t.style(`display`,`none`);return}let i=parseFloat(r.style(`font-size`)),a=Math.max(G,Math.min(B,Math.round(i*.6)));t.style(`font-size`,`${a}px`);let o=(e.y1-e.y0)/2+i/2+J;t.attr(`y`,o);let s=e.x1-e.x0,l=e.y1-e.y0-4,u=s-2*K;t.node().getComputedTextLength()>u||o+a>l||a<G?t.style(`display`,`none`):t.style(`display`,null)});let X=f.diagramPadding??8;M(b,X,`flowchart`,f?.useMaxWidth||!1)},`draw`),getClasses:r(function(e,t){return t.db.getClasses()},`getClasses`)},G={sectionStrokeColor:`black`,sectionStrokeWidth:`1`,sectionFillColor:`#efefef`,leafStrokeColor:`black`,leafStrokeWidth:`1`,leafFillColor:`#efefef`,labelFontSize:`12px`,valueFontSize:`10px`,titleFontSize:`14px`},K={parser:B,get db(){return new L},renderer:W,styles:r(({treemap:e}={})=>{let t=p(),n=_(),r=O(t,n.themeVariables),i=O(G,e),a=i.titleColor??r.titleColor,o=i.labelColor??r.textColor,s=i.valueColor??r.textColor;return`
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-BJwgCBBc.js";import{n as r,r as i}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as a,Ct as o,Et as s,jt as c,t as l,wt as u,xt as d,zt as f}from"./src-CRDfRlHM.js";import{D as p,U as m,W as h,a as g,b as _,c as v,f as y,j as b,q as x,v as S,w as C,y as w}from"./chunk-DU6HZSFF-DK-As3rk.js";import{n as T,t as E}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{d as D,i as O}from"./chunk-75Z2AOVW-BszTQoM4.js";import{a as k,n as A,r as j}from"./chunk-P2QGCYS3-_066ndhH.js";import{n as M,t as N}from"./chunk-POPQ4Y6H-YT1AKhTv.js";import{g as P,h as F}from"./mermaid.core-CsDDodN8.js";function I(e){if(!e.length)return[];let t=[],n=[];return e.forEach(e=>{let r={name:e.name,children:e.type===`Leaf`?void 0:[]};for(r.classSelector=e?.classSelector,e?.cssCompiledStyles&&(r.cssCompiledStyles=e.cssCompiledStyles),e.type===`Leaf`&&e.value!==void 0&&(r.value=e.value);n.length>0&&n[n.length-1].level>=e.level;)n.pop();if(n.length===0)t.push(r);else{let e=n[n.length-1].node;e.children?e.children.push(r):e.children=[r]}e.type!==`Leaf`&&n.push({node:r,level:e.level})}),t}var L,R,z,B,V,H,U,W,G,K;e((()=>{E(),F(),N(),A(),D(),b(),f(),i(),t(),l(),L=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=h,this.getAccTitle=w,this.setDiagramTitle=x,this.getDiagramTitle=C,this.getAccDescription=S,this.setAccDescription=m}static{r(this,`TreeMapDB`)}getNodes(){return this.nodes}getConfig(){let e=y,t=_();return O({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),t===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:``,children:this.outerNodes}}addClass(e,t){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},r=t.replace(/\\,/g,`§§§`).replace(/,/g,`;`).replace(/§§§/g,`,`).split(`;`);r&&r.forEach(e=>{j(e)&&(n?.textStyles?n.textStyles.push(e):n.textStyles=[e]),n?.styles?n.styles.push(e):n.styles=[e]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){g(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}},r(I,`buildHierarchy`),R=r((e,t)=>{T(e,t);let n=[];for(let n of e.TreemapRows??[])n.$type===`ClassDefStatement`&&t.addClass(n.className??``,n.styleText??``);for(let r of e.TreemapRows??[]){let e=r.item;if(!e)continue;let i=r.indent?parseInt(r.indent):0,a=z(e),o=e.classSelector?t.getStylesForClass(e.classSelector):[],s=o.length>0?o:void 0,c={level:i,name:a,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:s};n.push(c)}let i=I(n),a=r((e,n)=>{for(let r of e)t.addNode(r,n),r.children&&r.children.length>0&&a(r.children,n+1)},`addNodesRecursively`);a(i,0)},`populate`),z=r(e=>e.name?String(e.name):``,`getItemName`),B={parser:{yy:void 0},parse:r(async e=>{try{let t=await n(`treemap`,e);a.debug(`Treemap AST:`,t);let r=B.parser?.yy;if(!(r instanceof L))throw Error(`parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);R(t,r)}catch(e){throw a.error(`Error parsing treemap:`,e),e}},`parse`)},V=10,H=10,U=25,W={draw:r((e,t,n,i)=>{let l=i.db,f=l.getConfig(),p=f.padding??V,m=l.getDiagramTitle(),h=l.getRoot(),{themeVariables:g}=_();if(!h)return;let y=m?30:0,b=P(t),x=f.nodeWidth?f.nodeWidth*H:960,S=f.nodeHeight?f.nodeHeight*H:500,C=x,w=S+y;b.attr(`viewBox`,`0 0 ${C} ${w}`),v(b,w,C,f.useMaxWidth);let T;try{let e=f.valueFormat||`,`;if(e===`$0,0`)T=r(e=>`$`+s(`,`)(e),`valueFormat`);else if(e.startsWith(`$`)&&e.includes(`,`)){let t=/\.\d+/.exec(e),n=t?t[0]:``;T=r(e=>`$`+s(`,`+n)(e),`valueFormat`)}else if(e.startsWith(`$`)){let t=e.substring(1);T=r(e=>`$`+s(t||``)(e),`valueFormat`)}else T=s(e)}catch(e){a.error(`Error creating format function:`,e),T=s(`,`)}let E=d().range([`transparent`,g.cScale0,g.cScale1,g.cScale2,g.cScale3,g.cScale4,g.cScale5,g.cScale6,g.cScale7,g.cScale8,g.cScale9,g.cScale10,g.cScale11]),D=d().range([`transparent`,g.cScalePeer0,g.cScalePeer1,g.cScalePeer2,g.cScalePeer3,g.cScalePeer4,g.cScalePeer5,g.cScalePeer6,g.cScalePeer7,g.cScalePeer8,g.cScalePeer9,g.cScalePeer10,g.cScalePeer11]),O=d().range([g.cScaleLabel0,g.cScaleLabel1,g.cScaleLabel2,g.cScaleLabel3,g.cScaleLabel4,g.cScaleLabel5,g.cScaleLabel6,g.cScaleLabel7,g.cScaleLabel8,g.cScaleLabel9,g.cScaleLabel10,g.cScaleLabel11]);m&&b.append(`text`).attr(`x`,C/2).attr(`y`,y/2).attr(`class`,`treemapTitle`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(m);let A=b.append(`g`).attr(`transform`,`translate(0, ${y})`).attr(`class`,`treemapContainer`),j=u(h).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),N=o().size([x,S]).paddingTop(e=>e.children&&e.children.length>0?U+H:0).paddingInner(p).paddingLeft(e=>e.children&&e.children.length>0?H:0).paddingRight(e=>e.children&&e.children.length>0?H:0).paddingBottom(e=>e.children&&e.children.length>0?H:0).round(!0)(j),F=N.descendants().filter(e=>e.children&&e.children.length>0),I=A.selectAll(`.treemapSection`).data(F).enter().append(`g`).attr(`class`,`treemapSection`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);I.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,U).attr(`class`,`treemapSectionHeader`).attr(`fill`,`none`).attr(`fill-opacity`,.6).attr(`stroke-width`,.6).attr(`style`,e=>e.depth===0?`display: none;`:``),I.append(`clipPath`).attr(`id`,(e,n)=>`clip-section-${t}-${n}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-12)).attr(`height`,U),I.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,(e,t)=>`treemapSection section${t}`).attr(`fill`,e=>E(e.data.name)).attr(`fill-opacity`,.6).attr(`stroke`,e=>D(e.data.name)).attr(`stroke-width`,2).attr(`stroke-opacity`,.4).attr(`style`,e=>{if(e.depth===0)return`display: none;`;let t=k({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+`;`+t.borderStyles.join(`;`)}),I.append(`text`).attr(`class`,`treemapSectionLabel`).attr(`x`,6).attr(`y`,U/2).attr(`dominant-baseline`,`middle`).text(e=>e.depth===0?``:e.data.name).attr(`font-weight`,`bold`).attr(`clip-path`,(e,n)=>`url(#clip-section-${t}-${n})`).attr(`style`,e=>e.depth===0?`display: none;`:`dominant-baseline: middle; font-size: 12px; fill:`+O(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).each(function(e){if(e.depth===0)return;let t=c(this),n=e.data.name;t.text(n);let r=e.x1-e.x0,i;i=f.showValues!==!1&&e.value?r-10-30-10-6:r-6-6;let a=Math.max(15,i),o=t.node();if(o.getComputedTextLength()>a){let e=n;for(;e.length>0;){if(e=n.substring(0,e.length-1),e.length===0){t.text(`...`),o.getComputedTextLength()>a&&t.text(``);break}if(t.text(e+`...`),o.getComputedTextLength()<=a)break}}}),f.showValues!==!1&&I.append(`text`).attr(`class`,`treemapSectionValue`).attr(`x`,e=>e.x1-e.x0-10).attr(`y`,U/2).attr(`text-anchor`,`end`).attr(`dominant-baseline`,`middle`).text(e=>e.value?T(e.value):``).attr(`font-style`,`italic`).attr(`style`,e=>e.depth===0?`display: none;`:`text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:`+O(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`));let L=N.leaves(),R=L.length>20,z=R?16:38,B=R?14:28,W=R?4:8,G=R?4:6,K=R?2:4,q=R?8:10,J=R?1:2,Y=A.selectAll(`.treemapLeafGroup`).data(L).enter().append(`g`).attr(`class`,(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:``}x`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);Y.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,`treemapLeaf`).attr(`fill`,e=>e.parent?E(e.parent.data.name):E(e.data.name)).attr(`style`,e=>k({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr(`fill-opacity`,.3).attr(`stroke`,e=>e.parent?E(e.parent.data.name):E(e.data.name)).attr(`stroke-width`,3),Y.append(`clipPath`).attr(`id`,(e,n)=>`clip-${t}-${n}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-4)).attr(`height`,e=>Math.max(0,e.y1-e.y0-4)),Y.append(`text`).attr(`class`,`treemapLabel`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,e=>(e.y1-e.y0)/2).attr(`style`,e=>`text-anchor: middle; dominant-baseline: middle; font-size: ${z}px;fill:`+O(e.data.name)+`;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,n)=>`url(#clip-${t}-${n})`).text(e=>e.data.name).each(function(e){let t=c(this),n=e.x1-e.x0,r=e.y1-e.y0,i=t.node(),a=n-2*K,o=r-2*K;if(a<q||o<q){t.style(`display`,`none`);return}let s=parseInt(t.style(`font-size`),10),l=.6;for(;i.getComputedTextLength()>a&&s>W;)s--,t.style(`font-size`,`${s}px`);let u=Math.max(G,Math.min(B,Math.round(s*l))),d=s+J+u;for(;d>o&&s>W&&(s--,u=Math.max(G,Math.min(B,Math.round(s*l))),!(u<G&&s===W));)t.style(`font-size`,`${s}px`),d=s+J+u;t.style(`font-size`,`${s}px`),R?(s<W||o<W)&&t.style(`display`,`none`):(i.getComputedTextLength()>a||s<W||o<s)&&t.style(`display`,`none`)}),f.showValues!==!1&&Y.append(`text`).attr(`class`,`treemapValue`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,function(e){return(e.y1-e.y0)/2}).attr(`style`,e=>`text-anchor: middle; dominant-baseline: hanging; font-size: ${B}px;fill:`+O(e.data.name)+`;`+k({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,n)=>`url(#clip-${t}-${n})`).text(e=>e.value?T(e.value):``).each(function(e){let t=c(this),n=this.parentNode;if(!n){t.style(`display`,`none`);return}let r=c(n).select(`.treemapLabel`);if(r.empty()||r.style(`display`)===`none`){t.style(`display`,`none`);return}let i=parseFloat(r.style(`font-size`)),a=Math.max(G,Math.min(B,Math.round(i*.6)));t.style(`font-size`,`${a}px`);let o=(e.y1-e.y0)/2+i/2+J;t.attr(`y`,o);let s=e.x1-e.x0,l=e.y1-e.y0-4,u=s-2*K;t.node().getComputedTextLength()>u||o+a>l||a<G?t.style(`display`,`none`):t.style(`display`,null)});let X=f.diagramPadding??8;M(b,X,`flowchart`,f?.useMaxWidth||!1)},`draw`),getClasses:r(function(e,t){return t.db.getClasses()},`getClasses`)},G={sectionStrokeColor:`black`,sectionStrokeWidth:`1`,sectionFillColor:`#efefef`,leafStrokeColor:`black`,leafStrokeWidth:`1`,leafFillColor:`#efefef`,labelFontSize:`12px`,valueFontSize:`10px`,titleFontSize:`14px`},K={parser:B,get db(){return new L},renderer:W,styles:r(({treemap:e}={})=>{let t=p(),n=_(),r=O(t,n.themeVariables),i=O(G,e),a=i.titleColor??r.titleColor,o=i.labelColor??r.textColor,s=i.valueColor??r.textColor;return`
|
|
2
2
|
.treemapNode.section {
|
|
3
3
|
stroke: ${i.sectionStrokeColor};
|
|
4
4
|
stroke-width: ${i.sectionStrokeWidth};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,r as n}from"./mermaid-parser.core-BJwgCBBc.js";import{n as r,r as i}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as a,zt as o}from"./src-CRDfRlHM.js";import{U as s,W as c,a as l,b as u,c as d,f,j as p,q as m,v as h,w as g,y as _}from"./chunk-DU6HZSFF-DK-As3rk.js";import{n as v,t as y}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{d as b,i as x}from"./chunk-75Z2AOVW-BszTQoM4.js";import{g as S,h as C}from"./mermaid.core-CsDDodN8.js";var w,T,E,D,O,k,A,j,M,N,P;e((()=>{y(),C(),b(),p(),o(),i(),t(),w=f.packet,T=class{constructor(){this.packet=[],this.setAccTitle=c,this.getAccTitle=_,this.setDiagramTitle=m,this.getDiagramTitle=g,this.getAccDescription=h,this.setAccDescription=s}static{r(this,`PacketDB`)}getConfig(){let e=x({...w,...u().packet});return e.showBits&&(e.paddingY+=10),e}getPacket(){return this.packet}pushWord(e){e.length>0&&this.packet.push(e)}clear(){l(),this.packet=[]}},E=1e4,D=r((e,t)=>{v(e,t);let n=-1,r=[],i=1,{bitsPerRow:o}=t.getConfig();for(let{start:s,end:c,bits:l,label:u}of e.blocks){if(s!==void 0&&c!==void 0&&c<s)throw Error(`Packet block ${s} - ${c} is invalid. End must be greater than start.`);if(s??=n+1,s!==n+1)throw Error(`Packet block ${s} - ${c??s} is not contiguous. It should start from ${n+1}.`);if(l===0)throw Error(`Packet block ${s} is invalid. Cannot have a zero bit field.`);for(c??=s+(l??1)-1,l??=c-s+1,n=c,a.debug(`Packet block ${s} - ${n} with label ${u}`);r.length<=o+1&&t.getPacket().length<E;){let[e,n]=O({start:s,end:c,bits:l,label:u},i,o);if(r.push(e),e.end+1===i*o&&(t.pushWord(r),r=[],i++),!n)break;({start:s,end:c,bits:l,label:u}=n)}}t.pushWord(r)},`populate`),O=r((e,t,n)=>{if(e.start===void 0)throw Error(`start should have been set during first phase`);if(e.end===void 0)throw Error(`end should have been set during first phase`);if(e.start>e.end)throw Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*n)return[e,void 0];let r=t*n-1,i=t*n;return[{start:e.start,end:r,label:e.label,bits:r-e.start},{start:i,end:e.end,label:e.label,bits:e.end-i}]},`getNextFittingBlock`),k={parser:{yy:void 0},parse:r(async e=>{let t=await n(`packet`,e),r=k.parser?.yy;if(!(r instanceof T))throw Error(`parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);a.debug(t),D(t,r)},`parse`)},A=r((e,t,n,r)=>{let i=r.db,a=i.getConfig(),{rowHeight:o,paddingY:s,bitWidth:c,bitsPerRow:l}=a,u=i.getPacket(),f=i.getDiagramTitle(),p=o+s,m=p*(u.length+1)-(f?0:o),h=c*l+2,g=S(t);g.attr(`viewBox`,`0 0 ${h} ${m}`),d(g,m,h,a.useMaxWidth);for(let[e,t]of u.entries())j(g,t,e,a);g.append(`text`).text(f).attr(`x`,h/2).attr(`y`,m-p/2).attr(`dominant-baseline`,`middle`).attr(`text-anchor`,`middle`).attr(`class`,`packetTitle`)},`draw`),j=r((e,t,n,{rowHeight:r,paddingX:i,paddingY:a,bitWidth:o,bitsPerRow:s,showBits:c})=>{let l=e.append(`g`),u=n*(r+a)+a;for(let e of t){let t=e.start%s*o+1,n=(e.end-e.start+1)*o-i;if(l.append(`rect`).attr(`x`,t).attr(`y`,u).attr(`width`,n).attr(`height`,r).attr(`class`,`packetBlock`),l.append(`text`).attr(`x`,t+n/2).attr(`y`,u+r/2).attr(`class`,`packetLabel`).attr(`dominant-baseline`,`middle`).attr(`text-anchor`,`middle`).text(e.label),!c)continue;let a=e.end===e.start,d=u-2;l.append(`text`).attr(`x`,t+(a?n/2:0)).attr(`y`,d).attr(`class`,`packetByte start`).attr(`dominant-baseline`,`auto`).attr(`text-anchor`,a?`middle`:`start`).text(e.start),a||l.append(`text`).attr(`x`,t+n).attr(`y`,d).attr(`class`,`packetByte end`).attr(`dominant-baseline`,`auto`).attr(`text-anchor`,`end`).text(e.end)}},`drawWord`),M={draw:A},N={byteFontSize:`10px`,startByteColor:`black`,endByteColor:`black`,labelColor:`black`,labelFontSize:`12px`,titleColor:`black`,titleFontSize:`14px`,blockStrokeColor:`black`,blockStrokeWidth:`1`,blockFillColor:`#efefef`},P={parser:k,get db(){return new T},renderer:M,styles:r(({packet:e}={})=>{let t=x(N,e);return`
|
|
2
2
|
.packetByte {
|
|
3
3
|
font-size: ${t.byteFontSize};
|
|
4
4
|
}
|
package/out/web/assets/{ebnfDiagram-PWID7BFC-Dqj-zqPu.js → ebnfDiagram-PWID7BFC-DV9WpwdR.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{_ as t,n,t as r}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{_ as t,n,t as r}from"./mermaid-parser.core-BJwgCBBc.js";import{n as i,r as a}from"./chunk-Y2CYZVJY-BxCWjNVG.js";import{Bt as o,zt as s}from"./src-CRDfRlHM.js";import{j as c}from"./chunk-DU6HZSFF-DK-As3rk.js";import{i as l,n as u,r as d,t as f}from"./chunk-SVP7TREG-BQ1qb32L.js";import{n as p,t as m}from"./chunk-JWPE2WC7-BeEMUFDw.js";import{h}from"./mermaid.core-CsDDodN8.js";var g,_,v,y,b,x,S,C,w;e((()=>{d(),m(),h(),c(),s(),a(),n(),g=t().RailroadEbnf.parser.LangiumParser,_=i(e=>{let t=e.alternatives.map(v);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformChoice`),v=i(e=>{let t=e.elements.map(x);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformSequence`),y=i(e=>{switch(e.$type){case`EbnfTerminal`:return{type:`terminal`,value:e.value};case`EbnfNonTerminal`:return{type:`nonterminal`,name:e.name};case`EbnfSpecial`:return{type:`special`,text:e.text};case`EbnfGroup`:return _(e.element);case`EbnfOptional`:return{type:`optional`,element:_(e.element)};case`EbnfRepetition`:return{type:`repetition`,element:_(e.element),min:0,max:1/0};default:throw Error(`Unsupported EBNF primary node: ${e.$type}`)}},`transformPrimary`),b=i((e,t)=>{switch(t.$type){case`EbnfOptionalPostfix`:return{type:`optional`,element:e};case`EbnfZeroOrMorePostfix`:return{type:`repetition`,element:e,min:0,max:1/0};case`EbnfOneOrMorePostfix`:return{type:`repetition`,element:e,min:1,max:1/0};case`EbnfExceptionPostfix`:return{type:`sequence`,elements:[e,{type:`terminal`,value:`-`},y(t.except)]};default:throw Error(`Unsupported EBNF postfix node: ${t.$type}`)}},`transformPostfix`),x=i(e=>e.postfixes.reduce((e,t)=>b(e,t),y(e.base)),`transformTerm`),S=i(e=>({name:e.name,definition:_(e.definition)}),`transformRule`),C=i(e=>{p(e,f),e.title&&f.setTitle(e.title),e.rules.map(e=>f.addRule(S(e)))},`populateDb`),w={parser:{parse:i(e=>{f.clear(),o.debug(`[EBNF Parser] Starting Langium parse`);let t=g.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new r(t);let n=t.value;o.debug(`[EBNF Parser] Parsed rules:`,n.rules.length),C(n),o.debug(`[EBNF Parser] Parse complete`)},`parse`),parser:{yy:f}},db:f,renderer:l,styles:u}}))();export{w as diagram};
|