Files
mai-bot/dashboard/dist/assets/pack-detail-BOBdaAtu.js

2 lines
19 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{i as ue,r as i,j as e}from"./router-zNjPR4CY.js";import{aG as ve,a4 as w,B as o,S as oe,C as y,f as k,T as we,O as ye,P as $,R as z,b as G,d as Y,e as q,D as ke,i as _e,j as be,k as Ce,l as Se,a5 as Ae,L as _,X as A,a6 as E,Y as P,I as Pe,a3 as Te}from"./index-CuOHsLf7.js";import{B as u}from"./badge-CDs67obV.js";import{C as X}from"./checkbox-DWiVrbnx.js";import{R as De,a as le}from"./radio-group-BBkaGEpR.js";import{S as Ie,a as Le,b as Re,c as Fe,d as Be}from"./select-DGqIoF9r.js";import{S as c}from"./skeleton-CXI2IV_v.js";import{A as Ee,a as Oe,b as He,c as Ke}from"./accordion-BDNDahhI.js";import{T as ce,a as re,b as O,c as f,d as ne,e as g}from"./table-DFeDhBY_.js";import{S as Me}from"./separator-B_DSOSdz.js";import{g as Ue,b as Ve,a as $e,t as ze,d as Ge,f as Ye,r as qe}from"./pack-api-NsQx-ed4.js";import{P as J,g as ie,a1 as Xe,ad as Je,aH as te,b5 as de,am as Qe,t as H,ak as K,al as M,s as We,L as xe,ai as me,b as T,y as Ze,T as he,V as es}from"./icons-DTcdLw9j.js";import"./misc-BwRzHX8c.js";import"./radix-C-ZuImoP.js";import"./utils-DjBw3JGv.js";const ss={utils:"通用工具",utils_small:"轻量工具",tool_use:"工具调用",replyer:"回复生成",planner:"规划推理",vlm:"视觉模型",voice:"语音处理",embedding:"向量嵌入",lpmm_entity_extract:"实体提取",lpmm_rdf_build:"RDF构建",lpmm_qa:"问答模型"};function us(){const{packId:m}=ve.useParams(),b=ue(),[a,n]=i.useState(null),[D,t]=i.useState(!0),[h,j]=i.useState(!1),[r,p]=i.useState(!1),[I,v]=i.useState(!1),[L,R]=i.useState(1),[C,Q]=i.useState(null),[l,x]=i.useState(!1),[N,W]=i.useState(!1),[U,je]=i.useState({apply_providers:!0,apply_models:!0,apply_task_config:!0,task_mode:"append",selected_providers:void 0,selected_models:void 0,selected_tasks:void 0}),[Z,ee]=i.useState({}),[V,se]=i.useState({}),F=Ue(),ae=i.useCallback(async()=>{if(m){t(!0);try{const s=await Ve(m);n(s);const d=await $e(m,F);j(d)}catch(s){console.error("加载 Pack 失败:",s),w({title:"加载模板失败",variant:"destructive"})}finally{t(!1)}}},[m,F]);i.useEffect(()=>{ae()},[ae]);const pe=async()=>{if(!(!m||r)){p(!0);try{const s=await ze(m,F);j(s.liked),a&&n({...a,likes:s.likes})}catch(s){console.error("点赞失败:",s),w({title:"点赞失败",variant:"destructive"})}finally{p(!1)}}},Ne=async()=>{if(a){v(!0),R(1),x(!0);try{const s=await Ge(a);Q(s);const d={};for(const B of s.existing_providers)d[B.pack_provider.name]=B.local_providers[0].name;ee(d);const S={};for(const B of s.new_providers)S[B.name]="";se(S)}catch(s){console.error("检测冲突失败:",s),w({title:"检测配置冲突失败",variant:"destructive"}),v(!1)}finally{x(!1)}}},fe=async()=>{if(a){if(U.apply_providers&&C){for(const s of C.new_providers)if(!V[s.name]){w({title:`请填写提供商 "${s.name}" 的 API Key`,variant:"destructive"});return}}W(!0);try{await Ye(a,U,Z,V),await qe(a.id,F),n({...a,downloads:a.downloads+1}),w({title:"配置模板应用成功!"}),v(!1)}catch(s){console.error("应用 Pack 失败:",s),w({title:s instanceof Error?s.message:"应用配置失败",variant:"destructive"})}finally{W(!1)}}},ge=s=>new Date(s).toLocaleDateString("zh-CN",{year:"numeric",month:"long",day:"numeric"});return D?e.jsx(ls,{}):a?e.jsx("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:e.jsx(oe,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[e.jsxs(o,{variant:"ghost",size:"sm",onClick:()=>b({to:"/config/pack-market"}),className:"gap-2",children:[e.jsx(ie,{className:"w-4 h-4"}),"返回市场"]}),e.jsxs("div",{className:"flex flex-col md:flex-row gap-6",children:[e.jsxs("div",{className:"flex-1 space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(J,{className:"w-10 h-10 text-primary mt-1"}),e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[a.name,e.jsxs(u,{variant:"secondary",children:["v",a.version]})]}),e.jsx("p",{className:"text-muted-foreground mt-1",children:a.description})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm text-muted-foreground",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Xe,{className:"w-4 h-4"}),a.author]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Je,{className:"w-4 h-4"}),ge(a.created_at)]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(te,{className:"w-4 h-4"}),a.downloads," 次下载"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(de,{className:`w-4 h-4 ${h?"fill-red-500 text-red-500":""}`}),a.likes," 赞"]})]}),a.tags&&a.tags.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2",children:a.tags.map(s=>e.jsxs(u,{variant:"outline",children:[e.jsx(Qe,{className:"w-3 h-3 mr-1"}),s]},s))})]}),e.jsxs("div",{className:"flex flex-col gap-2 min-w-[160px]",children:[e.jsxs(o,{size:"lg",onClick:Ne,children:[e.jsx(te,{className:"w-4 h-4 mr-2"}),"应用模板"]}),e.jsxs(o,{variant:"outline",onClick:pe,disabled:r,className:h?"text-red-500 border-red-200":"",children:[e.jsx(de,{className:`w-4 h-4 mr-2 ${h?"fill-current":""}`}),h?"已点赞":"点赞"]})]})]}),e.jsx(Me,{}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsx(y,{children:e.jsxs(k,{className:"flex items-center gap-3 py-4",children:[e.jsx(H,{className:"w-8 h-8 text-blue-500 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-2xl font-bold",children:a.providers.length}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"API 提供商"})]})]})}),e.jsx(y,{children:e.jsxs(k,{className:"flex items-center gap-3 py-4",children:[e.jsx(K,{className:"w-8 h-8 text-green-500 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-2xl font-bold",children:a.models.length}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"模型配置"})]})]})}),e.jsx(y,{children:e.jsxs(k,{className:"flex items-center gap-3 py-4",children:[e.jsx(M,{className:"w-8 h-8 text-purple-500 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-2xl font-bold",children:Object.keys(a.task_config).length}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"任务配置"})]})]})})]}),e.jsxs(we,{defaultValue:"providers",className:"space-y-4",children:[e.jsxs(ye,{className:"w-full sm:w-auto grid grid-cols-3 sm:flex",children:[e.jsxs($,{value:"providers",className:"gap-1 sm:gap-2",children:[e.jsx(H,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"提供商"}),e.jsx("span",{className:"sm:hidden",children:"提供商"}),e.jsxs("span",{className:"hidden sm:inline",children:["(",a.providers.length,")"]})]}),e.jsxs($,{value:"models",className:"gap-1 sm:gap-2",children:[e.jsx(K,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"模型"}),e.jsx("span",{className:"sm:hidden",children:"模型"}),e.jsxs("span",{className:"hidden sm:inline",children:["(",a.models.length,")"]})]}),e.jsxs($,{value:"tasks",className:"gap-1 sm:gap-2",children:[e.jsx(M,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"任务配置"}),e.jsx("span",{className:"sm:hidden",children:"任务"}),e.jsxs("span",{className:"hidden sm:inline",children:["(",Object.keys(a.task_config).length,")"]})]})]}),e.jsx(z,{value:"providers",children:e.jsxs(y,{children:[e.jsxs(G,{children:[e.jsx(Y,{children:"API 提供商"}),e.jsx(q,{children:"模板中包含的 API 提供商配置(不含 API Key"})]}),e.jsx(k,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ce,{"aria-label":"API 提供商配置列表",children:[e.jsx(re,{children:e.jsxs(O,{children:[e.jsx(f,{children:"名称"}),e.jsx(f,{children:"Base URL"}),e.jsx(f,{children:"类型"})]})}),e.jsx(ne,{children:a.providers.map(s=>e.jsxs(O,{children:[e.jsx(g,{className:"font-medium whitespace-nowrap",children:s.name}),e.jsx(g,{className:"text-muted-foreground font-mono text-sm max-w-[200px] truncate",children:s.base_url}),e.jsx(g,{children:e.jsx(u,{variant:"outline",children:s.client_type})})]},s.name))})]})})})]})}),e.jsx(z,{value:"models",children:e.jsxs(y,{children:[e.jsxs(G,{children:[e.jsx(Y,{children:"模型配置"}),e.jsx(q,{children:"模板中包含的模型配置"})]}),e.jsx(k,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ce,{"aria-label":"模型配置列表",children:[e.jsx(re,{children:e.jsxs(O,{children:[e.jsx(f,{children:"模型名称"}),e.jsx(f,{children:"标识符"}),e.jsx(f,{children:"提供商"}),e.jsx(f,{className:"text-right",children:"价格 (入/出)"})]})}),e.jsx(ne,{children:a.models.map(s=>e.jsxs(O,{children:[e.jsx(g,{className:"font-medium whitespace-nowrap",children:s.name}),e.jsx(g,{className:"text-muted-foreground font-mono text-sm max-w-[150px] truncate",children:s.model_identifier}),e.jsx(g,{className:"whitespace-nowrap",children:s.api_provider}),e.jsxs(g,{className:"text-right text-muted-foreground whitespace-nowrap",children:["¥",s.price_in," / ¥",s.price_out]})]},s.name))})]})})})]})}),e.jsx(z,{value:"tasks",children:e.jsxs(y,{children:[e.jsxs(G,{children:[e.jsx(Y,{children:"任务配置"}),e.jsx(q,{children:"模板中各任务类型的模型分配"})]}),e.jsx(k,{children:e.jsx(Ee,{type:"multiple",className:"w-full",children:Object.entries(a.task_config).map(([s,d])=>e.jsxs(Oe,{value:s,children:[e.jsx(He,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(We,{className:"w-4 h-4"}),ss[s]||s,e.jsxs(u,{variant:"secondary",className:"ml-2",children:[d.model_list.length," 个模型"]})]})}),e.jsx(Ke,{children:e.jsxs("div",{className:"space-y-2 pl-6",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"分配的模型:"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:d.model_list.map(S=>e.jsx(u,{variant:"outline",children:S},S))}),d.temperature!==void 0&&e.jsxs("div",{className:"text-sm",children:["Temperature: ",e.jsx("span",{className:"font-mono",children:d.temperature})]}),d.max_tokens!==void 0&&e.jsxs("div",{className:"text-sm",children:["Max Tokens: ",e.jsx("span",{className:"font-mono",children:d.max_tokens})]})]})})]},s))})})]})})]}),e.jsx(as,{open:I,onOpenChange:v,pack:a,step:L,setStep:R,conflicts:C,detectingConflicts:l,applying:N,options:U,setOptions:je,_providerMapping:Z,_setProviderMapping:ee,newProviderApiKeys:V,setNewProviderApiKeys:se,onApply:fe})]})})}):e.jsxs("div",{className:"text-center py-12",children:[e.jsx(J,{className:"w-16 h-16 mx-auto mb-4 opacity-50"}),e.jsx("h2",{className:"text-xl font-semibold",children:"模板不存在"}),e.jsx("p",{className:"text-muted-foreground mt-2",children:"该配置模板可能已被删除或尚未通过审核"}),e.jsxs(o,{className:"mt-4",onClick:()=>b({to:"/config/pack-market"}),children:[e.jsx(ie,{className:"w-4 h-4 mr-2"}),"返回市场"]})]})}function as({open:m,onOpenChange:b,pack:a,step:n,setStep:D,conflicts:t,detectingConflicts:h,applying:j,options:r,setOptions:p,_providerMapping:I,_setProviderMapping:v,newProviderApiKeys:L,setNewProviderApiKeys:R,onApply:C}){return e.jsx(ke,{open:m,onOpenChange:b,children:e.jsxs(_e,{className:"max-w-2xl",confirmOnEnter:!0,children:[e.jsxs(be,{children:[e.jsxs(Ce,{className:"flex items-center gap-2",children:[e.jsx(J,{className:"w-5 h-5"}),"应用配置模板"]}),e.jsxs(Se,{children:["步骤 ",n," / ",3,"",n===1&&"选择要应用的内容",n===2&&"配置提供商映射",n===3&&"确认并应用"]})]}),e.jsx(Ae,{children:h?e.jsxs("div",{className:"py-8 text-center",children:[e.jsx(xe,{className:"w-8 h-8 mx-auto animate-spin text-primary"}),e.jsx("p",{className:"mt-4 text-muted-foreground",children:"正在检测配置冲突..."})]}):e.jsxs(e.Fragment,{children:[n===1&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(X,{id:"apply_providers",checked:r.apply_providers,onCheckedChange:l=>p({...r,apply_providers:l})}),e.jsxs(_,{htmlFor:"apply_providers",className:"flex items-center gap-2",children:[e.jsx(H,{className:"w-4 h-4"}),"应用提供商配置 (",a.providers.length," 个)"]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(X,{id:"apply_models",checked:r.apply_models,onCheckedChange:l=>p({...r,apply_models:l})}),e.jsxs(_,{htmlFor:"apply_models",className:"flex items-center gap-2",children:[e.jsx(K,{className:"w-4 h-4"}),"应用模型配置 (",a.models.length," 个)"]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(X,{id:"apply_task_config",checked:r.apply_task_config,onCheckedChange:l=>p({...r,apply_task_config:l})}),e.jsxs(_,{htmlFor:"apply_task_config",className:"flex items-center gap-2",children:[e.jsx(M,{className:"w-4 h-4"}),"应用任务配置 (",Object.keys(a.task_config).length," 个)"]})]})]}),r.apply_task_config&&e.jsxs("div",{className:"pl-6 space-y-2 border-l-2 border-muted",children:[e.jsx(_,{className:"text-sm font-medium",children:"任务配置应用模式"}),e.jsxs(De,{value:r.task_mode,onValueChange:l=>p({...r,task_mode:l}),children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(le,{value:"append",id:"mode_append"}),e.jsx(_,{htmlFor:"mode_append",className:"font-normal",children:"追加模式 - 将模板中的模型添加到现有配置"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(le,{value:"replace",id:"mode_replace"}),e.jsx(_,{htmlFor:"mode_replace",className:"font-normal",children:"替换模式 - 用模板配置完全替换现有配置"})]})]})]})]}),n===2&&t&&e.jsxs("div",{className:"space-y-4",children:[r.apply_providers&&t.existing_providers.length>0&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs(A,{children:[e.jsx(me,{className:"h-4 w-4"}),e.jsx(E,{children:"发现已有的提供商"}),e.jsx(P,{children:"以下提供商的 URL 与您本地配置中的提供商匹配,将自动使用本地提供商:"})]}),e.jsx("div",{className:"space-y-2",children:t.existing_providers.map(({pack_provider:l,local_providers:x})=>e.jsxs("div",{className:"flex items-center gap-2 p-3 bg-muted rounded-lg",children:[e.jsx(T,{className:"w-4 h-4 text-green-500 flex-shrink-0"}),e.jsx("span",{className:"font-medium flex-shrink-0",children:l.name}),e.jsx(Ze,{className:"w-4 h-4 text-muted-foreground flex-shrink-0"}),x.length===1?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground",children:x[0].name}),e.jsx(u,{variant:"outline",className:"ml-auto",children:"URL 匹配"})]}):e.jsxs(e.Fragment,{children:[e.jsxs(Ie,{value:I[l.name]||x[0].name,onValueChange:N=>v({...I,[l.name]:N}),children:[e.jsx(Le,{className:"w-[200px]",children:e.jsx(Re,{})}),e.jsx(Fe,{children:x.map(N=>e.jsx(Be,{value:N.name,children:N.name},N.name))})]}),e.jsxs(u,{variant:"outline",className:"ml-auto",children:[x.length," 个匹配"]})]})]},l.name))})]}),r.apply_providers&&t.new_providers.length>0&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs(A,{variant:"destructive",children:[e.jsx(he,{className:"h-4 w-4"}),e.jsx(E,{children:"需要配置 API Key"}),e.jsx(P,{children:"以下提供商在您的本地配置中不存在,需要填写 API Key"})]}),e.jsx("div",{className:"space-y-4",children:t.new_providers.map(l=>e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(es,{className:"w-4 h-4 text-amber-500"}),e.jsx("span",{className:"font-medium",children:l.name}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",l.base_url,")"]})]}),e.jsx(Pe,{type:"password",placeholder:`输入 ${l.name} 的 API Key`,value:L[l.name]||"",onChange:x=>R({...L,[l.name]:x.target.value})})]},l.name))})]}),(!r.apply_providers||t.existing_providers.length===0&&t.new_providers.length===0)&&e.jsxs(A,{children:[e.jsx(T,{className:"h-4 w-4"}),e.jsx(E,{children:"无需配置"}),e.jsx(P,{children:"模板中没有提供商配置,或您选择不应用提供商。"})]})]}),n===3&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs(A,{children:[e.jsx(me,{className:"h-4 w-4"}),e.jsx(E,{children:"确认应用"}),e.jsx(P,{children:"请确认以下将要应用的内容:"})]}),e.jsxs("div",{className:"space-y-2",children:[r.apply_providers&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(T,{className:"w-4 h-4 text-green-500"}),e.jsx(H,{className:"w-4 h-4"}),e.jsxs("span",{children:["应用 ",a.providers.length," 个提供商配置"]})]}),r.apply_models&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(T,{className:"w-4 h-4 text-green-500"}),e.jsx(K,{className:"w-4 h-4"}),e.jsxs("span",{children:["应用 ",a.models.length," 个模型配置"]})]}),r.apply_task_config&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(T,{className:"w-4 h-4 text-green-500"}),e.jsx(M,{className:"w-4 h-4"}),e.jsxs("span",{children:[r.task_mode==="append"?"追加":"替换"," ",Object.keys(a.task_config).length," 个任务配置"]})]})]}),t&&t.new_providers.length>0&&e.jsxs(A,{variant:"destructive",children:[e.jsx(he,{className:"h-4 w-4"}),e.jsxs(P,{children:["将添加 ",t.new_providers.length," 个新提供商,请确保已填写正确的 API Key。"]})]})]})]})}),e.jsxs(Te,{className:"flex justify-between",children:[e.jsx("div",{children:n>1&&!h&&e.jsx(o,{variant:"outline",onClick:()=>D(n-1),disabled:j,children:"上一步"})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(o,{variant:"outline",onClick:()=>b(!1),disabled:j,children:"取消"}),n<3?e.jsx(o,{"data-dialog-action":"confirm",onClick:()=>D(n+1),disabled:h,children:"下一步"}):e.jsxs(o,{"data-dialog-action":"confirm",onClick:C,disabled:j,children:[j&&e.jsx(xe,{className:"w-4 h-4 mr-2 animate-spin"}),"应用模板"]})]})]})]})})}function ls(){return e.jsx("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:e.jsx(oe,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[e.jsx(c,{className:"h-9 w-24"}),e.jsxs("div",{className:"flex flex-col md:flex-row gap-6",children:[e.jsxs("div",{className:"flex-1 space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(c,{className:"w-10 h-10"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(c,{className:"h-8 w-2/3"}),e.jsx(c,{className:"h-4 w-full"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4",children:[e.jsx(c,{className:"h-4 w-24"}),e.jsx(c,{className:"h-4 w-32"}),e.jsx(c,{className:"h-4 w-28"}),e.jsx(c,{className:"h-4 w-20"})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(c,{className:"h-6 w-20"}),e.jsx(c,{className:"h-6 w-24"}),e.jsx(c,{className:"h-6 w-16"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 min-w-[160px]",children:[e.jsx(c,{className:"h-10 w-full"}),e.jsx(c,{className:"h-10 w-full"})]})]}),e.jsx(c,{className:"h-px w-full"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsx(c,{className:"h-24"}),e.jsx(c,{className:"h-24"}),e.jsx(c,{className:"h-24"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(c,{className:"h-10 w-32"}),e.jsx(c,{className:"h-10 w-32"}),e.jsx(c,{className:"h-10 w-32"})]}),e.jsx(c,{className:"h-96 w-full"})]})]})})})}export{us as default};