@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
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,t as n}from"./jsx-runtime-DmUwWVTj.js";import{An as r,
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,t as n}from"./jsx-runtime-DmUwWVTj.js";import{An as r,Br as i,Bt as a,En as o,In as s,J as c,Jn as l,Jt as u,Kr as d,L as f,Mr as p,Mt as m,Q as h,Qt as g,R as _,Rn as v,Wn as y,X as b,Xt as x,bn as S,br as C,bt as w,cn as T,cr as E,et as D,fr as O,ft as k,gt as A,in as j,it as M,mr as N,mt as P,nr as F,on as I,or as L,ur as R,vn as z,vr as B,vt as V,wr as H,wt as U}from"./index-BocxnrDG.js";import{S as W,b as G}from"./MintDashboard-C_UYPoNV.js";function K(e){if(!e)return P;let t=e.toLowerCase().trim().replace(/_/g,`-`);return Y[t]||P}function q({data:e}){let t,n,r=[];return Array.isArray(e)?r=e:e&&typeof e==`object`&&(`title`in e&&Array.isArray(e.items)?(t=e.title,n=e.subtitle,r=e.items||[]):`title`in e&&(r=[e])),r.length===0?null:(0,J.jsxs)(`div`,{className:`chat-ui-feature-container`,children:[(t||n)&&(0,J.jsxs)(`div`,{className:`chat-ui-feature-header`,children:[t&&(0,J.jsx)(`h4`,{className:`chat-ui-feature-header-title`,children:t}),n&&(0,J.jsx)(`p`,{className:`chat-ui-feature-header-subtitle`,children:n})]}),r.map((e,t)=>{let n=X[e.badgeColor||`green`]||X.green,r=K(e.icon),i=e.thumbnail?W(e.thumbnail):null,a=[];return e.details&&(Array.isArray(e.details)?a=e.details:typeof e.details==`object`&&(a=Object.entries(e.details).map(([e,t])=>({label:e,value:String(t)})))),(0,J.jsx)(`div`,{className:`chat-ui-feature-item`,children:(0,J.jsxs)(`div`,{className:`chat-ui-feature-inner`,children:[i?(0,J.jsx)(`div`,{className:`chat-ui-feature-thumb`,children:(0,J.jsx)(`img`,{src:i,alt:e.title,onError:e=>{e.currentTarget.style.display=`none`}})}):(0,J.jsx)(`div`,{className:`chat-ui-feature-icon-box`,children:(0,J.jsx)(r,{size:20,strokeWidth:2.2})}),(0,J.jsxs)(`div`,{className:`chat-ui-feature-body`,children:[(0,J.jsxs)(`div`,{className:`chat-ui-feature-top-row`,children:[(0,J.jsx)(`span`,{className:`chat-ui-feature-title`,children:e.title}),e.badge&&(0,J.jsx)(`span`,{className:`chat-ui-feature-badge`,style:{background:n.bg,color:n.color,border:`1px solid ${n.border}`},children:e.badge}),e.link&&(0,J.jsx)(`a`,{href:e.link,target:`_blank`,rel:`noopener noreferrer`,className:`chat-ui-feature-link`,children:(0,J.jsx)(F,{size:14})})]}),e.subtitle&&(0,J.jsx)(`div`,{className:`chat-ui-feature-subtitle`,children:e.subtitle}),a.length>0&&(0,J.jsx)(`div`,{className:`chat-ui-feature-details`,children:a.map((e,t)=>(0,J.jsxs)(`div`,{className:`chat-ui-feature-detail-row`,children:[(0,J.jsxs)(`span`,{className:`chat-ui-feature-detail-label`,children:[e.label,`:`]}),(0,J.jsx)(`span`,{className:`chat-ui-feature-detail-value`,children:e.value})]},t))}),e.tags&&e.tags.length>0&&(0,J.jsx)(`div`,{className:`chat-ui-feature-tags`,children:e.tags.map((e,t)=>(0,J.jsxs)(`span`,{className:`chat-ui-feature-tag`,children:[`#`,e]},t))})]})]})},t)})]})}var J,Y,X;e((()=>{t(),G(),f(),J=n(),Y={"message-square":j,chat:j,mail:I,email:I,smartphone:A,phone:A,mobile:A,video:c,camera:c,database:E,db:E,code:B,terminal:k,file:y,"file-text":l,folder:v,cpu:N,zap:_,fast:_,sparkles:P,check:i,"alert-circle":p,"alert-triangle":M,warning:M,lock:T,security:w,shield:w,key:S,"credit-card":O,payment:O,user:b,"user-check":h,repeat:m,sync:m,clock:H,time:H,layers:z,palette:u,globe:s,web:s,box:d,package:x,crop:R,scan:R,cloud:C,settings:U,download:L,upload:D,image:o,play:a,music:g,"hard-drive":r,storage:r,sliders:V,filter:V},X={green:{bg:`var(--status-success-bg, var(--accent-subtle))`,color:`var(--status-success-fg, var(--interactive-fg))`,border:`var(--status-success-border, var(--accent-border))`},blue:{bg:`var(--status-info-bg)`,color:`var(--status-info-fg)`,border:`var(--status-info-border)`},purple:{bg:`var(--status-purple-bg)`,color:`var(--status-purple-fg)`,border:`var(--status-purple-border)`},amber:{bg:`var(--status-warning-bg)`,color:`var(--status-warning-fg)`,border:`var(--status-warning-border)`},red:{bg:`var(--status-error-bg)`,color:`var(--status-error-fg)`,border:`var(--status-error-border)`}}}))();export{q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,t as n}from"./jsx-runtime-DmUwWVTj.js";import{An as r,
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{n as t,t as n}from"./jsx-runtime-DmUwWVTj.js";import{An as r,Br as i,Bt as a,En as o,In as s,J as c,Jn as l,Jt as u,Kr as d,L as f,Mr as p,Mt as m,Q as h,Qt as g,R as _,Rn as v,Wn as y,X as b,bn as x,br as S,bt as C,cn as w,cr as T,et as E,fr as D,ft as O,gt as k,in as A,it as j,mr as M,mt as N,nr as P,on as F,or as I,ur as L,vn as R,vr as z,vt as B,wr as V,wt as H}from"./index-BocxnrDG.js";function U(e){if(!e)return N;let t=e.toLowerCase().trim().replace(/_/g,`-`);return K[t]||N}function W({data:e}){let t,n,r=[],i;if(Array.isArray(e)?r=e:e&&typeof e==`object`&&(t=e.title,n=e.subtitle,i=e.columns,r=Array.isArray(e.items)?e.items:[]),r.length===0)return null;let a=i?`repeat(${i}, 1fr)`:`repeat(auto-fit, minmax(200px, 1fr))`;return(0,G.jsxs)(`div`,{className:`chat-ui-grid-wrapper`,children:[(t||n)&&(0,G.jsxs)(`div`,{className:`chat-ui-grid-header`,children:[t&&(0,G.jsx)(`h4`,{className:`chat-ui-grid-header-title`,children:t}),n&&(0,G.jsx)(`p`,{className:`chat-ui-grid-header-subtitle`,children:n})]}),(0,G.jsx)(`div`,{className:`chat-ui-grid-grid`,style:{gridTemplateColumns:a},children:r.map((e,t)=>{let n=U(e.icon);return(0,G.jsxs)(`div`,{className:`chat-ui-grid-item`,children:[(0,G.jsxs)(`div`,{className:`chat-ui-grid-item-top`,children:[(0,G.jsx)(`div`,{className:`chat-ui-grid-item-icon`,children:(0,G.jsx)(n,{size:18,strokeWidth:2.2})}),e.badge&&(0,G.jsx)(`span`,{style:{fontSize:`0.7rem`,fontWeight:600,padding:`2px 7px`,borderRadius:`999px`,background:`var(--accent-subtle)`,color:`var(--interactive-fg)`,border:`1px solid var(--accent-border)`},children:e.badge})]}),(0,G.jsx)(`div`,{className:`chat-ui-grid-item-title`,children:e.title}),e.desc&&(0,G.jsx)(`div`,{className:`chat-ui-grid-item-desc`,children:e.desc})]},t)})})]})}var G,K;e((()=>{t(),f(),G=n(),K={"message-square":A,chat:A,mail:F,email:F,smartphone:k,phone:k,mobile:k,video:c,camera:c,database:T,db:T,code:z,terminal:O,file:y,"file-text":l,folder:v,cpu:M,zap:_,fast:_,sparkles:N,check:i,"alert-circle":p,"alert-triangle":j,warning:j,lock:w,security:C,shield:C,key:x,"credit-card":D,payment:D,user:b,"user-check":h,repeat:m,sync:m,clock:V,time:V,layers:R,palette:u,globe:s,web:s,box:d,package:d,crop:L,scan:L,cloud:S,settings:H,download:I,upload:E,image:o,play:a,music:g,"hard-drive":r,storage:r,sliders:B,filter:B,link:P}}))();export{W as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,n as t}from"./rolldown-runtime-CNOWq4Kh.js";import{n,t as r}from"./jsx-runtime-DmUwWVTj.js";import{L as i,Rr as a,Sn as o,Sr as s}from"./index-BocxnrDG.js";function c({data:e}){if(!e||typeof e!=`object`)return null;let t=e.title||`App Preview`,n=e.subtitle,r=e.dropzoneText||`Drag files here`,i=e.dropzoneHint||`or choose files from your device`,c=e.buttonText||`Choose file`,d=e.disclaimer||`UI mockup preview only, not a live file processor`,f=[];Array.isArray(e.options)?f=e.options.map(e=>({label:e.label,current:e.value,choices:e.options||[e.value]})):e.options&&typeof e.options==`object`&&(f=Object.entries(e.options).map(([e,t])=>({label:e,current:String(t),choices:[String(t)]})));let[p,m]=(0,l.useState)(f),[h,g]=(0,l.useState)(!1),_=e=>{m(t=>{let n=[...t],r=n[e];if(r&&r.choices.length>1){let t=(r.choices.indexOf(r.current)+1)%r.choices.length;n[e]={...r,current:r.choices[t]}}return n})};return(0,u.jsxs)(`div`,{className:`chat-ui-mockup-container`,children:[(0,u.jsxs)(`div`,{className:`chat-ui-mockup-header`,children:[(0,u.jsxs)(`div`,{className:`chat-ui-mockup-dots`,children:[(0,u.jsx)(`span`,{className:`chat-ui-mockup-dot dot-red`}),(0,u.jsx)(`span`,{className:`chat-ui-mockup-dot dot-amber`}),(0,u.jsx)(`span`,{className:`chat-ui-mockup-dot dot-green`})]}),(0,u.jsx)(`div`,{className:`chat-ui-mockup-tag`,children:`Mockup concept`}),(0,u.jsx)(`div`,{style:{width:`42px`}})]}),(0,u.jsxs)(`div`,{className:`chat-ui-mockup-body`,children:[(0,u.jsx)(`h3`,{className:`chat-ui-mockup-title`,children:t}),n&&(0,u.jsx)(`p`,{className:`chat-ui-mockup-subtitle`,children:n}),(0,u.jsxs)(`div`,{onClick:()=>g(e=>!e),className:`chat-ui-mockup-dropzone ${h?`is-active`:``}`,children:[(0,u.jsx)(`div`,{className:`chat-ui-mockup-dropzone-icon`,children:(0,u.jsx)(s,{size:22})}),(0,u.jsx)(`div`,{className:`chat-ui-mockup-dropzone-text`,children:r}),(0,u.jsx)(`div`,{className:`chat-ui-mockup-dropzone-hint`,children:i}),(0,u.jsx)(`button`,{type:`button`,className:`chat-ui-mockup-dropzone-btn`,children:c})]}),e.metrics&&(0,u.jsx)(`div`,{className:`chat-ui-mockup-metrics`,children:Object.entries(e.metrics).map(([e,t],n)=>(0,u.jsxs)(`div`,{className:`chat-ui-mockup-metric-row`,children:[(0,u.jsx)(`span`,{className:`chat-ui-mockup-metric-label`,children:e}),(0,u.jsx)(`span`,{className:`chat-ui-mockup-metric-pill`,children:t})]},n))}),p.length>0&&(0,u.jsx)(`div`,{className:`chat-ui-mockup-options`,style:{gridTemplateColumns:`repeat(${Math.min(p.length,2)}, 1fr)`},children:p.map((e,t)=>(0,u.jsxs)(`div`,{onClick:()=>_(t),className:`chat-ui-mockup-option-card ${e.choices.length>1?`is-clickable`:``}`,children:[(0,u.jsx)(`span`,{className:`chat-ui-mockup-option-label`,children:e.label}),(0,u.jsxs)(`span`,{className:`chat-ui-mockup-option-value`,children:[e.current,e.choices.length>1&&(0,u.jsx)(a,{size:13,opacity:.6})]})]},t))}),(0,u.jsxs)(`div`,{className:`chat-ui-mockup-disclaimer`,children:[(0,u.jsx)(o,{size:12}),(0,u.jsx)(`span`,{children:d})]})]})]})}var l,u;t((()=>{l=e(n()),i(),u=r()}))();export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.veo-studio{top:0;bottom:0;right:0;left:var(--sidebar-expanded-width,264px);background:var(--bg-gradient,var(--bg-color,#0a0a0b));z-index:10;opacity:0;pointer-events:none;flex-direction:column;transition:left .22s,opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;overflow:hidden;transform:translateY(12px)scale(.995)}.app-body.sidebar-collapsed .veo-studio{left:calc(var(--sidebar-collapsed-width,56px) + var(--sidebar-content-gap,10px))}.veo-studio.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.veo-studio-header{border-bottom:1px solid var(--border);background:var(--chrome-bg);-webkit-backdrop-filter:var(--glass-blur,blur(16px));backdrop-filter:var(--glass-blur,blur(16px));flex-shrink:0;padding:20px 28px 12px}.veo-studio-header-title{color:var(--text-main);align-items:center;gap:10px;margin-bottom:4px;display:flex}.veo-studio-header-title h1{color:var(--text-main);margin:0;font-size:1.18rem;font-weight:700}.veo-studio-header-title svg{color:var(--interactive-fg);flex-shrink:0}.veo-studio-badge{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--interactive-fg-hover);letter-spacing:.03em;text-transform:none;align-items:center;margin-left:4px;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-flex}.veo-studio-subtitle{color:var(--text-muted);margin:6px 0 0;font-size:.8rem}.veo-studio-content{flex:1;grid-template-columns:320px 1fr;min-height:0;display:grid;overflow:hidden}.veo-studio-controls{border-right:1px solid var(--border);background:var(--panel-soft);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 20%, transparent) transparent;flex-direction:column;gap:18px;padding:22px 20px;display:flex;overflow-y:auto}.veo-studio-controls::-webkit-scrollbar{width:6px}.veo-studio-results::-webkit-scrollbar{width:6px}.veo-studio-controls::-webkit-scrollbar-track{background:0 0}.veo-studio-results::-webkit-scrollbar-track{background:0 0}.veo-studio-controls::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:var(--radius-full)}.veo-studio-results::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:var(--radius-full)}.veo-studio-controls::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--accent) 30%, transparent)}.veo-studio-results::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--accent) 30%, transparent)}.veo-studio-field{flex-direction:column;gap:7px;display:flex}.veo-studio-label{color:var(--text-soft);letter-spacing:.02em;text-transform:none;align-items:center;gap:8px;font-size:.76rem;font-weight:500;display:flex}.veo-studio-label-hint{text-transform:none;color:var(--text-muted);letter-spacing:0;font-weight:400}.veo-studio-textarea{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--input-bg);width:100%;color:var(--text-main);resize:vertical;box-sizing:border-box;outline:none;padding:10px 12px;font-size:.87rem;line-height:1.55;transition:border-color .15s,box-shadow .15s}.veo-studio-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent)}.veo-studio-textarea--sm{font-size:.82rem}.veo-studio-prompt-hint{color:var(--text-muted);text-align:right;opacity:.85;font-size:.7rem}.veo-studio-chips{flex-wrap:wrap;gap:6px;display:flex}.veo-studio-chip{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;padding:5px 11px;font-size:.74rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.veo-studio-chip:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent);color:var(--text-main)}.veo-studio-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:6px;padding:2px 0;font-size:.82rem;font-weight:500;transition:color .12s;display:inline-flex}.veo-studio-toggle:hover{color:var(--text-soft)}.veo-studio-badge-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;display:inline-block}.veo-input-file-row{align-items:center;gap:8px;width:100%;display:flex}.veo-input-file-wrap{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--border);flex:1;align-items:center;min-width:0;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.veo-input-file-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.veo-input-file-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.veo-input-file-text{width:100%;color:var(--text-main);font-size:.82rem;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important;padding:9px 82px 9px 34px!important}.veo-browse-btn{border-radius:var(--radius-sm);color:var(--text-soft);cursor:pointer;background:#ffffff14;border:1px solid #ffffff1a;align-items:center;gap:5px;padding:5px 10px;font-size:.75rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex;position:absolute;right:5px}.veo-browse-btn:hover{color:var(--text-main);background:#ffffff29}.veo-load-btn{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid var(--accent);color:var(--interactive-fg);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;padding:8px 12px;font-size:.78rem;font-weight:600;transition:background .15s;display:inline-flex}.veo-load-btn:hover{background:color-mix(in srgb, var(--accent) 25%, transparent)}.veo-mode-segmented{border:1px solid var(--border);border-radius:var(--radius-lg);background:#00000040;gap:2px;width:100%;padding:3px;display:flex}.veo-mode-btn{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.8rem;font-weight:500;transition:all .18s cubic-bezier(.4,0,.2,1);display:inline-flex}.veo-mode-btn.is-active{background:var(--panel-raised,#343436);color:var(--interactive-fg);font-weight:600;box-shadow:0 1px 4px #0006}.veo-studio-aspect-group,.veo-studio-duration-group{gap:8px;display:flex}.veo-studio-aspect-btn,.veo-studio-duration-btn{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;outline:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.veo-studio-aspect-btn:hover:not(:disabled),.veo-studio-duration-btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:var(--accent);color:var(--text-main)}.veo-studio-aspect-btn.is-active,.veo-studio-duration-btn.is-active{background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:var(--accent);color:var(--text-main);box-shadow:0 0 0 1px var(--accent);font-weight:600}.veo-studio-aspect-btn:disabled,.veo-studio-duration-btn:disabled{opacity:.45;cursor:not-allowed}.veo-studio-aspect-icon{font-size:.65rem;line-height:1}.veo-studio-generate-btn{border-radius:var(--radius-lg);background:var(--accent);border:1px solid var(--accent);width:100%;color:var(--text-on-accent);cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 20%, transparent);outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:.9rem;font-weight:600;transition:opacity .15s,box-shadow .15s,transform .1s;display:flex}.veo-studio-generate-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);transform:translateY(-1px)}.veo-studio-generate-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.veo-studio-generate-btn.is-loading{cursor:wait}.veo-studio-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite veo-spin;display:inline-block}.veo-studio-error{border-radius:var(--radius-md);color:#fca5a5;background:#ef44441a;border:1px solid #ef444440;align-items:flex-start;gap:8px;padding:10px 12px;font-size:.8rem;line-height:1.5;display:flex}.veo-studio-error span{flex:1}.veo-studio-error button{color:#fca5a5;cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:0;font-size:1rem;line-height:1}.veo-studio-history{flex-direction:column;gap:4px;display:flex}.veo-studio-history-item{border-radius:var(--radius-md);background:var(--input-bg);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;outline:none;align-items:center;gap:7px;padding:6px 9px;font-size:.78rem;transition:background .15s,color .15s;display:flex;overflow:hidden}.veo-studio-history-item span{text-overflow:ellipsis;overflow:hidden}.veo-studio-history-item:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text-main)}.veo-studio-results{flex-direction:column;display:flex;overflow-y:auto}.veo-studio-active-workspace{background:var(--chrome-bg);border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;min-height:320px;padding:24px;display:flex}.veo-studio-skeleton-wrap{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.veo-studio-skeleton{aspect-ratio:16/9;border-radius:var(--radius-xl);background:var(--input-bg);border:1px solid var(--border);justify-content:center;align-items:center;width:100%;max-width:560px;display:flex;position:relative;overflow:hidden}.veo-studio-skeleton-shine{background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--accent) 5%, transparent) 40%, color-mix(in srgb, var(--accent) 15%, transparent) 50%, color-mix(in srgb, var(--accent) 5%, transparent) 60%, transparent 100%);background-size:200% 100%;animation:1.6s ease-in-out infinite veo-shimmer;position:absolute;inset:0}.veo-studio-skeleton-icon{color:var(--text-muted)}.veo-studio-video-grid{justify-content:center;width:100%;max-width:560px;display:flex}.veo-studio-card{border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--panel-soft);width:100%;overflow:hidden}.veo-studio-card-video-wrap{aspect-ratio:16/9;background:#000;width:100%}.veo-studio-card-video{object-fit:contain;width:100%;height:100%}.veo-studio-card-actions{background:var(--chrome-bg);border-top:1px solid var(--border);gap:8px;padding:10px 12px;display:flex}.veo-studio-action-btn{border-radius:var(--radius-md);background:var(--input-bg);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;align-items:center;gap:5px;padding:6px 12px;font-size:.78rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.veo-studio-action-btn:hover{background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text-main);border-color:var(--accent)}.veo-studio-action-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.veo-studio-action-btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-on-accent)}.veo-studio-meta{color:var(--text-muted);margin-top:10px;font-size:.76rem}.veo-studio-active-empty{color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;display:flex}.veo-studio-empty-icon{color:var(--text-muted);opacity:.6}.veo-studio-active-empty p{color:var(--text-soft);margin:0;font-size:.95rem;font-weight:600}.veo-studio-active-empty span{font-size:.82rem}.veo-studio-history-header{border-bottom:1px solid var(--border);background:var(--chrome-soft,var(--chrome-bg));padding:10px 24px}.veo-studio-history-title{color:var(--text-soft);text-transform:none;letter-spacing:.04em;align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:flex}.veo-studio-history-badge{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 15%, transparent);min-width:18px;height:18px;color:var(--interactive-fg-hover);justify-content:center;align-items:center;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-flex}.veo-studio-history-gallery{background:var(--bg-gradient,transparent);flex:1;padding:24px}.veo-studio-gallery-empty{flex-direction:column;align-items:center;gap:6px;padding:32px 0;display:flex}.veo-studio-gallery-empty p{color:var(--text-soft);margin:0;font-size:.9rem;font-weight:500}.veo-studio-gallery-empty span{color:var(--text-muted);font-size:.78rem}.veo-studio-tabs{gap:4px;margin-top:2px;padding:0 4px;display:flex}.veo-studio-tab{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:5px 14px;font-size:.8rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.veo-studio-tab svg{opacity:.7;flex-shrink:0}.veo-studio-tab:hover{background:var(--bg-3,#ffffff12);color:var(--text-primary)}.veo-studio-tab.is-active{background:var(--accent-subtle,#64c8961f);color:var(--interactive-fg);border-color:var(--accent-muted,#64c89640)}.veo-studio-tab.is-active svg{opacity:1}.veo-editor-root{flex:1;min-height:0;display:flex;overflow:hidden}.veo-editor-controls{border-right:1px solid var(--border-subtle,#ffffff0f);scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent;flex-direction:column;flex-shrink:0;gap:14px;width:340px;min-width:280px;padding:18px 16px;display:flex;overflow-y:auto}.veo-editor-workspace{flex-direction:column;flex:1;gap:14px;padding:18px;display:flex;overflow:hidden}.veo-editor-info-card{background:var(--bg-3,#ffffff0a);border:1px solid var(--border-subtle,#ffffff12);border-radius:var(--radius-md);flex-direction:column;gap:5px;padding:10px 14px;display:flex}.veo-editor-info-row{justify-content:space-between;align-items:center;font-size:.79rem;display:flex}.veo-editor-info-row span{color:var(--text-muted)}.veo-editor-info-row strong{color:var(--text-primary);font-weight:600}.veo-editor-result-card{background:var(--accent-subtle,#64c89614);border:1px solid var(--accent-muted,#64c89633);border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;gap:6px;padding:12px 16px;display:flex}.veo-editor-result-header{color:var(--interactive-fg);align-items:center;gap:7px;margin-bottom:4px;font-size:.82rem;font-weight:600;display:flex}.veo-editor-log{background:var(--bg-2,#00000026);border:1px solid var(--border-subtle,#ffffff0f);border-radius:var(--radius-md);flex-direction:column;flex:1;min-height:120px;display:flex;overflow:hidden}.veo-editor-log-header{color:var(--text-secondary);border-bottom:1px solid var(--border-subtle,#ffffff0f);flex-shrink:0;align-items:center;gap:7px;padding:8px 14px;font-size:.78rem;font-weight:600;display:flex}.veo-editor-log-clear{border-radius:var(--radius-xs);border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;background:0 0;margin-left:auto;padding:2px 8px;font-size:.72rem;transition:background .15s,color .15s}.veo-editor-log-clear:hover{background:var(--bg-3);color:var(--text-primary)}.veo-editor-log-body{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent;flex-direction:column;flex:1;gap:3px;padding:8px 14px;display:flex;overflow-y:auto}.veo-editor-log-empty{color:var(--text-muted);text-align:center;margin-top:16px;font-size:.77rem}.veo-editor-log-entry{color:var(--text-secondary);padding:1px 0;font-family:SF Mono,Fira Mono,Consolas,monospace;font-size:.77rem;line-height:1.5}.veo-editor-log-entry.is-success{color:var(--interactive-fg)}.veo-editor-log-entry.is-error{color:var(--color-error,#f87171)}@media (width<=700px){.veo-editor-root{flex-direction:column}.veo-editor-controls{border-right:none;border-bottom:1px solid var(--border-subtle);width:100%}}.veo-studio-content--single{justify-content:center;padding:32px 20px;display:flex;overflow-y:auto}.veo-studio-fablemint-notice{flex-direction:column;align-items:flex-start;gap:14px;width:100%;max-width:560px;display:flex}.veo-studio-fablemint-notice h2{color:var(--text-main,var(--text-soft));margin:0;font-size:1.1rem}.veo-studio-fablemint-notice p{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.6}.veo-studio-fablemint-notice p a{color:var(--interactive-fg)}.veo-studio-fablemint-notice p code,.veo-studio-fablemint-notice span code{background:var(--input-bg,#ffffff0f);border:1px solid var(--border-subtle);border-radius:4px;padding:1px 5px;font-size:.85em}.veo-studio-fablemint-notice ul{color:var(--text-muted);margin:0;padding-left:18px;font-size:.84rem;line-height:1.7}.veo-studio-fablemint-notice pre{background:var(--input-bg,#ffffff0a);border:1px solid var(--border-subtle);border-radius:8px;margin:6px 0 0;padding:10px 12px;font-size:.78rem;overflow-x:auto}.veo-studio-fablemint-step{align-items:flex-start;gap:12px;width:100%;display:flex}.veo-studio-fablemint-step-num{background:var(--accent);width:22px;height:22px;color:var(--text-on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.veo-studio-fablemint-step>div{flex-direction:column;gap:4px;font-size:.85rem;display:flex}
|
|
1
|
+
.veo-studio{top:0;bottom:0;right:0;left:var(--sidebar-expanded-width,264px);background:var(--bg-gradient,var(--bg-color,#0a0a0b));z-index:10;opacity:0;pointer-events:none;flex-direction:column;transition:left .22s,opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;overflow:hidden;transform:translateY(12px)scale(.995)}.app-body.sidebar-collapsed .veo-studio{left:calc(var(--sidebar-collapsed-width,56px) + var(--sidebar-content-gap,10px))}.veo-studio.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.veo-studio-header{border-bottom:1px solid var(--border);background:var(--chrome-bg);-webkit-backdrop-filter:var(--glass-blur,blur(16px));backdrop-filter:var(--glass-blur,blur(16px));flex-shrink:0;padding:20px 28px 12px}.veo-studio-header-title{color:var(--text-main);align-items:center;gap:10px;margin-bottom:4px;display:flex}.veo-studio-header-title h1{color:var(--text-main);margin:0;font-size:1.18rem;font-weight:700}.veo-studio-header-title svg{color:var(--interactive-fg);flex-shrink:0}.veo-studio-badge{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--interactive-fg-hover);letter-spacing:.03em;text-transform:none;align-items:center;margin-left:4px;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-flex}.veo-studio-subtitle{color:var(--text-muted);margin:6px 0 0;font-size:.8rem}.veo-studio-content{flex:1;grid-template-columns:320px 1fr;min-height:0;display:grid;overflow:hidden}.veo-studio-controls{border-right:1px solid var(--border);background:var(--panel-soft);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 20%, transparent) transparent;flex-direction:column;gap:18px;padding:22px 20px;display:flex;overflow-y:auto}.veo-studio-controls::-webkit-scrollbar{width:6px}.veo-studio-results::-webkit-scrollbar{width:6px}.veo-studio-controls::-webkit-scrollbar-track{background:0 0}.veo-studio-results::-webkit-scrollbar-track{background:0 0}.veo-studio-controls::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:var(--radius-full)}.veo-studio-results::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:var(--radius-full)}.veo-studio-controls::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--accent) 30%, transparent)}.veo-studio-results::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--accent) 30%, transparent)}.veo-studio-field{flex-direction:column;gap:7px;display:flex}.veo-studio-label{color:var(--text-soft);letter-spacing:.02em;text-transform:none;align-items:center;gap:8px;font-size:.76rem;font-weight:500;display:flex}.veo-studio-label-hint{text-transform:none;color:var(--text-muted);letter-spacing:0;font-weight:400}.veo-studio-textarea{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--input-bg);width:100%;color:var(--text-main);resize:vertical;box-sizing:border-box;outline:none;padding:10px 12px;font-size:.87rem;line-height:1.55;transition:border-color .15s,box-shadow .15s}.veo-studio-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent)}.veo-studio-textarea--sm{font-size:.82rem}.veo-studio-prompt-hint{color:var(--text-muted);text-align:right;opacity:.85;font-size:.7rem}.veo-studio-chips{flex-wrap:wrap;gap:6px;display:flex}.veo-studio-chip{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;padding:5px 11px;font-size:.74rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.veo-studio-chip:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent);color:var(--text-main)}.veo-studio-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:6px;padding:2px 0;font-size:.82rem;font-weight:500;transition:color .12s;display:inline-flex}.veo-studio-toggle:hover{color:var(--text-soft)}.veo-studio-badge-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;display:inline-block}.veo-input-file-row{align-items:center;gap:8px;width:100%;display:flex}.veo-input-file-wrap{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--border);flex:1;align-items:center;min-width:0;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.veo-input-file-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.veo-input-file-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.veo-input-file-text{width:100%;color:var(--text-main);font-size:.82rem;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important;padding:9px 82px 9px 34px!important}.veo-browse-btn{border-radius:var(--radius-sm);color:var(--text-soft);cursor:pointer;background:#ffffff14;border:1px solid #ffffff1a;align-items:center;gap:5px;padding:5px 10px;font-size:.75rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex;position:absolute;right:5px}.veo-browse-btn:hover{color:var(--text-main);background:#ffffff29}.veo-load-btn{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid var(--accent);color:var(--interactive-fg);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;padding:8px 12px;font-size:.78rem;font-weight:600;transition:background .15s;display:inline-flex}.veo-load-btn:hover{background:color-mix(in srgb, var(--accent) 25%, transparent)}.veo-mode-segmented{border:1px solid var(--border);border-radius:var(--radius-lg);background:#00000040;gap:2px;width:100%;padding:3px;display:flex}.veo-mode-btn{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.8rem;font-weight:500;transition:all .18s cubic-bezier(.4,0,.2,1);display:inline-flex}.veo-mode-btn.is-active{background:var(--panel-raised,#343436);color:var(--interactive-fg);font-weight:600;box-shadow:0 1px 4px #0006}.veo-studio-aspect-group,.veo-studio-duration-group{gap:8px;display:flex}.veo-studio-aspect-btn,.veo-studio-duration-btn{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;outline:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.veo-studio-aspect-btn:hover:not(:disabled),.veo-studio-duration-btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:var(--accent);color:var(--text-main)}.veo-studio-aspect-btn.is-active,.veo-studio-duration-btn.is-active{background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:var(--accent);color:var(--text-main);box-shadow:0 0 0 1px var(--accent);font-weight:600}.veo-studio-aspect-btn:disabled,.veo-studio-duration-btn:disabled{opacity:.45;cursor:not-allowed}.veo-studio-aspect-icon{font-size:.65rem;line-height:1}.veo-studio-generate-btn{border-radius:var(--radius-lg);background:var(--accent);border:1px solid var(--accent);width:100%;color:var(--text-on-accent);cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 20%, transparent);outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:.9rem;font-weight:600;transition:opacity .15s,box-shadow .15s,transform .1s;display:flex}.veo-studio-generate-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);transform:translateY(-1px)}.veo-studio-generate-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.veo-studio-generate-btn.is-loading{cursor:wait}.veo-studio-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite veo-spin;display:inline-block}.veo-studio-error{border-radius:var(--radius-md);color:#fca5a5;background:#ef44441a;border:1px solid #ef444440;align-items:flex-start;gap:8px;padding:10px 12px;font-size:.8rem;line-height:1.5;display:flex}.veo-studio-error span{flex:1}.veo-studio-error button{color:#fca5a5;cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:0;font-size:1rem;line-height:1}.veo-studio-history{flex-direction:column;gap:4px;display:flex}.veo-studio-history-item{border-radius:var(--radius-md);background:var(--input-bg);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;outline:none;align-items:center;gap:7px;padding:6px 9px;font-size:.78rem;transition:background .15s,color .15s;display:flex;overflow:hidden}.veo-studio-history-item span{text-overflow:ellipsis;overflow:hidden}.veo-studio-history-item:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text-main)}.veo-studio-results{flex-direction:column;display:flex;overflow-y:auto}.veo-studio-active-workspace{background:var(--chrome-bg);border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;min-height:320px;padding:24px;display:flex}.veo-studio-skeleton-wrap{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.veo-studio-skeleton{aspect-ratio:16/9;border-radius:var(--radius-xl);background:var(--input-bg);border:1px solid var(--border);justify-content:center;align-items:center;width:100%;max-width:560px;display:flex;position:relative;overflow:hidden}.veo-studio-skeleton-shine{background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--accent) 5%, transparent) 40%, color-mix(in srgb, var(--accent) 15%, transparent) 50%, color-mix(in srgb, var(--accent) 5%, transparent) 60%, transparent 100%);background-size:200% 100%;animation:1.6s ease-in-out infinite veo-shimmer;position:absolute;inset:0}.veo-studio-skeleton-icon{color:var(--text-muted)}.veo-studio-video-grid{justify-content:center;width:100%;max-width:560px;display:flex}.veo-studio-card{border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--panel-soft);width:100%;overflow:hidden}.veo-studio-card-video-wrap{aspect-ratio:16/9;background:#000;width:100%}.veo-studio-card-video{object-fit:contain;width:100%;height:100%}.veo-studio-card-actions{background:var(--chrome-bg);border-top:1px solid var(--border);gap:8px;padding:10px 12px;display:flex}.veo-studio-action-btn{border-radius:var(--radius-md);background:var(--input-bg);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;align-items:center;gap:5px;padding:6px 12px;font-size:.78rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.veo-studio-action-btn:hover{background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text-main);border-color:var(--accent)}.veo-studio-action-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.veo-studio-action-btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-on-accent)}.veo-studio-meta{color:var(--text-muted);margin-top:10px;font-size:.76rem}.veo-studio-active-empty{color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;display:flex}.veo-studio-empty-icon{color:var(--text-muted);opacity:.6}.veo-studio-active-empty p{color:var(--text-soft);margin:0;font-size:.95rem;font-weight:600}.veo-studio-active-empty span{font-size:.82rem}.veo-studio-history-header{border-bottom:1px solid var(--border);background:var(--chrome-soft,var(--chrome-bg));padding:10px 24px}.veo-studio-history-title{color:var(--text-soft);text-transform:none;letter-spacing:.04em;align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:flex}.veo-studio-history-badge{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 15%, transparent);min-width:18px;height:18px;color:var(--interactive-fg-hover);justify-content:center;align-items:center;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-flex}.veo-studio-history-gallery{background:var(--bg-gradient,transparent);flex:1;padding:24px}.veo-studio-gallery-empty{flex-direction:column;align-items:center;gap:6px;padding:32px 0;display:flex}.veo-studio-gallery-empty p{color:var(--text-soft);margin:0;font-size:.9rem;font-weight:500}.veo-studio-gallery-empty span{color:var(--text-muted);font-size:.78rem}.veo-studio-tabs{gap:4px;margin-top:2px;padding:0 4px;display:flex}.veo-studio-tab{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:5px 14px;font-size:.8rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.veo-studio-tab svg{opacity:.7;flex-shrink:0}.veo-studio-tab:hover{background:var(--bg-3,#ffffff12);color:var(--text-primary)}.veo-studio-tab.is-active{background:var(--accent-subtle,#64c8961f);color:var(--interactive-fg);border-color:var(--accent-muted,#64c89640)}.veo-studio-tab.is-active svg{opacity:1}.veo-editor-root{flex:1;min-height:0;display:flex;overflow:hidden}.veo-editor-controls{border-right:1px solid var(--border-subtle,#ffffff0f);scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent;flex-direction:column;flex-shrink:0;gap:14px;width:340px;min-width:280px;padding:18px 16px;display:flex;overflow-y:auto}.veo-editor-workspace{flex-direction:column;flex:1;gap:14px;padding:18px;display:flex;overflow:hidden}.veo-editor-info-card{background:var(--bg-3,#ffffff0a);border:1px solid var(--border-subtle,#ffffff12);border-radius:var(--radius-md);flex-direction:column;gap:5px;padding:10px 14px;display:flex}.veo-editor-info-row{justify-content:space-between;align-items:center;font-size:.79rem;display:flex}.veo-editor-info-row span{color:var(--text-muted)}.veo-editor-info-row strong{color:var(--text-primary);font-weight:600}.veo-editor-result-card{background:var(--accent-subtle,#64c89614);border:1px solid var(--accent-muted,#64c89633);border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;gap:6px;padding:12px 16px;display:flex}.veo-editor-result-header{color:var(--interactive-fg);align-items:center;gap:7px;margin-bottom:4px;font-size:.82rem;font-weight:600;display:flex}.veo-editor-log{background:var(--bg-2,#00000026);border:1px solid var(--border-subtle,#ffffff0f);border-radius:var(--radius-md);flex-direction:column;flex:1;min-height:120px;display:flex;overflow:hidden}.veo-editor-log-header{color:var(--text-secondary);border-bottom:1px solid var(--border-subtle,#ffffff0f);flex-shrink:0;align-items:center;gap:7px;padding:8px 14px;font-size:.78rem;font-weight:600;display:flex}.veo-editor-log-clear{border-radius:var(--radius-xs);border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;background:0 0;margin-left:auto;padding:2px 8px;font-size:.72rem;transition:background .15s,color .15s}.veo-editor-log-clear:hover{background:var(--bg-3);color:var(--text-primary)}.veo-editor-log-body{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent;flex-direction:column;flex:1;gap:3px;padding:8px 14px;display:flex;overflow-y:auto}.veo-editor-log-empty{color:var(--text-muted);text-align:center;margin-top:16px;font-size:.77rem}.veo-editor-log-entry{color:var(--text-secondary);padding:1px 0;font-family:SF Mono,Fira Mono,Consolas,monospace;font-size:.77rem;line-height:1.5}.veo-editor-log-entry.is-success{color:var(--interactive-fg)}.veo-editor-log-entry.is-error{color:var(--color-error,#f87171)}@media (width<=700px){.veo-editor-root{flex-direction:column}.veo-editor-controls{border-right:none;border-bottom:1px solid var(--border-subtle);width:100%}}.veo-studio-content--single{justify-content:center;padding:32px 20px;display:flex;overflow-y:auto}.veo-studio-fablemint-notice{flex-direction:column;align-items:flex-start;gap:14px;width:100%;max-width:560px;display:flex}.veo-studio-fablemint-notice h2{color:var(--text-main,var(--text-soft));margin:0;font-size:1.1rem}.veo-studio-fablemint-notice p{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.6}.veo-studio-fablemint-notice p a{color:var(--interactive-fg)}.veo-studio-fablemint-notice p code,.veo-studio-fablemint-notice span code{border-radius:var(--radius-2xs,4px);background:var(--input-bg,#ffffff0f);border:1px solid var(--border-subtle);padding:1px 5px;font-size:.85em}.veo-studio-fablemint-notice ul{color:var(--text-muted);margin:0;padding-left:18px;font-size:.84rem;line-height:1.7}.veo-studio-fablemint-notice pre{border-radius:var(--radius-sm,8px);background:var(--input-bg,#ffffff0a);border:1px solid var(--border-subtle);margin:6px 0 0;padding:10px 12px;font-size:.78rem;overflow-x:auto}.veo-studio-fablemint-step{align-items:flex-start;gap:12px;width:100%;display:flex}.veo-studio-fablemint-step-num{background:var(--accent);width:22px;height:22px;color:var(--text-on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.veo-studio-fablemint-step>div{flex-direction:column;gap:4px;font-size:.85rem;display:flex}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e,n as t}from"./rolldown-runtime-CNOWq4Kh.js";import{n,t as r}from"./jsx-runtime-DmUwWVTj.js";import{N as i,O as a,j as o}from"./index-BmpulIkg.js";import{K as s,W as c}from"./config-CvIO5hkn.js";import{n as l,t as u}from"./SelectField-DXBQtrUK.js";import{a as d,i as f,r as p}from"./studio-BBZQ_-QK.js";import{i as ee,n as m,r as h,t as g}from"./modelManager-BPLycQrN.js";var _=t((()=>{}));function v(e){return P[e]??e}function y(e){return N[e]?.[0]?.value??``}function b(){return(0,C.jsxs)(`div`,{className:`veo-studio-skeleton`,children:[(0,C.jsx)(`div`,{className:`veo-studio-skeleton-shine`}),(0,C.jsx)(`div`,{className:`veo-studio-skeleton-icon`,"aria-hidden":`true`,children:(0,C.jsxs)(`svg`,{width:`40`,height:`40`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]})})]})}function x({view:e,onSendToChat:t}){let[n,r]=(0,S.useState)(``),[i,a]=(0,S.useState)(``),[o,s]=(0,S.useState)(!1),[c,l]=(0,S.useState)(`16:9`),[d,f]=(0,S.useState)(5),[p,m]=(0,S.useState)(!1),[_,x]=(0,S.useState)(``),[O,k]=(0,S.useState)(null),[P,F]=(0,S.useState)([]),[I,te]=(0,S.useState)([]),[L,R]=(0,S.useState)({active:`veo`,available:[`veo`]}),[z,B]=(0,S.useState)(`veo`),[V,H]=(0,S.useState)(y(`veo`)),[U,W]=(0,S.useState)({}),G=(0,S.useRef)(null);(0,S.useEffect)(()=>{let e=!1;T().then(async t=>{if(e)return;R(t),B(t.active);let n=await g(`veoModel`);n&&!e?H(n):e||H(y(t.active))}).catch(()=>{});let t=ee(e=>{(e.provider===`veoModel`||e.category===`video`)&&H(e.model)});return()=>{e=!0,t()}},[]),(0,S.useEffect)(()=>{let e=!1;return E(z).then(t=>{if(e||!t||t.length===0)return;let n=N[z]??[],r=new Map;for(let e of n)r.set(e.value,e.label);let i=[],a=new Set;for(let e of t)a.has(e)||(a.add(e),i.push({value:e,label:r.get(e)??e}));for(let e of n)a.has(e.value)||(a.add(e.value),i.push(e));W(e=>({...e,[z]:i}))}).catch(()=>{}),()=>{e=!0}},[z]);let K=e=>{B(e);let t=(U[e]??N[e]??[])[0]?.value||y(e);H(t),h(`veoModel`,t,`video`)},q=e=>{H(e),h(`veoModel`,e,`video`)},J=(0,S.useCallback)(async()=>{let e=n.trim();if(!e||p)return;m(!0),x(``),k(null);let t={prompt:e,negativePrompt:i.trim()||void 0,aspectRatio:c,duration:d,model:V||void 0,provider:z};try{let n=await w(t);k(n),F(t=>[e,...t.filter(t=>t!==e)].slice(0,8))}catch(e){x(e instanceof Error?e.message:String(e))}finally{m(!1)}},[n,i,c,d,p,z,V]),Y=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),J())},X=(e,t)=>{let n=document.createElement(`a`);n.href=e.url||e.path,n.download=`mint-veo-${t+1}.mp4`,document.body.appendChild(n),n.click(),document.body.removeChild(n)},Z=U[z]??N[z]??[],[Q,$]=(0,S.useState)(`generate`);return(0,C.jsxs)(`div`,{className:`veo-studio ${e===`veo`?`is-visible`:``}`,id:`veo-studio-panel`,role:`main`,"aria-label":`AI Video Editor`,"aria-hidden":e!==`veo`,children:[(0,C.jsxs)(`header`,{className:`veo-studio-header`,children:[(0,C.jsxs)(`div`,{className:`veo-studio-header-title`,children:[(0,C.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),(0,C.jsx)(`h1`,{children:`Veo Studio`}),(0,C.jsx)(`span`,{className:`veo-studio-badge`,children:Q===`generate`?v(z):`FableMint`})]}),(0,C.jsxs)(`div`,{className:`veo-studio-tabs`,role:`tablist`,"aria-label":`Studio mode`,children:[(0,C.jsxs)(`button`,{id:`veo-tab-generate`,role:`tab`,type:`button`,"aria-selected":Q===`generate`,className:`veo-studio-tab ${Q===`generate`?`is-active`:``}`,onClick:()=>$(`generate`),children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),`Generate`]}),(0,C.jsxs)(`button`,{id:`veo-tab-edit`,role:`tab`,type:`button`,"aria-selected":Q===`edit`,className:`veo-studio-tab ${Q===`edit`?`is-active`:``}`,onClick:()=>$(`edit`),children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,C.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})]}),`Edit`]})]})]}),Q===`generate`&&(0,C.jsxs)(`div`,{className:`veo-studio-content`,role:`tabpanel`,"aria-labelledby":`veo-tab-generate`,children:[(0,C.jsxs)(`section`,{className:`veo-studio-controls`,"aria-label":`Video generation settings`,children:[(0,C.jsxs)(`div`,{className:`veo-studio-field`,style:{display:`flex`,gap:`10px`,width:`100%`},children:[(0,C.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,C.jsx)(`label`,{className:`veo-studio-label`,htmlFor:`veo-studio-provider`,style:{display:`flex`,alignItems:`center`,width:`100%`,height:`18px`},children:(0,C.jsx)(`span`,{children:`Provider`})}),(0,C.jsx)(u,{"aria-label":`Provider`,id:`veo-studio-provider`,className:`veo-studio-textarea`,value:z,onValueChange:e=>K(e),disabled:p,children:L.available.map(e=>(0,C.jsx)(`option`,{value:e,children:v(e).replace(/^[^a-zA-Z0-9]+/,``)},e))})]}),(0,C.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,C.jsx)(`label`,{className:`veo-studio-label`,htmlFor:`veo-studio-model`,style:{display:`flex`,alignItems:`center`,height:`18px`},children:`Model`}),(0,C.jsx)(u,{"aria-label":`Model`,id:`veo-studio-model`,className:`veo-studio-textarea`,value:V,onValueChange:e=>q(e),disabled:p,children:Z.map(({value:e,label:t})=>(0,C.jsx)(`option`,{value:e,children:t},e))})]})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsxs)(`label`,{className:`veo-studio-label`,htmlFor:`veo-studio-prompt`,children:[`Prompt`,(0,C.jsx)(`span`,{className:`veo-studio-label-hint`,children:`Describe the video you want`})]}),(0,C.jsx)(`textarea`,{id:`veo-studio-prompt`,ref:G,className:`veo-studio-textarea`,value:n,onChange:e=>r(e.target.value),onKeyDown:Y,placeholder:`a golden eagle soaring over mountain peaks at sunset, cinematic 4K, slow motion...`,rows:4,disabled:p,"aria-required":`true`}),(0,C.jsx)(`div`,{className:`veo-studio-prompt-hint`,children:`⌘+Enter to generate`})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Style suggestions`}),(0,C.jsx)(`div`,{className:`veo-studio-chips`,role:`group`,"aria-label":`Style suggestions`,children:M.map(e=>(0,C.jsx)(`button`,{type:`button`,className:`veo-studio-chip`,onClick:()=>r(t=>t.trim()?`${t.trim()}, ${e}`:e),disabled:p,title:`Add "${e}" to prompt`,children:e},e))})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-toggle`,onClick:()=>s(e=>!e),"aria-expanded":o,"aria-controls":`veo-studio-negative-wrap`,children:[(0,C.jsx)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{transform:o?`rotate(90deg)`:`none`,transition:`transform 0.2s`},children:(0,C.jsx)(`polyline`,{points:`9 18 15 12 9 6`})}),`Negative prompt`,i.trim()&&(0,C.jsx)(`span`,{className:`veo-studio-badge-dot`,"aria-label":`has content`})]}),o&&(0,C.jsx)(`div`,{id:`veo-studio-negative-wrap`,children:(0,C.jsx)(`textarea`,{id:`veo-studio-negative`,className:`veo-studio-textarea veo-studio-textarea--sm`,value:i,onChange:e=>a(e.target.value),placeholder:`blurry, shaky camera, low quality, watermark...`,rows:2,disabled:p})})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Aspect ratio`}),(0,C.jsx)(`div`,{className:`veo-studio-aspect-group`,role:`radiogroup`,"aria-label":`Aspect ratio`,children:A.map(({value:e,label:t,icon:n})=>(0,C.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":c===e,className:`veo-studio-aspect-btn ${c===e?`is-active`:``}`,onClick:()=>l(e),disabled:p,id:`veo-studio-aspect-${e.replace(`:`,`x`)}`,children:[(0,C.jsx)(`span`,{className:`veo-studio-aspect-icon`,"aria-hidden":`true`,children:n}),(0,C.jsx)(`span`,{children:t})]},e))})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Duration`}),(0,C.jsx)(`div`,{className:`veo-studio-duration-group`,role:`radiogroup`,"aria-label":`Video duration`,children:j.map(({value:e,label:t})=>(0,C.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":d===e,className:`veo-studio-duration-btn ${d===e?`is-active`:``}`,onClick:()=>f(e),disabled:p,id:`veo-studio-duration-${e}`,children:[(0,C.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,C.jsx)(`polyline`,{points:`12 6 12 12 16 14`})]}),t]},e))})]}),(0,C.jsx)(`button`,{id:`veo-studio-generate-btn`,type:`button`,className:`veo-studio-generate-btn ${p?`is-loading`:``}`,onClick:J,disabled:!n.trim()||p,"aria-busy":p,children:p?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`span`,{className:`veo-studio-spinner`,"aria-hidden":`true`}),`Generating video...`]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),`Generate Video`]})}),_&&(0,C.jsxs)(`div`,{className:`veo-studio-error`,role:`alert`,children:[(0,C.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,C.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`12`}),(0,C.jsx)(`line`,{x1:`12`,y1:`16`,x2:`12.01`,y2:`16`})]}),(0,C.jsx)(`span`,{children:_}),(0,C.jsx)(`button`,{type:`button`,onClick:()=>x(``),"aria-label":`Dismiss error`,children:`×`})]}),P.length>0&&(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Recent prompts`}),(0,C.jsx)(`div`,{className:`veo-studio-history`,children:P.map(e=>(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-history-item`,onClick:()=>{r(e),G.current?.focus()},disabled:p,title:e,children:[(0,C.jsxs)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,C.jsx)(`polyline`,{points:`12 6 12 12 16 14`})]}),(0,C.jsx)(`span`,{children:e})]},e))})]})]}),(0,C.jsxs)(`section`,{className:`veo-studio-results`,"aria-label":`Generated videos`,"aria-live":`polite`,children:[(0,C.jsxs)(`div`,{className:`veo-studio-active-workspace`,children:[p&&(0,C.jsxs)(`div`,{className:`veo-studio-skeleton-wrap`,children:[(0,C.jsx)(b,{}),(0,C.jsxs)(`p`,{className:`veo-studio-generating-label`,"aria-live":`assertive`,children:[`Generating `,d,`s video with `,v(z),` — this may take a moment…`]})]}),!p&&O&&(0,C.jsxs)(C.Fragment,{children:[O.description&&(0,C.jsx)(`p`,{className:`veo-studio-description`,children:O.description}),(0,C.jsx)(`div`,{className:`veo-studio-video-grid`,children:O.videos.map((e,r)=>(0,C.jsxs)(`article`,{className:`veo-studio-card`,"aria-label":`Generated video ${r+1}`,children:[(0,C.jsx)(`div`,{className:`veo-studio-card-video-wrap`,children:(0,C.jsx)(`video`,{src:D(e.url||e.path),className:`veo-studio-card-video`,controls:!0,preload:`metadata`,"aria-label":e.message||n})}),(0,C.jsxs)(`div`,{className:`veo-studio-card-actions`,children:[(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-action-btn`,onClick:()=>X(e,r),title:`Download video`,id:`veo-studio-download-${r}`,children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,C.jsx)(`polyline`,{points:`7 10 12 15 17 10`}),(0,C.jsx)(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})]}),`Download`]}),t&&(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-action-btn veo-studio-action-btn--primary`,onClick:()=>t(n),title:`Send prompt to Chat`,id:`veo-studio-send-${r}`,children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),(0,C.jsx)(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})]}),`Send to chat`]})]})]},e.id))}),(0,C.jsxs)(`p`,{className:`veo-studio-meta`,children:[`Provider: `,(0,C.jsx)(`strong`,{children:v(O.provider)}),` · Model: `,(0,C.jsx)(`strong`,{children:O.model}),` · `,O.videos.length,` video`,O.videos.length>1?`s`:``]})]}),!p&&!O&&(0,C.jsxs)(`div`,{className:`veo-studio-active-empty`,children:[(0,C.jsx)(`div`,{className:`veo-studio-empty-icon`,"aria-hidden":`true`,children:(0,C.jsxs)(`svg`,{width:`56`,height:`56`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]})}),(0,C.jsx)(`p`,{children:`No video generated yet`}),(0,C.jsx)(`span`,{children:`Enter a prompt on the left and click Generate Video to begin.`})]})]}),(0,C.jsx)(`div`,{className:`veo-studio-history-header`,children:(0,C.jsxs)(`div`,{className:`veo-studio-history-title`,children:[(0,C.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),(0,C.jsx)(`span`,{children:`Video history`}),(0,C.jsx)(`span`,{className:`veo-studio-history-badge`,children:I.length})]})}),(0,C.jsx)(`div`,{className:`veo-studio-history-gallery`,children:I.length===0?(0,C.jsxs)(`div`,{className:`veo-studio-gallery-empty`,children:[(0,C.jsx)(`p`,{children:`Your video gallery is empty`}),(0,C.jsx)(`span`,{children:`Generated videos will appear here once the backend is connected.`})]}):(0,C.jsx)(`div`,{className:`veo-studio-video-grid`,children:I.map((e,t)=>(0,C.jsxs)(`article`,{className:`veo-studio-card`,"aria-label":`Saved video ${t+1}`,children:[(0,C.jsx)(`div`,{className:`veo-studio-card-video-wrap`,children:(0,C.jsx)(`video`,{src:D(e.url||e.path),className:`veo-studio-card-video`,controls:!0,preload:`metadata`})}),(0,C.jsx)(`div`,{className:`veo-studio-card-actions`,children:(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-action-btn`,onClick:()=>X(e,t),title:`Download video`,id:`veo-studio-gallery-download-${t}`,children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,C.jsx)(`polyline`,{points:`7 10 12 15 17 10`}),(0,C.jsx)(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})]}),`Download`]})})]},e.id))})})]})]}),Q===`edit`&&(0,C.jsx)(`div`,{className:`veo-studio-content veo-studio-content--single`,role:`tabpanel`,"aria-labelledby":`veo-tab-edit`,children:(0,C.jsxs)(`section`,{className:`veo-studio-fablemint-notice`,"aria-label":`Video editing via FableMint`,children:[(0,C.jsx)(`div`,{className:`veo-studio-empty-icon`,"aria-hidden":`true`,children:(0,C.jsxs)(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,C.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})]})}),(0,C.jsx)(`h2`,{children:`Video editing now runs through FableMint`}),(0,C.jsxs)(`p`,{children:[`Timeline edits are handled by`,` `,(0,C.jsx)(`a`,{href:`https://github.com/Pheem49/FableMint`,target:`_blank`,rel:`noreferrer`,children:`FableMint`}),` `,`— a free, open-source, zero-dependency browser video editor connected to Mint over MCP. Its whole project is one JSON timeline: Mint patches it directly and the open editor tab live-reloads in ~150 ms, so you watch the edit happen in real time.`]}),(0,C.jsxs)(`div`,{className:`veo-studio-fablemint-step`,children:[(0,C.jsx)(`span`,{className:`veo-studio-fablemint-step-num`,children:`1`}),(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`strong`,{children:`Clone FableMint`}),(0,C.jsxs)(`span`,{className:`veo-studio-label-hint`,children:[`Needs Node 18+ and a Chromium-based browser. `,(0,C.jsx)(`code`,{children:`ffmpeg`}),` on your PATH is optional but recommended for fast export.`]}),(0,C.jsx)(`pre`,{children:(0,C.jsxs)(`code`,{children:[`git clone https://github.com/Pheem49/FableMint.git`,`
|
|
1
|
+
import{i as e,n as t}from"./rolldown-runtime-CNOWq4Kh.js";import{n,t as r}from"./jsx-runtime-DmUwWVTj.js";import{N as i,O as a,j as o}from"./index-BocxnrDG.js";import{W as s,q as c}from"./config-CkRCdkxn.js";import{n as l,t as u}from"./SelectField-Cy6CghrU.js";import{a as d,i as f,r as p}from"./studio-BBZQ_-QK.js";import{i as ee,n as m,r as h,t as g}from"./modelManager-B3ZFMh8v.js";var _=t((()=>{}));function v(e){return P[e]??e}function y(e){return N[e]?.[0]?.value??``}function b(){return(0,C.jsxs)(`div`,{className:`veo-studio-skeleton`,children:[(0,C.jsx)(`div`,{className:`veo-studio-skeleton-shine`}),(0,C.jsx)(`div`,{className:`veo-studio-skeleton-icon`,"aria-hidden":`true`,children:(0,C.jsxs)(`svg`,{width:`40`,height:`40`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]})})]})}function x({view:e,onSendToChat:t}){let[n,r]=(0,S.useState)(``),[i,a]=(0,S.useState)(``),[o,s]=(0,S.useState)(!1),[c,l]=(0,S.useState)(`16:9`),[d,f]=(0,S.useState)(5),[p,m]=(0,S.useState)(!1),[_,x]=(0,S.useState)(``),[O,k]=(0,S.useState)(null),[P,F]=(0,S.useState)([]),[I,te]=(0,S.useState)([]),[L,R]=(0,S.useState)({active:`veo`,available:[`veo`]}),[z,B]=(0,S.useState)(`veo`),[V,H]=(0,S.useState)(y(`veo`)),[U,W]=(0,S.useState)({}),G=(0,S.useRef)(null);(0,S.useEffect)(()=>{let e=!1;T().then(async t=>{if(e)return;R(t),B(t.active);let n=await g(`veoModel`);n&&!e?H(n):e||H(y(t.active))}).catch(()=>{});let t=ee(e=>{(e.provider===`veoModel`||e.category===`video`)&&H(e.model)});return()=>{e=!0,t()}},[]),(0,S.useEffect)(()=>{let e=!1;return E(z).then(t=>{if(e||!t||t.length===0)return;let n=N[z]??[],r=new Map;for(let e of n)r.set(e.value,e.label);let i=[],a=new Set;for(let e of t)a.has(e)||(a.add(e),i.push({value:e,label:r.get(e)??e}));for(let e of n)a.has(e.value)||(a.add(e.value),i.push(e));W(e=>({...e,[z]:i}))}).catch(()=>{}),()=>{e=!0}},[z]);let K=e=>{B(e);let t=(U[e]??N[e]??[])[0]?.value||y(e);H(t),h(`veoModel`,t,`video`)},q=e=>{H(e),h(`veoModel`,e,`video`)},J=(0,S.useCallback)(async()=>{let e=n.trim();if(!e||p)return;m(!0),x(``),k(null);let t={prompt:e,negativePrompt:i.trim()||void 0,aspectRatio:c,duration:d,model:V||void 0,provider:z};try{let n=await w(t);k(n),F(t=>[e,...t.filter(t=>t!==e)].slice(0,8))}catch(e){x(e instanceof Error?e.message:String(e))}finally{m(!1)}},[n,i,c,d,p,z,V]),Y=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),J())},X=(e,t)=>{let n=document.createElement(`a`);n.href=e.url||e.path,n.download=`mint-veo-${t+1}.mp4`,document.body.appendChild(n),n.click(),document.body.removeChild(n)},Z=U[z]??N[z]??[],[Q,$]=(0,S.useState)(`generate`);return(0,C.jsxs)(`div`,{className:`veo-studio ${e===`veo`?`is-visible`:``}`,id:`veo-studio-panel`,role:`main`,"aria-label":`AI Video Editor`,"aria-hidden":e!==`veo`,children:[(0,C.jsxs)(`header`,{className:`veo-studio-header`,children:[(0,C.jsxs)(`div`,{className:`veo-studio-header-title`,children:[(0,C.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),(0,C.jsx)(`h1`,{children:`Veo Studio`}),(0,C.jsx)(`span`,{className:`veo-studio-badge`,children:Q===`generate`?v(z):`FableMint`})]}),(0,C.jsxs)(`div`,{className:`veo-studio-tabs`,role:`tablist`,"aria-label":`Studio mode`,children:[(0,C.jsxs)(`button`,{id:`veo-tab-generate`,role:`tab`,type:`button`,"aria-selected":Q===`generate`,className:`veo-studio-tab ${Q===`generate`?`is-active`:``}`,onClick:()=>$(`generate`),children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),`Generate`]}),(0,C.jsxs)(`button`,{id:`veo-tab-edit`,role:`tab`,type:`button`,"aria-selected":Q===`edit`,className:`veo-studio-tab ${Q===`edit`?`is-active`:``}`,onClick:()=>$(`edit`),children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,C.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})]}),`Edit`]})]})]}),Q===`generate`&&(0,C.jsxs)(`div`,{className:`veo-studio-content`,role:`tabpanel`,"aria-labelledby":`veo-tab-generate`,children:[(0,C.jsxs)(`section`,{className:`veo-studio-controls`,"aria-label":`Video generation settings`,children:[(0,C.jsxs)(`div`,{className:`veo-studio-field`,style:{display:`flex`,gap:`10px`,width:`100%`},children:[(0,C.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,C.jsx)(`label`,{className:`veo-studio-label`,htmlFor:`veo-studio-provider`,style:{display:`flex`,alignItems:`center`,width:`100%`,height:`18px`},children:(0,C.jsx)(`span`,{children:`Provider`})}),(0,C.jsx)(u,{"aria-label":`Provider`,id:`veo-studio-provider`,className:`veo-studio-textarea`,value:z,onValueChange:e=>K(e),disabled:p,children:L.available.map(e=>(0,C.jsx)(`option`,{value:e,children:v(e).replace(/^[^a-zA-Z0-9]+/,``)},e))})]}),(0,C.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,C.jsx)(`label`,{className:`veo-studio-label`,htmlFor:`veo-studio-model`,style:{display:`flex`,alignItems:`center`,height:`18px`},children:`Model`}),(0,C.jsx)(u,{"aria-label":`Model`,id:`veo-studio-model`,className:`veo-studio-textarea`,value:V,onValueChange:e=>q(e),disabled:p,children:Z.map(({value:e,label:t})=>(0,C.jsx)(`option`,{value:e,children:t},e))})]})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsxs)(`label`,{className:`veo-studio-label`,htmlFor:`veo-studio-prompt`,children:[`Prompt`,(0,C.jsx)(`span`,{className:`veo-studio-label-hint`,children:`Describe the video you want`})]}),(0,C.jsx)(`textarea`,{id:`veo-studio-prompt`,ref:G,className:`veo-studio-textarea`,value:n,onChange:e=>r(e.target.value),onKeyDown:Y,placeholder:`a golden eagle soaring over mountain peaks at sunset, cinematic 4K, slow motion...`,rows:4,disabled:p,"aria-required":`true`}),(0,C.jsx)(`div`,{className:`veo-studio-prompt-hint`,children:`⌘+Enter to generate`})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Style suggestions`}),(0,C.jsx)(`div`,{className:`veo-studio-chips`,role:`group`,"aria-label":`Style suggestions`,children:M.map(e=>(0,C.jsx)(`button`,{type:`button`,className:`veo-studio-chip`,onClick:()=>r(t=>t.trim()?`${t.trim()}, ${e}`:e),disabled:p,title:`Add "${e}" to prompt`,children:e},e))})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-toggle`,onClick:()=>s(e=>!e),"aria-expanded":o,"aria-controls":`veo-studio-negative-wrap`,children:[(0,C.jsx)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{transform:o?`rotate(90deg)`:`none`,transition:`transform 0.2s`},children:(0,C.jsx)(`polyline`,{points:`9 18 15 12 9 6`})}),`Negative prompt`,i.trim()&&(0,C.jsx)(`span`,{className:`veo-studio-badge-dot`,"aria-label":`has content`})]}),o&&(0,C.jsx)(`div`,{id:`veo-studio-negative-wrap`,children:(0,C.jsx)(`textarea`,{id:`veo-studio-negative`,className:`veo-studio-textarea veo-studio-textarea--sm`,value:i,onChange:e=>a(e.target.value),placeholder:`blurry, shaky camera, low quality, watermark...`,rows:2,disabled:p})})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Aspect ratio`}),(0,C.jsx)(`div`,{className:`veo-studio-aspect-group`,role:`radiogroup`,"aria-label":`Aspect ratio`,children:A.map(({value:e,label:t,icon:n})=>(0,C.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":c===e,className:`veo-studio-aspect-btn ${c===e?`is-active`:``}`,onClick:()=>l(e),disabled:p,id:`veo-studio-aspect-${e.replace(`:`,`x`)}`,children:[(0,C.jsx)(`span`,{className:`veo-studio-aspect-icon`,"aria-hidden":`true`,children:n}),(0,C.jsx)(`span`,{children:t})]},e))})]}),(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Duration`}),(0,C.jsx)(`div`,{className:`veo-studio-duration-group`,role:`radiogroup`,"aria-label":`Video duration`,children:j.map(({value:e,label:t})=>(0,C.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":d===e,className:`veo-studio-duration-btn ${d===e?`is-active`:``}`,onClick:()=>f(e),disabled:p,id:`veo-studio-duration-${e}`,children:[(0,C.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,C.jsx)(`polyline`,{points:`12 6 12 12 16 14`})]}),t]},e))})]}),(0,C.jsx)(`button`,{id:`veo-studio-generate-btn`,type:`button`,className:`veo-studio-generate-btn ${p?`is-loading`:``}`,onClick:J,disabled:!n.trim()||p,"aria-busy":p,children:p?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`span`,{className:`veo-studio-spinner`,"aria-hidden":`true`}),`Generating video...`]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),`Generate Video`]})}),_&&(0,C.jsxs)(`div`,{className:`veo-studio-error`,role:`alert`,children:[(0,C.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,C.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`12`}),(0,C.jsx)(`line`,{x1:`12`,y1:`16`,x2:`12.01`,y2:`16`})]}),(0,C.jsx)(`span`,{children:_}),(0,C.jsx)(`button`,{type:`button`,onClick:()=>x(``),"aria-label":`Dismiss error`,children:`×`})]}),P.length>0&&(0,C.jsxs)(`div`,{className:`veo-studio-field`,children:[(0,C.jsx)(`span`,{className:`veo-studio-label`,children:`Recent prompts`}),(0,C.jsx)(`div`,{className:`veo-studio-history`,children:P.map(e=>(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-history-item`,onClick:()=>{r(e),G.current?.focus()},disabled:p,title:e,children:[(0,C.jsxs)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,C.jsx)(`polyline`,{points:`12 6 12 12 16 14`})]}),(0,C.jsx)(`span`,{children:e})]},e))})]})]}),(0,C.jsxs)(`section`,{className:`veo-studio-results`,"aria-label":`Generated videos`,"aria-live":`polite`,children:[(0,C.jsxs)(`div`,{className:`veo-studio-active-workspace`,children:[p&&(0,C.jsxs)(`div`,{className:`veo-studio-skeleton-wrap`,children:[(0,C.jsx)(b,{}),(0,C.jsxs)(`p`,{className:`veo-studio-generating-label`,"aria-live":`assertive`,children:[`Generating `,d,`s video with `,v(z),` — this may take a moment…`]})]}),!p&&O&&(0,C.jsxs)(C.Fragment,{children:[O.description&&(0,C.jsx)(`p`,{className:`veo-studio-description`,children:O.description}),(0,C.jsx)(`div`,{className:`veo-studio-video-grid`,children:O.videos.map((e,r)=>(0,C.jsxs)(`article`,{className:`veo-studio-card`,"aria-label":`Generated video ${r+1}`,children:[(0,C.jsx)(`div`,{className:`veo-studio-card-video-wrap`,children:(0,C.jsx)(`video`,{src:D(e.url||e.path),className:`veo-studio-card-video`,controls:!0,preload:`metadata`,"aria-label":e.message||n})}),(0,C.jsxs)(`div`,{className:`veo-studio-card-actions`,children:[(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-action-btn`,onClick:()=>X(e,r),title:`Download video`,id:`veo-studio-download-${r}`,children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,C.jsx)(`polyline`,{points:`7 10 12 15 17 10`}),(0,C.jsx)(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})]}),`Download`]}),t&&(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-action-btn veo-studio-action-btn--primary`,onClick:()=>t(n),title:`Send prompt to Chat`,id:`veo-studio-send-${r}`,children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),(0,C.jsx)(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})]}),`Send to chat`]})]})]},e.id))}),(0,C.jsxs)(`p`,{className:`veo-studio-meta`,children:[`Provider: `,(0,C.jsx)(`strong`,{children:v(O.provider)}),` · Model: `,(0,C.jsx)(`strong`,{children:O.model}),` · `,O.videos.length,` video`,O.videos.length>1?`s`:``]})]}),!p&&!O&&(0,C.jsxs)(`div`,{className:`veo-studio-active-empty`,children:[(0,C.jsx)(`div`,{className:`veo-studio-empty-icon`,"aria-hidden":`true`,children:(0,C.jsxs)(`svg`,{width:`56`,height:`56`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]})}),(0,C.jsx)(`p`,{children:`No video generated yet`}),(0,C.jsx)(`span`,{children:`Enter a prompt on the left and click Generate Video to begin.`})]})]}),(0,C.jsx)(`div`,{className:`veo-studio-history-header`,children:(0,C.jsxs)(`div`,{className:`veo-studio-history-title`,children:[(0,C.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`polygon`,{points:`23 7 16 12 23 17 23 7`}),(0,C.jsx)(`rect`,{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`})]}),(0,C.jsx)(`span`,{children:`Video history`}),(0,C.jsx)(`span`,{className:`veo-studio-history-badge`,children:I.length})]})}),(0,C.jsx)(`div`,{className:`veo-studio-history-gallery`,children:I.length===0?(0,C.jsxs)(`div`,{className:`veo-studio-gallery-empty`,children:[(0,C.jsx)(`p`,{children:`Your video gallery is empty`}),(0,C.jsx)(`span`,{children:`Generated videos will appear here once the backend is connected.`})]}):(0,C.jsx)(`div`,{className:`veo-studio-video-grid`,children:I.map((e,t)=>(0,C.jsxs)(`article`,{className:`veo-studio-card`,"aria-label":`Saved video ${t+1}`,children:[(0,C.jsx)(`div`,{className:`veo-studio-card-video-wrap`,children:(0,C.jsx)(`video`,{src:D(e.url||e.path),className:`veo-studio-card-video`,controls:!0,preload:`metadata`})}),(0,C.jsx)(`div`,{className:`veo-studio-card-actions`,children:(0,C.jsxs)(`button`,{type:`button`,className:`veo-studio-action-btn`,onClick:()=>X(e,t),title:`Download video`,id:`veo-studio-gallery-download-${t}`,children:[(0,C.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,C.jsx)(`polyline`,{points:`7 10 12 15 17 10`}),(0,C.jsx)(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})]}),`Download`]})})]},e.id))})})]})]}),Q===`edit`&&(0,C.jsx)(`div`,{className:`veo-studio-content veo-studio-content--single`,role:`tabpanel`,"aria-labelledby":`veo-tab-edit`,children:(0,C.jsxs)(`section`,{className:`veo-studio-fablemint-notice`,"aria-label":`Video editing via FableMint`,children:[(0,C.jsx)(`div`,{className:`veo-studio-empty-icon`,"aria-hidden":`true`,children:(0,C.jsxs)(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,C.jsx)(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,C.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})]})}),(0,C.jsx)(`h2`,{children:`Video editing now runs through FableMint`}),(0,C.jsxs)(`p`,{children:[`Timeline edits are handled by`,` `,(0,C.jsx)(`a`,{href:`https://github.com/Pheem49/FableMint`,target:`_blank`,rel:`noreferrer`,children:`FableMint`}),` `,`— a free, open-source, zero-dependency browser video editor connected to Mint over MCP. Its whole project is one JSON timeline: Mint patches it directly and the open editor tab live-reloads in ~150 ms, so you watch the edit happen in real time.`]}),(0,C.jsxs)(`div`,{className:`veo-studio-fablemint-step`,children:[(0,C.jsx)(`span`,{className:`veo-studio-fablemint-step-num`,children:`1`}),(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`strong`,{children:`Clone FableMint`}),(0,C.jsxs)(`span`,{className:`veo-studio-label-hint`,children:[`Needs Node 18+ and a Chromium-based browser. `,(0,C.jsx)(`code`,{children:`ffmpeg`}),` on your PATH is optional but recommended for fast export.`]}),(0,C.jsx)(`pre`,{children:(0,C.jsxs)(`code`,{children:[`git clone https://github.com/Pheem49/FableMint.git`,`
|
|
2
2
|
`,`cd FableMint`]})})]})]}),(0,C.jsxs)(`div`,{className:`veo-studio-fablemint-step`,children:[(0,C.jsx)(`span`,{className:`veo-studio-fablemint-step-num`,children:`2`}),(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`strong`,{children:`Start the editor`}),(0,C.jsxs)(`span`,{className:`veo-studio-label-hint`,children:[`Opens the timeline UI at `,(0,C.jsx)(`code`,{children:`http://localhost:7777`}),`. Media dropped into the window (or `,(0,C.jsx)(`code`,{children:`./media/`}),`) is picked up automatically.`]}),(0,C.jsx)(`pre`,{children:(0,C.jsx)(`code`,{children:`node server.js`})})]})]}),(0,C.jsxs)(`div`,{className:`veo-studio-fablemint-step`,children:[(0,C.jsx)(`span`,{className:`veo-studio-fablemint-step-num`,children:`3`}),(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`strong`,{children:`Connect it to Mint as an MCP server`}),(0,C.jsx)(`pre`,{children:(0,C.jsx)(`code`,{children:`mint mcp add fablemint node --args "<path-to>/FableMint/mcp-server.js"
|
|
3
3
|
mint mcp allow fablemint "*"
|
|
4
|
-
mint mcp call fablemint fablecut_status --arguments '{}' # sanity check`})}),(0,C.jsxs)(`span`,{className:`veo-studio-label-hint`,children:[`The last line should report the editor is running (it auto-starts `,(0,C.jsx)(`code`,{children:`server.js`}),` `,`for you if step 2 wasn't run yet). In Desktop/Web you can do the same from`,` `,(0,C.jsx)(`strong`,{children:`Settings → MCP servers → custom server`}),` — Name `,(0,C.jsx)(`code`,{children:`fablemint`}),`, Command `,(0,C.jsx)(`code`,{children:`node`}),`, Args `,(0,C.jsx)(`code`,{children:`<path-to>/FableMint/mcp-server.js`}),`.`]})]})]}),(0,C.jsxs)(`div`,{className:`veo-studio-fablemint-step`,children:[(0,C.jsx)(`span`,{className:`veo-studio-fablemint-step-num`,children:`4`}),(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`strong`,{children:`Ask Mint to edit`}),(0,C.jsxs)(`span`,{className:`veo-studio-label-hint`,children:[`With the FableMint tab open, just describe the edit in chat — Mint calls its`,(0,C.jsx)(`code`,{children:`fablecut_*`}),` tools to patch the timeline and the tab updates live. Every agent write is checkpointed automatically, so a bad edit is always one revert away.`]})]})]}),(0,C.jsx)(`a`,{className:`veo-studio-action-btn veo-studio-action-btn--primary`,href:`https://github.com/Pheem49/FableMint#driving-it-with-an-ai-agent`,target:`_blank`,rel:`noreferrer`,style:{textDecoration:`none`,width:`fit-content`},children:`Full setup guide`})]})})]})}var S,C,w,T,E,D,O,k,A,j,M,N,P;t((()=>{l(),S=e(n()),_(),m(),o(),C=r(),d(),
|
|
4
|
+
mint mcp call fablemint fablecut_status --arguments '{}' # sanity check`})}),(0,C.jsxs)(`span`,{className:`veo-studio-label-hint`,children:[`The last line should report the editor is running (it auto-starts `,(0,C.jsx)(`code`,{children:`server.js`}),` `,`for you if step 2 wasn't run yet). In Desktop/Web you can do the same from`,` `,(0,C.jsx)(`strong`,{children:`Settings → MCP servers → custom server`}),` — Name `,(0,C.jsx)(`code`,{children:`fablemint`}),`, Command `,(0,C.jsx)(`code`,{children:`node`}),`, Args `,(0,C.jsx)(`code`,{children:`<path-to>/FableMint/mcp-server.js`}),`.`]})]})]}),(0,C.jsxs)(`div`,{className:`veo-studio-fablemint-step`,children:[(0,C.jsx)(`span`,{className:`veo-studio-fablemint-step-num`,children:`4`}),(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`strong`,{children:`Ask Mint to edit`}),(0,C.jsxs)(`span`,{className:`veo-studio-label-hint`,children:[`With the FableMint tab open, just describe the edit in chat — Mint calls its`,(0,C.jsx)(`code`,{children:`fablecut_*`}),` tools to patch the timeline and the tab updates live. Every agent write is checkpointed automatically, so a bad edit is always one revert away.`]})]})]}),(0,C.jsx)(`a`,{className:`veo-studio-action-btn veo-studio-action-btn--primary`,href:`https://github.com/Pheem49/FableMint#driving-it-with-an-ai-agent`,target:`_blank`,rel:`noreferrer`,style:{textDecoration:`none`,width:`fit-content`},children:`Full setup guide`})]})})]})}var S,C,w,T,E,D,O,k,A,j,M,N,P;t((()=>{l(),S=e(n()),_(),m(),o(),C=r(),d(),c(),{generateVideo:w,getVideoGenProviders:T,fetchVideoProviderModels:E,convertFileSrc:D}=i,{getProfileValue:O,setProfileValue:k}=a,A=p,j=[{value:5,label:`5s`},{value:8,label:`8s`}],M=f,N=s,P={veo:`Google Veo (Gemini Videos)`}}))();export{x as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,n as t}from"./rolldown-runtime-CNOWq4Kh.js";import{n,t as r}from"./jsx-runtime-DmUwWVTj.js";import{L as i,ir as a}from"./index-BocxnrDG.js";var o,s=t((()=>{o=`/assets/clear-day-DFc8zXW1.svg`})),c,ee=t((()=>{c=`/assets/clear-night-B_u_OMcb.svg`})),l,u=t((()=>{l=`/assets/cloudy-1-day-CuOjunw3.svg`})),d,f=t((()=>{d=`/assets/cloudy-1-night-D7Anqypr.svg`})),p,m=t((()=>{p=`/assets/fog-day-CdrdZ39-.svg`})),h,g=t((()=>{h=`/assets/fog-night-DcYFgTs4.svg`})),_,v=t((()=>{_=`/assets/frost-day-CfyI9nUi.svg`})),y,te=t((()=>{y=`/assets/frost-night-Bz5DwStr.svg`})),b,x=t((()=>{b=`/assets/rainy-1-day-CWJeISo3.svg`})),S,C=t((()=>{S=`/assets/rainy-1-night-DwW9KJt7.svg`})),w,T=t((()=>{w=`/assets/rainy-2-day-B6MyZ_oc.svg`})),E,D=t((()=>{E=`/assets/rainy-2-night-BBY8Wbjg.svg`})),O,k=t((()=>{O=`/assets/rainy-3-day-C_ux3DeM.svg`})),A,j=t((()=>{A=`/assets/rainy-3-night-CK9WPA4c.svg`})),M,ne=t((()=>{M=`/assets/snowy-1-day-DfaDbFWh.svg`})),N,P=t((()=>{N=`/assets/snowy-1-night-D3cH_R6a.svg`})),F,I=t((()=>{F=`/assets/snowy-2-day-HugapG3m.svg`})),L,R=t((()=>{L=`/assets/snowy-2-night-D_js5iXA.svg`})),z,B=t((()=>{z=`/assets/snowy-3-day-D8DljJQC.svg`})),V,H=t((()=>{V=`/assets/snowy-3-night-BhXbYWQj.svg`})),U,W=t((()=>{U=`/assets/scattered-thunderstorms-day-TWpxbJ5I.svg`})),G,K=t((()=>{G=`/assets/scattered-thunderstorms-night-Bl2ef4Ya.svg`})),q,J=t((()=>{q=`/assets/severe-thunderstorm-Di36Vy4h.svg`}));function Y(e,t){let n=X[e]??X[2];return t?n.day:n.night}var X,re=t((()=>{s(),ee(),u(),f(),m(),g(),v(),te(),x(),C(),T(),D(),k(),j(),ne(),P(),I(),R(),B(),H(),W(),K(),J(),X={0:{day:o,night:c},1:{day:o,night:c},2:{day:l,night:d},3:{day:l,night:d},45:{day:p,night:h},48:{day:_,night:y},51:{day:b,night:S},53:{day:b,night:S},55:{day:w,night:E},61:{day:b,night:S},63:{day:w,night:E},65:{day:O,night:A},71:{day:M,night:N},73:{day:F,night:L},75:{day:z,night:V},80:{day:b,night:S},81:{day:w,night:E},82:{day:O,night:A},95:{day:U,night:G},96:{day:q,night:q},99:{day:q,night:q}}}));function ie({data:e}){let t=e.current,n=e.daily,r=t?.is_day!==0,i=(0,Z.useMemo)(()=>$(t?.weather_code||0,r),[t?.weather_code,r]),o=(0,Z.useMemo)(()=>!n?.time||n.time.length===0?[]:n.time.slice(1,6).map((e,t)=>{let r=new Date(e).toLocaleDateString(`en-US`,{weekday:`short`}),i=n.weather_code[t+1]||0,a=$(i,!0),o=Math.round(n.temperature_2m_max[t+1]||0),s=Math.round(n.temperature_2m_min[t+1]||0),c=n.precipitation_probability_max?n.precipitation_probability_max[t+1]:0;return{day:r,iconUrl:a.iconUrl,high:o,low:s,precipitation:c}}),[n]);if(!t)return null;let s=t.time?new Date(t.time).toLocaleString(`en-US`,{weekday:`short`,hour:`numeric`,minute:`2-digit`}):new Date().toLocaleString(`en-US`,{weekday:`short`,hour:`numeric`,minute:`2-digit`});return(0,Q.jsxs)(`div`,{style:{background:i.gradient,color:`#ffffff`,borderRadius:`var(--radius-xl, 18px)`,padding:`16px 20px`,margin:`12px 0`,boxShadow:`0 10px 25px -5px rgba(0, 0, 0, 0.4)`,position:`relative`,overflow:`hidden`,fontFamily:`system-ui, -apple-system, sans-serif`},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`flex-start`,marginBottom:`12px`},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`14px`},children:[(0,Q.jsx)(`img`,{src:i.iconUrl,alt:i.description,width:42,height:42,style:{flexShrink:0}}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`baseline`,gap:`4px`},children:[(0,Q.jsxs)(`span`,{style:{fontSize:`36px`,fontWeight:`bold`,letterSpacing:`-1px`},children:[Math.round(t.temperature_2m),`°`]}),(0,Q.jsx)(`span`,{style:{fontSize:`18px`,opacity:.9},children:`C`})]}),(0,Q.jsx)(`p`,{style:{margin:`2px 0 0`,fontSize:`14px`,fontWeight:500,opacity:.95},children:i.description})]})]}),(0,Q.jsx)(`div`,{style:{textAlign:`right`},children:n?.temperature_2m_max?.[0]!==void 0&&(0,Q.jsxs)(`p`,{style:{margin:0,fontSize:`13px`,fontWeight:600,opacity:.9},children:[Math.round(n.temperature_2m_max[0]),`° `,Math.round(n.temperature_2m_min[0]),`°`]})})]}),(0,Q.jsxs)(`div`,{style:{borderBottom:`1px solid rgba(255, 255, 255, 0.2)`,paddingBottom:`10px`,marginBottom:`12px`},children:[(0,Q.jsx)(`h4`,{style:{margin:0,fontSize:`17px`,fontWeight:700,letterSpacing:`-0.3px`},children:e.location}),(0,Q.jsx)(`p`,{style:{margin:`2px 0 0`,fontSize:`12px`,opacity:.8},children:s})]}),o.length>0&&(0,Q.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(${o.length}, 1fr)`,gap:`8px`,marginBottom:`14px`,paddingBottom:`12px`,borderBottom:`1px solid rgba(255, 255, 255, 0.2)`},children:o.map((e,t)=>(0,Q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,background:`rgba(255, 255, 255, 0.12)`,backdropFilter:`blur(4px)`,borderRadius:`var(--radius-sm, 8px)`,padding:`8px 4px`},children:[(0,Q.jsx)(`span`,{style:{fontSize:`12px`,fontWeight:600,marginBottom:`4px`},children:e.day}),(0,Q.jsx)(`img`,{src:e.iconUrl,alt:e.day,width:20,height:20,style:{marginBottom:`4px`}}),(0,Q.jsxs)(`div`,{style:{fontSize:`11px`,display:`flex`,gap:`3px`},children:[(0,Q.jsxs)(`span`,{style:{fontWeight:700},children:[e.high,`°`]}),(0,Q.jsxs)(`span`,{style:{opacity:.65},children:[e.low,`°`]})]}),e.precipitation!==void 0&&e.precipitation>0&&(0,Q.jsxs)(`span`,{style:{fontSize:`10px`,opacity:.8,marginTop:`2px`,display:`inline-flex`,alignItems:`center`,gap:`2px`},children:[(0,Q.jsx)(a,{size:10,strokeWidth:2.5}),` `,e.precipitation,`%`]})]},t))}),(0,Q.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(3, 1fr)`,gap:`8px`},children:[(0,Q.jsxs)(`div`,{style:{background:`rgba(255, 255, 255, 0.12)`,backdropFilter:`blur(4px)`,borderRadius:`var(--radius-sm, 8px)`,padding:`8px 10px`},children:[(0,Q.jsx)(`p`,{style:{margin:0,fontSize:`10px`,opacity:.75,textTransform:`none`,letterSpacing:`0.5px`},children:`Wind`}),(0,Q.jsxs)(`p`,{style:{margin:`2px 0 0`,fontSize:`13px`,fontWeight:700},children:[Math.round(t.wind_speed_10m),` km/h`]})]}),(0,Q.jsxs)(`div`,{style:{background:`rgba(255, 255, 255, 0.12)`,backdropFilter:`blur(4px)`,borderRadius:`var(--radius-sm, 8px)`,padding:`8px 10px`},children:[(0,Q.jsx)(`p`,{style:{margin:0,fontSize:`10px`,opacity:.75,textTransform:`none`,letterSpacing:`0.5px`},children:`Humidity`}),(0,Q.jsxs)(`p`,{style:{margin:`2px 0 0`,fontSize:`13px`,fontWeight:700},children:[Math.round(t.relative_humidity_2m),`%`]})]}),(0,Q.jsxs)(`div`,{style:{background:`rgba(255, 255, 255, 0.12)`,backdropFilter:`blur(4px)`,borderRadius:`var(--radius-sm, 8px)`,padding:`8px 10px`},children:[(0,Q.jsx)(`p`,{style:{margin:0,fontSize:`10px`,opacity:.75,textTransform:`none`,letterSpacing:`0.5px`},children:`Feels like`}),(0,Q.jsxs)(`p`,{style:{margin:`2px 0 0`,fontSize:`13px`,fontWeight:700},children:[Math.round(t.apparent_temperature),`°C`]})]})]})]})}var Z,Q,$;t((()=>{Z=e(n()),i(),re(),Q=r(),$=(e,t=!0)=>({...{0:{description:`Clear Sky`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e3a8a, #1d4ed8 40%, #0284c7 80%, #0369a1)`},1:{description:`Mainly Clear`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e3a8a, #1d4ed8 40%, #0284c7 80%, #0369a1)`},2:{description:`Partly Cloudy`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e293b, #334155 45%, #0284c7 85%)`},3:{description:`Overcast`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #334155 50%, #475569)`},45:{description:`Foggy`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e293b, #475569)`},48:{description:`Rime Fog`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e293b, #475569)`},51:{description:`Light Drizzle`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0c4a6e, #0284c7 50%, #0369a1)`},53:{description:`Drizzle`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0c4a6e, #0284c7 50%, #0369a1)`},55:{description:`Heavy Drizzle`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #0369a1 60%)`},61:{description:`Light Rain`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0c4a6e, #0284c7 50%, #0369a1)`},63:{description:`Rain`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #0284c7 50%, #0369a1)`},65:{description:`Heavy Rain`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #1e3a8a 60%, #0284c7)`},71:{description:`Light Snow`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e293b, #38bdf8 70%)`},73:{description:`Snow`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e293b, #38bdf8 70%)`},75:{description:`Heavy Snow`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #0284c7 70%)`},80:{description:`Light Showers`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0c4a6e, #0284c7 50%, #0369a1)`},81:{description:`Showers`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #0284c7 50%, #0369a1)`},82:{description:`Heavy Showers`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #1e3a8a 50%, #312e81)`},95:{description:`Thunderstorm`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #1e1b4b 50%, #312e81)`},96:{description:`Thunderstorm & Hail`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #1e1b4b 60%)`},99:{description:`Severe Thunderstorm`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #0f172a, #1e1b4b 60%)`}}[e]||{description:`Weather`,gradient:`radial-gradient(ellipse 150% 100% at 50% 100%, #1e3a8a, #0284c7)`},iconUrl:Y(e,t)})}))();export{ie as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-Bcahc2yC.js","assets/rolldown-runtime-CNOWq4Kh.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{g as i,h as a}from"./index-BocxnrDG.js";import{n as o,r as s,t as c}from"./ArtifactPreviewPanel-Cx6BVOOF.js";var l,u=t((()=>{l=`/assets/pdf.worker.min-Dkey6ZUl.mjs`}));async function d(e,t,n,r,i=fetch){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(n)||t<0||n<=t)throw Error(`Invalid PDF byte range`);let a=new Uint8Array(n-t),o=t;for(;o<n;){let s=await i(e,{headers:{Range:`bytes=${o}-${Math.min(n,o+262144)-1}`},signal:r}),c=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(s.headers.get(`Content-Range`)||``);if(s.status!==206||!c||Number(c[1])!==o||Number(c[2])>=n||Number(c[2])<o)throw await s.body?.cancel(),Error(`The PDF source could not provide the requested pages`);let l=new Uint8Array(await s.arrayBuffer());if(l.byteLength!==Number(c[2])-o+1)throw Error(`Incomplete PDF data`);a.set(l,o-t),o+=l.byteLength}return a}var f=t((()=>{}));function p({pdf:e,pageNumber:t,width:n,zoom:r,onVisible:i}){let a=(0,h.useRef)(null),o=(0,h.useRef)(null);return(0,h.useEffect)(()=>{let i=!1,o=null;return e.getPage(t).then(e=>{if(i||!a.current)return;let t=e.getViewport({scale:1}),s=e.getViewport({scale:n/t.width*r}),c=Math.min(window.devicePixelRatio||1,2,Math.sqrt(8e6/(s.width*s.height))),l=a.current;return l.width=Math.ceil(s.width*c),l.height=Math.ceil(s.height*c),l.style.width=`${s.width}px`,l.style.height=`${s.height}px`,o=e.render({canvas:l,viewport:s,transform:c===1?void 0:[c,0,0,c,0,0]}),o.promise}).catch(()=>{}),()=>{i=!0,o?.cancel()}},[e,t,n,r]),(0,h.useEffect)(()=>{if(!o.current||!i)return;let e=o.current,n=new IntersectionObserver(e=>{for(let n of e)n.isIntersecting&&n.intersectionRatio>=.4&&i(t)},{threshold:.4});return n.observe(e),()=>n.disconnect()},[t,i]),(0,g.jsxs)(`div`,{ref:o,id:`pdf-page-${t}`,className:`workspace-pdf-page-container`,style:{display:`flex`,flexDirection:`column`,alignItems:`center`,marginBottom:`24px`,position:`relative`,width:`100%`},children:[(0,g.jsx)(`canvas`,{ref:a,style:{boxShadow:`0 6px 24px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08)`,borderRadius:`var(--radius-xs, 6px)`,display:`block`,background:`#ffffff`,maxWidth:`100%`},"aria-label":`PDF page ${t}`}),(0,g.jsxs)(`span`,{style:{marginTop:`8px`,fontSize:`11px`,color:`var(--text-muted, #a1a1aa)`,fontWeight:500},children:[`Slide `,t,` of `,e.numPages]})]})}function m({url:e,path:t,root:n,byteLength:r,range:i}){let[s,c]=(0,h.useState)(null),[u,f]=(0,h.useState)(1),[m,_]=(0,h.useState)(1),[v,y]=(0,h.useState)(``),[b,x]=(0,h.useState)(!0),[S,C]=(0,h.useState)(0),[w,T]=(0,h.useState)(500),E=(0,h.useRef)(null);(0,h.useEffect)(()=>{let e=E.current;if(!e)return;let t=new ResizeObserver(()=>T(Math.max(100,e.clientWidth-32)));return t.observe(e),()=>t.disconnect()},[]),(0,h.useEffect)(()=>{let t=!1,n,o=new Set;return c(null),y(``),x(!0),f(1),(async()=>{let s=await a(()=>import(`./pdf-Bcahc2yC.js`),__vite__mapDeps([0,1]));if(t)return;s.GlobalWorkerOptions.workerSrc=l;let u=new URL(`../pdfjs/`,import.meta.url).href,f={cMapUrl:`${u}cmaps/`,cMapPacked:!0,standardFontDataUrl:`${u}standard_fonts/`,wasmUrl:`${u}wasm/`,useSystemFonts:!0,isEvalSupported:!1,disableAutoFetch:!0,disableStream:!0};if(i&&r){class i extends s.PDFDataRangeTransport{requestDataRange(r,i){let a=new AbortController;o.add(a),d(e,r,i,a.signal).then(e=>{t||this.onDataRange(r,e)}).catch(e=>{t||(y(String(e instanceof Error?e.message:e)),x(!1),n?.destroy())}).finally(()=>o.delete(a))}abort(){for(let e of o)e.abort();o.clear()}}n=s.getDocument({...f,range:new i(r,new Uint8Array),rangeChunkSize:65536})}else n=s.getDocument({...f,url:e});let p=await n.promise;t||(c(p),x(!1))})().catch(e=>{t||(y(e instanceof Error?e.message:String(e)),x(!1))}),()=>{t=!0;for(let e of o)e.abort();n?.destroy()}},[e,r,i,S]);let D=(0,h.useCallback)(e=>{if(!s)return;let t=Math.max(1,Math.min(s.numPages,e));f(t);let n=document.getElementById(`pdf-page-${t}`);n&&n.scrollIntoView({behavior:`smooth`,block:`start`})},[s]);(0,h.useEffect)(()=>{if(!s)return;let e=e=>{let t=e.target?.tagName;[`INPUT`,`TEXTAREA`].includes(t)||(e.key===`ArrowRight`||e.key===`ArrowDown`||e.key===`PageDown`||e.key===` `?(e.preventDefault(),D(u+1)):(e.key===`ArrowLeft`||e.key===`ArrowUp`||e.key===`PageUp`)&&(e.preventDefault(),D(u-1)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,u,D]);let O=s?.numPages||0,k=Array.from({length:O},(e,t)=>t+1);return(0,g.jsxs)(`section`,{className:`workspace-pdf-preview`,"aria-label":`PDF preview`,children:[(0,g.jsxs)(`div`,{className:`workspace-pdf-controls`,role:`toolbar`,"aria-label":`PDF controls`,children:[(0,g.jsxs)(`span`,{style:{fontWeight:600,fontSize:`12px`,color:`var(--text-main)`},"aria-live":`polite`,children:[`Slide `,u,` / `,s?.numPages??`–`]}),(0,g.jsx)(`div`,{style:{height:`14px`,width:`1px`,background:`var(--border)`,margin:`0 4px`}}),(0,g.jsxs)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:`6px`},children:[(0,g.jsx)(`button`,{type:`button`,"aria-label":`Zoom PDF out`,disabled:m<=.5,onClick:()=>_(e=>Math.max(.5,e-.25)),children:`−`}),(0,g.jsxs)(`span`,{style:{fontSize:`11px`,minWidth:`36px`,textAlign:`center`},children:[Math.round(m*100),`%`]}),(0,g.jsx)(`button`,{type:`button`,"aria-label":`Zoom PDF in`,disabled:m>=2,onClick:()=>_(e=>Math.min(2,e+.25)),children:`+`})]})]}),(0,g.jsxs)(`div`,{className:`workspace-pdf-pages`,ref:E,children:[b&&!v&&(0,g.jsx)(`p`,{role:`status`,children:`Loading PDF…`}),v?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`p`,{className:`workspace-media-error`,role:`alert`,children:[`Could not display PDF: `,v]}),(0,g.jsx)(`button`,{type:`button`,onClick:()=>C(e=>e+1),children:`Retry PDF`}),(0,g.jsx)(o,{path:t,root:n})]}):s&&(0,g.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,width:`100%`,alignItems:`center`},children:k.map(e=>(0,g.jsx)(p,{pdf:s,pageNumber:e,width:w,zoom:m,onVisible:f},e))})]})]})}var h,g;t((()=>{h=e(n()),u(),f(),s(),c(),g=r(),i()}))();export{m as default};
|
package/out/web/assets/{abnfDiagram-VCTEODGH-BOo3Ckng.js → abnfDiagram-VCTEODGH-CMfR95N2.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{b as t,n,t as r}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{b 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().RailroadAbnf.parser.LangiumParser,_=i(e=>{let t=e.alternatives.map(v);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),v=i(e=>{let t=e.elements.map(b);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),y=i(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),b=i(e=>{let t=x(e.primary);if(!e.repeat)return t;let{min:n,max:r}=y(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),x=i(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return _(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:_(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),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(`[ABNF 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(`[ABNF Parser] Parsed rules:`,n.rules.length),C(n),o.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:f}},db:f,renderer:l,styles:u}}))();export{w as diagram};
|
package/out/web/assets/{architecture-7GRP2DOG-ZOwheW3n.js → architecture-7GRP2DOG-DhAM4HyO.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{w as t}from"./chunk-FOHPRMQF-JXEeeJ9r.js";import{J as n,q 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{J as n,q as r}from"./mermaid-parser.core-BJwgCBBc.js";var i=e((()=>{n(),t()}));n(),i();export{r as createArchitectureServices};
|