@velkymx/vibeui 0.3.0 → 0.4.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.
Files changed (70) hide show
  1. package/README.md +362 -1
  2. package/dist/App.vue.d.ts +2 -0
  3. package/dist/components/HelloWorld.vue.d.ts +5 -0
  4. package/dist/components/VibeAccordion.vue.d.ts +51 -0
  5. package/dist/components/VibeAccordionItem.vue.d.ts +57 -0
  6. package/dist/components/VibeAlert.vue.d.ts +61 -0
  7. package/dist/components/VibeBadge.vue.d.ts +52 -0
  8. package/dist/components/VibeBreadcrumb.vue.d.ts +43 -0
  9. package/dist/components/VibeBreadcrumbItem.vue.d.ts +51 -0
  10. package/dist/components/VibeButton.vue.d.ts +99 -0
  11. package/dist/components/VibeButtonGroup.vue.d.ts +61 -0
  12. package/dist/components/VibeCard.vue.d.ts +126 -0
  13. package/dist/components/VibeCardBody.vue.d.ts +34 -0
  14. package/dist/components/VibeCardFooter.vue.d.ts +34 -0
  15. package/dist/components/VibeCardHeader.vue.d.ts +34 -0
  16. package/dist/components/VibeCardImg.vue.d.ts +44 -0
  17. package/dist/components/VibeCardText.vue.d.ts +33 -0
  18. package/dist/components/VibeCardTitle.vue.d.ts +33 -0
  19. package/dist/components/VibeCarousel.vue.d.ts +137 -0
  20. package/dist/components/VibeCarouselSlide.vue.d.ts +80 -0
  21. package/dist/components/VibeCloseButton.vue.d.ts +38 -0
  22. package/dist/components/VibeCol.vue.d.ts +206 -0
  23. package/dist/components/VibeCollapse.vue.d.ts +70 -0
  24. package/dist/components/VibeContainer.vue.d.ts +44 -0
  25. package/dist/components/VibeDataTable.vue.d.ts +261 -0
  26. package/dist/components/VibeDropdown.vue.d.ts +96 -0
  27. package/dist/components/VibeDropdownItem.vue.d.ts +81 -0
  28. package/dist/components/VibeFormCheckbox.vue.d.ts +134 -0
  29. package/dist/components/VibeFormDatepicker.vue.d.ts +154 -0
  30. package/dist/components/VibeFormGroup.vue.d.ts +112 -0
  31. package/dist/components/VibeFormInput.vue.d.ts +154 -0
  32. package/dist/components/VibeFormRadio.vue.d.ts +132 -0
  33. package/dist/components/VibeFormSelect.vue.d.ts +167 -0
  34. package/dist/components/VibeFormSpinbutton.vue.d.ts +176 -0
  35. package/dist/components/VibeFormSwitch.vue.d.ts +107 -0
  36. package/dist/components/VibeFormTextarea.vue.d.ts +163 -0
  37. package/dist/components/VibeFormWysiwyg.vue.d.ts +156 -0
  38. package/dist/components/VibeIcon.vue.d.ts +83 -0
  39. package/dist/components/VibeListGroup.vue.d.ts +63 -0
  40. package/dist/components/VibeListGroupItem.vue.d.ts +90 -0
  41. package/dist/components/VibeModal.vue.d.ts +126 -0
  42. package/dist/components/VibeNav.vue.d.ts +81 -0
  43. package/dist/components/VibeNavItem.vue.d.ts +80 -0
  44. package/dist/components/VibeNavbar.vue.d.ts +71 -0
  45. package/dist/components/VibeNavbarBrand.vue.d.ts +42 -0
  46. package/dist/components/VibeNavbarNav.vue.d.ts +36 -0
  47. package/dist/components/VibeNavbarToggle.vue.d.ts +26 -0
  48. package/dist/components/VibeOffcanvas.vue.d.ts +89 -0
  49. package/dist/components/VibePagination.vue.d.ts +72 -0
  50. package/dist/components/VibePaginationItem.vue.d.ts +62 -0
  51. package/dist/components/VibePlaceholder.vue.d.ts +70 -0
  52. package/dist/components/VibePopover.vue.d.ts +69 -0
  53. package/dist/components/VibeProgress.vue.d.ts +33 -0
  54. package/dist/components/VibeProgressBar.vue.d.ts +88 -0
  55. package/dist/components/VibeRow.vue.d.ts +269 -0
  56. package/dist/components/VibeScrollspy.vue.d.ts +71 -0
  57. package/dist/components/VibeSpinner.vue.d.ts +55 -0
  58. package/dist/components/VibeTabContent.vue.d.ts +44 -0
  59. package/dist/components/VibeTabPane.vue.d.ts +70 -0
  60. package/dist/components/VibeToast.vue.d.ts +90 -0
  61. package/dist/components/VibeTooltip.vue.d.ts +60 -0
  62. package/dist/components/index.d.ts +63 -0
  63. package/dist/composables/useFormValidation.d.ts +26 -0
  64. package/dist/index.d.ts +3 -0
  65. package/dist/main.d.ts +0 -0
  66. package/dist/types/index.d.ts +2 -0
  67. package/dist/types.d.ts +100 -0
  68. package/dist/vibeui.es.js +1262 -1018
  69. package/dist/vibeui.umd.js +1 -1
  70. package/package.json +9 -4
@@ -1 +1 @@
1
- (function(m,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(m=typeof globalThis<"u"?globalThis:m||self,e(m.VibeUI={},m.Vue))})(this,(function(m,e){"use strict";const v=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:i}){const a=t,l=i,o=e.computed({get:()=>a.modelValue,set:d=>l("update:modelValue",d)}),n=()=>{try{o.value=!1}catch(d){l("component-error",{message:"Dismiss failed",componentName:"VibeAlert",originalError:d})}};return(d,r)=>o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`alert alert-${t.variant}`),role:"alert"},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.dismissable?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-close",onClick:n,"aria-label":"Close"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),R=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:i}){const a=t,l=e.computed(()=>{const o=["badge",`bg-${a.variant}`];return a.pill&&o.push("rounded-pill"),o.join(" ")});return(o,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),G=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:i}){const a=t,l=i,o=e.computed(()=>a.href?"a":a.to?"router-link":"button"),n=e.computed(()=>{const r=["btn"];return a.outline?r.push(`btn-outline-${a.variant}`):r.push(`btn-${a.variant}`),a.size&&r.push(`btn-${a.size}`),a.active&&r.push("active"),r.join(" ")}),d=r=>{a.disabled||l("click",r)};return(r,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(n.value),type:t.href||t.to?void 0:t.type,href:t.href,to:t.to,disabled:t.disabled,"aria-disabled":t.disabled,onClick:d},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["class","type","href","to","disabled","aria-disabled"]))}}),H=["role","aria-label"],Q=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:i}){const a=t,l=e.computed(()=>{const o=[a.vertical?"btn-group-vertical":"btn-group"];return a.size&&o.push(`btn-group-${a.size}`),o.join(" ")});return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value),role:t.role,"aria-label":t.ariaLabel},[e.renderSlot(o.$slots,"default")],10,H))}}),U=["disabled","aria-label"],W=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:i}){const a=t,l=i,o=n=>{a.disabled||l("click",n)};return(n,d)=>(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:o},null,10,U))}}),Y={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:i}){const a=t,l=e.computed(()=>{const o=[`spinner-${a.type}`];return a.variant&&o.push(`text-${a.variant}`),a.size&&o.push(`spinner-${a.type}-${a.size}`),o.join(" ")});return(o,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value),role:"status"},{default:e.withCtx(()=>[e.createElementVNode("span",Y,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:i}){const a=t,l=e.computed(()=>{const d=["placeholder"];return a.variant&&d.push(`bg-${a.variant}`),a.size&&d.push(`placeholder-${a.size}`),d.join(" ")}),o=e.computed(()=>{if(a.animation)return`placeholder-${a.animation}`}),n=e.computed(()=>{if(a.width)return{width:typeof a.width=="number"?`${a.width}%`:a.width}});return(d,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(l.value),style:e.normalizeStyle(n.value)},[e.renderSlot(d.$slots,"default")],6)]),_:3},8,["class"]))}}),z=e.defineComponent({__name:"VibeCardHeader",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:i}){return(a,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-header"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),F=e.defineComponent({__name:"VibeCardBody",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:i}){return(a,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-body"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),q=e.defineComponent({__name:"VibeCardFooter",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:i}){return(a,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-footer"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),X=["src","alt"],w=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:i}){const a=t,l=a.top?"card-img-top":a.bottom?"card-img-bottom":"card-img";return(o,n)=>(e.openBlock(),e.createElementBlock("img",{src:t.src,alt:t.alt,class:e.normalizeClass(e.unref(l))},null,10,X))}}),M=e.defineComponent({__name:"VibeCardTitle",props:{tag:{type:String,default:"h5"}},emits:["component-error"],setup(t,{emit:i}){return(a,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-title"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),P=e.defineComponent({__name:"VibeCardText",props:{tag:{type:String,default:"p"}},emits:["component-error"],setup(t,{emit:i}){return(a,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-text"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),Z=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:i}){const a=t,l=e.useSlots(),o=e.computed(()=>{const r=["card"];return a.variant&&r.push(`bg-${a.variant}`),a.border&&r.push(`border-${a.border}`),a.textVariant&&r.push(`text-${a.textVariant}`),r.join(" ")}),n=e.computed(()=>!!(a.title||a.body||a.header||a.footer||a.headerImage||a.footerImage)),d=e.computed(()=>!!(l.default||l.header||l.footer||l.body));return(r,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[n.value&&!d.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.headerImage?(e.openBlock(),e.createBlock(w,{key:0,top:"",src:t.headerImage,alt:t.headerImageAlt},null,8,["src","alt"])):e.createCommentVNode("",!0),t.header?(e.openBlock(),e.createBlock(z,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.header),1)]),_:1})):e.createCommentVNode("",!0),t.title||t.body?(e.openBlock(),e.createBlock(F,{key:2},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createBlock(M,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:1})):e.createCommentVNode("",!0),t.body?(e.openBlock(),e.createBlock(P,{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(q,{key:3},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.footer),1)]),_:1})):e.createCommentVNode("",!0),t.footerImage?(e.openBlock(),e.createBlock(w,{key:4,bottom:"",src:t.footerImage,alt:t.footerImageAlt},null,8,["src","alt"])):e.createCommentVNode("",!0)],64)):e.renderSlot(r.$slots,"default",{key:1})]),_:3},8,["class"]))}}),_=["aria-current"],I=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:i}){const a=t,l=a.href?"a":a.to?"router-link":"span";return(o,n)=>(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(l)),{href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["href","to"]))],10,_))}}),ee=["aria-label"],te={class:"breadcrumb"},ae=e.defineComponent({__name:"VibeBreadcrumb",props:{ariaLabel:{type:String,default:"breadcrumb"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:i}){const a=e.useSlots();return(l,o)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ol",te,[t.items&&t.items.length>0&&!e.unref(a).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(n,d)=>(e.openBlock(),e.createBlock(I,{key:d,href:n.href,to:n.to,active:n.active},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.text),1)]),_:2},1032,["href","to","active"]))),128)):e.renderSlot(l.$slots,"default",{key:1})])],8,ee))}}),le={class:"nav-item"},D=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:i}){const a=t,l=i,o=e.computed(()=>a.href?"a":a.to?"router-link":"a"),n=e.computed(()=>{const r=["nav-link"];return a.active&&r.push("active"),a.disabled&&r.push("disabled"),r.join(" ")}),d=r=>{a.disabled||l("click",r)};return(r,u)=>(e.openBlock(),e.createElementBlock("li",le,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(n.value),href:t.href,to:t.to,"aria-current":t.active?"page":void 0,"aria-disabled":t.disabled,onClick:d},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["class","href","to","aria-current","aria-disabled"]))]))}}),oe=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:i}){const a=t,l=e.useSlots(),o=e.computed(()=>{const n=["nav"];return a.tabs&&n.push("nav-tabs"),a.pills&&n.push("nav-pills"),a.fill&&n.push("nav-fill"),a.justified&&n.push("nav-justified"),a.vertical&&n.push("flex-column"),n.join(" ")});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[t.items&&t.items.length>0&&!e.unref(l).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(r,u)=>(e.openBlock(),e.createBlock(D,{key:u,href:r.href,to:r.to,active:r.active,disabled:r.disabled},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.text),1)]),_:2},1032,["href","to","active","disabled"]))),128)):e.renderSlot(n.$slots,"default",{key:1})]),_:3},8,["class"]))}}),ne=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:i}){const a=t,l=e.computed(()=>{const n=["navbar"];return a.expand===!0?n.push("navbar-expand"):typeof a.expand=="string"&&n.push(`navbar-expand-${a.expand}`),a.variant==="dark"||a.variant==="light"?n.push(`navbar-${a.variant}`):n.push(`bg-${a.variant}`),a.position&&n.push(a.position),n.join(" ")}),o=e.computed(()=>{if(a.container!==!1)return a.container===!0?"container-fluid":`container-${a.container}`});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.value)},[e.renderSlot(n.$slots,"default")],2)):e.renderSlot(n.$slots,"default",{key:1})]),_:3},8,["class"]))}}),ie=e.defineComponent({__name:"VibeNavbarBrand",props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:i}){const a=t,l=a.href?"a":a.to?"router-link":"span";return(o,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(l)),{class:"navbar-brand",href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["href","to"]))}}),re=["data-bs-target","aria-controls","aria-label"],de=e.defineComponent({__name:"VibeNavbarToggle",props:{target:{type:String,required:!0},ariaLabel:{type:String,default:"Toggle navigation"}},emits:["component-error"],setup(t,{emit:i}){return(a,l)=>(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},[...l[0]||(l[0]=[e.createElementVNode("span",{class:"navbar-toggler-icon"},null,-1)])],8,re))}}),se=e.defineComponent({__name:"VibeNavbarNav",props:{tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:i}){const a=e.useSlots();return(l,o)=>(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,(n,d)=>(e.openBlock(),e.createBlock(D,{key:d,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(l.$slots,"default",{key:1})]),_:3}))}}),x=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:i}){const a=t,l=i,o=e.computed(()=>a.href?"a":a.to?"router-link":"button"),n=d=>{a.disabled||l("click",d)};return(d,r)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(["page-item",{active:t.active,disabled:t.disabled}])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:"page-link",href:t.href,to:t.to,type:o.value==="button"?"button":void 0,disabled:t.disabled&&o.value==="button","aria-current":t.active?"page":void 0,"aria-disabled":t.disabled,onClick:n},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3},8,["href","to","type","disabled","aria-current","aria-disabled"]))],2))}}),ce=["aria-label"],me=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:i}){const a=t,l=i,o=e.useSlots(),n=e.computed(()=>{const u=["pagination"];return a.size&&u.push(`pagination-${a.size}`),u.join(" ")}),d=e.computed(()=>a.totalPages?Array.from({length:a.totalPages},(u,s)=>s+1):[]),r=u=>{u>=1&&u<=a.totalPages&&l("page-click",u)};return(u,s)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ul",{class:e.normalizeClass(n.value)},[t.totalPages&&!e.unref(o).default?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.showPrevNext?(e.openBlock(),e.createBlock(x,{key:0,disabled:t.currentPage===1,onClick:s[0]||(s[0]=c=>r(t.currentPage-1))},{default:e.withCtx(()=>[...s[2]||(s[2]=[e.createTextVNode(" Previous ",-1)])]),_:1},8,["disabled"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,c=>(e.openBlock(),e.createBlock(x,{key:c,active:c===t.currentPage,onClick:f=>r(c)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c),1)]),_:2},1032,["active","onClick"]))),128)),t.showPrevNext?(e.openBlock(),e.createBlock(x,{key:1,disabled:t.currentPage===t.totalPages,onClick:s[1]||(s[1]=c=>r(t.currentPage+1))},{default:e.withCtx(()=>[...s[3]||(s[3]=[e.createTextVNode(" Next ",-1)])]),_:1},8,["disabled"])):e.createCommentVNode("",!0)],64)):e.renderSlot(u.$slots,"default",{key:1})],2)],8,ce))}}),L=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:i}){const a=t,l=i,o=e.computed(()=>a.href?"a":a.to?"router-link":a.action?"button":a.tag),n=e.computed(()=>{const r=["list-group-item"];return a.active&&r.push("active"),a.disabled&&r.push("disabled"),a.variant&&r.push(`list-group-item-${a.variant}`),(a.action||a.href||a.to)&&r.push("list-group-item-action"),r.join(" ")}),d=r=>{a.disabled||l("click",r)};return(r,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(n.value),href:t.href,to:t.to,type:o.value==="button"?"button":void 0,disabled:t.disabled,"aria-disabled":t.disabled,"aria-current":t.active?"true":void 0,onClick:d},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["class","href","to","type","disabled","aria-disabled","aria-current"]))}}),fe=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:i}){const a=t,l=e.useSlots(),o=e.computed(()=>{const n=["list-group"];return a.flush&&n.push("list-group-flush"),a.numbered&&n.push("list-group-numbered"),a.horizontal===!0?n.push("list-group-horizontal"):typeof a.horizontal=="string"&&n.push(`list-group-horizontal-${a.horizontal}`),n.join(" ")});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[t.items&&t.items.length>0&&!e.unref(l).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(r,u)=>(e.openBlock(),e.createBlock(L,{key:u,href:r.href,to:r.to,active:r.active,disabled:r.disabled,variant:r.variant},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.text),1)]),_:2},1032,["href","to","active","disabled","variant"]))),128)):e.renderSlot(n.$slots,"default",{key:1})]),_:3},8,["class"]))}}),ue=e.defineComponent({__name:"VibeProgress",props:{height:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:i}){const a=t,l=e.computed(()=>{if(a.height)return{height:a.height}});return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:"progress",style:e.normalizeStyle(l.value)},[e.renderSlot(o.$slots,"default")],4))}}),ye=["aria-valuenow","aria-valuemax"],be=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:i}){const a=t,l=e.computed(()=>{const d=["progress-bar"];return a.variant&&d.push(`bg-${a.variant}`),(a.striped||a.animated)&&d.push("progress-bar-striped"),a.animated&&d.push("progress-bar-animated"),d.join(" ")}),o=e.computed(()=>({width:`${Math.min(100,Math.max(0,a.value/a.max*100))}%`})),n=e.computed(()=>a.label?a.label:a.showValue?`${a.value}%`:"");return(d,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value),style:e.normalizeStyle(o.value),role:"progressbar","aria-valuenow":t.value,"aria-valuemin":0,"aria-valuemax":t.max},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),e.renderSlot(d.$slots,"default")],14,ye))}}),pe={class:"accordion-item"},he={class:"accordion-header"},ge=["data-bs-target","aria-expanded","aria-controls"],ke=["id","data-bs-parent"],Be={class:"accordion-body"},A=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:i}){const a=t,l=e.computed(()=>a.show?"accordion-collapse collapse show":"accordion-collapse collapse");return(o,n)=>(e.openBlock(),e.createElementBlock("div",pe,[e.createElementVNode("h2",he,[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,ge)]),e.createElementVNode("div",{id:t.id,class:e.normalizeClass(l.value),"data-bs-parent":`#${t.parentId}`},[e.createElementVNode("div",Be,[e.renderSlot(o.$slots,"default")])],10,ke)]))}}),Se=["id"],Ce=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:i}){const a=e.useSlots();return(l,o)=>(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,(n,d)=>(e.openBlock(),e.createBlock(A,{key:d,id:n.id,"parent-id":t.id,title:n.title,show:n.show},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.content),1)]),_:2},1032,["id","parent-id","title","show"]))),128)):e.renderSlot(l.$slots,"default",{key:1})],10,Se))}}),Ve=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:i}){const a=t,l=e.ref(a.modelValue);e.watch(()=>a.modelValue,n=>{l.value=n});const o=e.computed(()=>{const n=["collapse"];return a.horizontal&&n.push("collapse-horizontal"),l.value&&n.push("show"),n.join(" ")});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["id","class"]))}}),$e={key:0},j=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:i}){const a=t,l=i,o=e.computed(()=>a.divider?"hr":a.header?"h6":a.href?"a":a.to?"router-link":"button"),n=e.computed(()=>{if(a.divider)return"dropdown-divider";if(a.header)return"dropdown-header";const r=["dropdown-item"];return a.active&&r.push("active"),a.disabled&&r.push("disabled"),r.join(" ")}),d=r=>{!a.disabled&&!a.divider&&!a.header&&l("click",r)};return(r,u)=>!t.divider&&!t.header?(e.openBlock(),e.createElementBlock("li",$e,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(n.value),href:t.href,to:t.to,type:o.value==="button"?"button":void 0,disabled:t.disabled,onClick:d},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["class","href","to","type","disabled"]))])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{key:1,class:e.normalizeClass(n.value)},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["class"]))}}),Ne=["id"],Ee=["aria-labelledby"],xe=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:i}){const a=t,l=e.useSlots(),o=e.computed(()=>a.direction==="up"?"dropup":a.direction==="end"?"dropend":a.direction==="start"?"dropstart":"dropdown"),n=e.computed(()=>{const r=["btn",`btn-${a.variant}`];return a.size&&r.push(`btn-${a.size}`),r.join(" ")}),d=e.computed(()=>{const r=["dropdown-menu"];return a.menuEnd&&r.push("dropdown-menu-end"),r.join(" ")});return(r,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[e.createElementVNode("button",{id:t.id,class:e.normalizeClass([n.value,"dropdown-toggle"]),type:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},e.toDisplayString(t.text),11,Ne),e.createElementVNode("ul",{class:e.normalizeClass(d.value),"aria-labelledby":t.id},[t.items&&t.items.length>0&&!e.unref(l).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(s,c)=>(e.openBlock(),e.createBlock(j,{key:c,href:s.href,to:s.to,active:s.active,disabled:s.disabled,divider:s.divider,header:s.header},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.text),1)]),_:2},1032,["href","to","active","disabled","divider","header"]))),128)):e.renderSlot(r.$slots,"default",{key:1})],10,Ee)],2))}}),we=["id","aria-labelledby","data-bs-backdrop","data-bs-keyboard"],De={class:"modal-content"},Te={key:0,class:"modal-header"},ze=["id"],Fe={class:"modal-body"},qe={key:1,class:"modal-footer"},Me=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:i}){const a=t,l=e.computed(()=>{const o=["modal-dialog"];return a.size&&o.push(`modal-${a.size}`),a.centered&&o.push("modal-dialog-centered"),a.scrollable&&o.push("modal-dialog-scrollable"),a.fullscreen===!0?o.push("modal-fullscreen"):typeof a.fullscreen=="string"&&o.push(`modal-fullscreen-${a.fullscreen}-down`),o.join(" ")});return(o,n)=>(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(l.value)},[e.createElementVNode("div",De,[t.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"modal-title"},[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,ze),n[0]||(n[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1))])),e.createElementVNode("div",Fe,[e.renderSlot(o.$slots,"default")]),t.hideFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",qe,[e.renderSlot(o.$slots,"footer",{},()=>[n[1]||(n[1]=e.createElementVNode("button",{type:"button",class:"btn btn-secondary","data-bs-dismiss":"modal"},"Close",-1))])]))])],2)],8,we))}}),Pe=["id","aria-labelledby","data-bs-backdrop","data-bs-scroll"],Ie={class:"offcanvas-header"},Le=["id"],Ae={class:"offcanvas-body"},je=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:i}){const a=t,l=e.computed(()=>`offcanvas offcanvas-${a.placement}`);return(o,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(l.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(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,Le),n[0]||(n[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"offcanvas","aria-label":"Close"},null,-1))]),e.createElementVNode("div",Ae,[e.renderSlot(o.$slots,"default")])],10,Pe))}}),Oe=["id","data-bs-autohide","data-bs-delay"],ve={key:0,class:"toast-header"},Re={class:"me-auto"},Ge={class:"toast-body"},He=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:i}){const a=t,l=e.computed(()=>{const o=["toast"];return a.variant&&o.push(`text-bg-${a.variant}`),o.join(" ")});return(o,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(l.value),role:"alert","aria-live":"assertive","aria-atomic":"true","data-bs-autohide":t.autohide,"data-bs-delay":t.delay},[t.title||o.$slots.header?(e.openBlock(),e.createElementBlock("div",ve,[e.renderSlot(o.$slots,"header",{},()=>[e.createElementVNode("strong",Re,e.toDisplayString(t.title),1)]),n[0]||(n[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"toast","aria-label":"Close"},null,-1))])):e.createCommentVNode("",!0),e.createElementVNode("div",Ge,[e.renderSlot(o.$slots,"default")])],10,Oe))}}),Qe=["data-bs-interval"],Ue=["src","alt"],We={key:1,class:"carousel-caption d-none d-md-block"},Ye={key:0},Ke={key:1},O=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:i}){return(a,l)=>(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,Ue)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"img"),t.caption||t.captionText||a.$slots.caption?(e.openBlock(),e.createElementBlock("div",We,[e.renderSlot(a.$slots,"caption",{},()=>[t.caption?(e.openBlock(),e.createElementBlock("h5",Ye,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,Qe))}}),Je=["id","data-bs-ride","data-bs-interval","data-bs-keyboard","data-bs-pause","data-bs-wrap","data-bs-touch"],Xe={key:0,class:"carousel-indicators"},Ze=["data-bs-target","data-bs-slide-to","aria-current","aria-label"],_e={class:"carousel-inner"},et={key:0,class:"carousel-indicators"},tt={class:"carousel-inner"},at=["data-bs-target"],lt=["data-bs-target"],ot=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:i}){const a=e.useSlots();return(l,o)=>(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",Xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,d)=>(e.openBlock(),e.createElementBlock("button",{key:`indicator-${d}`,type:"button","data-bs-target":`#${t.id}`,"data-bs-slide-to":d,class:e.normalizeClass({active:n.active||d===0}),"aria-current":n.active||d===0,"aria-label":`Slide ${d+1}`},null,10,Ze))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",_e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,d)=>(e.openBlock(),e.createBlock(O,{key:d,active:n.active||d===0,interval:n.interval,"img-src":n.src,"img-alt":n.alt,caption:n.caption,"caption-text":n.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",et,[e.renderSlot(l.$slots,"indicators")])):e.createCommentVNode("",!0),e.createElementVNode("div",tt,[e.renderSlot(l.$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"},[...o[0]||(o[0]=[e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Previous",-1)])],8,at)):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"},[...o[1]||(o[1]=[e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Next",-1)])],8,lt)):e.createCommentVNode("",!0)],10,Je))}}),nt=["data-bs-placement","data-bs-title","data-bs-trigger","data-bs-html"],it=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:i}){return(a,l)=>(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,nt))}}),rt=["data-bs-placement","data-bs-title","data-bs-content","data-bs-trigger","data-bs-html"],dt=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:i}){return(a,l)=>(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,rt))}}),st=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:i}){return(a,l)=>(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"]))}}),ct={class:"vibe-datatable"},mt={class:"row mb-3"},ft={key:0,class:"col-md-6 mb-2 mb-md-0"},ut=["placeholder"],yt={key:1,class:"col-md-6"},bt={class:"d-flex justify-content-md-end align-items-center"},pt=["value"],ht=["onClick"],gt={key:0,class:"ms-1"},kt=["onClick"],Bt={key:0},St=["colspan"],Ct={class:"row"},Vt={key:0,class:"col-md-6 mb-2 mb-md-0"},$t={class:"datatable-info"},Nt={key:1,class:"col-md-6"},Et={class:"pagination justify-content-md-end mb-0"},xt={key:0,class:"page-item"},wt={key:1,class:"page-item disabled"},Dt=["onClick"],Tt={key:2,class:"page-item disabled"},zt={key:3,class:"page-item"},Ft=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:i}){const a=t,l=i,o=e.ref(""),n=e.ref(null),d=e.ref(""),r=e.ref(a.currentPage),u=e.ref(a.perPage),s=e.ref(a.sortBy),c=e.ref(a.sortDesc);e.watch(()=>a.currentPage,y=>{r.value=y}),e.watch(()=>a.perPage,y=>{u.value=y}),e.watch(()=>a.sortBy,y=>{s.value=y}),e.watch(()=>a.sortDesc,y=>{c.value=y}),e.watch(o,y=>{n.value&&clearTimeout(n.value),n.value=window.setTimeout(()=>{d.value=y,r.value=1},a.searchDebounce)});const f=e.computed(()=>{if(!a.searchable||!d.value)return a.items;const y=d.value.toLowerCase();return a.items.filter(g=>a.columns.some(p=>{if(p.searchable===!1)return!1;const V=g[p.key];return V==null?!1:String(V).toLowerCase().includes(y)}))}),b=e.computed(()=>{if(!a.sortable||!s.value)return f.value;const y=[...f.value],g=s.value;return y.sort((p,V)=>{let S=p[g],N=V[g];return S==null?1:N==null?-1:(typeof S=="string"&&(S=S.toLowerCase()),typeof N=="string"&&(N=N.toLowerCase()),S<N?c.value?1:-1:S>N?c.value?-1:1:0)}),y}),k=e.computed(()=>{if(!a.paginated)return b.value;const y=(r.value-1)*u.value,g=y+u.value;return b.value.slice(y,g)}),C=e.computed(()=>a.items.length),h=e.computed(()=>f.value.length),B=e.computed(()=>Math.ceil(h.value/u.value)),$=e.computed(()=>h.value===0?0:(r.value-1)*u.value+1),bl=e.computed(()=>{const y=r.value*u.value;return Math.min(y,h.value)}),pl=e.computed(()=>(h.value!==C.value?a.filteredInfoText:a.infoText).replace("{start}",String($.value)).replace("{end}",String(bl.value)).replace("{total}",String(h.value)).replace("{totalRows}",String(C.value))),hl=e.computed(()=>{const y=["table"];return a.striped&&y.push("table-striped"),a.bordered&&y.push("table-bordered"),a.borderless&&y.push("table-borderless"),a.hover&&y.push("table-hover"),a.small&&y.push("table-sm"),a.variant&&y.push(`table-${a.variant}`),y.join(" ")}),gl=y=>{!a.sortable||y.sortable===!1||(s.value===y.key?c.value=!c.value:(s.value=y.key,c.value=!1),l("update:sortBy",s.value),l("update:sortDesc",c.value))},E=y=>{y<1||y>B.value||(r.value=y,l("update:currentPage",y))},kl=()=>{r.value=1,l("update:perPage",u.value),l("update:currentPage",1)},Bl=(y,g)=>{l("row-clicked",y,g)},Sl=(y,g)=>{const p=y[g.key];return g.formatter?g.formatter(p,y):p},Cl=y=>!a.sortable||y.sortable===!1?"":s.value!==y.key?"⇅":c.value?"↓":"↑",Vl=y=>{const g={...y.thStyle};return a.sortable&&y.sortable!==!1&&(g.cursor="pointer"),g};return(y,g)=>(e.openBlock(),e.createElementBlock("div",ct,[e.createElementVNode("div",mt,[t.searchable?(e.openBlock(),e.createElementBlock("div",ft,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":g[0]||(g[0]=p=>o.value=p),type:"search",class:"form-control",placeholder:t.searchPlaceholder},null,8,ut),[[e.vModelText,o.value]])])):e.createCommentVNode("",!0),t.showPerPage&&t.paginated?(e.openBlock(),e.createElementBlock("div",yt,[e.createElementVNode("div",bt,[g[6]||(g[6]=e.createElementVNode("label",{class:"me-2 mb-0"},"Show",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[1]||(g[1]=p=>u.value=p),class:"form-select form-select-sm",style:{width:"auto"},onChange:kl},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.perPageOptions,p=>(e.openBlock(),e.createElementBlock("option",{key:p,value:p},e.toDisplayString(p),9,pt))),128))],544),[[e.vModelSelect,u.value,void 0,{number:!0}]]),g[7]||(g[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(hl.value)},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,p=>(e.openBlock(),e.createElementBlock("th",{key:p.key,class:e.normalizeClass(p.headerClass),style:e.normalizeStyle(Vl(p)),onClick:V=>gl(p)},[e.createTextVNode(e.toDisplayString(p.label)+" ",1),t.sortable&&p.sortable!==!1?(e.openBlock(),e.createElementBlock("span",gt,e.toDisplayString(Cl(p)),1)):e.createCommentVNode("",!0)],14,ht))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(p,V)=>(e.openBlock(),e.createElementBlock("tr",{key:V,onClick:S=>Bl(p,V),style:{cursor:"pointer"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,S=>(e.openBlock(),e.createElementBlock("td",{key:S.key,class:e.normalizeClass(S.class),style:e.normalizeStyle(S.tdStyle)},[e.renderSlot(y.$slots,`cell(${S.key})`,{item:p,value:p[S.key],index:V},()=>[e.createTextVNode(e.toDisplayString(Sl(p,S)),1)],!0)],6))),128))],8,kt))),128)),k.value.length===0&&t.showEmpty?(e.openBlock(),e.createElementBlock("tr",Bt,[e.createElementVNode("td",{colspan:t.columns.length,class:"text-center"},e.toDisplayString(t.emptyText),9,St)])):e.createCommentVNode("",!0)])],2)],2),e.createElementVNode("div",Ct,[t.showInfo?(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("div",$t,e.toDisplayString(pl.value),1)])):e.createCommentVNode("",!0),t.paginated&&B.value>1?(e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("nav",null,[e.createElementVNode("ul",Et,[e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:r.value===1}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:g[2]||(g[2]=e.withModifiers(p=>E(r.value-1),["prevent"]))}," Previous ")],2),r.value>3?(e.openBlock(),e.createElementBlock("li",xt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:g[3]||(g[3]=e.withModifiers(p=>E(1),["prevent"]))},"1")])):e.createCommentVNode("",!0),r.value>4?(e.openBlock(),e.createElementBlock("li",wt,[...g[8]||(g[8]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.from({length:B.value},(p,V)=>V+1).filter(p=>p>=r.value-2&&p<=r.value+2),p=>(e.openBlock(),e.createElementBlock("li",{key:p,class:e.normalizeClass(["page-item",{active:p===r.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:e.withModifiers(V=>E(p),["prevent"])},e.toDisplayString(p),9,Dt)],2))),128)),r.value<B.value-3?(e.openBlock(),e.createElementBlock("li",Tt,[...g[9]||(g[9]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),r.value<B.value-2?(e.openBlock(),e.createElementBlock("li",zt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:g[4]||(g[4]=e.withModifiers(p=>E(B.value),["prevent"]))},e.toDisplayString(B.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:r.value===B.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:g[5]||(g[5]=e.withModifiers(p=>E(r.value+1),["prevent"]))}," Next ")],2)])])])):e.createCommentVNode("",!0)])]))}}),T=(t,i)=>{const a=t.__vccOpts||t;for(const[l,o]of i)a[l]=o;return a},qt=T(Ft,[["__scopeId","data-v-48221c7b"]]),Mt={class:"mb-3"},Pt=["for"],It={key:0,class:"text-danger"},Lt=["id","type","value","placeholder","disabled","readonly","required","aria-invalid","aria-describedby"],At=["id"],jt={key:2,class:"valid-feedback",style:{display:"block"}},Ot=["id"],vt=e.defineComponent({__name:"VibeFormInput",props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},id:{type:String,required:!0},label:{type:String,default:void 0},placeholder:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},plaintext:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const c=[];return a.plaintext?c.push("form-control-plaintext"):(c.push("form-control"),a.size&&c.push(`form-control-${a.size}`)),o.value==="valid"&&c.push("is-valid"),o.value==="invalid"&&c.push("is-invalid"),c.join(" ")}),d=c=>{const f=c.target,b=a.type==="number"?f.value===""?"":Number(f.value):f.value;l("update:modelValue",b),l("input",c),a.validateOn==="input"&&l("validate")},r=c=>{l("change",c),a.validateOn==="change"&&l("validate")},u=c=>{l("blur",c),a.validateOn==="blur"&&l("validate")},s=c=>{l("focus",c)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",Mt,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",It,"*")):e.createCommentVNode("",!0)],8,Pt)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(n.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly||t.plaintext,required:t.required,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:d,onChange:r,onBlur:u,onFocus:s},null,42,Lt),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,At)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",jt,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Ot)):e.createCommentVNode("",!0)]))}}),Rt={class:"mb-3"},Gt=["for"],Ht={key:0,class:"text-danger"},Qt=["id","value","disabled","required","multiple","size","aria-invalid","aria-describedby"],Ut=["selected"],Wt=["value","disabled"],Yt=["id"],Kt={key:2,class:"valid-feedback",style:{display:"block"}},Jt=["id"],Xt=e.defineComponent({__name:"VibeFormSelect",props:{modelValue:{type:[String,Number,Array],default:""},id:{type:String,required:!0},label:{type:String,default:void 0},options:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},size:{type:String,default:void 0},htmlSize:{type:Number,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},placeholder:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const s=["form-select"];return a.size&&s.push(`form-select-${a.size}`),o.value==="valid"&&s.push("is-valid"),o.value==="invalid"&&s.push("is-invalid"),s.join(" ")}),d=s=>{const c=s.target;let f;a.multiple?f=Array.from(c.selectedOptions).map(k=>k.value):f=c.value,l("update:modelValue",f),l("change",s),a.validateOn==="change"&&l("validate")},r=s=>{l("blur",s),a.validateOn==="blur"&&l("validate")},u=s=>{l("focus",s)};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Rt,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ht,"*")):e.createCommentVNode("",!0)],8,Gt)):e.createCommentVNode("",!0),e.createElementVNode("select",{id:t.id,class:e.normalizeClass(n.value),value:t.modelValue,disabled:t.disabled,required:t.required,multiple:t.multiple,size:t.htmlSize,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:d,onBlur:r,onFocus:u},[t.placeholder&&!t.multiple?(e.openBlock(),e.createElementBlock("option",{key:0,value:"",disabled:"",selected:!t.modelValue},e.toDisplayString(t.placeholder),9,Ut)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,f=>(e.openBlock(),e.createElementBlock("option",{key:f.value,value:f.value,disabled:f.disabled},e.toDisplayString(f.text),9,Wt))),128)),e.renderSlot(s.$slots,"default")],42,Qt),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Yt)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",Kt,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select a valid option."),9,Jt)):e.createCommentVNode("",!0)]))}}),Zt={class:"mb-3"},_t=["for"],ea={key:0,class:"text-danger"},ta=["id","value","placeholder","disabled","readonly","required","rows","maxlength","aria-invalid","aria-describedby"],aa={key:1,class:"form-text"},la=["id"],oa={key:3,class:"valid-feedback",style:{display:"block"}},na=["id"],ia=e.defineComponent({__name:"VibeFormTextarea",props:{modelValue:{type:String,default:""},id:{type:String,required:!0},label:{type:String,default:void 0},placeholder:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},rows:{type:Number,default:3},maxlength:{type:Number,default:void 0},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},showCharCount:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const b=["form-control"];return a.size&&b.push(`form-control-${a.size}`),o.value==="valid"&&b.push("is-valid"),o.value==="invalid"&&b.push("is-invalid"),b.join(" ")}),d=e.computed(()=>a.modelValue?a.modelValue.length:0),r=e.computed(()=>a.maxlength?`${d.value} / ${a.maxlength}`:`${d.value}`),u=b=>{const k=b.target;l("update:modelValue",k.value),l("input",b),a.validateOn==="input"&&l("validate")},s=b=>{l("change",b),a.validateOn==="change"&&l("validate")},c=b=>{l("blur",b),a.validateOn==="blur"&&l("validate")},f=b=>{l("focus",b)};return(b,k)=>(e.openBlock(),e.createElementBlock("div",Zt,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ea,"*")):e.createCommentVNode("",!0)],8,_t)):e.createCommentVNode("",!0),e.createElementVNode("textarea",{id:t.id,class:e.normalizeClass(n.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,rows:t.rows,maxlength:t.maxlength,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:u,onChange:s,onBlur:c,onFocus:f},null,42,ta),t.showCharCount?(e.openBlock(),e.createElementBlock("div",aa,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage&&!t.showCharCount?(e.openBlock(),e.createElementBlock("div",{key:2,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,la)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",oa,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:4,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,na)):e.createCommentVNode("",!0)]))}}),ra={class:"mb-3"},da=["for"],sa={key:0,class:"text-danger"},ca=["disabled"],ma=["id","value","disabled","readonly","required","min","max","step","aria-invalid","aria-describedby"],fa=["disabled"],ua=["id"],ya={key:2,class:"valid-feedback",style:{display:"block"}},ba=["id"],pa=T(e.defineComponent({__name:"VibeFormSpinbutton",props:{modelValue:{type:Number,default:0},id:{type:String,required:!0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:Number,default:1},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},wrap:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change","increment","decrement"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const h=["form-control"];return a.size&&h.push(`form-control-${a.size}`),o.value==="valid"&&h.push("is-valid"),o.value==="invalid"&&h.push("is-invalid"),h.join(" ")}),d=e.computed(()=>{const h=["input-group"];return a.size&&h.push(`input-group-${a.size}`),a.vertical&&h.push("input-group-vertical"),h.join(" ")}),r=e.computed(()=>a.disabled||a.readonly?!1:a.min===void 0||a.wrap?!0:a.modelValue>a.min),u=e.computed(()=>a.disabled||a.readonly?!1:a.max===void 0||a.wrap?!0:a.modelValue<a.max),s=h=>{const B=h.target;let $=B.value===""?0:Number(B.value);a.min!==void 0&&$<a.min&&($=a.min),a.max!==void 0&&$>a.max&&($=a.max),l("update:modelValue",$),l("input",h),a.validateOn==="input"&&l("validate")},c=h=>{l("change",h),a.validateOn==="change"&&l("validate")},f=h=>{l("blur",h),a.validateOn==="blur"&&l("validate")},b=h=>{l("focus",h)},k=()=>{if(!u.value)return;let h=a.modelValue+a.step;a.max!==void 0&&h>a.max&&(h=a.wrap?a.min??0:a.max),l("update:modelValue",h),l("increment",h),a.validateOn==="change"&&l("validate")},C=()=>{if(!r.value)return;let h=a.modelValue-a.step;a.min!==void 0&&h<a.min&&(h=a.wrap?a.max??0:a.min),l("update:modelValue",h),l("decrement",h),a.validateOn==="change"&&l("validate")};return(h,B)=>(e.openBlock(),e.createElementBlock("div",ra,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",sa,"*")):e.createCommentVNode("",!0)],8,da)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(d.value)},[e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!r.value,onClick:C,"aria-label":"Decrement"},[...B[0]||(B[0]=[e.createElementVNode("span",{"aria-hidden":"true"},"−",-1)])],8,ca),e.createElementVNode("input",{id:t.id,type:"number",class:e.normalizeClass(n.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,step:t.step,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:s,onChange:c,onBlur:f,onFocus:b},null,42,ma),e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!u.value,onClick:k,"aria-label":"Increment"},[...B[1]||(B[1]=[e.createElementVNode("span",{"aria-hidden":"true"},"+",-1)])],8,fa)],2),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,ua)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",ya,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,ba)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-e706d3dc"]]),ha={class:"mb-3"},ga=["for"],ka={key:0,class:"text-danger"},Ba=["id","type","value","disabled","readonly","required","min","max","aria-invalid","aria-describedby"],Sa=["id"],Ca={key:2,class:"valid-feedback",style:{display:"block"}},Va=["id"],$a=e.defineComponent({__name:"VibeFormDatepicker",props:{modelValue:{type:String,default:""},id:{type:String,required:!0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},min:{type:String,default:void 0},max:{type:String,default:void 0},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},type:{type:String,default:"date"}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const c=["form-control"];return a.size&&c.push(`form-control-${a.size}`),o.value==="valid"&&c.push("is-valid"),o.value==="invalid"&&c.push("is-invalid"),c.join(" ")}),d=c=>{const f=c.target;l("update:modelValue",f.value),l("input",c),a.validateOn==="input"&&l("validate")},r=c=>{l("change",c),a.validateOn==="change"&&l("validate")},u=c=>{l("blur",c),a.validateOn==="blur"&&l("validate")},s=c=>{l("focus",c)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",ha,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ka,"*")):e.createCommentVNode("",!0)],8,ga)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(n.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:d,onChange:r,onBlur:u,onFocus:s},null,42,Ba),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Sa)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",Ca,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid date."),9,Va)):e.createCommentVNode("",!0)]))}}),Na=["id","checked","value","disabled","required","indeterminate","aria-invalid","aria-describedby"],Ea=["for"],xa={key:0,class:"text-danger"},wa=["id"],Da={key:2,class:"valid-feedback",style:{display:"block"}},Ta=["id"],za=e.defineComponent({__name:"VibeFormCheckbox",props:{modelValue:{type:[Boolean,Array],default:!1},id:{type:String,required:!0},label:{type:String,default:void 0},value:{type:[String,Number,Boolean],default:!0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},indeterminate:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const f=["form-check-input"];return o.value==="valid"&&f.push("is-valid"),o.value==="invalid"&&f.push("is-invalid"),f.join(" ")}),d=e.computed(()=>{const f=["form-check"];return a.inline&&f.push("form-check-inline"),f.join(" ")}),r=e.computed(()=>Array.isArray(a.modelValue)?a.modelValue.includes(a.value):a.modelValue===a.value||a.modelValue===!0),u=f=>{const b=f.target;let k;if(Array.isArray(a.modelValue))if(k=[...a.modelValue],b.checked)k.includes(a.value)||k.push(a.value);else{const C=k.indexOf(a.value);C>-1&&k.splice(C,1)}else k=b.checked;l("update:modelValue",k),l("change",f),a.validateOn==="change"&&l("validate")},s=f=>{l("blur",f),a.validateOn==="blur"&&l("validate")},c=f=>{l("focus",f)};return(f,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value)},[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(n.value),checked:r.value,value:t.value,disabled:t.disabled,required:t.required,indeterminate:t.indeterminate,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:u,onBlur:s,onFocus:c},null,42,Na),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",xa,"*")):e.createCommentVNode("",!0)],8,Ea)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,wa)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",Da,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"You must check this box."),9,Ta)):e.createCommentVNode("",!0)],2))}}),Fa=["id","checked","value","name","disabled","required","aria-invalid","aria-describedby"],qa=["for"],Ma={key:0,class:"text-danger"},Pa=["id"],Ia={key:2,class:"valid-feedback",style:{display:"block"}},La=["id"],Aa=e.defineComponent({__name:"VibeFormRadio",props:{modelValue:{type:[String,Number,Boolean],default:void 0},id:{type:String,required:!0},label:{type:String,default:void 0},value:{type:[String,Number,Boolean],required:!0},name:{type:String,required:!0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const f=["form-check-input"];return o.value==="valid"&&f.push("is-valid"),o.value==="invalid"&&f.push("is-invalid"),f.join(" ")}),d=e.computed(()=>{const f=["form-check"];return a.inline&&f.push("form-check-inline"),f.join(" ")}),r=e.computed(()=>a.modelValue===a.value),u=f=>{f.target.checked&&l("update:modelValue",a.value),l("change",f),a.validateOn==="change"&&l("validate")},s=f=>{l("blur",f),a.validateOn==="blur"&&l("validate")},c=f=>{l("focus",f)};return(f,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value)},[e.createElementVNode("input",{id:t.id,type:"radio",class:e.normalizeClass(n.value),checked:r.value,value:t.value,name:t.name,disabled:t.disabled,required:t.required,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:u,onBlur:s,onFocus:c},null,42,Fa),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ma,"*")):e.createCommentVNode("",!0)],8,qa)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Pa)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",Ia,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select an option."),9,La)):e.createCommentVNode("",!0)],2))}}),ja={class:"form-check form-switch"},Oa=["id","checked","disabled","required","aria-invalid","aria-describedby"],va=["for"],Ra={key:0,class:"text-danger"},Ga=["id"],Ha={key:2,class:"valid-feedback",style:{display:"block"}},Qa=["id"],Ua=e.defineComponent({__name:"VibeFormSwitch",props:{modelValue:{type:Boolean,default:!1},id:{type:String,required:!0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>a.validationState),n=e.computed(()=>{const s=["form-check-input"];return o.value==="valid"&&s.push("is-valid"),o.value==="invalid"&&s.push("is-invalid"),s.join(" ")}),d=s=>{const c=s.target;l("update:modelValue",c.checked),l("change",s),a.validateOn==="change"&&l("validate")},r=s=>{l("blur",s),a.validateOn==="blur"&&l("validate")},u=s=>{l("focus",s)};return(s,c)=>(e.openBlock(),e.createElementBlock("div",ja,[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(n.value),checked:t.modelValue,disabled:t.disabled,required:t.required,"aria-invalid":o.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,role:"switch",onChange:d,onBlur:r,onFocus:u},null,42,Oa),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ra,"*")):e.createCommentVNode("",!0)],8,va)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Ga)):e.createCommentVNode("",!0),o.value==="valid"?(e.openBlock(),e.createElementBlock("div",Ha,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),o.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"You must toggle this switch."),9,Qa)):e.createCommentVNode("",!0)]))}}),Wa=["for"],Ya={key:0,class:"text-danger"},Ka=["id"],Ja={key:1,class:"valid-feedback",style:{display:"block"}},Xa=["id"],Za=["for"],_a={key:0,class:"text-danger"},el=["id"],tl={key:2,class:"valid-feedback",style:{display:"block"}},al=["id"],ll=e.defineComponent({__name:"VibeFormGroup",props:{label:{type:String,default:void 0},labelFor:{type:String,default:void 0},required:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},helpText:{type:String,default:void 0},floating:{type:Boolean,default:!1},row:{type:Boolean,default:!1},labelCols:{type:[Number,String],default:void 0},labelAlign:{type:String,default:void 0}},setup(t){const i=t,a=e.computed(()=>{const d=[];return i.floating?d.push("form-floating"):i.row?d.push("row","mb-3"):d.push("mb-3"),d.join(" ")}),l=e.computed(()=>{const d=[];return i.floating?d.push("form-label"):i.row?(d.push("col-form-label"),i.labelCols&&d.push(`col-sm-${i.labelCols}`),i.labelAlign&&d.push(`text-${i.labelAlign}`)):d.push("form-label"),d.join(" ")}),o=e.computed(()=>i.row&&i.labelCols?`col-sm-${12-Number(i.labelCols)}`:""),n=e.computed(()=>i.labelFor?`${i.labelFor}-feedback`:void 0);return(d,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(a.value)},[t.label&&!t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.labelFor,class:e.normalizeClass(l.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ya,"*")):e.createCommentVNode("",!0)],10,Wa)):e.createCommentVNode("",!0),t.row&&t.labelCols?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(o.value)},[e.renderSlot(d.$slots,"default"),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:0,id:n.value,class:"form-text"},e.toDisplayString(t.helpText),9,Ka)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ja,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:2,id:n.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Xa)):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.renderSlot(d.$slots,"default"),t.label&&t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.labelFor,class:e.normalizeClass(l.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",_a,"*")):e.createCommentVNode("",!0)],10,Za)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:n.value,class:"form-text"},e.toDisplayString(t.helpText),9,el)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",tl,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:n.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,al)):e.createCommentVNode("",!0)],64))],2))}}),ol={class:"mb-3"},nl=["for"],il={key:0,class:"text-danger"},rl={key:1,class:"alert alert-warning",role:"alert"},dl=["id"],sl=["id"],cl={key:4,class:"valid-feedback",style:{display:"block"}},ml=["id"],fl=T(e.defineComponent({__name:"VibeFormWysiwyg",props:{modelValue:{type:String,default:""},id:{type:String,required:!0},label:{type:String,default:void 0},placeholder:{type:String,default:"Write something..."},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},theme:{type:String,default:"snow"},toolbar:{type:[Array,String,Boolean],default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},height:{type:String,default:"200px"}},emits:["update:modelValue","validate","blur","focus","change","ready"],setup(t,{emit:i}){const a=t,l=i,o=e.ref(null),n=e.ref(null),d=e.ref(!1),r=e.ref(null),u=e.computed(()=>a.validationState),s=e.computed(()=>{const b=["vibe-wysiwyg-container"];return u.value==="valid"&&b.push("is-valid"),u.value==="invalid"&&b.push("is-invalid"),a.disabled&&b.push("disabled"),b.join(" ")}),c=[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]}],["link","image"],["clean"]],f=()=>a.toolbar===!1?!1:a.toolbar===!0||a.toolbar===void 0?c:a.toolbar;return e.onMounted(async()=>{try{const b=await import("quill"),k=b.default||b;if(await import("quill/dist/quill.snow.css"),o.value){const C={theme:a.theme,placeholder:a.placeholder,readOnly:a.readonly||a.disabled,modules:{toolbar:f()}};n.value=new k(o.value,C),a.modelValue&&(n.value.root.innerHTML=a.modelValue),n.value.on("text-change",()=>{const h=n.value.root.innerHTML,B=n.value.getText().trim().length===0;l("update:modelValue",B?"":h),l("change"),a.validateOn==="change"&&l("validate")}),n.value.root.addEventListener("blur",()=>{l("blur"),a.validateOn==="blur"&&l("validate")}),n.value.root.addEventListener("focus",()=>{l("focus")}),d.value=!0,l("ready",n.value)}}catch(b){console.error("Failed to load Quill editor:",b),r.value="Failed to load WYSIWYG editor. Please install quill: npm install quill",d.value=!1}}),e.onBeforeUnmount(()=>{n.value&&(n.value=null)}),e.watch(()=>a.modelValue,b=>{n.value&&n.value.root.innerHTML!==b&&(n.value.root.innerHTML=b||"")}),e.watch(()=>a.disabled,b=>{n.value&&n.value.enable(!b)}),e.watch(()=>a.readonly,b=>{n.value&&n.value.enable(!b)}),(b,k)=>(e.openBlock(),e.createElementBlock("div",ol,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",il,"*")):e.createCommentVNode("",!0)],8,nl)):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("div",rl,e.toDisplayString(r.value),1)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(s.value),style:e.normalizeStyle({minHeight:t.height})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:o,id:t.id},null,8,dl)],6)),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,sl)):e.createCommentVNode("",!0),u.value==="valid"?(e.openBlock(),e.createElementBlock("div",cl,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),u.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:5,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide valid content."),9,ml)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-2eb8f4ff"]]);function ul(t=""){const i=e.ref(t),a=e.ref(null),l=e.ref(""),o=e.ref(!1),n=e.ref(!1),d=e.ref(!1),r=async k=>{if(!k)return a.value=null,l.value="",{valid:!0};d.value=!0;try{const C=Array.isArray(k)?k:[{validator:k}];for(const h of C){const B=await h.validator(i.value);if(B===!1||typeof B=="string")return a.value="invalid",l.value=typeof B=="string"?B:h.message||"Invalid value",d.value=!1,{valid:!1,message:l.value}}return a.value="valid",l.value="",d.value=!1,{valid:!0}}catch{return a.value="invalid",l.value="Validation error occurred",d.value=!1,{valid:!1,message:l.value}}},u=()=>{i.value=t,a.value=null,l.value="",o.value=!1,n.value=!1,d.value=!1},s=()=>{n.value=!0},c=()=>{o.value=!0},f=e.computed(()=>a.value==="valid"),b=e.computed(()=>a.value==="invalid");return{value:i,validationState:a,validationMessage:l,isDirty:o,isTouched:n,isValidating:d,isValid:f,isInvalid:b,validate:r,reset:u,markAsTouched:s,markAsDirty:c}}const yl={required:(t="This field is required")=>({validator:i=>Array.isArray(i)?i.length>0||t:typeof i=="string"?i.trim().length>0||t:i!=null&&i!==""||t,message:t}),email:(t="Please enter a valid email address")=>({validator:i=>i?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i)||t:!0,message:t}),minLength:(t,i)=>({validator:a=>a?a.length>=t||i||`Minimum length is ${t} characters`:!0,message:i}),maxLength:(t,i)=>({validator:a=>a?a.length<=t||i||`Maximum length is ${t} characters`:!0,message:i}),min:(t,i)=>({validator:a=>a==null||a===""?!0:Number(a)>=t||i||`Minimum value is ${t}`,message:i}),max:(t,i)=>({validator:a=>a==null||a===""?!0:Number(a)<=t||i||`Maximum value is ${t}`,message:i}),pattern:(t,i="Invalid format")=>({validator:a=>a?t.test(a)||i:!0,message:i}),url:(t="Please enter a valid URL")=>({validator:i=>{if(!i)return!0;try{return new URL(i),!0}catch{return t}},message:t}),async:t=>({validator:t})};m.VibeAccordion=Ce,m.VibeAccordionItem=A,m.VibeAlert=v,m.VibeBadge=R,m.VibeBreadcrumb=ae,m.VibeBreadcrumbItem=I,m.VibeButton=G,m.VibeButtonGroup=Q,m.VibeCard=Z,m.VibeCardBody=F,m.VibeCardFooter=q,m.VibeCardHeader=z,m.VibeCardImg=w,m.VibeCardText=P,m.VibeCardTitle=M,m.VibeCarousel=ot,m.VibeCarouselSlide=O,m.VibeCloseButton=W,m.VibeCollapse=Ve,m.VibeDataTable=qt,m.VibeDropdown=xe,m.VibeDropdownItem=j,m.VibeFormCheckbox=za,m.VibeFormDatepicker=$a,m.VibeFormGroup=ll,m.VibeFormInput=vt,m.VibeFormRadio=Aa,m.VibeFormSelect=Xt,m.VibeFormSpinbutton=pa,m.VibeFormSwitch=Ua,m.VibeFormTextarea=ia,m.VibeFormWysiwyg=fl,m.VibeListGroup=fe,m.VibeListGroupItem=L,m.VibeModal=Me,m.VibeNav=oe,m.VibeNavItem=D,m.VibeNavbar=ne,m.VibeNavbarBrand=ie,m.VibeNavbarNav=se,m.VibeNavbarToggle=de,m.VibeOffcanvas=je,m.VibePagination=me,m.VibePaginationItem=x,m.VibePlaceholder=J,m.VibePopover=dt,m.VibeProgress=ue,m.VibeProgressBar=be,m.VibeScrollspy=st,m.VibeSpinner=K,m.VibeToast=He,m.VibeTooltip=it,m.useFormValidation=ul,m.validators=yl,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(f,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(f=typeof globalThis<"u"?globalThis:f||self,e(f.VibeUI={},f.Vue))})(this,(function(f,e){"use strict";const O=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:r}){const a=t,o=r,l=e.computed({get:()=>a.modelValue,set:d=>o("update:modelValue",d)}),n=()=>{try{l.value=!1}catch(d){o("component-error",{message:"Dismiss failed",componentName:"VibeAlert",originalError:d})}};return(d,i)=>l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`alert alert-${t.variant}`),role:"alert"},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.dismissable?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-close",onClick:n,"aria-label":"Close"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),X=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:r}){const a=t,o=e.computed(()=>{const l=["badge",`bg-${a.variant}`];return a.pill&&l.push("rounded-pill"),l.join(" ")});return(l,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),R=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:r}){const a=t,o=r,l=e.computed(()=>a.href?"a":a.to?"router-link":"button"),n=e.computed(()=>{const i=["btn"];return a.outline?i.push(`btn-outline-${a.variant}`):i.push(`btn-${a.variant}`),a.size&&i.push(`btn-${a.size}`),a.active&&i.push("active"),i.join(" ")}),d=i=>{a.disabled||o("click",i)};return(i,m)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(n.value),type:t.href||t.to?void 0:t.type,href:t.href,to:t.to,disabled:t.disabled,"aria-disabled":t.disabled,onClick:d},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","type","href","to","disabled","aria-disabled"]))}}),Y=["role","aria-label"],G=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:r}){const a=t,o=e.computed(()=>{const l=[a.vertical?"btn-group-vertical":"btn-group"];return a.size&&l.push(`btn-group-${a.size}`),l.join(" ")});return(l,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),role:t.role,"aria-label":t.ariaLabel},[e.renderSlot(l.$slots,"default")],10,Y))}}),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:r}){const a=t,o=r,l=n=>{a.disabled||o("click",n)};return(n,d)=>(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:r}){const a=t,o=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,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value),role:"status"},{default:e.withCtx(()=>[e.createElementVNode("span",Q,e.toDisplayString(t.label),1)]),_:1},8,["class"]))}}),W=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:r}){const a=t,o=e.computed(()=>{const d=["placeholder"];return a.variant&&d.push(`bg-${a.variant}`),a.size&&d.push(`placeholder-${a.size}`),d.join(" ")}),l=e.computed(()=>{if(a.animation)return`placeholder-${a.animation}`}),n=e.computed(()=>{if(a.width)return{width:typeof a.width=="number"?`${a.width}%`:a.width}});return(d,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(o.value),style:e.normalizeStyle(n.value)},[e.renderSlot(d.$slots,"default")],6)]),_:3},8,["class"]))}}),J=e.defineComponent({__name:"VibeContainer",props:{fluid:{type:[Boolean,String],default:!1},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>a.fluid===!1?"container":a.fluid===!0?"container-fluid":`container-${a.fluid}`);return(l,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),Z=e.defineComponent({__name:"VibeRow",props:{tag:{type:String,default:"div"},gutters:{type:Number,default:void 0},guttersX:{type:Number,default:void 0},guttersY:{type:Number,default:void 0},guttersSm:{type:Number,default:void 0},guttersMd:{type:Number,default:void 0},guttersLg:{type:Number,default:void 0},guttersXl:{type:Number,default:void 0},guttersXxl:{type:Number,default:void 0},guttersXSm:{type:Number,default:void 0},guttersXMd:{type:Number,default:void 0},guttersXLg:{type:Number,default:void 0},guttersXXl:{type:Number,default:void 0},guttersXXxl:{type:Number,default:void 0},guttersYSm:{type:Number,default:void 0},guttersYMd:{type:Number,default:void 0},guttersYLg:{type:Number,default:void 0},guttersYXl:{type:Number,default:void 0},guttersYXxl:{type:Number,default:void 0},rowCols:{type:Number,default:void 0},rowColsSm:{type:Number,default:void 0},rowColsMd:{type:Number,default:void 0},rowColsLg:{type:Number,default:void 0},rowColsXl:{type:Number,default:void 0},rowColsXxl:{type:Number,default:void 0},alignItems:{type:String,default:void 0},justifyContent:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=["row"];a.gutters!==void 0&&l.push(`g-${a.gutters}`),a.guttersX!==void 0&&l.push(`gx-${a.guttersX}`),a.guttersY!==void 0&&l.push(`gy-${a.guttersY}`);const n=["sm","md","lg","xl","xxl"];return n.forEach(d=>{const i=d.charAt(0).toUpperCase()+d.slice(1),m=`gutters${i}`;a[m]!==void 0&&l.push(`g-${d}-${a[m]}`);const s=`guttersX${i}`;a[s]!==void 0&&l.push(`gx-${d}-${a[s]}`);const c=`guttersY${i}`;a[c]!==void 0&&l.push(`gy-${d}-${a[c]}`)}),a.rowCols!==void 0&&l.push(`row-cols-${a.rowCols}`),n.forEach(d=>{const i=`rowCols${d.charAt(0).toUpperCase()+d.slice(1)}`;a[i]!==void 0&&l.push(`row-cols-${d}-${a[i]}`)}),a.alignItems&&l.push(`align-items-${a.alignItems}`),a.justifyContent&&l.push(`justify-content-${a.justifyContent}`),l.join(" ")});return(l,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),_=e.defineComponent({__name:"VibeCol",props:{tag:{type:String,default:"div"},cols:{type:[Number,String,Boolean],default:void 0},sm:{type:[Number,String,Boolean],default:void 0},md:{type:[Number,String,Boolean],default:void 0},lg:{type:[Number,String,Boolean],default:void 0},xl:{type:[Number,String,Boolean],default:void 0},xxl:{type:[Number,String,Boolean],default:void 0},offset:{type:Number,default:void 0},offsetSm:{type:Number,default:void 0},offsetMd:{type:Number,default:void 0},offsetLg:{type:Number,default:void 0},offsetXl:{type:Number,default:void 0},offsetXxl:{type:Number,default:void 0},order:{type:[Number,String],default:void 0},orderSm:{type:[Number,String],default:void 0},orderMd:{type:[Number,String],default:void 0},orderLg:{type:[Number,String],default:void 0},orderXl:{type:[Number,String],default:void 0},orderXxl:{type:[Number,String],default:void 0},alignSelf:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=[];return a.cols!==void 0||a.sm!==void 0||a.md!==void 0||a.lg!==void 0||a.xl!==void 0||a.xxl!==void 0?(a.cols===!0?l.push("col"):a.cols==="auto"?l.push("col-auto"):a.cols&&l.push(`col-${a.cols}`),[{name:"sm",value:a.sm},{name:"md",value:a.md},{name:"lg",value:a.lg},{name:"xl",value:a.xl},{name:"xxl",value:a.xxl}].forEach(({name:i,value:m})=>{m===!0?l.push(`col-${i}`):m==="auto"?l.push(`col-${i}-auto`):m!==void 0&&l.push(`col-${i}-${m}`)})):l.push("col"),a.offset!==void 0&&l.push(`offset-${a.offset}`),a.offsetSm!==void 0&&l.push(`offset-sm-${a.offsetSm}`),a.offsetMd!==void 0&&l.push(`offset-md-${a.offsetMd}`),a.offsetLg!==void 0&&l.push(`offset-lg-${a.offsetLg}`),a.offsetXl!==void 0&&l.push(`offset-xl-${a.offsetXl}`),a.offsetXxl!==void 0&&l.push(`offset-xxl-${a.offsetXxl}`),a.order!==void 0&&l.push(`order-${a.order}`),a.orderSm!==void 0&&l.push(`order-sm-${a.orderSm}`),a.orderMd!==void 0&&l.push(`order-md-${a.orderMd}`),a.orderLg!==void 0&&l.push(`order-lg-${a.orderLg}`),a.orderXl!==void 0&&l.push(`order-xl-${a.orderXl}`),a.orderXxl!==void 0&&l.push(`order-xxl-${a.orderXxl}`),a.alignSelf&&l.push(`align-self-${a.alignSelf}`),l.join(" ")});return(l,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),T=e.defineComponent({__name:"VibeCardHeader",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:r}){return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-header"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),v=e.defineComponent({__name:"VibeCardBody",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:r}){return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-body"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),M=e.defineComponent({__name:"VibeCardFooter",props:{tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:r}){return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-footer"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),ee=["src","alt"],w=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:r}){const a=t,o=a.top?"card-img-top":a.bottom?"card-img-bottom":"card-img";return(l,n)=>(e.openBlock(),e.createElementBlock("img",{src:t.src,alt:t.alt,class:e.normalizeClass(e.unref(o))},null,10,ee))}}),F=e.defineComponent({__name:"VibeCardTitle",props:{tag:{type:String,default:"h5"}},emits:["component-error"],setup(t,{emit:r}){return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-title"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),q=e.defineComponent({__name:"VibeCardText",props:{tag:{type:String,default:"p"}},emits:["component-error"],setup(t,{emit:r}){return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"card-text"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3}))}}),te=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:r}){const a=t,o=e.useSlots(),l=e.computed(()=>{const i=["card"];return a.variant&&i.push(`bg-${a.variant}`),a.border&&i.push(`border-${a.border}`),a.textVariant&&i.push(`text-${a.textVariant}`),i.join(" ")}),n=e.computed(()=>!!(a.title||a.body||a.header||a.footer||a.headerImage||a.footerImage)),d=e.computed(()=>!!(o.default||o.header||o.footer||o.body));return(i,m)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[n.value&&!d.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.headerImage?(e.openBlock(),e.createBlock(w,{key:0,top:"",src:t.headerImage,alt:t.headerImageAlt},null,8,["src","alt"])):e.createCommentVNode("",!0),t.header?(e.openBlock(),e.createBlock(T,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.header),1)]),_:1})):e.createCommentVNode("",!0),t.title||t.body?(e.openBlock(),e.createBlock(v,{key:2},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createBlock(F,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:1})):e.createCommentVNode("",!0),t.body?(e.openBlock(),e.createBlock(q,{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(M,{key:3},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.footer),1)]),_:1})):e.createCommentVNode("",!0),t.footerImage?(e.openBlock(),e.createBlock(w,{key:4,bottom:"",src:t.footerImage,alt:t.footerImageAlt},null,8,["src","alt"])):e.createCommentVNode("",!0)],64)):e.renderSlot(i.$slots,"default",{key:1})]),_:3},8,["class"]))}}),ae=["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:r}){const a=t,o=a.href?"a":a.to?"router-link":"span";return(l,n)=>(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(o)),{href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["href","to"]))],10,ae))}}),le=["aria-label"],oe={class:"breadcrumb"},ne=e.defineComponent({__name:"VibeBreadcrumb",props:{ariaLabel:{type:String,default:"breadcrumb"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=e.useSlots();return(o,l)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ol",oe,[t.items&&t.items.length>0&&!e.unref(a).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(n,d)=>(e.openBlock(),e.createBlock(P,{key:d,href:n.href,to:n.to,active:n.active},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.text),1)]),_:2},1032,["href","to","active"]))),128)):e.renderSlot(o.$slots,"default",{key:1})])],8,le))}}),ie=["role"],z=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},tab:{type:Boolean,default:!1},target:{type:String,default:void 0}},emits:["click","component-error"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.tab&&!a.href&&!a.to?"button":a.href?"a":a.to?"router-link":"a"),n=e.computed(()=>{const i=["nav-link"];return a.active&&i.push("active"),a.disabled&&i.push("disabled"),i.join(" ")}),d=i=>{a.disabled||o("click",i)};return(i,m)=>(e.openBlock(),e.createElementBlock("li",{class:"nav-item",role:t.tab?"presentation":void 0},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(n.value),href:t.href,to:t.to,type:l.value==="button"?"button":void 0,"data-bs-toggle":t.tab?"tab":void 0,"data-bs-target":t.tab&&t.target?t.target:void 0,role:t.tab?"tab":void 0,"aria-current":t.active?"page":void 0,"aria-disabled":t.disabled,"aria-selected":t.tab?t.active:void 0,onClick:d},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","href","to","type","data-bs-toggle","data-bs-target","role","aria-current","aria-disabled","aria-selected"]))],8,ie))}}),re=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:r}){const a=t,o=e.useSlots(),l=e.computed(()=>{const n=["nav"];return a.tabs&&n.push("nav-tabs"),a.pills&&n.push("nav-pills"),a.fill&&n.push("nav-fill"),a.justified&&n.push("nav-justified"),a.vertical&&n.push("flex-column"),n.join(" ")});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[t.items&&t.items.length>0&&!e.unref(o).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(i,m)=>(e.openBlock(),e.createBlock(z,{key:m,href:i.href,to:i.to,active:i.active,disabled:i.disabled},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.text),1)]),_:2},1032,["href","to","active","disabled"]))),128)):e.renderSlot(n.$slots,"default",{key:1})]),_:3},8,["class"]))}}),de=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:r}){const a=t,o=e.computed(()=>{const n=["navbar"];return a.expand===!0?n.push("navbar-expand"):typeof a.expand=="string"&&n.push(`navbar-expand-${a.expand}`),a.variant==="dark"||a.variant==="light"?n.push(`navbar-${a.variant}`):n.push(`bg-${a.variant}`),a.position&&n.push(a.position),n.join(" ")}),l=e.computed(()=>{if(a.container!==!1)return a.container===!0?"container-fluid":`container-${a.container}`});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(l.value)},[e.renderSlot(n.$slots,"default")],2)):e.renderSlot(n.$slots,"default",{key:1})]),_:3},8,["class"]))}}),se=e.defineComponent({__name:"VibeNavbarBrand",props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=a.href?"a":a.to?"router-link":"span";return(l,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o)),{class:"navbar-brand",href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["href","to"]))}}),ce=["data-bs-target","aria-controls","aria-label"],me=e.defineComponent({__name:"VibeNavbarToggle",props:{target:{type:String,required:!0},ariaLabel:{type:String,default:"Toggle navigation"}},emits:["component-error"],setup(t,{emit:r}){return(a,o)=>(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},[...o[0]||(o[0]=[e.createElementVNode("span",{class:"navbar-toggler-icon"},null,-1)])],8,ce))}}),fe=e.defineComponent({__name:"VibeNavbarNav",props:{tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=e.useSlots();return(o,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,(n,d)=>(e.openBlock(),e.createBlock(z,{key:d,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}))}}),E=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:r}){const a=t,o=r,l=e.computed(()=>a.href?"a":a.to?"router-link":"button"),n=d=>{a.disabled||o("click",d)};return(d,i)=>(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:n},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3},8,["href","to","type","disabled","aria-current","aria-disabled"]))],2))}}),ue=["aria-label"],ye=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:r}){const a=t,o=r,l=e.useSlots(),n=e.computed(()=>{const m=["pagination"];return a.size&&m.push(`pagination-${a.size}`),m.join(" ")}),d=e.computed(()=>a.totalPages?Array.from({length:a.totalPages},(m,s)=>s+1):[]),i=m=>{m>=1&&m<=a.totalPages&&o("page-click",m)};return(m,s)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ul",{class:e.normalizeClass(n.value)},[t.totalPages&&!e.unref(l).default?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.showPrevNext?(e.openBlock(),e.createBlock(E,{key:0,disabled:t.currentPage===1,onClick:s[0]||(s[0]=c=>i(t.currentPage-1))},{default:e.withCtx(()=>[...s[2]||(s[2]=[e.createTextVNode(" Previous ",-1)])]),_:1},8,["disabled"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,c=>(e.openBlock(),e.createBlock(E,{key:c,active:c===t.currentPage,onClick:u=>i(c)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c),1)]),_:2},1032,["active","onClick"]))),128)),t.showPrevNext?(e.openBlock(),e.createBlock(E,{key:1,disabled:t.currentPage===t.totalPages,onClick:s[1]||(s[1]=c=>i(t.currentPage+1))},{default:e.withCtx(()=>[...s[3]||(s[3]=[e.createTextVNode(" Next ",-1)])]),_:1},8,["disabled"])):e.createCommentVNode("",!0)],64)):e.renderSlot(m.$slots,"default",{key:1})],2)],8,ue))}}),pe=e.defineComponent({__name:"VibeTabContent",props:{id:{type:String,default:void 0},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:r}){return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:"tab-content"},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["id"]))}}),be=e.defineComponent({__name:"VibeTabPane",props:{id:{type:String,required:!0},active:{type:Boolean,default:!1},fade:{type:Boolean,default:!0},tag:{type:String,default:"div"},ariaLabelledby:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=["tab-pane"];return a.fade&&l.push("fade"),a.active&&l.push("show","active"),l.join(" ")});return(l,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:e.normalizeClass(o.value),role:"tabpanel","aria-labelledby":t.ariaLabelledby,tabindex:"0"},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["id","class","aria-labelledby"]))}}),L=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:r}){const a=t,o=r,l=e.computed(()=>a.href?"a":a.to?"router-link":a.action?"button":a.tag),n=e.computed(()=>{const i=["list-group-item"];return a.active&&i.push("active"),a.disabled&&i.push("disabled"),a.variant&&i.push(`list-group-item-${a.variant}`),(a.action||a.href||a.to)&&i.push("list-group-item-action"),i.join(" ")}),d=i=>{a.disabled||o("click",i)};return(i,m)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(n.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:d},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","href","to","type","disabled","aria-disabled","aria-current"]))}}),ge=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:r}){const a=t,o=e.useSlots(),l=e.computed(()=>{const n=["list-group"];return a.flush&&n.push("list-group-flush"),a.numbered&&n.push("list-group-numbered"),a.horizontal===!0?n.push("list-group-horizontal"):typeof a.horizontal=="string"&&n.push(`list-group-horizontal-${a.horizontal}`),n.join(" ")});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[t.items&&t.items.length>0&&!e.unref(o).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(i,m)=>(e.openBlock(),e.createBlock(L,{key:m,href:i.href,to:i.to,active:i.active,disabled:i.disabled,variant:i.variant},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.text),1)]),_:2},1032,["href","to","active","disabled","variant"]))),128)):e.renderSlot(n.$slots,"default",{key:1})]),_:3},8,["class"]))}}),he=e.defineComponent({__name:"VibeProgress",props:{height:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{if(a.height)return{height:a.height}});return(l,n)=>(e.openBlock(),e.createElementBlock("div",{class:"progress",style:e.normalizeStyle(o.value)},[e.renderSlot(l.$slots,"default")],4))}}),ke=["aria-valuenow","aria-valuemax"],Be=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:r}){const a=t,o=e.computed(()=>{const d=["progress-bar"];return a.variant&&d.push(`bg-${a.variant}`),(a.striped||a.animated)&&d.push("progress-bar-striped"),a.animated&&d.push("progress-bar-animated"),d.join(" ")}),l=e.computed(()=>({width:`${Math.min(100,Math.max(0,a.value/a.max*100))}%`})),n=e.computed(()=>a.label?a.label:a.showValue?`${a.value}%`:"");return(d,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),style:e.normalizeStyle(l.value),role:"progressbar","aria-valuenow":t.value,"aria-valuemin":0,"aria-valuemax":t.max},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),e.renderSlot(d.$slots,"default")],14,ke))}}),Se={class:"accordion-item"},Ce={class:"accordion-header"},Ve=["data-bs-target","aria-expanded","aria-controls"],$e=["id","data-bs-parent"],Ne={class:"accordion-body"},I=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:r}){const a=t,o=e.computed(()=>a.show?"accordion-collapse collapse show":"accordion-collapse collapse");return(l,n)=>(e.openBlock(),e.createElementBlock("div",Se,[e.createElementVNode("h2",Ce,[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,Ve)]),e.createElementVNode("div",{id:t.id,class:e.normalizeClass(o.value),"data-bs-parent":`#${t.parentId}`},[e.createElementVNode("div",Ne,[e.renderSlot(l.$slots,"default")])],10,$e)]))}}),xe=["id"],Ee=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:r}){const a=e.useSlots();return(o,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,(n,d)=>(e.openBlock(),e.createBlock(I,{key:d,id:n.id,"parent-id":t.id,title:n.title,show:n.show},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.content),1)]),_:2},1032,["id","parent-id","title","show"]))),128)):e.renderSlot(o.$slots,"default",{key:1})],10,xe))}}),we=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:r}){const a=t,o=e.ref(a.modelValue);e.watch(()=>a.modelValue,n=>{o.value=n});const l=e.computed(()=>{const n=["collapse"];return a.horizontal&&n.push("collapse-horizontal"),o.value&&n.push("show"),n.join(" ")});return(n,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["id","class"]))}}),ze={key:0},j=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:r}){const a=t,o=r,l=e.computed(()=>a.divider?"hr":a.header?"h6":a.href?"a":a.to?"router-link":"button"),n=e.computed(()=>{if(a.divider)return"dropdown-divider";if(a.header)return"dropdown-header";const i=["dropdown-item"];return a.active&&i.push("active"),a.disabled&&i.push("disabled"),i.join(" ")}),d=i=>{!a.disabled&&!a.divider&&!a.header&&o("click",i)};return(i,m)=>!t.divider&&!t.header?(e.openBlock(),e.createElementBlock("li",ze,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(n.value),href:t.href,to:t.to,type:l.value==="button"?"button":void 0,disabled:t.disabled,onClick:d},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","href","to","type","disabled"]))])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:1,class:e.normalizeClass(n.value)},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class"]))}}),De=["id"],Te=["aria-labelledby"],ve=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:r}){const a=t,o=e.useSlots(),l=e.computed(()=>a.direction==="up"?"dropup":a.direction==="end"?"dropend":a.direction==="start"?"dropstart":"dropdown"),n=e.computed(()=>{const i=["btn",`btn-${a.variant}`];return a.size&&i.push(`btn-${a.size}`),i.join(" ")}),d=e.computed(()=>{const i=["dropdown-menu"];return a.menuEnd&&i.push("dropdown-menu-end"),i.join(" ")});return(i,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.createElementVNode("button",{id:t.id,class:e.normalizeClass([n.value,"dropdown-toggle"]),type:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},e.toDisplayString(t.text),11,De),e.createElementVNode("ul",{class:e.normalizeClass(d.value),"aria-labelledby":t.id},[t.items&&t.items.length>0&&!e.unref(o).default?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(s,c)=>(e.openBlock(),e.createBlock(j,{key:c,href:s.href,to:s.to,active:s.active,disabled:s.disabled,divider:s.divider,header:s.header},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.text),1)]),_:2},1032,["href","to","active","disabled","divider","header"]))),128)):e.renderSlot(i.$slots,"default",{key:1})],10,Te)],2))}}),Me=["id","aria-labelledby","data-bs-backdrop","data-bs-keyboard"],Fe={class:"modal-content"},qe={key:0,class:"modal-header"},Pe=["id"],Le={class:"modal-body"},Ie={key:1,class:"modal-footer"},je=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:r}){const a=t,o=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,n)=>(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(o.value)},[e.createElementVNode("div",Fe,[t.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"modal-title"},[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,Pe),n[0]||(n[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1))])),e.createElementVNode("div",Le,[e.renderSlot(l.$slots,"default")]),t.hideFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ie,[e.renderSlot(l.$slots,"footer",{},()=>[n[1]||(n[1]=e.createElementVNode("button",{type:"button",class:"btn btn-secondary","data-bs-dismiss":"modal"},"Close",-1))])]))])],2)],8,Me))}}),Ae=["id","aria-labelledby","data-bs-backdrop","data-bs-scroll"],Oe={class:"offcanvas-header"},Xe=["id"],Re={class:"offcanvas-body"},Ye=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:r}){const a=t,o=e.computed(()=>`offcanvas offcanvas-${a.placement}`);return(l,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(o.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",Oe,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"offcanvas-title"},[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,Xe),n[0]||(n[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"offcanvas","aria-label":"Close"},null,-1))]),e.createElementVNode("div",Re,[e.renderSlot(l.$slots,"default")])],10,Ae))}}),Ge=["id","data-bs-autohide","data-bs-delay"],He={key:0,class:"toast-header"},Ue={class:"me-auto"},Qe={class:"toast-body"},Ke=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:r}){const a=t,o=e.computed(()=>{const l=["toast"];return a.variant&&l.push(`text-bg-${a.variant}`),l.join(" ")});return(l,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(o.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",He,[e.renderSlot(l.$slots,"header",{},()=>[e.createElementVNode("strong",Ue,e.toDisplayString(t.title),1)]),n[0]||(n[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"toast","aria-label":"Close"},null,-1))])):e.createCommentVNode("",!0),e.createElementVNode("div",Qe,[e.renderSlot(l.$slots,"default")])],10,Ge))}}),We=["data-bs-interval"],Je=["src","alt"],Ze={key:1,class:"carousel-caption d-none d-md-block"},_e={key:0},et={key:1},A=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:r}){return(a,o)=>(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,Je)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"img"),t.caption||t.captionText||a.$slots.caption?(e.openBlock(),e.createElementBlock("div",Ze,[e.renderSlot(a.$slots,"caption",{},()=>[t.caption?(e.openBlock(),e.createElementBlock("h5",_e,e.toDisplayString(t.caption),1)):e.createCommentVNode("",!0),t.captionText?(e.openBlock(),e.createElementBlock("p",et,e.toDisplayString(t.captionText),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default")],10,We))}}),tt=["id","data-bs-ride","data-bs-interval","data-bs-keyboard","data-bs-pause","data-bs-wrap","data-bs-touch"],at={key:0,class:"carousel-indicators"},lt=["data-bs-target","data-bs-slide-to","aria-current","aria-label"],ot={class:"carousel-inner"},nt={key:0,class:"carousel-indicators"},it={class:"carousel-inner"},rt=["data-bs-target"],dt=["data-bs-target"],st=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:r}){const a=e.useSlots();return(o,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",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,d)=>(e.openBlock(),e.createElementBlock("button",{key:`indicator-${d}`,type:"button","data-bs-target":`#${t.id}`,"data-bs-slide-to":d,class:e.normalizeClass({active:n.active||d===0}),"aria-current":n.active||d===0,"aria-label":`Slide ${d+1}`},null,10,lt))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",ot,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,d)=>(e.openBlock(),e.createBlock(A,{key:d,active:n.active||d===0,interval:n.interval,"img-src":n.src,"img-alt":n.alt,caption:n.caption,"caption-text":n.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",nt,[e.renderSlot(o.$slots,"indicators")])):e.createCommentVNode("",!0),e.createElementVNode("div",it,[e.renderSlot(o.$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,rt)):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,dt)):e.createCommentVNode("",!0)],10,tt))}}),ct=["data-bs-placement","data-bs-title","data-bs-trigger","data-bs-html"],mt=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:r}){return(a,o)=>(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,ct))}}),ft=["data-bs-placement","data-bs-title","data-bs-content","data-bs-trigger","data-bs-html"],ut=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:r}){return(a,o)=>(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,ft))}}),yt=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:r}){return(a,o)=>(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"]))}}),pt=e.defineComponent({__name:"VibeIcon",props:{icon:{type:String,required:!0},size:{type:String,default:void 0},fontSize:{type:String,default:void 0},color:{type:String,default:void 0},customClass:{type:String,default:void 0},flipH:{type:Boolean,default:!1},flipV:{type:Boolean,default:!1},rotate:{type:Number,default:void 0}},emits:["click","component-error"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>{const i=["bi",`bi-${a.icon}`];return a.size&&(["1x","2x","3x","4x","5x"].includes(a.size)||i.push(`bi-${a.size}`)),a.customClass&&i.push(a.customClass),i.join(" ")}),n=e.computed(()=>{const i={};if(a.fontSize)i.fontSize=a.fontSize;else if(a.size){const s={"1x":"1rem","2x":"2rem","3x":"3rem","4x":"4rem","5x":"5rem"};s[a.size]&&(i.fontSize=s[a.size])}a.color&&(i.color=a.color);const m=[];return a.flipH&&m.push("scaleX(-1)"),a.flipV&&m.push("scaleY(-1)"),a.rotate&&m.push(`rotate(${a.rotate}deg)`),m.length>0&&(i.transform=m.join(" "),i.display="inline-block"),Object.keys(i).length>0?i:void 0}),d=i=>{o("click",i)};return(i,m)=>(e.openBlock(),e.createElementBlock("i",{class:e.normalizeClass(l.value),style:e.normalizeStyle(n.value),"aria-hidden":!0,onClick:d},null,6))}}),bt={class:"vibe-datatable"},gt={class:"row mb-3"},ht={key:0,class:"col-md-6 mb-2 mb-md-0"},kt=["placeholder"],Bt={key:1,class:"col-md-6"},St={class:"d-flex justify-content-md-end align-items-center"},Ct=["value"],Vt=["onClick"],$t={key:0,class:"ms-1"},Nt=["onClick"],xt={key:0},Et=["colspan"],wt={class:"row"},zt={key:0,class:"col-md-6 mb-2 mb-md-0"},Dt={class:"datatable-info"},Tt={key:1,class:"col-md-6"},vt={class:"pagination justify-content-md-end mb-0"},Mt={key:0,class:"page-item"},Ft={key:1,class:"page-item disabled"},qt=["onClick"],Pt={key:2,class:"page-item disabled"},Lt={key:3,class:"page-item"},It=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:r}){const a=t,o=r,l=e.ref(""),n=e.ref(null),d=e.ref(""),i=e.ref(a.currentPage),m=e.ref(a.perPage),s=e.ref(a.sortBy),c=e.ref(a.sortDesc);e.watch(()=>a.currentPage,y=>{i.value=y}),e.watch(()=>a.perPage,y=>{m.value=y}),e.watch(()=>a.sortBy,y=>{s.value=y}),e.watch(()=>a.sortDesc,y=>{c.value=y}),e.watch(l,y=>{n.value&&clearTimeout(n.value),n.value=window.setTimeout(()=>{d.value=y,i.value=1},a.searchDebounce)});const u=e.computed(()=>{if(!a.searchable||!d.value)return a.items;const y=d.value.toLowerCase();return a.items.filter(h=>a.columns.some(b=>{if(b.searchable===!1)return!1;const V=h[b.key];return V==null?!1:String(V).toLowerCase().includes(y)}))}),p=e.computed(()=>{if(!a.sortable||!s.value)return u.value;const y=[...u.value],h=s.value;return y.sort((b,V)=>{let S=b[h],N=V[h];return S==null?1:N==null?-1:(typeof S=="string"&&(S=S.toLowerCase()),typeof N=="string"&&(N=N.toLowerCase()),S<N?c.value?1:-1:S>N?c.value?-1:1:0)}),y}),k=e.computed(()=>{if(!a.paginated)return p.value;const y=(i.value-1)*m.value,h=y+m.value;return p.value.slice(y,h)}),C=e.computed(()=>a.items.length),g=e.computed(()=>u.value.length),B=e.computed(()=>Math.ceil(g.value/m.value)),$=e.computed(()=>g.value===0?0:(i.value-1)*m.value+1),Sl=e.computed(()=>{const y=i.value*m.value;return Math.min(y,g.value)}),Cl=e.computed(()=>(g.value!==C.value?a.filteredInfoText:a.infoText).replace("{start}",String($.value)).replace("{end}",String(Sl.value)).replace("{total}",String(g.value)).replace("{totalRows}",String(C.value))),Vl=e.computed(()=>{const y=["table"];return a.striped&&y.push("table-striped"),a.bordered&&y.push("table-bordered"),a.borderless&&y.push("table-borderless"),a.hover&&y.push("table-hover"),a.small&&y.push("table-sm"),a.variant&&y.push(`table-${a.variant}`),y.join(" ")}),$l=y=>{!a.sortable||y.sortable===!1||(s.value===y.key?c.value=!c.value:(s.value=y.key,c.value=!1),o("update:sortBy",s.value),o("update:sortDesc",c.value))},x=y=>{y<1||y>B.value||(i.value=y,o("update:currentPage",y))},Nl=()=>{i.value=1,o("update:perPage",m.value),o("update:currentPage",1)},xl=(y,h)=>{o("row-clicked",y,h)},El=(y,h)=>{const b=y[h.key];return h.formatter?h.formatter(b,y):b},wl=y=>!a.sortable||y.sortable===!1?"":s.value!==y.key?"⇅":c.value?"↓":"↑",zl=y=>{const h={...y.thStyle};return a.sortable&&y.sortable!==!1&&(h.cursor="pointer"),h};return(y,h)=>(e.openBlock(),e.createElementBlock("div",bt,[e.createElementVNode("div",gt,[t.searchable?(e.openBlock(),e.createElementBlock("div",ht,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=b=>l.value=b),type:"search",class:"form-control",placeholder:t.searchPlaceholder},null,8,kt),[[e.vModelText,l.value]])])):e.createCommentVNode("",!0),t.showPerPage&&t.paginated?(e.openBlock(),e.createElementBlock("div",Bt,[e.createElementVNode("div",St,[h[6]||(h[6]=e.createElementVNode("label",{class:"me-2 mb-0"},"Show",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":h[1]||(h[1]=b=>m.value=b),class:"form-select form-select-sm",style:{width:"auto"},onChange:Nl},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.perPageOptions,b=>(e.openBlock(),e.createElementBlock("option",{key:b,value:b},e.toDisplayString(b),9,Ct))),128))],544),[[e.vModelSelect,m.value,void 0,{number:!0}]]),h[7]||(h[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(Vl.value)},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,b=>(e.openBlock(),e.createElementBlock("th",{key:b.key,class:e.normalizeClass(b.headerClass),style:e.normalizeStyle(zl(b)),onClick:V=>$l(b)},[e.createTextVNode(e.toDisplayString(b.label)+" ",1),t.sortable&&b.sortable!==!1?(e.openBlock(),e.createElementBlock("span",$t,e.toDisplayString(wl(b)),1)):e.createCommentVNode("",!0)],14,Vt))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(b,V)=>(e.openBlock(),e.createElementBlock("tr",{key:V,onClick:S=>xl(b,V),style:{cursor:"pointer"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,S=>(e.openBlock(),e.createElementBlock("td",{key:S.key,class:e.normalizeClass(S.class),style:e.normalizeStyle(S.tdStyle)},[e.renderSlot(y.$slots,`cell(${S.key})`,{item:b,value:b[S.key],index:V},()=>[e.createTextVNode(e.toDisplayString(El(b,S)),1)],!0)],6))),128))],8,Nt))),128)),k.value.length===0&&t.showEmpty?(e.openBlock(),e.createElementBlock("tr",xt,[e.createElementVNode("td",{colspan:t.columns.length,class:"text-center"},e.toDisplayString(t.emptyText),9,Et)])):e.createCommentVNode("",!0)])],2)],2),e.createElementVNode("div",wt,[t.showInfo?(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("div",Dt,e.toDisplayString(Cl.value),1)])):e.createCommentVNode("",!0),t.paginated&&B.value>1?(e.openBlock(),e.createElementBlock("div",Tt,[e.createElementVNode("nav",null,[e.createElementVNode("ul",vt,[e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:i.value===1}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:h[2]||(h[2]=e.withModifiers(b=>x(i.value-1),["prevent"]))}," Previous ")],2),i.value>3?(e.openBlock(),e.createElementBlock("li",Mt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:h[3]||(h[3]=e.withModifiers(b=>x(1),["prevent"]))},"1")])):e.createCommentVNode("",!0),i.value>4?(e.openBlock(),e.createElementBlock("li",Ft,[...h[8]||(h[8]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.from({length:B.value},(b,V)=>V+1).filter(b=>b>=i.value-2&&b<=i.value+2),b=>(e.openBlock(),e.createElementBlock("li",{key:b,class:e.normalizeClass(["page-item",{active:b===i.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:e.withModifiers(V=>x(b),["prevent"])},e.toDisplayString(b),9,qt)],2))),128)),i.value<B.value-3?(e.openBlock(),e.createElementBlock("li",Pt,[...h[9]||(h[9]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),i.value<B.value-2?(e.openBlock(),e.createElementBlock("li",Lt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:h[4]||(h[4]=e.withModifiers(b=>x(B.value),["prevent"]))},e.toDisplayString(B.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:i.value===B.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:h[5]||(h[5]=e.withModifiers(b=>x(i.value+1),["prevent"]))}," Next ")],2)])])])):e.createCommentVNode("",!0)])]))}}),D=(t,r)=>{const a=t.__vccOpts||t;for(const[o,l]of r)a[o]=l;return a},jt=D(It,[["__scopeId","data-v-48221c7b"]]),At={class:"mb-3"},Ot=["for"],Xt={key:0,class:"text-danger"},Rt=["id","type","value","placeholder","disabled","readonly","required","aria-invalid","aria-describedby"],Yt=["id"],Gt={key:2,class:"valid-feedback",style:{display:"block"}},Ht=["id"],Ut=e.defineComponent({__name:"VibeFormInput",props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},id:{type:String,required:!0},label:{type:String,default:void 0},placeholder:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},plaintext:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const c=[];return a.plaintext?c.push("form-control-plaintext"):(c.push("form-control"),a.size&&c.push(`form-control-${a.size}`)),l.value==="valid"&&c.push("is-valid"),l.value==="invalid"&&c.push("is-invalid"),c.join(" ")}),d=c=>{const u=c.target,p=a.type==="number"?u.value===""?"":Number(u.value):u.value;o("update:modelValue",p),o("input",c),a.validateOn==="input"&&o("validate")},i=c=>{o("change",c),a.validateOn==="change"&&o("validate")},m=c=>{o("blur",c),a.validateOn==="blur"&&o("validate")},s=c=>{o("focus",c)};return(c,u)=>(e.openBlock(),e.createElementBlock("div",At,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Xt,"*")):e.createCommentVNode("",!0)],8,Ot)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(n.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly||t.plaintext,required:t.required,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:d,onChange:i,onBlur:m,onFocus:s},null,42,Rt),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Yt)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",Gt,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Ht)):e.createCommentVNode("",!0)]))}}),Qt={class:"mb-3"},Kt=["for"],Wt={key:0,class:"text-danger"},Jt=["id","value","disabled","required","multiple","size","aria-invalid","aria-describedby"],Zt=["selected"],_t=["value","disabled"],ea=["id"],ta={key:2,class:"valid-feedback",style:{display:"block"}},aa=["id"],la=e.defineComponent({__name:"VibeFormSelect",props:{modelValue:{type:[String,Number,Array],default:""},id:{type:String,required:!0},label:{type:String,default:void 0},options:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},size:{type:String,default:void 0},htmlSize:{type:Number,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},placeholder:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const s=["form-select"];return a.size&&s.push(`form-select-${a.size}`),l.value==="valid"&&s.push("is-valid"),l.value==="invalid"&&s.push("is-invalid"),s.join(" ")}),d=s=>{const c=s.target;let u;a.multiple?u=Array.from(c.selectedOptions).map(k=>k.value):u=c.value,o("update:modelValue",u),o("change",s),a.validateOn==="change"&&o("validate")},i=s=>{o("blur",s),a.validateOn==="blur"&&o("validate")},m=s=>{o("focus",s)};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Qt,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Wt,"*")):e.createCommentVNode("",!0)],8,Kt)):e.createCommentVNode("",!0),e.createElementVNode("select",{id:t.id,class:e.normalizeClass(n.value),value:t.modelValue,disabled:t.disabled,required:t.required,multiple:t.multiple,size:t.htmlSize,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:d,onBlur:i,onFocus:m},[t.placeholder&&!t.multiple?(e.openBlock(),e.createElementBlock("option",{key:0,value:"",disabled:"",selected:!t.modelValue},e.toDisplayString(t.placeholder),9,Zt)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,u=>(e.openBlock(),e.createElementBlock("option",{key:u.value,value:u.value,disabled:u.disabled},e.toDisplayString(u.text),9,_t))),128)),e.renderSlot(s.$slots,"default")],42,Jt),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,ea)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",ta,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select a valid option."),9,aa)):e.createCommentVNode("",!0)]))}}),oa={class:"mb-3"},na=["for"],ia={key:0,class:"text-danger"},ra=["id","value","placeholder","disabled","readonly","required","rows","maxlength","aria-invalid","aria-describedby"],da={key:1,class:"form-text"},sa=["id"],ca={key:3,class:"valid-feedback",style:{display:"block"}},ma=["id"],fa=e.defineComponent({__name:"VibeFormTextarea",props:{modelValue:{type:String,default:""},id:{type:String,required:!0},label:{type:String,default:void 0},placeholder:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},rows:{type:Number,default:3},maxlength:{type:Number,default:void 0},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},showCharCount:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const p=["form-control"];return a.size&&p.push(`form-control-${a.size}`),l.value==="valid"&&p.push("is-valid"),l.value==="invalid"&&p.push("is-invalid"),p.join(" ")}),d=e.computed(()=>a.modelValue?a.modelValue.length:0),i=e.computed(()=>a.maxlength?`${d.value} / ${a.maxlength}`:`${d.value}`),m=p=>{const k=p.target;o("update:modelValue",k.value),o("input",p),a.validateOn==="input"&&o("validate")},s=p=>{o("change",p),a.validateOn==="change"&&o("validate")},c=p=>{o("blur",p),a.validateOn==="blur"&&o("validate")},u=p=>{o("focus",p)};return(p,k)=>(e.openBlock(),e.createElementBlock("div",oa,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ia,"*")):e.createCommentVNode("",!0)],8,na)):e.createCommentVNode("",!0),e.createElementVNode("textarea",{id:t.id,class:e.normalizeClass(n.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,rows:t.rows,maxlength:t.maxlength,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:m,onChange:s,onBlur:c,onFocus:u},null,42,ra),t.showCharCount?(e.openBlock(),e.createElementBlock("div",da,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage&&!t.showCharCount?(e.openBlock(),e.createElementBlock("div",{key:2,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,sa)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",ca,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:4,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,ma)):e.createCommentVNode("",!0)]))}}),ua={class:"mb-3"},ya=["for"],pa={key:0,class:"text-danger"},ba=["disabled"],ga=["id","value","disabled","readonly","required","min","max","step","aria-invalid","aria-describedby"],ha=["disabled"],ka=["id"],Ba={key:2,class:"valid-feedback",style:{display:"block"}},Sa=["id"],Ca=D(e.defineComponent({__name:"VibeFormSpinbutton",props:{modelValue:{type:Number,default:0},id:{type:String,required:!0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:Number,default:1},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},wrap:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change","increment","decrement"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const g=["form-control"];return a.size&&g.push(`form-control-${a.size}`),l.value==="valid"&&g.push("is-valid"),l.value==="invalid"&&g.push("is-invalid"),g.join(" ")}),d=e.computed(()=>{const g=["input-group"];return a.size&&g.push(`input-group-${a.size}`),a.vertical&&g.push("input-group-vertical"),g.join(" ")}),i=e.computed(()=>a.disabled||a.readonly?!1:a.min===void 0||a.wrap?!0:a.modelValue>a.min),m=e.computed(()=>a.disabled||a.readonly?!1:a.max===void 0||a.wrap?!0:a.modelValue<a.max),s=g=>{const B=g.target;let $=B.value===""?0:Number(B.value);a.min!==void 0&&$<a.min&&($=a.min),a.max!==void 0&&$>a.max&&($=a.max),o("update:modelValue",$),o("input",g),a.validateOn==="input"&&o("validate")},c=g=>{o("change",g),a.validateOn==="change"&&o("validate")},u=g=>{o("blur",g),a.validateOn==="blur"&&o("validate")},p=g=>{o("focus",g)},k=()=>{if(!m.value)return;let g=a.modelValue+a.step;a.max!==void 0&&g>a.max&&(g=a.wrap?a.min??0:a.max),o("update:modelValue",g),o("increment",g),a.validateOn==="change"&&o("validate")},C=()=>{if(!i.value)return;let g=a.modelValue-a.step;a.min!==void 0&&g<a.min&&(g=a.wrap?a.max??0:a.min),o("update:modelValue",g),o("decrement",g),a.validateOn==="change"&&o("validate")};return(g,B)=>(e.openBlock(),e.createElementBlock("div",ua,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",pa,"*")):e.createCommentVNode("",!0)],8,ya)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(d.value)},[e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!i.value,onClick:C,"aria-label":"Decrement"},[...B[0]||(B[0]=[e.createElementVNode("span",{"aria-hidden":"true"},"−",-1)])],8,ba),e.createElementVNode("input",{id:t.id,type:"number",class:e.normalizeClass(n.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,step:t.step,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:s,onChange:c,onBlur:u,onFocus:p},null,42,ga),e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!m.value,onClick:k,"aria-label":"Increment"},[...B[1]||(B[1]=[e.createElementVNode("span",{"aria-hidden":"true"},"+",-1)])],8,ha)],2),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,ka)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",Ba,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Sa)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-e706d3dc"]]),Va={class:"mb-3"},$a=["for"],Na={key:0,class:"text-danger"},xa=["id","type","value","disabled","readonly","required","min","max","aria-invalid","aria-describedby"],Ea=["id"],wa={key:2,class:"valid-feedback",style:{display:"block"}},za=["id"],Da=e.defineComponent({__name:"VibeFormDatepicker",props:{modelValue:{type:String,default:""},id:{type:String,required:!0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},min:{type:String,default:void 0},max:{type:String,default:void 0},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},type:{type:String,default:"date"}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const c=["form-control"];return a.size&&c.push(`form-control-${a.size}`),l.value==="valid"&&c.push("is-valid"),l.value==="invalid"&&c.push("is-invalid"),c.join(" ")}),d=c=>{const u=c.target;o("update:modelValue",u.value),o("input",c),a.validateOn==="input"&&o("validate")},i=c=>{o("change",c),a.validateOn==="change"&&o("validate")},m=c=>{o("blur",c),a.validateOn==="blur"&&o("validate")},s=c=>{o("focus",c)};return(c,u)=>(e.openBlock(),e.createElementBlock("div",Va,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Na,"*")):e.createCommentVNode("",!0)],8,$a)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(n.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:d,onChange:i,onBlur:m,onFocus:s},null,42,xa),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Ea)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",wa,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid date."),9,za)):e.createCommentVNode("",!0)]))}}),Ta=["id","checked","value","disabled","required","indeterminate","aria-invalid","aria-describedby"],va=["for"],Ma={key:0,class:"text-danger"},Fa=["id"],qa={key:2,class:"valid-feedback",style:{display:"block"}},Pa=["id"],La=e.defineComponent({__name:"VibeFormCheckbox",props:{modelValue:{type:[Boolean,Array],default:!1},id:{type:String,required:!0},label:{type:String,default:void 0},value:{type:[String,Number,Boolean],default:!0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},indeterminate:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const u=["form-check-input"];return l.value==="valid"&&u.push("is-valid"),l.value==="invalid"&&u.push("is-invalid"),u.join(" ")}),d=e.computed(()=>{const u=["form-check"];return a.inline&&u.push("form-check-inline"),u.join(" ")}),i=e.computed(()=>Array.isArray(a.modelValue)?a.modelValue.includes(a.value):a.modelValue===a.value||a.modelValue===!0),m=u=>{const p=u.target;let k;if(Array.isArray(a.modelValue))if(k=[...a.modelValue],p.checked)k.includes(a.value)||k.push(a.value);else{const C=k.indexOf(a.value);C>-1&&k.splice(C,1)}else k=p.checked;o("update:modelValue",k),o("change",u),a.validateOn==="change"&&o("validate")},s=u=>{o("blur",u),a.validateOn==="blur"&&o("validate")},c=u=>{o("focus",u)};return(u,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value)},[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(n.value),checked:i.value,value:t.value,disabled:t.disabled,required:t.required,indeterminate:t.indeterminate,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:m,onBlur:s,onFocus:c},null,42,Ta),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ma,"*")):e.createCommentVNode("",!0)],8,va)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Fa)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",qa,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"You must check this box."),9,Pa)):e.createCommentVNode("",!0)],2))}}),Ia=["id","checked","value","name","disabled","required","aria-invalid","aria-describedby"],ja=["for"],Aa={key:0,class:"text-danger"},Oa=["id"],Xa={key:2,class:"valid-feedback",style:{display:"block"}},Ra=["id"],Ya=e.defineComponent({__name:"VibeFormRadio",props:{modelValue:{type:[String,Number,Boolean],default:void 0},id:{type:String,required:!0},label:{type:String,default:void 0},value:{type:[String,Number,Boolean],required:!0},name:{type:String,required:!0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const u=["form-check-input"];return l.value==="valid"&&u.push("is-valid"),l.value==="invalid"&&u.push("is-invalid"),u.join(" ")}),d=e.computed(()=>{const u=["form-check"];return a.inline&&u.push("form-check-inline"),u.join(" ")}),i=e.computed(()=>a.modelValue===a.value),m=u=>{u.target.checked&&o("update:modelValue",a.value),o("change",u),a.validateOn==="change"&&o("validate")},s=u=>{o("blur",u),a.validateOn==="blur"&&o("validate")},c=u=>{o("focus",u)};return(u,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value)},[e.createElementVNode("input",{id:t.id,type:"radio",class:e.normalizeClass(n.value),checked:i.value,value:t.value,name:t.name,disabled:t.disabled,required:t.required,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:m,onBlur:s,onFocus:c},null,42,Ia),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Aa,"*")):e.createCommentVNode("",!0)],8,ja)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Oa)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",Xa,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select an option."),9,Ra)):e.createCommentVNode("",!0)],2))}}),Ga={class:"form-check form-switch"},Ha=["id","checked","disabled","required","aria-invalid","aria-describedby"],Ua=["for"],Qa={key:0,class:"text-danger"},Ka=["id"],Wa={key:2,class:"valid-feedback",style:{display:"block"}},Ja=["id"],Za=e.defineComponent({__name:"VibeFormSwitch",props:{modelValue:{type:Boolean,default:!1},id:{type:String,required:!0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.validationState),n=e.computed(()=>{const s=["form-check-input"];return l.value==="valid"&&s.push("is-valid"),l.value==="invalid"&&s.push("is-invalid"),s.join(" ")}),d=s=>{const c=s.target;o("update:modelValue",c.checked),o("change",s),a.validateOn==="change"&&o("validate")},i=s=>{o("blur",s),a.validateOn==="blur"&&o("validate")},m=s=>{o("focus",s)};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Ga,[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(n.value),checked:t.modelValue,disabled:t.disabled,required:t.required,"aria-invalid":l.value==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,role:"switch",onChange:d,onBlur:i,onFocus:m},null,42,Ha),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Qa,"*")):e.createCommentVNode("",!0)],8,Ua)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Ka)):e.createCommentVNode("",!0),l.value==="valid"?(e.openBlock(),e.createElementBlock("div",Wa,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),l.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"You must toggle this switch."),9,Ja)):e.createCommentVNode("",!0)]))}}),_a=["for"],el={key:0,class:"text-danger"},tl=["id"],al={key:1,class:"valid-feedback",style:{display:"block"}},ll=["id"],ol=["for"],nl={key:0,class:"text-danger"},il=["id"],rl={key:2,class:"valid-feedback",style:{display:"block"}},dl=["id"],sl=e.defineComponent({__name:"VibeFormGroup",props:{label:{type:String,default:void 0},labelFor:{type:String,default:void 0},required:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},helpText:{type:String,default:void 0},floating:{type:Boolean,default:!1},row:{type:Boolean,default:!1},labelCols:{type:[Number,String],default:void 0},labelAlign:{type:String,default:void 0}},setup(t){const r=t,a=e.computed(()=>{const d=[];return r.floating?d.push("form-floating"):r.row?d.push("row","mb-3"):d.push("mb-3"),d.join(" ")}),o=e.computed(()=>{const d=[];return r.floating?d.push("form-label"):r.row?(d.push("col-form-label"),r.labelCols&&d.push(`col-sm-${r.labelCols}`),r.labelAlign&&d.push(`text-${r.labelAlign}`)):d.push("form-label"),d.join(" ")}),l=e.computed(()=>r.row&&r.labelCols?`col-sm-${12-Number(r.labelCols)}`:""),n=e.computed(()=>r.labelFor?`${r.labelFor}-feedback`:void 0);return(d,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(a.value)},[t.label&&!t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.labelFor,class:e.normalizeClass(o.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",el,"*")):e.createCommentVNode("",!0)],10,_a)):e.createCommentVNode("",!0),t.row&&t.labelCols?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(l.value)},[e.renderSlot(d.$slots,"default"),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:0,id:n.value,class:"form-text"},e.toDisplayString(t.helpText),9,tl)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",al,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:2,id:n.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,ll)):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.renderSlot(d.$slots,"default"),t.label&&t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.labelFor,class:e.normalizeClass(o.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",nl,"*")):e.createCommentVNode("",!0)],10,ol)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:n.value,class:"form-text"},e.toDisplayString(t.helpText),9,il)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",rl,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:n.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,dl)):e.createCommentVNode("",!0)],64))],2))}}),cl={class:"mb-3"},ml=["for"],fl={key:0,class:"text-danger"},ul={key:1,class:"alert alert-warning",role:"alert"},yl=["id"],pl=["id"],bl={key:4,class:"valid-feedback",style:{display:"block"}},gl=["id"],hl=D(e.defineComponent({__name:"VibeFormWysiwyg",props:{modelValue:{type:String,default:""},id:{type:String,required:!0},label:{type:String,default:void 0},placeholder:{type:String,default:"Write something..."},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},theme:{type:String,default:"snow"},toolbar:{type:[Array,String,Boolean],default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},height:{type:String,default:"200px"}},emits:["update:modelValue","validate","blur","focus","change","ready"],setup(t,{emit:r}){const a=t,o=r,l=e.ref(null),n=e.ref(null),d=e.ref(!1),i=e.ref(null),m=e.computed(()=>a.validationState),s=e.computed(()=>{const p=["vibe-wysiwyg-container"];return m.value==="valid"&&p.push("is-valid"),m.value==="invalid"&&p.push("is-invalid"),a.disabled&&p.push("disabled"),p.join(" ")}),c=[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]}],["link","image"],["clean"]],u=()=>a.toolbar===!1?!1:a.toolbar===!0||a.toolbar===void 0?c:a.toolbar;return e.onMounted(async()=>{try{const p=await import("quill"),k=p.default||p;if(await import("quill/dist/quill.snow.css"),l.value){const C={theme:a.theme,placeholder:a.placeholder,readOnly:a.readonly||a.disabled,modules:{toolbar:u()}};n.value=new k(l.value,C),a.modelValue&&(n.value.root.innerHTML=a.modelValue),n.value.on("text-change",()=>{const g=n.value.root.innerHTML,B=n.value.getText().trim().length===0;o("update:modelValue",B?"":g),o("change"),a.validateOn==="change"&&o("validate")}),n.value.root.addEventListener("blur",()=>{o("blur"),a.validateOn==="blur"&&o("validate")}),n.value.root.addEventListener("focus",()=>{o("focus")}),d.value=!0,o("ready",n.value)}}catch(p){console.error("Failed to load Quill editor:",p),i.value="Failed to load WYSIWYG editor. Please install quill: npm install quill",d.value=!1}}),e.onBeforeUnmount(()=>{n.value&&(n.value=null)}),e.watch(()=>a.modelValue,p=>{n.value&&n.value.root.innerHTML!==p&&(n.value.root.innerHTML=p||"")}),e.watch(()=>a.disabled,p=>{n.value&&n.value.enable(!p)}),e.watch(()=>a.readonly,p=>{n.value&&n.value.enable(!p)}),(p,k)=>(e.openBlock(),e.createElementBlock("div",cl,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.id,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",fl,"*")):e.createCommentVNode("",!0)],8,ml)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",ul,e.toDisplayString(i.value),1)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(s.value),style:e.normalizeStyle({minHeight:t.height})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,id:t.id},null,8,yl)],6)),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,pl)):e.createCommentVNode("",!0),m.value==="valid"?(e.openBlock(),e.createElementBlock("div",bl,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),m.value==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:5,id:`${t.id}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide valid content."),9,gl)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-2eb8f4ff"]]);function kl(t=""){const r=e.ref(t),a=e.ref(null),o=e.ref(""),l=e.ref(!1),n=e.ref(!1),d=e.ref(!1),i=async k=>{if(!k)return a.value=null,o.value="",{valid:!0};d.value=!0;try{const C=Array.isArray(k)?k:[{validator:k}];for(const g of C){const B=await g.validator(r.value);if(B===!1||typeof B=="string")return a.value="invalid",o.value=typeof B=="string"?B:g.message||"Invalid value",d.value=!1,{valid:!1,message:o.value}}return a.value="valid",o.value="",d.value=!1,{valid:!0}}catch{return a.value="invalid",o.value="Validation error occurred",d.value=!1,{valid:!1,message:o.value}}},m=()=>{r.value=t,a.value=null,o.value="",l.value=!1,n.value=!1,d.value=!1},s=()=>{n.value=!0},c=()=>{l.value=!0},u=e.computed(()=>a.value==="valid"),p=e.computed(()=>a.value==="invalid");return{value:r,validationState:a,validationMessage:o,isDirty:l,isTouched:n,isValidating:d,isValid:u,isInvalid:p,validate:i,reset:m,markAsTouched:s,markAsDirty:c}}const Bl={required:(t="This field is required")=>({validator:r=>Array.isArray(r)?r.length>0||t:typeof r=="string"?r.trim().length>0||t:r!=null&&r!==""||t,message:t}),email:(t="Please enter a valid email address")=>({validator:r=>r?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)||t:!0,message:t}),minLength:(t,r)=>({validator:a=>a?a.length>=t||r||`Minimum length is ${t} characters`:!0,message:r}),maxLength:(t,r)=>({validator:a=>a?a.length<=t||r||`Maximum length is ${t} characters`:!0,message:r}),min:(t,r)=>({validator:a=>a==null||a===""?!0:Number(a)>=t||r||`Minimum value is ${t}`,message:r}),max:(t,r)=>({validator:a=>a==null||a===""?!0:Number(a)<=t||r||`Maximum value is ${t}`,message:r}),pattern:(t,r="Invalid format")=>({validator:a=>a?t.test(a)||r:!0,message:r}),url:(t="Please enter a valid URL")=>({validator:r=>{if(!r)return!0;try{return new URL(r),!0}catch{return t}},message:t}),async:t=>({validator:t})};f.VibeAccordion=Ee,f.VibeAccordionItem=I,f.VibeAlert=O,f.VibeBadge=X,f.VibeBreadcrumb=ne,f.VibeBreadcrumbItem=P,f.VibeButton=R,f.VibeButtonGroup=G,f.VibeCard=te,f.VibeCardBody=v,f.VibeCardFooter=M,f.VibeCardHeader=T,f.VibeCardImg=w,f.VibeCardText=q,f.VibeCardTitle=F,f.VibeCarousel=st,f.VibeCarouselSlide=A,f.VibeCloseButton=U,f.VibeCol=_,f.VibeCollapse=we,f.VibeContainer=J,f.VibeDataTable=jt,f.VibeDropdown=ve,f.VibeDropdownItem=j,f.VibeFormCheckbox=La,f.VibeFormDatepicker=Da,f.VibeFormGroup=sl,f.VibeFormInput=Ut,f.VibeFormRadio=Ya,f.VibeFormSelect=la,f.VibeFormSpinbutton=Ca,f.VibeFormSwitch=Za,f.VibeFormTextarea=fa,f.VibeFormWysiwyg=hl,f.VibeIcon=pt,f.VibeListGroup=ge,f.VibeListGroupItem=L,f.VibeModal=je,f.VibeNav=re,f.VibeNavItem=z,f.VibeNavbar=de,f.VibeNavbarBrand=se,f.VibeNavbarNav=fe,f.VibeNavbarToggle=me,f.VibeOffcanvas=Ye,f.VibePagination=ye,f.VibePaginationItem=E,f.VibePlaceholder=W,f.VibePopover=ut,f.VibeProgress=he,f.VibeProgressBar=Be,f.VibeRow=Z,f.VibeScrollspy=yt,f.VibeSpinner=K,f.VibeTabContent=pe,f.VibeTabPane=be,f.VibeToast=Ke,f.VibeTooltip=mt,f.useFormValidation=kl,f.validators=Bl,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velkymx/vibeui",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "A lightweight Vue 3 component library for Bootstrap 5.3 with dual-mode support (shorthand props and composable slots)",
5
5
  "main": "./dist/vibeui.umd.js",
6
6
  "module": "./dist/vibeui.es.js",
@@ -13,7 +13,9 @@
13
13
  },
14
14
  "./dist/style.css": "./dist/vibeui.css"
15
15
  },
16
- "files": ["dist"],
16
+ "files": [
17
+ "dist"
18
+ ],
17
19
  "scripts": {
18
20
  "dev": "vite",
19
21
  "build": "vite build",
@@ -41,21 +43,24 @@
41
43
  },
42
44
  "homepage": "https://github.com/velkymx/vibeui#readme",
43
45
  "dependencies": {
44
- "vue": "^3.5.13"
46
+ "vue": "^3.5.0"
45
47
  },
46
48
  "devDependencies": {
47
49
  "@vitejs/plugin-vue": "^5.2.1",
48
50
  "typescript": "^5.7.2",
49
51
  "vite": "^6.0.5",
52
+ "vite-plugin-dts": "^4.5.4",
50
53
  "vue-tsc": "^2.1.10"
51
54
  },
52
55
  "peerDependencies": {
53
56
  "vue": "^3.5.0"
54
57
  },
55
58
  "peerDependenciesMeta": {
59
+ "bootstrap-icons": {
60
+ "optional": true
61
+ },
56
62
  "quill": {
57
63
  "optional": true
58
64
  }
59
65
  }
60
66
  }
61
-