@ghentcdh/ui 0.8.5 → 0.8.6
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/index.esm.js +485 -486
- package/index.js +2 -2
- package/index.mjs +485 -486
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Ee=require("vue-router"),q=require("uuid"),b=require("@heroicons/vue/24/outline"),Ve=require("@tiptap/starter-kit"),X=require("@tiptap/vue-3"),Ne=require("tiptap-markdown"),Z=require("@heroicons/vue/24/solid");var y=(t=>(t.Edit="Edit",t.Delete="Delete",t.BarsArrowDown="BarsArrowDown",t.BarsArrowUp="BarsArrowUp",t.Funnel="Funnel",t.Close="Close",t.Plus="Plus",t.PaperClip="PaperClip",t.Hamburger="Hamburger",t.ChevronRight="ChevronRight",t.ChevronLeft="ChevronLeft",t.ChevronDown="ChevronDown",t.ChevronUp="ChevronUp",t.DblChevronLeft="DblChevronLeft",t.DblChevronRight="DblChevronRight",t.Language="Language",t.Check="Check",t.View="View",t.Text="Text",t.Link="Link",t))(y||{});const Q={Edit:b.PencilSquareIcon,Delete:b.TrashIcon,BarsArrowDown:b.BarsArrowDownIcon,BarsArrowUp:b.BarsArrowUpIcon,Funnel:b.FunnelIcon,Close:b.XMarkIcon,Plus:b.PlusCircleIcon,PaperClip:b.PaperClipIcon,Hamburger:b.Bars3Icon,ChevronRight:b.ChevronRightIcon,ChevronLeft:b.ChevronLeftIcon,ChevronDown:b.ChevronDownIcon,ChevronUp:b.ChevronUpIcon,DblChevronLeft:b.ChevronDoubleLeftIcon,DblChevronRight:b.ChevronDoubleRightIcon,Language:b.LanguageIcon,Check:b.CheckIcon,View:b.EyeIcon,Text:b.DocumentTextIcon,Link:b.LinkIcon},Y={icon:{type:[String,Object,Function]},size:{type:String}},E=e.defineComponent({__name:"icon",props:Y,setup(t){const o=t,n=e.computed(()=>o.icon?typeof o.icon=="string"?Q[o.icon]:o.icon:null);return(a,r)=>n.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),{key:0,"aria-hidden":"true",class:e.normalizeClass([{"w-full h-full":!a.size,"w-2 h-2":a.size==="xs","w-4 h-4":a.size==="sm","w-6 h-6":a.size==="lg","w-8 h-8":a.size==="xl"}])},null,8,["class"])):e.createCommentVNode("",!0)}}),xe={class:"dropdown dropdown-end"},_e={tabindex:"0",role:"menu",class:"menu dropdown-content bg-white z-1 mt-4 p-2 shadow-sm"},Se={class:"min-w-max flex-no-wrap text-black"},T=e.defineComponent({__name:"sub-menu",props:{label:{},items:{},action:{type:Function},disabled:{type:Boolean},btnClass:{},disableArrow:{type:Boolean}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",xe,[e.createElementVNode("div",{tabindex:"0",role:"button","aria-haspopup":"menu",class:e.normalizeClass([t.btnClass,"btn btn-ghost text-right flex-nowrap flex"])},[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.disableArrow?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:e.unref(y).ChevronDown,size:"sm"},null,8,["icon"]))],2),e.createElementVNode("ul",_e,[e.createElementVNode("li",Se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,a=>(e.openBlock(),e.createBlock(ee,e.mergeProps({key:a.label},{ref_for:!0},a),null,16))),128))])])]))}}),z="btn btn-ghost text-left justify-between min-w-max font-normal",ee=e.defineComponent({__name:"menu-item",props:{label:{},items:{},action:{},disabled:{type:Boolean,default:!1}},setup(t){const o=t,n=e.computed(()=>!o.disabled&&o.action&&"routerLink"in o.action),a=e.computed(()=>!o.disabled&&o.action),r=e.computed(()=>o.items?.length),s=e.computed(()=>{const u=o.action;return u&&"routerLink"in u&&"params"in u?{name:u.routerLink,params:u.params}:""}),c=()=>{o.action?.()};return(u,d)=>{const i=e.resolveComponent("RouterLink");return r.value?(e.openBlock(),e.createBlock(T,e.mergeProps({key:0},o,{"btn-class":z}),null,16)):n.value?(e.openBlock(),e.createBlock(i,{key:1,to:s.value,class:e.normalizeClass(z),onClick:c},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:1},8,["to"])):a.value?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(z),onClick:c},e.toDisplayString(t.label),1)):(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass([z,{"btn-disabled":t.disabled}])},e.toDisplayString(t.label),3))}}}),$e={class:"navbar bg-base-100 shadow-sm"},Le={class:"flex-1"},Pe={key:0,class:"breadcrumbs text-sm"},Me={class:"flex grow justify-end px-2"},De={class:"flex items-stretch"},ze=e.defineComponent({__name:"menu",props:{menu:{},breadcrumbs:{}},setup(t){return(o,n)=>{const a=e.resolveComponent("RouterLink");return e.openBlock(),e.createElementBlock("nav",$e,[e.createElementVNode("div",Le,[t.breadcrumbs?(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.breadcrumbs,r=>(e.openBlock(),e.createElementBlock("li",{key:r.label},[r.routerLink?(e.openBlock(),e.createBlock(a,{key:0,to:{name:r.routerLink,params:r.params},role:"navigation","aria-label":r.label},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["to","aria-label"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.label),1)],64))]))),128))])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Me,[e.createElementVNode("div",De,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menu,r=>(e.openBlock(),e.createBlock(ee,e.mergeProps({key:r.label},{ref_for:!0},r),null,16))),128))])])])}}}),Te=e.defineComponent({__name:"dropdown",props:{items:{}},setup(t){const o=e.ref(!0);return(n,a)=>(e.openBlock(),e.createBlock(T,{items:t.items,label:"test",open:o.value,"btn-class":"","disable-arrow":!0},null,8,["items","open"]))}}),te={modalTitle:{type:String,required:!0},buttonLabel:{type:String},buttonSaveLabel:{type:String},data:{default:void 0},open:{type:Boolean,default:!1},disableClose:{type:Boolean,default:!1},width:{type:String,default:"sm"},name:{type:String,required:!0}},oe=["closeModal"],Ae='a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])',J=t=>Array.from(t.querySelectorAll(Ae)),Oe=({containerRef:t,isActive:o,onEscape:n,restoreFocus:a=!0})=>{let r=null;const s=d=>{const i=t.value;if(!i)return;if(d.key==="Escape"){n?.();return}if(d.key!=="Tab")return;const l=J(i);if(l.length===0)return;const p=l[0],m=l[l.length-1];d.shiftKey?document.activeElement===p&&(d.preventDefault(),m.focus()):document.activeElement===m&&(d.preventDefault(),p.focus())},c=()=>{const d=t.value;if(!d)return;r=document.activeElement,document.addEventListener("keydown",s);const i=J(d);i.length>0&&i[0].focus()},u=()=>{document.removeEventListener("keydown",s),a&&r&&(r.focus(),r=null)};e.watch(o,d=>{d?c():u()}),e.onUnmounted(()=>{u()})},ne={xs:"max-w-xs w-[50VW]",sm:"max-w-sm w-[50VW]",lg:"max-w-2xl w-[80VW]",xl:"max-w-[80VW] w-[80VW]"},le={xs:"btn-xs",sm:"btn-sm",lg:"btn-sm",xl:"btn"},ae={xs:"badge-xs text-xxs",sm:"badge-sm text-xs",lg:"badge-sm text-xs",xl:"badge text-xs"},Fe={class:"flex justify-end gap-2 p-2 mt-2 border-t border-gray-300"},re=e.defineComponent({__name:"modal",props:te,emits:oe,setup(t,{expose:o,emit:n}){const a=t,r=`modal_${q.v4()}`,s=`${r}_title`,c=`${r}_content`,u=e.ref(null),d=e.ref(!1),i=n,l=()=>{u.value?.showModal(),d.value=!0},p=()=>{u.value?.close(),d.value=!1,i("closeModal")},m=()=>{a.disableClose||p()};return Oe({containerRef:u,isActive:d,onEscape:()=>{a.disableClose||p()}}),o({closeModal:p,openModal:l}),e.watch(()=>a.open,()=>{a.open?l():p()}),e.onMounted(()=>{a.open&&l()}),(f,k)=>(e.openBlock(),e.createElementBlock("dialog",{ref_key:"dialogRef",ref:u,class:"modal",role:"dialog","aria-modal":"true","aria-labelledby":s,"aria-describedby":c,onCancel:e.withModifiers(m,["prevent"])},[e.createElementVNode("div",{class:e.normalizeClass(["modal-box bg-white",e.unref(ne)[f.width]])},[f.disableClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"btn btn-sm btn-circle btn-ghost absolute right-2 top-2","aria-label":"Close",onClick:p}," ✕ ")),e.createElementVNode("h3",{id:s,class:"font-bold"},e.toDisplayString(f.modalTitle),1),e.createElementVNode("div",{id:c,class:"pt-4"},[e.renderSlot(f.$slots,"content")]),e.createElementVNode("div",Fe,[e.renderSlot(f.$slots,"actions")])],2)],544))}});var A=(t=>(t.button="button",t.submit="submit",t.reset="reset",t))(A||{}),j=(t=>(t.a="a",t.button="button",t))(j||{}),w=(t=>(t.blank="blank",t.primary="primary",t.secondary="secondary",t.error="error",t))(w||{});const Ie={blank:"btn-ghost",primary:"btn-primary",secondary:"btn-soft btn-primary",error:"btn-error"},Re={blank:"badge-ghost",primary:"badge-primary",secondary:"badge-soft badge-primary",error:"badge-error"},se={href:{type:String},disabled:{type:Boolean,default:!1},tooltip:{type:String},as:{type:String,default:j.button},icon:{type:[String,Object,Function]},type:{type:String,default:A.button},outline:{type:Boolean,default:!1},color:{type:String,default:w.primary},size:{type:String,default:"sm"},square:{type:Boolean,default:!1}},ie=["click"],ce={icon:{type:[String,Object,Function]},type:{type:String,default:A.button},color:{type:String},disabled:{type:Boolean,default:!1},size:{type:String,default:"sm"}},ue=["click"],C=e.defineComponent({__name:"btn",props:se,emits:ie,setup(t,{emit:o}){const n=t,a=o;return(r,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.as),{class:e.normalizeClass(["btn p-1 flex justify-center flex-nowrap",e.unref(Ie)[n.color],e.unref(le)[n.size],{"btn-outline":n.outline,"btn-square":n.square,tooltip:n.tooltip}]),href:n.href,type:n.type,disabled:n.disabled,"data-tip":n.tooltip,onClick:s[0]||(s[0]=c=>a("click"))},{default:e.withCtx(()=>[n.icon?(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:n.icon,size:n.size},null,8,["icon","size"])):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default")]),_:3},8,["class","href","type","disabled","data-tip"]))}}),qe=["type","disabled"],je=e.defineComponent({__name:"btn-badge",props:ce,emits:ue,setup(t,{emit:o}){const n=t,a=o;return(r,s)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["badge gap-1",e.unref(ae)[n.size],e.unref(Re)[n.color]]),type:n.type,disabled:n.disabled,onClick:s[0]||(s[0]=c=>a("click"))},[e.renderSlot(r.$slots,"default"),n.icon?(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:n.icon,size:n.size},null,8,["icon","size"])):e.createCommentVNode("",!0)],10,qe))}}),de=e.defineComponent({__name:"confirmModal",props:{title:{},message:{},confirmLabel:{default:"Ok"},cancelLabel:{default:"Cancel"}},emits:["closeModal"],setup(t,{emit:o}){const n=o,a=r=>{n("closeModal",{confirmed:r})};return(r,s)=>(e.openBlock(),e.createBlock(re,{"modal-title":t.title,open:!0,"disable-close":!0},{content:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),actions:e.withCtx(()=>[e.createVNode(e.unref(C),{color:e.unref(w).secondary,outline:!0,"aria-label":t.cancelLabel,onClick:s[0]||(s[0]=c=>a(!1))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelLabel),1)]),_:1},8,["color","aria-label"]),e.createVNode(e.unref(C),{"aria-label":t.confirmLabel,onClick:s[1]||(s[1]=c=>a(!0))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.confirmLabel),1)]),_:1},8,["aria-label"])]),_:1},8,["modal-title"]))}});class O{constructor(){this.showModal=e.ref(!1),this.modals=[]}openModal(o){const n=o.props.onClose,a=q.v4(),r=o;o.props.onClose=s=>{n(s),this.closeModal(a)},r.id=a,this.modals=[...this.modals,r],this.showModal.value=Date.now()}closeModal(o){this.modals=this.modals.filter(n=>n.id!==o),this.showModal.value=Date.now()}static showConfirm(o){this.getInstance().openModal({component:de,props:o})}static openModal(o){this.getInstance().openModal(o)}static getInstance(){return this.instance||(this.instance=new O),this.instance}static closeAll(){this.instance.closeAll()}closeAll(){this.modals=[],this.showModal.value=!1}}const pe=e.defineComponent({__name:"modalWrapper",setup(t){const o=O.getInstance(),n=e.computed(()=>o.showModal.value?o.modals:[]);return(a,r)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s?.component),e.mergeProps({key:s.id,ref_for:!0},s?.props,{open:!0,onCloseModal:s?.props?.onClose}),null,16,["onCloseModal"]))),128))}}),me=e.defineComponent({__name:"notification-message",props:{message:{},type:{}},setup(t){const o={success:"alert-success",error:"alert-error",warning:"alert-warning",info:"alert-info"};return(n,a)=>(e.openBlock(),e.createElementBlock("div",{role:"alert",class:e.normalizeClass(`alert ${o[t.type]} `)},[e.createElementVNode("span",null,e.toDisplayString(t.message),1)],2))}}),Ke=5e3;class F{constructor(){this.notifications=e.ref([]),this.addNotification=(o,n="info")=>{const a={id:q.v4(),duration:Ke,message:o,type:n};this.notifications.value.push(a),this.removeNotificationAfterDuration(a)},this.removeNotificationAfterDuration=o=>{setTimeout(()=>{this.removeNotification(o.id)},o.duration)},this.removeNotification=o=>{this.notifications.value=this.notifications.value.filter(n=>n.id!==o)}}static getInstance(){return this.instance||(this.instance=new F),this.instance}static info(o){this.getInstance().addNotification(o,"info")}static success(o){this.getInstance().addNotification(o,"success")}static warning(o){this.getInstance().addNotification(o,"warning")}static error(o){this.getInstance().addNotification(o,"error")}static removeNotification(o){this.getInstance().removeNotification(o)}}const Ue={class:"toast toast-top toast-center z-[999]"},fe=e.defineComponent({__name:"notifications",setup(t){const o=F.getInstance();return(n,a)=>(e.openBlock(),e.createElementBlock("div",Ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).notifications.value,r=>(e.openBlock(),e.createBlock(me,e.mergeProps({key:r.id},{ref_for:!0},r),null,16))),128))]))}}),He={class:"flex h-screen flex-col"},We={class:"shrink-0"},Ge={class:"navbar bg-primary text-primary-content w-full z-100"},Xe={class:"navbar-start"},Ze={class:"navbar-center"},Je=["href"],Qe={class:"navbar-end"},Ye={class:"drawer-content overflow-y-auto mb-2 mr-2 shadow-md"},et={class:"drawer-side h-full shadow-md"},tt={class:"flex-grow overflow-y-auto"},ot={class:"bg-base-200 p-4"},nt=e.defineComponent({__name:"shell.component",props:{title:{},menu:{},user:{},version:{},widthSidebar:{default:300}},emits:["logout"],setup(t,{emit:o}){const a=t,r=e.ref(!1),s=()=>{r.value=!r.value},c=o,u=e.computed(()=>a.user?{label:a.user.name,items:[{label:"Logout",action:()=>{c("logout")}}]}:null);return(d,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(fe),e.createVNode(e.unref(pe)),e.createElementVNode("div",He,[e.createElementVNode("header",We,[e.createElementVNode("nav",Ge,[e.createElementVNode("div",Xe,[e.createElementVNode("button",{"aria-label":"open sidebar",class:"btn btn-square btn-ghost p-1",onClick:s},[e.createVNode(e.unref(E),{icon:e.unref(y).Hamburger},null,8,["icon"])])]),e.createElementVNode("div",Ze,[e.createElementVNode("a",{class:"btn btn-ghost text-primary-content text-lg color-white",href:e.unref("/")},e.toDisplayString(t.title),9,Je)]),e.createElementVNode("div",Qe,[u.value?(e.openBlock(),e.createBlock(e.unref(T),e.mergeProps({key:0},u.value,{"btn-class":""}),null,16)):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",{class:e.normalizeClass(["drawer flex-1 overflow-hidden",{"drawer-open":r.value}])},[e.withDirectives(e.createElementVNode("input",{id:"app-drawer","onUpdate:modelValue":i[0]||(i[0]=l=>r.value=l),type:"checkbox",class:"drawer-toggle"},null,512),[[e.vModelCheckbox,r.value]]),e.createElementVNode("main",Ye,[e.renderSlot(d.$slots,"default")]),e.createElementVNode("div",et,[i[1]||(i[1]=e.createElementVNode("label",{for:"app-drawer","aria-label":"close sidebar",class:"drawer-overlay"},null,-1)),e.createElementVNode("div",{class:"menu bg-base-100 h-full flex flex-col justify-between",style:e.normalizeStyle({width:t.widthSidebar+"px"})},[e.createElementVNode("ul",tt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menu,l=>(e.openBlock(),e.createElementBlock("li",{key:l.label},[e.createVNode(e.unref(Ee.RouterLink),{to:{name:l.routerLink,params:l.params}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.label),1)]),_:2},1032,["to"])]))),128))]),e.createElementVNode("div",ot," version: "+e.toDisplayString(t.version),1)],4)])],2)])],64))}}),lt={currentPage:{type:Number,required:!0},page:{type:Number,required:!0},label:{type:String,required:!0},neverActive:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},at=["updatePage","updatePageSize"],L=e.defineComponent({__name:"pagination-button.component",props:lt,emits:at,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.neverActive?!1:n.page===n.currentPage),s=e.computed(()=>n.neverActive?w.blank:r.value?w.primary:w.secondary),c=()=>{a("updatePage",n.page)};return(u,d)=>(e.openBlock(),e.createBlock(e.unref(C),{disabled:u.disabled,square:!0,size:"xs",color:s.value,onClick:d[0]||(d[0]=i=>c())},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.label),1)]),_:1},8,["disabled","color"]))}}),rt={totalItems:{type:Number,default:0},itemsPerPage:{type:Number,default:1},currentPage:{type:Number,default:1}},st=["updatePage","updatePageSize"],it={class:"flex gap-2"},ct={class:"flex flex-1 justify-center items-center"},ut={class:"flex gap-1"},dt={class:"text-sm"},P=6,ge=e.defineComponent({__name:"pagination.component",props:rt,emits:st,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>{let l=Math.ceil(n.totalItems/n.itemsPerPage);return l<1?1:l}),s=P/2,c=e.computed(()=>{if(r.value<=P)return{min:1,max:r.value};let l=n.currentPage-s;l<=1?l=1:l+P>r.value&&(l=r.value-P);let p=l+P;return{min:l,max:p}}),u=l=>({label:"...",currentPage:l,page:-10,disabled:!0,neverActive:!0}),d=e.computed(()=>{let l=r.value;l<1&&(l=1);const p=n.currentPage,m=[],{min:f,max:k}=c.value;return Array.from({length:l},(_,v)=>{const g=v+1;g!==1&&g!==l&&(g>k||g<f)||(g===l&&l>1&&k<l&&m.push(u(p)),m.push({label:`${g}`,totalPages:l,currentPage:p,page:g}),g===1&&l>1&&f>1&&m.push(u(p)))}),m}),i=l=>{a("updatePage",l)};return(l,p)=>(e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",ct,[e.createElementVNode("div",ut,[e.createVNode(L,e.mergeProps(n,{page:1,label:"<<","current-page":l.currentPage,"never-active":!0,disabled:l.currentPage===1,onUpdatePage:i}),null,16,["current-page","disabled"]),e.createVNode(L,e.mergeProps(n,{page:l.currentPage-1,label:"<","current-page":l.currentPage,"never-active":!0,disabled:l.currentPage===1,onUpdatePage:i}),null,16,["page","current-page","disabled"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,m=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:m.page,ref_for:!0},m,{onUpdatePage:i}),null,16))),128)),e.createVNode(L,e.mergeProps(n,{page:l.currentPage+1,label:">","current-page":l.currentPage,"never-active":!0,disabled:n.currentPage===r.value,onUpdatePage:i}),null,16,["page","current-page","disabled"]),e.createVNode(L,e.mergeProps(n,{page:r.value,label:">>","current-page":l.currentPage,"never-active":!0,disabled:n.currentPage===r.value,onUpdatePage:i}),null,16,["page","current-page","disabled"])])]),e.createElementVNode("div",dt," page "+e.toDisplayString(l.currentPage)+" of "+e.toDisplayString(r.value),1)]))}}),pt={data:{type:Object,required:!0},column:{type:Object,required:!0},options:{type:Object}},mt=e.defineComponent({__name:"text.cell",props:pt,setup(t){const o=t,n=e.computed(()=>{const a=o.data[o.column.id];return a?o.column.options?.format==="keyValue"?a[o.column.options.key]:a:null});return(a,r)=>e.toDisplayString(n.value)}}),ft={column:{type:Object,required:!0},sortColumn:{type:String},sortDirection:{type:String}},gt=["sort"],bt={class:"flex-grow pr-2"},vt={class:"h-4 w-4"},ht=e.defineComponent({__name:"sort.header",props:ft,emits:gt,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.sortDirection==="asc"?y.BarsArrowUp:y.BarsArrowDown),s=e.computed(()=>n.column.options?.sortId??n.column.id),c=()=>{a("sort",s.value)};return(u,d)=>(e.openBlock(),e.createElementBlock("button",{class:"flex items-center",onClick:c},[e.createElementVNode("span",bt,e.toDisplayString(u.column.label),1),e.createElementVNode("div",vt,[u.sortColumn===s.value?(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:r.value},null,8,["icon"])):e.createCommentVNode("",!0)])]))}}),kt={loading:{type:Boolean,default:!1},actions:{type:Array},data:{type:Array},displayColumns:{type:Array,required:!0},page:{type:Object},sort:{type:Object}},yt=["updatePage","sort"],Bt={class:"table w-full"},Ct={key:0},wt=["colspan"],Et=["ui-id"],Vt={class:"flex gap-2"},be=e.defineComponent({__name:"table.component",props:kt,emits:yt,setup(t,{emit:o}){const n=o,a=e.useAttrs(),r=e.computed(()=>"onEdit"in a),s=e.computed(()=>"onDelete"in a),c=l=>{a.onEdit?.(l)},u=l=>{a.onDelete?.(l)},d=l=>{n("updatePage",l)},i=l=>{n("sort",l)};return(l,p)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("table",Bt,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.displayColumns,m=>(e.openBlock(),e.createElementBlock("th",{key:m.scope},[e.createVNode(ht,e.mergeProps({column:m},{ref_for:!0},l.sort,{onSort:i}),null,16,["column"])]))),128)),p[0]||(p[0]=e.createElementVNode("th",null,null,-1))])]),e.createElementVNode("tbody",null,[l.loading?(e.openBlock(),e.createElementBlock("tr",Ct,[e.createElementVNode("td",{colspan:l.displayColumns.length+1,class:"text-center"},[...p[1]||(p[1]=[e.createElementVNode("span",{class:"loading loading-bars loading-xs"},null,-1)])],8,wt)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.data,m=>(e.openBlock(),e.createElementBlock("tr",{key:m.id,"ui-id":`table_${m.id}`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.displayColumns,f=>(e.openBlock(),e.createElementBlock("td",{key:f.scope},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.component),e.mergeProps({ref_for:!0},f,{data:m,column:f}),null,16,["data","column"]))]))),128)),e.createElementVNode("td",null,[e.createElementVNode("span",Vt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.actions,f=>(e.openBlock(),e.createBlock(C,{key:f.label,"aria-label":f.label,icon:f.icon,outline:!0,onClick:k=>f.action(m)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.label),1)]),_:2},1032,["aria-label","icon","onClick"]))),128)),r.value?(e.openBlock(),e.createBlock(C,{key:0,"aria-label":"Edit",icon:e.unref(y).Edit,outline:!0,onClick:f=>c(m)},null,8,["icon","onClick"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createBlock(C,{key:1,"aria-label":"Delete",icon:e.unref(y).Delete,outline:!0,onClick:f=>u(m)},null,8,["icon","onClick"])):e.createCommentVNode("",!0)])])],8,Et))),128))])]),l.page?(e.openBlock(),e.createBlock(ge,{key:0,class:"border-gray-300 border-t pt-4 border-x-0 border-b-0","total-items":l.page.count,"items-per-page":l.page.pageSize,"current-page":l.page.page,onUpdatePage:d},null,8,["total-items","items-per-page","current-page"])):e.createCommentVNode("",!0)],64))}}),Nt=(t,o)=>{const n=t.__vccOpts||t;for(const[a,r]of o)n[a]=r;return n},xt={},_t={class:"card bg-base-100 shadow-sm"},St={class:"card-body"},$t={key:0,class:"card-title"},Lt={key:1,class:"card-actions justify-end"};function Pt(t,o){return e.openBlock(),e.createElementBlock("div",_t,[e.createElementVNode("div",St,[t.$slots.title?(e.openBlock(),e.createElementBlock("h2",$t,[e.renderSlot(t.$slots,"title")])):e.createCommentVNode("",!0),e.createElementVNode("p",null,[e.renderSlot(t.$slots,"default"),e.renderSlot(t.$slots,"content")]),t.$slots.actions?(e.openBlock(),e.createElementBlock("div",Lt,[e.renderSlot(t.$slots,"actions")])):e.createCommentVNode("",!0)])])}const Mt=Nt(xt,[["render",Pt]]),Dt=(t,o)=>{if(!t)return null;const n=a=>{t.contains(a.target)||o()};return document.addEventListener("click",n),n},zt=t=>{document.removeEventListener("click",t)},Tt={beforeMount(t,o){t.clickOutsideEvent=function(n){t===n.target||t.contains(n.target)||o.value(n)},document.addEventListener("click",t.clickOutsideEvent)},unmounted(t){document.removeEventListener("click",t.clickOutsideEvent)}};function At(t){return t.replace(/[:\s_-]+(.)/g,(o,n)=>n.toUpperCase()).replace(/^[A-Z]/,o=>o.toLowerCase())}function Ot(t){const o=e.getCurrentInstance();if(!o)return!1;const n=o.vnode.props;if(!n)return!1;const a=At(t),r=e.camelize(t);return[e.toHandlerKey(t),e.toHandlerKey(r),e.toHandlerKey(a),`on:${t}`,`on:${r}`,`on:${a}`].some(c=>!!n[c])}const Ft=["select"],K={options:{type:Array,required:!1},isLoading:{type:Boolean,default:!1},query:{type:String,default:null},isActive:{type:Function,default:t=>!1}},M={group:{root:"group",label:"text-primary text-lg font-bold",item:"group-item"},verticalLayout:{root:"flex flex-col gap-x-2",item:"w-full"},horizontalLayout:{root:"flex flex-row gap-x-2",item:"w-full"},arrayList:{root:"fieldset",legend:"fieldset-legend text-xl capitalize"},control:{root:"fieldset",wrapper:"fieldset",label:"fieldset-legend",error:"",input:"input",textarea:"input h-32",checkbox:"checkbox",select:"input pr-14",description:"form-control--description label text-xs text-gray-500"},fixedArrayList:{root:"flex flex-row gap-x-2",item:"w-full"}},D=t=>{if(!t)return{...M};const o={...M};for(const n of Object.keys(t)){const a=t[n];a&&typeof a=="object"&&(o[n]={...M[n],...a})}return o},N={id:{type:String},placeholder:{type:String},description:{type:String},errors:{type:String},label:{type:String},visible:{type:Boolean,default:!1},required:{type:Boolean,default:!1},enabled:{type:Boolean,default:!0},isFocused:{type:Boolean,default:!1},isTouched:{type:Boolean,default:!1},hideLabel:{type:Boolean,default:!1},styles:{type:Object,default:()=>M},width:{type:String,default:"w-48"}},U={...N,options:{type:Array,required:!0},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},enableCreate:{type:Boolean,default:!1}},It=["select","clear","close","create"],ve={...K,...U,isOpen:{type:Boolean,default:!1},isActive:{type:Function,default:t=>!1}},Rt={key:1,tabindex:"-1",class:"pointer-events-none"},qt=["data-index","aria-selected","onMousedown","onMousemove"],jt=["innerHTML"],Kt={key:0,xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 shrink-0 opacity-80",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"};function Ut(t,o){if(!o)return t;const n=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t.replace(new RegExp(`(${n})`,"gi"),'<mark class="bg-warning/40 text-inherit rounded-sm px-0.5">$1</mark>')}const Ht=e.defineComponent({__name:"ListResults",props:K,emits:Ft,setup(t,{expose:o,emit:n}){const a=t,r=e.ref(-1),s=e.ref(),c=n;e.watch(()=>a.options,()=>{r.value=-1});function u(){e.nextTick(()=>{s.value?.querySelector(`[data-index="${r.value}"]`)?.scrollIntoView({block:"nearest"})})}function d(l){const p=a.options?.length??0;if(p)switch(l.key){case"ArrowDown":l.preventDefault(),r.value=(r.value+1)%p,u();break;case"ArrowUp":l.preventDefault(),r.value=r.value<=0?p-1:r.value-1,u();break;case"Enter":l.preventDefault(),r.value>=0&&r.value<p&&i(a.options[r.value]);break}}function i(l){r.value=-1,c("select",l)}return o({handleKeydown:d}),(l,p)=>(e.openBlock(),e.createElementBlock("ul",{ref_key:"listRef",ref:s,role:"listbox",class:"absolute z-50 w-full mt-1 bg-base-100 border border-base-300 rounded-box shadow-xl overflow-auto max-h-64 origin-top p-1"},[l.isLoading?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},e.renderList(2,m=>e.createElementVNode("li",{key:`skel-${m}`,class:"pointer-events-none px-3 py-2"},[...p[0]||(p[0]=[e.createElementVNode("div",{class:"flex items-center gap-3"},[e.createElementVNode("div",{class:"skeleton h-3 w-3/4 rounded"})],-1)])])),64)):l.options.length===0?(e.openBlock(),e.createElementBlock("li",Rt,[...p[1]||(p[1]=[e.createElementVNode("span",{class:"px-3 py-2 text-sm opacity-50 italic"}," No results found ",-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(l.options,(m,f)=>(e.openBlock(),e.createElementBlock("li",{key:m.value,"data-index":f,role:"option","aria-selected":f===r.value,onMousedown:e.withModifiers(k=>i(m),["prevent"]),onMousemove:k=>r.value=f},[e.createElementVNode("a",{class:e.normalizeClass(["flex items-center justify-between gap-2 rounded-lg px-3 py-2 text-sm transition-colors duration-100",{"active bg-secondary text-primary-content":f===r.value,"hover:bg-base-200":f!==r.value}])},[e.createElementVNode("span",{class:"whitespace-nowrap",innerHTML:Ut(m.label,l.query)},null,8,jt),l.isActive(m)?(e.openBlock(),e.createElementBlock("svg",Kt,[...p[2]||(p[2]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 13l4 4L19 7"},null,-1)])])):e.createCommentVNode("",!0)],2)],40,qt))),128))],512))}}),H=({isTouched:t,errors:o})=>!!(t&&o),he=(t,o,n,a)=>o===void 0||o!==void 0&&!t||!a&&!n,V=(t,o)=>[t,{"input-error":H(o)}],Wt={key:0},x=e.defineComponent({__name:"ControlWrapper",props:N,setup(t){const o=t,n=e.computed(()=>!he(o.visible,o.description,o.isFocused,!0)),a=e.computed(()=>o.required),r=e.computed(()=>H(o)),s=e.computed(()=>D(o.styles));return(c,u)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(["fieldset",[c.width,s.value.control.wrapper]])},[e.createElementVNode("legend",{class:e.normalizeClass(s.value.control.label)},[c.hideLabel?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",null,e.toDisplayString(c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",Wt,"*")):e.createCommentVNode("",!0)],64)),u[0]||(u[0]=e.createTextVNode(" ",-1))],2),e.renderSlot(c.$slots,"default"),e.createElementVNode("p",{class:e.normalizeClass(["fieldset-label h-4",{"text-error":r.value}])},e.toDisplayString(r.value?c.errors:n.value?c.description:null),3)],2))}}),Gt=["aria-label"],Xt={class:"flex items-center w-full"},Zt={class:"overflow-hidden w-full"},Jt={class:"absolute inset-y-0 right-0 flex items-center pr-3 gap-1 pointer-events-none"},Qt={key:0,class:"loading loading-spinner loading-xs text-primary pointer-events-none"},W=e.defineComponent({__name:"SelectWrapper",props:ve,emits:It,setup(t,{emit:o}){const n=t,a=e.ref(),r=e.ref(),s=o,c=()=>{u(),s("clear")},u=()=>{s("close")},d=l=>{if(l.key==="Escape"){u();return}r.value?.handleKeydown(l)},i=l=>{a.value&&!a.value.contains(l.target)&&u()};return e.onMounted(()=>{document.addEventListener("click",i)}),e.onUnmounted(()=>{document.removeEventListener("click",i)}),(l,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"selectWrapperRef",ref:a,"aria-label":l.id,role:"select"},[e.createVNode(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.createElementVNode("div",Xt,[e.createElementVNode("div",{class:"relative w-full",onKeydown:d},[e.createElementVNode("div",Zt,[e.renderSlot(l.$slots,"default")]),e.createElementVNode("div",Jt,[l.isLoading&&!l.label?(e.openBlock(),e.createElementBlock("span",Qt)):e.createCommentVNode("",!0),l.query&&!l.isLoading?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"pointer-events-auto btn btn-ghost btn-xs btn-circle opacity-60 hover:opacity-100",tabindex:"-1","aria-label":"Clear",onMousedown:e.withModifiers(c,["prevent"])},[...p[2]||(p[2]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],32)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(["h-4 w-4 opacity-40 transition-transform duration-200",{"rotate-180":l.isOpen}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[...p[3]||(p[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-150 ease-out","enter-from-class":"opacity-0 -translate-y-1 scale-y-95","enter-to-class":"opacity-100 translate-y-0 scale-y-100","leave-active-class":"transition-all duration-100 ease-in","leave-from-class":"opacity-100 translate-y-0 scale-y-100","leave-to-class":"opacity-0 -translate-y-1 scale-y-95"},{default:e.withCtx(()=>[l.isOpen?(e.openBlock(),e.createBlock(Ht,{key:0,ref_key:"listResultsRef",ref:r,query:l.query,options:l.options,"is-loading":l.isLoading,"is-active":l.isActive,onSelect:p[0]||(p[0]=m=>s("select",m))},null,8,["query","options","is-loading","is-active"])):e.createCommentVNode("",!0)]),_:1})],32),l.enableCreate?(e.openBlock(),e.createBlock(C,{key:0,icon:"Plus",color:"blank",size:"lg",tooltip:"Create new","aria-label":"create",onClick:p[1]||(p[1]=m=>s("create"))})):e.createCommentVNode("",!0)])]),_:3},16)],8,Gt))}}),R=(t,o)=>{if(t)return typeof t=="object"?t[o.labelKey]:t},I=(t,o)=>{if(t)return typeof t=="object"?t[o.valueKey]:t},Yt=t=>{const o=e.ref([]),n=new Map,a=new Map,r=l=>{const p=[];n.clear(),a.clear(),l?.forEach(m=>{const f={value:I(m,t),label:R(m,t)};n.set(f.value,m),p.push(f)}),o.value=p},s=l=>n.get(l.value);return{options:o,setOptions:r,getOriginal:s,getLabels:(...l)=>l.map(p=>R(p,t)),getValues:(...l)=>l.map(p=>I(p,t)),getOption:l=>a.get(I(l,t)),getOriginals:(...l)=>l.map(s).filter(Boolean)}},G=t=>Yt(t),eo=["aria-label"],to=e.defineComponent({__name:"SelectComponent",props:e.mergeModels(U,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","clear","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=e.ref(!1),a=t,r=o,s=e.useModel(t,"modelValue"),c=G(a),{options:u}=c;e.watch(()=>a.options,()=>{c.setOptions(a.options)},{immediate:!0});const d=v=>{r("change",v)},i=e.computed(()=>s.value?c.getLabels(s.value)[0]:""),l=e.computed(()=>D(a.styles)),p=e.computed(()=>V(l.value.control.select,a)),m=v=>{const g=c.getOriginal(v);s.value=g,d(g)},f=()=>{n.value=!1,s.value=null,d(void 0)},k=v=>c.getValues(s.value)?.[0]===v.value,_=()=>{n.value=!1};return(v,g)=>(e.openBlock(),e.createBlock(W,e.mergeProps(a,{options:e.unref(u),disabled:!v.enabled,"is-open":n.value,query:i.value,"is-active":k,onClose:_,onSelect:m,onClear:f}),{default:e.withCtx(()=>[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["truncate block text-left",[p.value,v.width]]),"aria-label":v.id,role:"combobox",onClick:g[0]||(g[0]=B=>n.value=!0)},e.toDisplayString(i.value??"Select value"),11,eo)]),_:1},16,["options","disabled","is-open","query"]))}}),oo={...U,...K,modelValue:{type:[String,Object],default:""},fetchOptions:{type:Function,default:null},debounceMs:{type:Number,default:200},maxResults:{type:Number,default:8},freeText:{type:Boolean,default:!1}};function no(t){const o=e.ref([]),n=e.ref(!1);function a(s){if(!t.options){o.value=[];return}const c=s.toLowerCase(),u=c?t.options.filter(d=>R(d,t).toLowerCase().includes(c)):t.options;o.value=u.slice(0,t.maxResults)}function r(){o.value=[]}return{results:o,isLoading:n,search:a,clear:r}}function lo(t){const o=e.ref([]),n=e.ref(!1);let a=null,r=null;async function s(d){r&&r.abort(),r=new AbortController,n.value=!0;try{const i=await t.fetchOptions(d,r.signal);o.value=(i||[]).slice(0,t.maxResults)}catch(i){i.name!=="AbortError"&&(o.value=[])}finally{n.value=!1}}function c(d){a&&clearTimeout(a),n.value=!0,a=setTimeout(()=>{s(d)},t.debounceMs)}function u(){a&&clearTimeout(a),r&&r.abort(),o.value=[],n.value=!1}return{results:o,isLoading:n,search:c,clear:u}}function ao(t){const o=t.fetchOptions?lo(t):no(t);function n(a){o.search(a)}return{results:o.results,isLoading:o.isLoading,triggerSearch:n,clear:o.clear}}const ro=["aria-label","aria-expanded","value","placeholder","disabled"],so=e.defineComponent({__name:"AutoComplete",props:oo,emits:["update:modelValue","change","clear","focus","blur"],setup(t,{emit:o}){const n=t,a=o,r=e.ref(null),s=e.ref(""),c=e.ref(!1),u=ao(n),{isLoading:d,triggerSearch:i,clear:l}=u,p=G(n),{options:m}=p;e.watch(()=>u.results.value,()=>{p.setOptions(u.results.value)},{immediate:!0}),e.watch(()=>n.modelValue,h=>{if(h==null||h===""){s.value="";return}const $=typeof h=="object"?h[n.labelKey]:h;$!==s.value&&(s.value=$)},{immediate:!0});const f=h=>{s.value=h.target.value,n.freeText?a("update:modelValue",s.value):a("update:modelValue",""),i(s.value),c.value=!0},k=()=>{i(s.value),c.value=!0};function _(){setTimeout(()=>{c.value=!1,n.freeText?a("change",s.value):n.modelValue||(s.value="")},150)}const v=h=>{const $=p.getOriginal(h);s.value=h.label,c.value=!1,a("update:modelValue",$),a("change",$)},g=()=>{s.value="",l(),c.value=!1,a("update:modelValue",""),a("clear"),e.nextTick(()=>r.value?.focus())},B=()=>{c.value=!1},S=e.computed(()=>D(n.styles)),we=e.computed(()=>V(S.value.control.select,n));return(h,$)=>(e.openBlock(),e.createBlock(W,e.mergeProps(n,{options:e.unref(m),"is-loading":e.unref(d),"is-open":c.value,query:s.value,onClose:B,onSelect:v,onClear:g}),{default:e.withCtx(()=>[e.createElementVNode("input",{ref_key:"inputRef",ref:r,type:"text",role:"combobox","aria-label":h.id,"aria-expanded":c.value,"aria-autocomplete":"list","aria-haspopup":"listbox",autocomplete:"off",autocorrect:"off",spellcheck:"false",class:e.normalizeClass([we.value,"w-full"]),value:s.value,placeholder:h.placeholder,disabled:!h.enabled,onInput:f,onFocus:k,onBlur:_},null,42,ro)]),_:1},16,["options","is-loading","is-open","query"]))}}),io=["aria-label"],co=e.defineComponent({__name:"MultiSelect",props:e.mergeModels(ve,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","clear","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=e.ref(!1),a=t,r=o,s=e.useModel(t,"modelValue"),c=g=>{r("change",g)},u=G(a),{options:d}=u;e.watch(()=>a.options,()=>{u.setOptions(a.options)},{immediate:!0});const i=e.computed(()=>s.value?u.getLabels(...s.value).join(", "):void 0),l=e.computed(()=>u.getValues(...s.value??[])),p=g=>{let B=s.value??[];if(k(g))B=B.filter(S=>u.getOption(S)!==g.value);else{const S=u.getOriginal(g);B.push(S)}s.value=B,c(B)},m=()=>{n.value=!1,s.value=[],c([])},f=()=>{n.value=!1},k=g=>l.value?.includes(g.value)??!1,_=e.computed(()=>D(a.styles)),v=e.computed(()=>V(_.value.control.select,a));return(g,B)=>(e.openBlock(),e.createBlock(W,e.mergeProps(a,{options:e.unref(d),"is-open":n.value,disabled:!g.enabled,query:i.value,"is-active":k,onClose:f,onSelect:p,onClear:m}),{default:e.withCtx(()=>[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["truncate block text-left",[v.value,g.width]]),"aria-label":g.id,role:"combobox",onClick:B[0]||(B[0]=S=>n.value=!0)},e.toDisplayString(i.value??"Select value"),11,io)]),_:1},16,["options","is-open","disabled","query"]))}}),uo=["change"],po={...N,width:{type:String,default:"w-48"},minHeight:{type:String,default:"min-h-96"},actions:{type:Object,default:()=>[{label:"<strong>B</strong>",name:"bold",action:t=>t?.chain().focus().toggleBold().run()},{label:"<em>I</em>",name:"italic",action:t=>t?.chain().focus().toggleItalic().run()}]}},mo=["aria-label"],fo={class:"flex items-center gap-1 px-3 py-2 border-b border-base-300 bg-base-200"},go=["title","onClick"],bo=["innerHTML"],vo={class:"card-body p-3"},ho=e.defineComponent({__name:"Markdown",props:e.mergeModels(po,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(uo,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=X.useEditor({content:r.value??"",extensions:[Ve.configure({heading:!1,blockquote:!1,bulletList:!1,orderedList:!1,listItem:!1,code:!1,codeBlock:!1,horizontalRule:!1,hardBreak:!1}),Ne.Markdown.configure({html:!1,transformPastedText:!0})],onUpdate({editor:c}){a("change",c.storage.markdown.getMarkdown())}});return e.onBeforeUnmount(()=>{s.value?.destroy()}),(c,u)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass([[c.minHeight],"card bg-base-100 border border-base-300 w-full"]),"aria-label":c.id,role:"textbox"},[e.createElementVNode("div",fo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.actions,d=>(e.openBlock(),e.createElementBlock("button",{key:d.name,tabindex:"-1",type:"button",class:e.normalizeClass(["btn btn-sm btn-ghost",{"btn-active":e.unref(s)?.isActive(d.name)}]),title:d.label,onClick:i=>d.action(e.unref(s))},[e.createElementVNode("span",{innerHTML:d.label},null,8,bo)],10,go))),128))]),e.createElementVNode("div",vo,[e.createVNode(e.unref(X.EditorContent),{editor:e.unref(s),class:"prose prose-sm max-w-none h-full"},null,8,["editor"])])],10,mo)]),_:1},16))}}),ko={...N},yo=["change","focus","blur"],Bo={class:"flex items-center justify-center h-full"},Co={class:"fieldset-label"},wo=["aria-label","disabled"],Eo={class:"font-bold text-gray-500 text-sm"},Vo=e.defineComponent({__name:"Checkbox",props:e.mergeModels(ko,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(yo,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",i)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.checkbox,n));return(i,l)=>(e.openBlock(),e.createElementBlock("div",Bo,[e.createVNode(x,e.mergeProps(n,{"hide-label":!0}),{default:e.withCtx(()=>[e.createElementVNode("label",Co,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),"aria-label":i.id,role:"checkbox",type:"checkbox",class:e.normalizeClass(d.value),disabled:!i.enabled,onChange:s,onFocus:c,onBlur:u},null,42,wo),[[e.vModelCheckbox,r.value]]),e.createElementVNode("span",Eo,e.toDisplayString(i.label),1)])]),_:1},16)]))}}),No={...N,type:{type:String,default:"text"}},xo=["change","focus","blur"],_o=["aria-label","type","disabled","autofocus","placeholder"],So=e.defineComponent({__name:"Input",props:e.mergeModels(No,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(xo,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",i)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.input,n));return(i,l)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),"aria-label":i.id,autocomplete:"off",type:i.type,class:e.normalizeClass(["w-full",d.value]),disabled:!i.enabled,autofocus:i.isFocused,placeholder:i.placeholder,onChange:s,onFocus:c,onBlur:u},null,42,_o),[[e.vModelDynamic,r.value]])]),_:1},16))}}),$o={...N,steps:{type:Number,default:1}},Lo=["change","focus","blur"],Po=["aria-label","disabled","step","autofocus","placeholder"],Mo=e.defineComponent({__name:"InputNumber",props:e.mergeModels($o,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(Lo,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",i)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.input,n));return(i,l)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),autocomplete:"off","aria-label":i.id,type:"number",class:e.normalizeClass(["w-full",[d.value]]),disabled:!i.enabled,step:i.steps,autofocus:i.isFocused,placeholder:i.placeholder,onChange:s,onFocus:c,onBlur:u},null,42,Po),[[e.vModelText,r.value]])]),_:1},16))}}),Do={...N,rows:{type:Number,default:4}},zo=["change","focus","blur"],To=["aria-label","disabled","rows","autofocus","placeholder"],Ao=e.defineComponent({__name:"Textarea",props:e.mergeModels(Do,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(zo,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",i)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.textarea,n));return(i,l)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),autocomplete:"off",type:"text","aria-label":i.id,class:e.normalizeClass(["w-full",d.value]),disabled:!i.enabled,rows:i.rows,autofocus:i.isFocused,placeholder:i.placeholder,onChange:s,onFocus:c,onBlur:u},null,42,To),[[e.vModelText,r.value]])]),_:1},16))}}),Oo={widthLeft:{type:Number,default:200},widthRight:{type:Number,default:200},initialLeftOpen:{type:Boolean,default:!0},initialRightOpen:{type:Boolean,default:!0}},Fo={class:"flex h-full overflow-hidden gap-2"},Io={key:0,id:"drawer-left",class:"min-h-0 relative flex-shrink-0 bg-white overflow-visible flex"},Ro=["aria-expanded","aria-label"],qo={class:"flex-1 overflow-y-auto bg-white"},jo={key:1,class:"min-h-0 relative flex-shrink-0 bg-white overflow-visible flex"},Ko=["aria-expanded","aria-label"],Uo=e.defineComponent({__name:"drawer",props:Oo,setup(t){const o=t,n=e.useSlots(),a=e.computed(()=>!!n["left-drawer"]),r=e.computed(()=>!!n["right-drawer"]),s=e.ref({left:o.initialLeftOpen,right:o.initialRightOpen}),c=u=>{s.value[u]=!s.value[u]};return(u,d)=>(e.openBlock(),e.createElementBlock("main",Fo,[a.value?(e.openBlock(),e.createElementBlock("aside",Io,[e.createElementVNode("div",{id:"drawer-left-panel",style:e.normalizeStyle({width:s.value.left?u.widthLeft+"px":"0px"}),class:"h-full overflow-hidden bg-white shadow-sm transition-[width] duration-300 ease-in-out"},[e.createElementVNode("div",{style:e.normalizeStyle({width:u.widthLeft+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(u.$slots,"left-drawer")],4)],4),e.createElementVNode("button",{"aria-expanded":s.value.left,"aria-controls":"drawer-left-panel","aria-label":s.value.left?"Collapse left panel":"Expand left panel",class:"hover:bg-base-300 hover:text-base-content transition-colors cursor-pointer",onClick:d[0]||(d[0]=i=>c("left"))},[e.createVNode(e.unref(E),{size:"lg",icon:s.value.left?e.unref(y).ChevronLeft:e.unref(y).ChevronRight},null,8,["icon"])],8,Ro)])):e.createCommentVNode("",!0),e.createElementVNode("div",qo,[e.renderSlot(u.$slots,"default")]),r.value?(e.openBlock(),e.createElementBlock("aside",jo,[e.createElementVNode("button",{"aria-expanded":s.value.right,"aria-controls":"drawer-right-panel","aria-label":s.value.right?"Collapse right panel":"Expand right panel",class:"hover:bg-base-300 hover:text-base-content transition-colors cursor-pointer",onClick:d[1]||(d[1]=i=>c("right"))},[e.createVNode(e.unref(E),{size:"lg",icon:s.value.right?e.unref(y).ChevronRight:e.unref(y).ChevronLeft},null,8,["icon"])],8,Ko),e.createElementVNode("div",{id:"drawer-right-panel",style:e.normalizeStyle({width:s.value.right?u.widthRight+"px":"0px"}),class:"h-full overflow-hidden bg-white shadow-sm transition-[width] duration-300 ease-in-out"},[e.createElementVNode("div",{style:e.normalizeStyle({width:u.widthRight+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(u.$slots,"right-drawer")],4)],4)])):e.createCommentVNode("",!0)]))}}),Ho={class:"ml-1"},Wo={class:"truncate flex-1 min-w-0 text-left"},Go={key:0,class:"badge badge-ghost badge-sm flex-shrink-0"},Xo=e.defineComponent({__name:"TreeItem",props:{active:{},node:{},expanded:{},isExpanded:{type:Function}},emits:["toggle","select"],setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.active===n.node.id);return(s,c)=>{const u=e.resolveComponent("TreeItem",!0);return e.openBlock(),e.createElementBlock("li",Ho,[e.createElementVNode("div",{class:e.normalizeClass([`flex items-center gap-1 cursor-pointer rounded-md px-1 py-0.5
|
|
2
|
-
hover:bg-gray-100`,r.value?"text-primary":""])},[(t.node?.children?.length??0)>0?(e.openBlock(),e.createElementBlock("span",{key:0,class:"flex items-center justify-center",onClick:c[0]||(c[0]=d=>a("toggle",t.node))},[t.node.children&&t.isExpanded(t.node.id)?(e.openBlock(),e.createBlock(e.unref(Z.ChevronDownIcon),{key:0,class:"w-3 h-3"})):(e.openBlock(),e.createBlock(e.unref(Z.ChevronRightIcon),{key:1,class:"w-3 h-3"}))])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex items-center gap-2 w-full min-w-0",onClick:c[1]||(c[1]=d=>a("select",t.node))},[e.createElementVNode("div",Wo,e.toDisplayString(t.node.label),1),t.node.tag?(e.openBlock(),e.createElementBlock("div",Go,e.toDisplayString(t.node.tag),1)):e.createCommentVNode("",!0)])],2),t.node.children&&t.isExpanded(t.node.id)?(e.openBlock(),e.createElementBlock("ul",{key:0,class:e.normalizeClass(["ml-4 border-l pl-2",{"border-gray-200":!r.value,"border-primary":r.value}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,d=>(e.openBlock(),e.createBlock(u,{key:d.id,node:d,expanded:t.expanded,active:t.active,"is-expanded":t.isExpanded,onToggle:c[2]||(c[2]=i=>a("toggle",i)),onSelect:c[3]||(c[3]=i=>a("select",i))},null,8,["node","expanded","active","is-expanded"]))),128))],2)):e.createCommentVNode("",!0)])}}}),Zo={class:"select-none text-sm"},Jo=e.defineComponent({__name:"TreeView",props:{data:{},active:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,r=e.ref(new Set),s=d=>{const i=d.id;if(!d.children||d.children.length===0){a("select",d);return}r.value.has(i)?r.value.delete(i):r.value.add(i)},c=d=>{a("select",d),r.value.add(d.id)},u=d=>r.value.has(d);return(d,i)=>(e.openBlock(),e.createElementBlock("ul",Zo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.data,l=>(e.openBlock(),e.createBlock(Xo,{key:l.id,node:l,expanded:r.value,active:t.active,"is-expanded":u,onToggle:s,onSelect:c},null,8,["node","expanded","active"]))),128))]))}}),Qo={key:0,role:"status","aria-live":"polite",class:"flex items-center justify-center h-20"},Yo=e.defineComponent({__name:"loading",props:{loading:{type:Boolean}},setup(t){return(o,n)=>t.loading?(e.openBlock(),e.createElementBlock("div",Qo,[...n[0]||(n[0]=[e.createElementVNode("span",{"aria-hidden":"true",class:"loading loading-bars loading-md text-primary"},null,-1),e.createElementVNode("span",{class:"sr-only"},"Loading...",-1)])])):e.createCommentVNode("",!0)}}),en={title:{type:String,required:!0},opened:{type:Boolean,default:!0},heightFull:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},actions:{type:Array,default:()=>[]}},tn=["checked","aria-label"],on={class:"collapse-title text-gray-500 text-xs font-medium"},nn={class:"flex items-center justify-between"},ln={key:0,class:"list bg-base-100"},ke=e.defineComponent({__name:"Collapse",props:en,setup(t){const o=e.useSlots(),n=t,a=e.ref(n.opened),r=e.ref(n.opened||n.disabled);return(s,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["collapse collapse-arrow bg-white w-full border border-gray-300",s.heightFull?"h-full":"",s.disabled?"collapse-open":"",r.value?"overflow-visible":""])},[s.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("input",{key:0,type:"checkbox",checked:a.value,tabindex:"-1","aria-label":"Toggle "+s.title,onChange:c[0]||(c[0]=u=>r.value=u.target.checked)},null,40,tn)),e.createElementVNode("div",on,[e.createElementVNode("div",nn,[e.createElementVNode("span",null,e.toDisplayString(s.title),1),n.actions.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"relative z-10 flex gap-1",onClick:c[1]||(c[1]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.actions,(u,d)=>(e.openBlock(),e.createBlock(e.unref(C),{key:d,color:e.unref(w).blank,size:"xs",icon:u.icon,tooltip:u.tooltip,disabled:u.disabled,onClick:u.onClick},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.label),1)]),_:2},1032,["color","icon","tooltip","disabled","onClick"]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",{class:e.normalizeClass(["collapse-content",e.unref(o).list?"p-0":""])},[e.renderSlot(s.$slots,"default"),e.unref(o).list?(e.openBlock(),e.createElementBlock("ul",ln,[e.renderSlot(s.$slots,"list")])):e.createCommentVNode("",!0)],2)],2))}}),an={title:{type:String},label:{type:String},labelLink:{type:String},description:{type:String},descriptionLink:{type:String}},rn={class:"list-row"},sn={class:"list-col-grow"},cn={key:0},un={key:1,class:"text-xs text-gray-600"},dn=["href"],pn={key:1},mn={key:0,class:"text-xs text-gray-500"},fn=["href"],gn={key:1},bn=e.defineComponent({__name:"CollapseRow",props:an,setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("li",rn,[e.createElementVNode("div",sn,[o.title?(e.openBlock(),e.createElementBlock("div",cn,e.toDisplayString(o.title),1)):e.createCommentVNode("",!0),o.description||o.descriptionLink?(e.openBlock(),e.createElementBlock("div",un,[o.descriptionLink?(e.openBlock(),e.createElementBlock("a",{key:0,href:o.descriptionLink,target:"_blank"},e.toDisplayString(o.description??o.descriptionLink),9,dn)):(e.openBlock(),e.createElementBlock("span",pn,e.toDisplayString(o.description),1))])):e.createCommentVNode("",!0)]),o.label?(e.openBlock(),e.createElementBlock("div",mn,[o.labelLink?(e.openBlock(),e.createElementBlock("a",{key:0,href:o.labelLink,target:"_blank"},e.toDisplayString(o.label),9,fn)):(e.openBlock(),e.createElementBlock("span",gn,e.toDisplayString(o.label),1))])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")]))}}),vn={class:"text-gray-800"},hn=e.defineComponent({__name:"alert",props:{message:{},type:{}},setup(t){const o={success:"alert-success",error:"alert-error",warning:"alert-warning",info:"alert-info"};return(n,a)=>(e.openBlock(),e.createElementBlock("div",{role:"alert",class:e.normalizeClass(`alert alert-soft ${o[t.type]} `)},[e.createElementVNode("span",vn,e.toDisplayString(t.message),1),e.renderSlot(n.$slots,"default")],2))}}),ye={title:{type:String,required:!0},items:{type:Array,required:!0},modelValue:{type:Array,default:()=>[]},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"id"},colorKey:{type:String,default:void 0},countKey:{type:String,default:"count"},counts:{type:Object,default:void 0},opened:{type:Boolean,default:!0}},Be=["update:modelValue"],Ce=(t,o,n,a)=>{const r=e.computed(()=>t.value.map(l=>l[n.value])),s=l=>o.value.includes(l),c=e.computed(()=>{const l=o.value.length;return l===0?"None":l===r.value.length?"All":`${l}`});return{isSelected:s,selectedLabel:c,selectAll:()=>a("update:modelValue",[...r.value]),selectNone:()=>a("update:modelValue",[]),toggleItem:(l,p)=>{p?a("update:modelValue",[...o.value,l]):a("update:modelValue",o.value.filter(m=>m!==l))}}},kn={class:"flex items-center justify-between mb-2"},yn={class:"text-xs text-base-content/50"},Bn={class:"flex gap-1"},Cn={class:"flex flex-col gap-1"},wn=["checked","onChange"],En={class:"text-sm flex-1 select-none"},Vn={key:1,class:"badge badge-sm badge-ghost"},Nn=e.defineComponent({__name:"filter",props:ye,emits:Be,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.items??[]),{isSelected:s,selectedLabel:c,selectAll:u,selectNone:d,toggleItem:i}=Ce(r,e.toRef(n,"modelValue"),e.toRef(n,"valueKey"),a);return(l,p)=>(e.openBlock(),e.createBlock(e.unref(ke),{title:l.title,opened:l.opened},{default:e.withCtx(()=>[e.createElementVNode("div",kn,[e.createElementVNode("span",yn,e.toDisplayString(e.unref(c))+" of "+e.toDisplayString(r.value.length)+" items ",1),e.createElementVNode("div",Bn,[e.createElementVNode("button",{class:"btn btn-ghost btn-xs",type:"button",tabindex:"-1",onClick:p[0]||(p[0]=(...m)=>e.unref(u)&&e.unref(u)(...m))}," All "),e.createElementVNode("button",{class:"btn btn-ghost btn-xs",type:"button",tabindex:"-1",onClick:p[1]||(p[1]=(...m)=>e.unref(d)&&e.unref(d)(...m))}," None ")])]),e.createElementVNode("div",Cn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,m=>(e.openBlock(),e.createElementBlock("label",{key:m[l.valueKey],class:e.normalizeClass(["flex items-center gap-3 px-2 py-1.5 rounded-lg cursor-pointer transition-colors hover:bg-base-200",{"bg-base-200/60":e.unref(s)(m[l.valueKey])}])},[e.createElementVNode("input",{type:"checkbox",class:"checkbox checkbox-sm",checked:e.unref(s)(m[l.valueKey]),onChange:f=>e.unref(i)(m[l.valueKey],f.target.checked)},null,40,wn),l.colorKey&&m[l.colorKey]?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-3 h-3 rounded-full shrink-0 ring-1 ring-black/10",style:e.normalizeStyle({backgroundColor:m[l.colorKey]})},null,4)):e.createCommentVNode("",!0),e.createElementVNode("span",En,e.toDisplayString(m[l.labelKey]),1),m[l.countKey]>0?(e.openBlock(),e.createElementBlock("span",Vn,e.toDisplayString(m[l.countKey]),1)):e.createCommentVNode("",!0)],2))),128))])]),_:1},8,["title","opened"]))}});exports.Alert=hn;exports.Autocomplete=so;exports.BadgeSize=ae;exports.Btn=C;exports.BtnBadge=je;exports.BtnBadgeEmits=ue;exports.BtnBadgeProperties=ce;exports.BtnEmits=ie;exports.BtnProperties=se;exports.ButtonSize=le;exports.ButtonTag=j;exports.ButtonType=A;exports.Card=Mt;exports.Checkbox=Vo;exports.ClickOutside=Tt;exports.Collapse=ke;exports.CollapseRow=bn;exports.Color=w;exports.ConfirmModal=de;exports.ControlWrapper=x;exports.Drawer=Uo;exports.Dropdown=Te;exports.Filter=Nn;exports.FilterEmits=Be;exports.FilterProperties=ye;exports.Icon=E;exports.IconEnum=y;exports.IconMap=Q;exports.IconProperties=Y;exports.Input=So;exports.InputNumber=Mo;exports.Loading=Yo;exports.Markdown=ho;exports.Menu=ze;exports.Modal=re;exports.ModalEmits=oe;exports.ModalProperties=te;exports.ModalService=O;exports.ModalSize=ne;exports.ModalWrapper=pe;exports.MultiSelect=co;exports.NotificationMessage=me;exports.NotificationService=F;exports.Notifications=fe;exports.PaginationComponent=ge;exports.SelectComponent=to;exports.ShellComponent=nt;exports.SubMenu=T;exports.Table=be;exports.TableComponent=be;exports.TextCell=mt;exports.Textarea=Ao;exports.TreeView=Jo;exports.addClickOutsideEventListener=Dt;exports.buildInputStyle=V;exports.hasCustomEventListener=Ot;exports.isDescriptionHidden=he;exports.mergeStyles=D;exports.myStyles=M;exports.removeClickOutsideEventListener=zt;exports.showErrors=H;exports.useFilter=Ce;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Ee=require("vue-router"),q=require("uuid"),b=require("@heroicons/vue/24/outline"),Ve=require("@tiptap/starter-kit"),X=require("@tiptap/vue-3"),Ne=require("tiptap-markdown"),Z=require("@heroicons/vue/24/solid");var y=(t=>(t.Edit="Edit",t.Delete="Delete",t.BarsArrowDown="BarsArrowDown",t.BarsArrowUp="BarsArrowUp",t.Funnel="Funnel",t.Close="Close",t.Plus="Plus",t.PaperClip="PaperClip",t.Hamburger="Hamburger",t.ChevronRight="ChevronRight",t.ChevronLeft="ChevronLeft",t.ChevronDown="ChevronDown",t.ChevronUp="ChevronUp",t.DblChevronLeft="DblChevronLeft",t.DblChevronRight="DblChevronRight",t.Language="Language",t.Check="Check",t.View="View",t.Text="Text",t.Link="Link",t))(y||{});const Q={Edit:b.PencilSquareIcon,Delete:b.TrashIcon,BarsArrowDown:b.BarsArrowDownIcon,BarsArrowUp:b.BarsArrowUpIcon,Funnel:b.FunnelIcon,Close:b.XMarkIcon,Plus:b.PlusCircleIcon,PaperClip:b.PaperClipIcon,Hamburger:b.Bars3Icon,ChevronRight:b.ChevronRightIcon,ChevronLeft:b.ChevronLeftIcon,ChevronDown:b.ChevronDownIcon,ChevronUp:b.ChevronUpIcon,DblChevronLeft:b.ChevronDoubleLeftIcon,DblChevronRight:b.ChevronDoubleRightIcon,Language:b.LanguageIcon,Check:b.CheckIcon,View:b.EyeIcon,Text:b.DocumentTextIcon,Link:b.LinkIcon},Y={icon:{type:[String,Object,Function]},size:{type:String}},E=e.defineComponent({__name:"icon",props:Y,setup(t){const o=t,n=e.computed(()=>o.icon?typeof o.icon=="string"?Q[o.icon]:o.icon:null);return(a,r)=>n.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),{key:0,"aria-hidden":"true",class:e.normalizeClass([{"w-full h-full":!a.size,"w-2 h-2":a.size==="xs","w-4 h-4":a.size==="sm","w-6 h-6":a.size==="lg","w-8 h-8":a.size==="xl"}])},null,8,["class"])):e.createCommentVNode("",!0)}}),xe={class:"dropdown dropdown-end"},_e={tabindex:"0",role:"menu",class:"menu dropdown-content bg-white z-1 mt-4 p-2 shadow-sm"},$e={class:"min-w-max flex-no-wrap text-black"},T=e.defineComponent({__name:"sub-menu",props:{label:{},items:{},action:{type:Function},disabled:{type:Boolean},btnClass:{},disableArrow:{type:Boolean}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",xe,[e.createElementVNode("div",{tabindex:"0",role:"button","aria-haspopup":"menu",class:e.normalizeClass([t.btnClass,"btn btn-ghost text-right flex-nowrap flex"])},[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.disableArrow?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:e.unref(y).ChevronDown,size:"sm"},null,8,["icon"]))],2),e.createElementVNode("ul",_e,[e.createElementVNode("li",$e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,a=>(e.openBlock(),e.createBlock(ee,e.mergeProps({key:a.label},{ref_for:!0},a),null,16))),128))])])]))}}),z="btn btn-ghost text-left justify-between min-w-max font-normal",ee=e.defineComponent({__name:"menu-item",props:{label:{},items:{},action:{},disabled:{type:Boolean,default:!1}},setup(t){const o=t,n=e.computed(()=>!o.disabled&&o.action&&"routerLink"in o.action),a=e.computed(()=>!o.disabled&&o.action),r=e.computed(()=>o.items?.length),s=e.computed(()=>{const u=o.action;return u&&"routerLink"in u&&"params"in u?{name:u.routerLink,params:u.params}:""}),c=()=>{o.action?.()};return(u,d)=>{const i=e.resolveComponent("RouterLink");return r.value?(e.openBlock(),e.createBlock(T,e.mergeProps({key:0},o,{"btn-class":z}),null,16)):n.value?(e.openBlock(),e.createBlock(i,{key:1,to:s.value,class:e.normalizeClass(z),onClick:c},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:1},8,["to"])):a.value?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(z),onClick:c},e.toDisplayString(t.label),1)):(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass([z,{"btn-disabled":t.disabled}])},e.toDisplayString(t.label),3))}}}),Se={class:"navbar bg-base-100 shadow-sm"},Le={class:"flex-1"},Pe={key:0,class:"breadcrumbs text-sm"},Me={class:"flex grow justify-end px-2"},De={class:"flex items-stretch"},ze=e.defineComponent({__name:"menu",props:{menu:{},breadcrumbs:{}},setup(t){return(o,n)=>{const a=e.resolveComponent("RouterLink");return e.openBlock(),e.createElementBlock("nav",Se,[e.createElementVNode("div",Le,[t.breadcrumbs?(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.breadcrumbs,r=>(e.openBlock(),e.createElementBlock("li",{key:r.label},[r.routerLink?(e.openBlock(),e.createBlock(a,{key:0,to:{name:r.routerLink,params:r.params},role:"navigation","aria-label":r.label},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["to","aria-label"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.label),1)],64))]))),128))])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Me,[e.createElementVNode("div",De,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menu,r=>(e.openBlock(),e.createBlock(ee,e.mergeProps({key:r.label},{ref_for:!0},r),null,16))),128))])])])}}}),Te=e.defineComponent({__name:"dropdown",props:{items:{}},setup(t){const o=e.ref(!0);return(n,a)=>(e.openBlock(),e.createBlock(T,{items:t.items,label:"test",open:o.value,"btn-class":"","disable-arrow":!0},null,8,["items","open"]))}}),te={modalTitle:{type:String,required:!0},buttonLabel:{type:String},buttonSaveLabel:{type:String},data:{default:void 0},open:{type:Boolean,default:!1},disableClose:{type:Boolean,default:!1},width:{type:String,default:"sm"}},oe=["closeModal"],Ae='a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])',J=t=>Array.from(t.querySelectorAll(Ae)),Oe=({containerRef:t,isActive:o,onEscape:n,restoreFocus:a=!0})=>{let r=null;const s=d=>{const i=t.value;if(!i)return;if(d.key==="Escape"){n?.();return}if(d.key!=="Tab")return;const l=J(i);if(l.length===0)return;const p=l[0],m=l[l.length-1];d.shiftKey?document.activeElement===p&&(d.preventDefault(),m.focus()):document.activeElement===m&&(d.preventDefault(),p.focus())},c=()=>{const d=t.value;if(!d)return;r=document.activeElement,document.addEventListener("keydown",s);const i=J(d);i.length>0&&i[0].focus()},u=()=>{document.removeEventListener("keydown",s),a&&r&&(r.focus(),r=null)};e.watch(o,d=>{d?c():u()}),e.onUnmounted(()=>{u()})},ne={xs:"max-w-xs w-[50VW]",sm:"max-w-sm w-[50VW]",lg:"max-w-2xl w-[80VW]",xl:"max-w-[80VW] w-[80VW]"},le={xs:"btn-xs",sm:"btn-sm",lg:"btn-sm",xl:"btn"},ae={xs:"badge-xs text-xxs",sm:"badge-sm text-xs",lg:"badge-sm text-xs",xl:"badge text-xs"},Fe=["aria-labelledby","aria-describedby"],Ie={class:"flex justify-end gap-2 p-2 mt-2 border-t border-gray-300"},re=e.defineComponent({__name:"modal",props:te,emits:oe,setup(t,{expose:o,emit:n}){const a=t,r=`modal_${q.v4()}`,s=`${r}_title`,c=`${r}_content`,u=e.ref(null),d=e.ref(!1),i=n,l=()=>{u.value?.showModal(),d.value=!0},p=()=>{u.value?.close(),d.value=!1,i("closeModal")},m=()=>{a.disableClose||p()};return Oe({containerRef:u,isActive:d,onEscape:()=>{a.disableClose||p()}}),o({closeModal:p,openModal:l}),e.watch(()=>a.open,()=>{a.open?l():p()}),e.onMounted(()=>{a.open&&l()}),(f,k)=>(e.openBlock(),e.createElementBlock("dialog",{ref_key:"dialogRef",ref:u,class:"modal",role:"dialog","aria-modal":"true","aria-labelledby":f.modalTitle,"aria-describedby":f.modalTitle,onCancel:e.withModifiers(m,["prevent"])},[e.createElementVNode("div",{class:e.normalizeClass(["modal-box bg-white",e.unref(ne)[f.width]])},[f.disableClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"btn btn-sm btn-circle btn-ghost absolute right-2 top-2","aria-label":"Close",onClick:p}," ✕ ")),e.createElementVNode("h3",{id:s,class:"font-bold"},e.toDisplayString(f.modalTitle),1),e.createElementVNode("div",{id:c,class:"pt-4"},[e.renderSlot(f.$slots,"content")]),e.createElementVNode("div",Ie,[e.renderSlot(f.$slots,"actions")])],2)],40,Fe))}});var A=(t=>(t.button="button",t.submit="submit",t.reset="reset",t))(A||{}),j=(t=>(t.a="a",t.button="button",t))(j||{}),w=(t=>(t.blank="blank",t.primary="primary",t.secondary="secondary",t.error="error",t))(w||{});const Re={blank:"btn-ghost",primary:"btn-primary",secondary:"btn-soft btn-primary",error:"btn-error"},qe={blank:"badge-ghost",primary:"badge-primary",secondary:"badge-soft badge-primary",error:"badge-error"},se={href:{type:String},disabled:{type:Boolean,default:!1},tooltip:{type:String},as:{type:String,default:j.button},icon:{type:[String,Object,Function]},type:{type:String,default:A.button},outline:{type:Boolean,default:!1},color:{type:String,default:w.primary},size:{type:String,default:"sm"},square:{type:Boolean,default:!1}},ie=["click"],ce={icon:{type:[String,Object,Function]},type:{type:String,default:A.button},color:{type:String},disabled:{type:Boolean,default:!1},size:{type:String,default:"sm"}},ue=["click"],C=e.defineComponent({__name:"btn",props:se,emits:ie,setup(t,{emit:o}){const n=t,a=o;return(r,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.as),{class:e.normalizeClass(["btn p-1 flex justify-center flex-nowrap",e.unref(Re)[n.color],e.unref(le)[n.size],{"btn-outline":n.outline,"btn-square":n.square,tooltip:n.tooltip}]),href:n.href,type:n.type,disabled:n.disabled,"data-tip":n.tooltip,onClick:s[0]||(s[0]=c=>a("click"))},{default:e.withCtx(()=>[n.icon?(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:n.icon,size:n.size},null,8,["icon","size"])):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default")]),_:3},8,["class","href","type","disabled","data-tip"]))}}),je=["type","disabled"],Ke=e.defineComponent({__name:"btn-badge",props:ce,emits:ue,setup(t,{emit:o}){const n=t,a=o;return(r,s)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["badge gap-1",e.unref(ae)[n.size],e.unref(qe)[n.color]]),type:n.type,disabled:n.disabled,onClick:s[0]||(s[0]=c=>a("click"))},[e.renderSlot(r.$slots,"default"),n.icon?(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:n.icon,size:n.size},null,8,["icon","size"])):e.createCommentVNode("",!0)],10,je))}}),de=e.defineComponent({__name:"confirmModal",props:{title:{},message:{},confirmLabel:{default:"Ok"},cancelLabel:{default:"Cancel"}},emits:["closeModal"],setup(t,{emit:o}){const n=o,a=r=>{n("closeModal",{confirmed:r})};return(r,s)=>(e.openBlock(),e.createBlock(re,{"modal-title":t.title,open:!0,"disable-close":!0},{content:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),actions:e.withCtx(()=>[e.createVNode(e.unref(C),{color:e.unref(w).secondary,outline:!0,"aria-label":t.cancelLabel,onClick:s[0]||(s[0]=c=>a(!1))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelLabel),1)]),_:1},8,["color","aria-label"]),e.createVNode(e.unref(C),{"aria-label":t.confirmLabel,onClick:s[1]||(s[1]=c=>a(!0))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.confirmLabel),1)]),_:1},8,["aria-label"])]),_:1},8,["modal-title"]))}});class O{constructor(){this.showModal=e.ref(!1),this.modals=[]}openModal(o){const n=o.props.onClose,a=q.v4(),r=o;o.props.onClose=s=>{n(s),this.closeModal(a)},r.id=a,this.modals=[...this.modals,r],this.showModal.value=Date.now()}closeModal(o){this.modals=this.modals.filter(n=>n.id!==o),this.showModal.value=Date.now()}static showConfirm(o){this.getInstance().openModal({component:de,props:o})}static openModal(o){this.getInstance().openModal(o)}static getInstance(){return this.instance||(this.instance=new O),this.instance}static closeAll(){this.instance.closeAll()}closeAll(){this.modals=[],this.showModal.value=!1}}const pe=e.defineComponent({__name:"modalWrapper",setup(t){const o=O.getInstance(),n=e.computed(()=>o.showModal.value?o.modals:[]);return(a,r)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s?.component),e.mergeProps({key:s.id,ref_for:!0},s?.props,{open:!0,onCloseModal:s?.props?.onClose}),null,16,["onCloseModal"]))),128))}}),me=e.defineComponent({__name:"notification-message",props:{message:{},type:{}},setup(t){const o={success:"alert-success",error:"alert-error",warning:"alert-warning",info:"alert-info"};return(n,a)=>(e.openBlock(),e.createElementBlock("div",{role:"alert",class:e.normalizeClass(`alert ${o[t.type]} `)},[e.createElementVNode("span",null,e.toDisplayString(t.message),1)],2))}}),Ue=5e3;class F{constructor(){this.notifications=e.ref([]),this.addNotification=(o,n="info")=>{const a={id:q.v4(),duration:Ue,message:o,type:n};this.notifications.value.push(a),this.removeNotificationAfterDuration(a)},this.removeNotificationAfterDuration=o=>{setTimeout(()=>{this.removeNotification(o.id)},o.duration)},this.removeNotification=o=>{this.notifications.value=this.notifications.value.filter(n=>n.id!==o)}}static getInstance(){return this.instance||(this.instance=new F),this.instance}static info(o){this.getInstance().addNotification(o,"info")}static success(o){this.getInstance().addNotification(o,"success")}static warning(o){this.getInstance().addNotification(o,"warning")}static error(o){this.getInstance().addNotification(o,"error")}static removeNotification(o){this.getInstance().removeNotification(o)}}const He={class:"toast toast-top toast-center z-[999]"},fe=e.defineComponent({__name:"notifications",setup(t){const o=F.getInstance();return(n,a)=>(e.openBlock(),e.createElementBlock("div",He,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).notifications.value,r=>(e.openBlock(),e.createBlock(me,e.mergeProps({key:r.id},{ref_for:!0},r),null,16))),128))]))}}),We={class:"flex h-screen flex-col"},Ge={class:"shrink-0"},Xe={class:"navbar bg-primary text-primary-content w-full z-100"},Ze={class:"navbar-start"},Je={class:"navbar-center"},Qe=["href"],Ye={class:"navbar-end"},et={class:"drawer-content overflow-y-auto mb-2 mr-2 shadow-md"},tt={class:"drawer-side h-full shadow-md"},ot={class:"flex-grow overflow-y-auto"},nt={class:"bg-base-200 p-4"},lt=e.defineComponent({__name:"shell.component",props:{title:{},menu:{},user:{},version:{},widthSidebar:{default:300}},emits:["logout"],setup(t,{emit:o}){const a=t,r=e.ref(!1),s=()=>{r.value=!r.value},c=o,u=e.computed(()=>a.user?{label:a.user.name,items:[{label:"Logout",action:()=>{c("logout")}}]}:null);return(d,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(fe),e.createVNode(e.unref(pe)),e.createElementVNode("div",We,[e.createElementVNode("header",Ge,[e.createElementVNode("nav",Xe,[e.createElementVNode("div",Ze,[e.createElementVNode("button",{"aria-label":"open sidebar",class:"btn btn-square btn-ghost p-1",onClick:s},[e.createVNode(e.unref(E),{icon:e.unref(y).Hamburger},null,8,["icon"])])]),e.createElementVNode("div",Je,[e.createElementVNode("a",{class:"btn btn-ghost text-primary-content text-lg color-white",href:e.unref("/")},e.toDisplayString(t.title),9,Qe)]),e.createElementVNode("div",Ye,[u.value?(e.openBlock(),e.createBlock(e.unref(T),e.mergeProps({key:0},u.value,{"btn-class":""}),null,16)):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",{class:e.normalizeClass(["drawer flex-1 overflow-hidden",{"drawer-open":r.value}])},[e.withDirectives(e.createElementVNode("input",{id:"app-drawer","onUpdate:modelValue":i[0]||(i[0]=l=>r.value=l),type:"checkbox",class:"drawer-toggle"},null,512),[[e.vModelCheckbox,r.value]]),e.createElementVNode("main",et,[e.renderSlot(d.$slots,"default")]),e.createElementVNode("div",tt,[i[1]||(i[1]=e.createElementVNode("label",{for:"app-drawer","aria-label":"close sidebar",class:"drawer-overlay"},null,-1)),e.createElementVNode("div",{class:"menu bg-base-100 h-full flex flex-col justify-between",style:e.normalizeStyle({width:t.widthSidebar+"px"})},[e.createElementVNode("ul",ot,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menu,l=>(e.openBlock(),e.createElementBlock("li",{key:l.label},[e.createVNode(e.unref(Ee.RouterLink),{to:{name:l.routerLink,params:l.params}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.label),1)]),_:2},1032,["to"])]))),128))]),e.createElementVNode("div",nt," version: "+e.toDisplayString(t.version),1)],4)])],2)])],64))}}),at={currentPage:{type:Number,required:!0},page:{type:Number,required:!0},label:{type:String,required:!0},neverActive:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},rt=["updatePage","updatePageSize"],L=e.defineComponent({__name:"pagination-button.component",props:at,emits:rt,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.neverActive?!1:n.page===n.currentPage),s=e.computed(()=>n.neverActive?w.blank:r.value?w.primary:w.secondary),c=()=>{a("updatePage",n.page)};return(u,d)=>(e.openBlock(),e.createBlock(e.unref(C),{disabled:u.disabled,square:!0,size:"xs",color:s.value,onClick:d[0]||(d[0]=i=>c())},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.label),1)]),_:1},8,["disabled","color"]))}}),st={totalItems:{type:Number,default:0},itemsPerPage:{type:Number,default:1},currentPage:{type:Number,default:1}},it=["updatePage","updatePageSize"],ct={class:"flex gap-2"},ut={class:"flex flex-1 justify-center items-center"},dt={class:"flex gap-1"},pt={class:"text-sm"},P=6,ge=e.defineComponent({__name:"pagination.component",props:st,emits:it,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>{let l=Math.ceil(n.totalItems/n.itemsPerPage);return l<1?1:l}),s=P/2,c=e.computed(()=>{if(r.value<=P)return{min:1,max:r.value};let l=n.currentPage-s;l<=1?l=1:l+P>r.value&&(l=r.value-P);let p=l+P;return{min:l,max:p}}),u=l=>({label:"...",currentPage:l,page:-10,disabled:!0,neverActive:!0}),d=e.computed(()=>{let l=r.value;l<1&&(l=1);const p=n.currentPage,m=[],{min:f,max:k}=c.value;return Array.from({length:l},(_,v)=>{const g=v+1;g!==1&&g!==l&&(g>k||g<f)||(g===l&&l>1&&k<l&&m.push(u(p)),m.push({label:`${g}`,totalPages:l,currentPage:p,page:g}),g===1&&l>1&&f>1&&m.push(u(p)))}),m}),i=l=>{a("updatePage",l)};return(l,p)=>(e.openBlock(),e.createElementBlock("div",ct,[e.createElementVNode("div",ut,[e.createElementVNode("div",dt,[e.createVNode(L,e.mergeProps(n,{page:1,label:"<<","current-page":l.currentPage,"never-active":!0,disabled:l.currentPage===1,onUpdatePage:i}),null,16,["current-page","disabled"]),e.createVNode(L,e.mergeProps(n,{page:l.currentPage-1,label:"<","current-page":l.currentPage,"never-active":!0,disabled:l.currentPage===1,onUpdatePage:i}),null,16,["page","current-page","disabled"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,m=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:m.page,ref_for:!0},m,{onUpdatePage:i}),null,16))),128)),e.createVNode(L,e.mergeProps(n,{page:l.currentPage+1,label:">","current-page":l.currentPage,"never-active":!0,disabled:n.currentPage===r.value,onUpdatePage:i}),null,16,["page","current-page","disabled"]),e.createVNode(L,e.mergeProps(n,{page:r.value,label:">>","current-page":l.currentPage,"never-active":!0,disabled:n.currentPage===r.value,onUpdatePage:i}),null,16,["page","current-page","disabled"])])]),e.createElementVNode("div",pt," page "+e.toDisplayString(l.currentPage)+" of "+e.toDisplayString(r.value),1)]))}}),mt={data:{type:Object,required:!0},column:{type:Object,required:!0},options:{type:Object}},ft=e.defineComponent({__name:"text.cell",props:mt,setup(t){const o=t,n=e.computed(()=>{const a=o.data[o.column.id];return a?o.column.options?.format==="keyValue"?a[o.column.options.key]:a:null});return(a,r)=>e.toDisplayString(n.value)}}),gt={column:{type:Object,required:!0},sortColumn:{type:String},sortDirection:{type:String}},bt=["sort"],vt={class:"flex-grow pr-2"},ht={class:"h-4 w-4"},kt=e.defineComponent({__name:"sort.header",props:gt,emits:bt,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.sortDirection==="asc"?y.BarsArrowUp:y.BarsArrowDown),s=e.computed(()=>n.column.options?.sortId??n.column.id),c=()=>{a("sort",s.value)};return(u,d)=>(e.openBlock(),e.createElementBlock("button",{class:"flex items-center",onClick:c},[e.createElementVNode("span",vt,e.toDisplayString(u.column.label),1),e.createElementVNode("div",ht,[u.sortColumn===s.value?(e.openBlock(),e.createBlock(e.unref(E),{key:0,icon:r.value},null,8,["icon"])):e.createCommentVNode("",!0)])]))}}),yt={loading:{type:Boolean,default:!1},actions:{type:Array},data:{type:Array},displayColumns:{type:Array,required:!0},page:{type:Object},sort:{type:Object}},Bt=["updatePage","sort"],Ct={class:"table w-full"},wt={key:0},Et=["colspan"],Vt=["ui-id"],Nt={class:"flex gap-2"},be=e.defineComponent({__name:"table.component",props:yt,emits:Bt,setup(t,{emit:o}){const n=o,a=e.useAttrs(),r=e.computed(()=>"onEdit"in a),s=e.computed(()=>"onDelete"in a),c=l=>{a.onEdit?.(l)},u=l=>{a.onDelete?.(l)},d=l=>{n("updatePage",l)},i=l=>{n("sort",l)};return(l,p)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("table",Ct,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.displayColumns,m=>(e.openBlock(),e.createElementBlock("th",{key:m.scope},[e.createVNode(kt,e.mergeProps({column:m},{ref_for:!0},l.sort,{onSort:i}),null,16,["column"])]))),128)),p[0]||(p[0]=e.createElementVNode("th",null,null,-1))])]),e.createElementVNode("tbody",null,[l.loading?(e.openBlock(),e.createElementBlock("tr",wt,[e.createElementVNode("td",{colspan:l.displayColumns.length+1,class:"text-center"},[...p[1]||(p[1]=[e.createElementVNode("span",{class:"loading loading-bars loading-xs"},null,-1)])],8,Et)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.data,m=>(e.openBlock(),e.createElementBlock("tr",{key:m.id,"ui-id":`table_${m.id}`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.displayColumns,f=>(e.openBlock(),e.createElementBlock("td",{key:f.scope},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.component),e.mergeProps({ref_for:!0},f,{data:m,column:f}),null,16,["data","column"]))]))),128)),e.createElementVNode("td",null,[e.createElementVNode("span",Nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.actions,f=>(e.openBlock(),e.createBlock(C,{key:f.label,"aria-label":f.label,icon:f.icon,outline:!0,onClick:k=>f.action(m)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.label),1)]),_:2},1032,["aria-label","icon","onClick"]))),128)),r.value?(e.openBlock(),e.createBlock(C,{key:0,"aria-label":"Edit",icon:e.unref(y).Edit,outline:!0,onClick:f=>c(m)},null,8,["icon","onClick"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createBlock(C,{key:1,"aria-label":"Delete",icon:e.unref(y).Delete,outline:!0,onClick:f=>u(m)},null,8,["icon","onClick"])):e.createCommentVNode("",!0)])])],8,Vt))),128))])]),l.page?(e.openBlock(),e.createBlock(ge,{key:0,class:"border-gray-300 border-t pt-4 border-x-0 border-b-0","total-items":l.page.count,"items-per-page":l.page.pageSize,"current-page":l.page.page,onUpdatePage:d},null,8,["total-items","items-per-page","current-page"])):e.createCommentVNode("",!0)],64))}}),xt=(t,o)=>{const n=t.__vccOpts||t;for(const[a,r]of o)n[a]=r;return n},_t={},$t={class:"card bg-base-100 shadow-sm"},St={class:"card-body"},Lt={key:0,class:"card-title"},Pt={key:1,class:"card-actions justify-end"};function Mt(t,o){return e.openBlock(),e.createElementBlock("div",$t,[e.createElementVNode("div",St,[t.$slots.title?(e.openBlock(),e.createElementBlock("h2",Lt,[e.renderSlot(t.$slots,"title")])):e.createCommentVNode("",!0),e.createElementVNode("p",null,[e.renderSlot(t.$slots,"default"),e.renderSlot(t.$slots,"content")]),t.$slots.actions?(e.openBlock(),e.createElementBlock("div",Pt,[e.renderSlot(t.$slots,"actions")])):e.createCommentVNode("",!0)])])}const Dt=xt(_t,[["render",Mt]]),zt=(t,o)=>{if(!t)return null;const n=a=>{t.contains(a.target)||o()};return document.addEventListener("click",n),n},Tt=t=>{document.removeEventListener("click",t)},At={beforeMount(t,o){t.clickOutsideEvent=function(n){t===n.target||t.contains(n.target)||o.value(n)},document.addEventListener("click",t.clickOutsideEvent)},unmounted(t){document.removeEventListener("click",t.clickOutsideEvent)}};function Ot(t){return t.replace(/[:\s_-]+(.)/g,(o,n)=>n.toUpperCase()).replace(/^[A-Z]/,o=>o.toLowerCase())}function Ft(t){const o=e.getCurrentInstance();if(!o)return!1;const n=o.vnode.props;if(!n)return!1;const a=Ot(t),r=e.camelize(t);return[e.toHandlerKey(t),e.toHandlerKey(r),e.toHandlerKey(a),`on:${t}`,`on:${r}`,`on:${a}`].some(c=>!!n[c])}const It=["select"],K={options:{type:Array,required:!1},isLoading:{type:Boolean,default:!1},query:{type:String,default:null},isActive:{type:Function,default:t=>!1}},M={group:{root:"group",label:"text-primary text-lg font-bold",item:"group-item"},verticalLayout:{root:"flex flex-col gap-x-2",item:"w-full"},horizontalLayout:{root:"flex flex-row gap-x-2",item:"w-full"},arrayList:{root:"fieldset",legend:"fieldset-legend text-xl capitalize"},control:{root:"fieldset",wrapper:"fieldset",label:"fieldset-legend",error:"",input:"input",textarea:"input h-32",checkbox:"checkbox",select:"input pr-14",description:"form-control--description label text-xs text-gray-500"},fixedArrayList:{root:"flex flex-row gap-x-2",item:"w-full"}},D=t=>{if(!t)return{...M};const o={...M};for(const n of Object.keys(t)){const a=t[n];a&&typeof a=="object"&&(o[n]={...M[n],...a})}return o},N={id:{type:String},placeholder:{type:String},description:{type:String},errors:{type:String},label:{type:String},visible:{type:Boolean,default:!1},required:{type:Boolean,default:!1},enabled:{type:Boolean,default:!0},isFocused:{type:Boolean,default:!1},isTouched:{type:Boolean,default:!1},hideLabel:{type:Boolean,default:!1},styles:{type:Object,default:()=>M},width:{type:String,default:"w-48"}},U={...N,options:{type:Array,required:!0},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},enableCreate:{type:Boolean,default:!1}},Rt=["select","clear","close","create"],ve={...K,...U,isOpen:{type:Boolean,default:!1},isActive:{type:Function,default:t=>!1}},qt={key:1,tabindex:"-1",class:"pointer-events-none"},jt=["data-index","aria-selected","onMousedown","onMousemove"],Kt=["innerHTML"],Ut={key:0,xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 shrink-0 opacity-80",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"};function Ht(t,o){if(!o)return t;const n=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t.replace(new RegExp(`(${n})`,"gi"),'<mark class="bg-warning/40 text-inherit rounded-sm px-0.5">$1</mark>')}const Wt=e.defineComponent({__name:"ListResults",props:K,emits:It,setup(t,{expose:o,emit:n}){const a=t,r=e.ref(-1),s=e.ref(),c=n;e.watch(()=>a.options,()=>{r.value=-1});function u(){e.nextTick(()=>{s.value?.querySelector(`[data-index="${r.value}"]`)?.scrollIntoView({block:"nearest"})})}function d(l){const p=a.options?.length??0;if(p)switch(l.key){case"ArrowDown":l.preventDefault(),r.value=(r.value+1)%p,u();break;case"ArrowUp":l.preventDefault(),r.value=r.value<=0?p-1:r.value-1,u();break;case"Enter":l.preventDefault(),r.value>=0&&r.value<p&&i(a.options[r.value]);break}}function i(l){r.value=-1,c("select",l)}return o({handleKeydown:d}),(l,p)=>(e.openBlock(),e.createElementBlock("ul",{ref_key:"listRef",ref:s,role:"listbox",class:"absolute z-50 w-full mt-1 bg-base-100 border border-base-300 rounded-box shadow-xl overflow-auto max-h-64 origin-top p-1"},[l.isLoading?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},e.renderList(2,m=>e.createElementVNode("li",{key:`skel-${m}`,class:"pointer-events-none px-3 py-2"},[...p[0]||(p[0]=[e.createElementVNode("div",{class:"flex items-center gap-3"},[e.createElementVNode("div",{class:"skeleton h-3 w-3/4 rounded"})],-1)])])),64)):l.options.length===0?(e.openBlock(),e.createElementBlock("li",qt,[...p[1]||(p[1]=[e.createElementVNode("span",{class:"px-3 py-2 text-sm opacity-50 italic"}," No results found ",-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(l.options,(m,f)=>(e.openBlock(),e.createElementBlock("li",{key:m.value,"data-index":f,role:"option","aria-selected":f===r.value,onMousedown:e.withModifiers(k=>i(m),["prevent"]),onMousemove:k=>r.value=f},[e.createElementVNode("a",{class:e.normalizeClass(["flex items-center justify-between gap-2 rounded-lg px-3 py-2 text-sm transition-colors duration-100",{"active bg-secondary text-primary-content":f===r.value,"hover:bg-base-200":f!==r.value}])},[e.createElementVNode("span",{class:"whitespace-nowrap",innerHTML:Ht(m.label,l.query)},null,8,Kt),l.isActive(m)?(e.openBlock(),e.createElementBlock("svg",Ut,[...p[2]||(p[2]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 13l4 4L19 7"},null,-1)])])):e.createCommentVNode("",!0)],2)],40,jt))),128))],512))}}),H=({isTouched:t,errors:o})=>!!(t&&o),he=(t,o,n,a)=>o===void 0||o!==void 0&&!t||!a&&!n,V=(t,o)=>[t,{"input-error":H(o)}],Gt={key:0},x=e.defineComponent({__name:"ControlWrapper",props:N,setup(t){const o=t,n=e.computed(()=>!he(o.visible,o.description,o.isFocused,!0)),a=e.computed(()=>o.required),r=e.computed(()=>H(o)),s=e.computed(()=>D(o.styles));return(c,u)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(["fieldset",[c.width,s.value.control.wrapper]])},[e.createElementVNode("legend",{class:e.normalizeClass(s.value.control.label)},[c.hideLabel?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",null,e.toDisplayString(c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",Gt,"*")):e.createCommentVNode("",!0)],64)),u[0]||(u[0]=e.createTextVNode(" ",-1))],2),e.renderSlot(c.$slots,"default"),e.createElementVNode("p",{class:e.normalizeClass(["fieldset-label h-4",{"text-error":r.value}])},e.toDisplayString(r.value?c.errors:n.value?c.description:null),3)],2))}}),Xt=["aria-label"],Zt={class:"flex items-center w-full"},Jt={class:"overflow-hidden w-full"},Qt={class:"absolute inset-y-0 right-0 flex items-center pr-3 gap-1 pointer-events-none"},Yt={key:0,class:"loading loading-spinner loading-xs text-primary pointer-events-none"},W=e.defineComponent({__name:"SelectWrapper",props:ve,emits:Rt,setup(t,{emit:o}){const n=t,a=e.ref(),r=e.ref(),s=o,c=()=>{u(),s("clear")},u=()=>{s("close")},d=l=>{if(l.key==="Escape"){u();return}r.value?.handleKeydown(l)},i=l=>{a.value&&!a.value.contains(l.target)&&u()};return e.onMounted(()=>{document.addEventListener("click",i)}),e.onUnmounted(()=>{document.removeEventListener("click",i)}),(l,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"selectWrapperRef",ref:a,"aria-label":l.id,role:"select"},[e.createVNode(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.createElementVNode("div",Zt,[e.createElementVNode("div",{class:"relative w-full",onKeydown:d},[e.createElementVNode("div",Jt,[e.renderSlot(l.$slots,"default")]),e.createElementVNode("div",Qt,[l.isLoading&&!l.label?(e.openBlock(),e.createElementBlock("span",Yt)):e.createCommentVNode("",!0),l.query&&!l.isLoading?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"pointer-events-auto btn btn-ghost btn-xs btn-circle opacity-60 hover:opacity-100",tabindex:"-1","aria-label":"Clear",onMousedown:e.withModifiers(c,["prevent"])},[...p[2]||(p[2]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],32)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(["h-4 w-4 opacity-40 transition-transform duration-200",{"rotate-180":l.isOpen}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[...p[3]||(p[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-150 ease-out","enter-from-class":"opacity-0 -translate-y-1 scale-y-95","enter-to-class":"opacity-100 translate-y-0 scale-y-100","leave-active-class":"transition-all duration-100 ease-in","leave-from-class":"opacity-100 translate-y-0 scale-y-100","leave-to-class":"opacity-0 -translate-y-1 scale-y-95"},{default:e.withCtx(()=>[l.isOpen?(e.openBlock(),e.createBlock(Wt,{key:0,ref_key:"listResultsRef",ref:r,query:l.query,options:l.options,"is-loading":l.isLoading,"is-active":l.isActive,onSelect:p[0]||(p[0]=m=>s("select",m))},null,8,["query","options","is-loading","is-active"])):e.createCommentVNode("",!0)]),_:1})],32),l.enableCreate?(e.openBlock(),e.createBlock(C,{key:0,icon:"Plus",color:"blank",size:"lg",tooltip:"Create new","aria-label":"create",onClick:p[1]||(p[1]=m=>s("create"))})):e.createCommentVNode("",!0)])]),_:3},16)],8,Xt))}}),R=(t,o)=>{if(t)return typeof t=="object"?t[o.labelKey]:t},I=(t,o)=>{if(t)return typeof t=="object"?t[o.valueKey]:t},eo=t=>{const o=e.ref([]),n=new Map,a=new Map,r=l=>{const p=[];n.clear(),a.clear(),l?.forEach(m=>{const f={value:I(m,t),label:R(m,t)};n.set(f.value,m),p.push(f)}),o.value=p},s=l=>n.get(l.value);return{options:o,setOptions:r,getOriginal:s,getLabels:(...l)=>l.map(p=>R(p,t)),getValues:(...l)=>l.map(p=>I(p,t)),getOption:l=>a.get(I(l,t)),getOriginals:(...l)=>l.map(s).filter(Boolean)}},G=t=>eo(t),to=["aria-label"],oo=e.defineComponent({__name:"SelectComponent",props:e.mergeModels(U,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","clear","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=e.ref(!1),a=t,r=o,s=e.useModel(t,"modelValue"),c=G(a),{options:u}=c;e.watch(()=>a.options,()=>{c.setOptions(a.options)},{immediate:!0});const d=v=>{r("change",v)},i=e.computed(()=>s.value?c.getLabels(s.value)[0]:""),l=e.computed(()=>D(a.styles)),p=e.computed(()=>V(l.value.control.select,a)),m=v=>{const g=c.getOriginal(v);s.value=g,d(g)},f=()=>{n.value=!1,s.value=null,d(void 0)},k=v=>c.getValues(s.value)?.[0]===v.value,_=()=>{n.value=!1};return(v,g)=>(e.openBlock(),e.createBlock(W,e.mergeProps(a,{options:e.unref(u),disabled:!v.enabled,"is-open":n.value,query:i.value,"is-active":k,onClose:_,onSelect:m,onClear:f}),{default:e.withCtx(()=>[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["truncate block text-left",[p.value,v.width]]),"aria-label":v.id,role:"combobox",onClick:g[0]||(g[0]=B=>n.value=!0)},e.toDisplayString(i.value??"Select value"),11,to)]),_:1},16,["options","disabled","is-open","query"]))}}),no={...U,...K,modelValue:{type:[String,Object],default:""},fetchOptions:{type:Function,default:null},debounceMs:{type:Number,default:200},maxResults:{type:Number,default:8},freeText:{type:Boolean,default:!1}};function lo(t){const o=e.ref([]),n=e.ref(!1);function a(s){if(!t.options){o.value=[];return}const c=s.toLowerCase(),u=c?t.options.filter(d=>R(d,t).toLowerCase().includes(c)):t.options;o.value=u.slice(0,t.maxResults)}function r(){o.value=[]}return{results:o,isLoading:n,search:a,clear:r}}function ao(t){const o=e.ref([]),n=e.ref(!1);let a=null,r=null;async function s(d){r&&r.abort(),r=new AbortController,n.value=!0;try{const i=await t.fetchOptions(d,r.signal);o.value=(i||[]).slice(0,t.maxResults)}catch(i){i.name!=="AbortError"&&(o.value=[])}finally{n.value=!1}}function c(d){a&&clearTimeout(a),n.value=!0,a=setTimeout(()=>{s(d)},t.debounceMs)}function u(){a&&clearTimeout(a),r&&r.abort(),o.value=[],n.value=!1}return{results:o,isLoading:n,search:c,clear:u}}function ro(t){const o=t.fetchOptions?ao(t):lo(t);function n(a){o.search(a)}return{results:o.results,isLoading:o.isLoading,triggerSearch:n,clear:o.clear}}const so=["aria-label","aria-expanded","value","placeholder","disabled"],io=e.defineComponent({__name:"AutoComplete",props:no,emits:["update:modelValue","change","clear","focus","blur"],setup(t,{emit:o}){const n=t,a=o,r=e.ref(null),s=e.ref(""),c=e.ref(!1),u=ro(n),{isLoading:d,triggerSearch:i,clear:l}=u,p=G(n),{options:m}=p;e.watch(()=>u.results.value,()=>{p.setOptions(u.results.value)},{immediate:!0}),e.watch(()=>n.modelValue,h=>{if(h==null||h===""){s.value="";return}const S=typeof h=="object"?h[n.labelKey]:h;S!==s.value&&(s.value=S)},{immediate:!0});const f=h=>{s.value=h.target.value,n.freeText?a("update:modelValue",s.value):a("update:modelValue",""),i(s.value),c.value=!0},k=()=>{i(s.value),c.value=!0};function _(){setTimeout(()=>{c.value=!1,n.freeText?a("change",s.value):n.modelValue||(s.value="")},150)}const v=h=>{const S=p.getOriginal(h);s.value=h.label,c.value=!1,a("update:modelValue",S),a("change",S)},g=()=>{s.value="",l(),c.value=!1,a("update:modelValue",""),a("clear"),e.nextTick(()=>r.value?.focus())},B=()=>{c.value=!1},$=e.computed(()=>D(n.styles)),we=e.computed(()=>V($.value.control.select,n));return(h,S)=>(e.openBlock(),e.createBlock(W,e.mergeProps(n,{options:e.unref(m),"is-loading":e.unref(d),"is-open":c.value,query:s.value,onClose:B,onSelect:v,onClear:g}),{default:e.withCtx(()=>[e.createElementVNode("input",{ref_key:"inputRef",ref:r,type:"text",role:"combobox","aria-label":h.id,"aria-expanded":c.value,"aria-autocomplete":"list","aria-haspopup":"listbox",autocomplete:"off",autocorrect:"off",spellcheck:"false",class:e.normalizeClass([we.value,"w-full"]),value:s.value,placeholder:h.placeholder,disabled:!h.enabled,onInput:f,onFocus:k,onBlur:_},null,42,so)]),_:1},16,["options","is-loading","is-open","query"]))}}),co=["aria-label"],uo=e.defineComponent({__name:"MultiSelect",props:e.mergeModels(ve,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","clear","focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=e.ref(!1),a=t,r=o,s=e.useModel(t,"modelValue"),c=g=>{r("change",g)},u=G(a),{options:d}=u;e.watch(()=>a.options,()=>{u.setOptions(a.options)},{immediate:!0});const i=e.computed(()=>s.value?u.getLabels(...s.value).join(", "):void 0),l=e.computed(()=>u.getValues(...s.value??[])),p=g=>{let B=s.value??[];if(k(g))B=B.filter($=>u.getOption($)!==g.value);else{const $=u.getOriginal(g);B.push($)}s.value=B,c(B)},m=()=>{n.value=!1,s.value=[],c([])},f=()=>{n.value=!1},k=g=>l.value?.includes(g.value)??!1,_=e.computed(()=>D(a.styles)),v=e.computed(()=>V(_.value.control.select,a));return(g,B)=>(e.openBlock(),e.createBlock(W,e.mergeProps(a,{options:e.unref(d),"is-open":n.value,disabled:!g.enabled,query:i.value,"is-active":k,onClose:f,onSelect:p,onClear:m}),{default:e.withCtx(()=>[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["truncate block text-left",[v.value,g.width]]),"aria-label":g.id,role:"combobox",onClick:B[0]||(B[0]=$=>n.value=!0)},e.toDisplayString(i.value??"Select value"),11,co)]),_:1},16,["options","is-open","disabled","query"]))}}),po=["change"],mo={...N,width:{type:String,default:"w-48"},minHeight:{type:String,default:"min-h-96"},actions:{type:Object,default:()=>[{label:"<strong>B</strong>",name:"bold",action:t=>t?.chain().focus().toggleBold().run()},{label:"<em>I</em>",name:"italic",action:t=>t?.chain().focus().toggleItalic().run()}]}},fo=["aria-label"],go={class:"flex items-center gap-1 px-3 py-2 border-b border-base-300 bg-base-200"},bo=["title","onClick"],vo=["innerHTML"],ho={class:"card-body p-3"},ko=e.defineComponent({__name:"Markdown",props:e.mergeModels(mo,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(po,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=X.useEditor({content:r.value??"",extensions:[Ve.configure({heading:!1,blockquote:!1,bulletList:!1,orderedList:!1,listItem:!1,code:!1,codeBlock:!1,horizontalRule:!1,hardBreak:!1}),Ne.Markdown.configure({html:!1,transformPastedText:!0})],onUpdate({editor:c}){a("change",c.storage.markdown.getMarkdown())}});return e.onBeforeUnmount(()=>{s.value?.destroy()}),(c,u)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass([[c.minHeight],"card bg-base-100 border border-base-300 w-full"]),"aria-label":c.id,role:"textbox"},[e.createElementVNode("div",go,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.actions,d=>(e.openBlock(),e.createElementBlock("button",{key:d.name,tabindex:"-1",type:"button",class:e.normalizeClass(["btn btn-sm btn-ghost",{"btn-active":e.unref(s)?.isActive(d.name)}]),title:d.label,onClick:i=>d.action(e.unref(s))},[e.createElementVNode("span",{innerHTML:d.label},null,8,vo)],10,bo))),128))]),e.createElementVNode("div",ho,[e.createVNode(e.unref(X.EditorContent),{editor:e.unref(s),class:"prose prose-sm max-w-none h-full"},null,8,["editor"])])],10,fo)]),_:1},16))}}),yo={...N},Bo=["change","focus","blur"],Co={class:"flex items-center justify-center h-full"},wo={class:"fieldset-label"},Eo=["aria-label","disabled"],Vo={class:"font-bold text-gray-500 text-sm"},No=e.defineComponent({__name:"Checkbox",props:e.mergeModels(yo,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(Bo,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",r.value)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.checkbox,n));return(i,l)=>(e.openBlock(),e.createElementBlock("div",Co,[e.createVNode(x,e.mergeProps(n,{"hide-label":!0}),{default:e.withCtx(()=>[e.createElementVNode("label",wo,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),"aria-label":i.id,role:"checkbox",type:"checkbox",class:e.normalizeClass(d.value),disabled:!i.enabled,onChange:s,onFocus:c,onBlur:u},null,42,Eo),[[e.vModelCheckbox,r.value]]),e.createElementVNode("span",Vo,e.toDisplayString(i.label),1)])]),_:1},16)]))}}),xo={...N,type:{type:String,default:"text"}},_o=["change","focus","blur"],$o=["aria-label","type","disabled","autofocus","placeholder"],So=e.defineComponent({__name:"Input",props:e.mergeModels(xo,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(_o,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",i)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.input,n));return(i,l)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),"aria-label":i.id,autocomplete:"off",type:i.type,class:e.normalizeClass(["w-full",d.value]),disabled:!i.enabled,autofocus:i.isFocused,placeholder:i.placeholder,onChange:s,onFocus:c,onBlur:u},null,42,$o),[[e.vModelDynamic,r.value]])]),_:1},16))}}),Lo={...N,steps:{type:Number,default:1}},Po=["change","focus","blur"],Mo=["aria-label","disabled","step","autofocus","placeholder"],Do=e.defineComponent({__name:"InputNumber",props:e.mergeModels(Lo,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(Po,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",i)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.input,n));return(i,l)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),autocomplete:"off","aria-label":i.id,type:"number",class:e.normalizeClass(["w-full",[d.value]]),disabled:!i.enabled,step:i.steps,autofocus:i.isFocused,placeholder:i.placeholder,onChange:s,onFocus:c,onBlur:u},null,42,Mo),[[e.vModelText,r.value]])]),_:1},16))}}),zo={...N,rows:{type:Number,default:4}},To=["change","focus","blur"],Ao=["aria-label","disabled","rows","autofocus","placeholder"],Oo=e.defineComponent({__name:"Textarea",props:e.mergeModels(zo,{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(To,["update:modelValue"]),setup(t,{emit:o}){const n=t,a=o,r=e.useModel(t,"modelValue"),s=i=>{a("change",i)},c=i=>{a("focus",i)},u=i=>{a("blur",i)},d=e.computed(()=>V(n.styles.control.textarea,n));return(i,l)=>(e.openBlock(),e.createBlock(x,e.normalizeProps(e.guardReactiveProps(n)),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":l[0]||(l[0]=p=>r.value=p),autocomplete:"off",type:"text","aria-label":i.id,class:e.normalizeClass(["w-full",d.value]),disabled:!i.enabled,rows:i.rows,autofocus:i.isFocused,placeholder:i.placeholder,onChange:s,onFocus:c,onBlur:u},null,42,Ao),[[e.vModelText,r.value]])]),_:1},16))}}),Fo={widthLeft:{type:Number,default:200},widthRight:{type:Number,default:200},initialLeftOpen:{type:Boolean,default:!0},initialRightOpen:{type:Boolean,default:!0}},Io={class:"flex h-full overflow-hidden gap-2"},Ro={key:0,id:"drawer-left",class:"min-h-0 relative flex-shrink-0 bg-white overflow-visible flex"},qo=["aria-expanded","aria-label"],jo={class:"flex-1 overflow-y-auto bg-white"},Ko={key:1,class:"min-h-0 relative flex-shrink-0 bg-white overflow-visible flex"},Uo=["aria-expanded","aria-label"],Ho=e.defineComponent({__name:"drawer",props:Fo,setup(t){const o=t,n=e.useSlots(),a=e.computed(()=>!!n["left-drawer"]),r=e.computed(()=>!!n["right-drawer"]),s=e.ref({left:o.initialLeftOpen,right:o.initialRightOpen}),c=u=>{s.value[u]=!s.value[u]};return(u,d)=>(e.openBlock(),e.createElementBlock("main",Io,[a.value?(e.openBlock(),e.createElementBlock("aside",Ro,[e.createElementVNode("div",{id:"drawer-left-panel",style:e.normalizeStyle({width:s.value.left?u.widthLeft+"px":"0px"}),class:"h-full overflow-hidden bg-white shadow-sm transition-[width] duration-300 ease-in-out"},[e.createElementVNode("div",{style:e.normalizeStyle({width:u.widthLeft+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(u.$slots,"left-drawer")],4)],4),e.createElementVNode("button",{"aria-expanded":s.value.left,"aria-controls":"drawer-left-panel","aria-label":s.value.left?"Collapse left panel":"Expand left panel",class:"hover:bg-base-300 hover:text-base-content transition-colors cursor-pointer",onClick:d[0]||(d[0]=i=>c("left"))},[e.createVNode(e.unref(E),{size:"lg",icon:s.value.left?e.unref(y).ChevronLeft:e.unref(y).ChevronRight},null,8,["icon"])],8,qo)])):e.createCommentVNode("",!0),e.createElementVNode("div",jo,[e.renderSlot(u.$slots,"default")]),r.value?(e.openBlock(),e.createElementBlock("aside",Ko,[e.createElementVNode("button",{"aria-expanded":s.value.right,"aria-controls":"drawer-right-panel","aria-label":s.value.right?"Collapse right panel":"Expand right panel",class:"hover:bg-base-300 hover:text-base-content transition-colors cursor-pointer",onClick:d[1]||(d[1]=i=>c("right"))},[e.createVNode(e.unref(E),{size:"lg",icon:s.value.right?e.unref(y).ChevronRight:e.unref(y).ChevronLeft},null,8,["icon"])],8,Uo),e.createElementVNode("div",{id:"drawer-right-panel",style:e.normalizeStyle({width:s.value.right?u.widthRight+"px":"0px"}),class:"h-full overflow-hidden bg-white shadow-sm transition-[width] duration-300 ease-in-out"},[e.createElementVNode("div",{style:e.normalizeStyle({width:u.widthRight+"px"}),class:"h-full overflow-y-auto p-4"},[e.renderSlot(u.$slots,"right-drawer")],4)],4)])):e.createCommentVNode("",!0)]))}}),Wo={class:"ml-1"},Go={class:"truncate flex-1 min-w-0 text-left"},Xo={key:0,class:"badge badge-ghost badge-sm flex-shrink-0"},Zo=e.defineComponent({__name:"TreeItem",props:{active:{},node:{},expanded:{},isExpanded:{type:Function}},emits:["toggle","select"],setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.active===n.node.id);return(s,c)=>{const u=e.resolveComponent("TreeItem",!0);return e.openBlock(),e.createElementBlock("li",Wo,[e.createElementVNode("div",{class:e.normalizeClass([`flex items-center gap-1 cursor-pointer rounded-md px-1 py-0.5
|
|
2
|
+
hover:bg-gray-100`,r.value?"text-primary":""])},[(t.node?.children?.length??0)>0?(e.openBlock(),e.createElementBlock("span",{key:0,class:"flex items-center justify-center",onClick:c[0]||(c[0]=d=>a("toggle",t.node))},[t.node.children&&t.isExpanded(t.node.id)?(e.openBlock(),e.createBlock(e.unref(Z.ChevronDownIcon),{key:0,class:"w-3 h-3"})):(e.openBlock(),e.createBlock(e.unref(Z.ChevronRightIcon),{key:1,class:"w-3 h-3"}))])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex items-center gap-2 w-full min-w-0",onClick:c[1]||(c[1]=d=>a("select",t.node))},[e.createElementVNode("div",Go,e.toDisplayString(t.node.label),1),t.node.tag?(e.openBlock(),e.createElementBlock("div",Xo,e.toDisplayString(t.node.tag),1)):e.createCommentVNode("",!0)])],2),t.node.children&&t.isExpanded(t.node.id)?(e.openBlock(),e.createElementBlock("ul",{key:0,class:e.normalizeClass(["ml-4 border-l pl-2",{"border-gray-200":!r.value,"border-primary":r.value}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,d=>(e.openBlock(),e.createBlock(u,{key:d.id,node:d,expanded:t.expanded,active:t.active,"is-expanded":t.isExpanded,onToggle:c[2]||(c[2]=i=>a("toggle",i)),onSelect:c[3]||(c[3]=i=>a("select",i))},null,8,["node","expanded","active","is-expanded"]))),128))],2)):e.createCommentVNode("",!0)])}}}),Jo={class:"select-none text-sm"},Qo=e.defineComponent({__name:"TreeView",props:{data:{},active:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,r=e.ref(new Set),s=d=>{const i=d.id;if(!d.children||d.children.length===0){a("select",d);return}r.value.has(i)?r.value.delete(i):r.value.add(i)},c=d=>{a("select",d),r.value.add(d.id)},u=d=>r.value.has(d);return(d,i)=>(e.openBlock(),e.createElementBlock("ul",Jo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.data,l=>(e.openBlock(),e.createBlock(Zo,{key:l.id,node:l,expanded:r.value,active:t.active,"is-expanded":u,onToggle:s,onSelect:c},null,8,["node","expanded","active"]))),128))]))}}),Yo={key:0,role:"status","aria-live":"polite",class:"flex items-center justify-center h-20"},en=e.defineComponent({__name:"loading",props:{loading:{type:Boolean}},setup(t){return(o,n)=>t.loading?(e.openBlock(),e.createElementBlock("div",Yo,[...n[0]||(n[0]=[e.createElementVNode("span",{"aria-hidden":"true",class:"loading loading-bars loading-md text-primary"},null,-1),e.createElementVNode("span",{class:"sr-only"},"Loading...",-1)])])):e.createCommentVNode("",!0)}}),tn={title:{type:String,required:!0},opened:{type:Boolean,default:!0},heightFull:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},actions:{type:Array,default:()=>[]}},on=["checked","aria-label"],nn={class:"collapse-title text-gray-500 text-xs font-medium"},ln={class:"flex items-center justify-between"},an={key:0,class:"list bg-base-100"},ke=e.defineComponent({__name:"Collapse",props:tn,setup(t){const o=e.useSlots(),n=t,a=e.ref(n.opened),r=e.ref(n.opened||n.disabled);return(s,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["collapse collapse-arrow bg-white w-full border border-gray-300",s.heightFull?"h-full":"",s.disabled?"collapse-open":"",r.value?"overflow-visible":""])},[s.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("input",{key:0,type:"checkbox",checked:a.value,tabindex:"-1","aria-label":"Toggle "+s.title,onChange:c[0]||(c[0]=u=>r.value=u.target.checked)},null,40,on)),e.createElementVNode("div",nn,[e.createElementVNode("div",ln,[e.createElementVNode("span",null,e.toDisplayString(s.title),1),n.actions.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"relative z-10 flex gap-1",onClick:c[1]||(c[1]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.actions,(u,d)=>(e.openBlock(),e.createBlock(e.unref(C),{key:d,color:e.unref(w).blank,size:"xs",icon:u.icon,tooltip:u.tooltip,disabled:u.disabled,onClick:u.onClick},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.label),1)]),_:2},1032,["color","icon","tooltip","disabled","onClick"]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",{class:e.normalizeClass(["collapse-content",e.unref(o).list?"p-0":""])},[e.renderSlot(s.$slots,"default"),e.unref(o).list?(e.openBlock(),e.createElementBlock("ul",an,[e.renderSlot(s.$slots,"list")])):e.createCommentVNode("",!0)],2)],2))}}),rn={title:{type:String},label:{type:String},labelLink:{type:String},description:{type:String},descriptionLink:{type:String}},sn={class:"list-row"},cn={class:"list-col-grow"},un={key:0},dn={key:1,class:"text-xs text-gray-600"},pn=["href"],mn={key:1},fn={key:0,class:"text-xs text-gray-500"},gn=["href"],bn={key:1},vn=e.defineComponent({__name:"CollapseRow",props:rn,setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("li",sn,[e.createElementVNode("div",cn,[o.title?(e.openBlock(),e.createElementBlock("div",un,e.toDisplayString(o.title),1)):e.createCommentVNode("",!0),o.description||o.descriptionLink?(e.openBlock(),e.createElementBlock("div",dn,[o.descriptionLink?(e.openBlock(),e.createElementBlock("a",{key:0,href:o.descriptionLink,target:"_blank"},e.toDisplayString(o.description??o.descriptionLink),9,pn)):(e.openBlock(),e.createElementBlock("span",mn,e.toDisplayString(o.description),1))])):e.createCommentVNode("",!0)]),o.label?(e.openBlock(),e.createElementBlock("div",fn,[o.labelLink?(e.openBlock(),e.createElementBlock("a",{key:0,href:o.labelLink,target:"_blank"},e.toDisplayString(o.label),9,gn)):(e.openBlock(),e.createElementBlock("span",bn,e.toDisplayString(o.label),1))])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")]))}}),hn={class:"text-gray-800"},kn=e.defineComponent({__name:"alert",props:{message:{},type:{}},setup(t){const o={success:"alert-success",error:"alert-error",warning:"alert-warning",info:"alert-info"};return(n,a)=>(e.openBlock(),e.createElementBlock("div",{role:"alert",class:e.normalizeClass(`alert alert-soft ${o[t.type]} `)},[e.createElementVNode("span",hn,e.toDisplayString(t.message),1),e.renderSlot(n.$slots,"default")],2))}}),ye={title:{type:String,required:!0},items:{type:Array,required:!0},modelValue:{type:Array,default:()=>[]},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"id"},colorKey:{type:String,default:void 0},countKey:{type:String,default:"count"},counts:{type:Object,default:void 0},opened:{type:Boolean,default:!0}},Be=["update:modelValue"],Ce=(t,o,n,a)=>{const r=e.computed(()=>t.value.map(l=>l[n.value])),s=l=>o.value.includes(l),c=e.computed(()=>{const l=o.value.length;return l===0?"None":l===r.value.length?"All":`${l}`});return{isSelected:s,selectedLabel:c,selectAll:()=>a("update:modelValue",[...r.value]),selectNone:()=>a("update:modelValue",[]),toggleItem:(l,p)=>{p?a("update:modelValue",[...o.value,l]):a("update:modelValue",o.value.filter(m=>m!==l))}}},yn={class:"flex items-center justify-between mb-2"},Bn={class:"text-xs text-base-content/50"},Cn={class:"flex gap-1"},wn={class:"flex flex-col gap-1"},En=["checked","onChange"],Vn={class:"text-sm flex-1 select-none"},Nn={key:1,class:"badge badge-sm badge-ghost"},xn=e.defineComponent({__name:"filter",props:ye,emits:Be,setup(t,{emit:o}){const n=t,a=o,r=e.computed(()=>n.items??[]),{isSelected:s,selectedLabel:c,selectAll:u,selectNone:d,toggleItem:i}=Ce(r,e.toRef(n,"modelValue"),e.toRef(n,"valueKey"),a);return(l,p)=>(e.openBlock(),e.createBlock(e.unref(ke),{title:l.title,opened:l.opened},{default:e.withCtx(()=>[e.createElementVNode("div",yn,[e.createElementVNode("span",Bn,e.toDisplayString(e.unref(c))+" of "+e.toDisplayString(r.value.length)+" items ",1),e.createElementVNode("div",Cn,[e.createElementVNode("button",{class:"btn btn-ghost btn-xs",type:"button",tabindex:"-1",onClick:p[0]||(p[0]=(...m)=>e.unref(u)&&e.unref(u)(...m))}," All "),e.createElementVNode("button",{class:"btn btn-ghost btn-xs",type:"button",tabindex:"-1",onClick:p[1]||(p[1]=(...m)=>e.unref(d)&&e.unref(d)(...m))}," None ")])]),e.createElementVNode("div",wn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,m=>(e.openBlock(),e.createElementBlock("label",{key:m[l.valueKey],class:e.normalizeClass(["flex items-center gap-3 px-2 py-1.5 rounded-lg cursor-pointer transition-colors hover:bg-base-200",{"bg-base-200/60":e.unref(s)(m[l.valueKey])}])},[e.createElementVNode("input",{type:"checkbox",class:"checkbox checkbox-sm",checked:e.unref(s)(m[l.valueKey]),onChange:f=>e.unref(i)(m[l.valueKey],f.target.checked)},null,40,En),l.colorKey&&m[l.colorKey]?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-3 h-3 rounded-full shrink-0 ring-1 ring-black/10",style:e.normalizeStyle({backgroundColor:m[l.colorKey]})},null,4)):e.createCommentVNode("",!0),e.createElementVNode("span",Vn,e.toDisplayString(m[l.labelKey]),1),m[l.countKey]>0?(e.openBlock(),e.createElementBlock("span",Nn,e.toDisplayString(m[l.countKey]),1)):e.createCommentVNode("",!0)],2))),128))])]),_:1},8,["title","opened"]))}});exports.Alert=kn;exports.Autocomplete=io;exports.BadgeSize=ae;exports.Btn=C;exports.BtnBadge=Ke;exports.BtnBadgeEmits=ue;exports.BtnBadgeProperties=ce;exports.BtnEmits=ie;exports.BtnProperties=se;exports.ButtonSize=le;exports.ButtonTag=j;exports.ButtonType=A;exports.Card=Dt;exports.Checkbox=No;exports.ClickOutside=At;exports.Collapse=ke;exports.CollapseRow=vn;exports.Color=w;exports.ConfirmModal=de;exports.ControlWrapper=x;exports.Drawer=Ho;exports.Dropdown=Te;exports.Filter=xn;exports.FilterEmits=Be;exports.FilterProperties=ye;exports.Icon=E;exports.IconEnum=y;exports.IconMap=Q;exports.IconProperties=Y;exports.Input=So;exports.InputNumber=Do;exports.Loading=en;exports.Markdown=ko;exports.Menu=ze;exports.Modal=re;exports.ModalEmits=oe;exports.ModalProperties=te;exports.ModalService=O;exports.ModalSize=ne;exports.ModalWrapper=pe;exports.MultiSelect=uo;exports.NotificationMessage=me;exports.NotificationService=F;exports.Notifications=fe;exports.PaginationComponent=ge;exports.SelectComponent=oo;exports.ShellComponent=lt;exports.SubMenu=T;exports.Table=be;exports.TableComponent=be;exports.TextCell=ft;exports.Textarea=Oo;exports.TreeView=Qo;exports.addClickOutsideEventListener=zt;exports.buildInputStyle=V;exports.hasCustomEventListener=Ft;exports.isDescriptionHidden=he;exports.mergeStyles=D;exports.myStyles=M;exports.removeClickOutsideEventListener=Tt;exports.showErrors=H;exports.useFilter=Ce;
|