@velkymx/vibeui 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- (function(t,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(t=typeof globalThis<"u"?globalThis:t||self,e(t.VibeUI={},t.Vue))})(this,function(t,e){"use strict";const a=e.defineComponent({__name:"VibeAlert",props:{variant:{type:String,default:"primary"},modelValue:{type:Boolean,default:!0},dismissable:{type:Boolean,default:!1},message:{type:String,required:!0}},emits:["update:modelValue","component-error"],setup(n,{emit:i}){const s=n,r=i,l=e.computed({get:()=>s.modelValue,set:o=>r("update:modelValue",o)}),d=()=>{try{l.value=!1}catch(o){r("component-error",{message:"Dismiss failed",componentName:"VibeAlert",originalError:o})}};return(o,m)=>l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`alert alert-${n.variant}`),role:"alert"},[e.renderSlot(o.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)]),n.dismissable?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-close",onClick:d,"aria-label":"Close"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}});t.VibeAlert=a,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
1
+ (function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.VibeUI={},c.Vue))})(this,(function(c,e){"use strict";const q=e.defineComponent({__name:"VibeAlert",props:{variant:{type:String,default:"primary"},modelValue:{type:Boolean,default:!0},dismissable:{type:Boolean,default:!1},message:{type:String,required:!0}},emits:["update:modelValue","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.computed({get:()=>a.modelValue,set:i=>r("update:modelValue",i)}),o=()=>{try{l.value=!1}catch(i){r("component-error",{message:"Dismiss failed",componentName:"VibeAlert",originalError:i})}};return(i,n)=>l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`alert alert-${t.variant}`),role:"alert"},[e.renderSlot(i.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.dismissable?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-close",onClick:o,"aria-label":"Close"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),M=e.defineComponent({__name:"VibeBadge",props:{variant:{type:String,default:"primary"},pill:{type:Boolean,default:!1},tag:{type:String,default:"span"}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const l=["badge",`bg-${a.variant}`];return a.pill&&l.push("rounded-pill"),l.join(" ")});return(l,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(r.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),O=e.defineComponent({__name:"VibeButton",props:{variant:{type:String,default:"primary"},size:{type:String,default:void 0},outline:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},type:{type:String,default:"button"},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0},active:{type:Boolean,default:!1}},emits:["click","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.computed(()=>a.href?"a":a.to?"router-link":"button"),o=e.computed(()=>{const n=["btn"];return a.outline?n.push(`btn-outline-${a.variant}`):n.push(`btn-${a.variant}`),a.size&&n.push(`btn-${a.size}`),a.active&&n.push("active"),n.join(" ")}),i=n=>{a.disabled||r("click",n)};return(n,p)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(o.value),type:t.href||t.to?void 0:t.type,href:t.href,to:t.to,disabled:t.disabled,"aria-disabled":t.disabled,onClick:i},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class","type","href","to","disabled","aria-disabled"]))}}),G=["role","aria-label"],R=e.defineComponent({__name:"VibeButtonGroup",props:{size:{type:String,default:void 0},vertical:{type:Boolean,default:!1},role:{type:String,default:"group"},ariaLabel:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const l=[a.vertical?"btn-group-vertical":"btn-group"];return a.size&&l.push(`btn-group-${a.size}`),l.join(" ")});return(l,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.value),role:t.role,"aria-label":t.ariaLabel},[e.renderSlot(l.$slots,"default")],10,G))}}),H=["disabled","aria-label"],U=e.defineComponent({__name:"VibeCloseButton",props:{disabled:{type:Boolean,default:!1},white:{type:Boolean,default:!1},ariaLabel:{type:String,default:"Close"}},emits:["click","component-error"],setup(t,{emit:s}){const a=t,r=s,l=o=>{a.disabled||r("click",o)};return(o,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(["btn-close",{"btn-close-white":t.white}]),disabled:t.disabled,"aria-label":t.ariaLabel,onClick:l},null,10,H))}}),Q={class:"visually-hidden"},K=e.defineComponent({__name:"VibeSpinner",props:{variant:{type:String,default:void 0},type:{type:String,default:"border"},size:{type:String,default:void 0},label:{type:String,default:"Loading..."},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const l=[`spinner-${a.type}`];return a.variant&&l.push(`text-${a.variant}`),a.size&&l.push(`spinner-${a.type}-${a.size}`),l.join(" ")});return(l,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(r.value),role:"status"},{default:e.withCtx(()=>[e.createElementVNode("span",Q,e.toDisplayString(t.label),1)]),_:1},8,["class"]))}}),J=e.defineComponent({__name:"VibePlaceholder",props:{variant:{type:String,default:void 0},size:{type:String,default:void 0},animation:{type:String,default:void 0},width:{type:[String,Number],default:void 0},tag:{type:String,default:"span"}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const i=["placeholder"];return a.variant&&i.push(`bg-${a.variant}`),a.size&&i.push(`placeholder-${a.size}`),i.join(" ")}),l=e.computed(()=>{if(a.animation)return`placeholder-${a.animation}`}),o=e.computed(()=>{if(a.width)return{width:typeof a.width=="number"?`${a.width}%`:a.width}});return(i,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(r.value),style:e.normalizeStyle(o.value)},[e.renderSlot(i.$slots,"default")],6)]),_:3},8,["class"]))}}),w=e.defineComponent({__name:"VibeCardHeader",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-header"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),E=e.defineComponent({__name:"VibeCardBody",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-body"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),z=e.defineComponent({__name:"VibeCardFooter",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-footer"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),W=["src","alt"],$=e.defineComponent({__name:"VibeCardImg",props:{src:{type:String,required:!0},alt:{type:String,default:""},top:{type:Boolean,default:!1},bottom:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=a.top?"card-img-top":a.bottom?"card-img-bottom":"card-img";return(l,o)=>(e.openBlock(),e.createElementBlock("img",{src:t.src,alt:t.alt,class:e.normalizeClass(e.unref(r))},null,10,W))}}),D=e.defineComponent({__name:"VibeCardTitle",props:{tag:{type:String,default:"h5"}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-title"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),x=e.defineComponent({__name:"VibeCardText",props:{tag:{type:String,default:"p"}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-text"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),X=e.defineComponent({__name:"VibeCard",props:{variant:{type:String,default:void 0},border:{type:String,default:void 0},textVariant:{type:String,default:void 0},tag:{type:String,default:"div"},title:{type:String,default:void 0},body:{type:String,default:void 0},header:{type:String,default:void 0},footer:{type:String,default:void 0},headerImage:{type:String,default:void 0},headerImageAlt:{type:String,default:""},footerImage:{type:String,default:void 0},footerImageAlt:{type:String,default:""}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.useSlots(),l=e.computed(()=>{const n=["card"];return a.variant&&n.push(`bg-${a.variant}`),a.border&&n.push(`border-${a.border}`),a.textVariant&&n.push(`text-${a.textVariant}`),n.join(" ")}),o=e.computed(()=>!!(a.title||a.body||a.header||a.footer||a.headerImage||a.footerImage)),i=e.computed(()=>!!(r.default||r.header||r.footer||r.body));return(n,p)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[o.value&&!i.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.headerImage?(e.openBlock(),e.createBlock($,{key:0,top:"",src:t.headerImage,alt:t.headerImageAlt},null,8,["src","alt"])):e.createCommentVNode("",!0),t.header?(e.openBlock(),e.createBlock(w,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.header),1)]),_:1})):e.createCommentVNode("",!0),t.title||t.body?(e.openBlock(),e.createBlock(E,{key:2},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createBlock(D,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:1})):e.createCommentVNode("",!0),t.body?(e.openBlock(),e.createBlock(x,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.body),1)]),_:1})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),t.footer?(e.openBlock(),e.createBlock(z,{key:3},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.footer),1)]),_:1})):e.createCommentVNode("",!0),t.footerImage?(e.openBlock(),e.createBlock($,{key:4,bottom:"",src:t.footerImage,alt:t.footerImageAlt},null,8,["src","alt"])):e.createCommentVNode("",!0)],64)):e.renderSlot(n.$slots,"default",{key:1})]),_:3},8,["class"]))}}),Y=["aria-current"],P=e.defineComponent({__name:"VibeBreadcrumbItem",props:{active:{type:Boolean,default:!1},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=a.href?"a":a.to?"router-link":"span";return(l,o)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(["breadcrumb-item",{active:t.active}]),"aria-current":t.active?"page":void 0},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r)),{href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["href","to"]))],10,Y))}}),Z=["aria-label"],v={class:"breadcrumb"},ee=e.defineComponent({__name:"VibeBreadcrumb",props:{ariaLabel:{type:String,default:"breadcrumb"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=e.useSlots();return(r,l)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ol",v,[t.items&&t.items.length>0&&!e.unref(a).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(o,i)=>(e.openBlock(),e.createBlock(P,{key:i,href:o.href,to:o.to,active:o.active},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.text),1)]),_:2},1032,["href","to","active"]))),128)):e.renderSlot(r.$slots,"default",{key:1})])],8,Z))}}),te={class:"nav-item"},N=e.defineComponent({__name:"VibeNavItem",props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["click","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.computed(()=>a.href?"a":a.to?"router-link":"a"),o=e.computed(()=>{const n=["nav-link"];return a.active&&n.push("active"),a.disabled&&n.push("disabled"),n.join(" ")}),i=n=>{a.disabled||r("click",n)};return(n,p)=>(e.openBlock(),e.createElementBlock("li",te,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(o.value),href:t.href,to:t.to,"aria-current":t.active?"page":void 0,"aria-disabled":t.disabled,onClick:i},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class","href","to","aria-current","aria-disabled"]))]))}}),ae=e.defineComponent({__name:"VibeNav",props:{tabs:{type:Boolean,default:!1},pills:{type:Boolean,default:!1},fill:{type:Boolean,default:!1},justified:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.useSlots(),l=e.computed(()=>{const o=["nav"];return a.tabs&&o.push("nav-tabs"),a.pills&&o.push("nav-pills"),a.fill&&o.push("nav-fill"),a.justified&&o.push("nav-justified"),a.vertical&&o.push("flex-column"),o.join(" ")});return(o,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[t.items&&t.items.length>0&&!e.unref(r).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(n,p)=>(e.openBlock(),e.createBlock(N,{key:p,href:n.href,to:n.to,active:n.active,disabled:n.disabled},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.text),1)]),_:2},1032,["href","to","active","disabled"]))),128)):e.renderSlot(o.$slots,"default",{key:1})]),_:3},8,["class"]))}}),oe=e.defineComponent({__name:"VibeNavbar",props:{variant:{type:String,default:"light"},expand:{type:[Boolean,String],default:"lg"},container:{type:[Boolean,String],default:!0},position:{type:String,default:void 0},tag:{type:String,default:"nav"}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const o=["navbar"];return a.expand===!0?o.push("navbar-expand"):typeof a.expand=="string"&&o.push(`navbar-expand-${a.expand}`),a.variant==="dark"||a.variant==="light"?o.push(`navbar-${a.variant}`):o.push(`bg-${a.variant}`),a.position&&o.push(a.position),o.join(" ")}),l=e.computed(()=>{if(a.container!==!1)return a.container===!0?"container-fluid":`container-${a.container}`});return(o,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(r.value)},{default:e.withCtx(()=>[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(l.value)},[e.renderSlot(o.$slots,"default")],2)):e.renderSlot(o.$slots,"default",{key:1})]),_:3},8,["class"]))}}),le=e.defineComponent({__name:"VibeNavbarBrand",props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=a.href?"a":a.to?"router-link":"span";return(l,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r)),{class:"navbar-brand",href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["href","to"]))}}),ne=["data-bs-target","aria-controls","aria-label"],re=e.defineComponent({__name:"VibeNavbarToggle",props:{target:{type:String,required:!0},ariaLabel:{type:String,default:"Toggle navigation"}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createElementBlock("button",{class:"navbar-toggler",type:"button","data-bs-toggle":"collapse","data-bs-target":`#${t.target}`,"aria-controls":t.target,"aria-expanded":"false","aria-label":t.ariaLabel},[...r[0]||(r[0]=[e.createElementVNode("span",{class:"navbar-toggler-icon"},null,-1)])],8,ne))}}),ie=e.defineComponent({__name:"VibeNavbarNav",props:{tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=e.useSlots();return(r,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"navbar-nav"},{default:e.withCtx(()=>[t.items&&t.items.length>0&&!e.unref(a).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(o,i)=>(e.openBlock(),e.createBlock(N,{key:i,href:o.href,to:o.to,active:o.active,disabled:o.disabled},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.text),1)]),_:2},1032,["href","to","active","disabled"]))),128)):e.renderSlot(r.$slots,"default",{key:1})]),_:3}))}}),S=e.defineComponent({__name:"VibePaginationItem",props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["click","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.computed(()=>a.href?"a":a.to?"router-link":"button"),o=i=>{a.disabled||r("click",i)};return(i,n)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(["page-item",{active:t.active,disabled:t.disabled}])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:"page-link",href:t.href,to:t.to,type:l.value==="button"?"button":void 0,disabled:t.disabled&&l.value==="button","aria-current":t.active?"page":void 0,"aria-disabled":t.disabled,onClick:o},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["href","to","type","disabled","aria-current","aria-disabled"]))],2))}}),se=["aria-label"],de=e.defineComponent({__name:"VibePagination",props:{size:{type:String,default:void 0},ariaLabel:{type:String,default:"Pagination"},totalPages:{type:Number,default:void 0},currentPage:{type:Number,default:1},showPrevNext:{type:Boolean,default:!0}},emits:["page-click","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.useSlots(),o=e.computed(()=>{const p=["pagination"];return a.size&&p.push(`pagination-${a.size}`),p.join(" ")}),i=e.computed(()=>a.totalPages?Array.from({length:a.totalPages},(p,b)=>b+1):[]),n=p=>{p>=1&&p<=a.totalPages&&r("page-click",p)};return(p,b)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ul",{class:e.normalizeClass(o.value)},[t.totalPages&&!e.unref(l).default?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.showPrevNext?(e.openBlock(),e.createBlock(S,{key:0,disabled:t.currentPage===1,onClick:b[0]||(b[0]=u=>n(t.currentPage-1))},{default:e.withCtx(()=>[...b[2]||(b[2]=[e.createTextVNode(" Previous ",-1)])]),_:1},8,["disabled"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,u=>(e.openBlock(),e.createBlock(S,{key:u,active:u===t.currentPage,onClick:V=>n(u)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u),1)]),_:2},1032,["active","onClick"]))),128)),t.showPrevNext?(e.openBlock(),e.createBlock(S,{key:1,disabled:t.currentPage===t.totalPages,onClick:b[1]||(b[1]=u=>n(t.currentPage+1))},{default:e.withCtx(()=>[...b[3]||(b[3]=[e.createTextVNode(" Next ",-1)])]),_:1},8,["disabled"])):e.createCommentVNode("",!0)],64)):e.renderSlot(p.$slots,"default",{key:1})],2)],8,se))}}),T=e.defineComponent({__name:"VibeListGroupItem",props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},variant:{type:String,default:void 0},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0},tag:{type:String,default:"li"},action:{type:Boolean,default:!1}},emits:["click","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.computed(()=>a.href?"a":a.to?"router-link":a.action?"button":a.tag),o=e.computed(()=>{const n=["list-group-item"];return a.active&&n.push("active"),a.disabled&&n.push("disabled"),a.variant&&n.push(`list-group-item-${a.variant}`),(a.action||a.href||a.to)&&n.push("list-group-item-action"),n.join(" ")}),i=n=>{a.disabled||r("click",n)};return(n,p)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(o.value),href:t.href,to:t.to,type:l.value==="button"?"button":void 0,disabled:t.disabled,"aria-disabled":t.disabled,"aria-current":t.active?"true":void 0,onClick:i},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class","href","to","type","disabled","aria-disabled","aria-current"]))}}),ce=e.defineComponent({__name:"VibeListGroup",props:{flush:{type:Boolean,default:!1},horizontal:{type:[Boolean,String],default:!1},numbered:{type:Boolean,default:!1},tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.useSlots(),l=e.computed(()=>{const o=["list-group"];return a.flush&&o.push("list-group-flush"),a.numbered&&o.push("list-group-numbered"),a.horizontal===!0?o.push("list-group-horizontal"):typeof a.horizontal=="string"&&o.push(`list-group-horizontal-${a.horizontal}`),o.join(" ")});return(o,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[t.items&&t.items.length>0&&!e.unref(r).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(n,p)=>(e.openBlock(),e.createBlock(T,{key:p,href:n.href,to:n.to,active:n.active,disabled:n.disabled,variant:n.variant},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.text),1)]),_:2},1032,["href","to","active","disabled","variant"]))),128)):e.renderSlot(o.$slots,"default",{key:1})]),_:3},8,["class"]))}}),me=e.defineComponent({__name:"VibeProgress",props:{height:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{if(a.height)return{height:a.height}});return(l,o)=>(e.openBlock(),e.createElementBlock("div",{class:"progress",style:e.normalizeStyle(r.value)},[e.renderSlot(l.$slots,"default")],4))}}),fe=["aria-valuenow","aria-valuemax"],pe=e.defineComponent({__name:"VibeProgressBar",props:{value:{type:Number,default:0},max:{type:Number,default:100},variant:{type:String,default:void 0},striped:{type:Boolean,default:!1},animated:{type:Boolean,default:!1},label:{type:String,default:void 0},showValue:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const i=["progress-bar"];return a.variant&&i.push(`bg-${a.variant}`),(a.striped||a.animated)&&i.push("progress-bar-striped"),a.animated&&i.push("progress-bar-animated"),i.join(" ")}),l=e.computed(()=>({width:`${Math.min(100,Math.max(0,a.value/a.max*100))}%`})),o=e.computed(()=>a.label?a.label:a.showValue?`${a.value}%`:"");return(i,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.value),style:e.normalizeStyle(l.value),role:"progressbar","aria-valuenow":t.value,"aria-valuemin":0,"aria-valuemax":t.max},[e.createTextVNode(e.toDisplayString(o.value)+" ",1),e.renderSlot(i.$slots,"default")],14,fe))}}),be={class:"accordion-item"},ue={class:"accordion-header"},ye=["data-bs-target","aria-expanded","aria-controls"],he=["id","data-bs-parent"],ge={class:"accordion-body"},_=e.defineComponent({__name:"VibeAccordionItem",props:{id:{type:String,required:!0},title:{type:String,required:!0},parentId:{type:String,required:!0},show:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>a.show?"accordion-collapse collapse show":"accordion-collapse collapse");return(l,o)=>(e.openBlock(),e.createElementBlock("div",be,[e.createElementVNode("h2",ue,[e.createElementVNode("button",{class:e.normalizeClass(["accordion-button",{collapsed:!t.show}]),type:"button","data-bs-toggle":"collapse","data-bs-target":`#${t.id}`,"aria-expanded":t.show,"aria-controls":t.id},e.toDisplayString(t.title),11,ye)]),e.createElementVNode("div",{id:t.id,class:e.normalizeClass(r.value),"data-bs-parent":`#${t.parentId}`},[e.createElementVNode("div",ge,[e.renderSlot(l.$slots,"default")])],10,he)]))}}),ke=["id"],Be=e.defineComponent({__name:"VibeAccordion",props:{id:{type:String,required:!0},flush:{type:Boolean,default:!1},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=e.useSlots();return(r,l)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(["accordion",{"accordion-flush":t.flush}])},[t.items&&t.items.length>0&&!e.unref(a).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(o,i)=>(e.openBlock(),e.createBlock(_,{key:i,id:o.id,"parent-id":t.id,title:o.title,show:o.show},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.content),1)]),_:2},1032,["id","parent-id","title","show"]))),128)):e.renderSlot(r.$slots,"default",{key:1})],10,ke))}}),Ce=e.defineComponent({__name:"VibeCollapse",props:{id:{type:String,required:!0},modelValue:{type:Boolean,default:!1},tag:{type:String,default:"div"},horizontal:{type:Boolean,default:!1}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{emit:s}){const a=t,r=e.ref(a.modelValue);e.watch(()=>a.modelValue,o=>{r.value=o});const l=e.computed(()=>{const o=["collapse"];return a.horizontal&&o.push("collapse-horizontal"),r.value&&o.push("show"),o.join(" ")});return(o,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["id","class"]))}}),Se={key:0},I=e.defineComponent({__name:"VibeDropdownItem",props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0},divider:{type:Boolean,default:!1},header:{type:Boolean,default:!1}},emits:["click","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.computed(()=>a.divider?"hr":a.header?"h6":a.href?"a":a.to?"router-link":"button"),o=e.computed(()=>{if(a.divider)return"dropdown-divider";if(a.header)return"dropdown-header";const n=["dropdown-item"];return a.active&&n.push("active"),a.disabled&&n.push("disabled"),n.join(" ")}),i=n=>{!a.disabled&&!a.divider&&!a.header&&r("click",n)};return(n,p)=>!t.divider&&!t.header?(e.openBlock(),e.createElementBlock("li",Se,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(o.value),href:t.href,to:t.to,type:l.value==="button"?"button":void 0,disabled:t.disabled,onClick:i},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class","href","to","type","disabled"]))])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:1,class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class"]))}}),Ve=["id"],$e=["aria-labelledby"],Ne=e.defineComponent({__name:"VibeDropdown",props:{id:{type:String,required:!0},text:{type:String,default:"Dropdown"},variant:{type:String,default:"primary"},size:{type:String,default:void 0},split:{type:Boolean,default:!1},direction:{type:String,default:"down"},menuEnd:{type:Boolean,default:!1},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:s}){const a=t,r=e.useSlots(),l=e.computed(()=>a.direction==="up"?"dropup":a.direction==="end"?"dropend":a.direction==="start"?"dropstart":"dropdown"),o=e.computed(()=>{const n=["btn",`btn-${a.variant}`];return a.size&&n.push(`btn-${a.size}`),n.join(" ")}),i=e.computed(()=>{const n=["dropdown-menu"];return a.menuEnd&&n.push("dropdown-menu-end"),n.join(" ")});return(n,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.createElementVNode("button",{id:t.id,class:e.normalizeClass([o.value,"dropdown-toggle"]),type:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},e.toDisplayString(t.text),11,Ve),e.createElementVNode("ul",{class:e.normalizeClass(i.value),"aria-labelledby":t.id},[t.items&&t.items.length>0&&!e.unref(r).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(b,u)=>(e.openBlock(),e.createBlock(I,{key:u,href:b.href,to:b.to,active:b.active,disabled:b.disabled,divider:b.divider,header:b.header},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.text),1)]),_:2},1032,["href","to","active","disabled","divider","header"]))),128)):e.renderSlot(n.$slots,"default",{key:1})],10,$e)],2))}}),we=["id","aria-labelledby","data-bs-backdrop","data-bs-keyboard"],Ee={class:"modal-content"},ze={key:0,class:"modal-header"},De=["id"],xe={class:"modal-body"},Pe={key:1,class:"modal-footer"},Te=e.defineComponent({__name:"VibeModal",props:{id:{type:String,required:!0},modelValue:{type:Boolean,default:!1},title:{type:String,default:""},size:{type:String,default:void 0},centered:{type:Boolean,default:!1},scrollable:{type:Boolean,default:!1},fullscreen:{type:[Boolean,String],default:!1},staticBackdrop:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1},hideFooter:{type:Boolean,default:!1}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const l=["modal-dialog"];return a.size&&l.push(`modal-${a.size}`),a.centered&&l.push("modal-dialog-centered"),a.scrollable&&l.push("modal-dialog-scrollable"),a.fullscreen===!0?l.push("modal-fullscreen"):typeof a.fullscreen=="string"&&l.push(`modal-fullscreen-${a.fullscreen}-down`),l.join(" ")});return(l,o)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:"modal fade",tabindex:"-1","aria-labelledby":`${t.id}-label`,"aria-hidden":"true","data-bs-backdrop":t.staticBackdrop?"static":void 0,"data-bs-keyboard":!t.staticBackdrop},[e.createElementVNode("div",{class:e.normalizeClass(r.value)},[e.createElementVNode("div",Ee,[t.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ze,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"modal-title"},[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,De),o[0]||(o[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1))])),e.createElementVNode("div",xe,[e.renderSlot(l.$slots,"default")]),t.hideFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Pe,[e.renderSlot(l.$slots,"footer",{},()=>[o[1]||(o[1]=e.createElementVNode("button",{type:"button",class:"btn btn-secondary","data-bs-dismiss":"modal"},"Close",-1))])]))])],2)],8,we))}}),_e=["id","aria-labelledby","data-bs-backdrop","data-bs-scroll"],Ie={class:"offcanvas-header"},je=["id"],Le={class:"offcanvas-body"},Ae=e.defineComponent({__name:"VibeOffcanvas",props:{id:{type:String,required:!0},modelValue:{type:Boolean,default:!1},title:{type:String,default:""},placement:{type:String,default:"start"},backdrop:{type:[Boolean,String],default:!0},scroll:{type:Boolean,default:!1}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>`offcanvas offcanvas-${a.placement}`);return(l,o)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(r.value),tabindex:"-1","aria-labelledby":`${t.id}-label`,"data-bs-backdrop":t.backdrop===!1?"false":t.backdrop==="static"?"static":"true","data-bs-scroll":t.scroll},[e.createElementVNode("div",Ie,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"offcanvas-title"},[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,je),o[0]||(o[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"offcanvas","aria-label":"Close"},null,-1))]),e.createElementVNode("div",Le,[e.renderSlot(l.$slots,"default")])],10,_e))}}),Fe=["id","data-bs-autohide","data-bs-delay"],qe={key:0,class:"toast-header"},Me={class:"me-auto"},Oe={class:"toast-body"},Ge=e.defineComponent({__name:"VibeToast",props:{id:{type:String,default:void 0},modelValue:{type:Boolean,default:!1},title:{type:String,default:""},variant:{type:String,default:void 0},autohide:{type:Boolean,default:!0},delay:{type:Number,default:5e3}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{emit:s}){const a=t,r=e.computed(()=>{const l=["toast"];return a.variant&&l.push(`text-bg-${a.variant}`),l.join(" ")});return(l,o)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(r.value),role:"alert","aria-live":"assertive","aria-atomic":"true","data-bs-autohide":t.autohide,"data-bs-delay":t.delay},[t.title||l.$slots.header?(e.openBlock(),e.createElementBlock("div",qe,[e.renderSlot(l.$slots,"header",{},()=>[e.createElementVNode("strong",Me,e.toDisplayString(t.title),1)]),o[0]||(o[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"toast","aria-label":"Close"},null,-1))])):e.createCommentVNode("",!0),e.createElementVNode("div",Oe,[e.renderSlot(l.$slots,"default")])],10,Fe))}}),Re=["data-bs-interval"],He=["src","alt"],Ue={key:1,class:"carousel-caption d-none d-md-block"},Qe={key:0},Ke={key:1},j=e.defineComponent({__name:"VibeCarouselSlide",props:{active:{type:Boolean,default:!1},interval:{type:Number,default:void 0},imgSrc:{type:String,default:void 0},imgAlt:{type:String,default:""},caption:{type:String,default:void 0},captionText:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["carousel-item",{active:t.active}]),"data-bs-interval":t.interval},[t.imgSrc?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.imgSrc,class:"d-block w-100",alt:t.imgAlt},null,8,He)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"img"),t.caption||t.captionText||a.$slots.caption?(e.openBlock(),e.createElementBlock("div",Ue,[e.renderSlot(a.$slots,"caption",{},()=>[t.caption?(e.openBlock(),e.createElementBlock("h5",Qe,e.toDisplayString(t.caption),1)):e.createCommentVNode("",!0),t.captionText?(e.openBlock(),e.createElementBlock("p",Ke,e.toDisplayString(t.captionText),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default")],10,Re))}}),Je=["id","data-bs-ride","data-bs-interval","data-bs-keyboard","data-bs-pause","data-bs-wrap","data-bs-touch"],We={key:0,class:"carousel-indicators"},Xe=["data-bs-target","data-bs-slide-to","aria-current","aria-label"],Ye={class:"carousel-inner"},Ze={key:0,class:"carousel-indicators"},ve={class:"carousel-inner"},et=["data-bs-target"],tt=["data-bs-target"],at=e.defineComponent({__name:"VibeCarousel",props:{id:{type:String,required:!0},controls:{type:Boolean,default:!0},indicators:{type:Boolean,default:!0},ride:{type:[Boolean,String],default:!1},interval:{type:[Number,Boolean],default:5e3},keyboard:{type:Boolean,default:!0},pause:{type:[String,Boolean],default:"hover"},wrap:{type:Boolean,default:!0},touch:{type:Boolean,default:!0},dark:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},items:{type:Array,default:void 0}},emits:["slide","slid","component-error"],setup(t,{emit:s}){const a=e.useSlots();return(r,l)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(["carousel","slide",{"carousel-dark":t.dark,"carousel-fade":t.fade}]),"data-bs-ride":t.ride===!0?"carousel":t.ride,"data-bs-interval":t.interval,"data-bs-keyboard":t.keyboard,"data-bs-pause":t.pause,"data-bs-wrap":t.wrap,"data-bs-touch":t.touch},[t.items&&t.items.length>0&&!e.unref(a).default?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.indicators?(e.openBlock(),e.createElementBlock("div",We,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(o,i)=>(e.openBlock(),e.createElementBlock("button",{key:`indicator-${i}`,type:"button","data-bs-target":`#${t.id}`,"data-bs-slide-to":i,class:e.normalizeClass({active:o.active||i===0}),"aria-current":o.active||i===0,"aria-label":`Slide ${i+1}`},null,10,Xe))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",Ye,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(o,i)=>(e.openBlock(),e.createBlock(j,{key:i,active:o.active||i===0,interval:o.interval,"img-src":o.src,"img-alt":o.alt,caption:o.caption,"caption-text":o.captionText},null,8,["active","interval","img-src","img-alt","caption","caption-text"]))),128))])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.indicators?(e.openBlock(),e.createElementBlock("div",Ze,[e.renderSlot(r.$slots,"indicators")])):e.createCommentVNode("",!0),e.createElementVNode("div",ve,[e.renderSlot(r.$slots,"default")])],64)),t.controls?(e.openBlock(),e.createElementBlock("button",{key:2,class:"carousel-control-prev",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"prev"},[...l[0]||(l[0]=[e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Previous",-1)])],8,et)):e.createCommentVNode("",!0),t.controls?(e.openBlock(),e.createElementBlock("button",{key:3,class:"carousel-control-next",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"next"},[...l[1]||(l[1]=[e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Next",-1)])],8,tt)):e.createCommentVNode("",!0)],10,Je))}}),ot=["data-bs-placement","data-bs-title","data-bs-trigger","data-bs-html"],lt=e.defineComponent({__name:"VibeTooltip",props:{content:{type:String,required:!0},placement:{type:String,default:"top"},trigger:{type:String,default:"hover focus"},html:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createElementBlock("span",{"data-bs-toggle":"tooltip","data-bs-placement":t.placement,"data-bs-title":t.content,"data-bs-trigger":t.trigger,"data-bs-html":t.html},[e.renderSlot(a.$slots,"default")],8,ot))}}),nt=["data-bs-placement","data-bs-title","data-bs-content","data-bs-trigger","data-bs-html"],rt=e.defineComponent({__name:"VibePopover",props:{title:{type:String,default:void 0},content:{type:String,required:!0},placement:{type:String,default:"top"},trigger:{type:String,default:"click"},html:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createElementBlock("span",{"data-bs-toggle":"popover","data-bs-placement":t.placement,"data-bs-title":t.title,"data-bs-content":t.content,"data-bs-trigger":t.trigger,"data-bs-html":t.html},[e.renderSlot(a.$slots,"default")],8,nt))}}),it=e.defineComponent({__name:"VibeScrollspy",props:{target:{type:String,required:!0},offset:{type:Number,default:10},method:{type:String,default:"auto"},smoothScroll:{type:Boolean,default:!1},tag:{type:String,default:"div"}},emits:["activate","component-error"],setup(t,{emit:s}){return(a,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{"data-bs-spy":"scroll","data-bs-target":t.target,"data-bs-offset":t.offset,"data-bs-method":t.method,"data-bs-smooth-scroll":t.smoothScroll,tabindex:"0"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["data-bs-target","data-bs-offset","data-bs-method","data-bs-smooth-scroll"]))}}),st={class:"vibe-datatable"},dt={class:"row mb-3"},ct={key:0,class:"col-md-6 mb-2 mb-md-0"},mt=["placeholder"],ft={key:1,class:"col-md-6"},pt={class:"d-flex justify-content-md-end align-items-center"},bt=["value"],ut=["onClick"],yt={key:0,class:"ms-1"},ht=["onClick"],gt={key:0},kt=["colspan"],Bt={class:"row"},Ct={key:0,class:"col-md-6 mb-2 mb-md-0"},St={class:"datatable-info"},Vt={key:1,class:"col-md-6"},$t={class:"pagination justify-content-md-end mb-0"},Nt={key:0,class:"page-item"},wt={key:1,class:"page-item disabled"},Et=["onClick"],zt={key:2,class:"page-item disabled"},Dt={key:3,class:"page-item"},xt=((t,s)=>{const a=t.__vccOpts||t;for(const[r,l]of s)a[r]=l;return a})(e.defineComponent({__name:"VibeDataTable",props:{items:{type:Array,default:()=>[]},columns:{type:Array,required:!0},striped:{type:Boolean,default:!1},bordered:{type:Boolean,default:!1},borderless:{type:Boolean,default:!1},hover:{type:Boolean,default:!1},small:{type:Boolean,default:!1},responsive:{type:Boolean,default:!0},variant:{type:String,default:void 0},searchable:{type:Boolean,default:!0},sortable:{type:Boolean,default:!0},paginated:{type:Boolean,default:!0},searchPlaceholder:{type:String,default:"Search..."},searchDebounce:{type:Number,default:300},perPage:{type:Number,default:10},currentPage:{type:Number,default:1},perPageOptions:{type:Array,default:()=>[5,10,25,50,100]},sortBy:{type:String,default:void 0},sortDesc:{type:Boolean,default:!1},showEmpty:{type:Boolean,default:!0},emptyText:{type:String,default:"No data available"},showPerPage:{type:Boolean,default:!0},showInfo:{type:Boolean,default:!0},infoText:{type:String,default:"Showing {start} to {end} of {total} entries"},filteredInfoText:{type:String,default:"Showing {start} to {end} of {total} entries (filtered from {totalRows} total entries)"}},emits:["update:currentPage","update:perPage","update:sortBy","update:sortDesc","row-clicked","component-error"],setup(t,{emit:s}){const a=t,r=s,l=e.ref(""),o=e.ref(null),i=e.ref(""),n=e.ref(a.currentPage),p=e.ref(a.perPage),b=e.ref(a.sortBy),u=e.ref(a.sortDesc);e.watch(()=>a.currentPage,d=>{n.value=d}),e.watch(()=>a.perPage,d=>{p.value=d}),e.watch(()=>a.sortBy,d=>{b.value=d}),e.watch(()=>a.sortDesc,d=>{u.value=d}),e.watch(l,d=>{o.value&&clearTimeout(o.value),o.value=window.setTimeout(()=>{i.value=d,n.value=1},a.searchDebounce)});const V=e.computed(()=>{if(!a.searchable||!i.value)return a.items;const d=i.value.toLowerCase();return a.items.filter(f=>a.columns.some(m=>{if(m.searchable===!1)return!1;const h=f[m.key];return h==null?!1:String(h).toLowerCase().includes(d)}))}),L=e.computed(()=>{if(!a.sortable||!b.value)return V.value;const d=[...V.value],f=b.value;return d.sort((m,h)=>{let y=m[f],k=h[f];return y==null?1:k==null?-1:(typeof y=="string"&&(y=y.toLowerCase()),typeof k=="string"&&(k=k.toLowerCase()),y<k?u.value?1:-1:y>k?u.value?-1:1:0)}),d}),A=e.computed(()=>{if(!a.paginated)return L.value;const d=(n.value-1)*p.value,f=d+p.value;return L.value.slice(d,f)}),F=e.computed(()=>a.items.length),B=e.computed(()=>V.value.length),g=e.computed(()=>Math.ceil(B.value/p.value)),Pt=e.computed(()=>B.value===0?0:(n.value-1)*p.value+1),Tt=e.computed(()=>{const d=n.value*p.value;return Math.min(d,B.value)}),_t=e.computed(()=>(B.value!==F.value?a.filteredInfoText:a.infoText).replace("{start}",String(Pt.value)).replace("{end}",String(Tt.value)).replace("{total}",String(B.value)).replace("{totalRows}",String(F.value))),It=e.computed(()=>{const d=["table"];return a.striped&&d.push("table-striped"),a.bordered&&d.push("table-bordered"),a.borderless&&d.push("table-borderless"),a.hover&&d.push("table-hover"),a.small&&d.push("table-sm"),a.variant&&d.push(`table-${a.variant}`),d.join(" ")}),jt=d=>{!a.sortable||d.sortable===!1||(b.value===d.key?u.value=!u.value:(b.value=d.key,u.value=!1),r("update:sortBy",b.value),r("update:sortDesc",u.value))},C=d=>{d<1||d>g.value||(n.value=d,r("update:currentPage",d))},Lt=()=>{n.value=1,r("update:perPage",p.value),r("update:currentPage",1)},At=(d,f)=>{r("row-clicked",d,f)},Ft=(d,f)=>{const m=d[f.key];return f.formatter?f.formatter(m,d):m},qt=d=>!a.sortable||d.sortable===!1?"":b.value!==d.key?"⇅":u.value?"↓":"↑",Mt=d=>{const f={...d.thStyle};return a.sortable&&d.sortable!==!1&&(f.cursor="pointer"),f};return(d,f)=>(e.openBlock(),e.createElementBlock("div",st,[e.createElementVNode("div",dt,[t.searchable?(e.openBlock(),e.createElementBlock("div",ct,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=m=>l.value=m),type:"search",class:"form-control",placeholder:t.searchPlaceholder},null,8,mt),[[e.vModelText,l.value]])])):e.createCommentVNode("",!0),t.showPerPage&&t.paginated?(e.openBlock(),e.createElementBlock("div",ft,[e.createElementVNode("div",pt,[f[6]||(f[6]=e.createElementVNode("label",{class:"me-2 mb-0"},"Show",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":f[1]||(f[1]=m=>p.value=m),class:"form-select form-select-sm",style:{width:"auto"},onChange:Lt},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.perPageOptions,m=>(e.openBlock(),e.createElementBlock("option",{key:m,value:m},e.toDisplayString(m),9,bt))),128))],544),[[e.vModelSelect,p.value,void 0,{number:!0}]]),f[7]||(f[7]=e.createElementVNode("span",{class:"ms-2"},"entries",-1))])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass({"table-responsive":t.responsive})},[e.createElementVNode("table",{class:e.normalizeClass(It.value)},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,m=>(e.openBlock(),e.createElementBlock("th",{key:m.key,class:e.normalizeClass(m.headerClass),style:e.normalizeStyle(Mt(m)),onClick:h=>jt(m)},[e.createTextVNode(e.toDisplayString(m.label)+" ",1),t.sortable&&m.sortable!==!1?(e.openBlock(),e.createElementBlock("span",yt,e.toDisplayString(qt(m)),1)):e.createCommentVNode("",!0)],14,ut))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,(m,h)=>(e.openBlock(),e.createElementBlock("tr",{key:h,onClick:y=>At(m,h),style:{cursor:"pointer"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,y=>(e.openBlock(),e.createElementBlock("td",{key:y.key,class:e.normalizeClass(y.class),style:e.normalizeStyle(y.tdStyle)},[e.renderSlot(d.$slots,`cell(${y.key})`,{item:m,value:m[y.key],index:h},()=>[e.createTextVNode(e.toDisplayString(Ft(m,y)),1)],!0)],6))),128))],8,ht))),128)),A.value.length===0&&t.showEmpty?(e.openBlock(),e.createElementBlock("tr",gt,[e.createElementVNode("td",{colspan:t.columns.length,class:"text-center"},e.toDisplayString(t.emptyText),9,kt)])):e.createCommentVNode("",!0)])],2)],2),e.createElementVNode("div",Bt,[t.showInfo?(e.openBlock(),e.createElementBlock("div",Ct,[e.createElementVNode("div",St,e.toDisplayString(_t.value),1)])):e.createCommentVNode("",!0),t.paginated&&g.value>1?(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("nav",null,[e.createElementVNode("ul",$t,[e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:n.value===1}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:f[2]||(f[2]=e.withModifiers(m=>C(n.value-1),["prevent"]))}," Previous ")],2),n.value>3?(e.openBlock(),e.createElementBlock("li",Nt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:f[3]||(f[3]=e.withModifiers(m=>C(1),["prevent"]))},"1")])):e.createCommentVNode("",!0),n.value>4?(e.openBlock(),e.createElementBlock("li",wt,[...f[8]||(f[8]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.from({length:g.value},(m,h)=>h+1).filter(m=>m>=n.value-2&&m<=n.value+2),m=>(e.openBlock(),e.createElementBlock("li",{key:m,class:e.normalizeClass(["page-item",{active:m===n.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:e.withModifiers(h=>C(m),["prevent"])},e.toDisplayString(m),9,Et)],2))),128)),n.value<g.value-3?(e.openBlock(),e.createElementBlock("li",zt,[...f[9]||(f[9]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),n.value<g.value-2?(e.openBlock(),e.createElementBlock("li",Dt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:f[4]||(f[4]=e.withModifiers(m=>C(g.value),["prevent"]))},e.toDisplayString(g.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:n.value===g.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:f[5]||(f[5]=e.withModifiers(m=>C(n.value+1),["prevent"]))}," Next ")],2)])])])):e.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-48221c7b"]]);c.VibeAccordion=Be,c.VibeAccordionItem=_,c.VibeAlert=q,c.VibeBadge=M,c.VibeBreadcrumb=ee,c.VibeBreadcrumbItem=P,c.VibeButton=O,c.VibeButtonGroup=R,c.VibeCard=X,c.VibeCardBody=E,c.VibeCardFooter=z,c.VibeCardHeader=w,c.VibeCardImg=$,c.VibeCardText=x,c.VibeCardTitle=D,c.VibeCarousel=at,c.VibeCarouselSlide=j,c.VibeCloseButton=U,c.VibeCollapse=Ce,c.VibeDataTable=xt,c.VibeDropdown=Ne,c.VibeDropdownItem=I,c.VibeListGroup=ce,c.VibeListGroupItem=T,c.VibeModal=Te,c.VibeNav=ae,c.VibeNavItem=N,c.VibeNavbar=oe,c.VibeNavbarBrand=le,c.VibeNavbarNav=ie,c.VibeNavbarToggle=re,c.VibeOffcanvas=Ae,c.VibePagination=de,c.VibePaginationItem=S,c.VibePlaceholder=J,c.VibePopover=rt,c.VibeProgress=me,c.VibeProgressBar=pe,c.VibeScrollspy=it,c.VibeSpinner=K,c.VibeToast=Ge,c.VibeTooltip=lt,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,26 +1,56 @@
1
1
  {
2
2
  "name": "@velkymx/vibeui",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
+ "description": "A lightweight Vue 3 component library for Bootstrap 5.3 with dual-mode support (shorthand props and composable slots)",
4
5
  "main": "./dist/vibeui.umd.js",
5
6
  "module": "./dist/vibeui.es.js",
6
7
  "types": "./dist/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/index.d.ts",
11
+ "import": "./dist/vibeui.es.js",
12
+ "require": "./dist/vibeui.umd.js"
13
+ },
14
+ "./dist/style.css": "./dist/vibeui.css"
15
+ },
7
16
  "files": ["dist"],
8
17
  "scripts": {
9
18
  "dev": "vite",
10
19
  "build": "vite build",
11
- "preview": "vite preview"
20
+ "preview": "vite preview",
21
+ "prepublishOnly": "npm run build"
22
+ },
23
+ "keywords": [
24
+ "vue",
25
+ "vue3",
26
+ "bootstrap",
27
+ "bootstrap5",
28
+ "component-library",
29
+ "ui-components",
30
+ "vibeui",
31
+ "typescript"
32
+ ],
33
+ "author": "velkymx",
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/velkymx/vibeui.git"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/velkymx/vibeui/issues"
12
41
  },
42
+ "homepage": "https://github.com/velkymx/vibeui#readme",
13
43
  "dependencies": {
14
- "vue": "^3.4.27"
44
+ "vue": "^3.5.13"
15
45
  },
16
46
  "devDependencies": {
17
- "@vitejs/plugin-vue": "^5.0.4",
18
- "typescript": "^5.4.5",
19
- "vite": "^5.2.12",
20
- "vue-tsc": "^1.8.27"
47
+ "@vitejs/plugin-vue": "^5.2.1",
48
+ "typescript": "^5.7.2",
49
+ "vite": "^6.0.5",
50
+ "vue-tsc": "^2.1.10"
21
51
  },
22
52
  "peerDependencies": {
23
- "vue": "^3.4.0"
53
+ "vue": "^3.5.0"
24
54
  }
25
55
  }
26
56