@stlhorizon/vue-ui 1.2.2 → 1.2.3

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/index.js CHANGED
@@ -82,7 +82,7 @@
82
82
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" />
83
83
  </svg>`},a={template:`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
84
84
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
85
- </svg>`},o=new Date,n=e.ref(o.getMonth()),r=e.ref(o.getFullYear()),s=e.ref(null),i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=e.computed(()=>new Date(r.value,n.value).toLocaleString("default",{month:"long"})),v=e.computed(()=>new Date(r.value,n.value+1,0).getDate()),p=e.computed(()=>new Date(r.value,n.value,1).getDay()),x=e.computed(()=>Array.from({length:p.value},(g,C)=>new Date(r.value,n.value,-C).getDate()).reverse()),y=e.computed(()=>{const g=x.value.length+v.value,C=g%7===0?0:7-g%7;return Array.from({length:C},(V,D)=>D+1)});function N(){n.value===0?(n.value=11,r.value--):n.value--}function h(){n.value===11?(n.value=0,r.value++):n.value++}function f(g){return o.getDate()===g&&o.getMonth()===n.value&&o.getFullYear()===r.value}function d(g){return s.value&&s.value.getDate()===g&&s.value.getMonth()===n.value&&s.value.getFullYear()===r.value}function b(g){s.value=new Date(r.value,n.value,g),emit("update:modelValue",s.value)}return(g,C)=>(e.openBlock(),e.createElementBlock("div",Nl,[e.createElementVNode("div",zl,[e.createVNode(A,{class:"p-2 rounded-lg hover:bg-slate-100",onClick:N,"aria-label":"Previous Month"},{default:e.withCtx(()=>[e.createVNode(l,{class:"w-5 h-5"})]),_:1}),e.createElementVNode("div",El,e.toDisplayString(u.value)+" "+e.toDisplayString(r.value),1),e.createVNode(A,{class:"p-2 rounded-lg hover:bg-slate-100",onClick:h,"aria-label":"Next Month"},{default:e.withCtx(()=>[e.createVNode(a,{class:"w-5 h-5"})]),_:1})]),e.createElementVNode("div",$l,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,V=>e.createElementVNode("div",{key:V},e.toDisplayString(V),1)),64))]),e.createElementVNode("div",Dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,V=>(e.openBlock(),e.createElementBlock("div",{key:"prev-"+V,class:"text-slate-400 text-sm"},e.toDisplayString(V),1))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,V=>(e.openBlock(),e.createBlock(A,{key:V,onClick:D=>b(V),class:e.normalizeClass(["w-10 h-10 rounded-full flex items-center justify-center mx-auto",f(V)?"bg-blue-500 text-white font-semibold":"",d(V)?"bg-blue-100 text-blue-600 font-semibold":"hover:bg-slate-100"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V),1)]),_:2},1032,["onClick","class"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,V=>(e.openBlock(),e.createElementBlock("div",{key:"next-"+V,class:"text-slate-400 text-sm"},e.toDisplayString(V),1))),128))])]))}},Tl={class:"flex items-start justify-between"},Ml={key:0,class:"flex items-center gap-2"},ae={__name:"DataTableHeader",props:{title:{type:String,default:null},description:{type:String,default:null},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},setup(t){const l=t,a=m.cva("border-b border-slate-200",{variants:{variant:{default:"bg-white",minimal:"bg-transparent border-none",bordered:"bg-slate-50 border-2"},padding:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}},defaultVariants:{variant:"default",padding:"normal"}}),o=m.cva("font-semibold text-slate-900",{variants:{size:{sm:"text-base",md:"text-lg",lg:"text-xl"}},defaultVariants:{size:"md"}}),n=m.cva("text-slate-600 mt-1",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}}),r=e.computed(()=>c(a({variant:l.variant,padding:l.padding}))),s=e.computed(()=>c(o({size:"md"}))),i=e.computed(()=>c(n({size:"md"})));return(u,v)=>t.title||t.description||u.$slots.header?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(r.value)},[e.renderSlot(u.$slots,"header",{},()=>[e.createElementVNode("div",Tl,[e.createElementVNode("div",null,[t.title?(e.openBlock(),e.createBlock(Q,{key:0,class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:1},8,["class"])):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createBlock(Q,{key:1,class:e.normalizeClass(i.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.description),1)]),_:1},8,["class"])):e.createCommentVNode("",!0)]),u.$slots.filters?(e.openBlock(),e.createElementBlock("div",Ml,[e.renderSlot(u.$slots,"filters")])):e.createCommentVNode("",!0)])])],2)):e.createCommentVNode("",!0)}},le={__name:"DataTableRow",props:{item:{type:Object,required:!0},columns:{type:Array,required:!0},index:{type:Number,required:!0},selectable:{type:Boolean,default:!1},isSelected:{type:Boolean,default:!1},striped:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!0},clickableRows:{type:Boolean,default:!1},density:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","bordered","minimal"].includes(t)}},emits:["toggle-selection","row-click"],setup(t,{emit:l}){const a=t,o=l,n=m.cva("transition-colors",{variants:{striped:{true:"odd:bg-slate-50/50",false:""},hoverable:{true:"hover:bg-slate-50",false:""},clickable:{true:"cursor-pointer hover:bg-slate-100",false:""},selected:{true:"bg-blue-50 border-blue-200",false:""},variant:{default:"",bordered:"border-b border-slate-200",minimal:"border-b border-slate-100"}},compoundVariants:[{hoverable:!0,clickable:!0,class:"hover:bg-slate-100"}],defaultVariants:{striped:!1,hoverable:!0,clickable:!1,selected:!1,variant:"default"}}),r=m.cva("whitespace-nowrap text-sm text-slate-900",{variants:{density:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"},align:{left:"text-left",center:"text-center",right:"text-right"}},defaultVariants:{density:"normal",align:"left"}}),s=f=>typeof f=="string"?f:f?.key||f?.field||"unknown",i=(f,d)=>{const b=s(d);return typeof d=="object"&&d.accessor?d.accessor(f):b&&b.includes(".")?b.split(".").reduce((g,C)=>g?.[C],f):f?.[b]},u=(f,d)=>{const b=i(f,d);return typeof d=="object"&&d.formatter?d.formatter(b,f):b==null?"":b instanceof Date?b.toLocaleDateString():Array.isArray(b)?b.join(", "):b},v=()=>{a.clickableRows&&o("row-click",{item:a.item,index:a.index})},p=f=>typeof f=="object"&&f.align?f.align:"left",x=e.computed(()=>c(n({striped:a.striped,hoverable:a.hoverable&&!a.clickableRows,clickable:a.clickableRows,selected:a.isSelected,variant:a.variant}))),y=f=>{const d=p(f);return c(r({density:a.density,align:d}),f.cellClasses)},N=e.computed(()=>c(r({density:a.density}),"w-12")),h=e.computed(()=>c(r({density:a.density,align:"right"}),"font-medium"));return(f,d)=>(e.openBlock(),e.createElementBlock("tr",{class:e.normalizeClass(x.value),onClick:v},[t.selectable?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(N.value)},[e.createVNode(Y,{modelValue:t.isSelected,"onUpdate:modelValue":d[0]||(d[0]=b=>f.$emit("toggle-selection",t.item))},null,8,["modelValue"])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,b=>(e.openBlock(),e.createElementBlock("td",{key:s(b),class:e.normalizeClass(y(b))},[e.renderSlot(f.$slots,`cell-${s(b)}`,{item:t.item,value:i(t.item,b),column:b,index:t.index},()=>[e.createTextVNode(e.toDisplayString(u(t.item,b)),1)])],2))),128)),f.$slots.actions?(e.openBlock(),e.createElementBlock("td",{key:1,class:e.normalizeClass(h.value)},[e.renderSlot(f.$slots,"actions",{item:t.item,index:t.index})],2)):e.createCommentVNode("",!0)],2))}},Ll={class:"flex items-center justify-between"},Il={key:0,class:"text-sm text-slate-600"},jl={key:1,class:"text-sm text-slate-600"},Al={key:2,class:"flex items-center gap-4"},Fl={key:3,class:"flex items-center gap-4"},Pl={class:"flex items-center gap-2"},Rl={class:"flex items-center gap-1"},_l=["disabled"],ql=["disabled"],Hl={class:"flex items-center gap-1"},Ol=["onClick"],Ul=["disabled"],Zl=["disabled"],Gl={class:"text-sm text-slate-600 ml-4"},oe={__name:"DataTablePagination",props:{currentPage:{type:Number,required:!0},totalPages:{type:Number,required:!0},total:{type:Number,required:!0},pageSize:{type:Number,required:!0},showPagination:{type:Boolean,default:!0},selectable:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},pageSizeOptions:{type:Array,default:()=>[5,10,25,50,100]},maxVisiblePages:{type:Number,default:7},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},emits:["update:currentPage","update:pageSize"],setup(t,{emit:l}){const a=t,o=m.cva("border-t border-slate-200",{variants:{variant:{default:"bg-slate-50",minimal:"bg-transparent border-slate-100",bordered:"bg-slate-100 border-t-2 border-slate-300"},padding:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}},defaultVariants:{variant:"default",padding:"normal"}}),n=m.cva("text-sm font-medium border rounded-md transition-colors duration-200",{variants:{state:{active:"bg-blue-600 text-white border-blue-600",inactive:"bg-white text-slate-700 border-slate-300 hover:bg-slate-50",disabled:"bg-slate-100 text-slate-400 border-slate-200 cursor-not-allowed"},size:{sm:"px-2 py-1",md:"px-3 py-2",lg:"px-4 py-3"}},defaultVariants:{state:"inactive",size:"md"}}),r=m.cva("text-slate-700",{variants:{size:{sm:"text-sm",md:"text-base",lg:"text-lg"}},defaultVariants:{size:"md"}}),s=m.cva("border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm min-w-[60px] focus:border-transparent",{variants:{size:{sm:"px-2 py-1",md:"px-3 py-2",lg:"px-4 py-3"}},defaultVariants:{size:"sm"}}),i=e.computed(()=>(a.currentPage-1)*a.pageSize+1),u=e.computed(()=>Math.min(a.currentPage*a.pageSize,a.total)),v=e.computed(()=>{const h=[],f=a.totalPages,d=a.currentPage,b=a.maxVisiblePages;if(f<=b)for(let g=1;g<=f;g++)h.push(g);else{const g=Math.floor(b/2);let C=Math.max(1,d-g),V=Math.min(f,C+b-1);V-C+1<b&&(C=Math.max(1,V-b+1));for(let D=C;D<=V;D++)h.push(D)}return h}),p=e.computed(()=>c(o({variant:a.variant,padding:a.padding}))),x=e.computed(()=>c(r({size:"md"}))),y=e.computed(()=>c(s({size:"sm"}))),N=(h,f)=>{let d="inactive";return f?d="disabled":h&&(d="active"),c(n({state:d,size:"md"}))};return(h,f)=>t.showPagination||h.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(p.value)},[e.createElementVNode("div",Ll,[t.selectable&&t.selectedCount>0?(e.openBlock(),e.createElementBlock("div",Il,e.toDisplayString(t.selectedCount)+" of "+e.toDisplayString(t.total)+" selected ",1)):(e.openBlock(),e.createElementBlock("div",jl," Showing "+e.toDisplayString(i.value)+" to "+e.toDisplayString(u.value)+" of "+e.toDisplayString(t.total)+" entries ",1)),h.$slots.footer?(e.openBlock(),e.createElementBlock("div",Al,[e.renderSlot(h.$slots,"footer")])):e.createCommentVNode("",!0),t.showPagination?(e.openBlock(),e.createElementBlock("div",Fl,[e.createElementVNode("div",Pl,[e.createVNode(ee,{for:"pageSize",class:e.normalizeClass(x.value),inline:!0},{default:e.withCtx(()=>[...f[5]||(f[5]=[e.createTextVNode("Show:",-1)])]),_:1},8,["class"]),e.createVNode(X,{id:"pageSize","model-value":t.pageSize.toString(),"onUpdate:modelValue":f[0]||(f[0]=d=>h.$emit("update:pageSize",parseInt(d))),class:e.normalizeClass(y.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pageSizeOptions,d=>(e.openBlock(),e.createBlock(te,{key:d,value:d.toString(),label:d.toString()},null,8,["value","label"]))),128))]),_:1},8,["model-value","class"])]),e.createElementVNode("div",Rl,[e.createElementVNode("button",{disabled:t.currentPage===1,onClick:f[1]||(f[1]=d=>h.$emit("update:currentPage",1)),class:e.normalizeClass(N(!1,t.currentPage===1)),title:"First page"},[...f[6]||(f[6]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"})],-1)])],10,_l),e.createElementVNode("button",{disabled:t.currentPage===1,onClick:f[2]||(f[2]=d=>h.$emit("update:currentPage",t.currentPage-1)),class:e.normalizeClass(N(!1,t.currentPage===1)),title:"Previous page"},[...f[7]||(f[7]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 19.5L8.25 12l7.5-7.5"})],-1)])],10,ql),e.createElementVNode("div",Hl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d,onClick:b=>h.$emit("update:currentPage",d),class:e.normalizeClass(N(d===t.currentPage,!1))},e.toDisplayString(d),11,Ol))),128))]),e.createElementVNode("button",{disabled:t.currentPage===t.totalPages,onClick:f[3]||(f[3]=d=>h.$emit("update:currentPage",t.currentPage+1)),class:e.normalizeClass(N(!1,t.currentPage===t.totalPages)),title:"Next page"},[...f[8]||(f[8]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"})],-1)])],10,Ul),e.createElementVNode("button",{disabled:t.currentPage===t.totalPages,onClick:f[4]||(f[4]=d=>h.$emit("update:currentPage",t.totalPages)),class:e.normalizeClass(N(!1,t.currentPage===t.totalPages)),title:"Last page"},[...f[9]||(f[9]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"})],-1)])],10,Zl)]),e.createElementVNode("div",Gl," Page "+e.toDisplayString(t.currentPage)+" of "+e.toDisplayString(t.totalPages),1)])):e.createCommentVNode("",!0)])],2)):e.createCommentVNode("",!0)}},Kl={class:"overflow-x-auto"},Ql=["onClick"],Yl={class:"flex items-center gap-2"},Xl={key:0,class:"flex flex-col"},Wl={key:0},Jl=["colspan"],eo={class:"text-center py-8"},to={class:"text-slate-500"},Je={__name:"DataTable",props:{data:{type:Array,required:!0},columns:{type:Array,required:!0},title:{type:String,default:null},description:{type:String,default:null},selectable:{type:Boolean,default:!1},selectedItems:{type:Array,default:()=>[]},sortBy:{type:String,default:null},sortOrder:{type:String,default:"asc",validator:t=>["asc","desc"].includes(t)},pageSize:{type:Number,default:10},showPagination:{type:Boolean,default:!0},striped:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!0},clickableRows:{type:Boolean,default:!1},emptyText:{type:String,default:"No data available"},rowKey:{type:String,default:"id"},variant:{type:String,default:"default",validator:t=>["default","bordered","minimal"].includes(t)},density:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},headerVariant:{type:String,default:"default"},headerPadding:{type:String,default:"normal"},paginationVariant:{type:String,default:"default"},paginationPadding:{type:String,default:"normal"}},emits:["selection-change","sort-change","row-click"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(1),r=e.ref(a.pageSize),s=e.ref(a.sortBy),i=e.ref(a.sortOrder),u=m.cva("bg-white border border-slate-200 rounded-lg overflow-hidden",{variants:{variant:{default:"shadow-sm",bordered:"border-2 border-slate-300",minimal:"border-none shadow-none bg-transparent"}},defaultVariants:{variant:"default"}}),v=m.cva("min-w-full",{variants:{variant:{default:"divide-y divide-slate-200",bordered:"border-collapse [&_td]:border [&_th]:border",minimal:"divide-y divide-slate-100"}},defaultVariants:{variant:"default"}}),p=m.cva("",{variants:{variant:{default:"bg-slate-50",bordered:"bg-slate-100 border-b-2 border-slate-300",minimal:"bg-transparent border-b border-slate-200"}},defaultVariants:{variant:"default"}}),x=m.cva("divide-y",{variants:{variant:{default:"bg-white divide-slate-200",bordered:"bg-white divide-slate-300",minimal:"bg-transparent divide-slate-100"}},defaultVariants:{variant:"default"}}),y=e.computed(()=>{let k=[...a.data];if(s.value){const E=a.columns.find(M=>M.key===s.value);E&&k.sort((M,_)=>{const O=g(M,E),K=g(_,E);return O<K?i.value==="asc"?-1:1:O>K?i.value==="asc"?1:-1:0})}return k}),N=e.computed(()=>Math.ceil(y.value.length/r.value)),h=e.computed(()=>{if(!a.showPagination)return y.value;const k=(n.value-1)*r.value,E=k+r.value;return y.value.slice(k,E)}),f=e.computed(()=>{let k=a.columns.length;return a.selectable&&k++,a.$slots?.actions&&k++,k}),d=e.computed(()=>y.value.length>0&&y.value.every(k=>V(k))),b=e.computed(()=>{const k=y.value.filter(E=>V(E)).length;return k>0&&k<y.value.length}),g=(k,E)=>E.accessor?E.accessor(k):E.key.split(".").reduce((M,_)=>M?.[_],k),C=(k,E)=>k[a.rowKey]||E,V=k=>a.selectedItems.some(E=>C(E)===C(k)),D=k=>{const E=[...a.selectedItems],M=E.findIndex(_=>C(_)===C(k));M>-1?E.splice(M,1):E.push(k),o("selection-change",E)},F=()=>{const k=d.value?[]:[...y.value];o("selection-change",k)},P=k=>{k.sortable&&(s.value===k.key?i.value=i.value==="asc"?"desc":"asc":(s.value=k.key,i.value="asc"),o("sort-change",{column:k.key,direction:i.value}))},$=k=>{o("row-click",k)},I=e.computed(()=>c(u({variant:a.variant}))),B=e.computed(()=>c(v({variant:a.variant}))),T=e.computed(()=>c(p({variant:a.variant}))),j=e.computed(()=>c(x({variant:a.variant}))),R=k=>c({compact:"px-4 py-2",normal:"px-6 py-3",comfortable:"px-8 py-4"}[a.density],"text-left text-xs font-medium text-slate-500 uppercase tracking-wider",{"cursor-pointer hover:bg-slate-100":k.sortable}),z=e.computed(()=>c({compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}[a.density],"whitespace-nowrap text-sm text-slate-900 w-12")),w=e.computed(()=>c({compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}[a.density],"whitespace-nowrap text-sm font-medium")),S=e.computed(()=>c({compact:"px-4 py-4",normal:"px-6 py-6",comfortable:"px-8 py-8"}[a.density],"text-center")),H=(k,E)=>c({"text-blue-600":s.value===k.key&&i.value===E,"text-slate-300":s.value!==k.key||i.value!==E});return e.watch(()=>a.selectedItems,k=>{},{deep:!0}),e.watch(()=>a.pageSize,k=>{r.value=k}),(k,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(I.value)},[t.title||t.description||k.$slots.header?(e.openBlock(),e.createBlock(ae,{key:0,title:t.title,description:t.description,variant:t.headerVariant,padding:t.headerPadding},{header:e.withCtx(()=>[e.renderSlot(k.$slots,"header")]),filters:e.withCtx(()=>[e.renderSlot(k.$slots,"filters")]),_:3},8,["title","description","variant","padding"])):e.createCommentVNode("",!0),e.createElementVNode("div",Kl,[e.createElementVNode("table",{class:e.normalizeClass(B.value)},[e.createElementVNode("thead",{class:e.normalizeClass(T.value)},[e.createElementVNode("tr",null,[t.selectable?(e.openBlock(),e.createElementBlock("th",{key:0,class:e.normalizeClass(z.value)},[e.createVNode(Y,{modelValue:d.value,indeterminate:b.value,"onUpdate:modelValue":F},null,8,["modelValue","indeterminate"])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,M=>(e.openBlock(),e.createElementBlock("th",{key:M.key,class:e.normalizeClass(R(M)),onClick:_=>P(M)},[e.createElementVNode("div",Yl,[e.createElementVNode("span",null,e.toDisplayString(M.label),1),M.sortable?(e.openBlock(),e.createElementBlock("div",Xl,[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass([H(M,"asc"),"w-3 h-3 transition-colors"]),fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[...E[2]||(E[2]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"},null,-1)])],2)),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass([H(M,"desc"),"w-3 h-3 transition-colors"]),fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[...E[3]||(E[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"},null,-1)])],2))])):e.createCommentVNode("",!0)])],10,Ql))),128)),k.$slots.actions?(e.openBlock(),e.createElementBlock("th",{key:1,class:e.normalizeClass(w.value)}," Actions ",2)):e.createCommentVNode("",!0)])],2),e.createElementVNode("tbody",{class:e.normalizeClass(j.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(M,_)=>(e.openBlock(),e.createBlock(le,{key:C(M,_),item:M,columns:t.columns,index:_,selectable:t.selectable,"is-selected":V(M),striped:t.striped,hoverable:t.hoverable,"clickable-rows":t.clickableRows,density:t.density,onToggleSelection:D,onRowClick:$},e.createSlots({actions:e.withCtx(O=>[e.renderSlot(k.$slots,"actions",e.mergeProps({ref_for:!0},O))]),_:2},[e.renderList(t.columns,O=>({name:`cell-${O.key}`,fn:e.withCtx(K=>[e.renderSlot(k.$slots,`cell-${O.key}`,e.mergeProps({ref_for:!0},K))])}))]),1032,["item","columns","index","selectable","is-selected","striped","hoverable","clickable-rows","density"]))),128)),h.value.length===0?(e.openBlock(),e.createElementBlock("tr",Wl,[e.createElementVNode("td",{colspan:f.value,class:e.normalizeClass(S.value)},[e.renderSlot(k.$slots,"empty",{},()=>[e.createElementVNode("div",eo,[E[4]||(E[4]=e.createElementVNode("div",{class:"text-slate-400 mb-2"},[e.createElementVNode("svg",{class:"w-12 h-12 mx-auto",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 0A2.25 2.25 0 0 1 5.625 3.375h4.125c.621 0 1.125.504 1.125 1.125v15.75m-9.75 0h9.75"})])],-1)),e.createElementVNode("p",to,e.toDisplayString(t.emptyText),1)])])],10,Jl)])):e.createCommentVNode("",!0)],2)],2)]),t.showPagination||k.$slots.footer?(e.openBlock(),e.createBlock(oe,{key:1,"current-page":n.value,"total-pages":N.value,total:y.value.length,"page-size":r.value,"show-pagination":t.showPagination,selectable:t.selectable,"selected-count":t.selectedItems.length,variant:t.paginationVariant,padding:t.paginationPadding,"onUpdate:currentPage":E[0]||(E[0]=M=>n.value=M),"onUpdate:pageSize":E[1]||(E[1]=M=>r.value=M)},{footer:e.withCtx(()=>[e.renderSlot(k.$slots,"footer")]),_:3},8,["current-page","total-pages","total","page-size","show-pagination","selectable","selected-count","variant","padding"])):e.createCommentVNode("",!0)],2))}},et={__name:"DataTableCell",props:{item:{type:Object,required:!0},column:{type:Object,required:!0},value:{type:[String,Number,Boolean,Object,Array],default:null},align:{type:String,default:"left",validator:t=>["left","center","right"].includes(t)},width:{type:String,default:null},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},textSize:{type:String,default:"sm",validator:t=>["xs","sm","base","lg"].includes(t)},textColor:{type:String,default:"slate-900"}},setup(t){const l=t,a=e.computed(()=>{const s=l.value??o();return l.column.formatter?l.column.formatter(s,l.item):s}),o=()=>l.column.accessor?l.column.accessor(l.item):l.column.key.split(".").reduce((s,i)=>s?.[i],l.item),n=m.cva("whitespace-nowrap",{variants:{align:{left:"text-left",center:"text-center",right:"text-right"},padding:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"},textSize:{xs:"text-xs",sm:"text-sm",base:"text-base",lg:"text-lg"}},defaultVariants:{align:"left",padding:"normal",textSize:"sm"}}),r=e.computed(()=>{const s=l.align||l.column.align||"left",i=`text-${l.textColor}`,u=l.width?`w-${l.width}`:"";return c(n({align:s,padding:l.padding,textSize:l.textSize}),i,u,l.column.cellClasses)});return(s,i)=>(e.openBlock(),e.createElementBlock("td",{class:e.normalizeClass(r.value)},[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.value),1)])],2))}},ao={class:"flex-1 min-w-64"},lo={class:"relative"},oo={key:0,class:"min-w-32"},no=["value"],ro={key:1,class:"flex items-center gap-2"},so={key:2,class:"flex items-center gap-2"},io={class:"flex items-center gap-2 ml-auto"},co={class:"flex items-center gap-2 flex-wrap"},tt={__name:"DataTableFilters",props:{searchQuery:{type:String,default:""},searchPlaceholder:{type:String,default:"Search..."},selectedStatus:{type:String,default:""},statusOptions:{type:Array,default:()=>[]},showDateFilter:{type:Boolean,default:!1},dateFrom:{type:String,default:""},dateTo:{type:String,default:""},showExport:{type:Boolean,default:!1},showAdd:{type:Boolean,default:!1},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},emits:["update:searchQuery","update:selectedStatus","update:dateFrom","update:dateTo","export","add","clear-filters"],setup(t,{emit:l}){const a={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" /></svg>'},o={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>'},n={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3" /></svg>'},r={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" /></svg>'},s=t,i=l,u=m.cva("flex flex-wrap items-center gap-4 border-b border-slate-200",{variants:{variant:{default:"bg-slate-50",minimal:"bg-transparent border-slate-100",bordered:"bg-slate-100 border-slate-300"},padding:{compact:"p-2",normal:"p-4",comfortable:"p-6"}},defaultVariants:{variant:"default",padding:"normal"}}),v=m.cva("border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",{variants:{size:{sm:"text-sm px-2 py-1",md:"text-sm px-3 py-2",lg:"text-base px-4 py-3"}},defaultVariants:{size:"md"}}),p=m.cva("rounded-md flex items-center gap-2 font-medium transition-colors",{variants:{variant:{default:"text-slate-600 hover:text-slate-800 border border-slate-300 hover:bg-slate-50",primary:"text-white bg-blue-600 hover:bg-blue-700 border border-blue-600",success:"text-white bg-green-600 hover:bg-green-700 border border-green-600",ghost:"text-slate-600 hover:text-slate-800 hover:bg-slate-100"},size:{sm:"px-2 py-1 text-xs",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"}},defaultVariants:{variant:"default",size:"md"}}),x=m.cva("border-b",{variants:{variant:{default:"px-4 py-2 bg-blue-50 border-blue-200",minimal:"px-2 py-1 bg-slate-50 border-slate-100",bordered:"px-4 py-3 bg-blue-100 border-blue-300"}},defaultVariants:{variant:"default"}}),y=e.computed(()=>s.searchQuery||s.selectedStatus||s.dateFrom||s.dateTo),N=e.computed(()=>{const z=[];if(s.searchQuery&&s.searchQuery.trim()&&z.push({key:"search",label:"Search",value:s.searchQuery}),s.selectedStatus){const w=s.statusOptions.find(S=>S.value===s.selectedStatus);z.push({key:"status",label:"Status",value:w?.label||s.selectedStatus})}if(s.dateFrom||s.dateTo){let w="";s.dateFrom&&s.dateTo?w=`${s.dateFrom} to ${s.dateTo}`:s.dateFrom?w=`From ${s.dateFrom}`:s.dateTo&&(w=`Until ${s.dateTo}`),w&&z.push({key:"date",label:"Date Range",value:w})}return z}),h=e.computed(()=>c(u({variant:s.variant,padding:s.padding}))),f=e.computed(()=>"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-slate-400"),d=e.computed(()=>c(v({size:"md"}),"w-full pl-10 focus:border-transparent")),b=e.computed(()=>"absolute right-2 top-1/2 transform -translate-y-1/2 text-slate-400 hover:text-slate-600 p-1"),g=e.computed(()=>c(v({size:"md"}),"w-full focus:border-transparent")),C=e.computed(()=>c(v({size:"md"}))),V=e.computed(()=>"text-slate-500"),D=e.computed(()=>c(p({variant:"default",size:"md"}))),F=e.computed(()=>c(p({variant:"primary",size:"md"}))),P=e.computed(()=>c(p({variant:"success",size:"md"}))),$=e.computed(()=>c(x({variant:s.variant}))),I=e.computed(()=>"text-sm text-blue-700 font-medium"),B=e.computed(()=>"flex items-center gap-1 bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-sm"),T=e.computed(()=>"text-blue-600 hover:text-blue-800 p-0.5"),j=()=>{i("update:searchQuery",""),i("update:selectedStatus",""),i("update:dateFrom",""),i("update:dateTo",""),i("clear-filters")},R=z=>{switch(z){case"search":i("update:searchQuery","");break;case"status":i("update:selectedStatus","");break;case"date":i("update:dateFrom",""),i("update:dateTo","");break}};return(z,w)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:e.normalizeClass(h.value)},[e.createElementVNode("div",ao,[e.createElementVNode("div",lo,[e.createVNode(a,{class:e.normalizeClass(f.value)},null,8,["class"]),e.createVNode(U,{"model-value":t.searchQuery,onInput:w[0]||(w[0]=S=>z.$emit("update:searchQuery",S.target.value)),placeholder:t.searchPlaceholder,class:e.normalizeClass(d.value)},null,8,["model-value","placeholder","class"]),t.searchQuery?(e.openBlock(),e.createBlock(A,{key:0,onClick:w[1]||(w[1]=S=>z.$emit("update:searchQuery","")),class:e.normalizeClass(b.value)},{default:e.withCtx(()=>[e.createVNode(o,{class:"w-4 h-4"})]),_:1},8,["class"])):e.createCommentVNode("",!0)])]),t.statusOptions.length>0?(e.openBlock(),e.createElementBlock("div",oo,[e.createVNode(X,{"model-value":t.selectedStatus,onChange:w[2]||(w[2]=S=>z.$emit("update:selectedStatus",S.target.value)),class:e.normalizeClass(g.value)},{default:e.withCtx(()=>[w[7]||(w[7]=e.createElementVNode("option",{value:""},"All Status",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.statusOptions,S=>(e.openBlock(),e.createElementBlock("option",{key:S.value,value:S.value},e.toDisplayString(S.label),9,no))),128))]),_:1},8,["model-value","class"])])):e.createCommentVNode("",!0),t.showDateFilter?(e.openBlock(),e.createElementBlock("div",ro,[e.createVNode(U,{type:"date","model-value":t.dateFrom,onInput:w[3]||(w[3]=S=>z.$emit("update:dateFrom",S.target.value)),class:e.normalizeClass(C.value)},null,8,["model-value","class"]),e.createElementVNode("span",{class:e.normalizeClass(V.value)},"to",2),e.createVNode(U,{type:"date","model-value":t.dateTo,onInput:w[4]||(w[4]=S=>z.$emit("update:dateTo",S.target.value)),class:e.normalizeClass(C.value)},null,8,["model-value","class"])])):e.createCommentVNode("",!0),z.$slots.filters?(e.openBlock(),e.createElementBlock("div",so,[e.renderSlot(z.$slots,"filters")])):e.createCommentVNode("",!0),e.createElementVNode("div",io,[y.value?(e.openBlock(),e.createBlock(A,{key:0,onClick:j,class:e.normalizeClass(D.value)},{default:e.withCtx(()=>[...w[8]||(w[8]=[e.createTextVNode(" Clear Filters ",-1)])]),_:1},8,["class"])):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createBlock(A,{key:1,onClick:w[5]||(w[5]=S=>z.$emit("export")),class:e.normalizeClass(F.value)},{default:e.withCtx(()=>[e.createVNode(n,{class:"w-4 h-4"}),w[9]||(w[9]=e.createTextVNode(" Export ",-1))]),_:1},8,["class"])):e.createCommentVNode("",!0),t.showAdd?(e.openBlock(),e.createBlock(A,{key:2,onClick:w[6]||(w[6]=S=>z.$emit("add")),class:e.normalizeClass(P.value)},{default:e.withCtx(()=>[e.createVNode(r,{class:"w-4 h-4"}),w[10]||(w[10]=e.createTextVNode(" Add New ",-1))]),_:1},8,["class"])):e.createCommentVNode("",!0)])],2),N.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass($.value)},[e.createElementVNode("div",co,[e.createElementVNode("span",{class:e.normalizeClass(I.value)},"Active filters:",2),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,S=>(e.openBlock(),e.createElementBlock("div",{key:S.key,class:e.normalizeClass(B.value)},[e.createElementVNode("span",null,e.toDisplayString(S.label)+": "+e.toDisplayString(S.value),1),e.createVNode(A,{onClick:H=>R(S.key),class:e.normalizeClass(T.value)},{default:e.withCtx(()=>[e.createVNode(o,{class:"w-3 h-3"})]),_:1},8,["onClick","class"])],2))),128))])],2)):e.createCommentVNode("",!0)]))}},uo={class:"flex items-center gap-3"},mo={key:0,class:"flex items-center gap-3"},fo={class:"text-sm text-slate-600"},vo={class:"flex items-center gap-2"},po={class:"flex items-center gap-3"},go=["onClick","title"],ho={key:1,class:"relative"},bo={class:"p-3"},ko={class:"space-y-1"},yo={class:"flex items-center gap-2 cursor-pointer w-full"},xo=["checked","onChange"],Co=["disabled"],wo={key:3,class:"flex items-center gap-2"},Bo={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m0 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75" /></svg>'},Vo={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" /></svg>'},So={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" /></svg>'},No={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 9h16.5m-16.5 6.75h16.5" /></svg>'},zo={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14" /></svg>'},Eo=[{key:"delete",label:"Delete",icon:{template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" /></svg>'},variant:"danger"},{key:"edit",label:"Edit",icon:{template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10" /></svg>'},variant:"primary"}],$o={name:"DataTableToolBar"},at=Object.assign($o,{props:{selectedItems:{type:Array,default:()=>[]},totalItems:{type:Number,default:0},bulkActions:{type:Array,default:()=>Eo},showDensityToggle:{type:Boolean,default:!0},showColumnToggle:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},isRefreshing:{type:Boolean,default:!1},density:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},toggleableColumns:{type:Array,default:()=>[]},visibleColumns:{type:Array,default:()=>[]},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},emits:["bulk-action","update:density","toggle-column","refresh"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(!1),r=e.ref(null),s=e.ref(null),i=e.computed(()=>a.selectedItems.length),u=[{value:"compact",label:"Compact",icon:zo},{value:"normal",label:"Normal",icon:No},{value:"comfortable",label:"Comfortable",icon:So}],v=m.cva("flex items-center justify-between border-b border-slate-200",{variants:{variant:{default:"bg-white",minimal:"bg-transparent border-slate-100",bordered:"bg-slate-50 border-slate-300"},padding:{compact:"p-2",normal:"p-4",comfortable:"p-6"}},defaultVariants:{variant:"default",padding:"normal"}}),p=m.cva("px-3 py-1.5 text-sm font-medium rounded-md flex items-center gap-1 transition-colors",{variants:{variant:{danger:"text-red-700 bg-red-50 hover:bg-red-100 border border-red-200",primary:"text-blue-700 bg-blue-50 hover:bg-blue-100 border border-blue-200",secondary:"text-slate-700 bg-slate-50 hover:bg-slate-100 border border-slate-200"}},defaultVariants:{variant:"secondary"}}),x=m.cva("p-2 border border-slate-300 transition-colors",{variants:{active:{true:"bg-blue-50 text-blue-600 border-blue-300",false:"bg-white text-slate-600 hover:bg-slate-50"},position:{first:"rounded-l-md border-r-0",middle:"border-x-0",last:"rounded-r-md border-l-0"}},defaultVariants:{active:!1,position:"middle"}}),y=m.cva("px-3 py-2 text-sm border border-slate-300 rounded-md flex items-center gap-2 transition-colors",{variants:{state:{normal:"text-slate-600 hover:text-slate-800 hover:bg-slate-50",refreshing:"text-slate-600 opacity-75 cursor-not-allowed"}},defaultVariants:{state:"normal"}}),N=e.computed(()=>c(v({variant:a.variant,padding:a.padding}))),h=e.computed(()=>"text-sm text-slate-600"),f=e.computed(()=>"flex items-center"),d=e.computed(()=>"flex items-center gap-2 px-3 py-2 text-sm text-slate-600 hover:text-slate-800 border border-slate-300 rounded-md hover:bg-slate-50 transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1"),b=e.computed(()=>"absolute right-0 top-full mt-1 w-56 bg-white border border-slate-200 rounded-lg shadow-lg z-50 max-h-64 overflow-y-auto"),g=e.computed(()=>"text-xs font-medium text-slate-500 uppercase tracking-wider mb-2 border-b border-slate-100 pb-2"),C=e.computed(()=>"py-1 hover:bg-slate-50 rounded transition-colors"),V=e.computed(()=>"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500 focus:ring-2 focus:ring-offset-1"),D=e.computed(()=>"text-sm text-slate-700 flex-1 select-none"),F=z=>{r.value&&s.value&&!r.value.contains(z.target)&&!s.value.contains(z.target)&&(n.value=!1)},P=()=>{n.value=!n.value},$=z=>c(p({variant:z.variant||"secondary"})),I=z=>{let w="middle";return z==="compact"?w="first":z==="comfortable"&&(w="last"),c(x({active:a.density===z,position:w}))},B=()=>c(y({state:a.isRefreshing?"refreshing":"normal"})),T=()=>c("w-4 h-4",{"animate-spin":a.isRefreshing}),j=z=>a.visibleColumns.includes(z),R=(z,w)=>{o("toggle-column",{column:z,visible:w})};return e.onMounted(()=>{document.addEventListener("click",F)}),e.onUnmounted(()=>{document.removeEventListener("click",F)}),(z,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(N.value)},[e.createElementVNode("div",uo,[i.value>0?(e.openBlock(),e.createElementBlock("div",mo,[e.createElementVNode("span",fo,e.toDisplayString(i.value)+" selected ",1),e.createElementVNode("div",vo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bulkActions,S=>(e.openBlock(),e.createBlock(A,{key:S.key,onClick:H=>z.$emit("bulk-action",{action:S.key,items:t.selectedItems}),class:e.normalizeClass($(S))},{default:e.withCtx(()=>[S.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.icon),{key:0,class:"w-4 h-4"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(S.label),1)]),_:2},1032,["onClick","class"]))),128))])])):t.totalItems>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(h.value)},e.toDisplayString(t.totalItems)+" "+e.toDisplayString(t.totalItems===1?"item":"items"),3)):e.createCommentVNode("",!0)]),e.createElementVNode("div",po,[t.showDensityToggle?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(f.value)},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,S=>e.createElementVNode("button",{key:S.value,onClick:H=>z.$emit("update:density",S.value),class:e.normalizeClass(I(S.value)),title:S.label,type:"button"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.icon),{class:"w-4 h-4"}))],10,go)),64))],2)):e.createCommentVNode("",!0),t.showColumnToggle?(e.openBlock(),e.createElementBlock("div",ho,[e.createElementVNode("button",{onClick:e.withModifiers(P,["stop"]),class:e.normalizeClass(d.value),type:"button",ref_key:"columnToggleButton",ref:r},[e.createVNode(Bo,{class:"w-4 h-4"}),w[2]||(w[2]=e.createElementVNode("span",null,"Columns",-1))],2),e.withDirectives(e.createElementVNode("div",{ref_key:"columnMenu",ref:s,class:e.normalizeClass(b.value),onClick:w[0]||(w[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",bo,[e.createElementVNode("div",{class:e.normalizeClass(g.value)}," Show Columns ",2),e.createElementVNode("div",ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.toggleableColumns,S=>(e.openBlock(),e.createElementBlock("div",{key:S.key,class:e.normalizeClass(C.value)},[e.createElementVNode("label",yo,[e.createElementVNode("input",{type:"checkbox",checked:j(S.key),onChange:H=>R(S.key,H.target.checked),class:e.normalizeClass(V.value)},null,42,xo),e.createElementVNode("span",{class:e.normalizeClass(D.value)},e.toDisplayString(S.label),3)])],2))),128))])])],2),[[e.vShow,n.value]])])):e.createCommentVNode("",!0),t.showRefresh?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:w[1]||(w[1]=S=>z.$emit("refresh")),disabled:t.isRefreshing,class:e.normalizeClass(B()),type:"button"},[e.createVNode(Vo,{class:e.normalizeClass(T())},null,8,["class"]),w[3]||(w[3]=e.createElementVNode("span",null,"Refresh",-1))],10,Co)):e.createCommentVNode("",!0),z.$slots.actions?(e.openBlock(),e.createElementBlock("div",wo,[e.renderSlot(z.$slots,"actions")])):e.createCommentVNode("",!0)])],2))}}),Do={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12"},To={class:"grid grid-cols-1 md:grid-cols-4 gap-8"},Mo={class:"col-span-1 md:col-span-2"},Lo={class:"space-y-2"},Io={class:"flex space-x-4"},jo={class:"flex flex-col md:flex-row justify-between items-center"},Ao={class:"flex space-x-6 mt-4 md:mt-0"},lt={__name:"Footer",props:{className:{type:String,default:""}},setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("Text"),r=e.resolveComponent("Typography"),s=e.resolveComponent("Link"),i=e.resolveComponent("Icon"),u=e.resolveComponent("Divider");return e.openBlock(),e.createElementBlock("footer",{class:e.normalizeClass(e.unref(c)("bg-gray-50 border-t border-gray-200",t.className))},[e.createElementVNode("div",Do,[e.createElementVNode("div",To,[e.createElementVNode("div",Mo,[e.renderSlot(l.$slots,"brand",{},()=>[e.createVNode(o,{class:"mb-4"}),e.createVNode(n,{class:"text-gray-600 max-w-md"},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode(" Building beautiful applications with modern Vue.js components. ",-1)])]),_:1})])]),e.createElementVNode("div",null,[e.renderSlot(l.$slots,"links",{},()=>[e.createVNode(r,{variant:"h6",class:"mb-4"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Quick Links",-1)])]),_:1}),e.createElementVNode("div",Lo,[e.createVNode(s,{href:"#",class:"block text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode("About",-1)])]),_:1}),e.createVNode(s,{href:"#",class:"block text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[3]||(a[3]=[e.createTextVNode("Services",-1)])]),_:1}),e.createVNode(s,{href:"#",class:"block text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[4]||(a[4]=[e.createTextVNode("Contact",-1)])]),_:1})])])]),e.createElementVNode("div",null,[e.renderSlot(l.$slots,"social",{},()=>[e.createVNode(r,{variant:"h6",class:"mb-4"},{default:e.withCtx(()=>[...a[5]||(a[5]=[e.createTextVNode("Follow Us",-1)])]),_:1}),e.createElementVNode("div",Io,[e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[e.createVNode(i,{name:"twitter",class:"h-5 w-5"})]),_:1}),e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[e.createVNode(i,{name:"github",class:"h-5 w-5"})]),_:1})])])])]),e.createVNode(u,{class:"my-8"}),e.createElementVNode("div",jo,[e.renderSlot(l.$slots,"copyright",{},()=>[e.createVNode(n,{class:"text-gray-600"},{default:e.withCtx(()=>[e.createTextVNode(" © "+e.toDisplayString(new Date().getFullYear())+" Your Company. All rights reserved. ",1)]),_:1})]),e.renderSlot(l.$slots,"legal",{},()=>[e.createElementVNode("div",Ao,[e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[6]||(a[6]=[e.createTextVNode("Privacy",-1)])]),_:1}),e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[7]||(a[7]=[e.createTextVNode("Terms",-1)])]),_:1})])])])])],2)}}},Fo={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"},Po={class:"flex justify-between items-center h-16"},Ro={class:"flex items-center"},_o={class:"hidden md:block"},qo={class:"flex items-center space-x-4"},Ho={class:"md:hidden"},ot={__name:"Header",props:{className:{type:String,default:""}},emits:["toggle-mobile-menu"],setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("MainNavigation"),r=e.resolveComponent("Button"),s=e.resolveComponent("Icon");return e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(e.unref(c)("bg-white border-b border-gray-200 shadow-sm",t.className))},[e.createElementVNode("div",Fo,[e.createElementVNode("div",Po,[e.createElementVNode("div",Ro,[e.renderSlot(l.$slots,"logo",{},()=>[e.createVNode(o)])]),e.createElementVNode("div",_o,[e.renderSlot(l.$slots,"navigation",{},()=>[e.createVNode(n)])]),e.createElementVNode("div",qo,[e.renderSlot(l.$slots,"actions",{},()=>[e.createVNode(r,{variant:"ghost",size:"sm"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Sign In",-1)])]),_:1}),e.createVNode(r,{size:"sm"},{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode("Sign Up",-1)])]),_:1})])]),e.createElementVNode("div",Ho,[e.renderSlot(l.$slots,"mobile-toggle",{},()=>[e.createVNode(r,{variant:"ghost",size:"sm",onClick:a[0]||(a[0]=i=>l.$emit("toggle-mobile-menu"))},{default:e.withCtx(()=>[e.createVNode(s,{name:"menu",class:"h-5 w-5"})]),_:1})])])])])],2)}}},Oo={class:"p-6"},Uo={class:"mb-8"},Zo={class:"space-y-2"},Go={class:"mt-auto pt-8"},Ko={class:"flex items-center space-x-3"},nt={__name:"Sidebar",props:{items:{type:Array,default:()=>[{label:"Dashboard",href:"/dashboard",icon:"home",active:!0},{label:"Users",href:"/users",icon:"users"},{label:"Settings",href:"/settings",icon:"settings"}]},className:{type:String,default:""}},setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("SidebarNavigation"),r=e.resolveComponent("Divider"),s=e.resolveComponent("Avatar"),i=e.resolveComponent("Text");return e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(e.unref(c)("bg-white border-r border-gray-200 h-full",t.className))},[e.createElementVNode("div",Oo,[e.createElementVNode("div",Uo,[e.renderSlot(l.$slots,"header",{},()=>[e.createVNode(o)])]),e.createElementVNode("nav",Zo,[e.renderSlot(l.$slots,"navigation",{},()=>[e.createVNode(n,{items:t.items},null,8,["items"])])]),e.createElementVNode("div",Go,[e.renderSlot(l.$slots,"footer",{},()=>[e.createVNode(r,{class:"mb-4"}),e.createElementVNode("div",Ko,[e.createVNode(s,{size:"sm"}),e.createElementVNode("div",null,[e.createVNode(i,{class:"text-sm font-medium"},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode("John Doe",-1)])]),_:1}),e.createVNode(i,{class:"text-xs text-gray-500"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("john@example.com",-1)])]),_:1})])])])])])],2)}}},rt={__name:"Timeline",props:{orientation:{type:String,default:"vertical",validator:t=>["vertical","horizontal"].includes(t)}},setup(t){return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex",t.orientation==="vertical"?"flex-col":"flex-row"])},[e.renderSlot(l.$slots,"default")],2))}},Qo={key:0,class:"absolute left-3 top-0 w-0.5 h-full bg-slate-200"},Yo={class:"z-10 flex items-center justify-center w-6 h-6 rounded-full border-2 border-blue-500 bg-white text-blue-500"},Xo={class:"text-slate-900 font-medium"},Wo={key:0,class:"text-slate-500 text-sm"},Jo={class:"mt-2 text-slate-600 text-sm"},st={__name:"TimelineItem",props:{title:{type:String,required:!0},subtitle:{type:String,default:""},orientation:{type:String,default:"vertical",validator:t=>["vertical","horizontal"].includes(t)}},setup(t){return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex",t.orientation==="vertical"?"items-start mb-8 last:mb-0":"flex-col items-center mx-8 last:mx-0"])},[t.orientation==="vertical"?(e.openBlock(),e.createElementBlock("div",Qo)):e.createCommentVNode("",!0),e.createElementVNode("div",Yo,[e.renderSlot(l.$slots,"icon",{},()=>[a[0]||(a[0]=e.createElementVNode("div",{class:"w-2 h-2 rounded-full bg-blue-500"},null,-1))])]),e.createElementVNode("div",{class:e.normalizeClass(["ml-6",t.orientation==="horizontal"?"mt-2 text-center":""])},[e.createElementVNode("h3",Xo,[e.renderSlot(l.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])]),t.subtitle?(e.openBlock(),e.createElementBlock("p",Wo,[e.renderSlot(l.$slots,"subtitle",{},()=>[e.createTextVNode(e.toDisplayString(t.subtitle),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Jo,[e.renderSlot(l.$slots,"default")])],2)],2))}},it=(t,l)=>{const a=t.__vccOpts||t;for(const[o,n]of l)a[o]=n;return a},en={name:"AuthLayout",props:{title:{type:String,default:null},subtitle:{type:String,default:null},primaryLogoPrefix:{type:String,default:"e"},primaryLogoText:{type:String,default:"HORIZON"},secondaryLogoPrefix:{type:String,default:"e"},secondaryLogoText:{type:String,default:"Risk & Compliance"},quote:{type:String,default:""},primaryColor:{type:String,default:"#e74c3c"},backgroundColor:{type:String,default:"#2c2c2c"},backgroundImage:{type:String,default:"https://images.unsplash.com/photo-1497366216548-37526070297c?ixlib=rb-4.0.3&auto=format&fit=crop&w=2069&q=80"},backgroundOpacity:{type:Number,default:.4},companyName:{type:String,default:"SOFTWARE"},companyType:{type:String,default:"TECHNOLOGIES"},companyTagline:{type:String,default:"People | Processes | Governance"},companyInitials:{type:String,default:"ST"},appName:{type:String,default:"eHorizon eBoard X"},appVersion:{type:String,default:"Version 2.0"},copyright:{type:String,default:"Copyright © 2025 Software Technologies Limited"},socialLinks:{type:Array,default:()=>[{name:"linkedin",url:"#",icon:"fab fa-linkedin-in",variant:"primary"},{name:"facebook",url:"#",icon:"fab fa-facebook-f",variant:"primary"},{name:"twitter",url:"#",icon:"fab fa-twitter",variant:"info"}]}},setup(t){return{currentYear:e.computed(()=>new Date().getFullYear())}}},tn={class:"container mx-auto px-4 relative z-10"},an={class:"grid lg:grid-cols-10 gap-8 items-center min-h-screen"},ln={class:"lg:col-span-6 text-white text-center lg:text-left space-y-6"},on={class:"mb-6"},nn={class:"text-4xl lg:text-6xl font-bold mb-2"},rn={class:"text-white"},sn={class:"flex items-center justify-center lg:justify-start mb-6"},cn={class:"text-3xl lg:text-4xl font-bold text-white"},dn={class:"lg:col-span-4"},un={class:"bg-white rounded-lg shadow-xl p-6 lg:p-8 max-w-md mx-auto"},mn={key:0,class:"mb-6"},fn={class:"text-center"},vn={class:"text-2xl font-bold text-gray-900"},pn={key:0,class:"text-gray-600 mt-2"},gn={class:"space-y-6"},hn={key:1,class:"mt-6"},bn={key:0,class:"mt-6 text-center"},kn={class:"absolute bottom-4 right-4 text-right"},yn={class:"flex items-end justify-end mb-2"},xn={class:"text-right mr-3"},Cn={class:"text-red-500 font-bold text-xs"},wn={class:"text-white text-xs"},Bn={class:"text-white/70 text-xs"},Vn={class:"w-8 h-8 bg-red-500 rounded flex items-center justify-center text-white font-bold text-xs"},Sn={class:"text-white/70 text-xs"},Nn={class:"absolute bottom-4 left-4 flex gap-2"},zn=["href"];function En(t,l,a,o,n,r){return e.openBlock(),e.createElementBlock("div",{class:"min-h-screen relative flex items-center justify-center",style:e.normalizeStyle({backgroundColor:a.backgroundColor})},[e.createElementVNode("div",{class:"absolute inset-0 bg-cover bg-center",style:e.normalizeStyle({backgroundImage:`url('${a.backgroundImage}')`,opacity:a.backgroundOpacity})},null,4),e.createElementVNode("div",tn,[e.createElementVNode("div",an,[e.createElementVNode("div",ln,[e.createElementVNode("div",on,[e.createElementVNode("div",nn,[e.createElementVNode("span",{style:e.normalizeStyle({color:a.primaryColor})},e.toDisplayString(a.primaryLogoPrefix),5),e.createElementVNode("span",rn,e.toDisplayString(a.primaryLogoText),1)]),e.createElementVNode("div",{class:"h-0.5 w-30 mx-auto lg:mx-0",style:e.normalizeStyle({backgroundColor:a.primaryColor})},null,4)]),e.createElementVNode("div",sn,[e.createElementVNode("div",{class:"flex items-center justify-center w-15 h-15 rounded-lg mr-4 text-white font-bold text-xl",style:e.normalizeStyle({backgroundColor:a.primaryColor})},e.toDisplayString(a.secondaryLogoPrefix),5),e.createElementVNode("span",cn,e.toDisplayString(a.secondaryLogoText),1)]),l[0]||(l[0]=e.createElementVNode("div",{class:"max-w-md mx-auto lg:mx-0"},[e.createElementVNode("p",{class:"text-sm lg:text-base font-light text-white/70 italic leading-relaxed"})],-1))]),e.createElementVNode("div",dn,[e.createElementVNode("div",un,[t.$slots["card-header"]||a.title?(e.openBlock(),e.createElementBlock("div",mn,[e.renderSlot(t.$slots,"card-header",{},()=>[e.createElementVNode("div",fn,[e.createElementVNode("h1",vn,e.toDisplayString(a.title),1),a.subtitle?(e.openBlock(),e.createElementBlock("p",pn,e.toDisplayString(a.subtitle),1)):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0),e.createElementVNode("div",gn,[e.renderSlot(t.$slots,"default")]),t.$slots["card-footer"]?(e.openBlock(),e.createElementBlock("div",hn,[e.renderSlot(t.$slots,"card-footer")])):e.createCommentVNode("",!0)]),t.$slots.links?(e.openBlock(),e.createElementBlock("div",bn,[e.renderSlot(t.$slots,"links")])):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",kn,[e.createElementVNode("div",yn,[e.createElementVNode("div",xn,[e.createElementVNode("div",Cn,e.toDisplayString(a.companyName),1),e.createElementVNode("div",wn,e.toDisplayString(a.companyType),1),e.createElementVNode("div",Bn,e.toDisplayString(a.companyTagline),1)]),e.createElementVNode("div",Vn,e.toDisplayString(a.companyInitials),1)]),e.createElementVNode("div",Sn,[e.createElementVNode("div",null,e.toDisplayString(a.appName)+" ("+e.toDisplayString(a.appVersion)+")",1),e.createElementVNode("div",null,e.toDisplayString(a.copyright),1)])]),e.createElementVNode("div",Nn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.socialLinks,s=>(e.openBlock(),e.createElementBlock("a",{key:s.name,href:s.url,class:e.normalizeClass(["w-8 h-7 flex items-center justify-center rounded text-xs transition-colors",s.variant==="primary"?"bg-blue-600 hover:bg-blue-700 text-white":s.variant==="info"?"bg-cyan-500 hover:bg-cyan-600 text-white":"bg-gray-600 hover:bg-gray-700 text-white"])},[e.createElementVNode("i",{class:e.normalizeClass(s.icon)},null,2)],10,zn))),128))])],4)}const ct=it(en,[["render",En]]),$n={class:"min-h-screen bg-gray-50"},Dn={class:"flex-1"},Tn={key:0,class:"bg-white border-b border-gray-200"},Mn={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4"},Ln={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},dt={__name:"DefaultLayout",props:{navigationItems:{type:Array,default:()=>[{label:"Home",href:"/",active:!0},{label:"About",href:"/about"},{label:"Services",href:"/services"},{label:"Contact",href:"/contact"}]},breadcrumbItems:{type:Array,default:()=>[]},showBreadcrumb:{type:Boolean,default:!1}},setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("MainNavigation"),r=e.resolveComponent("Button"),s=e.resolveComponent("Header"),i=e.resolveComponent("Breadcrumb"),u=e.resolveComponent("Text"),v=e.resolveComponent("Footer");return e.openBlock(),e.createElementBlock("div",$n,[e.createVNode(s,null,{logo:e.withCtx(()=>[e.renderSlot(l.$slots,"logo",{},()=>[e.createVNode(o)])]),navigation:e.withCtx(()=>[e.renderSlot(l.$slots,"navigation",{},()=>[e.createVNode(n,{items:t.navigationItems},null,8,["items"])])]),actions:e.withCtx(()=>[e.renderSlot(l.$slots,"header-actions",{},()=>[e.createVNode(r,{variant:"ghost",size:"sm"},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode("Sign In",-1)])]),_:1}),e.createVNode(r,{size:"sm"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Get Started",-1)])]),_:1})])]),_:3}),e.createElementVNode("main",Dn,[t.showBreadcrumb?(e.openBlock(),e.createElementBlock("div",Tn,[e.createElementVNode("div",Mn,[e.renderSlot(l.$slots,"breadcrumb",{},()=>[e.createVNode(i,{items:t.breadcrumbItems},null,8,["items"])])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ln,[e.renderSlot(l.$slots,"default")])]),e.createVNode(v,null,{brand:e.withCtx(()=>[e.renderSlot(l.$slots,"footer-brand",{},()=>[e.createVNode(o,{class:"mb-4"}),e.createVNode(u,{class:"text-gray-600 max-w-md"},{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode(" Your application description goes here. ",-1)])]),_:1})])]),_:3})])}}},In={template:`
85
+ </svg>`},o=new Date,n=e.ref(o.getMonth()),r=e.ref(o.getFullYear()),s=e.ref(null),i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=e.computed(()=>new Date(r.value,n.value).toLocaleString("default",{month:"long"})),v=e.computed(()=>new Date(r.value,n.value+1,0).getDate()),p=e.computed(()=>new Date(r.value,n.value,1).getDay()),x=e.computed(()=>Array.from({length:p.value},(g,C)=>new Date(r.value,n.value,-C).getDate()).reverse()),y=e.computed(()=>{const g=x.value.length+v.value,C=g%7===0?0:7-g%7;return Array.from({length:C},(V,D)=>D+1)});function N(){n.value===0?(n.value=11,r.value--):n.value--}function h(){n.value===11?(n.value=0,r.value++):n.value++}function f(g){return o.getDate()===g&&o.getMonth()===n.value&&o.getFullYear()===r.value}function d(g){return s.value&&s.value.getDate()===g&&s.value.getMonth()===n.value&&s.value.getFullYear()===r.value}function b(g){s.value=new Date(r.value,n.value,g),emit("update:modelValue",s.value)}return(g,C)=>(e.openBlock(),e.createElementBlock("div",Nl,[e.createElementVNode("div",zl,[e.createVNode(A,{class:"p-2 rounded-lg hover:bg-slate-100",onClick:N,"aria-label":"Previous Month"},{default:e.withCtx(()=>[e.createVNode(l,{class:"w-5 h-5"})]),_:1}),e.createElementVNode("div",El,e.toDisplayString(u.value)+" "+e.toDisplayString(r.value),1),e.createVNode(A,{class:"p-2 rounded-lg hover:bg-slate-100",onClick:h,"aria-label":"Next Month"},{default:e.withCtx(()=>[e.createVNode(a,{class:"w-5 h-5"})]),_:1})]),e.createElementVNode("div",$l,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,V=>e.createElementVNode("div",{key:V},e.toDisplayString(V),1)),64))]),e.createElementVNode("div",Dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,V=>(e.openBlock(),e.createElementBlock("div",{key:"prev-"+V,class:"text-slate-400 text-sm"},e.toDisplayString(V),1))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,V=>(e.openBlock(),e.createBlock(A,{key:V,onClick:D=>b(V),class:e.normalizeClass(["w-10 h-10 rounded-full flex items-center justify-center mx-auto",f(V)?"bg-blue-500 text-white font-semibold":"",d(V)?"bg-blue-100 text-blue-600 font-semibold":"hover:bg-slate-100"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V),1)]),_:2},1032,["onClick","class"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,V=>(e.openBlock(),e.createElementBlock("div",{key:"next-"+V,class:"text-slate-400 text-sm"},e.toDisplayString(V),1))),128))])]))}},Tl={class:"flex items-start justify-between"},Ml={key:0,class:"flex items-center gap-2"},ae={__name:"DataTableHeader",props:{title:{type:String,default:null},description:{type:String,default:null},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},setup(t){const l=t,a=m.cva("border-b border-slate-200",{variants:{variant:{default:"bg-white",minimal:"bg-transparent border-none",bordered:"bg-slate-50 border-2"},padding:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}},defaultVariants:{variant:"default",padding:"normal"}}),o=m.cva("font-semibold text-slate-900",{variants:{size:{sm:"text-base",md:"text-lg",lg:"text-xl"}},defaultVariants:{size:"md"}}),n=m.cva("text-slate-600 mt-1",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}}),r=e.computed(()=>c(a({variant:l.variant,padding:l.padding}))),s=e.computed(()=>c(o({size:"md"}))),i=e.computed(()=>c(n({size:"md"})));return(u,v)=>t.title||t.description||u.$slots.header?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(r.value)},[e.renderSlot(u.$slots,"header",{},()=>[e.createElementVNode("div",Tl,[e.createElementVNode("div",null,[t.title?(e.openBlock(),e.createBlock(Q,{key:0,class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:1},8,["class"])):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createBlock(Q,{key:1,class:e.normalizeClass(i.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.description),1)]),_:1},8,["class"])):e.createCommentVNode("",!0)]),u.$slots.filters?(e.openBlock(),e.createElementBlock("div",Ml,[e.renderSlot(u.$slots,"filters")])):e.createCommentVNode("",!0)])])],2)):e.createCommentVNode("",!0)}},le={__name:"DataTableRow",props:{item:{type:Object,required:!0},columns:{type:Array,required:!0},index:{type:Number,required:!0},selectable:{type:Boolean,default:!1},isSelected:{type:Boolean,default:!1},striped:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!0},clickableRows:{type:Boolean,default:!1},density:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","bordered","minimal"].includes(t)}},emits:["toggle-selection","row-click"],setup(t,{emit:l}){const a=t,o=l,n=m.cva("transition-colors",{variants:{striped:{true:"odd:bg-slate-50/50",false:""},hoverable:{true:"hover:bg-slate-50",false:""},clickable:{true:"cursor-pointer hover:bg-slate-100",false:""},selected:{true:"bg-blue-50 border-blue-200",false:""},variant:{default:"",bordered:"border-b border-slate-200",minimal:"border-b border-slate-100"}},compoundVariants:[{hoverable:!0,clickable:!0,class:"hover:bg-slate-100"}],defaultVariants:{striped:!1,hoverable:!0,clickable:!1,selected:!1,variant:"default"}}),r=m.cva("whitespace-nowrap text-sm text-slate-900",{variants:{density:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"},align:{left:"text-left",center:"text-center",right:"text-right"}},defaultVariants:{density:"normal",align:"left"}}),s=f=>typeof f=="string"?f:f?.key||f?.field||"unknown",i=(f,d)=>{const b=s(d);return typeof d=="object"&&d.accessor?d.accessor(f):b&&b.includes(".")?b.split(".").reduce((g,C)=>g?.[C],f):f?.[b]},u=(f,d)=>{const b=i(f,d);return typeof d=="object"&&d.formatter?d.formatter(b,f):b==null?"":b instanceof Date?b.toLocaleDateString():Array.isArray(b)?b.join(", "):b},v=()=>{a.clickableRows&&o("row-click",{item:a.item,index:a.index})},p=f=>typeof f=="object"&&f.align?f.align:"left",x=e.computed(()=>c(n({striped:a.striped,hoverable:a.hoverable&&!a.clickableRows,clickable:a.clickableRows,selected:a.isSelected,variant:a.variant}))),y=f=>{const d=p(f);return c(r({density:a.density,align:d}),f.cellClasses)},N=e.computed(()=>c(r({density:a.density}),"w-12")),h=e.computed(()=>c(r({density:a.density,align:"right"}),"font-medium"));return(f,d)=>(e.openBlock(),e.createElementBlock("tr",{class:e.normalizeClass(x.value),onClick:v},[t.selectable?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(N.value)},[e.createVNode(Y,{modelValue:t.isSelected,"onUpdate:modelValue":d[0]||(d[0]=b=>f.$emit("toggle-selection",t.item))},null,8,["modelValue"])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,b=>(e.openBlock(),e.createElementBlock("td",{key:s(b),class:e.normalizeClass(y(b))},[e.renderSlot(f.$slots,`cell-${s(b)}`,{item:t.item,value:i(t.item,b),column:b,index:t.index},()=>[e.createTextVNode(e.toDisplayString(u(t.item,b)),1)])],2))),128)),f.$slots.actions?(e.openBlock(),e.createElementBlock("td",{key:1,class:e.normalizeClass(h.value)},[e.renderSlot(f.$slots,"actions",{item:t.item,index:t.index})],2)):e.createCommentVNode("",!0)],2))}},Ll={class:"flex items-center justify-between"},Il={key:0,class:"text-sm text-slate-600"},jl={key:1,class:"text-sm text-slate-600"},Al={key:2,class:"flex items-center gap-4"},Fl={key:3,class:"flex items-center gap-4"},Pl={class:"flex items-center gap-2"},Rl={class:"flex items-center gap-1"},_l=["disabled"],ql=["disabled"],Hl={class:"flex items-center gap-1"},Ol=["onClick"],Ul=["disabled"],Zl=["disabled"],Gl={class:"text-sm text-slate-600 ml-4"},oe={__name:"DataTablePagination",props:{currentPage:{type:Number,required:!0},totalPages:{type:Number,required:!0},total:{type:Number,required:!0},pageSize:{type:Number,required:!0},showPagination:{type:Boolean,default:!0},selectable:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},pageSizeOptions:{type:Array,default:()=>[5,10,25,50,100]},maxVisiblePages:{type:Number,default:7},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},emits:["update:currentPage","update:pageSize"],setup(t,{emit:l}){const a=t,o=m.cva("border-t border-slate-200",{variants:{variant:{default:"bg-slate-50",minimal:"bg-transparent border-slate-100",bordered:"bg-slate-100 border-t-2 border-slate-300"},padding:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}},defaultVariants:{variant:"default",padding:"normal"}}),n=m.cva("text-sm font-medium border rounded-md transition-colors duration-200",{variants:{state:{active:"bg-blue-600 text-white border-blue-600",inactive:"bg-white text-slate-700 border-slate-300 hover:bg-slate-50",disabled:"bg-slate-100 text-slate-400 border-slate-200 cursor-not-allowed"},size:{sm:"px-2 py-1",md:"px-3 py-2",lg:"px-4 py-3"}},defaultVariants:{state:"inactive",size:"md"}}),r=m.cva("text-slate-700",{variants:{size:{sm:"text-sm",md:"text-base",lg:"text-lg"}},defaultVariants:{size:"md"}}),s=m.cva("border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm min-w-[60px] focus:border-transparent",{variants:{size:{sm:"px-2 py-1",md:"px-3 py-2",lg:"px-4 py-3"}},defaultVariants:{size:"sm"}}),i=e.computed(()=>(a.currentPage-1)*a.pageSize+1),u=e.computed(()=>Math.min(a.currentPage*a.pageSize,a.total)),v=e.computed(()=>{const h=[],f=a.totalPages,d=a.currentPage,b=a.maxVisiblePages;if(f<=b)for(let g=1;g<=f;g++)h.push(g);else{const g=Math.floor(b/2);let C=Math.max(1,d-g),V=Math.min(f,C+b-1);V-C+1<b&&(C=Math.max(1,V-b+1));for(let D=C;D<=V;D++)h.push(D)}return h}),p=e.computed(()=>c(o({variant:a.variant,padding:a.padding}))),x=e.computed(()=>c(r({size:"md"}))),y=e.computed(()=>c(s({size:"sm"}))),N=(h,f)=>{let d="inactive";return f?d="disabled":h&&(d="active"),c(n({state:d,size:"md"}))};return(h,f)=>t.showPagination||h.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(p.value)},[e.createElementVNode("div",Ll,[t.selectable&&t.selectedCount>0?(e.openBlock(),e.createElementBlock("div",Il,e.toDisplayString(t.selectedCount)+" of "+e.toDisplayString(t.total)+" selected ",1)):(e.openBlock(),e.createElementBlock("div",jl," Showing "+e.toDisplayString(i.value)+" to "+e.toDisplayString(u.value)+" of "+e.toDisplayString(t.total)+" entries ",1)),h.$slots.footer?(e.openBlock(),e.createElementBlock("div",Al,[e.renderSlot(h.$slots,"footer")])):e.createCommentVNode("",!0),t.showPagination?(e.openBlock(),e.createElementBlock("div",Fl,[e.createElementVNode("div",Pl,[e.createVNode(ee,{for:"pageSize",class:e.normalizeClass(x.value),inline:!0},{default:e.withCtx(()=>[...f[5]||(f[5]=[e.createTextVNode("Show:",-1)])]),_:1},8,["class"]),e.createVNode(X,{id:"pageSize","model-value":t.pageSize.toString(),"onUpdate:modelValue":f[0]||(f[0]=d=>h.$emit("update:pageSize",parseInt(d))),class:e.normalizeClass(y.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pageSizeOptions,d=>(e.openBlock(),e.createBlock(te,{key:d,value:d.toString(),label:d.toString()},null,8,["value","label"]))),128))]),_:1},8,["model-value","class"])]),e.createElementVNode("div",Rl,[e.createElementVNode("button",{disabled:t.currentPage===1,onClick:f[1]||(f[1]=d=>h.$emit("update:currentPage",1)),class:e.normalizeClass(N(!1,t.currentPage===1)),title:"First page"},[...f[6]||(f[6]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"})],-1)])],10,_l),e.createElementVNode("button",{disabled:t.currentPage===1,onClick:f[2]||(f[2]=d=>h.$emit("update:currentPage",t.currentPage-1)),class:e.normalizeClass(N(!1,t.currentPage===1)),title:"Previous page"},[...f[7]||(f[7]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 19.5L8.25 12l7.5-7.5"})],-1)])],10,ql),e.createElementVNode("div",Hl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d,onClick:b=>h.$emit("update:currentPage",d),class:e.normalizeClass(N(d===t.currentPage,!1))},e.toDisplayString(d),11,Ol))),128))]),e.createElementVNode("button",{disabled:t.currentPage===t.totalPages,onClick:f[3]||(f[3]=d=>h.$emit("update:currentPage",t.currentPage+1)),class:e.normalizeClass(N(!1,t.currentPage===t.totalPages)),title:"Next page"},[...f[8]||(f[8]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"})],-1)])],10,Ul),e.createElementVNode("button",{disabled:t.currentPage===t.totalPages,onClick:f[4]||(f[4]=d=>h.$emit("update:currentPage",t.totalPages)),class:e.normalizeClass(N(!1,t.currentPage===t.totalPages)),title:"Last page"},[...f[9]||(f[9]=[e.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"})],-1)])],10,Zl)]),e.createElementVNode("div",Gl," Page "+e.toDisplayString(t.currentPage)+" of "+e.toDisplayString(t.totalPages),1)])):e.createCommentVNode("",!0)])],2)):e.createCommentVNode("",!0)}},Kl={class:"overflow-x-auto"},Ql=["onClick"],Yl={class:"flex items-center gap-2"},Xl={key:0,class:"flex flex-col"},Wl={key:0},Jl=["colspan"],eo={class:"text-center py-8"},to={class:"text-slate-500"},Je={__name:"DataTable",props:{data:{type:Array,required:!0},columns:{type:Array,required:!0},title:{type:String,default:null},description:{type:String,default:null},selectable:{type:Boolean,default:!1},selectedItems:{type:Array,default:()=>[]},sortBy:{type:String,default:null},sortOrder:{type:String,default:"asc",validator:t=>["asc","desc"].includes(t)},pageSize:{type:Number,default:10},showPagination:{type:Boolean,default:!0},striped:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!0},clickableRows:{type:Boolean,default:!1},emptyText:{type:String,default:"No data available"},rowKey:{type:String,default:"id"},variant:{type:String,default:"default",validator:t=>["default","bordered","minimal"].includes(t)},density:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},headerVariant:{type:String,default:"default"},headerPadding:{type:String,default:"normal"},paginationVariant:{type:String,default:"default"},paginationPadding:{type:String,default:"normal"}},emits:["selection-change","sort-change","row-click"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(1),r=e.ref(a.pageSize),s=e.ref(a.sortBy),i=e.ref(a.sortOrder),u=m.cva("bg-white border border-slate-200 rounded-lg overflow-hidden",{variants:{variant:{default:"shadow-sm",bordered:"border-2 border-slate-300",minimal:"border-none shadow-none bg-transparent"}},defaultVariants:{variant:"default"}}),v=m.cva("min-w-full",{variants:{variant:{default:"divide-y divide-slate-200",bordered:"border-collapse [&_td]:border [&_th]:border",minimal:"divide-y divide-slate-100"}},defaultVariants:{variant:"default"}}),p=m.cva("",{variants:{variant:{default:"bg-slate-50",bordered:"bg-slate-100 border-b-2 border-slate-300",minimal:"bg-transparent border-b border-slate-200"}},defaultVariants:{variant:"default"}}),x=m.cva("divide-y",{variants:{variant:{default:"bg-white divide-slate-200",bordered:"bg-white divide-slate-300",minimal:"bg-transparent divide-slate-100"}},defaultVariants:{variant:"default"}}),y=e.computed(()=>{let k=[...a.data];if(s.value){const E=a.columns.find(M=>M.key===s.value);E&&k.sort((M,_)=>{const O=g(M,E),K=g(_,E);return O<K?i.value==="asc"?-1:1:O>K?i.value==="asc"?1:-1:0})}return k}),N=e.computed(()=>Math.ceil(y.value.length/r.value)),h=e.computed(()=>{if(!a.showPagination)return y.value;const k=(n.value-1)*r.value,E=k+r.value;return y.value.slice(k,E)}),f=e.computed(()=>{let k=a.columns.length;return a.selectable&&k++,a.$slots?.actions&&k++,k}),d=e.computed(()=>y.value.length>0&&y.value.every(k=>V(k))),b=e.computed(()=>{const k=y.value.filter(E=>V(E)).length;return k>0&&k<y.value.length}),g=(k,E)=>E.accessor?E.accessor(k):E.key.split(".").reduce((M,_)=>M?.[_],k),C=(k,E)=>k[a.rowKey]||E,V=k=>a.selectedItems.some(E=>C(E)===C(k)),D=k=>{const E=[...a.selectedItems],M=E.findIndex(_=>C(_)===C(k));M>-1?E.splice(M,1):E.push(k),o("selection-change",E)},F=()=>{const k=d.value?[]:[...y.value];o("selection-change",k)},P=k=>{k.sortable&&(s.value===k.key?i.value=i.value==="asc"?"desc":"asc":(s.value=k.key,i.value="asc"),o("sort-change",{column:k.key,direction:i.value}))},$=k=>{o("row-click",k)},I=e.computed(()=>c(u({variant:a.variant}))),B=e.computed(()=>c(v({variant:a.variant}))),T=e.computed(()=>c(p({variant:a.variant}))),j=e.computed(()=>c(x({variant:a.variant}))),R=k=>c({compact:"px-4 py-2",normal:"px-6 py-3",comfortable:"px-8 py-4"}[a.density],"text-left text-xs font-medium text-slate-500 uppercase tracking-wider",{"cursor-pointer hover:bg-slate-100":k.sortable}),z=e.computed(()=>c({compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}[a.density],"whitespace-nowrap text-sm text-slate-900 w-12")),w=e.computed(()=>c({compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"}[a.density],"whitespace-nowrap text-sm font-medium")),S=e.computed(()=>c({compact:"px-4 py-4",normal:"px-6 py-6",comfortable:"px-8 py-8"}[a.density],"text-center")),H=(k,E)=>c({"text-blue-600":s.value===k.key&&i.value===E,"text-slate-300":s.value!==k.key||i.value!==E});return e.watch(()=>a.selectedItems,k=>{},{deep:!0}),e.watch(()=>a.pageSize,k=>{r.value=k}),(k,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(I.value)},[t.title||t.description||k.$slots.header?(e.openBlock(),e.createBlock(ae,{key:0,title:t.title,description:t.description,variant:t.headerVariant,padding:t.headerPadding},{header:e.withCtx(()=>[e.renderSlot(k.$slots,"header")]),filters:e.withCtx(()=>[e.renderSlot(k.$slots,"filters")]),_:3},8,["title","description","variant","padding"])):e.createCommentVNode("",!0),e.createElementVNode("div",Kl,[e.createElementVNode("table",{class:e.normalizeClass(B.value)},[e.createElementVNode("thead",{class:e.normalizeClass(T.value)},[e.createElementVNode("tr",null,[t.selectable?(e.openBlock(),e.createElementBlock("th",{key:0,class:e.normalizeClass(z.value)},[e.createVNode(Y,{modelValue:d.value,indeterminate:b.value,"onUpdate:modelValue":F},null,8,["modelValue","indeterminate"])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,M=>(e.openBlock(),e.createElementBlock("th",{key:M.key,class:e.normalizeClass(R(M)),onClick:_=>P(M)},[e.createElementVNode("div",Yl,[e.createElementVNode("span",null,e.toDisplayString(M.label),1),M.sortable?(e.openBlock(),e.createElementBlock("div",Xl,[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass([H(M,"asc"),"w-3 h-3 transition-colors"]),fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[...E[2]||(E[2]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"},null,-1)])],2)),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass([H(M,"desc"),"w-3 h-3 transition-colors"]),fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[...E[3]||(E[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"},null,-1)])],2))])):e.createCommentVNode("",!0)])],10,Ql))),128)),k.$slots.actions?(e.openBlock(),e.createElementBlock("th",{key:1,class:e.normalizeClass(w.value)}," Actions ",2)):e.createCommentVNode("",!0)])],2),e.createElementVNode("tbody",{class:e.normalizeClass(j.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(M,_)=>(e.openBlock(),e.createBlock(le,{key:C(M,_),item:M,columns:t.columns,index:_,selectable:t.selectable,"is-selected":V(M),striped:t.striped,hoverable:t.hoverable,"clickable-rows":t.clickableRows,density:t.density,onToggleSelection:D,onRowClick:$},e.createSlots({actions:e.withCtx(O=>[e.renderSlot(k.$slots,"actions",e.mergeProps({ref_for:!0},O))]),_:2},[e.renderList(t.columns,O=>({name:`cell-${O.key}`,fn:e.withCtx(K=>[e.renderSlot(k.$slots,`cell-${O.key}`,e.mergeProps({ref_for:!0},K))])}))]),1032,["item","columns","index","selectable","is-selected","striped","hoverable","clickable-rows","density"]))),128)),h.value.length===0?(e.openBlock(),e.createElementBlock("tr",Wl,[e.createElementVNode("td",{colspan:f.value,class:e.normalizeClass(S.value)},[e.renderSlot(k.$slots,"empty",{},()=>[e.createElementVNode("div",eo,[E[4]||(E[4]=e.createElementVNode("div",{class:"text-slate-400 mb-2"},[e.createElementVNode("svg",{class:"w-12 h-12 mx-auto",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 0A2.25 2.25 0 0 1 5.625 3.375h4.125c.621 0 1.125.504 1.125 1.125v15.75m-9.75 0h9.75"})])],-1)),e.createElementVNode("p",to,e.toDisplayString(t.emptyText),1)])])],10,Jl)])):e.createCommentVNode("",!0)],2)],2)]),t.showPagination||k.$slots.footer?(e.openBlock(),e.createBlock(oe,{key:1,"current-page":n.value,"total-pages":N.value,total:y.value.length,"page-size":r.value,"show-pagination":t.showPagination,selectable:t.selectable,"selected-count":t.selectedItems.length,variant:t.paginationVariant,padding:t.paginationPadding,"onUpdate:currentPage":E[0]||(E[0]=M=>n.value=M),"onUpdate:pageSize":E[1]||(E[1]=M=>r.value=M)},{footer:e.withCtx(()=>[e.renderSlot(k.$slots,"footer")]),_:3},8,["current-page","total-pages","total","page-size","show-pagination","selectable","selected-count","variant","padding"])):e.createCommentVNode("",!0)],2))}},et={__name:"DataTableCell",props:{item:{type:Object,required:!0},column:{type:Object,required:!0},value:{type:[String,Number,Boolean,Object,Array],default:null},align:{type:String,default:"left",validator:t=>["left","center","right"].includes(t)},width:{type:String,default:null},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},textSize:{type:String,default:"sm",validator:t=>["xs","sm","base","lg"].includes(t)},textColor:{type:String,default:"slate-900"}},setup(t){const l=t,a=e.computed(()=>{const s=l.value??o();return l.column.formatter?l.column.formatter(s,l.item):s}),o=()=>l.column.accessor?l.column.accessor(l.item):l.column.key.split(".").reduce((s,i)=>s?.[i],l.item),n=m.cva("whitespace-nowrap",{variants:{align:{left:"text-left",center:"text-center",right:"text-right"},padding:{compact:"px-4 py-2",normal:"px-6 py-4",comfortable:"px-8 py-6"},textSize:{xs:"text-xs",sm:"text-sm",base:"text-base",lg:"text-lg"}},defaultVariants:{align:"left",padding:"normal",textSize:"sm"}}),r=e.computed(()=>{const s=l.align||l.column.align||"left",i=`text-${l.textColor}`,u=l.width?`w-${l.width}`:"";return c(n({align:s,padding:l.padding,textSize:l.textSize}),i,u,l.column.cellClasses)});return(s,i)=>(e.openBlock(),e.createElementBlock("td",{class:e.normalizeClass(r.value)},[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.value),1)])],2))}},ao={class:"flex-1 min-w-64"},lo={class:"relative"},oo={key:0,class:"min-w-32"},no=["value"],ro={key:1,class:"flex items-center gap-2"},so={key:2,class:"flex items-center gap-2"},io={class:"flex items-center gap-2 ml-auto"},co={class:"flex items-center gap-2 flex-wrap"},tt={__name:"DataTableFilters",props:{searchQuery:{type:String,default:""},searchPlaceholder:{type:String,default:"Search..."},selectedStatus:{type:String,default:""},statusOptions:{type:Array,default:()=>[]},showDateFilter:{type:Boolean,default:!1},dateFrom:{type:String,default:""},dateTo:{type:String,default:""},showExport:{type:Boolean,default:!1},showAdd:{type:Boolean,default:!1},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},emits:["update:searchQuery","update:selectedStatus","update:dateFrom","update:dateTo","export","add","clear-filters"],setup(t,{emit:l}){const a={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" /></svg>'},o={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>'},n={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3" /></svg>'},r={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" /></svg>'},s=t,i=l,u=m.cva("flex flex-wrap items-center gap-4 border-b border-slate-200",{variants:{variant:{default:"bg-slate-50",minimal:"bg-transparent border-slate-100",bordered:"bg-slate-100 border-slate-300"},padding:{compact:"p-2",normal:"p-4",comfortable:"p-6"}},defaultVariants:{variant:"default",padding:"normal"}}),v=m.cva("border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",{variants:{size:{sm:"text-sm px-2 py-1",md:"text-sm px-3 py-2",lg:"text-base px-4 py-3"}},defaultVariants:{size:"md"}}),p=m.cva("rounded-md flex items-center gap-2 font-medium transition-colors",{variants:{variant:{default:"text-slate-600 hover:text-slate-800 border border-slate-300 hover:bg-slate-50",primary:"text-white bg-blue-600 hover:bg-blue-700 border border-blue-600",success:"text-white bg-green-600 hover:bg-green-700 border border-green-600",ghost:"text-slate-600 hover:text-slate-800 hover:bg-slate-100"},size:{sm:"px-2 py-1 text-xs",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"}},defaultVariants:{variant:"default",size:"md"}}),x=m.cva("border-b",{variants:{variant:{default:"px-4 py-2 bg-blue-50 border-blue-200",minimal:"px-2 py-1 bg-slate-50 border-slate-100",bordered:"px-4 py-3 bg-blue-100 border-blue-300"}},defaultVariants:{variant:"default"}}),y=e.computed(()=>s.searchQuery||s.selectedStatus||s.dateFrom||s.dateTo),N=e.computed(()=>{const z=[];if(s.searchQuery&&s.searchQuery.trim()&&z.push({key:"search",label:"Search",value:s.searchQuery}),s.selectedStatus){const w=s.statusOptions.find(S=>S.value===s.selectedStatus);z.push({key:"status",label:"Status",value:w?.label||s.selectedStatus})}if(s.dateFrom||s.dateTo){let w="";s.dateFrom&&s.dateTo?w=`${s.dateFrom} to ${s.dateTo}`:s.dateFrom?w=`From ${s.dateFrom}`:s.dateTo&&(w=`Until ${s.dateTo}`),w&&z.push({key:"date",label:"Date Range",value:w})}return z}),h=e.computed(()=>c(u({variant:s.variant,padding:s.padding}))),f=e.computed(()=>"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-slate-400"),d=e.computed(()=>c(v({size:"md"}),"w-full pl-10 focus:border-transparent")),b=e.computed(()=>"absolute right-2 top-1/2 transform -translate-y-1/2 text-slate-400 hover:text-slate-600 p-1"),g=e.computed(()=>c(v({size:"md"}),"w-full focus:border-transparent")),C=e.computed(()=>c(v({size:"md"}))),V=e.computed(()=>"text-slate-500"),D=e.computed(()=>c(p({variant:"default",size:"md"}))),F=e.computed(()=>c(p({variant:"primary",size:"md"}))),P=e.computed(()=>c(p({variant:"success",size:"md"}))),$=e.computed(()=>c(x({variant:s.variant}))),I=e.computed(()=>"text-sm text-blue-700 font-medium"),B=e.computed(()=>"flex items-center gap-1 bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-sm"),T=e.computed(()=>"text-blue-600 hover:text-blue-800 p-0.5"),j=()=>{i("update:searchQuery",""),i("update:selectedStatus",""),i("update:dateFrom",""),i("update:dateTo",""),i("clear-filters")},R=z=>{switch(z){case"search":i("update:searchQuery","");break;case"status":i("update:selectedStatus","");break;case"date":i("update:dateFrom",""),i("update:dateTo","");break}};return(z,w)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:e.normalizeClass(h.value)},[e.createElementVNode("div",ao,[e.createElementVNode("div",lo,[e.createVNode(a,{class:e.normalizeClass(f.value)},null,8,["class"]),e.createVNode(U,{"model-value":t.searchQuery,onInput:w[0]||(w[0]=S=>z.$emit("update:searchQuery",S.target.value)),placeholder:t.searchPlaceholder,class:e.normalizeClass(d.value)},null,8,["model-value","placeholder","class"]),t.searchQuery?(e.openBlock(),e.createBlock(A,{key:0,onClick:w[1]||(w[1]=S=>z.$emit("update:searchQuery","")),class:e.normalizeClass(b.value)},{default:e.withCtx(()=>[e.createVNode(o,{class:"w-4 h-4"})]),_:1},8,["class"])):e.createCommentVNode("",!0)])]),t.statusOptions.length>0?(e.openBlock(),e.createElementBlock("div",oo,[e.createVNode(X,{"model-value":t.selectedStatus,onChange:w[2]||(w[2]=S=>z.$emit("update:selectedStatus",S.target.value)),class:e.normalizeClass(g.value)},{default:e.withCtx(()=>[w[7]||(w[7]=e.createElementVNode("option",{value:""},"All Status",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.statusOptions,S=>(e.openBlock(),e.createElementBlock("option",{key:S.value,value:S.value},e.toDisplayString(S.label),9,no))),128))]),_:1},8,["model-value","class"])])):e.createCommentVNode("",!0),t.showDateFilter?(e.openBlock(),e.createElementBlock("div",ro,[e.createVNode(U,{type:"date","model-value":t.dateFrom,onInput:w[3]||(w[3]=S=>z.$emit("update:dateFrom",S.target.value)),class:e.normalizeClass(C.value)},null,8,["model-value","class"]),e.createElementVNode("span",{class:e.normalizeClass(V.value)},"to",2),e.createVNode(U,{type:"date","model-value":t.dateTo,onInput:w[4]||(w[4]=S=>z.$emit("update:dateTo",S.target.value)),class:e.normalizeClass(C.value)},null,8,["model-value","class"])])):e.createCommentVNode("",!0),z.$slots.filters?(e.openBlock(),e.createElementBlock("div",so,[e.renderSlot(z.$slots,"filters")])):e.createCommentVNode("",!0),e.createElementVNode("div",io,[y.value?(e.openBlock(),e.createBlock(A,{key:0,onClick:j,class:e.normalizeClass(D.value)},{default:e.withCtx(()=>[...w[8]||(w[8]=[e.createTextVNode(" Clear Filters ",-1)])]),_:1},8,["class"])):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createBlock(A,{key:1,onClick:w[5]||(w[5]=S=>z.$emit("export")),class:e.normalizeClass(F.value)},{default:e.withCtx(()=>[e.createVNode(n,{class:"w-4 h-4"}),w[9]||(w[9]=e.createTextVNode(" Export ",-1))]),_:1},8,["class"])):e.createCommentVNode("",!0),t.showAdd?(e.openBlock(),e.createBlock(A,{key:2,onClick:w[6]||(w[6]=S=>z.$emit("add")),class:e.normalizeClass(P.value)},{default:e.withCtx(()=>[e.createVNode(r,{class:"w-4 h-4"}),w[10]||(w[10]=e.createTextVNode(" Add New ",-1))]),_:1},8,["class"])):e.createCommentVNode("",!0)])],2),N.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass($.value)},[e.createElementVNode("div",co,[e.createElementVNode("span",{class:e.normalizeClass(I.value)},"Active filters:",2),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,S=>(e.openBlock(),e.createElementBlock("div",{key:S.key,class:e.normalizeClass(B.value)},[e.createElementVNode("span",null,e.toDisplayString(S.label)+": "+e.toDisplayString(S.value),1),e.createVNode(A,{onClick:H=>R(S.key),class:e.normalizeClass(T.value)},{default:e.withCtx(()=>[e.createVNode(o,{class:"w-3 h-3"})]),_:1},8,["onClick","class"])],2))),128))])],2)):e.createCommentVNode("",!0)]))}},uo={class:"flex items-center gap-3"},mo={key:0,class:"flex items-center gap-3"},fo={class:"text-sm text-slate-600"},vo={class:"flex items-center gap-2"},po={class:"flex items-center gap-3"},go=["onClick","title"],ho={key:1,class:"relative"},bo={class:"p-3"},ko={class:"space-y-1"},yo={class:"flex items-center gap-2 cursor-pointer w-full"},xo=["checked","onChange"],Co=["disabled"],wo={key:3,class:"flex items-center gap-2"},Bo={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m0 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75" /></svg>'},Vo={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" /></svg>'},So={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" /></svg>'},No={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 9h16.5m-16.5 6.75h16.5" /></svg>'},zo={template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14" /></svg>'},Eo=[{key:"delete",label:"Delete",icon:{template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" /></svg>'},variant:"danger"},{key:"edit",label:"Edit",icon:{template:'<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10" /></svg>'},variant:"primary"}],$o={name:"DataTableToolBar"},at=Object.assign($o,{props:{selectedItems:{type:Array,default:()=>[]},totalItems:{type:Number,default:0},bulkActions:{type:Array,default:()=>Eo},showDensityToggle:{type:Boolean,default:!0},showColumnToggle:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},isRefreshing:{type:Boolean,default:!1},density:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)},toggleableColumns:{type:Array,default:()=>[]},visibleColumns:{type:Array,default:()=>[]},variant:{type:String,default:"default",validator:t=>["default","minimal","bordered"].includes(t)},padding:{type:String,default:"normal",validator:t=>["compact","normal","comfortable"].includes(t)}},emits:["bulk-action","update:density","toggle-column","refresh"],setup(t,{emit:l}){const a=t,o=l,n=e.ref(!1),r=e.ref(null),s=e.ref(null),i=e.computed(()=>a.selectedItems.length),u=[{value:"compact",label:"Compact",icon:zo},{value:"normal",label:"Normal",icon:No},{value:"comfortable",label:"Comfortable",icon:So}],v=m.cva("flex items-center justify-between border-b border-slate-200",{variants:{variant:{default:"bg-white",minimal:"bg-transparent border-slate-100",bordered:"bg-slate-50 border-slate-300"},padding:{compact:"p-2",normal:"p-4",comfortable:"p-6"}},defaultVariants:{variant:"default",padding:"normal"}}),p=m.cva("px-3 py-1.5 text-sm font-medium rounded-md flex items-center gap-1 transition-colors",{variants:{variant:{danger:"text-red-700 bg-red-50 hover:bg-red-100 border border-red-200",primary:"text-blue-700 bg-blue-50 hover:bg-blue-100 border border-blue-200",secondary:"text-slate-700 bg-slate-50 hover:bg-slate-100 border border-slate-200"}},defaultVariants:{variant:"secondary"}}),x=m.cva("p-2 border border-slate-300 transition-colors",{variants:{active:{true:"bg-blue-50 text-blue-600 border-blue-300",false:"bg-white text-slate-600 hover:bg-slate-50"},position:{first:"rounded-l-md border-r-0",middle:"border-x-0",last:"rounded-r-md border-l-0"}},defaultVariants:{active:!1,position:"middle"}}),y=m.cva("px-3 py-2 text-sm border border-slate-300 rounded-md flex items-center gap-2 transition-colors",{variants:{state:{normal:"text-slate-600 hover:text-slate-800 hover:bg-slate-50",refreshing:"text-slate-600 opacity-75 cursor-not-allowed"}},defaultVariants:{state:"normal"}}),N=e.computed(()=>c(v({variant:a.variant,padding:a.padding}))),h=e.computed(()=>"text-sm text-slate-600"),f=e.computed(()=>"flex items-center"),d=e.computed(()=>"flex items-center gap-2 px-3 py-2 text-sm text-slate-600 hover:text-slate-800 border border-slate-300 rounded-md hover:bg-slate-50 transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1"),b=e.computed(()=>"absolute right-0 top-full mt-1 w-56 bg-white border border-slate-200 rounded-lg shadow-lg z-50 max-h-64 overflow-y-auto"),g=e.computed(()=>"text-xs font-medium text-slate-500 uppercase tracking-wider mb-2 border-b border-slate-100 pb-2"),C=e.computed(()=>"py-1 hover:bg-slate-50 rounded transition-colors"),V=e.computed(()=>"w-4 h-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500 focus:ring-2 focus:ring-offset-1"),D=e.computed(()=>"text-sm text-slate-700 flex-1 select-none"),F=z=>{r.value&&s.value&&!r.value.contains(z.target)&&!s.value.contains(z.target)&&(n.value=!1)},P=()=>{n.value=!n.value},$=z=>c(p({variant:z.variant||"secondary"})),I=z=>{let w="middle";return z==="compact"?w="first":z==="comfortable"&&(w="last"),c(x({active:a.density===z,position:w}))},B=()=>c(y({state:a.isRefreshing?"refreshing":"normal"})),T=()=>c("w-4 h-4",{"animate-spin":a.isRefreshing}),j=z=>a.visibleColumns.includes(z),R=(z,w)=>{o("toggle-column",{column:z,visible:w})};return e.onMounted(()=>{document.addEventListener("click",F)}),e.onUnmounted(()=>{document.removeEventListener("click",F)}),(z,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(N.value)},[e.createElementVNode("div",uo,[i.value>0?(e.openBlock(),e.createElementBlock("div",mo,[e.createElementVNode("span",fo,e.toDisplayString(i.value)+" selected ",1),e.createElementVNode("div",vo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bulkActions,S=>(e.openBlock(),e.createBlock(A,{key:S.key,onClick:H=>z.$emit("bulk-action",{action:S.key,items:t.selectedItems}),class:e.normalizeClass($(S))},{default:e.withCtx(()=>[S.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.icon),{key:0,class:"w-4 h-4"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(S.label),1)]),_:2},1032,["onClick","class"]))),128))])])):t.totalItems>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(h.value)},e.toDisplayString(t.totalItems)+" "+e.toDisplayString(t.totalItems===1?"item":"items"),3)):e.createCommentVNode("",!0)]),e.createElementVNode("div",po,[t.showDensityToggle?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(f.value)},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,S=>e.createElementVNode("button",{key:S.value,onClick:H=>z.$emit("update:density",S.value),class:e.normalizeClass(I(S.value)),title:S.label,type:"button"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.icon),{class:"w-4 h-4"}))],10,go)),64))],2)):e.createCommentVNode("",!0),t.showColumnToggle?(e.openBlock(),e.createElementBlock("div",ho,[e.createElementVNode("button",{onClick:e.withModifiers(P,["stop"]),class:e.normalizeClass(d.value),type:"button",ref_key:"columnToggleButton",ref:r},[e.createVNode(Bo,{class:"w-4 h-4"}),w[2]||(w[2]=e.createElementVNode("span",null,"Columns",-1))],2),e.withDirectives(e.createElementVNode("div",{ref_key:"columnMenu",ref:s,class:e.normalizeClass(b.value),onClick:w[0]||(w[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",bo,[e.createElementVNode("div",{class:e.normalizeClass(g.value)}," Show Columns ",2),e.createElementVNode("div",ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.toggleableColumns,S=>(e.openBlock(),e.createElementBlock("div",{key:S.key,class:e.normalizeClass(C.value)},[e.createElementVNode("label",yo,[e.createElementVNode("input",{type:"checkbox",checked:j(S.key),onChange:H=>R(S.key,H.target.checked),class:e.normalizeClass(V.value)},null,42,xo),e.createElementVNode("span",{class:e.normalizeClass(D.value)},e.toDisplayString(S.label),3)])],2))),128))])])],2),[[e.vShow,n.value]])])):e.createCommentVNode("",!0),t.showRefresh?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:w[1]||(w[1]=S=>z.$emit("refresh")),disabled:t.isRefreshing,class:e.normalizeClass(B()),type:"button"},[e.createVNode(Vo,{class:e.normalizeClass(T())},null,8,["class"]),w[3]||(w[3]=e.createElementVNode("span",null,"Refresh",-1))],10,Co)):e.createCommentVNode("",!0),z.$slots.actions?(e.openBlock(),e.createElementBlock("div",wo,[e.renderSlot(z.$slots,"actions")])):e.createCommentVNode("",!0)])],2))}}),Do={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12"},To={class:"grid grid-cols-1 md:grid-cols-4 gap-8"},Mo={class:"col-span-1 md:col-span-2"},Lo={class:"space-y-2"},Io={class:"flex space-x-4"},jo={class:"flex flex-col md:flex-row justify-between items-center"},Ao={class:"flex space-x-6 mt-4 md:mt-0"},lt={__name:"Footer",props:{className:{type:String,default:""}},setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("Text"),r=e.resolveComponent("Typography"),s=e.resolveComponent("Link"),i=e.resolveComponent("Icon"),u=e.resolveComponent("Divider");return e.openBlock(),e.createElementBlock("footer",{class:e.normalizeClass(e.unref(c)("bg-gray-50 border-t border-gray-200",t.className))},[e.createElementVNode("div",Do,[e.createElementVNode("div",To,[e.createElementVNode("div",Mo,[e.renderSlot(l.$slots,"brand",{},()=>[e.createVNode(o,{class:"mb-4"}),e.createVNode(n,{class:"text-gray-600 max-w-md"},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode(" Building beautiful applications with modern Vue.js components. ",-1)])]),_:1})])]),e.createElementVNode("div",null,[e.renderSlot(l.$slots,"links",{},()=>[e.createVNode(r,{variant:"h6",class:"mb-4"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Quick Links",-1)])]),_:1}),e.createElementVNode("div",Lo,[e.createVNode(s,{href:"#",class:"block text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode("About",-1)])]),_:1}),e.createVNode(s,{href:"#",class:"block text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[3]||(a[3]=[e.createTextVNode("Services",-1)])]),_:1}),e.createVNode(s,{href:"#",class:"block text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[4]||(a[4]=[e.createTextVNode("Contact",-1)])]),_:1})])])]),e.createElementVNode("div",null,[e.renderSlot(l.$slots,"social",{},()=>[e.createVNode(r,{variant:"h6",class:"mb-4"},{default:e.withCtx(()=>[...a[5]||(a[5]=[e.createTextVNode("Follow Us",-1)])]),_:1}),e.createElementVNode("div",Io,[e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[e.createVNode(i,{name:"twitter",class:"h-5 w-5"})]),_:1}),e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[e.createVNode(i,{name:"github",class:"h-5 w-5"})]),_:1})])])])]),e.createVNode(u,{class:"my-8"}),e.createElementVNode("div",jo,[e.renderSlot(l.$slots,"copyright",{},()=>[e.createVNode(n,{class:"text-gray-600"},{default:e.withCtx(()=>[e.createTextVNode(" © "+e.toDisplayString(new Date().getFullYear())+" Your Company. All rights reserved. ",1)]),_:1})]),e.renderSlot(l.$slots,"legal",{},()=>[e.createElementVNode("div",Ao,[e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[6]||(a[6]=[e.createTextVNode("Privacy",-1)])]),_:1}),e.createVNode(s,{href:"#",class:"text-gray-600 hover:text-gray-900"},{default:e.withCtx(()=>[...a[7]||(a[7]=[e.createTextVNode("Terms",-1)])]),_:1})])])])])],2)}}},Fo={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"},Po={class:"flex justify-between items-center h-16"},Ro={class:"flex items-center"},_o={class:"hidden md:block"},qo={class:"flex items-center space-x-4"},Ho={class:"md:hidden"},ot={__name:"Header",props:{className:{type:String,default:""}},emits:["toggle-mobile-menu"],setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("MainNavigation"),r=e.resolveComponent("Button"),s=e.resolveComponent("Icon");return e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(e.unref(c)("bg-white border-b border-gray-200 shadow-sm",t.className))},[e.createElementVNode("div",Fo,[e.createElementVNode("div",Po,[e.createElementVNode("div",Ro,[e.renderSlot(l.$slots,"logo",{},()=>[e.createVNode(o)])]),e.createElementVNode("div",_o,[e.renderSlot(l.$slots,"navigation",{},()=>[e.createVNode(n)])]),e.createElementVNode("div",qo,[e.renderSlot(l.$slots,"actions",{},()=>[e.createVNode(r,{variant:"ghost",size:"sm"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Sign In",-1)])]),_:1}),e.createVNode(r,{size:"sm"},{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode("Sign Up",-1)])]),_:1})])]),e.createElementVNode("div",Ho,[e.renderSlot(l.$slots,"mobile-toggle",{},()=>[e.createVNode(r,{variant:"ghost",size:"sm",onClick:a[0]||(a[0]=i=>l.$emit("toggle-mobile-menu"))},{default:e.withCtx(()=>[e.createVNode(s,{name:"menu",class:"h-5 w-5"})]),_:1})])])])])],2)}}},Oo={class:"p-6"},Uo={class:"mb-8"},Zo={class:"space-y-2"},Go={class:"mt-auto pt-8"},Ko={class:"flex items-center space-x-3"},nt={__name:"Sidebar",props:{items:{type:Array,default:()=>[{label:"Dashboard",href:"/dashboard",icon:"home",active:!0},{label:"Users",href:"/users",icon:"users"},{label:"Settings",href:"/settings",icon:"settings"}]},className:{type:String,default:""}},setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("SidebarNavigation"),r=e.resolveComponent("Divider"),s=e.resolveComponent("Avatar"),i=e.resolveComponent("Text");return e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(e.unref(c)("bg-white border-r border-gray-200 h-full",t.className))},[e.createElementVNode("div",Oo,[e.createElementVNode("div",Uo,[e.renderSlot(l.$slots,"header",{},()=>[e.createVNode(o)])]),e.createElementVNode("nav",Zo,[e.renderSlot(l.$slots,"navigation",{},()=>[e.createVNode(n,{items:t.items},null,8,["items"])])]),e.createElementVNode("div",Go,[e.renderSlot(l.$slots,"footer",{},()=>[e.createVNode(r,{class:"mb-4"}),e.createElementVNode("div",Ko,[e.createVNode(s,{size:"sm"}),e.createElementVNode("div",null,[e.createVNode(i,{class:"text-sm font-medium"},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode("John Doe",-1)])]),_:1}),e.createVNode(i,{class:"text-xs text-gray-500"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("john@example.com",-1)])]),_:1})])])])])])],2)}}},rt={__name:"Timeline",props:{orientation:{type:String,default:"vertical",validator:t=>["vertical","horizontal"].includes(t)}},setup(t){return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex",t.orientation==="vertical"?"flex-col":"flex-row"])},[e.renderSlot(l.$slots,"default")],2))}},Qo={key:0,class:"absolute left-3 top-0 w-0.5 h-full bg-slate-200"},Yo={class:"z-10 flex items-center justify-center w-6 h-6 rounded-full border-2 border-blue-500 bg-white text-blue-500"},Xo={class:"text-slate-900 font-medium"},Wo={key:0,class:"text-slate-500 text-sm"},Jo={class:"mt-2 text-slate-600 text-sm"},st={__name:"TimelineItem",props:{title:{type:String,required:!0},subtitle:{type:String,default:""},orientation:{type:String,default:"vertical",validator:t=>["vertical","horizontal"].includes(t)}},setup(t){return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex",t.orientation==="vertical"?"items-start mb-8 last:mb-0":"flex-col items-center mx-8 last:mx-0"])},[t.orientation==="vertical"?(e.openBlock(),e.createElementBlock("div",Qo)):e.createCommentVNode("",!0),e.createElementVNode("div",Yo,[e.renderSlot(l.$slots,"icon",{},()=>[a[0]||(a[0]=e.createElementVNode("div",{class:"w-2 h-2 rounded-full bg-blue-500"},null,-1))])]),e.createElementVNode("div",{class:e.normalizeClass(["ml-6",t.orientation==="horizontal"?"mt-2 text-center":""])},[e.createElementVNode("h3",Xo,[e.renderSlot(l.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])]),t.subtitle?(e.openBlock(),e.createElementBlock("p",Wo,[e.renderSlot(l.$slots,"subtitle",{},()=>[e.createTextVNode(e.toDisplayString(t.subtitle),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Jo,[e.renderSlot(l.$slots,"default")])],2)],2))}},it=(t,l)=>{const a=t.__vccOpts||t;for(const[o,n]of l)a[o]=n;return a},en={name:"AuthLayout",props:{title:{type:String,default:null},subtitle:{type:String,default:null},primaryLogoPrefix:{type:String,default:"e"},primaryLogoText:{type:String,default:"HORIZON"},secondaryLogoPrefix:{type:String,default:"e"},secondaryLogoText:{type:String,default:"Risk & Compliance"},quote:{type:String,default:""},primaryColor:{type:String,default:"#e74c3c"},backgroundColor:{type:String,default:"#2c2c2c"},backgroundImage:{type:String,default:"https://images.unsplash.com/photo-1497366216548-37526070297c?ixlib=rb-4.0.3&auto=format&fit=crop&w=2069&q=80"},backgroundOpacity:{type:Number,default:.4},companyName:{type:String,default:"SOFTWARE"},companyType:{type:String,default:"TECHNOLOGIES"},companyTagline:{type:String,default:"People | Processes | Governance"},companyInitials:{type:String,default:"ST"},appName:{type:String,default:"eHorizon eBoard X"},appVersion:{type:String,default:"Version 2.0"},copyright:{type:String,default:"Copyright © 2025 Software Technologies Limited"},socialLinks:{type:Array,default:()=>[{name:"linkedin",url:"#",icon:"fab fa-linkedin-in",variant:"primary"},{name:"facebook",url:"#",icon:"fab fa-facebook-f",variant:"primary"},{name:"twitter",url:"#",icon:"fab fa-twitter",variant:"info"}]}},setup(){return{currentYear:e.computed(()=>new Date().getFullYear())}}},tn={class:"container mx-auto px-4 relative z-10"},an={class:"grid lg:grid-cols-10 gap-8 items-center min-h-screen"},ln={class:"lg:col-span-6 text-white text-center lg:text-left space-y-6"},on={class:"mb-6"},nn={class:"text-4xl lg:text-6xl font-bold mb-2"},rn={class:"text-white"},sn={class:"flex items-center justify-center lg:justify-start mb-6"},cn={class:"text-3xl lg:text-4xl font-bold text-white"},dn={class:"lg:col-span-4"},un={class:"bg-white rounded-lg shadow-xl p-6 lg:p-8 max-w-md mx-auto"},mn={key:0,class:"mb-6"},fn={class:"text-center"},vn={class:"text-2xl font-bold text-gray-900"},pn={key:0,class:"text-gray-600 mt-2"},gn={class:"space-y-6"},hn={key:1,class:"mt-6"},bn={key:0,class:"mt-6 text-center"},kn={class:"absolute bottom-4 right-4 text-right"},yn={class:"flex items-end justify-end mb-2"},xn={class:"text-right mr-3"},Cn={class:"text-red-500 font-bold text-xs"},wn={class:"text-white text-xs"},Bn={class:"text-white/70 text-xs"},Vn={class:"w-8 h-8 bg-red-500 rounded flex items-center justify-center text-white font-bold text-xs"},Sn={class:"text-white/70 text-xs"},Nn={class:"absolute bottom-4 left-4 flex gap-2"},zn=["href"];function En(t,l,a,o,n,r){const s=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock("div",{class:"min-h-screen relative flex items-center justify-center",style:e.normalizeStyle({backgroundColor:a.backgroundColor})},[e.createElementVNode("div",{class:"absolute inset-0 bg-cover bg-center",style:e.normalizeStyle({backgroundImage:`url('${a.backgroundImage}')`,opacity:a.backgroundOpacity})},null,4),e.createElementVNode("div",tn,[e.createElementVNode("div",an,[e.createElementVNode("div",ln,[e.createElementVNode("div",on,[e.createElementVNode("div",nn,[e.createElementVNode("span",{style:e.normalizeStyle({color:a.primaryColor})},e.toDisplayString(a.primaryLogoPrefix),5),e.createElementVNode("span",rn,e.toDisplayString(a.primaryLogoText),1)]),e.createElementVNode("div",{class:"h-0.5 w-30 mx-auto lg:mx-0",style:e.normalizeStyle({backgroundColor:a.primaryColor})},null,4)]),e.createElementVNode("div",sn,[e.createElementVNode("div",{class:"flex items-center justify-center w-15 h-15 rounded-lg mr-4 text-white font-bold text-xl",style:e.normalizeStyle({backgroundColor:a.primaryColor})},e.toDisplayString(a.secondaryLogoPrefix),5),e.createElementVNode("span",cn,e.toDisplayString(a.secondaryLogoText),1)]),l[0]||(l[0]=e.createElementVNode("div",{class:"max-w-md mx-auto lg:mx-0"},[e.createElementVNode("p",{class:"text-sm lg:text-base font-light text-white/70 italic leading-relaxed"})],-1))]),e.createElementVNode("div",dn,[e.createElementVNode("div",un,[t.$slots["card-header"]||a.title?(e.openBlock(),e.createElementBlock("div",mn,[e.renderSlot(t.$slots,"card-header",{},()=>[e.createElementVNode("div",fn,[e.createElementVNode("h1",vn,e.toDisplayString(a.title),1),a.subtitle?(e.openBlock(),e.createElementBlock("p",pn,e.toDisplayString(a.subtitle),1)):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0),e.createElementVNode("div",gn,[e.renderSlot(t.$slots,"default"),e.createVNode(s)]),t.$slots["card-footer"]?(e.openBlock(),e.createElementBlock("div",hn,[e.renderSlot(t.$slots,"card-footer")])):e.createCommentVNode("",!0)]),t.$slots.links?(e.openBlock(),e.createElementBlock("div",bn,[e.renderSlot(t.$slots,"links")])):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",kn,[e.createElementVNode("div",yn,[e.createElementVNode("div",xn,[e.createElementVNode("div",Cn,e.toDisplayString(a.companyName),1),e.createElementVNode("div",wn,e.toDisplayString(a.companyType),1),e.createElementVNode("div",Bn,e.toDisplayString(a.companyTagline),1)]),e.createElementVNode("div",Vn,e.toDisplayString(a.companyInitials),1)]),e.createElementVNode("div",Sn,[e.createElementVNode("div",null,e.toDisplayString(a.appName)+" ("+e.toDisplayString(a.appVersion)+")",1),e.createElementVNode("div",null,e.toDisplayString(a.copyright),1)])]),e.createElementVNode("div",Nn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.socialLinks,i=>(e.openBlock(),e.createElementBlock("a",{key:i.name,href:i.url,class:e.normalizeClass(["w-8 h-7 flex items-center justify-center rounded text-xs transition-colors",i.variant==="primary"?"bg-blue-600 hover:bg-blue-700 text-white":i.variant==="info"?"bg-cyan-500 hover:bg-cyan-600 text-white":"bg-gray-600 hover:bg-gray-700 text-white"])},[e.createElementVNode("i",{class:e.normalizeClass(i.icon)},null,2)],10,zn))),128))])],4)}const ct=it(en,[["render",En]]),$n={class:"min-h-screen bg-gray-50"},Dn={class:"flex-1"},Tn={key:0,class:"bg-white border-b border-gray-200"},Mn={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4"},Ln={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},dt={__name:"DefaultLayout",props:{navigationItems:{type:Array,default:()=>[{label:"Home",href:"/",active:!0},{label:"About",href:"/about"},{label:"Services",href:"/services"},{label:"Contact",href:"/contact"}]},breadcrumbItems:{type:Array,default:()=>[]},showBreadcrumb:{type:Boolean,default:!1}},setup(t){return(l,a)=>{const o=e.resolveComponent("Logo"),n=e.resolveComponent("MainNavigation"),r=e.resolveComponent("Button"),s=e.resolveComponent("Header"),i=e.resolveComponent("Breadcrumb"),u=e.resolveComponent("Text"),v=e.resolveComponent("Footer");return e.openBlock(),e.createElementBlock("div",$n,[e.createVNode(s,null,{logo:e.withCtx(()=>[e.renderSlot(l.$slots,"logo",{},()=>[e.createVNode(o)])]),navigation:e.withCtx(()=>[e.renderSlot(l.$slots,"navigation",{},()=>[e.createVNode(n,{items:t.navigationItems},null,8,["items"])])]),actions:e.withCtx(()=>[e.renderSlot(l.$slots,"header-actions",{},()=>[e.createVNode(r,{variant:"ghost",size:"sm"},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode("Sign In",-1)])]),_:1}),e.createVNode(r,{size:"sm"},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Get Started",-1)])]),_:1})])]),_:3}),e.createElementVNode("main",Dn,[t.showBreadcrumb?(e.openBlock(),e.createElementBlock("div",Tn,[e.createElementVNode("div",Mn,[e.renderSlot(l.$slots,"breadcrumb",{},()=>[e.createVNode(i,{items:t.breadcrumbItems},null,8,["items"])])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ln,[e.renderSlot(l.$slots,"default")])]),e.createVNode(v,null,{brand:e.withCtx(()=>[e.renderSlot(l.$slots,"footer-brand",{},()=>[e.createVNode(o,{class:"mb-4"}),e.createVNode(u,{class:"text-gray-600 max-w-md"},{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode(" Your application description goes here. ",-1)])]),_:1})])]),_:3})])}}},In={template:`
86
86
  <svg viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
87
87
  <circle cx="100" cy="100" r="80" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
88
88
  <text x="100" y="110" text-anchor="middle" font-size="48" font-weight="bold" fill="#64748b">404</text>