@standardagents/builder 0.15.0 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/built-in-routes.js +1650 -502
- package/dist/built-in-routes.js.map +1 -1
- package/dist/client/ApiKeysView.js +1 -1
- package/dist/client/CenteredContentView.js +1 -1
- package/dist/client/CompositionView.js +5 -5
- package/dist/client/ConfirmDialog.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/CopyButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/DataTable.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/client/JsonViewer.js +1 -1
- package/dist/client/LoginView.js +1 -1
- package/dist/client/Modal.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/ModelModal.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/ModelsView.js +1 -1
- package/dist/client/PromptEditView.js +1 -1
- package/dist/client/PromptModal.js +1 -1
- package/dist/client/PromptsView.js +1 -1
- package/dist/client/ProvidersView.js +2 -2
- package/dist/client/ThreadInspectorPane.vue_vue_type_script_setup_true_lang.js +19 -19
- package/dist/client/ToolsView.js +1 -1
- package/dist/client/UsersView.js +1 -1
- package/dist/client/VariablesView.js +1 -0
- package/dist/client/assets/CompositionView.css +1 -1
- package/dist/client/assets/ThreadInspectorPane.css +1 -1
- package/dist/client/assets/VariablesView.css +1 -0
- package/dist/client/assets/index.css +1 -1
- package/dist/client/index.js +6 -6
- package/dist/{index-D6_KjpVv.d.ts → index-BwqQtJ4r.d.ts} +47 -0
- package/dist/index.d.ts +116 -4
- package/dist/index.js +1547 -706
- package/dist/index.js.map +1 -1
- package/dist/plugin.js +548 -372
- package/dist/plugin.js.map +1 -1
- package/dist/test.d.ts +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as q}from"./formkit.js";import{
|
|
1
|
+
import{r as q}from"./formkit.js";import{C as K,_ as P,H as I,d as C,e as h}from"./index.js";import{_ as U}from"./DataTable.vue_vue_type_script_setup_true_lang.js";import{_ as x}from"./Modal.vue_vue_type_script_setup_true_lang.js";import{_ as z}from"./CopyButton.vue_vue_type_script_setup_true_lang.js";import{C as B}from"./CenteredContentView.js";import{_ as L}from"./UiCodeBlock.vue_vue_type_script_setup_true_lang.js";import{u as T}from"./useActionFeedback.js";import{n as O,g as F}from"./settingsData.js";import{d as J,r as i,o as R,O as N,z as V,e as $,k as o,q as Y,j as t,J as s,s as y,u as M,f as r}from"./vue.js";import"./vendor.js";import"./monaco.js";import"./syntax.js";import"./chevron-right.js";import"./ConfirmDialog.vue_vue_type_script_setup_true_lang.js";import"./check.js";const H={class:"flex justify-end gap-2"},G={class:"space-y-4"},Q={class:"flex gap-2"},W=["value"],X={class:"flex justify-end mt-4"},ve=J({__name:"ApiKeysView",setup(Z){const p=i(!1),u=i(!1),v=i(!1),c=i(""),m=i(!1),d=i(null),{feedback:k,setFeedback:f,clearFeedback:A}=T(),w=i([]),S=[{key:"name",label:"Name",width:"w-1/3"},{key:"keyPreview",label:"API Key",width:"w-1/3",html:!0,formatter:a=>`<code class="bg-neutral-100 dark:bg-neutral-800 px-2 py-1 rounded text-sm">${a}</code>`},{key:"createdAt",label:"Created",width:"w-1/6",formatter:a=>new Date(a*1e3).toLocaleDateString()},{key:"lastUsedAt",label:"Last Used",width:"w-1/6",formatter:a=>a?new Date(a*1e3).toLocaleDateString():"Never"}],D=[{icon:"delete",label:"Delete",confirm:!0,confirmMessage:"Are you sure you want to delete this API key? This action cannot be undone.",handler:async a=>{await j(a.id)}}],b=async()=>{v.value=!0,A();try{const a=await I("/api-keys");if(!a.ok)throw new Error("Failed to fetch API keys");const e=await a.json();w.value=O(e.keys)}catch{f("error","API keys could not be loaded."),w.value=[]}finally{v.value=!1}},E=async a=>{m.value=!0,A(),C(d);try{const e=await I("/api-keys",{method:"POST",body:JSON.stringify(a)}),l=await e.json();if(!e.ok){h(l,d)||f("error",F(l,"Failed to create API key"));return}c.value=l.key||"",g(),u.value=!0,await b()}catch{h({error:"Failed to create API key"},d)}finally{m.value=!1}},g=()=>{C(d),q("add-api-key-form"),p.value=!1},j=async a=>{A();try{const e=await I(`/api-keys/${a}`,{method:"DELETE"});if(!e.ok){const l=await e.json();f("error",F(l,"Failed to delete API key"));return}await b(),f("success","API key deleted.")}catch{f("error","Failed to delete API key")}};return R(()=>{b()}),(a,e)=>{const l=N("FormKitMessages"),_=N("FormKit");return $(),V(B,null,{default:o(()=>[s(k)?($(),V(s(K),{key:0,variant:s(k).variant,class:"mb-4"},{default:o(()=>[y(M(s(k).message),1)]),_:1},8,["variant"])):Y("",!0),t(U,{title:"API Keys",description:"Manage API keys for programmatic access","primary-action":{label:"Create API Key",handler:()=>p.value=!0},columns:S,data:w.value,actions:D,loading:v.value,"empty-message":"No API keys found"},null,8,["primary-action","data","loading"]),t(x,{modelValue:p.value,"onUpdate:modelValue":e[1]||(e[1]=n=>p.value=n),title:"Create API Key",onClose:g},{footer:o(()=>[r("div",H,[t(s(P),{variant:"secondary",disabled:m.value,onClick:g},{default:o(()=>[...e[5]||(e[5]=[y(" Cancel ",-1)])]),_:1},8,["disabled"]),t(s(P),{type:"submit",form:"add-api-key-form",loading:m.value},{default:o(()=>[...e[6]||(e[6]=[y(" Create Key ",-1)])]),_:1},8,["loading"])])]),default:o(()=>[t(_,{id:"add-api-key-form",type:"form",actions:!1,disabled:m.value,onSubmit:E,onNode:e[0]||(e[0]=n=>d.value=n)},{default:o(()=>[t(l,{node:d.value||void 0},null,8,["node"]),t(_,{type:"text",name:"name",label:"Name",placeholder:"e.g., Production API Key",help:"A descriptive name to help you identify this key",validation:"required","validation-messages":{required:"Name is required"}})]),_:1},8,["disabled"])]),_:1},8,["modelValue"]),t(x,{modelValue:u.value,"onUpdate:modelValue":e[3]||(e[3]=n=>u.value=n),title:"API Key Created",onClose:e[4]||(e[4]=n=>u.value=!1)},{default:o(()=>[r("div",G,[t(s(K),{variant:"warning"},{default:o(()=>[...e[7]||(e[7]=[r("p",{class:"font-semibold"},"Important: Save this key now!",-1),r("p",{class:"text-sm mt-1"}," You won't be able to see it again. If you lose this key, you'll need to create a new one. ",-1)])]),_:1}),r("div",null,[e[8]||(e[8]=r("label",{class:"block text-sm font-medium mb-2"},"Your new API key:",-1)),r("div",Q,[r("input",{value:c.value,type:"text",readonly:"",class:"flex-1 px-3 py-2 border border-neutral-300 dark:border-neutral-600 rounded-md dark:bg-neutral-700 font-mono text-sm"},null,8,W),t(z,{content:c.value,variant:"ghost"},null,8,["content"])])]),t(s(K),{variant:"info"},{default:o(()=>[e[9]||(e[9]=r("p",{class:"text-sm"}," Use this key in the Authorization header of your API requests: ",-1)),t(s(L),{inline:!1,class:"mt-2"},{default:o(()=>[y(" Authorization: Bearer "+M(c.value),1)]),_:1})]),_:1}),r("div",X,[t(s(P),{onClick:e[2]||(e[2]=n=>u.value=!1)},{default:o(()=>[...e[10]||(e[10]=[y(" Done ",-1)])]),_:1})])])]),_:1},8,["modelValue"])]),_:1})}}});export{ve as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as q,b as l,e as n,f as r,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 _e,g as L,k as $e,z as E,B as G,K as se,x as le,y as re,az as Se}from"./vue.js";import{d as Ie,c as Ae,b as ze,I as Re,a as De}from"./chevron-right.js";import{ai as Me,_ as Ve,A as Be,k as je}from"./index.js";import{_ as Ke}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang.js";const Le={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Fe(a,o){return n(),l("svg",Le,[...o[0]||(o[0]=[r("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[r("path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),r("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 Pe=q({name:"lucide-edit",render:Fe}),Te={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Oe(a,o){return n(),l("svg",Te,[...o[0]||(o[0]=[r("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[r("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"}),r("circle",{cx:"12",cy:"12",r:"3"})],-1)])])}const He=q({name:"lucide-eye",render:Oe}),Ee={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Qe(a,o){return n(),l("svg",Ee,[...o[0]||(o[0]=[r("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[r("path",{d:"M22 12h-6l-2 3h-4l-2-3H2"}),r("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 Ue=q({name:"lucide-inbox",render:Qe}),Ne={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ge(a,o){return n(),l("svg",Ne,[...o[0]||(o[0]=[r("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 qe=q({name:"lucide-chevrons-left",render:Ge}),Je={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function We(a,o){return n(),l("svg",Je,[...o[0]||(o[0]=[r("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 Xe=q({name:"lucide-chevrons-right",render:We}),Ye={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"},Ze={class:"text-neutral-500 dark:text-neutral-400 text-xs font-medium"},et={class:"text-neutral-700 dark:text-neutral-300"},tt={class:"text-neutral-700 dark:text-neutral-300"},at={class:"text-neutral-700 dark:text-neutral-300"},nt={class:"flex items-center gap-0.5"},st=["disabled"],lt=["disabled"],rt={class:"flex items-center gap-0.5 mx-1"},ot={key:0,class:"px-2 text-neutral-400 dark:text-neutral-500 text-xs"},it=["onClick"],ct=["disabled"],ut=["disabled"],dt={class:"flex items-center gap-2"},ht=["value"],gt=["value"],ft=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,c=o,d=k(()=>Math.ceil(t.totalItems/t.pageSize)),u=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),_=k(()=>{const p=[],f=d.value,v=t.page;if(f<=7)for(let S=1;S<=f;S++)p.push(S);else{p.push(1),v>3&&p.push("...");const S=Math.max(2,v-1),j=Math.min(f-1,v+1);for(let T=S;T<=j;T++)p.includes(T)||p.push(T);v<f-2&&p.push("..."),p.includes(f)||p.push(f)}return p}),w=p=>{p>=1&&p<=d.value&&c("update:page",p)},R=()=>w(1),B=()=>w(t.page-1),J=()=>w(t.page+1),F=()=>w(d.value),P=p=>{const f=p.target;c("update:pageSize",parseInt(f.value,10)),c("update:page",1)};return(p,f)=>a.totalItems>0?(n(),l("div",Ye,[r("div",Ze,[f[0]||(f[0]=V(" Showing ",-1)),r("span",et,x(u.value),1),f[1]||(f[1]=V(" to ",-1)),r("span",tt,x(g.value),1),f[2]||(f[2]=V(" of ",-1)),r("span",at,x(a.totalItems),1)]),r("div",nt,[r("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(qe),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,st),r("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,lt),r("div",rt,[(n(!0),l(C,null,D(_.value,(v,S)=>(n(),l(C,{key:S},[v==="..."?(n(),l("span",ot," ... ")):(n(),l("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"])},x(v),11,it))],64))),128))]),r("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,ct),r("button",{type:"button",onClick:F,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(Xe),{class:"w-4 h-4 text-neutral-500 dark:text-neutral-400"})],8,ut)]),r("div",dt,[r("select",{value:a.pageSize,onChange:P,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),l(C,null,D(a.pageSizeOptions,v=>(n(),l("option",{key:v,value:v},x(v),9,gt))),128))],40,ht),f[3]||(f[3]=r("span",{class:"text-neutral-500 dark:text-neutral-400 text-xs"},"per page",-1))])])):b("",!0)}});function z(a,o){return a[o]}function vt(a,o){const t=z(a,o.key);return o.formatter?o.formatter(t,a):t??"-"}function pt(a,o){return a.filter(t=>t.filterable===!0).map(t=>{const c=new Map;for(const d of o){const u=z(d,t.key);if(u==null)continue;const g=t.formatter?t.formatter(u,d):String(u);c.has(g)||c.set(g,{value:g,icon:t.filterIcon?.(u,d)})}return{key:t.key,label:t.label,options:Array.from(c.entries()).sort((d,u)=>d[0].localeCompare(u[0])).map(([d,u])=>({value:d,label:d,icon:u.icon}))}})}function bt(a,o,t,c,d){let u=a;const g=Object.entries(t);if(g.length>0&&(u=u.filter($=>g.every(([_,w])=>{const R=o.find(F=>F.key===_);if(!R)return!0;const B=z($,_);return B==null?!1:(R.formatter?R.formatter(B,$):String(B))===w}))),!d||!c.trim())return u;const y=c.toLowerCase().trim();return u.filter($=>o.some(_=>{if(_.searchable===!1)return!1;const w=z($,_.key);return w==null?!1:(_.formatter?_.formatter(w,$):String(w)).toLowerCase().includes(y)}))}function kt(a,o,t){return o?[...a].sort((c,d)=>{const u=z(c,o),g=z(d,o);if(u==null&&g==null)return 0;if(u==null)return t==="asc"?1:-1;if(g==null)return t==="asc"?-1:1;let y=0;return typeof u=="string"&&typeof g=="string"?y=u.localeCompare(g,void 0,{sensitivity:"base"}):typeof u=="number"&&typeof g=="number"?y=u-g:y=String(u).localeCompare(String(g)),t==="asc"?y:-y}):a}function xt(a,o,t){const c=z(a,t);return o.some(d=>z(d,t)===c)}const mt={class:"w-full"},yt={key:0,class:"flex flex-wrap items-start justify-between gap-4 mb-5"},wt={class:"flex items-center gap-3"},Ct={class:"flex items-center gap-2"},_t={key:0,class:"text-xl font-bold tracking-tight"},$t={key:1,class:"text-xs font-mono text-neutral-400 dark:text-neutral-500"},St={key:0,class:"text-sm text-neutral-500 dark:text-neutral-400 mt-0.5"},It={key:0,class:"flex items-center gap-2"},At={key:1,class:"mb-4"},zt={class:"flex flex-wrap items-center gap-3"},Rt={key:0,class:"flex-1 min-w-[200px] max-w-md"},Dt={key:2,class:"flex items-center gap-2 ml-auto"},Mt={class:"text-sm text-neutral-500 dark:text-neutral-400 font-medium"},Vt={class:"flex items-center gap-1.5"},Bt=["onClick"],jt={class:"rounded-xl border border-neutral-300 dark:border-neutral-700 overflow-hidden bg-white dark:bg-transparent"},Kt={class:"overflow-x-auto"},Lt={class:"w-full"},Ft={class:"bg-neutral-50 dark:bg-neutral-800/50 border-b border-neutral-300 dark:border-neutral-700"},Pt={key:0,class:"px-4 py-2.5 w-12"},Tt={class:"flex items-center justify-center"},Ot=["checked","indeterminate"],Ht=["onClick"],Et={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"},Qt={class:"divide-y divide-neutral-200 dark:divide-neutral-800"},Ut={key:0},Nt=["colspan"],Gt={class:"flex flex-col items-center justify-center gap-3 text-neutral-400"},qt={key:1},Jt=["colspan"],Wt={class:"flex flex-col items-center justify-center gap-3 text-neutral-400"},Xt={class:"w-12 h-12 rounded-full bg-neutral-100 dark:bg-neutral-800 flex items-center justify-center"},Yt={class:"text-sm"},Zt=["onClick"],ea={key:0,class:"absolute left-0 top-0 bottom-0 w-0.5 bg-accent-500"},ta={class:"flex items-center justify-center"},aa=["checked","onChange"],na=["innerHTML"],sa={class:"inline-flex gap-0.5"},la=["disabled","onClick","title"],ra=["disabled","onClick","title"],fa=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,c=o,d=K(!1),u=K(""),g=K(null),y=e=>{if(typeof e!="string")return e;switch(e){case"edit":return Pe;case"delete":return Ae;case"view":return He;default:return null}},$=(e,i)=>vt(e,i),_=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()}?`;u.value=m,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},F=(e,i)=>e.visible===void 0?!0:typeof e.visible=="function"?e.visible(i):e.visible,P=(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),S=k(()=>t.sortKey!==void 0?t.sortDirection:f.value),j=e=>t.sortable&&e.sortable===!0,T=e=>{if(!j(e))return;const i=e.key;let m="asc";v.value===i&&(m=S.value==="asc"?"desc":"asc"),p.value=i,f.value=m,c("update:sortKey",i),c("update:sortDirection",m),c("sort",{key:i,direction:m})},ie=e=>v.value!==e.key?ze:S.value==="asc"?Re:De,O=k(()=>!v.value||!t.sortable?W.value:kt(W.value,v.value,S.value)),U=K(t.searchQuery),M=K({}),ce=Se(e=>{c("update:searchQuery",e),c("search",e)},300),ue=e=>{U.value=e,ce(e)},de=()=>{U.value="",c("update:searchQuery",""),c("search","")},ee=k(()=>pt(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(()=>bt(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=>xt(e,t.selectedRows,t.rowKey),ae=k(()=>O.value.length>0&&t.selectedRows.length===O.value.length),fe=k(()=>t.selectedRows.length>0&&t.selectedRows.length<O.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],c("update:selectedRows",m),c("selection-change",m)},pe=()=>{const e=ae.value?[]:[...O.value];c("update:selectedRows",e),c("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)?`;u.value=i,g.value=async()=>{await e.handler(t.selectedRows)},d.value=!0}else await e.handler(t.selectedRows)},ke=e=>{c("update:page",e),c("page-change",e)},xe=e=>{c("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=_e("FormKit");return n(),l("div",mt,[me.value?(n(),l("div",yt,[r("div",wt,[r("div",null,[r("div",Ct,[a.title?(n(),l("h2",_t,x(a.title),1)):b("",!0),!a.loading&&a.data.length>0?(n(),l("span",$t,[X.value>0&&W.value.length!==a.data.length?(n(),l(C,{key:0},[V(" ("+x(W.value.length)+" of "+x(a.data.length)+") ",1)],64)):(n(),l(C,{key:1},[V(" ("+x(a.data.length)+") ",1)],64))])):b("",!0)]),a.description?(n(),l("p",St,x(a.description),1)):b("",!0)])]),a.primaryAction?(n(),l("div",It,[L(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(),l("div",At,[r("div",zt,[a.searchable?(n(),l("div",Rt,[A(m,{type:"searchInput",value:U.value,placeholder:a.searchPlaceholder,onInput:ue},null,8,["value","placeholder"])])):b("",!0),(n(!0),l(C,null,D(ee.value,s=>(n(),l("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:H=>he(s.key,H)},null,8,["value","options","placeholder","onInput"])]))),128)),X.value>0?(n(),l("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(),l("div",Dt,[r("span",Mt,x(a.selectedRows.length)+" selected ",1),r("div",Vt,[(n(!0),l(C,null,D(a.bulkActions,(s,H)=>(n(),l("button",{key:H,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,Bt))),128))])])):b("",!0)])])):b("",!0),L(e.$slots,"toolbar"),r("div",jt,[r("div",Kt,[r("table",Lt,[r("thead",Ft,[r("tr",null,[a.selectable?(n(),l("th",Pt,[r("div",Tt,[r("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,Ot)])])):b("",!0),(n(!0),l(C,null,D(a.columns,s=>(n(),l("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.align),s.width||"",j(s)?"cursor-pointer select-none group":""]),onClick:H=>T(s)},[r("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":""])},[r("span",null,x(s.label),1),j(s)?(n(),l("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,Ht))),128)),Y.value?(n(),l("th",Et," Actions ")):b("",!0)])]),r("tbody",Qt,[a.loading?(n(),l("tr",Ut,[r("td",{colspan:ne.value,class:"px-4 py-16"},[L(e.$slots,"loading",{},()=>[r("div",Gt,[A(Be,{size:"md"}),i[3]||(i[3]=r("span",{class:"text-sm"},"Loading data...",-1))])])],8,Nt)])):O.value.length===0?(n(),l("tr",qt,[r("td",{colspan:ne.value,class:"px-4 py-16"},[L(e.$slots,"empty",{},()=>[r("div",Wt,[r("div",Xt,[A(Q(Ue),{class:"w-6 h-6"})]),r("p",Yt,x(a.emptyMessage),1),X.value>0?(n(),l("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,Jt)])):(n(!0),l(C,{key:2},D(O.value,(s,H)=>(n(),l("tr",{key:s[a.rowKey]??H,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=>c("row-click",s)},[N(s)?(n(),l("div",ea)):b("",!0),a.selectable?(n(),l("td",{key:1,class:"px-4 py-3",onClick:i[0]||(i[0]=se(()=>{},["stop"]))},[r("div",ta,[r("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,aa)])])):b("",!0),(n(!0),l(C,null,D(a.columns,h=>(n(),l("td",{key:h.key,class:I(["px-4 py-3 text-sm",_(h.align),w(s,h),N(s)?"text-accent-900 dark:text-accent-100":"text-neutral-700 dark:text-neutral-300"])},[L(e.$slots,`cell-${h.key}`,{value:s[h.key],row:s,column:h},()=>[h.html?(n(),l("span",{key:0,innerHTML:$(s,h)},null,8,na)):(n(),l(C,{key:1},[V(x($(s,h)),1)],64))])],2))),128)),Y.value?(n(),l("td",{key:2,class:"px-4 py-3 text-right",onClick:i[1]||(i[1]=se(()=>{},["stop"]))},[r("div",sa,[(n(!0),l(C,null,D(ye.value,(h,Z)=>le((n(),l("button",{key:`non-delete-${Z}`,disabled:P(h,s),onClick:Ce=>R(h,s),class:I(["p-1.5 rounded-md transition-all duration-150",P(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,la)),[[re,F(h,s)]])),128)),L(e.$slots,"extra-actions",{row:s}),(n(!0),l(C,null,D(we.value,(h,Z)=>le((n(),l("button",{key:`delete-${Z}`,disabled:P(h,s),onClick:Ce=>R(h,s),class:I(["p-1.5 rounded-md transition-all duration-150",P(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,ra)),[[re,F(h,s)]])),128))])])):b("",!0)],10,Zt))),128))])])]),a.paginated?(n(),E(ft,{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(Ke,{modelValue:d.value,"onUpdate:modelValue":i[2]||(i[2]=s=>d.value=s),title:"Confirm Action",message:u.value,"confirm-text":"Confirm","cancel-text":"Cancel",onConfirm:B,onCancel:J},null,8,["modelValue","message"])])}}}),oa={},ia={class:"p-8 w-full max-w-7xl mx-auto"};function ca(a,o){return n(),l("div",ia,[L(a.$slots,"default")])}const va=je(oa,[["render",ca]]);export{va as C,He as I,fa as _};
|
|
1
|
+
import{m as t}from"./index.js";import{b as o,e as r,g as s}from"./vue.js";const n={},c={class:"p-8 w-full max-w-7xl mx-auto"};function a(e,l){return r(),o("div",c,[s(e.$slots,"default")])}const f=t(n,[["render",a]]);export{f as C};
|