{"version":3,"file":"Models_code.deOBZSuf.mjs","names":["React.useState","React.useMemo"],"sources":["https:/framerusercontent.com/modules/NSiFUvqouOkZxSNpJDtl/GPeLz0l8wW7cs54Q5v8M/Models_code.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";// ── SVG Logos (fallbacks when no custom icon is uploaded) ────────────────────\nconst SwiftLogo=({size=24})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",children:[/*#__PURE__*/_jsxs(\"g\",{clipPath:\"url(#sw)\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M23.6884 6.38617C23.6883 5.89307 23.6387 5.40124 23.5403 4.91805C23.4419 4.42341 23.2747 3.945 23.0434 3.4968C22.8018 3.06267 22.5015 2.66392 22.1509 2.3118C21.7894 1.95806 21.3695 1.66944 20.9097 1.45867C20.4559 1.22987 19.9706 1.06998 19.4697 0.984297C18.9728 0.888672 18.4272 0.888672 17.9303 0.841797H5.67344C5.2911 0.848023 4.90961 0.87997 4.53156 0.937422C4.1564 0.981588 3.78916 1.0775 3.44031 1.22242C3.34094 1.2693 3.19281 1.31805 3.09344 1.36492C2.76339 1.54184 2.44967 1.74764 2.15594 1.97992C2.05656 2.07555 1.95719 2.12242 1.85781 2.21617C1.49239 2.55511 1.19018 2.95636 0.965312 3.40117C0.719749 3.84307 0.551694 4.32378 0.468437 4.82242C0.394548 5.30901 0.345111 5.799 0.320312 6.29055V17.6137C0.320467 18.1068 0.37009 18.5986 0.468437 19.0818C0.566834 19.5764 0.734086 20.0548 0.965312 20.503C1.20696 20.9372 1.50729 21.3359 1.85781 21.688C2.21934 22.0418 2.63927 22.3304 3.09906 22.5412C3.55282 22.77 4.03816 22.9299 4.53906 23.0155C5.03594 23.1112 5.58156 23.1112 6.07844 23.158H17.9322C18.4486 23.1577 18.9639 23.11 19.4716 23.0155C19.9725 22.9299 20.4578 22.77 20.9116 22.5412C21.3615 22.3135 21.779 22.0265 22.1528 21.688C22.5182 21.3491 22.8204 20.9479 23.0453 20.503C23.2909 20.0611 23.4589 19.5804 23.5422 19.0818C23.6161 18.5952 23.6655 18.1052 23.6903 17.6137V6.38617H23.6884Z\",fill:\"#F05138\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M15.9363 18.0933C13.8531 19.2427 10.99 19.3608 8.10812 18.1814C5.86116 17.2697 3.93998 15.7039 2.59375 13.687C3.21939 14.1659 3.9029 14.5641 4.62813 14.872C7.60375 16.2033 10.5775 16.1114 12.6719 14.872C9.69062 12.6858 7.15937 9.84328 5.27312 7.52203C4.9009 7.12974 4.56863 6.70138 4.28125 6.24328C6.56125 8.23266 10.1875 10.7433 11.4775 11.4539C9.63564 9.56669 7.94306 7.53935 6.415 5.39016C8.95508 7.85857 11.7501 10.0502 14.7531 11.9283C14.8863 11.9995 14.9894 12.0595 15.0719 12.1158C15.1599 11.9009 15.2356 11.6812 15.2987 11.4577C15.9944 9.04078 15.1994 6.29391 13.4631 4.01953C17.4831 6.33891 19.8738 10.6964 18.8725 14.3452C18.8463 14.4445 18.8181 14.5327 18.7881 14.6358L18.8237 14.677C20.8094 17.0452 20.2638 19.552 20.0144 19.0833C18.9363 17.062 16.9431 17.6864 15.9363 18.0933Z\",fill:\"#FEFEFE\"})]}),/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsx(\"clipPath\",{id:\"sw\",children:/*#__PURE__*/_jsx(\"rect\",{width:\"24\",height:\"24\",fill:\"white\"})})})]});const NodeLogo=({size=24})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 26 24\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M10.5838 24C10.2614 23.9983 9.94476 23.9147 9.66347 23.7572L6.7491 22.0155C6.31059 21.7727 6.53008 21.6846 6.66149 21.6408C7.25284 21.4422 7.36235 21.398 7.97608 21.0456C8.04178 21.0014 8.12939 21.0233 8.1951 21.0675L10.43 22.4126C10.5176 22.4564 10.6272 22.4564 10.6929 22.4126L19.436 17.319C19.5231 17.2752 19.5679 17.1871 19.5679 17.0766V6.91277C19.5679 6.8023 19.5231 6.71422 19.436 6.66994L10.6929 1.59919C10.6053 1.55491 10.4957 1.55491 10.43 1.59919L1.6874 6.66994C1.59979 6.71422 1.55599 6.82421 1.55599 6.91277V17.0766C1.55599 17.1652 1.59979 17.2752 1.6874 17.3195L4.07565 18.7083C5.36833 19.3701 6.17917 18.5979 6.17917 17.8265V7.79455C6.17917 7.66219 6.28869 7.52982 6.44248 7.52982H7.55995C7.69136 7.52982 7.82277 7.64029 7.82277 7.79455V17.8265C7.82277 19.5682 6.88051 20.5824 5.23692 20.5824C4.73318 20.5824 4.33895 20.5824 3.221 20.0315L0.920355 18.7083C0.639727 18.5439 0.407085 18.3087 0.245607 18.0264C0.084129 17.744 -0.000549258 17.4243 2.68099e-06 17.099V6.93419C2.68099e-06 6.27237 0.350907 5.65531 0.920355 5.32488L9.66347 0.231755C10.211 -0.0772515 10.9562 -0.0772515 11.5037 0.231755L20.2468 5.32441C20.5274 5.48897 20.76 5.72419 20.9214 6.00664C21.0828 6.28908 21.1674 6.60889 21.1667 6.93419V17.0985C21.1667 17.7604 20.8163 18.3774 20.2468 18.7083L11.5037 23.8015C11.2409 23.9119 10.9124 24 10.5838 24Z\",fill:\"#5FA04E\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M13.296 17.0104C9.46082 17.0104 8.67188 15.2464 8.67188 13.747C8.67188 13.6152 8.78139 13.4828 8.9347 13.4828H10.0741C10.206 13.4828 10.3155 13.5709 10.3155 13.7032C10.4907 14.8717 10.9944 15.4449 13.3174 15.4449C15.1582 15.4449 15.9471 15.0259 15.9471 14.0342C15.9471 13.4609 15.7271 13.0419 12.857 12.7553C10.4688 12.5125 8.9785 11.9835 8.9785 10.0652C8.9785 8.27969 10.4688 7.22078 12.9665 7.22078C15.7719 7.22078 17.1522 8.19113 17.3274 10.308C17.3255 10.379 17.3029 10.4479 17.2622 10.5061C17.2174 10.5503 17.1522 10.5946 17.0855 10.5946H15.9242C15.8679 10.5924 15.8139 10.5718 15.7705 10.536C15.727 10.5001 15.6966 10.4509 15.6838 10.3961C15.4205 9.18337 14.7411 8.78676 12.9446 8.78676C10.9287 8.78676 10.6878 9.4919 10.6878 10.0214C10.6878 10.6603 10.9725 10.8593 13.6898 11.2117C16.3847 11.5645 17.6559 12.0716 17.6559 13.9675C17.6559 15.9082 16.0561 17.0104 13.296 17.0104Z\",fill:\"#5FA04E\"})]});const PythonLogo=({size=24})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M11.886 0c-5.184 0-4.86 2.246-4.86 2.246l.006 2.328h4.945v.699H5.144S2 4.916 2 10.149c0 5.232 2.747 5.046 2.747 5.046h1.726v-2.428s-.093-2.747 2.7-2.747h4.902s2.616.043 2.616-2.527V2.532S16.998 0 11.886 0zM9.16 1.564a.89.89 0 1 1-.001 1.78.89.89 0 0 1 0-1.78z\",fill:\"#3776AB\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12.114 24c5.184 0 4.86-2.246 4.86-2.246l-.006-2.328h-4.945v-.699h6.833S22 19.084 22 13.851c0-5.232-2.747-5.046-2.747-5.046h-1.726v2.428s.093 2.747-2.7 2.747H9.925s-2.616-.043-2.616 2.527v4.961S6.998 24 12.114 24zm2.726-1.564a.89.89 0 1 1 .001-1.78.89.89 0 0 1-.001 1.78z\",fill:\"#FFD43B\"})]});const RustLogo=({size=24})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"10.5\",fill:\"#000\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M7.6 6.3h5.2c1.6 0 2.5.7 2.5 2 0 1-.6 1.7-1.6 1.9v.05c.7.1 1.2.5 1.4 1.3l.6 2.05H14l-.5-1.85c-.2-.7-.5-.95-1.25-.95H9.45V13.6H7.6V6.3zm1.85 1.35V9.6h2.8c.85 0 1.3-.35 1.3-1 0-.6-.45-.95-1.3-.95h-2.8z\",fill:\"#FFF\"})]});const KW={swift:/^(import|public|private|internal|static|func|async|throws|let|var|try|await|in|for|return|true|false|nil|print|class|struct|enum|protocol|guard|if|else|switch|case|default|break|continue|self|do)$/,ts:/^(import|from|export|async|function|const|let|var|for|of|in|return|true|false|null|undefined|new|class|extends|interface|type|await|if|else|throw|try|catch|finally|console)$/,python:/^(import|from|as|async|def|class|return|True|False|None|if|elif|else|for|in|while|with|try|except|finally|raise|pass|yield|await|lambda|not|and|or|is|print|isinstance|self)$/,rust:/^(use|pub|fn|let|mut|impl|trait|struct|enum|mod|async|await|return|true|false|match|if|else|while|for|loop|in|break|continue|where|type|const|static|ref|self|Self|crate|super|move|as|dyn|unsafe|extern|println|eprintln|vec|format|panic)$/};const COMMENT_PREFIX={swift:\"//\",ts:\"//\",python:\"#\",rust:\"//\"};function buildTokenRe(commentPrefix){const c=commentPrefix===\"#\"?\"#\":\"\\\\/\\\\/\";return new RegExp(`(${c}.*$)|(\"\"\")|(\"(?:[^\"\\\\\\\\]|\\\\\\\\.)*\"|'(?:[^'\\\\\\\\]|\\\\\\\\.)*'|\\`(?:[^\\`\\\\\\\\]|\\\\\\\\.)*\\`)|(\\\\b\\\\d+(?:\\\\.\\\\d+)?\\\\b)|(\\\\.[a-zA-Z]\\\\w*)|(\\\\b[A-Z]\\\\w*\\\\b)|(\\\\b\\\\w+\\\\b)|([ \\\\t]+)|(.)`,\"g\");}const TOK_RE_CACHE={\"//\":buildTokenRe(\"//\"),\"#\":buildTokenRe(\"#\")};function tokenizeLine(line,lang){const kw=KW[lang];const reSource=TOK_RE_CACHE[COMMENT_PREFIX[lang]].source;const re=new RegExp(reSource,\"g\");const out=[];let m;while((m=re.exec(line))!==null){if(m[1]){out.push({text:m[0],t:\"cmt\"});continue;}if(m[2]){out.push({text:m[0],t:\"str\"});continue;}if(m[3]){out.push({text:m[0],t:\"str\"});continue;}if(m[4]){out.push({text:m[0],t:\"num\"});continue;}if(m[5]){out.push({text:m[0],t:\"dot\"});continue;}if(m[6]){out.push({text:m[0],t:\"type\"});continue;}if(m[7]){if(kw.test(m[0])){out.push({text:m[0],t:\"kw\"});continue;}const rest=line.slice(re.lastIndex);if(/^\\s*[(<]/.test(rest)){out.push({text:m[0],t:\"fn\"});continue;}out.push({text:m[0],t:\"plain\"});continue;}out.push({text:m[0],t:\"plain\"});}return out;}function colorFor(t,c){switch(t){case\"kw\":return c.colorKeyword;case\"str\":return c.colorString;case\"num\":return c.colorPlain;case\"type\":return c.colorType;case\"fn\":return c.colorFunction;case\"dot\":return c.colorDot;case\"cmt\":return c.colorComment;default:return c.colorPlain;}}const MODELS_URL=\"https://platform.trymirai.com/api/fetch/models\";const MODELS_CACHE_KEY=\"mirai-models-cache-v4\";const MODELS_CACHE_TIME_KEY=\"mirai-models-cache-time-v4\";const MODELS_CACHE_TTL=1e3*60*60*24;let modelsMemory=null;let modelsPromise=null;function normalize(v){return String(v||\"\").trim().toLowerCase();}function flattenModel(m){const ref=m?.accessibility?.reference||{};const fullName=m?.metadata?.name||\"\";const shortName=fullName.includes(\"/\")?fullName.split(\"/\").pop()||fullName:fullName;return{id:m?.id||\"\",repoId:ref?.repository?.identifier||\"\",sourceRepoId:ref?.source_repository?.identifier||\"\",fullName,shortName,familyName:m?.family?.metadata?.name||\"\"};}function getModelsLocal(){try{const raw=localStorage.getItem(MODELS_CACHE_KEY);const t=Number(localStorage.getItem(MODELS_CACHE_TIME_KEY));if(!raw||!Number.isFinite(t)||Date.now()-t>MODELS_CACHE_TTL)return null;const parsed=JSON.parse(raw);return Array.isArray(parsed)?parsed:null;}catch{return null;}}function setModelsLocal(models){try{localStorage.setItem(MODELS_CACHE_KEY,JSON.stringify(models));localStorage.setItem(MODELS_CACHE_TIME_KEY,String(Date.now()));}catch{}}async function fetchModels(){const res=await fetch(MODELS_URL);if(!res.ok)throw new Error(`HTTP ${res.status}`);const data=await res.json();const raw=Array.isArray(data?.models)?data.models:[];const flat=raw.map(flattenModel);modelsMemory=flat;setModelsLocal(flat);return flat;}async function getModels(){if(modelsMemory)return modelsMemory;const local=getModelsLocal();if(local){modelsMemory=local;if(!modelsPromise){modelsPromise=fetchModels().catch(()=>local).finally(()=>{modelsPromise=null;});}return local;}if(!modelsPromise){modelsPromise=fetchModels().finally(()=>{modelsPromise=null;});}return modelsPromise;}if(typeof window!==\"undefined\"){if(!modelsMemory)modelsMemory=getModelsLocal();getModels().catch(()=>{});}function findModel(models,{modelId,repoId,name}){const nId=normalize(modelId);const nRepo=normalize(repoId);const nName=normalize(name);if(nId){const m=models.find(x=>normalize(x.id)===nId);if(m)return m;}if(nRepo){const m=models.find(x=>normalize(x.repoId)===nRepo||normalize(x.sourceRepoId)===nRepo||normalize(x.fullName)===nRepo);if(m)return m;}if(nName){const m=models.find(x=>normalize(x.fullName)===nName||normalize(x.shortName)===nName||normalize(x.repoId)===nName||normalize(x.sourceRepoId)===nName||normalize(x.familyName)===nName);if(m)return m;}return null;}function useSnippetRepoId(modelId,repoId,name){const[resolved,setResolved]=React.useState(()=>{const cache=modelsMemory||getModelsLocal();if(cache){const m=findModel(cache,{modelId,repoId,name});if(m?.repoId)return m.repoId;}return repoId&&repoId.includes(\"/\")?repoId:\"\";});React.useEffect(()=>{let cancelled=false;getModels().then(models=>{if(cancelled)return;const m=findModel(models,{modelId,repoId,name});if(m?.repoId)setResolved(m.repoId);else if(repoId&&repoId.includes(\"/\"))setResolved(repoId);else setResolved(\"\");}).catch(()=>{if(!cancelled&&repoId&&repoId.includes(\"/\"))setResolved(repoId);});return()=>{cancelled=true;};},[modelId,repoId,name]);return resolved;}// ── Snippet templates ──────────────────────────────────────────────────────\nfunction swiftSnippet(repoId){return`import Uzu\n\npublic func runChat() async throws {\n    let engineConfig = EngineConfig.create()\n    let engine = try await Engine.create(config: engineConfig)\n\n    guard let model = try await engine.model(identifier: \"${repoId}\") else {\n        return\n    }\n    for try await update in try await engine.download(model: model).iterator() {\n        print(\"Download progress: \\\\(update.progress())\")\n    }\n\n    let messages = [\n        ChatMessage.system().withText(text: \"You are a helpful assistant\"),\n        ChatMessage.user().withText(text: \"Tell me a short, funny story about a robot\")\n    ]\n    let session = try await engine.chat(model: model, config: .create())\n    let stream = await session.replyWithStream(input: messages, config: .create())\n    var message: ChatMessage? = nil\n    for try await update in stream.iterator() {\n        switch update {\n        case .replies(let replies):\n            message = replies.last?.message\n        case .error(let error):\n            print(\"Error: \\\\(error)\")\n        }\n    }\n    print(\"Text: \\\\(message?.text() ?? \"empty\")\")\n}`;}function tsSnippet(repoId){return`import {\n    ChatConfig,\n    ChatMessage,\n    ChatReplyConfig,\n    ChatSessionStreamChunkError,\n    ChatSessionStreamChunkReplies,\n    Engine,\n    EngineConfig,\n} from '@trymirai/uzu'\n\nasync function main() {\n    const engineConfig = EngineConfig.create()\n    const engine = await Engine.create(engineConfig)\n\n    const model = await engine.model('${repoId}')\n    if (!model) throw new Error('Model not found')\n\n    for await (const update of await engine.download(model)) {\n        console.log('Download progress:', update.progress)\n    }\n\n    const messages = [\n        ChatMessage.system().withText('You are a helpful assistant'),\n        ChatMessage.user().withText('Tell me a short, funny story about a robot'),\n    ]\n    const session = await engine.chat(model, ChatConfig.create())\n    const stream = await session.replyWithStream(messages, ChatReplyConfig.create())\n    let message: ChatMessage | undefined\n    for await (const chunk of stream) {\n        if (chunk instanceof ChatSessionStreamChunkReplies) {\n            message = chunk.replies[0]?.message\n        } else if (chunk instanceof ChatSessionStreamChunkError) {\n            console.error('Error:', chunk.error)\n        }\n    }\n    console.log('Text:', message?.text)\n}\n\nmain().catch(console.error)`;}function pythonSnippet(repoId){return`import asyncio\n\nfrom uzu import (\n    ChatConfig,\n    ChatMessage,\n    ChatReplyConfig,\n    ChatSessionStreamChunk,\n    Engine,\n    EngineConfig,\n)\n\nasync def main() -> None:\n    engine_config = EngineConfig.create()\n    engine = await Engine.create(engine_config)\n\n    model = await engine.model(\"${repoId}\")\n    if model is None:\n        raise RuntimeError(\"Model not found\")\n    async for update in (await engine.download(model)).iterator():\n        print(f\"Download progress: {update.progress}\")\n\n    messages = [\n        ChatMessage.system().with_text(\"You are a helpful assistant\"),\n        ChatMessage.user().with_text(\"Tell me a short, funny story about a robot\"),\n    ]\n    session = await engine.chat(model, ChatConfig.create())\n    stream = await session.reply_with_stream(messages, ChatReplyConfig.create())\n    message: ChatMessage | None = None\n    async for chunk in stream.iterator():\n        if isinstance(chunk, ChatSessionStreamChunk.Replies):\n            replies = chunk.replies\n            if replies:\n                message = replies[0].message\n        elif isinstance(chunk, ChatSessionStreamChunk.Error):\n            print(f\"Error: {chunk.error}\")\n    if message is not None:\n        print(f\"Text: {message.text}\")\n\nif __name__ == \"__main__\":\n    asyncio.run(main())`;}function rustSnippet(repoId){return`use uzu::{\n    engine::{Engine, EngineConfig},\n    session::chat::ChatSessionStreamChunk,\n    types::session::chat::{ChatConfig, ChatMessage, ChatReplyConfig},\n};\n\n#[tokio::main]\nasync fn main() -> Result<(), Box<dyn std::error::Error>> {\n    let engine_config = EngineConfig::default();\n    let engine = Engine::new(engine_config).await?;\n\n    let model = engine.model(\"${repoId}\".to_string()).await?.ok_or(\"Model not found\")?;\n    let downloader = engine.download(&model).await?;\n    while let Some(update) = downloader.next().await {\n        println!(\"Download progress: {}\", update.progress());\n    }\n\n    let messages = vec![\n        ChatMessage::system().with_text(\"You are a helpful assistant\".to_string()),\n        ChatMessage::user().with_text(\"Tell me a short, funny story about a robot\".to_string()),\n    ];\n    let session = engine.chat(model, ChatConfig::default()).await?;\n    let stream = session.reply_with_stream(messages, ChatReplyConfig::default()).await;\n    let mut last_message: Option<ChatMessage> = None;\n    while let Some(chunk) = stream.next().await {\n        match chunk {\n            ChatSessionStreamChunk::Replies { replies } => {\n                if let Some(reply) = replies.first() {\n                    last_message = Some(reply.message.clone());\n                }\n            }\n            ChatSessionStreamChunk::Error { error } => {\n                println!(\"Error: {error}\");\n            }\n        }\n    }\n    if let Some(message) = last_message {\n        println!(\"Text: {}\", message.text().unwrap_or_default());\n    }\n    Ok(())\n}`;}// ── Copy Button ──────────────────────────────────────────────────────────────\nconst CopyIcon=({color,size})=>/*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 8V7.2C8 6.0799 8 5.51984 8.21799 5.09202C8.40973 4.71569 8.71569 4.40973 9.09202 4.21799C9.51984 4 10.0799 4 11.2 4H16.8C17.9201 4 18.4802 4 18.908 4.21799C19.2843 4.40973 19.5903 4.71569 19.782 5.09202C20 5.51984 20 6.0799 20 7.2V12.8C20 13.9201 20 14.4802 19.782 14.908C19.5903 15.2843 19.2843 15.5903 18.908 15.782C18.4802 16 17.9201 16 16.8 16H16M16 11.2V16.8C16 17.9201 16 18.4802 15.782 18.908C15.5903 19.2843 15.2843 19.5903 14.908 19.782C14.4802 20 13.9201 20 12.8 20H7.2C6.0799 20 5.51984 20 5.09202 19.782C4.71569 19.5903 4.40973 19.2843 4.21799 18.908C4 18.4802 4 17.9201 4 16.8V11.2C4 10.0799 4 9.51984 4.21799 9.09202C4.40973 8.71569 4.71569 8.40973 5.09202 8.21799C5.51984 8 6.0799 8 7.2 8H12.8C13.9201 8 14.4802 8 14.908 8.21799C15.2843 8.40973 15.5903 8.71569 15.782 9.09202C16 9.51984 16 10.0799 16 11.2Z\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"})});const CheckIcon=({color,size})=>/*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 13L10 16L17 8\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});function CopyButton({code,iconColor,size,btnSize,btnRadius,btnTop,btnRight}){const[copied,setCopied]=React.useState(false);const[hovered,setHovered]=React.useState(false);const handleCopy=()=>{if(!code)return;navigator.clipboard.writeText(code).catch(()=>{});setCopied(true);setTimeout(()=>setCopied(false),1e3);};return /*#__PURE__*/_jsx(\"button\",{onClick:handleCopy,onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),style:{position:\"absolute\",top:btnTop,right:btnRight,width:btnSize,height:btnSize,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\",border:\"none\",borderRadius:btnRadius,cursor:\"pointer\",opacity:hovered||copied?1:.5,transition:\"opacity 0.2s ease\",zIndex:5,padding:0},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:size,height:size},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",opacity:copied?0:1,transform:copied?\"scale(0.5)\":\"scale(1)\",transition:\"opacity 0.2s ease, transform 0.2s ease\"},children:/*#__PURE__*/_jsx(CopyIcon,{color:iconColor,size:size})}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",opacity:copied?1:0,transform:copied?\"scale(1)\":\"scale(0.5)\",transition:\"opacity 0.2s ease, transform 0.2s ease\"},children:/*#__PURE__*/_jsx(CheckIcon,{color:\"#4ADE80\",size:size})})]})});}const FW=[{label:\"Swift\",Logo:SwiftLogo,lang:\"swift\",command:\"spm https://github.com/trymirai/uzu.git\",build:swiftSnippet},{label:\"Node.js\",Logo:NodeLogo,lang:\"ts\",command:\"pnpm add @trymirai/uzu\",build:tsSnippet},{label:\"Python\",Logo:PythonLogo,lang:\"python\",command:\"uv add uzu\",build:pythonSnippet},{label:\"Rust\",Logo:RustLogo,lang:\"rust\",command:\"cargo add uzu --git https://github.com/trymirai/uzu\\ncargo add tokio --features full\",build:rustSnippet}];export function ModelCodePreview(props){const{modelId,repoId,name,componentWidth,bg,step1Label,step2Label,step4Label,stepNumberSize,stepNumberColor,stepNumberBg,stepNumberBorder,stepNumberWeight,stepLabelSize,stepLabelColor,stepLabelWeight,stepLineColor,stepLineWidth,stepLineDash,stepLineGapDash,stepLineGapTop,stepLineGapBottom,stepGap,stepContentGap,tabBg,tabActiveBg,tabBorderColor,tabActiveBorderColor,tabTextColor,tabActiveTextColor,tabRadius,tabHeight,tabFontSize,tabFontWeight,tabGap,tabPadX,tabIconSize,swiftIcon,nodeIcon,pythonIcon,rustIcon,cmdBg,cmdBorderColor,cmdRadius,cmdPadX,cmdPadY,cmdFontSize,cmdValueColor,codeBg,codeBorderColor,codeRadius,codePadX,codePadY,codeFontSize,codeLineHeight,codeFontFamily,lineNumColor,lineNumWidth,showLineNumbers,copyIconColor,copyIconSize,copyBtnSize,copyBtnRadius,copyBtnTop,copyBtnRight,colorKeyword,colorString,colorType,colorFunction,colorDot,colorComment,colorPlain,padX,padY,borderRadius,fontFamily,style}=props;const[fwIdx,setFwIdx]=React.useState(0);const snippetRepoId=useSnippetRepoId(modelId,repoId,name);const fwIcons=[swiftIcon,nodeIcon,pythonIcon,rustIcon];const fw=FW[fwIdx];const code=snippetRepoId?fw.build(snippetRepoId):\"\";const lang=fw.lang;const installCmd=fw.command;const colors={colorKeyword,colorString,colorType,colorFunction,colorDot,colorComment,colorPlain};const lines=React.useMemo(()=>{return code.split(\"\\n\").map(line=>tokenizeLine(line,lang));},[code,lang]);const stepCircle=num=>/*#__PURE__*/_jsx(\"div\",{style:{width:stepNumberSize,height:stepNumberSize,borderRadius:\"50%\",border:`1px solid ${stepNumberBorder}`,background:stepNumberBg,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:stepNumberSize*.48,fontWeight:stepNumberWeight,color:stepNumberColor,fontFamily,flexShrink:0},children:num});const stepLine=()=>/*#__PURE__*/_jsx(\"div\",{style:{flex:1,width:stepLineWidth,marginTop:stepLineGapTop,marginBottom:stepLineGapBottom,backgroundImage:`repeating-linear-gradient(to bottom, ${stepLineColor} 0px, ${stepLineColor} ${stepLineDash}px, transparent ${stepLineDash}px, transparent ${stepLineDash+stepLineGapDash}px)`}});return /*#__PURE__*/_jsxs(\"div\",{style:{width:componentWidth,background:bg,borderRadius,overflow:\"hidden\",padding:`${padY}px ${padX}px`,...style},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:stepContentGap},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\"},children:[stepCircle(1),stepLine()]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0,paddingBottom:stepGap},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:stepLabelSize,fontWeight:stepLabelWeight,color:stepLabelColor,fontFamily,marginBottom:stepContentGap,lineHeight:`${stepNumberSize}px`},children:step1Label}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:tabGap,flexWrap:\"wrap\"},children:FW.map((f,i)=>{const active=fwIdx===i;const customIcon=fwIcons[i];return /*#__PURE__*/_jsxs(\"button\",{onClick:()=>setFwIdx(i),style:{display:\"flex\",alignItems:\"center\",gap:8,height:tabHeight,padding:`0 ${tabPadX}px`,borderRadius:tabRadius,border:`1px solid ${active?tabActiveBorderColor:tabBorderColor}`,background:active?tabActiveBg:tabBg,color:active?tabActiveTextColor:tabTextColor,fontSize:tabFontSize,fontWeight:tabFontWeight,fontFamily,cursor:\"pointer\",whiteSpace:\"nowrap\"},children:[customIcon?/*#__PURE__*/_jsx(\"img\",{src:customIcon,alt:f.label,width:tabIconSize,height:tabIconSize,style:{objectFit:\"contain\",display:\"block\",flexShrink:0}}):/*#__PURE__*/_jsx(f.Logo,{size:tabIconSize}),f.label]},f.label);})})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:stepContentGap},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\"},children:[stepCircle(2),stepLine()]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0,paddingBottom:stepGap},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:stepLabelSize,fontWeight:stepLabelWeight,color:stepLabelColor,fontFamily,marginBottom:stepContentGap,lineHeight:`${stepNumberSize}px`},children:step2Label}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",background:cmdBg,border:`1px solid ${cmdBorderColor}`,borderRadius:cmdRadius,padding:`${cmdPadY}px ${cmdPadX}px`,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"span\",{style:{fontSize:cmdFontSize,color:cmdValueColor,fontFamily:codeFontFamily,whiteSpace:\"pre\",overflow:\"hidden\",textOverflow:\"ellipsis\"},children:installCmd})})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:stepContentGap},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\"},children:stepCircle(3)}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:stepLabelSize,fontWeight:stepLabelWeight,color:stepLabelColor,fontFamily,marginBottom:stepContentGap,lineHeight:`${stepNumberSize}px`},children:step4Label}),/*#__PURE__*/_jsxs(\"div\",{style:{background:codeBg,border:`1px solid ${codeBorderColor}`,borderRadius:codeRadius,overflow:\"hidden\",position:\"relative\"},children:[/*#__PURE__*/_jsx(CopyButton,{code:code,iconColor:copyIconColor,size:copyIconSize,btnSize:copyBtnSize,btnRadius:copyBtnRadius,btnTop:copyBtnTop,btnRight:copyBtnRight}),code?/*#__PURE__*/_jsx(\"div\",{style:{overflowX:\"auto\",overflowY:\"hidden\",padding:`${codePadY}px 0`,WebkitOverflowScrolling:\"touch\"},children:/*#__PURE__*/_jsx(\"pre\",{style:{margin:0,fontFamily:codeFontFamily,fontSize:codeFontSize,lineHeight:codeLineHeight,color:colorPlain,whiteSpace:\"pre\",wordBreak:\"normal\",overflowWrap:\"normal\",tabSize:4,display:\"inline-block\",minWidth:\"100%\",WebkitTextSizeAdjust:\"100%\",textSizeAdjust:\"100%\"},children:lines.map((tokens,li)=>{const isFirstLine=li===0;const rightPad=isFirstLine?copyBtnSize+copyBtnRight*2+codePadX:codePadX;return /*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",minHeight:\"1em\",paddingRight:rightPad,whiteSpace:\"pre\"},children:[showLineNumbers&&/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",width:lineNumWidth,textAlign:\"right\",paddingRight:codePadX,color:lineNumColor,userSelect:\"none\",flexShrink:0,position:\"sticky\",left:0,background:codeBg},children:li+1}),/*#__PURE__*/_jsx(\"span\",{style:{flexShrink:0},children:tokens.length===0?\"​\":tokens.map((tok,ti)=>/*#__PURE__*/_jsx(\"span\",{style:{color:colorFor(tok.t,colors)},children:tok.text},ti))})]},`${lang}-${li}`);})})}):/*#__PURE__*/_jsx(\"div\",{style:{color:colorPlain,opacity:.4,fontFamily:codeFontFamily,fontSize:codeFontSize,padding:`${codePadY}px ${codePadX}px`},children:\"Loading...\"})]})]})]})]});}ModelCodePreview.defaultProps={modelId:\"\",repoId:\"Qwen/Qwen3-0.6B\",name:\"\",componentWidth:600,bg:\"#0A0A0A\",step1Label:\"Choose framework\",step2Label:\"Run the following command to install Mirai SDK\",step4Label:\"Apply code\",stepNumberSize:28,stepNumberColor:\"#FFFFFF\",stepNumberBg:\"transparent\",stepNumberBorder:\"#333333\",stepNumberWeight:600,stepLabelSize:16,stepLabelColor:\"#FFFFFF\",stepLabelWeight:600,stepLineColor:\"#333333\",stepLineWidth:1,stepLineDash:4,stepLineGapDash:4,stepLineGapTop:8,stepLineGapBottom:8,stepGap:32,stepContentGap:16,tabBg:\"transparent\",tabActiveBg:\"rgba(255,255,255,0.08)\",tabBorderColor:\"#333333\",tabActiveBorderColor:\"#FFFFFF\",tabTextColor:\"#888888\",tabActiveTextColor:\"#FFFFFF\",tabRadius:12,tabHeight:44,tabFontSize:15,tabFontWeight:600,tabGap:12,tabPadX:20,tabIconSize:24,swiftIcon:\"\",nodeIcon:\"\",pythonIcon:\"\",rustIcon:\"\",cmdBg:\"#141414\",cmdBorderColor:\"#222222\",cmdRadius:12,cmdPadX:20,cmdPadY:16,cmdFontSize:14,cmdValueColor:\"#D4D4D4\",codeBg:\"#141414\",codeBorderColor:\"#222222\",codeRadius:12,codePadX:16,codePadY:16,codeFontSize:13,codeLineHeight:1.65,codeFontFamily:\"'SF Mono', 'Fira Code', 'JetBrains Mono', Menlo, Consolas, monospace\",lineNumColor:\"#555555\",lineNumWidth:36,showLineNumbers:true,copyIconColor:\"#555555\",copyIconSize:16,copyBtnSize:32,copyBtnRadius:6,copyBtnTop:12,copyBtnRight:12,colorKeyword:\"#C792EA\",colorString:\"#C3E88D\",colorType:\"#33ddff\",colorFunction:\"#82AAFF\",colorDot:\"#89DDFF\",colorComment:\"#676E95\",colorPlain:\"#D4D4D4\",padX:32,padY:32,borderRadius:16,fontFamily:\"-apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif\"};addPropertyControls(ModelCodePreview,{modelId:{type:ControlType.String,title:\"Model ID\",defaultValue:\"\"},repoId:{type:ControlType.String,title:\"Repo ID\",defaultValue:\"Qwen/Qwen3-0.6B\"},name:{type:ControlType.String,title:\"Name\",defaultValue:\"\"},componentWidth:{type:ControlType.Number,title:\"Width\",defaultValue:600,min:200,max:1400,step:10},bg:{type:ControlType.Color,title:\"Background\",defaultValue:\"#0A0A0A\"},step1Label:{type:ControlType.String,title:\"Step 1 Label\",defaultValue:\"Choose framework\"},step2Label:{type:ControlType.String,title:\"Step 2 Label\",defaultValue:\"Run the following command to install Mirai SDK\"},step4Label:{type:ControlType.String,title:\"Step 3 Label\",defaultValue:\"Apply code\"},stepNumberSize:{type:ControlType.Number,title:\"Step # Size\",defaultValue:28,min:16,max:48},stepNumberColor:{type:ControlType.Color,title:\"Step # Color\",defaultValue:\"#FFFFFF\"},stepNumberBg:{type:ControlType.Color,title:\"Step # BG\",defaultValue:\"transparent\"},stepNumberBorder:{type:ControlType.Color,title:\"Step # Border\",defaultValue:\"#333333\"},stepNumberWeight:{type:ControlType.Number,title:\"Step # Weight\",defaultValue:600,min:100,max:900,step:100},stepLabelSize:{type:ControlType.Number,title:\"Label Size\",defaultValue:16,min:10,max:28},stepLabelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#FFFFFF\"},stepLabelWeight:{type:ControlType.Number,title:\"Label Weight\",defaultValue:600,min:100,max:900,step:100},stepLineColor:{type:ControlType.Color,title:\"Line Color\",defaultValue:\"#333333\"},stepLineWidth:{type:ControlType.Number,title:\"Line Width\",defaultValue:1,min:1,max:4},stepLineDash:{type:ControlType.Number,title:\"Line Dash\",defaultValue:4,min:1,max:20},stepLineGapDash:{type:ControlType.Number,title:\"Line Dash Gap\",defaultValue:4,min:1,max:20},stepLineGapTop:{type:ControlType.Number,title:\"Line Gap Top\",defaultValue:8,min:0,max:24},stepLineGapBottom:{type:ControlType.Number,title:\"Line Gap Btm\",defaultValue:8,min:0,max:24},stepGap:{type:ControlType.Number,title:\"Step Gap\",defaultValue:32,min:8,max:80},stepContentGap:{type:ControlType.Number,title:\"Content Gap\",defaultValue:16,min:4,max:40},tabBg:{type:ControlType.Color,title:\"Tab BG\",defaultValue:\"transparent\"},tabActiveBg:{type:ControlType.Color,title:\"Tab Active BG\",defaultValue:\"rgba(255,255,255,0.08)\"},tabBorderColor:{type:ControlType.Color,title:\"Tab Border\",defaultValue:\"#333333\"},tabActiveBorderColor:{type:ControlType.Color,title:\"Tab Active Border\",defaultValue:\"#FFFFFF\"},tabTextColor:{type:ControlType.Color,title:\"Tab Text\",defaultValue:\"#888888\"},tabActiveTextColor:{type:ControlType.Color,title:\"Tab Active Text\",defaultValue:\"#FFFFFF\"},tabRadius:{type:ControlType.Number,title:\"Tab Radius\",defaultValue:12,min:0,max:24},tabHeight:{type:ControlType.Number,title:\"Tab Height\",defaultValue:44,min:28,max:64},tabFontSize:{type:ControlType.Number,title:\"Tab Font\",defaultValue:15,min:10,max:24},tabFontWeight:{type:ControlType.Number,title:\"Tab Weight\",defaultValue:600,min:100,max:900,step:100},tabGap:{type:ControlType.Number,title:\"Tab Gap\",defaultValue:12,min:0,max:32},tabPadX:{type:ControlType.Number,title:\"Tab Pad X\",defaultValue:20,min:4,max:40},tabIconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:24,min:12,max:40},swiftIcon:{type:ControlType.File,title:\"Swift Icon\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"svg\",\"webp\"]},nodeIcon:{type:ControlType.File,title:\"Node Icon\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"svg\",\"webp\"]},pythonIcon:{type:ControlType.File,title:\"Python Icon\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"svg\",\"webp\"]},rustIcon:{type:ControlType.File,title:\"Rust Icon\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"svg\",\"webp\"]},cmdBg:{type:ControlType.Color,title:\"Cmd BG\",defaultValue:\"#141414\"},cmdBorderColor:{type:ControlType.Color,title:\"Cmd Border\",defaultValue:\"#222222\"},cmdRadius:{type:ControlType.Number,title:\"Cmd Radius\",defaultValue:12,min:0,max:24},cmdPadX:{type:ControlType.Number,title:\"Cmd Pad X\",defaultValue:20,min:4,max:40},cmdPadY:{type:ControlType.Number,title:\"Cmd Pad Y\",defaultValue:16,min:4,max:40},cmdFontSize:{type:ControlType.Number,title:\"Cmd Font\",defaultValue:14,min:10,max:24},cmdValueColor:{type:ControlType.Color,title:\"Cmd Value\",defaultValue:\"#D4D4D4\"},codeBg:{type:ControlType.Color,title:\"Code BG\",defaultValue:\"#141414\"},codeBorderColor:{type:ControlType.Color,title:\"Code Border\",defaultValue:\"#222222\"},codeRadius:{type:ControlType.Number,title:\"Code Radius\",defaultValue:12,min:0,max:24},codePadX:{type:ControlType.Number,title:\"Code Pad X\",defaultValue:16,min:0,max:40},codePadY:{type:ControlType.Number,title:\"Code Pad Y\",defaultValue:16,min:0,max:40},codeFontSize:{type:ControlType.Number,title:\"Code Font\",defaultValue:13,min:8,max:24},codeLineHeight:{type:ControlType.Number,title:\"Code LH\",defaultValue:1.65,min:1,max:3,step:.05},codeFontFamily:{type:ControlType.String,title:\"Code Family\",defaultValue:\"'SF Mono', 'Fira Code', 'JetBrains Mono', Menlo, Consolas, monospace\"},lineNumColor:{type:ControlType.Color,title:\"Line # Color\",defaultValue:\"#555555\"},lineNumWidth:{type:ControlType.Number,title:\"Line # Width\",defaultValue:36,min:16,max:64},showLineNumbers:{type:ControlType.Boolean,title:\"Line Numbers\",defaultValue:true},copyIconColor:{type:ControlType.Color,title:\"Copy Color\",defaultValue:\"#555555\"},copyIconSize:{type:ControlType.Number,title:\"Copy Icon\",defaultValue:16,min:10,max:32},copyBtnSize:{type:ControlType.Number,title:\"Copy Btn Size\",defaultValue:32,min:20,max:48},copyBtnRadius:{type:ControlType.Number,title:\"Copy Radius\",defaultValue:6,min:0,max:16},copyBtnTop:{type:ControlType.Number,title:\"Copy Top\",defaultValue:12,min:0,max:32},copyBtnRight:{type:ControlType.Number,title:\"Copy Right\",defaultValue:12,min:0,max:32},colorKeyword:{type:ControlType.Color,title:\"Keywords\",defaultValue:\"#C792EA\"},colorString:{type:ControlType.Color,title:\"Strings\",defaultValue:\"#C3E88D\"},colorType:{type:ControlType.Color,title:\"Types\",defaultValue:\"#33ddff\"},colorFunction:{type:ControlType.Color,title:\"Functions\",defaultValue:\"#82AAFF\"},colorDot:{type:ControlType.Color,title:\"Dot Keywords\",defaultValue:\"#89DDFF\"},colorComment:{type:ControlType.Color,title:\"Comments\",defaultValue:\"#676E95\"},colorPlain:{type:ControlType.Color,title:\"Plain Text\",defaultValue:\"#D4D4D4\"},padX:{type:ControlType.Number,title:\"Outer Pad X\",defaultValue:32,min:0,max:80},padY:{type:ControlType.Number,title:\"Outer Pad Y\",defaultValue:32,min:0,max:80},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:16,min:0,max:40},fontFamily:{type:ControlType.String,title:\"UI Font\",defaultValue:\"-apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"ModelCodePreview\":{\"type\":\"reactComponent\",\"name\":\"ModelCodePreview\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Models_code.map"],"mappings":"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"}