@standardagents/builder 0.17.0-next.a4b7340 → 0.17.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.
@@ -1 +1 @@
1
- import{A as h}from"./index.js";import{r as p,ad as f,A as k,b as m,e as l,f as y,d as C,J as e,m as g,z as b,u as v}from"./vue.js";import{I as x}from"./check.js";function w(t={}){const r=t.resetDelayMs??2e3,n=p(!1),o=p(!1),a=p(null);let s=null;const i=()=>{s&&(clearTimeout(s),s=null)},c=async d=>{n.value=!0,a.value=null,i();try{await navigator.clipboard.writeText(d),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null},r)}catch(u){o.value=!1,a.value=u instanceof Error?u.message:"Failed to copy"}finally{n.value=!1}};return f(i,!0),{copying:n,copied:o,error:a,copy:c,clearResetTimer:i}}const B={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function z(t,r){return l(),m("svg",B,[...r[0]||(r[0]=[y("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[y("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}),y("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"})],-1)])])}const T=k({name:"lucide-copy",render:z}),D=["disabled","title","aria-label"],$={key:3},E=C({__name:"CopyButton",props:{content:{},variant:{},size:{},disabled:{type:Boolean}},setup(t){const r=t,{copying:n,copied:o,error:a,copy:s}=w(),i=async()=>{await s(r.content)},c={xs:"p-1 text-xs",sm:"px-2 py-1 text-xs"},d={solid:"bg-black text-white dark:bg-white dark:text-black",ghost:"bg-white dark:bg-neutral-950 border border-neutral-300 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-900"};return(u,I)=>(l(),m("button",{onClick:i,disabled:e(n)||t.disabled,class:g([c[t.size||"sm"],d[t.variant||"solid"],"font-medium rounded hover:opacity-80 disabled:opacity-50 disabled:cursor-not-allowed transition-all"]),title:t.disabled?"No content to copy":e(a)?`Copy failed: ${e(a)}`:e(o)?"Copied!":"Copy to clipboard","aria-label":t.disabled?"No content to copy":e(a)?`Copy failed: ${e(a)}`:e(o)?"Copied to clipboard":"Copy to clipboard"},[e(n)?(l(),b(h,{key:0,size:"xs"})):t.variant==="ghost"&&!e(o)?(l(),b(e(T),{key:1,class:"h-3.5 w-3.5"})):t.variant==="ghost"&&e(o)?(l(),b(e(x),{key:2,class:"h-3.5 w-3.5"})):(l(),m("span",$,v(e(o)?"Copied!":"Copy"),1))],10,D))}});export{E as _,w as u};
1
+ import{A as m}from"./index.js";import{r as p,ad as f,d as C,b,e as n,J as e,m as k,z as y,u as h}from"./vue.js";import{I as v}from"./check.js";import{I as g}from"./copy.js";function x(a={}){const i=a.resetDelayMs??2e3,l=p(!1),t=p(!1),o=p(null);let s=null;const r=()=>{s&&(clearTimeout(s),s=null)},c=async d=>{l.value=!0,o.value=null,r();try{await navigator.clipboard.writeText(d),t.value=!0,s=setTimeout(()=>{t.value=!1,s=null},i)}catch(u){t.value=!1,o.value=u instanceof Error?u.message:"Failed to copy"}finally{l.value=!1}};return f(r,!0),{copying:l,copied:t,error:o,copy:c,clearResetTimer:r}}const w=["disabled","title","aria-label"],z={key:3},E=C({__name:"CopyButton",props:{content:{},variant:{},size:{},disabled:{type:Boolean}},setup(a){const i=a,{copying:l,copied:t,error:o,copy:s}=x(),r=async()=>{await s(i.content)},c={xs:"p-1 text-xs",sm:"px-2 py-1 text-xs"},d={solid:"bg-black text-white dark:bg-white dark:text-black",ghost:"bg-white dark:bg-neutral-950 border border-neutral-300 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-900"};return(u,T)=>(n(),b("button",{onClick:r,disabled:e(l)||a.disabled,class:k([c[a.size||"sm"],d[a.variant||"solid"],"font-medium rounded hover:opacity-80 disabled:opacity-50 disabled:cursor-not-allowed transition-all"]),title:a.disabled?"No content to copy":e(o)?`Copy failed: ${e(o)}`:e(t)?"Copied!":"Copy to clipboard","aria-label":a.disabled?"No content to copy":e(o)?`Copy failed: ${e(o)}`:e(t)?"Copied to clipboard":"Copy to clipboard"},[e(l)?(n(),y(m,{key:0,size:"xs"})):a.variant==="ghost"&&!e(t)?(n(),y(e(g),{key:1,class:"h-3.5 w-3.5"})):a.variant==="ghost"&&e(t)?(n(),y(e(v),{key:2,class:"h-3.5 w-3.5"})):(n(),b("span",z,h(e(t)?"Copied!":"Copy"),1))],10,w))}});export{E as _,x as u};
@@ -1 +1 @@
1
- import{A as q,b as r,e as n,f as l,d as oe,c as k,q as b,s as V,u as x,j as A,J as Q,F as C,l as D,m as I,r as K,O as Se,g as H,k as _e,z as E,B as G,K as se,x as le,y as re,az as $e}from"./vue.js";import{d as Ie,c as Ae,b as ze,I as Re,a as De}from"./chevron-right.js";import{aj as Me,_ as Ve,A as je}from"./index.js";import{_ as Be}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang.js";const Ke={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Le(a,o){return n(),r("svg",Ke,[...o[0]||(o[0]=[l("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[l("path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),l("path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z"})],-1)])])}const Fe=q({name:"lucide-edit",render:Le}),Pe={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Te(a,o){return n(),r("svg",Pe,[...o[0]||(o[0]=[l("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[l("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0"}),l("circle",{cx:"12",cy:"12",r:"3"})],-1)])])}const Oe=q({name:"lucide-eye",render:Te}),He={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ee(a,o){return n(),r("svg",He,[...o[0]||(o[0]=[l("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[l("path",{d:"M22 12h-6l-2 3h-4l-2-3H2"}),l("path",{d:"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11"})],-1)])])}const Qe=q({name:"lucide-inbox",render:Ee}),Ue={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ne(a,o){return n(),r("svg",Ue,[...o[0]||(o[0]=[l("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m11 17l-5-5l5-5m7 10l-5-5l5-5"},null,-1)])])}const Ge=q({name:"lucide-chevrons-left",render:Ne}),qe={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Je(a,o){return n(),r("svg",qe,[...o[0]||(o[0]=[l("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m6 17l5-5l-5-5m7 10l5-5l-5-5"},null,-1)])])}const We=q({name:"lucide-chevrons-right",render:Je}),Xe={key:0,class:"flex flex-wrap items-center justify-between gap-4 px-4 py-2.5 text-sm bg-neutral-50 dark:bg-neutral-800/50 border-t border-neutral-300 dark:border-neutral-700"},Ye={class:"text-neutral-500 dark:text-neutral-400 text-xs font-medium"},Ze={class:"text-neutral-700 dark:text-neutral-300"},et={class:"text-neutral-700 dark:text-neutral-300"},tt={class:"text-neutral-700 dark:text-neutral-300"},at={class:"flex items-center gap-0.5"},nt=["disabled"],st=["disabled"],lt={class:"flex items-center gap-0.5 mx-1"},rt={key:0,class:"px-2 text-neutral-400 dark:text-neutral-500 text-xs"},ot=["onClick"],it=["disabled"],ut=["disabled"],ct={class:"flex items-center gap-2"},dt=["value"],ht=["value"],gt=oe({__name:"DataTablePagination",props:{page:{},pageSize:{},totalItems:{},pageSizeOptions:{default:()=>[10,25,50,100]}},emits:["update:page","update:pageSize"],setup(a,{emit:o}){const t=a,u=o,d=k(()=>Math.ceil(t.totalItems/t.pageSize)),c=k(()=>t.totalItems===0?0:(t.page-1)*t.pageSize+1),g=k(()=>Math.min(t.page*t.pageSize,t.totalItems)),y=k(()=>t.page>1),_=k(()=>t.page<d.value),S=k(()=>{const p=[],f=d.value,v=t.page;if(f<=7)for(let $=1;$<=f;$++)p.push($);else{p.push(1),v>3&&p.push("...");const $=Math.max(2,v-1),B=Math.min(f-1,v+1);for(let P=$;P<=B;P++)p.includes(P)||p.push(P);v<f-2&&p.push("..."),p.includes(f)||p.push(f)}return p}),w=p=>{p>=1&&p<=d.value&&u("update:page",p)},R=()=>w(1),j=()=>w(t.page-1),J=()=>w(t.page+1),L=()=>w(d.value),F=p=>{const f=p.target;u("update:pageSize",parseInt(f.value,10)),u("update:page",1)};return(p,f)=>a.totalItems>0?(n(),r("div",Xe,[l("div",Ye,[f[0]||(f[0]=V(" Showing ",-1)),l("span",Ze,x(c.value),1),f[1]||(f[1]=V(" to ",-1)),l("span",et,x(g.value),1),f[2]||(f[2]=V(" of ",-1)),l("span",tt,x(a.totalItems),1)]),l("div",at,[l("button",{type:"button",onClick:R,disabled:!y.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"First page"},[A(Q(Ge),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,nt),l("button",{type:"button",onClick:j,disabled:!y.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"Previous page"},[A(Q(Me),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,st),l("div",lt,[(n(!0),r(C,null,D(S.value,(v,$)=>(n(),r(C,{key:$},[v==="..."?(n(),r("span",rt," ... ")):(n(),r("button",{key:1,type:"button",onClick:B=>w(v),class:I(["min-w-[1.75rem] px-2 py-1 rounded-md text-xs font-medium transition-all duration-150",v===a.page?"bg-accent-600 text-white shadow-sm":"text-neutral-600 dark:text-neutral-400 hover:bg-neutral-200 dark:hover:bg-neutral-700 hover:text-neutral-900 dark:hover:text-neutral-200"])},x(v),11,ot))],64))),128))]),l("button",{type:"button",onClick:J,disabled:!_.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"Next page"},[A(Q(Ie),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,it),l("button",{type:"button",onClick:L,disabled:!_.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"Last page"},[A(Q(We),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,ut)]),l("div",ct,[l("select",{value:a.pageSize,onChange:F,class:"px-2 py-1 rounded-md border border-neutral-200 dark:border-neutral-700 bg-white dark:bg-neutral-800 text-xs font-medium text-neutral-700 dark:text-neutral-300 focus:outline-none focus:ring-2 focus:ring-accent-500/30 focus:border-accent-500 dark:focus:border-accent-400 cursor-pointer transition-all"},[(n(!0),r(C,null,D(a.pageSizeOptions,v=>(n(),r("option",{key:v,value:v},x(v),9,ht))),128))],40,dt),f[3]||(f[3]=l("span",{class:"text-neutral-500 dark:text-neutral-400 text-xs"},"per page",-1))])])):b("",!0)}});function z(a,o){return a[o]}function ft(a,o){const t=z(a,o.key);return o.formatter?o.formatter(t,a):t??"-"}function vt(a,o){return a.filter(t=>t.filterable===!0).map(t=>{const u=new Map;for(const d of o){const c=z(d,t.key);if(c==null)continue;const g=t.formatter?t.formatter(c,d):String(c);u.has(g)||u.set(g,{value:g,icon:t.filterIcon?.(c,d)})}return{key:t.key,label:t.label,options:Array.from(u.entries()).sort((d,c)=>d[0].localeCompare(c[0])).map(([d,c])=>({value:d,label:d,icon:c.icon}))}})}function pt(a,o,t,u,d){let c=a;const g=Object.entries(t);if(g.length>0&&(c=c.filter(_=>g.every(([S,w])=>{const R=o.find(L=>L.key===S);if(!R)return!0;const j=z(_,S);return j==null?!1:(R.formatter?R.formatter(j,_):String(j))===w}))),!d||!u.trim())return c;const y=u.toLowerCase().trim();return c.filter(_=>o.some(S=>{if(S.searchable===!1)return!1;const w=z(_,S.key);return w==null?!1:(S.formatter?S.formatter(w,_):String(w)).toLowerCase().includes(y)}))}function bt(a,o,t){return o?[...a].sort((u,d)=>{const c=z(u,o),g=z(d,o);if(c==null&&g==null)return 0;if(c==null)return t==="asc"?1:-1;if(g==null)return t==="asc"?-1:1;let y=0;return typeof c=="string"&&typeof g=="string"?y=c.localeCompare(g,void 0,{sensitivity:"base"}):typeof c=="number"&&typeof g=="number"?y=c-g:y=String(c).localeCompare(String(g)),t==="asc"?y:-y}):a}function kt(a,o,t){const u=z(a,t);return o.some(d=>z(d,t)===u)}const xt={class:"w-full"},mt={key:0,class:"flex flex-wrap items-start justify-between gap-4 mb-5"},yt={class:"flex items-center gap-3"},wt={class:"flex items-center gap-2"},Ct={key:0,class:"text-xl font-bold tracking-tight"},St={key:1,class:"text-xs font-mono text-neutral-400 dark:text-neutral-500"},_t={key:0,class:"text-sm text-neutral-500 dark:text-neutral-400 mt-0.5"},$t={key:0,class:"flex items-center gap-2"},It={key:1,class:"mb-4"},At={class:"flex flex-wrap items-center gap-3"},zt={key:0,class:"flex-1 min-w-[200px] max-w-md"},Rt={key:2,class:"flex items-center gap-2 ml-auto"},Dt={class:"text-sm text-neutral-500 dark:text-neutral-400 font-medium"},Mt={class:"flex items-center gap-1.5"},Vt=["onClick"],jt={class:"rounded-xl border border-neutral-300 dark:border-neutral-700 overflow-hidden bg-white dark:bg-transparent"},Bt={class:"overflow-x-auto"},Kt={class:"w-full"},Lt={class:"bg-neutral-50 dark:bg-neutral-800/50 border-b border-neutral-300 dark:border-neutral-700"},Ft={key:0,class:"px-4 py-2.5 w-12"},Pt={class:"flex items-center justify-center"},Tt=["checked","indeterminate"],Ot=["onClick"],Ht={key:1,class:"px-4 py-2.5 text-right font-medium text-xs uppercase tracking-wide text-neutral-500 dark:text-neutral-400 w-24"},Et={class:"divide-y divide-neutral-200 dark:divide-neutral-800"},Qt={key:0},Ut=["colspan"],Nt={class:"flex flex-col items-center justify-center gap-3 text-neutral-400"},Gt={key:1},qt=["colspan"],Jt={class:"flex flex-col items-center justify-center gap-3 text-neutral-400"},Wt={class:"w-12 h-12 rounded-full bg-neutral-100 dark:bg-neutral-800 flex items-center justify-center"},Xt={class:"text-sm"},Yt=["onClick"],Zt={key:0,class:"absolute left-0 top-0 bottom-0 w-0.5 bg-accent-500"},ea={class:"flex items-center justify-center"},ta=["checked","onChange"],aa=["innerHTML"],na={class:"inline-flex gap-0.5"},sa=["disabled","onClick","title"],la=["disabled","onClick","title"],ca=oe({__name:"DataTable",props:{columns:{},data:{},actions:{},emptyMessage:{default:"No data available"},loading:{type:Boolean,default:!1},title:{},description:{},primaryAction:{},sortable:{type:Boolean,default:!1},sortKey:{},sortDirection:{default:"asc"},searchable:{type:Boolean,default:!1},searchQuery:{default:""},searchPlaceholder:{default:"Search..."},paginated:{type:Boolean,default:!1},page:{default:1},pageSize:{default:10},totalItems:{default:0},pageSizeOptions:{default:()=>[10,25,50,100]},selectable:{type:Boolean,default:!1},selectedRows:{default:()=>[]},rowKey:{default:"id"},bulkActions:{default:()=>[]}},emits:["update:sortKey","update:sortDirection","sort","update:searchQuery","search","update:page","update:pageSize","page-change","update:selectedRows","selection-change","row-click"],setup(a,{emit:o}){const t=a,u=o,d=K(!1),c=K(""),g=K(null),y=e=>{if(typeof e!="string")return e;switch(e){case"edit":return Fe;case"delete":return Ae;case"view":return Oe;default:return null}},_=(e,i)=>ft(e,i),S=e=>{switch(e){case"center":return"text-center";case"right":return"text-right";default:return"text-left"}},w=(e,i)=>i.cellClass?typeof i.cellClass=="function"?i.cellClass(e):i.cellClass:"",R=async(e,i)=>{if(e.confirm){const m=typeof e.confirmMessage=="function"?e.confirmMessage(i):e.confirmMessage||`Are you sure you want to ${e.label.toLowerCase()}?`;c.value=m,g.value=async()=>{await e.handler(i)},d.value=!0}else await e.handler(i)},j=async()=>{g.value&&(await g.value(),g.value=null),d.value=!1},J=()=>{g.value=null,d.value=!1},L=(e,i)=>e.visible===void 0?!0:typeof e.visible=="function"?e.visible(i):e.visible,F=(e,i)=>e.disabled===void 0?!1:typeof e.disabled=="function"?e.disabled(i):e.disabled,p=K(null),f=K("asc"),v=k(()=>t.sortKey??p.value),$=k(()=>t.sortKey!==void 0?t.sortDirection:f.value),B=e=>t.sortable&&e.sortable===!0,P=e=>{if(!B(e))return;const i=e.key;let m="asc";v.value===i&&(m=$.value==="asc"?"desc":"asc"),p.value=i,f.value=m,u("update:sortKey",i),u("update:sortDirection",m),u("sort",{key:i,direction:m})},ie=e=>v.value!==e.key?ze:$.value==="asc"?Re:De,T=k(()=>!v.value||!t.sortable?W.value:bt(W.value,v.value,$.value)),U=K(t.searchQuery),M=K({}),ue=$e(e=>{u("update:searchQuery",e),u("search",e)},300),ce=e=>{U.value=e,ue(e)},de=()=>{U.value="",u("update:searchQuery",""),u("search","")},ee=k(()=>vt(t.columns,t.data)),he=(e,i)=>{if(i===""){const{[e]:m,...s}=M.value;M.value=s}else M.value={...M.value,[e]:i}},W=k(()=>pt(t.data,t.columns,M.value,U.value,t.searchable)),X=k(()=>{let e=0;return U.value&&e++,e+=Object.keys(M.value).length,e}),te=()=>{de(),M.value={}},ge=e=>z(e,t.rowKey),N=e=>kt(e,t.selectedRows,t.rowKey),ae=k(()=>T.value.length>0&&t.selectedRows.length===T.value.length),fe=k(()=>t.selectedRows.length>0&&t.selectedRows.length<T.value.length),ve=e=>{const i=ge(e);let m;N(e)?m=t.selectedRows.filter(s=>z(s,t.rowKey)!==i):m=[...t.selectedRows,e],u("update:selectedRows",m),u("selection-change",m)},pe=()=>{const e=ae.value?[]:[...T.value];u("update:selectedRows",e),u("selection-change",e)},be=async e=>{if(e.confirm){const i=e.confirmMessage||`Are you sure you want to ${e.label.toLowerCase()} ${t.selectedRows.length} item(s)?`;c.value=i,g.value=async()=>{await e.handler(t.selectedRows)},d.value=!0}else await e.handler(t.selectedRows)},ke=e=>{u("update:page",e),u("page-change",e)},xe=e=>{u("update:pageSize",e)},me=k(()=>t.title||t.description||t.primaryAction),Y=k(()=>t.actions&&t.actions.length>0),ye=k(()=>t.actions?.filter(e=>e.variant!=="danger")||[]),we=k(()=>t.actions?.filter(e=>e.variant==="danger")||[]),ne=k(()=>{let e=t.columns.length;return t.selectable&&e++,Y.value&&e++,e});return(e,i)=>{const m=Se("FormKit");return n(),r("div",xt,[me.value?(n(),r("div",mt,[l("div",yt,[l("div",null,[l("div",wt,[a.title?(n(),r("h2",Ct,x(a.title),1)):b("",!0),!a.loading&&a.data.length>0?(n(),r("span",St,[X.value>0&&W.value.length!==a.data.length?(n(),r(C,{key:0},[V(" ("+x(W.value.length)+" of "+x(a.data.length)+") ",1)],64)):(n(),r(C,{key:1},[V(" ("+x(a.data.length)+") ",1)],64))])):b("",!0)]),a.description?(n(),r("p",_t,x(a.description),1)):b("",!0)])]),a.primaryAction?(n(),r("div",$t,[H(e.$slots,"header-actions"),A(Q(Ve),{onClick:a.primaryAction.handler},{default:_e(()=>[a.primaryAction.icon?(n(),E(G(a.primaryAction.icon),{key:0,class:"w-4 h-4 mr-2"})):b("",!0),V(" "+x(a.primaryAction.label),1)]),_:1},8,["onClick"])])):b("",!0)])):b("",!0),a.searchable||ee.value.length>0?(n(),r("div",It,[l("div",At,[a.searchable?(n(),r("div",zt,[A(m,{type:"searchInput",value:U.value,placeholder:a.searchPlaceholder,onInput:ce},null,8,["value","placeholder"])])):b("",!0),(n(!0),r(C,null,D(ee.value,s=>(n(),r("div",{key:s.key,class:"min-w-[220px]"},[A(m,{type:"selectSearch",value:M.value[s.key]||"",options:s.options,placeholder:`All ${s.label}s`,onInput:O=>he(s.key,O)},null,8,["value","options","placeholder","onInput"])]))),128)),X.value>0?(n(),r("button",{key:1,type:"button",onClick:te,class:"px-3 py-2 text-sm font-medium text-neutral-500 hover:text-neutral-700 dark:text-neutral-400 dark:hover:text-neutral-200 transition-colors"}," Clear filters ")):b("",!0),a.selectable&&a.selectedRows.length>0&&a.bulkActions.length>0?(n(),r("div",Rt,[l("span",Dt,x(a.selectedRows.length)+" selected ",1),l("div",Mt,[(n(!0),r(C,null,D(a.bulkActions,(s,O)=>(n(),r("button",{key:O,type:"button",onClick:h=>be(s),class:I(["inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-150",s.variant==="danger"?"bg-red-100 text-red-700 hover:bg-red-200 dark:bg-red-900/30 dark:text-red-400 dark:hover:bg-red-900/50":"bg-neutral-100 text-neutral-700 hover:bg-neutral-200 dark:bg-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-700"])},[(n(),E(G(s.icon),{class:"w-4 h-4"})),V(" "+x(s.label),1)],10,Vt))),128))])])):b("",!0)])])):b("",!0),H(e.$slots,"toolbar"),l("div",jt,[l("div",Bt,[l("table",Kt,[l("thead",Lt,[l("tr",null,[a.selectable?(n(),r("th",Ft,[l("div",Pt,[l("input",{type:"checkbox",checked:ae.value,indeterminate:fe.value,onChange:pe,class:"w-4 h-4 rounded border-neutral-300 dark:border-neutral-600 text-accent-600 focus:ring-accent-500 focus:ring-offset-0 cursor-pointer transition-colors"},null,40,Tt)])])):b("",!0),(n(!0),r(C,null,D(a.columns,s=>(n(),r("th",{key:s.key,class:I(["px-4 py-2.5 font-medium text-xs uppercase tracking-wide text-neutral-500 dark:text-neutral-400",S(s.align),s.width||"",B(s)?"cursor-pointer select-none group":""]),onClick:O=>P(s)},[l("div",{class:I(["inline-flex items-center gap-1",s.align==="right"?"flex-row-reverse":"",B(s)?"hover:text-neutral-700 dark:hover:text-neutral-200 transition-colors":""])},[l("span",null,x(s.label),1),B(s)?(n(),r("span",{key:0,class:I(["inline-flex items-center justify-center w-5 h-5 rounded transition-all duration-150",v.value===s.key?"bg-accent-100 dark:bg-accent-900/50":"group-hover:bg-neutral-200 dark:group-hover:bg-neutral-700"])},[(n(),E(G(ie(s)),{class:I(["w-3.5 h-3.5",v.value===s.key?"text-accent-600 dark:text-accent-400":"text-neutral-400 dark:text-neutral-500"])},null,8,["class"]))],2)):b("",!0)],2)],10,Ot))),128)),Y.value?(n(),r("th",Ht," Actions ")):b("",!0)])]),l("tbody",Et,[a.loading?(n(),r("tr",Qt,[l("td",{colspan:ne.value,class:"px-4 py-16"},[H(e.$slots,"loading",{},()=>[l("div",Nt,[A(je,{size:"md"}),i[3]||(i[3]=l("span",{class:"text-sm"},"Loading data...",-1))])])],8,Ut)])):T.value.length===0?(n(),r("tr",Gt,[l("td",{colspan:ne.value,class:"px-4 py-16"},[H(e.$slots,"empty",{},()=>[l("div",Jt,[l("div",Wt,[A(Q(Qe),{class:"w-6 h-6"})]),l("p",Xt,x(a.emptyMessage),1),X.value>0?(n(),r("button",{key:0,onClick:te,type:"button",class:"text-xs text-accent-600 dark:text-accent-400 hover:underline font-medium"}," Clear filters ")):b("",!0)])])],8,qt)])):(n(!0),r(C,{key:2},D(T.value,(s,O)=>(n(),r("tr",{key:s[a.rowKey]??O,class:I(["transition-all duration-150 cursor-pointer relative",N(s)?"bg-accent-50 dark:bg-accent-950/30":"hover:bg-neutral-50 dark:hover:bg-neutral-900/50"]),onClick:h=>u("row-click",s)},[N(s)?(n(),r("div",Zt)):b("",!0),a.selectable?(n(),r("td",{key:1,class:"px-4 py-3",onClick:i[0]||(i[0]=se(()=>{},["stop"]))},[l("div",ea,[l("input",{type:"checkbox",checked:N(s),onChange:h=>ve(s),class:"w-4 h-4 rounded border-neutral-300 dark:border-neutral-600 text-accent-600 focus:ring-accent-500 focus:ring-offset-0 cursor-pointer transition-colors"},null,40,ta)])])):b("",!0),(n(!0),r(C,null,D(a.columns,h=>(n(),r("td",{key:h.key,class:I(["px-4 py-3 text-sm",S(h.align),w(s,h),N(s)?"text-accent-900 dark:text-accent-100":"text-neutral-700 dark:text-neutral-300"])},[H(e.$slots,`cell-${h.key}`,{value:s[h.key],row:s,column:h},()=>[h.html?(n(),r("span",{key:0,innerHTML:_(s,h)},null,8,aa)):(n(),r(C,{key:1},[V(x(_(s,h)),1)],64))])],2))),128)),Y.value?(n(),r("td",{key:2,class:"px-4 py-3 text-right",onClick:i[1]||(i[1]=se(()=>{},["stop"]))},[l("div",na,[(n(!0),r(C,null,D(ye.value,(h,Z)=>le((n(),r("button",{key:`non-delete-${Z}`,disabled:F(h,s),onClick:Ce=>R(h,s),class:I(["p-1.5 rounded-md transition-all duration-150",F(h,s)?"opacity-30 cursor-not-allowed":"text-neutral-400 hover:text-neutral-700 hover:bg-neutral-100 dark:hover:text-neutral-200 dark:hover:bg-neutral-800"]),title:h.label},[(n(),E(G(y(h.icon)),{class:"w-4 h-4"}))],10,sa)),[[re,L(h,s)]])),128)),H(e.$slots,"extra-actions",{row:s}),(n(!0),r(C,null,D(we.value,(h,Z)=>le((n(),r("button",{key:`delete-${Z}`,disabled:F(h,s),onClick:Ce=>R(h,s),class:I(["p-1.5 rounded-md transition-all duration-150",F(h,s)?"opacity-30 cursor-not-allowed":"text-neutral-400 hover:text-red-600 hover:bg-red-50 dark:hover:text-red-400 dark:hover:bg-red-900/30"]),title:h.label},[(n(),E(G(y(h.icon)),{class:"w-4 h-4"}))],10,la)),[[re,L(h,s)]])),128))])])):b("",!0)],10,Yt))),128))])])]),a.paginated?(n(),E(gt,{key:0,page:a.page,"page-size":a.pageSize,"total-items":a.totalItems,"page-size-options":a.pageSizeOptions,"onUpdate:page":ke,"onUpdate:pageSize":xe},null,8,["page","page-size","total-items","page-size-options"])):b("",!0)]),A(Be,{modelValue:d.value,"onUpdate:modelValue":i[2]||(i[2]=s=>d.value=s),title:"Confirm Action",message:c.value,"confirm-text":"Confirm","cancel-text":"Cancel",onConfirm:j,onCancel:J},null,8,["modelValue","message"])])}}});export{Oe as I,ca as _};
1
+ import{A as q,b as r,e as n,f as l,d as oe,c as k,q as b,s as V,u as m,j as A,J as Q,F as C,l as D,m as I,r as K,O as Se,g as H,k as _e,z as E,B as G,K as se,x as le,y as re,az as $e}from"./vue.js";import{d as Ie,c as Ae,b as ze,I as Re,a as De}from"./chevron-right.js";import{am as Me,_ as Ve,A as Be}from"./index.js";import{_ as je}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang.js";const Ke={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Le(a,o){return n(),r("svg",Ke,[...o[0]||(o[0]=[l("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[l("path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),l("path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z"})],-1)])])}const Fe=q({name:"lucide-edit",render:Le}),Pe={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Te(a,o){return n(),r("svg",Pe,[...o[0]||(o[0]=[l("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[l("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0"}),l("circle",{cx:"12",cy:"12",r:"3"})],-1)])])}const Oe=q({name:"lucide-eye",render:Te}),He={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ee(a,o){return n(),r("svg",He,[...o[0]||(o[0]=[l("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[l("path",{d:"M22 12h-6l-2 3h-4l-2-3H2"}),l("path",{d:"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11"})],-1)])])}const Qe=q({name:"lucide-inbox",render:Ee}),Ue={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ne(a,o){return n(),r("svg",Ue,[...o[0]||(o[0]=[l("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m11 17l-5-5l5-5m7 10l-5-5l5-5"},null,-1)])])}const Ge=q({name:"lucide-chevrons-left",render:Ne}),qe={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Je(a,o){return n(),r("svg",qe,[...o[0]||(o[0]=[l("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m6 17l5-5l-5-5m7 10l5-5l-5-5"},null,-1)])])}const We=q({name:"lucide-chevrons-right",render:Je}),Xe={key:0,class:"flex flex-wrap items-center justify-between gap-4 px-4 py-2.5 text-sm bg-neutral-50 dark:bg-neutral-800/50 border-t border-neutral-300 dark:border-neutral-700"},Ye={class:"text-neutral-500 dark:text-neutral-400 text-xs font-medium"},Ze={class:"text-neutral-700 dark:text-neutral-300"},et={class:"text-neutral-700 dark:text-neutral-300"},tt={class:"text-neutral-700 dark:text-neutral-300"},at={class:"flex items-center gap-0.5"},nt=["disabled"],st=["disabled"],lt={class:"flex items-center gap-0.5 mx-1"},rt={key:0,class:"px-2 text-neutral-400 dark:text-neutral-500 text-xs"},ot=["onClick"],it=["disabled"],ut=["disabled"],ct={class:"flex items-center gap-2"},dt=["value"],ht=["value"],gt=oe({__name:"DataTablePagination",props:{page:{},pageSize:{},totalItems:{},pageSizeOptions:{default:()=>[10,25,50,100]}},emits:["update:page","update:pageSize"],setup(a,{emit:o}){const t=a,u=o,d=k(()=>Math.ceil(t.totalItems/t.pageSize)),c=k(()=>t.totalItems===0?0:(t.page-1)*t.pageSize+1),g=k(()=>Math.min(t.page*t.pageSize,t.totalItems)),y=k(()=>t.page>1),_=k(()=>t.page<d.value),S=k(()=>{const p=[],f=d.value,v=t.page;if(f<=7)for(let $=1;$<=f;$++)p.push($);else{p.push(1),v>3&&p.push("...");const $=Math.max(2,v-1),j=Math.min(f-1,v+1);for(let P=$;P<=j;P++)p.includes(P)||p.push(P);v<f-2&&p.push("..."),p.includes(f)||p.push(f)}return p}),w=p=>{p>=1&&p<=d.value&&u("update:page",p)},R=()=>w(1),B=()=>w(t.page-1),J=()=>w(t.page+1),L=()=>w(d.value),F=p=>{const f=p.target;u("update:pageSize",parseInt(f.value,10)),u("update:page",1)};return(p,f)=>a.totalItems>0?(n(),r("div",Xe,[l("div",Ye,[f[0]||(f[0]=V(" Showing ",-1)),l("span",Ze,m(c.value),1),f[1]||(f[1]=V(" to ",-1)),l("span",et,m(g.value),1),f[2]||(f[2]=V(" of ",-1)),l("span",tt,m(a.totalItems),1)]),l("div",at,[l("button",{type:"button",onClick:R,disabled:!y.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"First page"},[A(Q(Ge),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,nt),l("button",{type:"button",onClick:B,disabled:!y.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"Previous page"},[A(Q(Me),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,st),l("div",lt,[(n(!0),r(C,null,D(S.value,(v,$)=>(n(),r(C,{key:$},[v==="..."?(n(),r("span",rt," ... ")):(n(),r("button",{key:1,type:"button",onClick:j=>w(v),class:I(["min-w-[1.75rem] px-2 py-1 rounded-md text-xs font-medium transition-all duration-150",v===a.page?"bg-accent-600 text-white shadow-sm":"text-neutral-600 dark:text-neutral-400 hover:bg-neutral-200 dark:hover:bg-neutral-700 hover:text-neutral-900 dark:hover:text-neutral-200"])},m(v),11,ot))],64))),128))]),l("button",{type:"button",onClick:J,disabled:!_.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"Next page"},[A(Q(Ie),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,it),l("button",{type:"button",onClick:L,disabled:!_.value,class:"p-1.5 rounded-md transition-all duration-150 hover:bg-neutral-200 dark:hover:bg-neutral-700 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent",title:"Last page"},[A(Q(We),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,ut)]),l("div",ct,[l("select",{value:a.pageSize,onChange:F,class:"px-2 py-1 rounded-md border border-neutral-200 dark:border-neutral-700 bg-white dark:bg-neutral-800 text-xs font-medium text-neutral-700 dark:text-neutral-300 focus:outline-none focus:ring-2 focus:ring-accent-500/30 focus:border-accent-500 dark:focus:border-accent-400 cursor-pointer transition-all"},[(n(!0),r(C,null,D(a.pageSizeOptions,v=>(n(),r("option",{key:v,value:v},m(v),9,ht))),128))],40,dt),f[3]||(f[3]=l("span",{class:"text-neutral-500 dark:text-neutral-400 text-xs"},"per page",-1))])])):b("",!0)}});function z(a,o){return a[o]}function ft(a,o){const t=z(a,o.key);return o.formatter?o.formatter(t,a):t??"-"}function vt(a,o){return a.filter(t=>t.filterable===!0).map(t=>{const u=new Map;for(const d of o){const c=z(d,t.key);if(c==null)continue;const g=t.formatter?t.formatter(c,d):String(c);u.has(g)||u.set(g,{value:g,icon:t.filterIcon?.(c,d)})}return{key:t.key,label:t.label,options:Array.from(u.entries()).sort((d,c)=>d[0].localeCompare(c[0])).map(([d,c])=>({value:d,label:d,icon:c.icon}))}})}function pt(a,o,t,u,d){let c=a;const g=Object.entries(t);if(g.length>0&&(c=c.filter(_=>g.every(([S,w])=>{const R=o.find(L=>L.key===S);if(!R)return!0;const B=z(_,S);return B==null?!1:(R.formatter?R.formatter(B,_):String(B))===w}))),!d||!u.trim())return c;const y=u.toLowerCase().trim();return c.filter(_=>o.some(S=>{if(S.searchable===!1)return!1;const w=z(_,S.key);return w==null?!1:(S.formatter?S.formatter(w,_):String(w)).toLowerCase().includes(y)}))}function bt(a,o,t){return o?[...a].sort((u,d)=>{const c=z(u,o),g=z(d,o);if(c==null&&g==null)return 0;if(c==null)return t==="asc"?1:-1;if(g==null)return t==="asc"?-1:1;let y=0;return typeof c=="string"&&typeof g=="string"?y=c.localeCompare(g,void 0,{sensitivity:"base"}):typeof c=="number"&&typeof g=="number"?y=c-g:y=String(c).localeCompare(String(g)),t==="asc"?y:-y}):a}function kt(a,o,t){const u=z(a,t);return o.some(d=>z(d,t)===u)}const mt={class:"w-full"},xt={key:0,class:"flex flex-wrap items-start justify-between gap-4 mb-5"},yt={class:"flex items-center gap-3"},wt={class:"flex items-center gap-2"},Ct={key:0,class:"text-xl font-bold tracking-tight"},St={key:1,class:"text-xs font-mono text-neutral-400 dark:text-neutral-500"},_t={key:0,class:"text-sm text-neutral-500 dark:text-neutral-400 mt-0.5"},$t={key:0,class:"flex items-center gap-2"},It={key:1,class:"mb-4"},At={class:"flex flex-wrap items-center gap-3"},zt={key:0,class:"flex-1 min-w-[200px] max-w-md"},Rt={key:2,class:"flex items-center gap-2 ml-auto"},Dt={class:"text-sm text-neutral-500 dark:text-neutral-400 font-medium"},Mt={class:"flex items-center gap-1.5"},Vt=["onClick"],Bt={class:"rounded-xl border border-neutral-300 dark:border-neutral-700 overflow-hidden bg-white dark:bg-transparent"},jt={class:"overflow-x-auto"},Kt={class:"w-full"},Lt={class:"bg-neutral-50 dark:bg-neutral-800/50 border-b border-neutral-300 dark:border-neutral-700"},Ft={key:0,class:"px-4 py-2.5 w-12"},Pt={class:"flex items-center justify-center"},Tt=["checked","indeterminate"],Ot=["onClick"],Ht={key:1,class:"px-4 py-2.5 text-right font-medium text-xs uppercase tracking-wide text-neutral-500 dark:text-neutral-400 w-24"},Et={class:"divide-y divide-neutral-200 dark:divide-neutral-800"},Qt={key:0},Ut=["colspan"],Nt={class:"flex flex-col items-center justify-center gap-3 text-neutral-400"},Gt={key:1},qt=["colspan"],Jt={class:"flex flex-col items-center justify-center gap-3 text-neutral-400"},Wt={class:"w-12 h-12 rounded-full bg-neutral-100 dark:bg-neutral-800 flex items-center justify-center"},Xt={class:"text-sm"},Yt=["onClick"],Zt={key:0,class:"absolute left-0 top-0 bottom-0 w-0.5 bg-accent-500"},ea={class:"flex items-center justify-center"},ta=["checked","onChange"],aa=["innerHTML"],na={class:"inline-flex gap-0.5"},sa=["disabled","onClick","title"],la=["disabled","onClick","title"],ca=oe({__name:"DataTable",props:{columns:{},data:{},actions:{},emptyMessage:{default:"No data available"},loading:{type:Boolean,default:!1},title:{},description:{},primaryAction:{},sortable:{type:Boolean,default:!1},sortKey:{},sortDirection:{default:"asc"},searchable:{type:Boolean,default:!1},searchQuery:{default:""},searchPlaceholder:{default:"Search..."},paginated:{type:Boolean,default:!1},page:{default:1},pageSize:{default:10},totalItems:{default:0},pageSizeOptions:{default:()=>[10,25,50,100]},selectable:{type:Boolean,default:!1},selectedRows:{default:()=>[]},rowKey:{default:"id"},bulkActions:{default:()=>[]}},emits:["update:sortKey","update:sortDirection","sort","update:searchQuery","search","update:page","update:pageSize","page-change","update:selectedRows","selection-change","row-click"],setup(a,{emit:o}){const t=a,u=o,d=K(!1),c=K(""),g=K(null),y=e=>{if(typeof e!="string")return e;switch(e){case"edit":return Fe;case"delete":return Ae;case"view":return Oe;default:return null}},_=(e,i)=>ft(e,i),S=e=>{switch(e){case"center":return"text-center";case"right":return"text-right";default:return"text-left"}},w=(e,i)=>i.cellClass?typeof i.cellClass=="function"?i.cellClass(e):i.cellClass:"",R=async(e,i)=>{if(e.confirm){const x=typeof e.confirmMessage=="function"?e.confirmMessage(i):e.confirmMessage||`Are you sure you want to ${e.label.toLowerCase()}?`;c.value=x,g.value=async()=>{await e.handler(i)},d.value=!0}else await e.handler(i)},B=async()=>{g.value&&(await g.value(),g.value=null),d.value=!1},J=()=>{g.value=null,d.value=!1},L=(e,i)=>e.visible===void 0?!0:typeof e.visible=="function"?e.visible(i):e.visible,F=(e,i)=>e.disabled===void 0?!1:typeof e.disabled=="function"?e.disabled(i):e.disabled,p=K(null),f=K("asc"),v=k(()=>t.sortKey??p.value),$=k(()=>t.sortKey!==void 0?t.sortDirection:f.value),j=e=>t.sortable&&e.sortable===!0,P=e=>{if(!j(e))return;const i=e.key;let x="asc";v.value===i&&(x=$.value==="asc"?"desc":"asc"),p.value=i,f.value=x,u("update:sortKey",i),u("update:sortDirection",x),u("sort",{key:i,direction:x})},ie=e=>v.value!==e.key?ze:$.value==="asc"?Re:De,T=k(()=>!v.value||!t.sortable?W.value:bt(W.value,v.value,$.value)),U=K(t.searchQuery),M=K({}),ue=$e(e=>{u("update:searchQuery",e),u("search",e)},300),ce=e=>{U.value=e,ue(e)},de=()=>{U.value="",u("update:searchQuery",""),u("search","")},ee=k(()=>vt(t.columns,t.data)),he=(e,i)=>{if(i===""){const{[e]:x,...s}=M.value;M.value=s}else M.value={...M.value,[e]:i}},W=k(()=>pt(t.data,t.columns,M.value,U.value,t.searchable)),X=k(()=>{let e=0;return U.value&&e++,e+=Object.keys(M.value).length,e}),te=()=>{de(),M.value={}},ge=e=>z(e,t.rowKey),N=e=>kt(e,t.selectedRows,t.rowKey),ae=k(()=>T.value.length>0&&t.selectedRows.length===T.value.length),fe=k(()=>t.selectedRows.length>0&&t.selectedRows.length<T.value.length),ve=e=>{const i=ge(e);let x;N(e)?x=t.selectedRows.filter(s=>z(s,t.rowKey)!==i):x=[...t.selectedRows,e],u("update:selectedRows",x),u("selection-change",x)},pe=()=>{const e=ae.value?[]:[...T.value];u("update:selectedRows",e),u("selection-change",e)},be=async e=>{if(e.confirm){const i=e.confirmMessage||`Are you sure you want to ${e.label.toLowerCase()} ${t.selectedRows.length} item(s)?`;c.value=i,g.value=async()=>{await e.handler(t.selectedRows)},d.value=!0}else await e.handler(t.selectedRows)},ke=e=>{u("update:page",e),u("page-change",e)},me=e=>{u("update:pageSize",e)},xe=k(()=>t.title||t.description||t.primaryAction),Y=k(()=>t.actions&&t.actions.length>0),ye=k(()=>t.actions?.filter(e=>e.variant!=="danger")||[]),we=k(()=>t.actions?.filter(e=>e.variant==="danger")||[]),ne=k(()=>{let e=t.columns.length;return t.selectable&&e++,Y.value&&e++,e});return(e,i)=>{const x=Se("FormKit");return n(),r("div",mt,[xe.value?(n(),r("div",xt,[l("div",yt,[l("div",null,[l("div",wt,[a.title?(n(),r("h2",Ct,m(a.title),1)):b("",!0),!a.loading&&a.data.length>0?(n(),r("span",St,[X.value>0&&W.value.length!==a.data.length?(n(),r(C,{key:0},[V(" ("+m(W.value.length)+" of "+m(a.data.length)+") ",1)],64)):(n(),r(C,{key:1},[V(" ("+m(a.data.length)+") ",1)],64))])):b("",!0)]),a.description?(n(),r("p",_t,m(a.description),1)):b("",!0)])]),a.primaryAction?(n(),r("div",$t,[H(e.$slots,"header-actions"),A(Q(Ve),{onClick:a.primaryAction.handler},{default:_e(()=>[a.primaryAction.icon?(n(),E(G(a.primaryAction.icon),{key:0,class:"w-4 h-4 mr-2"})):b("",!0),V(" "+m(a.primaryAction.label),1)]),_:1},8,["onClick"])])):b("",!0)])):b("",!0),a.searchable||ee.value.length>0?(n(),r("div",It,[l("div",At,[a.searchable?(n(),r("div",zt,[A(x,{type:"searchInput",value:U.value,placeholder:a.searchPlaceholder,onInput:ce},null,8,["value","placeholder"])])):b("",!0),(n(!0),r(C,null,D(ee.value,s=>(n(),r("div",{key:s.key,class:"min-w-[220px]"},[A(x,{type:"selectSearch",value:M.value[s.key]||"",options:s.options,placeholder:`All ${s.label}s`,onInput:O=>he(s.key,O)},null,8,["value","options","placeholder","onInput"])]))),128)),X.value>0?(n(),r("button",{key:1,type:"button",onClick:te,class:"px-3 py-2 text-sm font-medium text-neutral-500 hover:text-neutral-700 dark:text-neutral-400 dark:hover:text-neutral-200 transition-colors"}," Clear filters ")):b("",!0),a.selectable&&a.selectedRows.length>0&&a.bulkActions.length>0?(n(),r("div",Rt,[l("span",Dt,m(a.selectedRows.length)+" selected ",1),l("div",Mt,[(n(!0),r(C,null,D(a.bulkActions,(s,O)=>(n(),r("button",{key:O,type:"button",onClick:h=>be(s),class:I(["inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-150",s.variant==="danger"?"bg-red-100 text-red-700 hover:bg-red-200 dark:bg-red-900/30 dark:text-red-400 dark:hover:bg-red-900/50":"bg-neutral-100 text-neutral-700 hover:bg-neutral-200 dark:bg-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-700"])},[(n(),E(G(s.icon),{class:"w-4 h-4"})),V(" "+m(s.label),1)],10,Vt))),128))])])):b("",!0)])])):b("",!0),H(e.$slots,"toolbar"),l("div",Bt,[l("div",jt,[l("table",Kt,[l("thead",Lt,[l("tr",null,[a.selectable?(n(),r("th",Ft,[l("div",Pt,[l("input",{type:"checkbox",checked:ae.value,indeterminate:fe.value,onChange:pe,class:"w-4 h-4 rounded border-neutral-300 dark:border-neutral-600 text-accent-600 focus:ring-accent-500 focus:ring-offset-0 cursor-pointer transition-colors"},null,40,Tt)])])):b("",!0),(n(!0),r(C,null,D(a.columns,s=>(n(),r("th",{key:s.key,class:I(["px-4 py-2.5 font-medium text-xs uppercase tracking-wide text-neutral-500 dark:text-neutral-400",S(s.align),s.width||"",j(s)?"cursor-pointer select-none group":""]),onClick:O=>P(s)},[l("div",{class:I(["inline-flex items-center gap-1",s.align==="right"?"flex-row-reverse":"",j(s)?"hover:text-neutral-700 dark:hover:text-neutral-200 transition-colors":""])},[l("span",null,m(s.label),1),j(s)?(n(),r("span",{key:0,class:I(["inline-flex items-center justify-center w-5 h-5 rounded transition-all duration-150",v.value===s.key?"bg-accent-100 dark:bg-accent-900/50":"group-hover:bg-neutral-200 dark:group-hover:bg-neutral-700"])},[(n(),E(G(ie(s)),{class:I(["w-3.5 h-3.5",v.value===s.key?"text-accent-600 dark:text-accent-400":"text-neutral-400 dark:text-neutral-500"])},null,8,["class"]))],2)):b("",!0)],2)],10,Ot))),128)),Y.value?(n(),r("th",Ht," Actions ")):b("",!0)])]),l("tbody",Et,[a.loading?(n(),r("tr",Qt,[l("td",{colspan:ne.value,class:"px-4 py-16"},[H(e.$slots,"loading",{},()=>[l("div",Nt,[A(Be,{size:"md"}),i[3]||(i[3]=l("span",{class:"text-sm"},"Loading data...",-1))])])],8,Ut)])):T.value.length===0?(n(),r("tr",Gt,[l("td",{colspan:ne.value,class:"px-4 py-16"},[H(e.$slots,"empty",{},()=>[l("div",Jt,[l("div",Wt,[A(Q(Qe),{class:"w-6 h-6"})]),l("p",Xt,m(a.emptyMessage),1),X.value>0?(n(),r("button",{key:0,onClick:te,type:"button",class:"text-xs text-accent-600 dark:text-accent-400 hover:underline font-medium"}," Clear filters ")):b("",!0)])])],8,qt)])):(n(!0),r(C,{key:2},D(T.value,(s,O)=>(n(),r("tr",{key:s[a.rowKey]??O,class:I(["transition-all duration-150 cursor-pointer relative",N(s)?"bg-accent-50 dark:bg-accent-950/30":"hover:bg-neutral-50 dark:hover:bg-neutral-900/50"]),onClick:h=>u("row-click",s)},[N(s)?(n(),r("div",Zt)):b("",!0),a.selectable?(n(),r("td",{key:1,class:"px-4 py-3",onClick:i[0]||(i[0]=se(()=>{},["stop"]))},[l("div",ea,[l("input",{type:"checkbox",checked:N(s),onChange:h=>ve(s),class:"w-4 h-4 rounded border-neutral-300 dark:border-neutral-600 text-accent-600 focus:ring-accent-500 focus:ring-offset-0 cursor-pointer transition-colors"},null,40,ta)])])):b("",!0),(n(!0),r(C,null,D(a.columns,h=>(n(),r("td",{key:h.key,class:I(["px-4 py-3 text-sm",S(h.align),w(s,h),N(s)?"text-accent-900 dark:text-accent-100":"text-neutral-700 dark:text-neutral-300"])},[H(e.$slots,`cell-${h.key}`,{value:s[h.key],row:s,column:h},()=>[h.html?(n(),r("span",{key:0,innerHTML:_(s,h)},null,8,aa)):(n(),r(C,{key:1},[V(m(_(s,h)),1)],64))])],2))),128)),Y.value?(n(),r("td",{key:2,class:"px-4 py-3 text-right",onClick:i[1]||(i[1]=se(()=>{},["stop"]))},[l("div",na,[(n(!0),r(C,null,D(ye.value,(h,Z)=>le((n(),r("button",{key:`non-delete-${Z}`,disabled:F(h,s),onClick:Ce=>R(h,s),class:I(["p-1.5 rounded-md transition-all duration-150",F(h,s)?"opacity-30 cursor-not-allowed":"text-neutral-400 hover:text-neutral-700 hover:bg-neutral-100 dark:hover:text-neutral-200 dark:hover:bg-neutral-800"]),title:h.label},[(n(),E(G(y(h.icon)),{class:"w-4 h-4"}))],10,sa)),[[re,L(h,s)]])),128)),H(e.$slots,"extra-actions",{row:s}),(n(!0),r(C,null,D(we.value,(h,Z)=>le((n(),r("button",{key:`delete-${Z}`,disabled:F(h,s),onClick:Ce=>R(h,s),class:I(["p-1.5 rounded-md transition-all duration-150",F(h,s)?"opacity-30 cursor-not-allowed":"text-neutral-400 hover:text-red-600 hover:bg-red-50 dark:hover:text-red-400 dark:hover:bg-red-900/30"]),title:h.label},[(n(),E(G(y(h.icon)),{class:"w-4 h-4"}))],10,la)),[[re,L(h,s)]])),128))])])):b("",!0)],10,Yt))),128))])])]),a.paginated?(n(),E(gt,{key:0,page:a.page,"page-size":a.pageSize,"total-items":a.totalItems,"page-size-options":a.pageSizeOptions,"onUpdate:page":ke,"onUpdate:pageSize":me},null,8,["page","page-size","total-items","page-size-options"])):b("",!0)]),A(je,{modelValue:d.value,"onUpdate:modelValue":i[2]||(i[2]=s=>d.value=s),title:"Confirm Action",message:c.value,"confirm-text":"Confirm","cancel-text":"Cancel",onConfirm:B,onCancel:J},null,8,["modelValue","message"])])}}});export{Oe as I,ca as _};
@@ -0,0 +1 @@
1
+ import{d as V,b as i,e as s,z as k,q as g,f as t,g as Z,B as ee,J as a,bb as te,u,A as O,c as j,k as $,s as f,j as M,r as b,w as L,F as S,l as D,Y as ae,X as se,o as ne,a3 as re,x as P,ay as le,bc as oe}from"./vue.js";import{aj as ie,A as q,B as G,_ as U,ak as N,k as ue,f as de,al as ce}from"./index.js";import{I as J,_ as R}from"./package.js";import{t as me}from"./timeAgo.js";import{I as fe}from"./copy.js";import{I as pe}from"./check.js";import{e as K,p as Q}from"./vendor.js";import"./formkit.js";import"./syntax.js";import"./monaco.js";const xe={class:"px-4 py-6 text-center text-sm text-neutral-500 dark:text-neutral-400"},ke=V({__name:"UiEmptyState",props:{message:{},icon:{},showIcon:{type:Boolean,default:!1}},setup(e){return(r,c)=>(s(),i("div",xe,[e.icon||e.showIcon?(s(),k(ee(e.icon||a(te)),{key:0,class:"w-8 h-8 mx-auto mb-2 opacity-50"})):g("",!0),t("p",null,u(e.message),1),Z(r.$slots,"default")]))}}),ve={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ge(e,r){return s(),i("svg",ve,[...r[0]||(r[0]=[t("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[t("path",{d:"M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),t("path",{d:"m7 10l5 5l5-5"})],-1)])])}const W=O({name:"lucide-download",render:ge});function X(e){const r=e.indexOf("/");return r===-1?e:e.slice(r+1)}function Y(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function he(e){return me(e*1e3)}function be(e){return e==null?"—":e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${(e/1024).toFixed(1)} kB`:`${e} B`}function F(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}const ye={class:"flex items-start gap-3"},_e={class:"flex h-10 w-10 flex-shrink-0 items-center justify-center overflow-hidden rounded-lg border border-neutral-200 bg-neutral-50 dark:border-neutral-700 dark:bg-neutral-800"},we=["src"],$e={class:"min-w-0 flex-1"},Me={class:"truncate font-semibold text-neutral-900 group-hover:text-accent-600 dark:text-neutral-100 dark:group-hover:text-accent-400"},Se={class:"truncate text-xs text-neutral-400 dark:text-neutral-500"},je={class:"line-clamp-2 min-h-[2.5rem] text-sm text-neutral-600 dark:text-neutral-400"},Ie={class:"mt-auto flex items-center gap-3 text-xs text-neutral-500 dark:text-neutral-400"},Ae={class:"inline-flex items-center gap-1"},Ce={key:0,class:"ml-auto font-mono text-[11px] text-neutral-400"},Te=V({__name:"MarketplaceCard",props:{pkg:{}},emits:["select"],setup(e){const r=e,c=j(()=>X(r.pkg.name)),p=j(()=>Y(r.pkg.downloads)),l=j(()=>he(r.pkg.updatedAt));return(h,x)=>(s(),i("button",{type:"button",class:"group flex flex-col gap-3 rounded-lg border border-neutral-200 bg-white p-4 text-left transition-all hover:border-accent-400 hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent-500 dark:border-neutral-800 dark:bg-neutral-900 dark:hover:border-accent-500",onClick:x[0]||(x[0]=m=>h.$emit("select",e.pkg.name))},[t("div",ye,[t("span",_e,[e.pkg.iconUrl?(s(),i("img",{key:0,src:e.pkg.iconUrl,alt:"",class:"h-full w-full object-cover",loading:"lazy"},null,8,we)):(s(),k(a(J),{key:1,class:"h-5 w-5 text-neutral-400"}))]),t("div",$e,[t("p",Me,u(c.value),1),t("p",Se,u(e.pkg.name),1)]),e.pkg.latestVersion?(s(),k(a(R),{key:0,variant:"secondary"},{default:$(()=>[f("v"+u(e.pkg.latestVersion),1)]),_:1})):g("",!0)]),t("p",je,u(e.pkg.description||"No description provided."),1),t("div",Ie,[t("span",Ae,[M(a(W),{class:"h-3.5 w-3.5"}),f(" "+u(p.value),1)]),t("span",null,u(l.value),1),e.pkg.license?(s(),i("span",Ce,u(e.pkg.license),1)):g("",!0)])]))}}),Be={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Re(e,r){return s(),i("svg",Be,[...r[0]||(r[0]=[t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m12 19l-7-7l7-7m7 7H5"},null,-1)])])}const De=O({name:"lucide-arrow-left",render:Re});async function z(e){const r=await fetch(`${ie()}${e}`);if(!r.ok)throw new Error(`Registry request failed (${r.status})`);return await r.json()}function H(e){const r=new URLSearchParams;e.q?.trim()&&r.set("q",e.q.trim()),e.sort&&r.set("sort",e.sort),e.limit!==void 0&&r.set("limit",String(e.limit)),e.offset&&r.set("offset",String(e.offset));const c=r.toString();return`/api/v1/packages${c?`?${c}`:""}`}const Ve=24;function Ee(){const e=b([]),r=b(0),c=b(!1),p=b(!1),l=b(null),h=b(!1);let x={},m=0;async function I(_){const v=++m;x={..._,offset:0,limit:Ve},c.value=!0,l.value=null;try{const d=await z(H(x));if(v!==m)return;e.value=d.objects,r.value=d.total,h.value=d.objects.length+(x.offset??0)<d.total}catch(d){if(v!==m)return;l.value=d instanceof Error?d.message:"The marketplace could not be loaded.",e.value=[],r.value=0,h.value=!1}finally{v===m&&(c.value=!1)}}async function A(){if(p.value||c.value||!h.value)return;const _=++m,v=e.value.length;p.value=!0;try{const d=await z(H({...x,offset:v}));if(_!==m)return;e.value=[...e.value,...d.objects],r.value=d.total,h.value=e.value.length<d.total}catch(d){if(_!==m)return;l.value=d instanceof Error?d.message:"More packages could not be loaded."}finally{_===m&&(p.value=!1)}}return{packages:e,total:r,loading:c,loadingMore:p,error:l,search:I,loadMore:A,hasMore:h}}function Le(){const e=b(null),r=b(!1),c=b(null);let p=0;async function l(h){const x=++p;r.value=!0,c.value=null,e.value=null;try{const m=h.split("/").map(A=>encodeURIComponent(A)).join("/"),I=await z(`/api/v1/packages/${m}`);if(x!==p)return;e.value=I}catch(m){if(x!==p)return;c.value=m instanceof Error?m.message:"Package could not be loaded."}finally{x===p&&(r.value=!1)}}return{detail:e,loading:r,error:c,load:l}}K.setOptions({gfm:!0,breaks:!0});Q.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&(e.setAttribute("target","_blank"),e.setAttribute("rel","noopener noreferrer"))});function Ue(e){const r=K.parse(e,{async:!1});return Q.sanitize(r,{USE_PROFILES:{html:!0},FORBID_TAGS:["style","form","input","button"]})}const ze={key:0,class:"flex items-center gap-2 py-12 text-neutral-500"},Pe={class:"flex items-start gap-4"},Ne={class:"flex h-16 w-16 flex-shrink-0 items-center justify-center overflow-hidden rounded-xl border border-neutral-200 bg-neutral-50 dark:border-neutral-700 dark:bg-neutral-800"},Fe=["src"],He={class:"min-w-0 flex-1"},Oe={class:"flex flex-wrap items-center gap-2"},qe={class:"text-xl font-semibold text-neutral-900 dark:text-neutral-100"},Ge={class:"mt-0.5 font-mono text-xs text-neutral-400 dark:text-neutral-500"},Je={key:0,class:"mt-2 max-w-2xl text-sm text-neutral-600 dark:text-neutral-400"},Ke={class:"mt-6 grid gap-8 lg:grid-cols-[1fr_280px]"},Qe={class:"min-w-0"},We=["innerHTML"],Xe={key:1,class:"py-8 text-sm text-neutral-400"},Ye={class:"space-y-6"},Ze={class:"flex items-center gap-2 rounded-lg border border-neutral-200 bg-neutral-50 px-3 py-2 dark:border-neutral-700 dark:bg-neutral-900"},et={class:"min-w-0 flex-1 truncate font-mono text-xs text-neutral-800 dark:text-neutral-200"},tt={class:"space-y-3 text-sm"},at={class:"flex items-center justify-between gap-2"},st={class:"inline-flex items-center gap-1 font-medium text-neutral-800 dark:text-neutral-200"},nt={key:0,class:"flex items-center justify-between gap-2"},rt={class:"font-medium text-neutral-800 dark:text-neutral-200"},lt={class:"flex items-center justify-between gap-2"},ot={class:"text-neutral-800 dark:text-neutral-200"},it={key:1,class:"flex items-center justify-between gap-2"},ut=["href"],dt={key:2,class:"flex items-center justify-between gap-2"},ct=["href"],mt={key:0},ft={class:"flex flex-wrap gap-1.5"},pt={class:"mb-2 text-xs font-semibold uppercase tracking-wide text-neutral-400"},xt={class:"space-y-1.5"},kt={class:"font-mono text-neutral-800 dark:text-neutral-200"},vt=["title"],gt=V({__name:"MarketplaceDetail",props:{name:{}},emits:["back"],setup(e,{emit:r}){const c=e,p=r,{detail:l,loading:h,error:x,load:m}=Le();L(()=>c.name,y=>{y&&m(y)},{immediate:!0});const I=j(()=>l.value?.distTags.latest??l.value?.versions[0]?.version??null),A=j(()=>`npm install ${c.name}`),_=j(()=>l.value?.readme?Ue(l.value.readme):null),v=j(()=>{const y=l.value?.repository,n=typeof y=="string"?y:y?.url;if(!n)return null;const o=n.replace(/^git\+/,"").replace(/\.git$/,"");return o.startsWith("http")?o:null}),d=b(!1);let B=null;async function T(){try{await navigator.clipboard.writeText(A.value),d.value=!0,B&&clearTimeout(B),B=setTimeout(()=>d.value=!1,1500)}catch{}}const C=b(!1),E=j(()=>{const y=l.value?.versions??[];return C.value?y:y.slice(0,8)});return(y,n)=>(s(),i("div",null,[t("button",{type:"button",class:"mb-4 inline-flex items-center gap-1.5 text-sm text-neutral-500 transition-colors hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100",onClick:n[0]||(n[0]=o=>p("back"))},[M(a(De),{class:"h-4 w-4"}),n[2]||(n[2]=f(" Marketplace ",-1))]),a(h)?(s(),i("div",ze,[M(q,{size:"sm"}),n[3]||(n[3]=t("span",{class:"text-sm"},"Loading package…",-1))])):a(x)?(s(),k(a(G),{key:1,variant:"error"},{default:$(()=>[f(u(a(x)),1)]),_:1})):a(l)?(s(),i(S,{key:2},[t("div",Pe,[t("span",Ne,[a(l).iconUrl?(s(),i("img",{key:0,src:a(l).iconUrl,alt:"",class:"h-full w-full object-cover"},null,8,Fe)):(s(),k(a(J),{key:1,class:"h-7 w-7 text-neutral-400"}))]),t("div",He,[t("div",Oe,[t("h1",qe,u(a(X)(a(l).name)),1),I.value?(s(),k(a(R),{key:0,variant:"secondary"},{default:$(()=>[f("v"+u(I.value),1)]),_:1})):g("",!0),a(l).license?(s(),k(a(R),{key:1,variant:"default"},{default:$(()=>[f(u(a(l).license),1)]),_:1})):g("",!0)]),t("p",Ge,u(a(l).name),1),a(l).description?(s(),i("p",Je,u(a(l).description),1)):g("",!0)])]),t("div",Ke,[t("div",Qe,[_.value?(s(),i("div",{key:0,class:"marketplace-readme text-sm text-neutral-700 dark:text-neutral-300",innerHTML:_.value},null,8,We)):(s(),i("p",Xe,"This package has no README."))]),t("aside",Ye,[t("div",null,[n[4]||(n[4]=t("h2",{class:"mb-2 text-xs font-semibold uppercase tracking-wide text-neutral-400"},"Install",-1)),t("div",Ze,[t("code",et,u(A.value),1),M(a(U),{variant:"ghost",size:"sm","aria-label":d.value?"Copied":"Copy install command",onClick:T},{default:$(()=>[d.value?(s(),k(a(pe),{key:0,class:"h-4 w-4 text-green-600 dark:text-green-400"})):(s(),k(a(fe),{key:1,class:"h-4 w-4"}))]),_:1},8,["aria-label"])]),n[5]||(n[5]=t("p",{class:"mt-2 text-xs leading-relaxed text-neutral-400 dark:text-neutral-500"},[f(" Projects scaffolded by Standard Agents resolve the "),t("code",{class:"font-mono"},"@agents"),f(" scope automatically via their "),t("code",{class:"font-mono"},".npmrc"),f(". ")],-1))]),t("dl",tt,[t("div",at,[n[6]||(n[6]=t("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Downloads",-1)),t("dd",st,[M(a(W),{class:"h-3.5 w-3.5"}),f(" "+u(a(Y)(a(l).downloads)),1)])]),a(l).publisher?(s(),i("div",nt,[n[7]||(n[7]=t("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Publisher",-1)),t("dd",rt,u(a(l).publisher),1)])):g("",!0),t("div",lt,[n[8]||(n[8]=t("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Published",-1)),t("dd",ot,u(a(F)(a(l).createdAt)),1)]),v.value?(s(),i("div",it,[n[10]||(n[10]=t("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Repository",-1)),t("dd",null,[t("a",{href:v.value,target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 text-accent-600 hover:underline dark:text-accent-400"},[n[9]||(n[9]=f(" Source ",-1)),M(a(N),{class:"h-3 w-3"})],8,ut)])])):g("",!0),a(l).homepage?(s(),i("div",dt,[n[12]||(n[12]=t("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Homepage",-1)),t("dd",null,[t("a",{href:a(l).homepage,target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 text-accent-600 hover:underline dark:text-accent-400"},[n[11]||(n[11]=f(" Visit ",-1)),M(a(N),{class:"h-3 w-3"})],8,ct)])])):g("",!0)]),a(l).keywords.length?(s(),i("div",mt,[n[13]||(n[13]=t("h2",{class:"mb-2 text-xs font-semibold uppercase tracking-wide text-neutral-400"},"Keywords",-1)),t("div",ft,[(s(!0),i(S,null,D(a(l).keywords,o=>(s(),k(a(R),{key:o,variant:"default",size:"sm"},{default:$(()=>[f(u(o),1)]),_:2},1024))),128))])])):g("",!0),t("div",null,[t("h2",pt," Versions ("+u(a(l).versions.length)+") ",1),t("ul",xt,[(s(!0),i(S,null,D(E.value,o=>(s(),i("li",{key:o.version,class:"flex items-center justify-between gap-2 text-sm"},[t("span",kt,[f(u(o.version)+" ",1),o.deprecated?(s(),k(a(R),{key:0,variant:"warning",size:"sm",class:"ml-1"},{default:$(()=>[...n[14]||(n[14]=[f("deprecated",-1)])]),_:1})):g("",!0)]),t("span",{class:"text-xs text-neutral-400",title:a(be)(o.unpackedSize)},u(a(F)(o.publishedAt)),9,vt)]))),128))]),a(l).versions.length>8&&!C.value?(s(),i("button",{key:0,type:"button",class:"mt-2 text-xs text-accent-600 hover:underline dark:text-accent-400",onClick:n[1]||(n[1]=o=>C.value=!0)}," Show all "+u(a(l).versions.length)+" versions ",1)):g("",!0)])])])],64)):g("",!0)]))}}),ht=ue(gt,[["__scopeId","data-v-e50ecf95"]]),bt={class:"h-full overflow-y-auto"},yt={class:"mx-auto max-w-6xl px-6 py-6"},_t={class:"mb-6 flex flex-wrap items-end justify-between gap-4"},wt={class:"flex items-center gap-2"},$t={class:"relative"},Mt={key:1,class:"grid gap-4",style:{"grid-template-columns":"repeat(auto-fill, minmax(260px, 1fr))"}},St={class:"grid gap-4",style:{"grid-template-columns":"repeat(auto-fill, minmax(260px, 1fr))"}},jt={class:"mt-6 flex items-center justify-center"},Ut=V({__name:"MarketplaceView",setup(e){const r=ae(),c=se(),{packages:p,total:l,loading:h,loadingMore:x,error:m,search:I,loadMore:A,hasMore:_}=Ee(),v=b(""),d=b("recent"),B=j(()=>{const n=r.params.name;return(Array.isArray(n)?n.join("/"):n)||null});let T=null;L(v,()=>{T&&clearTimeout(T),T=setTimeout(()=>void C(),250)}),L(d,()=>void C());function C(){return I({q:v.value,sort:d.value})}function E(n){c.push(`/marketplace/${n}`)}function y(){c.push("/marketplace")}return ne(()=>{C()}),re(()=>{T&&clearTimeout(T)}),(n,o)=>(s(),i("div",bt,[t("div",yt,[B.value?(s(),k(ht,{key:0,name:B.value,onBack:y},null,8,["name"])):(s(),i(S,{key:1},[t("div",_t,[o[5]||(o[5]=t("div",null,[t("h1",{class:"text-xl font-semibold text-neutral-900 dark:text-neutral-100"},"Marketplace"),t("p",{class:"mt-1 text-sm text-neutral-500 dark:text-neutral-400"}," Public packages for Standard Agents — install agents, tools, and prompts into this instance. ")],-1)),t("div",wt,[t("label",$t,[M(a(de),{class:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-neutral-400"}),P(t("input",{"onUpdate:modelValue":o[0]||(o[0]=w=>v.value=w),type:"search",placeholder:"Search packages…",class:"w-64 rounded-lg border border-neutral-200 bg-white py-2 pl-9 pr-3 text-sm text-neutral-900 placeholder:text-neutral-400 focus:border-accent-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-100"},null,512),[[le,v.value]])]),P(t("select",{"onUpdate:modelValue":o[1]||(o[1]=w=>d.value=w),"aria-label":"Sort packages",class:"rounded-lg border border-neutral-200 bg-white py-2 pl-3 pr-8 text-sm text-neutral-700 focus:border-accent-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-300"},[...o[4]||(o[4]=[t("option",{value:"recent"},"Recently updated",-1),t("option",{value:"downloads"},"Most installed",-1)])],512),[[oe,d.value]])])]),a(m)?(s(),k(a(G),{key:0,variant:"error",class:"mb-4"},{default:$(()=>[f(u(a(m))+" ",1),M(a(U),{variant:"ghost",size:"sm",class:"ml-2",onClick:o[2]||(o[2]=w=>C())},{default:$(()=>[...o[6]||(o[6]=[f("Retry",-1)])]),_:1})]),_:1})):g("",!0),a(h)?(s(),i("div",Mt,[(s(),i(S,null,D(8,w=>t("div",{key:w,class:"h-36 animate-pulse rounded-lg border border-neutral-200 bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-900"})),64))])):!a(p).length&&!a(m)?(s(),k(a(ke),{key:2,icon:a(ce),message:v.value?`No packages match “${v.value}”.`:"No packages have been published yet."},null,8,["icon","message"])):(s(),i(S,{key:3},[t("div",St,[(s(!0),i(S,null,D(a(p),w=>(s(),k(Te,{key:w.name,pkg:w,onSelect:E},null,8,["pkg"]))),128))]),t("div",jt,[a(_)?(s(),k(a(U),{key:0,variant:"secondary",disabled:a(x),onClick:o[3]||(o[3]=w=>a(A)())},{default:$(()=>[a(x)?(s(),i(S,{key:0},[M(q,{size:"sm",class:"mr-2"}),o[7]||(o[7]=f("Loading…",-1))],64)):(s(),i(S,{key:1},[f("Load more ("+u(a(p).length)+" of "+u(a(l))+")",1)],64))]),_:1},8,["disabled"])):g("",!0)])],64))],64))])]))}});export{Ut as default};