@velkymx/vibeui 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vibeui.css CHANGED
@@ -1 +1 @@
1
- .vibe-datatable[data-v-bafec986]{width:100%}.datatable-info[data-v-bafec986]{padding:.5rem 0;color:#6c757d}.input-group-vertical[data-v-fbee244e]{flex-direction:column}.input-group-vertical[data-v-fbee244e]>*{width:100%}.vibe-wysiwyg-container[data-v-8e6e81b0]{border:1px solid #ced4da;border-radius:.375rem}.vibe-wysiwyg-container.is-valid[data-v-8e6e81b0]{border-color:#198754}.vibe-wysiwyg-container.is-invalid[data-v-8e6e81b0]{border-color:#dc3545}.vibe-wysiwyg-container.disabled[data-v-8e6e81b0]{background-color:#e9ecef;opacity:.6;cursor:not-allowed}.vibe-wysiwyg-container[data-v-8e6e81b0] .ql-container{border:none;font-size:1rem}.vibe-wysiwyg-container[data-v-8e6e81b0] .ql-toolbar{border:none;border-bottom:1px solid #ced4da;border-top-left-radius:.375rem;border-top-right-radius:.375rem}.vibe-wysiwyg-container[data-v-8e6e81b0] .ql-editor{min-height:150px}
1
+ .vibe-datatable[data-v-25bff6a6]{width:100%}.datatable-info[data-v-25bff6a6]{padding:.5rem 0;color:#6c757d}.input-group-vertical[data-v-fbee244e]{flex-direction:column}.input-group-vertical[data-v-fbee244e]>*{width:100%}.vibe-wysiwyg-container[data-v-8e6e81b0]{border:1px solid #ced4da;border-radius:.375rem}.vibe-wysiwyg-container.is-valid[data-v-8e6e81b0]{border-color:#198754}.vibe-wysiwyg-container.is-invalid[data-v-8e6e81b0]{border-color:#dc3545}.vibe-wysiwyg-container.disabled[data-v-8e6e81b0]{background-color:#e9ecef;opacity:.6;cursor:not-allowed}.vibe-wysiwyg-container[data-v-8e6e81b0] .ql-container{border:none;font-size:1rem}.vibe-wysiwyg-container[data-v-8e6e81b0] .ql-toolbar{border:none;border-bottom:1px solid #ced4da;border-top-left-radius:.375rem;border-top-right-radius:.375rem}.vibe-wysiwyg-container[data-v-8e6e81b0] .ql-editor{min-height:150px}
package/dist/vibeui.es.js CHANGED
@@ -1490,9 +1490,9 @@ const fe = /* @__PURE__ */ C({
1490
1490
  });
1491
1491
  const p = y(() => {
1492
1492
  if (!t.searchable || !c.value)
1493
- return t.items;
1493
+ return t.items || [];
1494
1494
  const $ = c.value.toLowerCase();
1495
- return t.items.filter((k) => t.columns.some((S) => {
1495
+ return (t.items || []).filter((k) => (t.columns || []).some((S) => {
1496
1496
  if (S.searchable === !1) return !1;
1497
1497
  const L = k[S.key];
1498
1498
  return L == null ? !1 : String(L).toLowerCase().includes($);
@@ -1697,7 +1697,7 @@ const fe = /* @__PURE__ */ C({
1697
1697
  for (const [a, l] of f)
1698
1698
  t[a] = l;
1699
1699
  return t;
1700
- }, ya = /* @__PURE__ */ Q(ha, [["__scopeId", "data-v-bafec986"]]), ga = { class: "mb-3" }, pa = ["for"], $a = {
1700
+ }, ya = /* @__PURE__ */ Q(ha, [["__scopeId", "data-v-25bff6a6"]]), ga = { class: "mb-3" }, pa = ["for"], $a = {
1701
1701
  key: 0,
1702
1702
  class: "text-danger"
1703
1703
  }, ka = ["id", "type", "value", "placeholder", "disabled", "readonly", "required", "aria-invalid", "aria-describedby"], Sa = ["id"], Va = {
@@ -1 +1 @@
1
- (function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y.VibeUI={},y.Vue))})(this,(function(y,e){"use strict";const T=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:m}){const a=t,l=m,o=e.computed({get:()=>a.modelValue,set:n=>l("update:modelValue",n)}),s=()=>{try{o.value=!1}catch(n){l("component-error",{message:"Dismiss failed",componentName:"VibeAlert",originalError:n})}};return(n,i)=>o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`alert alert-${t.variant}`),role:"alert"},[e.renderSlot(n.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.dismissable?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-close",onClick:s,"aria-label":"Close"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),z=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:m}){const a=t,l=e.computed(()=>{const o=["badge",`bg-${a.variant}`];return a.pill&&o.push("rounded-pill"),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),D=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:m}){const a=t,l=m,o=e.computed(()=>a.href?"a":a.to?"router-link":"button"),s=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(" ")}),n=i=>{a.disabled||l("click",i)};return(i,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(s.value),type:t.href||t.to?void 0:t.type,href:t.href,to:t.to,disabled:t.disabled,"aria-disabled":t.disabled,onClick:n},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","type","href","to","disabled","aria-disabled"]))}}),ke=["role","aria-label"],M=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:m}){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,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value),role:t.role,"aria-label":t.ariaLabel},[e.renderSlot(o.$slots,"default")],10,ke))}}),Be=["disabled","aria-label"],F=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:m}){const a=t,l=m,o=s=>{a.disabled||l("click",s)};return(s,n)=>(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,Be))}}),Se={class:"visually-hidden"},q=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:m}){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,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value),role:"status"},{default:e.withCtx(()=>[e.createElementVNode("span",Se,e.toDisplayString(t.label),1)]),_:1},8,["class"]))}}),L=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:m}){const a=t,l=e.computed(()=>{const n=["placeholder"];return a.variant&&n.push(`bg-${a.variant}`),a.size&&n.push(`placeholder-${a.size}`),n.join(" ")}),o=e.computed(()=>{if(a.animation)return`placeholder-${a.animation}`}),s=e.computed(()=>{if(a.width)return{width:typeof a.width=="number"?`${a.width}%`:a.width}});return(n,i)=>(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(s.value)},[e.renderSlot(n.$slots,"default")],6)]),_:3},8,["class"]))}}),P=e.defineComponent({__name:"VibeContainer",props:{fluid:{type:[Boolean,String],default:!1},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>a.fluid===!1?"container":a.fluid===!0?"container-fluid":`container-${a.fluid}`);return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),j=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:m}){const a=t,l=e.computed(()=>{const o=["row"];a.gutters!==void 0&&o.push(`g-${a.gutters}`),a.guttersX!==void 0&&o.push(`gx-${a.guttersX}`),a.guttersY!==void 0&&o.push(`gy-${a.guttersY}`);const s=["sm","md","lg","xl","xxl"];return s.forEach(n=>{const i=n.charAt(0).toUpperCase()+n.slice(1),r=`gutters${i}`;a[r]!==void 0&&o.push(`g-${n}-${a[r]}`);const d=`guttersX${i}`;a[d]!==void 0&&o.push(`gx-${n}-${a[d]}`);const c=`guttersY${i}`;a[c]!==void 0&&o.push(`gy-${n}-${a[c]}`)}),a.rowCols!==void 0&&o.push(`row-cols-${a.rowCols}`),s.forEach(n=>{const i=`rowCols${n.charAt(0).toUpperCase()+n.slice(1)}`;a[i]!==void 0&&o.push(`row-cols-${n}-${a[i]}`)}),a.alignItems&&o.push(`align-items-${a.alignItems}`),a.justifyContent&&o.push(`justify-content-${a.justifyContent}`),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),A=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:m}){const a=t,l=e.computed(()=>{const o=[];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?o.push("col"):a.cols==="auto"?o.push("col-auto"):a.cols&&o.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:r})=>{r===!0?o.push(`col-${i}`):r==="auto"?o.push(`col-${i}-auto`):r!==void 0&&o.push(`col-${i}-${r}`)})):o.push("col"),a.offset!==void 0&&o.push(`offset-${a.offset}`),a.offsetSm!==void 0&&o.push(`offset-sm-${a.offsetSm}`),a.offsetMd!==void 0&&o.push(`offset-md-${a.offsetMd}`),a.offsetLg!==void 0&&o.push(`offset-lg-${a.offsetLg}`),a.offsetXl!==void 0&&o.push(`offset-xl-${a.offsetXl}`),a.offsetXxl!==void 0&&o.push(`offset-xxl-${a.offsetXxl}`),a.order!==void 0&&o.push(`order-${a.order}`),a.orderSm!==void 0&&o.push(`order-sm-${a.orderSm}`),a.orderMd!==void 0&&o.push(`order-md-${a.orderMd}`),a.orderLg!==void 0&&o.push(`order-lg-${a.orderLg}`),a.orderXl!==void 0&&o.push(`order-xl-${a.orderXl}`),a.orderXxl!==void 0&&o.push(`order-xxl-${a.orderXxl}`),a.alignSelf&&o.push(`align-self-${a.alignSelf}`),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),Ce=["src","alt"],Ve={key:1,class:"card-header"},$e={key:2,class:"card-body"},Ne={key:0,class:"card-title"},Ee={key:1,class:"card-text"},ve={key:3,class:"card-footer"},xe=["src","alt"],I=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},imgSrc:{type:String,default:void 0},imgAlt:{type:String,default:""},imgTop:{type:Boolean,default:!0},imgBottom:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>{const o=["card"];return a.variant&&o.push(`bg-${a.variant}`),a.border&&o.push(`border-${a.border}`),a.textVariant&&o.push(`text-${a.textVariant}`),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[t.imgSrc&&t.imgTop?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.imgSrc,alt:t.imgAlt,class:"card-img-top"},null,8,Ce)):e.createCommentVNode("",!0),t.header||o.$slots.header?(e.openBlock(),e.createElementBlock("div",Ve,[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.header),1)])])):e.createCommentVNode("",!0),t.title||t.body||o.$slots.default||o.$slots.body?(e.openBlock(),e.createElementBlock("div",$e,[t.title||o.$slots.title?(e.openBlock(),e.createElementBlock("h5",Ne,[e.renderSlot(o.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),t.body||o.$slots.body?(e.openBlock(),e.createElementBlock("p",Ee,[e.renderSlot(o.$slots,"body",{},()=>[e.createTextVNode(e.toDisplayString(t.body),1)])])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")])):e.createCommentVNode("",!0),t.footer||o.$slots.footer?(e.openBlock(),e.createElementBlock("div",ve,[e.renderSlot(o.$slots,"footer",{},()=>[e.createTextVNode(e.toDisplayString(t.footer),1)])])):e.createCommentVNode("",!0),t.imgSrc&&t.imgBottom?(e.openBlock(),e.createElementBlock("img",{key:4,src:t.imgSrc,alt:t.imgAlt,class:"card-img-bottom"},null,8,xe)):e.createCommentVNode("",!0)]),_:3},8,["class"]))}}),we=["aria-label"],Te={class:"breadcrumb"},ze=["aria-current"],O=e.defineComponent({__name:"VibeBreadcrumb",props:{ariaLabel:{type:String,default:"breadcrumb"},items:{type:Array,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=m,l=(o,s,n)=>{o.active||a("item-click",{item:o,index:s,event:n})};return(o,s)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ol",Te,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,i)=>(e.openBlock(),e.createElementBlock("li",{key:i,class:e.normalizeClass(["breadcrumb-item",{active:n.active}]),"aria-current":n.active?"page":void 0},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.href?"a":n.to?"router-link":"span"),{href:n.href,to:n.to,onClick:r=>l(n,i,r)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"item",{item:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.text),1)])]),_:2},1032,["href","to","onClick"]))],10,ze))),128))])],8,we))}}),R=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,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>{const r=["nav"];return a.tabs&&r.push("nav-tabs"),a.pills&&r.push("nav-pills"),a.fill&&r.push("nav-fill"),a.justified&&r.push("nav-justified"),a.vertical&&r.push("flex-column"),r.join(" ")}),s=r=>{const d=["nav-link"];return r.active&&d.push("active"),r.disabled&&d.push("disabled"),d.join(" ")},n=r=>r.href?"a":r.to?"router-link":"a",i=(r,d,c)=>{r.disabled||l("item-click",{item:r,index:d,event:c})};return(r,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(c,f)=>(e.openBlock(),e.createElementBlock("li",{key:f,class:"nav-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n(c)),{class:e.normalizeClass(s(c)),href:c.href,to:c.to,"aria-current":c.active?"page":void 0,"aria-disabled":c.disabled,onClick:u=>i(c,f,u)},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"item",{item:c,index:f},()=>[e.createTextVNode(e.toDisplayString(c.text),1)])]),_:2},1032,["class","href","to","aria-current","aria-disabled","onClick"]))]))),128))]),_:3},8,["class"]))}}),X=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:m}){const a=t,l=e.reactive({}),o=i=>{l[i]=!l[i]};e.provide("vibeNavbarCollapse",{collapseStates:l,toggleCollapse:o});const s=e.computed(()=>{const i=["navbar"];return a.expand===!0?i.push("navbar-expand"):typeof a.expand=="string"&&i.push(`navbar-expand-${a.expand}`),a.variant==="dark"||a.variant==="light"?i.push(`navbar-${a.variant}`,`bg-${a.variant}`):i.push(`bg-${a.variant}`),a.position&&i.push(a.position),i.join(" ")}),n=e.computed(()=>{if(a.container!==!1)return a.container===!0?"container-fluid":`container-${a.container}`});return(i,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(n.value)},[e.renderSlot(i.$slots,"default")],2)):e.renderSlot(i.$slots,"default",{key:1})]),_:3},8,["class"]))}}),Y=e.defineComponent({__name:"VibeNavbarBrand",props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=a.href?"a":a.to?"router-link":"span";return(o,s)=>(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"]))}}),De=["aria-controls","aria-expanded","aria-label"],G=e.defineComponent({__name:"VibeNavbarToggle",props:{target:{type:String,required:!0},ariaLabel:{type:String,default:"Toggle navigation"}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.inject("vibeNavbarCollapse",null),o=e.computed(()=>(l==null?void 0:l.collapseStates[a.target])??!1),s=()=>{l&&l.toggleCollapse(a.target)};return(n,i)=>(e.openBlock(),e.createElementBlock("button",{class:"navbar-toggler",type:"button","aria-controls":t.target,"aria-expanded":o.value,"aria-label":t.ariaLabel,onClick:s},[...i[0]||(i[0]=[e.createElementVNode("span",{class:"navbar-toggler-icon"},null,-1)])],8,De))}}),H=e.defineComponent({__name:"VibeNavbarNav",props:{tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=m,l=n=>{const i=["nav-link"];return n.active&&i.push("active"),n.disabled&&i.push("disabled"),i.join(" ")},o=n=>n.href?"a":n.to?"router-link":"a",s=(n,i,r)=>{n.disabled||a("item-click",{item:n,index:i,event:r})};return(n,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"navbar-nav"},{default:e.withCtx(()=>[t.items&&t.items.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(r,d)=>(e.openBlock(),e.createElementBlock("li",{key:d,class:"nav-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o(r)),{class:e.normalizeClass(l(r)),href:r.href,to:r.to,"aria-current":r.active?"page":void 0,"aria-disabled":r.disabled,onClick:c=>s(r,d,c)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"item",{item:r,index:d},()=>[e.createTextVNode(e.toDisplayString(r.text),1)])]),_:2},1032,["class","href","to","aria-current","aria-disabled","onClick"]))]))),128)):e.renderSlot(n.$slots,"default",{key:1})]),_:3}))}}),Me=["aria-label"],Fe=["disabled","aria-disabled"],qe=["aria-current","onClick"],Le=["disabled","aria-disabled"],U=e.defineComponent({__name:"VibePagination",props:{size:{type:String,default:void 0},ariaLabel:{type:String,default:"Pagination"},totalPages:{type:Number,required:!0},currentPage:{type:Number,default:1},showPrevNext:{type:Boolean,default:!0},prevText:{type:String,default:"Previous"},nextText:{type:String,default:"Next"}},emits:["update:currentPage","page-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>{const d=["pagination"];return a.size&&d.push(`pagination-${a.size}`),d.join(" ")}),s=e.computed(()=>Array.from({length:a.totalPages},(d,c)=>c+1)),n=d=>{d>=1&&d<=a.totalPages&&(l("update:currentPage",d),l("page-click",d))},i=e.computed(()=>a.currentPage===1),r=e.computed(()=>a.currentPage===a.totalPages);return(d,c)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ul",{class:e.normalizeClass(o.value)},[t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:0,class:e.normalizeClass(["page-item",{disabled:i.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:i.value,"aria-disabled":i.value,onClick:c[0]||(c[0]=f=>n(t.currentPage-1))},[e.renderSlot(d.$slots,"prev",{disabled:i.value},()=>[e.createTextVNode(e.toDisplayString(t.prevText),1)])],8,Fe)],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>(e.openBlock(),e.createElementBlock("li",{key:f,class:e.normalizeClass(["page-item",{active:f===t.currentPage}])},[e.createElementVNode("button",{class:"page-link",type:"button","aria-current":f===t.currentPage?"page":void 0,onClick:u=>n(f)},[e.renderSlot(d.$slots,"page",{page:f,active:f===t.currentPage},()=>[e.createTextVNode(e.toDisplayString(f),1)])],8,qe)],2))),128)),t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:1,class:e.normalizeClass(["page-item",{disabled:r.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:r.value,"aria-disabled":r.value,onClick:c[1]||(c[1]=f=>n(t.currentPage+1))},[e.renderSlot(d.$slots,"next",{disabled:r.value},()=>[e.createTextVNode(e.toDisplayString(t.nextText),1)])],8,Le)],2)):e.createCommentVNode("",!0)],2)],8,Me))}}),Pe=["id","aria-labelledby"],K=e.defineComponent({__name:"VibeTabContent",props:{id:{type:String,default:void 0},tag:{type:String,default:"div"},panes:{type:Array,required:!0},fade:{type:Boolean,default:!0}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=o=>{const s=["tab-pane"];return a.fade&&s.push("fade"),o.active&&s.push("show","active"),s.join(" ")};return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:"tab-content"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.panes,(n,i)=>(e.openBlock(),e.createElementBlock("div",{key:n.id,id:n.id,class:e.normalizeClass(l(n)),role:"tabpanel","aria-labelledby":`${n.id}-tab`,tabindex:"0"},[e.renderSlot(o.$slots,"pane",{pane:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.content),1)])],10,Pe))),128))]),_:3},8,["id"]))}}),Q=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,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>{const r=["list-group"];return a.flush&&r.push("list-group-flush"),a.numbered&&r.push("list-group-numbered"),a.horizontal===!0?r.push("list-group-horizontal"):typeof a.horizontal=="string"&&r.push(`list-group-horizontal-${a.horizontal}`),r.join(" ")}),s=r=>r.href?"a":r.to?"router-link":"li",n=r=>{const d=["list-group-item"];return r.active&&d.push("active"),r.disabled&&d.push("disabled"),r.variant&&d.push(`list-group-item-${r.variant}`),d.join(" ")},i=(r,d,c)=>{r.disabled||l("item-click",{item:r,index:d,event:c})};return(r,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(c,f)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s(c)),{key:f,class:e.normalizeClass(n(c)),href:c.href,to:c.to,"aria-disabled":c.disabled,"aria-current":c.active,onClick:u=>i(c,f,u)},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"item",{item:c,index:f},()=>[e.createTextVNode(e.toDisplayString(c.text),1)])]),_:2},1032,["class","href","to","aria-disabled","aria-current","onClick"]))),128))]),_:3},8,["class"]))}}),je=["aria-valuenow","aria-valuemax"],W=e.defineComponent({__name:"VibeProgress",props:{height:{type:String,default:void 0},bars:{type:Array,required:!0}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>{if(a.height)return{height:a.height}}),o=i=>{const r=["progress-bar"];return i.variant&&r.push(`bg-${i.variant}`),(i.striped||i.animated)&&r.push("progress-bar-striped"),i.animated&&r.push("progress-bar-animated"),r.join(" ")},s=i=>{const r=i.max||100;return{width:`${Math.min(100,Math.max(0,i.value/r*100))}%`}},n=i=>i.label?i.label:i.showValue?`${i.value}%`:"";return(i,r)=>(e.openBlock(),e.createElementBlock("div",{class:"progress",style:e.normalizeStyle(l.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bars,(d,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:e.normalizeClass(o(d)),style:e.normalizeStyle(s(d)),role:"progressbar","aria-valuenow":d.value,"aria-valuemin":0,"aria-valuemax":d.max||100},[e.renderSlot(i.$slots,"label",{bar:d,index:c},()=>[e.createTextVNode(e.toDisplayString(n(d)),1)])],14,je))),128))],4))}}),Ae=["id"],Ie={class:"accordion-header"},Oe=["data-bs-target","aria-expanded","aria-controls","onClick"],Re=["id","data-bs-parent"],Xe={class:"accordion-body"},J=e.defineComponent({__name:"VibeAccordion",props:{id:{type:String,required:!0},flush:{type:Boolean,default:!1},items:{type:Array,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=m,l=(o,s)=>{a("item-click",{item:o,index:s})};return(o,s)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(["accordion",{"accordion-flush":t.flush}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,i)=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:"accordion-item"},[e.createElementVNode("h2",Ie,[e.createElementVNode("button",{class:e.normalizeClass(["accordion-button",{collapsed:!n.show}]),type:"button","data-bs-toggle":"collapse","data-bs-target":`#${n.id}`,"aria-expanded":n.show,"aria-controls":n.id,onClick:r=>l(n,i)},[e.renderSlot(o.$slots,"title",{item:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.title),1)])],10,Oe)]),e.createElementVNode("div",{id:n.id,class:e.normalizeClass(["accordion-collapse","collapse",{show:n.show}]),"data-bs-parent":`#${t.id}`},[e.createElementVNode("div",Xe,[e.renderSlot(o.$slots,"content",{item:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.content),1)])])],10,Re)]))),128))],10,Ae))}}),Z=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},isNav:{type:Boolean,default:!1}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{emit:m}){const a=t,l=e.inject("vibeNavbarCollapse",null),o=e.ref(a.modelValue);e.watch(()=>a.modelValue,i=>{o.value=i});const s=e.computed(()=>l&&a.id in l.collapseStates?l.collapseStates[a.id]:o.value),n=e.computed(()=>{const i=["collapse"];return a.isNav&&i.push("navbar-collapse"),a.horizontal&&i.push("collapse-horizontal"),s.value&&i.push("show"),i.join(" ")});return(i,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:e.normalizeClass(n.value)},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["id","class"]))}}),Ye=["id"],Ge=["aria-labelledby"],He={key:0},Ue={key:1},Ke={class:"dropdown-header"},Qe={key:2},_=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,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>a.direction==="up"?"dropup":a.direction==="end"?"dropend":a.direction==="start"?"dropstart":"dropdown"),s=e.computed(()=>{const d=["btn",`btn-${a.variant}`];return a.size&&d.push(`btn-${a.size}`),d.join(" ")}),n=e.computed(()=>{const d=["dropdown-menu"];return a.menuEnd&&d.push("dropdown-menu-end"),d.join(" ")}),i=d=>{const c=["dropdown-item"];return d.active&&c.push("active"),d.disabled&&c.push("disabled"),c.join(" ")},r=(d,c,f)=>{!d.disabled&&!d.divider&&!d.header&&l("item-click",{item:d,index:c,event:f})};return(d,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[e.createElementVNode("button",{id:t.id,class:e.normalizeClass([s.value,"dropdown-toggle"]),type:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[e.renderSlot(d.$slots,"button",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])],10,Ye),e.createElementVNode("ul",{class:e.normalizeClass(n.value),"aria-labelledby":t.id},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[f.divider?(e.openBlock(),e.createElementBlock("li",He,[...c[0]||(c[0]=[e.createElementVNode("hr",{class:"dropdown-divider"},null,-1)])])):f.header?(e.openBlock(),e.createElementBlock("li",Ue,[e.createElementVNode("h6",Ke,[e.renderSlot(d.$slots,"header",{item:f,index:u},()=>[e.createTextVNode(e.toDisplayString(f.text),1)])])])):(e.openBlock(),e.createElementBlock("li",Qe,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.href?"a":f.to?"router-link":"button"),{class:e.normalizeClass(i(f)),href:f.href,to:f.to,type:!f.href&&!f.to?"button":void 0,disabled:f.disabled,onClick:k=>r(f,u,k)},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"item",{item:f,index:u},()=>[e.createTextVNode(e.toDisplayString(f.text),1)])]),_:2},1032,["class","href","to","type","disabled","onClick"]))]))],64))),128))],10,Ge)],2))}}),We=["id","aria-labelledby","aria-hidden","data-bs-backdrop","data-bs-keyboard"],Je={class:"modal-content"},Ze={key:0,class:"modal-header"},_e=["id"],et={class:"modal-body"},tt={key:1,class:"modal-footer"},ee=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:m}){const a=t,l=m,o=e.ref(null),s=e.ref(null),n=e.ref(!1),i=e.computed(()=>{const u=["modal-dialog"];return a.size&&u.push(`modal-${a.size}`),a.centered&&u.push("modal-dialog-centered"),a.scrollable&&u.push("modal-dialog-scrollable"),a.fullscreen===!0?u.push("modal-fullscreen"):typeof a.fullscreen=="string"&&u.push(`modal-fullscreen-${a.fullscreen}-down`),u.join(" ")}),r=()=>{n.value=!0,l("show")},d=()=>{l("shown"),l("update:modelValue",!0)},c=()=>{l("hide")},f=()=>{n.value=!1,l("hidden"),l("update:modelValue",!1)};return e.onMounted(async()=>{if(o.value)try{const k=(await import("bootstrap")).Modal;s.value=new k(o.value,{backdrop:a.staticBackdrop?"static":!0,keyboard:!a.staticBackdrop}),o.value.addEventListener("show.bs.modal",r),o.value.addEventListener("shown.bs.modal",d),o.value.addEventListener("hide.bs.modal",c),o.value.addEventListener("hidden.bs.modal",f),a.modelValue&&s.value.show()}catch{l("component-error","Bootstrap JS not loaded. Modal will use data attributes only.")}}),e.onBeforeUnmount(()=>{o.value&&(o.value.removeEventListener("show.bs.modal",r),o.value.removeEventListener("shown.bs.modal",d),o.value.removeEventListener("hide.bs.modal",c),o.value.removeEventListener("hidden.bs.modal",f)),s.value&&(s.value.dispose(),s.value=null)}),e.watch(()=>a.modelValue,u=>{s.value&&(u&&!n.value?s.value.show():!u&&n.value&&s.value.hide())}),(u,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"modalRef",ref:o,id:t.id,class:"modal fade",tabindex:"-1","aria-labelledby":`${t.id}-label`,"aria-hidden":!n.value,"data-bs-backdrop":t.staticBackdrop?"static":void 0,"data-bs-keyboard":!t.staticBackdrop},[e.createElementVNode("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("div",Je,[t.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ze,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"modal-title"},[e.renderSlot(u.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,_e),k[0]||(k[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1))])),e.createElementVNode("div",et,[e.renderSlot(u.$slots,"default")]),t.hideFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",tt,[e.renderSlot(u.$slots,"footer",{},()=>[k[1]||(k[1]=e.createElementVNode("button",{type:"button",class:"btn btn-secondary","data-bs-dismiss":"modal"},"Close",-1))])]))])],2)],8,We))}}),at=["id","aria-labelledby","data-bs-backdrop","data-bs-scroll"],lt={class:"offcanvas-header"},ot=["id"],nt={class:"offcanvas-body"},te=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:m}){const a=t,l=e.computed(()=>`offcanvas offcanvas-${a.placement}`);return(o,s)=>(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",lt,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"offcanvas-title"},[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,ot),s[0]||(s[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"offcanvas","aria-label":"Close"},null,-1))]),e.createElementVNode("div",nt,[e.renderSlot(o.$slots,"default")])],10,at))}}),it=["id","data-bs-autohide","data-bs-delay"],rt={key:0,class:"toast-header"},st={class:"me-auto"},dt={class:"toast-body"},ae=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:m}){const a=t,l=m,o=e.ref(null),s=e.ref(null),n=e.ref(!1),i=e.computed(()=>{const u=["toast"];return a.variant&&u.push(`text-bg-${a.variant}`),u.join(" ")}),r=()=>{n.value=!0,l("show")},d=()=>{l("shown"),l("update:modelValue",!0)},c=()=>{l("hide")},f=()=>{n.value=!1,l("hidden"),l("update:modelValue",!1)};return e.onMounted(async()=>{if(o.value)try{const k=(await import("bootstrap")).Toast;s.value=new k(o.value,{autohide:a.autohide,delay:a.delay}),o.value.addEventListener("show.bs.toast",r),o.value.addEventListener("shown.bs.toast",d),o.value.addEventListener("hide.bs.toast",c),o.value.addEventListener("hidden.bs.toast",f),a.modelValue&&s.value.show()}catch{l("component-error","Bootstrap JS not loaded. Toast will use data attributes only.")}}),e.onBeforeUnmount(()=>{o.value&&(o.value.removeEventListener("show.bs.toast",r),o.value.removeEventListener("shown.bs.toast",d),o.value.removeEventListener("hide.bs.toast",c),o.value.removeEventListener("hidden.bs.toast",f)),s.value&&(s.value.dispose(),s.value=null)}),e.watch(()=>a.modelValue,u=>{s.value&&(u&&!n.value?s.value.show():!u&&n.value&&s.value.hide())}),(u,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"toastRef",ref:o,id:t.id,class:e.normalizeClass(i.value),role:"alert","aria-live":"assertive","aria-atomic":"true","data-bs-autohide":t.autohide,"data-bs-delay":t.delay},[t.title||u.$slots.header?(e.openBlock(),e.createElementBlock("div",rt,[e.renderSlot(u.$slots,"header",{},()=>[e.createElementVNode("strong",st,e.toDisplayString(t.title),1)]),k[0]||(k[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"toast","aria-label":"Close"},null,-1))])):e.createCommentVNode("",!0),e.createElementVNode("div",dt,[e.renderSlot(u.$slots,"default")])],10,it))}}),ct=["id","data-bs-ride","data-bs-interval","data-bs-keyboard","data-bs-pause","data-bs-wrap","data-bs-touch"],mt={key:0,class:"carousel-indicators"},ft=["data-bs-target","data-bs-slide-to","aria-current","aria-label"],ut={class:"carousel-inner"},bt=["data-bs-interval"],yt=["src","alt"],pt={key:0,class:"carousel-caption d-none d-md-block"},ht={key:0},gt={key:1},kt=["data-bs-target"],Bt=["data-bs-target"],le=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,required:!0}},emits:["slide","slid","component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>{const s=["carousel","slide"];return a.dark&&s.push("carousel-dark"),a.fade&&s.push("carousel-fade"),s.join(" ")}),o=(s,n)=>s.alt?s.alt:s.caption?s.caption:s.captionText?s.captionText:`Carousel slide ${n+1}`;return e.onMounted(()=>{}),(s,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(l.value),"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.indicators?(e.openBlock(),e.createElementBlock("div",mt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(i,r)=>(e.openBlock(),e.createElementBlock("button",{key:`indicator-${i.src}-${r}`,type:"button","data-bs-target":`#${t.id}`,"data-bs-slide-to":r,class:e.normalizeClass({active:i.active||r===0}),"aria-current":i.active||r===0,"aria-label":`Slide ${r+1}`},null,10,ft))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(i,r)=>(e.openBlock(),e.createElementBlock("div",{key:`slide-${i.src}-${r}`,class:e.normalizeClass(["carousel-item",{active:i.active||r===0}]),"data-bs-interval":i.interval},[e.createElementVNode("img",{src:i.src,alt:o(i,r),class:"d-block w-100"},null,8,yt),i.caption||i.captionText||s.$slots.caption?(e.openBlock(),e.createElementBlock("div",pt,[e.renderSlot(s.$slots,"caption",{item:i,index:r},()=>[i.caption?(e.openBlock(),e.createElementBlock("h5",ht,e.toDisplayString(i.caption),1)):e.createCommentVNode("",!0),i.captionText?(e.openBlock(),e.createElementBlock("p",gt,e.toDisplayString(i.captionText),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)],10,bt))),128))]),t.controls?(e.openBlock(),e.createElementBlock("button",{key:1,class:"carousel-control-prev",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"prev"},[...n[0]||(n[0]=[e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Previous",-1)])],8,kt)):e.createCommentVNode("",!0),t.controls?(e.openBlock(),e.createElementBlock("button",{key:2,class:"carousel-control-next",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"next"},[...n[1]||(n[1]=[e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Next",-1)])],8,Bt)):e.createCommentVNode("",!0)],10,ct))}}),St=["data-bs-placement","data-bs-title","data-bs-trigger","data-bs-html"],oe=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:m}){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,St))}}),Ct=["data-bs-placement","data-bs-title","data-bs-content","data-bs-trigger","data-bs-html"],ne=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:m}){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,Ct))}}),ie=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:m}){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"]))}}),re=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:m}){const a=t,l=m,o=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(" ")}),s=e.computed(()=>{const i={};if(a.fontSize)i.fontSize=a.fontSize;else if(a.size){const d={"1x":"1rem","2x":"2rem","3x":"3rem","4x":"4rem","5x":"5rem"};d[a.size]&&(i.fontSize=d[a.size])}a.color&&(i.color=a.color);const r=[];return a.flipH&&r.push("scaleX(-1)"),a.flipV&&r.push("scaleY(-1)"),a.rotate&&r.push(`rotate(${a.rotate}deg)`),r.length>0&&(i.transform=r.join(" "),i.display="inline-block"),Object.keys(i).length>0?i:void 0}),n=i=>{l("click",i)};return(i,r)=>(e.openBlock(),e.createElementBlock("i",{class:e.normalizeClass(o.value),style:e.normalizeStyle(s.value),"aria-hidden":!0,onClick:n},null,6))}}),Vt={class:"vibe-datatable"},$t={class:"row mb-3"},Nt={key:0,class:"col-md-6 mb-2 mb-md-0"},Et=["placeholder"],vt={key:1,class:"col-md-6"},xt={class:"d-flex justify-content-md-end align-items-center"},wt=["value"],Tt=["onClick"],zt={key:0,class:"ms-1"},Dt=["onClick"],Mt={key:0},Ft=["colspan"],qt={class:"row"},Lt={key:0,class:"col-md-6 mb-2 mb-md-0"},Pt={class:"datatable-info"},jt={key:1,class:"col-md-6"},At={class:"pagination justify-content-md-end mb-0"},It={key:0,class:"page-item"},Ot={key:1,class:"page-item disabled"},Rt=["onClick"],Xt={key:2,class:"page-item disabled"},Yt={key:3,class:"page-item"},Gt=e.defineComponent({__name:"VibeDataTable",props:e.mergeModels({items:{type:Array,default:()=>[]},columns:{type:Array,required:!0},rowKey:{type:String,default:"id"},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},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)"},perPageOptions:{type:Array,default:()=>[5,10,25,50,100]}},{currentPage:{default:1},currentPageModifiers:{},perPage:{default:10},perPageModifiers:{},sortBy:{default:void 0},sortByModifiers:{},sortDesc:{type:Boolean,default:!1},sortDescModifiers:{}}),emits:e.mergeModels(["row-clicked","component-error"],["update:currentPage","update:perPage","update:sortBy","update:sortDesc"]),setup(t,{emit:m}){const a=t,l=e.useModel(t,"currentPage"),o=e.useModel(t,"perPage"),s=e.useModel(t,"sortBy"),n=e.useModel(t,"sortDesc"),i=m,r=e.ref(""),d=e.ref(null),c=e.ref(""),f=(b,p)=>a.rowKey&&b[a.rowKey]!==void 0?String(b[a.rowKey]):p;e.watch(r,b=>{d.value!==null&&clearTimeout(d.value),d.value=setTimeout(()=>{c.value=b,l.value=1,d.value=null},a.searchDebounce)}),e.onBeforeUnmount(()=>{d.value!==null&&(clearTimeout(d.value),d.value=null)});const u=e.computed(()=>{if(!a.searchable||!c.value)return a.items;const b=c.value.toLowerCase();return a.items.filter(p=>a.columns.some(h=>{if(h.searchable===!1)return!1;const S=p[h.key];return S==null?!1:String(S).toLowerCase().includes(b)}))}),k=(b,p,h)=>{if(b==null)return 1;if(p==null)return-1;if(typeof b=="string"&&typeof p=="string"){const S=b.toLowerCase(),$=p.toLowerCase();return S<$?h?1:-1:S>$?h?-1:1:0}if(typeof b=="number"&&typeof p=="number")return b<p?h?1:-1:b>p?h?-1:1:0;if(typeof b=="boolean"&&typeof p=="boolean")return b===p?0:(b?1:-1)*(h?-1:1);if(b instanceof Date&&p instanceof Date){const S=b.getTime(),$=p.getTime();return S<$?h?1:-1:S>$?h?-1:1:0}return 0},g=e.computed(()=>{if(!a.sortable||!s.value)return u.value;const b=[...u.value],p=s.value;return b.sort((h,S)=>k(h[p],S[p],n.value)),b}),C=e.computed(()=>{if(!a.paginated)return g.value;const b=(l.value-1)*o.value,p=b+o.value;return g.value.slice(b,p)}),V=e.computed(()=>a.items.length),B=e.computed(()=>u.value.length),N=e.computed(()=>Math.ceil(B.value/o.value)),x=e.computed(()=>B.value===0?0:(l.value-1)*o.value+1),w=e.computed(()=>{const b=l.value*o.value;return Math.min(b,B.value)}),gl=e.computed(()=>(B.value!==V.value?a.filteredInfoText:a.infoText).replace("{start}",String(x.value)).replace("{end}",String(w.value)).replace("{total}",String(B.value)).replace("{totalRows}",String(V.value))),kl=e.computed(()=>{const b=["table"];return a.striped&&b.push("table-striped"),a.bordered&&b.push("table-bordered"),a.borderless&&b.push("table-borderless"),a.hover&&b.push("table-hover"),a.small&&b.push("table-sm"),a.variant&&b.push(`table-${a.variant}`),b.join(" ")}),Bl=b=>{!a.sortable||b.sortable===!1||(s.value===b.key?n.value=!n.value:(s.value=b.key,n.value=!1))},E=b=>{b<1||b>N.value||(l.value=b)},Sl=()=>{l.value=1},Cl=(b,p)=>{i("row-clicked",b,p)},Vl=(b,p)=>{const h=b[p.key];return p.formatter?p.formatter(h,b):h},$l=b=>!a.sortable||b.sortable===!1?"":s.value!==b.key?"⇅":n.value?"↓":"↑",Nl=b=>{const p={...b.thStyle};return a.sortable&&b.sortable!==!1&&(p.cursor="pointer"),p};return(b,p)=>(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("div",$t,[t.searchable?(e.openBlock(),e.createElementBlock("div",Nt,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=h=>r.value=h),type:"search",class:"form-control",placeholder:t.searchPlaceholder},null,8,Et),[[e.vModelText,r.value]])])):e.createCommentVNode("",!0),t.showPerPage&&t.paginated?(e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",xt,[p[6]||(p[6]=e.createElementVNode("label",{class:"me-2 mb-0"},"Show",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":p[1]||(p[1]=h=>o.value=h),class:"form-select form-select-sm",style:{width:"auto"},onChange:Sl},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.perPageOptions,h=>(e.openBlock(),e.createElementBlock("option",{key:h,value:h},e.toDisplayString(h),9,wt))),128))],544),[[e.vModelSelect,o.value,void 0,{number:!0}]]),p[7]||(p[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(kl.value)},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,h=>(e.openBlock(),e.createElementBlock("th",{key:h.key,class:e.normalizeClass(h.headerClass),style:e.normalizeStyle(Nl(h)),onClick:S=>Bl(h)},[e.createTextVNode(e.toDisplayString(h.label)+" ",1),t.sortable&&h.sortable!==!1?(e.openBlock(),e.createElementBlock("span",zt,e.toDisplayString($l(h)),1)):e.createCommentVNode("",!0)],14,Tt))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(h,S)=>(e.openBlock(),e.createElementBlock("tr",{key:f(h,S),onClick:$=>Cl(h,S),style:{cursor:"pointer"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,$=>(e.openBlock(),e.createElementBlock("td",{key:$.key,class:e.normalizeClass($.class),style:e.normalizeStyle($.tdStyle)},[e.renderSlot(b.$slots,`cell(${$.key})`,{item:h,value:h[$.key],index:S},()=>[e.createTextVNode(e.toDisplayString(Vl(h,$)),1)],!0)],6))),128))],8,Dt))),128)),C.value.length===0&&t.showEmpty?(e.openBlock(),e.createElementBlock("tr",Mt,[e.createElementVNode("td",{colspan:t.columns.length,class:"text-center"},e.toDisplayString(t.emptyText),9,Ft)])):e.createCommentVNode("",!0)])],2)],2),e.createElementVNode("div",qt,[t.showInfo?(e.openBlock(),e.createElementBlock("div",Lt,[e.createElementVNode("div",Pt,e.toDisplayString(gl.value),1)])):e.createCommentVNode("",!0),t.paginated&&N.value>1?(e.openBlock(),e.createElementBlock("div",jt,[e.createElementVNode("nav",null,[e.createElementVNode("ul",At,[e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:l.value===1}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[2]||(p[2]=e.withModifiers(h=>E(l.value-1),["prevent"]))}," Previous ")],2),l.value>3?(e.openBlock(),e.createElementBlock("li",It,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[3]||(p[3]=e.withModifiers(h=>E(1),["prevent"]))},"1")])):e.createCommentVNode("",!0),l.value>4?(e.openBlock(),e.createElementBlock("li",Ot,[...p[8]||(p[8]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.from({length:N.value},(h,S)=>S+1).filter(h=>h>=l.value-2&&h<=l.value+2),h=>(e.openBlock(),e.createElementBlock("li",{key:h,class:e.normalizeClass(["page-item",{active:h===l.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:e.withModifiers(S=>E(h),["prevent"])},e.toDisplayString(h),9,Rt)],2))),128)),l.value<N.value-3?(e.openBlock(),e.createElementBlock("li",Xt,[...p[9]||(p[9]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),l.value<N.value-2?(e.openBlock(),e.createElementBlock("li",Yt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[4]||(p[4]=e.withModifiers(h=>E(N.value),["prevent"]))},e.toDisplayString(N.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:l.value===N.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[5]||(p[5]=e.withModifiers(h=>E(l.value+1),["prevent"]))}," Next ")],2)])])])):e.createCommentVNode("",!0)])]))}}),v=(t,m)=>{const a=t.__vccOpts||t;for(const[l,o]of m)a[l]=o;return a},se=v(Gt,[["__scopeId","data-v-bafec986"]]),Ht={class:"mb-3"},Ut=["for"],Kt={key:0,class:"text-danger"},Qt=["id","type","value","placeholder","disabled","readonly","required","aria-invalid","aria-describedby"],Wt=["id"],Jt={key:2,class:"valid-feedback",style:{display:"block"}},Zt=["id"],de=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:m}){const a=t,l=m,o=e.computed(()=>{const d=[];return a.plaintext?d.push("form-control-plaintext"):(d.push("form-control"),a.size&&d.push(`form-control-${a.size}`)),a.validationState==="valid"&&d.push("is-valid"),a.validationState==="invalid"&&d.push("is-invalid"),d.join(" ")}),s=d=>{const c=d.target,f=a.type==="number"?c.value===""?"":Number(c.value):c.value;l("update:modelValue",f),l("input",d),a.validateOn==="input"&&l("validate")},n=d=>{l("change",d),a.validateOn==="change"&&l("validate")},i=d=>{l("blur",d),a.validateOn==="blur"&&l("validate")},r=d=>{l("focus",d)};return(d,c)=>(e.openBlock(),e.createElementBlock("div",Ht,[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",Kt,"*")):e.createCommentVNode("",!0)],8,Ut)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(o.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly||t.plaintext,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:s,onChange:n,onBlur:i,onFocus:r},null,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,Wt)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Jt,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,Zt)):e.createCommentVNode("",!0)]))}}),_t={class:"mb-3"},ea=["for"],ta={key:0,class:"text-danger"},aa=["id","value","disabled","required","multiple","size","aria-invalid","aria-describedby"],la=["selected"],oa=["value","disabled"],na=["id"],ia={key:2,class:"valid-feedback",style:{display:"block"}},ra=["id"],ce=e.defineComponent({__name:"VibeFormSelect",props:{modelValue:{type:[String,Number,Array],default:"",validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const r=["form-select"];return a.size&&r.push(`form-select-${a.size}`),a.validationState==="valid"&&r.push("is-valid"),a.validationState==="invalid"&&r.push("is-invalid"),r.join(" ")}),s=r=>{const d=r.target;let c;a.multiple?c=Array.from(d.selectedOptions).map(u=>u.value):c=d.value,l("update:modelValue",c),l("change",r),a.validateOn==="change"&&l("validate")},n=r=>{l("blur",r),a.validateOn==="blur"&&l("validate")},i=r=>{l("focus",r)};return(r,d)=>(e.openBlock(),e.createElementBlock("div",_t,[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",ta,"*")):e.createCommentVNode("",!0)],8,ea)):e.createCommentVNode("",!0),e.createElementVNode("select",{id:t.id,class:e.normalizeClass(o.value),value:t.modelValue,disabled:t.disabled,required:t.required,multiple:t.multiple,size:t.htmlSize,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:s,onBlur:n,onFocus:i},[t.placeholder&&!t.multiple?(e.openBlock(),e.createElementBlock("option",{key:0,value:"",disabled:"",selected:!t.modelValue},e.toDisplayString(t.placeholder),9,la)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,c=>(e.openBlock(),e.createElementBlock("option",{key:c.value,value:c.value,disabled:c.disabled},e.toDisplayString(c.text),9,oa))),128)),e.renderSlot(r.$slots,"default")],42,aa),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,na)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ia,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,ra)):e.createCommentVNode("",!0)]))}}),sa={class:"mb-3"},da=["for"],ca={key:0,class:"text-danger"},ma=["id","value","placeholder","disabled","readonly","required","rows","maxlength","aria-invalid","aria-describedby"],fa={key:1,class:"form-text"},ua=["id"],ba={key:3,class:"valid-feedback",style:{display:"block"}},ya=["id"],me=e.defineComponent({__name:"VibeFormTextarea",props:{modelValue:{type:String,default:"",validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const f=["form-control"];return a.size&&f.push(`form-control-${a.size}`),a.validationState==="valid"&&f.push("is-valid"),a.validationState==="invalid"&&f.push("is-invalid"),f.join(" ")}),s=e.computed(()=>{const f=typeof a.modelValue=="string"?a.modelValue:"";return f?f.length:0}),n=e.computed(()=>a.maxlength?`${s.value} / ${a.maxlength}`:`${s.value}`),i=f=>{const u=f.target;l("update:modelValue",u.value),l("input",f),a.validateOn==="input"&&l("validate")},r=f=>{l("change",f),a.validateOn==="change"&&l("validate")},d=f=>{l("blur",f),a.validateOn==="blur"&&l("validate")},c=f=>{l("focus",f)};return(f,u)=>(e.openBlock(),e.createElementBlock("div",sa,[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",ca,"*")):e.createCommentVNode("",!0)],8,da)):e.createCommentVNode("",!0),e.createElementVNode("textarea",{id:t.id,class:e.normalizeClass(o.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,rows:t.rows,maxlength:t.maxlength,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:i,onChange:r,onBlur:d,onFocus:c},null,42,ma),t.showCharCount?(e.openBlock(),e.createElementBlock("div",fa,e.toDisplayString(n.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,ua)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ba,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,ya)):e.createCommentVNode("",!0)]))}}),pa={class:"mb-3"},ha=["for"],ga={key:0,class:"text-danger"},ka=["disabled"],Ba=["id","value","disabled","readonly","required","min","max","step","aria-invalid","aria-describedby"],Sa=["disabled"],Ca=["id"],Va={key:2,class:"valid-feedback",style:{display:"block"}},$a=["id"],fe=v(e.defineComponent({__name:"VibeFormSpinbutton",props:{modelValue:{type:Number,default:0,validator:t=>!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:m}){const a=t,l=m,o=e.computed(()=>{const g=["form-control"];return a.size&&g.push(`form-control-${a.size}`),a.validationState==="valid"&&g.push("is-valid"),a.validationState==="invalid"&&g.push("is-invalid"),g.join(" ")}),s=e.computed(()=>{const g=["input-group"];return a.size&&g.push(`input-group-${a.size}`),a.vertical&&g.push("input-group-vertical"),g.join(" ")}),n=e.computed(()=>a.disabled||a.readonly?!1:a.min===void 0||a.wrap?!0:a.modelValue>a.min),i=e.computed(()=>a.disabled||a.readonly?!1:a.max===void 0||a.wrap?!0:a.modelValue<a.max),r=g=>{const C=g.target;let V=C.value===""?0:Number(C.value);a.min!==void 0&&V<a.min&&(V=a.min),a.max!==void 0&&V>a.max&&(V=a.max),l("update:modelValue",V),l("input",g),a.validateOn==="input"&&l("validate")},d=g=>{l("change",g),a.validateOn==="change"&&l("validate")},c=g=>{l("blur",g),a.validateOn==="blur"&&l("validate")},f=g=>{l("focus",g)},u=()=>{if(!i.value)return;let g=a.modelValue+a.step;a.max!==void 0&&g>a.max&&(g=a.wrap?a.min??0:a.max),l("update:modelValue",g),l("increment",g),a.validateOn==="change"&&l("validate")},k=()=>{if(!n.value)return;let g=a.modelValue-a.step;a.min!==void 0&&g<a.min&&(g=a.wrap?a.max??0:a.min),l("update:modelValue",g),l("decrement",g),a.validateOn==="change"&&l("validate")};return(g,C)=>(e.openBlock(),e.createElementBlock("div",pa,[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",ga,"*")):e.createCommentVNode("",!0)],8,ha)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(s.value)},[e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!n.value,onClick:k,"aria-label":"Decrement"},[...C[0]||(C[0]=[e.createElementVNode("span",{"aria-hidden":"true"},"−",-1)])],8,ka),e.createElementVNode("input",{id:t.id,type:"number",class:e.normalizeClass(o.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,step:t.step,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:r,onChange:d,onBlur:c,onFocus:f},null,42,Ba),e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!i.value,onClick:u,"aria-label":"Increment"},[...C[1]||(C[1]=[e.createElementVNode("span",{"aria-hidden":"true"},"+",-1)])],8,Sa)],2),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Ca)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Va,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,$a)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-fbee244e"]]),Na={class:"mb-3"},Ea=["for"],va={key:0,class:"text-danger"},xa=["id","type","value","disabled","readonly","required","min","max","aria-invalid","aria-describedby"],wa=["id"],Ta={key:2,class:"valid-feedback",style:{display:"block"}},za=["id"],ue=e.defineComponent({__name:"VibeFormDatepicker",props:{modelValue:{type:String,default:"",validator:t=>!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: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:m}){const a=t,l=m,o=e.computed(()=>{const d=["form-control"];return a.size&&d.push(`form-control-${a.size}`),a.validationState==="valid"&&d.push("is-valid"),a.validationState==="invalid"&&d.push("is-invalid"),d.join(" ")}),s=d=>{const c=d.target;l("update:modelValue",c.value),l("input",d),a.validateOn==="input"&&l("validate")},n=d=>{l("change",d),a.validateOn==="change"&&l("validate")},i=d=>{l("blur",d),a.validateOn==="blur"&&l("validate")},r=d=>{l("focus",d)};return(d,c)=>(e.openBlock(),e.createElementBlock("div",Na,[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",va,"*")):e.createCommentVNode("",!0)],8,Ea)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(o.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:s,onChange:n,onBlur:i,onFocus:r},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,wa)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ta,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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)]))}}),Da=["id","checked","value","disabled","required","indeterminate","aria-invalid","aria-describedby"],Ma=["for"],Fa={key:0,class:"text-danger"},qa=["id"],La={key:2,class:"valid-feedback",style:{display:"block"}},Pa=["id"],be=e.defineComponent({__name:"VibeFormCheckbox",props:{modelValue:{type:[Boolean,Array],default:!1,validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const c=["form-check-input"];return a.validationState==="valid"&&c.push("is-valid"),a.validationState==="invalid"&&c.push("is-invalid"),c.join(" ")}),s=e.computed(()=>{const c=["form-check"];return a.inline&&c.push("form-check-inline"),c.join(" ")}),n=e.computed(()=>Array.isArray(a.modelValue)?a.modelValue.includes(a.value):a.modelValue===a.value||a.modelValue===!0),i=c=>{const f=c.target;let u;if(Array.isArray(a.modelValue))if(u=[...a.modelValue],f.checked)u.includes(a.value)||u.push(a.value);else{const k=u.indexOf(a.value);k>-1&&u.splice(k,1)}else u=f.checked;l("update:modelValue",u),l("change",c),a.validateOn==="change"&&l("validate")},r=c=>{l("blur",c),a.validateOn==="blur"&&l("validate")},d=c=>{l("focus",c)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(o.value),checked:n.value,value:t.value,disabled:t.disabled,required:t.required,indeterminate:t.indeterminate,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:i,onBlur:r,onFocus:d},null,42,Da),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",Fa,"*")):e.createCommentVNode("",!0)],8,Ma)):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,qa)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",La,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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))}}),ja=["id","checked","value","name","disabled","required","aria-invalid","aria-describedby"],Aa=["for"],Ia={key:0,class:"text-danger"},Oa=["id"],Ra={key:2,class:"valid-feedback",style:{display:"block"}},Xa=["id"],ye=e.defineComponent({__name:"VibeFormRadio",props:{modelValue:{type:[String,Number,Boolean],default:void 0,validator:t=>!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:m}){const a=t,l=m,o=e.computed(()=>{const c=["form-check-input"];return a.validationState==="valid"&&c.push("is-valid"),a.validationState==="invalid"&&c.push("is-invalid"),c.join(" ")}),s=e.computed(()=>{const c=["form-check"];return a.inline&&c.push("form-check-inline"),c.join(" ")}),n=e.computed(()=>a.modelValue===a.value),i=c=>{c.target.checked&&l("update:modelValue",a.value),l("change",c),a.validateOn==="change"&&l("validate")},r=c=>{l("blur",c),a.validateOn==="blur"&&l("validate")},d=c=>{l("focus",c)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.createElementVNode("input",{id:t.id,type:"radio",class:e.normalizeClass(o.value),checked:n.value,value:t.value,name:t.name,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:i,onBlur:r,onFocus:d},null,42,ja),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",Ia,"*")):e.createCommentVNode("",!0)],8,Aa)):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),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ra,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,Xa)):e.createCommentVNode("",!0)],2))}}),Ya={class:"form-check form-switch"},Ga=["id","checked","disabled","required","aria-invalid","aria-describedby"],Ha=["for"],Ua={key:0,class:"text-danger"},Ka=["id"],Qa={key:2,class:"valid-feedback",style:{display:"block"}},Wa=["id"],pe=e.defineComponent({__name:"VibeFormSwitch",props:{modelValue:{type:Boolean,default:!1,validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const r=["form-check-input"];return a.validationState==="valid"&&r.push("is-valid"),a.validationState==="invalid"&&r.push("is-invalid"),r.join(" ")}),s=r=>{const d=r.target;l("update:modelValue",d.checked),l("change",r),a.validateOn==="change"&&l("validate")},n=r=>{l("blur",r),a.validateOn==="blur"&&l("validate")},i=r=>{l("focus",r)};return(r,d)=>(e.openBlock(),e.createElementBlock("div",Ya,[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(o.value),checked:t.modelValue,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,role:"switch",onChange:s,onBlur:n,onFocus:i},null,42,Ga),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",Ua,"*")):e.createCommentVNode("",!0)],8,Ha)):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),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Qa,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,Wa)):e.createCommentVNode("",!0)]))}}),Ja=["for"],Za={key:0,class:"text-danger"},_a=["id"],el={key:1,class:"valid-feedback",style:{display:"block"}},tl=["id"],al=["for"],ll={key:0,class:"text-danger"},ol=["id"],nl={key:2,class:"valid-feedback",style:{display:"block"}},il=["id"],he=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 m=t,a=e.computed(()=>{const n=[];return m.floating?n.push("form-floating"):m.row?n.push("row","mb-3"):n.push("mb-3"),n.join(" ")}),l=e.computed(()=>{const n=[];return m.floating?n.push("form-label"):m.row?(n.push("col-form-label"),m.labelCols&&n.push(`col-sm-${m.labelCols}`),m.labelAlign&&n.push(`text-${m.labelAlign}`)):n.push("form-label"),n.join(" ")}),o=e.computed(()=>m.row&&m.labelCols?`col-sm-${12-Number(m.labelCols)}`:""),s=e.computed(()=>m.labelFor?`${m.labelFor}-feedback`:void 0);return(n,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(l.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Za,"*")):e.createCommentVNode("",!0)],10,Ja)):e.createCommentVNode("",!0),t.row&&t.labelCols?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(o.value)},[e.renderSlot(n.$slots,"default"),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:0,id:s.value,class:"form-text"},e.toDisplayString(t.helpText),9,_a)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",el,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:2,id:s.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,tl)):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.renderSlot(n.$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",ll,"*")):e.createCommentVNode("",!0)],10,al)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:s.value,class:"form-text"},e.toDisplayString(t.helpText),9,ol)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",nl,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:s.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,il)):e.createCommentVNode("",!0)],64))],2))}}),rl={class:"mb-3"},sl=["for"],dl={key:0,class:"text-danger"},cl={key:1,class:"alert alert-warning",role:"alert"},ml=["id"],fl=["id"],ul={key:4,class:"valid-feedback",style:{display:"block"}},bl=["id"],ge=v(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:m}){const a=t,l=m,o=e.ref(null),s=e.ref(null),n=e.ref(!1),i=e.ref(null),r=e.ref(!1),d=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.computed(()=>{const B=["vibe-wysiwyg-container"];return a.validationState==="valid"&&B.push("is-valid"),a.validationState==="invalid"&&B.push("is-invalid"),a.disabled&&B.push("disabled"),B.join(" ")}),k=[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]}],["link","image"],["clean"]],g=()=>a.toolbar===!1?!1:a.toolbar===!0||a.toolbar===void 0?k:a.toolbar,C=B=>{s.value&&(r.value=!0,s.value.setContents([],"silent"),B&&s.value.clipboard.dangerouslyPasteHTML(B,"silent"),r.value=!1)},V=()=>!s.value||s.value.getText().trim().length===0?"":s.value.getSemanticHTML();return e.onMounted(async()=>{try{const B=await import("quill"),N=B.default||B;if(await import("quill/dist/quill.snow.css"),o.value){const x={theme:a.theme,placeholder:a.placeholder,readOnly:a.readonly||a.disabled,modules:{toolbar:g()}};s.value=new N(o.value,x),a.modelValue&&C(a.modelValue),f.value=()=>{if(r.value)return;const w=V();l("update:modelValue",w),l("change"),a.validateOn==="change"&&l("validate")},s.value.on("text-change",f.value),d.value=()=>{l("blur"),a.validateOn==="blur"&&l("validate")},s.value.root.addEventListener("blur",d.value),c.value=()=>{l("focus")},s.value.root.addEventListener("focus",c.value),n.value=!0,l("ready",s.value)}}catch(B){console.error("Failed to load Quill editor:",B),i.value="Failed to load WYSIWYG editor. Please install quill: npm install quill",n.value=!1}}),e.onBeforeUnmount(()=>{s.value&&(f.value&&(s.value.off("text-change",f.value),f.value=null),d.value&&(s.value.root.removeEventListener("blur",d.value),d.value=null),c.value&&(s.value.root.removeEventListener("focus",c.value),c.value=null),s.value=null)}),e.watch(()=>a.modelValue,B=>{if(!s.value)return;V()!==(B||"")&&C(B||"")}),e.watch(()=>a.disabled,B=>{s.value&&s.value.enable(!B)}),e.watch(()=>a.readonly,B=>{s.value&&s.value.enable(!B)}),(B,N)=>(e.openBlock(),e.createElementBlock("div",rl,[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",dl,"*")):e.createCommentVNode("",!0)],8,sl)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",cl,e.toDisplayString(i.value),1)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(u.value),style:e.normalizeStyle({minHeight:t.height})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:o,id:t.id},null,8,ml)],6)),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,fl)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ul,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,bl)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-8e6e81b0"]]),yl={install(t){t.component("VibeAlert",T),t.component("VibeBadge",z),t.component("VibeButton",D),t.component("VibeButtonGroup",M),t.component("VibeCloseButton",F),t.component("VibeSpinner",q),t.component("VibePlaceholder",L),t.component("VibeContainer",P),t.component("VibeRow",j),t.component("VibeCol",A),t.component("VibeCard",I),t.component("VibeBreadcrumb",O),t.component("VibeNav",R),t.component("VibeNavbar",X),t.component("VibeNavbarBrand",Y),t.component("VibeNavbarToggle",G),t.component("VibeNavbarNav",H),t.component("VibePagination",U),t.component("VibeTabContent",K),t.component("VibeListGroup",Q),t.component("VibeProgress",W),t.component("VibeAccordion",J),t.component("VibeCollapse",Z),t.component("VibeDropdown",_),t.component("VibeModal",ee),t.component("VibeOffcanvas",te),t.component("VibeToast",ae),t.component("VibeCarousel",le),t.component("VibeTooltip",oe),t.component("VibePopover",ne),t.component("VibeScrollspy",ie),t.component("VibeIcon",re),t.component("VibeDataTable",se),t.component("VibeFormInput",de),t.component("VibeFormSelect",ce),t.component("VibeFormTextarea",me),t.component("VibeFormSpinbutton",fe),t.component("VibeFormDatepicker",ue),t.component("VibeFormCheckbox",be),t.component("VibeFormRadio",ye),t.component("VibeFormSwitch",pe),t.component("VibeFormGroup",he),t.component("VibeFormWysiwyg",ge)}};function pl(t=""){const m=e.ref(t),a=e.ref(null),l=e.ref(""),o=e.ref(!1),s=e.ref(!1),n=e.ref(!1),i=async k=>{if(!k)return a.value=null,l.value="",{valid:!0};n.value=!0;try{const g=Array.isArray(k)?k:[{validator:k}];for(const C of g){const V=await C.validator(m.value);if(V===!1||typeof V=="string")return a.value="invalid",l.value=typeof V=="string"?V:C.message||"Invalid value",n.value=!1,{valid:!1,message:l.value}}return a.value="valid",l.value="",n.value=!1,{valid:!0}}catch{return a.value="invalid",l.value="Validation error occurred",n.value=!1,{valid:!1,message:l.value}}},r=()=>{m.value=t,a.value=null,l.value="",o.value=!1,s.value=!1,n.value=!1},d=()=>{s.value=!0},c=()=>{o.value=!0},f=e.computed(()=>a.value==="valid"),u=e.computed(()=>a.value==="invalid");return{value:m,validationState:a,validationMessage:l,isDirty:o,isTouched:s,isValidating:n,isValid:f,isInvalid:u,validate:i,reset:r,markAsTouched:d,markAsDirty:c}}const hl={required:(t="This field is required")=>({validator:m=>Array.isArray(m)?m.length>0||t:typeof m=="string"?m.trim().length>0||t:m!=null&&m!==""||t,message:t}),email:(t="Please enter a valid email address")=>({validator:m=>m?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(m)||t:!0,message:t}),minLength:(t,m)=>({validator:a=>a?a.length>=t||m||`Minimum length is ${t} characters`:!0,message:m}),maxLength:(t,m)=>({validator:a=>a?a.length<=t||m||`Maximum length is ${t} characters`:!0,message:m}),min:(t,m)=>({validator:a=>{if(a==null||a==="")return!0;const l=Number(a);return Number.isNaN(l)?m||"Value must be a number":l>=t||m||`Minimum value is ${t}`},message:m}),max:(t,m)=>({validator:a=>{if(a==null||a==="")return!0;const l=Number(a);return Number.isNaN(l)?m||"Value must be a number":l<=t||m||`Maximum value is ${t}`},message:m}),pattern:(t,m="Invalid format")=>({validator:a=>a?t.test(a)||m:!0,message:m}),url:(t="Please enter a valid URL")=>({validator:m=>{if(!m)return!0;try{return new URL(m),!0}catch{return t}},message:t}),async:t=>({validator:t})};y.VibeAccordion=J,y.VibeAlert=T,y.VibeBadge=z,y.VibeBreadcrumb=O,y.VibeButton=D,y.VibeButtonGroup=M,y.VibeCard=I,y.VibeCarousel=le,y.VibeCloseButton=F,y.VibeCol=A,y.VibeCollapse=Z,y.VibeContainer=P,y.VibeDataTable=se,y.VibeDropdown=_,y.VibeFormCheckbox=be,y.VibeFormDatepicker=ue,y.VibeFormGroup=he,y.VibeFormInput=de,y.VibeFormRadio=ye,y.VibeFormSelect=ce,y.VibeFormSpinbutton=fe,y.VibeFormSwitch=pe,y.VibeFormTextarea=me,y.VibeFormWysiwyg=ge,y.VibeIcon=re,y.VibeListGroup=Q,y.VibeModal=ee,y.VibeNav=R,y.VibeNavbar=X,y.VibeNavbarBrand=Y,y.VibeNavbarNav=H,y.VibeNavbarToggle=G,y.VibeOffcanvas=te,y.VibePagination=U,y.VibePlaceholder=L,y.VibePopover=ne,y.VibeProgress=W,y.VibeRow=j,y.VibeScrollspy=ie,y.VibeSpinner=q,y.VibeTabContent=K,y.VibeToast=ae,y.VibeTooltip=oe,y.default=yl,y.useFormValidation=pl,y.validators=hl,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y.VibeUI={},y.Vue))})(this,(function(y,e){"use strict";const T=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:m}){const a=t,l=m,o=e.computed({get:()=>a.modelValue,set:n=>l("update:modelValue",n)}),s=()=>{try{o.value=!1}catch(n){l("component-error",{message:"Dismiss failed",componentName:"VibeAlert",originalError:n})}};return(n,i)=>o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`alert alert-${t.variant}`),role:"alert"},[e.renderSlot(n.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.dismissable?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-close",onClick:s,"aria-label":"Close"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),z=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:m}){const a=t,l=e.computed(()=>{const o=["badge",`bg-${a.variant}`];return a.pill&&o.push("rounded-pill"),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),D=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:m}){const a=t,l=m,o=e.computed(()=>a.href?"a":a.to?"router-link":"button"),s=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(" ")}),n=i=>{a.disabled||l("click",i)};return(i,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(s.value),type:t.href||t.to?void 0:t.type,href:t.href,to:t.to,disabled:t.disabled,"aria-disabled":t.disabled,onClick:n},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","type","href","to","disabled","aria-disabled"]))}}),ke=["role","aria-label"],M=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:m}){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,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value),role:t.role,"aria-label":t.ariaLabel},[e.renderSlot(o.$slots,"default")],10,ke))}}),Be=["disabled","aria-label"],F=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:m}){const a=t,l=m,o=s=>{a.disabled||l("click",s)};return(s,n)=>(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,Be))}}),Se={class:"visually-hidden"},q=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:m}){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,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value),role:"status"},{default:e.withCtx(()=>[e.createElementVNode("span",Se,e.toDisplayString(t.label),1)]),_:1},8,["class"]))}}),L=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:m}){const a=t,l=e.computed(()=>{const n=["placeholder"];return a.variant&&n.push(`bg-${a.variant}`),a.size&&n.push(`placeholder-${a.size}`),n.join(" ")}),o=e.computed(()=>{if(a.animation)return`placeholder-${a.animation}`}),s=e.computed(()=>{if(a.width)return{width:typeof a.width=="number"?`${a.width}%`:a.width}});return(n,i)=>(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(s.value)},[e.renderSlot(n.$slots,"default")],6)]),_:3},8,["class"]))}}),P=e.defineComponent({__name:"VibeContainer",props:{fluid:{type:[Boolean,String],default:!1},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>a.fluid===!1?"container":a.fluid===!0?"container-fluid":`container-${a.fluid}`);return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),j=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:m}){const a=t,l=e.computed(()=>{const o=["row"];a.gutters!==void 0&&o.push(`g-${a.gutters}`),a.guttersX!==void 0&&o.push(`gx-${a.guttersX}`),a.guttersY!==void 0&&o.push(`gy-${a.guttersY}`);const s=["sm","md","lg","xl","xxl"];return s.forEach(n=>{const i=n.charAt(0).toUpperCase()+n.slice(1),r=`gutters${i}`;a[r]!==void 0&&o.push(`g-${n}-${a[r]}`);const d=`guttersX${i}`;a[d]!==void 0&&o.push(`gx-${n}-${a[d]}`);const c=`guttersY${i}`;a[c]!==void 0&&o.push(`gy-${n}-${a[c]}`)}),a.rowCols!==void 0&&o.push(`row-cols-${a.rowCols}`),s.forEach(n=>{const i=`rowCols${n.charAt(0).toUpperCase()+n.slice(1)}`;a[i]!==void 0&&o.push(`row-cols-${n}-${a[i]}`)}),a.alignItems&&o.push(`align-items-${a.alignItems}`),a.justifyContent&&o.push(`justify-content-${a.justifyContent}`),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),A=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:m}){const a=t,l=e.computed(()=>{const o=[];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?o.push("col"):a.cols==="auto"?o.push("col-auto"):a.cols&&o.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:r})=>{r===!0?o.push(`col-${i}`):r==="auto"?o.push(`col-${i}-auto`):r!==void 0&&o.push(`col-${i}-${r}`)})):o.push("col"),a.offset!==void 0&&o.push(`offset-${a.offset}`),a.offsetSm!==void 0&&o.push(`offset-sm-${a.offsetSm}`),a.offsetMd!==void 0&&o.push(`offset-md-${a.offsetMd}`),a.offsetLg!==void 0&&o.push(`offset-lg-${a.offsetLg}`),a.offsetXl!==void 0&&o.push(`offset-xl-${a.offsetXl}`),a.offsetXxl!==void 0&&o.push(`offset-xxl-${a.offsetXxl}`),a.order!==void 0&&o.push(`order-${a.order}`),a.orderSm!==void 0&&o.push(`order-sm-${a.orderSm}`),a.orderMd!==void 0&&o.push(`order-md-${a.orderMd}`),a.orderLg!==void 0&&o.push(`order-lg-${a.orderLg}`),a.orderXl!==void 0&&o.push(`order-xl-${a.orderXl}`),a.orderXxl!==void 0&&o.push(`order-xxl-${a.orderXxl}`),a.alignSelf&&o.push(`align-self-${a.alignSelf}`),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["class"]))}}),Ce=["src","alt"],Ve={key:1,class:"card-header"},$e={key:2,class:"card-body"},Ne={key:0,class:"card-title"},Ee={key:1,class:"card-text"},ve={key:3,class:"card-footer"},xe=["src","alt"],I=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},imgSrc:{type:String,default:void 0},imgAlt:{type:String,default:""},imgTop:{type:Boolean,default:!0},imgBottom:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>{const o=["card"];return a.variant&&o.push(`bg-${a.variant}`),a.border&&o.push(`border-${a.border}`),a.textVariant&&o.push(`text-${a.textVariant}`),o.join(" ")});return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[t.imgSrc&&t.imgTop?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.imgSrc,alt:t.imgAlt,class:"card-img-top"},null,8,Ce)):e.createCommentVNode("",!0),t.header||o.$slots.header?(e.openBlock(),e.createElementBlock("div",Ve,[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.header),1)])])):e.createCommentVNode("",!0),t.title||t.body||o.$slots.default||o.$slots.body?(e.openBlock(),e.createElementBlock("div",$e,[t.title||o.$slots.title?(e.openBlock(),e.createElementBlock("h5",Ne,[e.renderSlot(o.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),t.body||o.$slots.body?(e.openBlock(),e.createElementBlock("p",Ee,[e.renderSlot(o.$slots,"body",{},()=>[e.createTextVNode(e.toDisplayString(t.body),1)])])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")])):e.createCommentVNode("",!0),t.footer||o.$slots.footer?(e.openBlock(),e.createElementBlock("div",ve,[e.renderSlot(o.$slots,"footer",{},()=>[e.createTextVNode(e.toDisplayString(t.footer),1)])])):e.createCommentVNode("",!0),t.imgSrc&&t.imgBottom?(e.openBlock(),e.createElementBlock("img",{key:4,src:t.imgSrc,alt:t.imgAlt,class:"card-img-bottom"},null,8,xe)):e.createCommentVNode("",!0)]),_:3},8,["class"]))}}),we=["aria-label"],Te={class:"breadcrumb"},ze=["aria-current"],O=e.defineComponent({__name:"VibeBreadcrumb",props:{ariaLabel:{type:String,default:"breadcrumb"},items:{type:Array,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=m,l=(o,s,n)=>{o.active||a("item-click",{item:o,index:s,event:n})};return(o,s)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ol",Te,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,i)=>(e.openBlock(),e.createElementBlock("li",{key:i,class:e.normalizeClass(["breadcrumb-item",{active:n.active}]),"aria-current":n.active?"page":void 0},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.href?"a":n.to?"router-link":"span"),{href:n.href,to:n.to,onClick:r=>l(n,i,r)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"item",{item:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.text),1)])]),_:2},1032,["href","to","onClick"]))],10,ze))),128))])],8,we))}}),R=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,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>{const r=["nav"];return a.tabs&&r.push("nav-tabs"),a.pills&&r.push("nav-pills"),a.fill&&r.push("nav-fill"),a.justified&&r.push("nav-justified"),a.vertical&&r.push("flex-column"),r.join(" ")}),s=r=>{const d=["nav-link"];return r.active&&d.push("active"),r.disabled&&d.push("disabled"),d.join(" ")},n=r=>r.href?"a":r.to?"router-link":"a",i=(r,d,c)=>{r.disabled||l("item-click",{item:r,index:d,event:c})};return(r,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(c,f)=>(e.openBlock(),e.createElementBlock("li",{key:f,class:"nav-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n(c)),{class:e.normalizeClass(s(c)),href:c.href,to:c.to,"aria-current":c.active?"page":void 0,"aria-disabled":c.disabled,onClick:u=>i(c,f,u)},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"item",{item:c,index:f},()=>[e.createTextVNode(e.toDisplayString(c.text),1)])]),_:2},1032,["class","href","to","aria-current","aria-disabled","onClick"]))]))),128))]),_:3},8,["class"]))}}),X=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:m}){const a=t,l=e.reactive({}),o=i=>{l[i]=!l[i]};e.provide("vibeNavbarCollapse",{collapseStates:l,toggleCollapse:o});const s=e.computed(()=>{const i=["navbar"];return a.expand===!0?i.push("navbar-expand"):typeof a.expand=="string"&&i.push(`navbar-expand-${a.expand}`),a.variant==="dark"||a.variant==="light"?i.push(`navbar-${a.variant}`,`bg-${a.variant}`):i.push(`bg-${a.variant}`),a.position&&i.push(a.position),i.join(" ")}),n=e.computed(()=>{if(a.container!==!1)return a.container===!0?"container-fluid":`container-${a.container}`});return(i,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(n.value)},[e.renderSlot(i.$slots,"default")],2)):e.renderSlot(i.$slots,"default",{key:1})]),_:3},8,["class"]))}}),Y=e.defineComponent({__name:"VibeNavbarBrand",props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=a.href?"a":a.to?"router-link":"span";return(o,s)=>(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"]))}}),De=["aria-controls","aria-expanded","aria-label"],G=e.defineComponent({__name:"VibeNavbarToggle",props:{target:{type:String,required:!0},ariaLabel:{type:String,default:"Toggle navigation"}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.inject("vibeNavbarCollapse",null),o=e.computed(()=>(l==null?void 0:l.collapseStates[a.target])??!1),s=()=>{l&&l.toggleCollapse(a.target)};return(n,i)=>(e.openBlock(),e.createElementBlock("button",{class:"navbar-toggler",type:"button","aria-controls":t.target,"aria-expanded":o.value,"aria-label":t.ariaLabel,onClick:s},[...i[0]||(i[0]=[e.createElementVNode("span",{class:"navbar-toggler-icon"},null,-1)])],8,De))}}),H=e.defineComponent({__name:"VibeNavbarNav",props:{tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=m,l=n=>{const i=["nav-link"];return n.active&&i.push("active"),n.disabled&&i.push("disabled"),i.join(" ")},o=n=>n.href?"a":n.to?"router-link":"a",s=(n,i,r)=>{n.disabled||a("item-click",{item:n,index:i,event:r})};return(n,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"navbar-nav"},{default:e.withCtx(()=>[t.items&&t.items.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,(r,d)=>(e.openBlock(),e.createElementBlock("li",{key:d,class:"nav-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o(r)),{class:e.normalizeClass(l(r)),href:r.href,to:r.to,"aria-current":r.active?"page":void 0,"aria-disabled":r.disabled,onClick:c=>s(r,d,c)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"item",{item:r,index:d},()=>[e.createTextVNode(e.toDisplayString(r.text),1)])]),_:2},1032,["class","href","to","aria-current","aria-disabled","onClick"]))]))),128)):e.renderSlot(n.$slots,"default",{key:1})]),_:3}))}}),Me=["aria-label"],Fe=["disabled","aria-disabled"],qe=["aria-current","onClick"],Le=["disabled","aria-disabled"],U=e.defineComponent({__name:"VibePagination",props:{size:{type:String,default:void 0},ariaLabel:{type:String,default:"Pagination"},totalPages:{type:Number,required:!0},currentPage:{type:Number,default:1},showPrevNext:{type:Boolean,default:!0},prevText:{type:String,default:"Previous"},nextText:{type:String,default:"Next"}},emits:["update:currentPage","page-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>{const d=["pagination"];return a.size&&d.push(`pagination-${a.size}`),d.join(" ")}),s=e.computed(()=>Array.from({length:a.totalPages},(d,c)=>c+1)),n=d=>{d>=1&&d<=a.totalPages&&(l("update:currentPage",d),l("page-click",d))},i=e.computed(()=>a.currentPage===1),r=e.computed(()=>a.currentPage===a.totalPages);return(d,c)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ul",{class:e.normalizeClass(o.value)},[t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:0,class:e.normalizeClass(["page-item",{disabled:i.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:i.value,"aria-disabled":i.value,onClick:c[0]||(c[0]=f=>n(t.currentPage-1))},[e.renderSlot(d.$slots,"prev",{disabled:i.value},()=>[e.createTextVNode(e.toDisplayString(t.prevText),1)])],8,Fe)],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>(e.openBlock(),e.createElementBlock("li",{key:f,class:e.normalizeClass(["page-item",{active:f===t.currentPage}])},[e.createElementVNode("button",{class:"page-link",type:"button","aria-current":f===t.currentPage?"page":void 0,onClick:u=>n(f)},[e.renderSlot(d.$slots,"page",{page:f,active:f===t.currentPage},()=>[e.createTextVNode(e.toDisplayString(f),1)])],8,qe)],2))),128)),t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:1,class:e.normalizeClass(["page-item",{disabled:r.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:r.value,"aria-disabled":r.value,onClick:c[1]||(c[1]=f=>n(t.currentPage+1))},[e.renderSlot(d.$slots,"next",{disabled:r.value},()=>[e.createTextVNode(e.toDisplayString(t.nextText),1)])],8,Le)],2)):e.createCommentVNode("",!0)],2)],8,Me))}}),Pe=["id","aria-labelledby"],K=e.defineComponent({__name:"VibeTabContent",props:{id:{type:String,default:void 0},tag:{type:String,default:"div"},panes:{type:Array,required:!0},fade:{type:Boolean,default:!0}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=o=>{const s=["tab-pane"];return a.fade&&s.push("fade"),o.active&&s.push("show","active"),s.join(" ")};return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:"tab-content"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.panes,(n,i)=>(e.openBlock(),e.createElementBlock("div",{key:n.id,id:n.id,class:e.normalizeClass(l(n)),role:"tabpanel","aria-labelledby":`${n.id}-tab`,tabindex:"0"},[e.renderSlot(o.$slots,"pane",{pane:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.content),1)])],10,Pe))),128))]),_:3},8,["id"]))}}),Q=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,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>{const r=["list-group"];return a.flush&&r.push("list-group-flush"),a.numbered&&r.push("list-group-numbered"),a.horizontal===!0?r.push("list-group-horizontal"):typeof a.horizontal=="string"&&r.push(`list-group-horizontal-${a.horizontal}`),r.join(" ")}),s=r=>r.href?"a":r.to?"router-link":"li",n=r=>{const d=["list-group-item"];return r.active&&d.push("active"),r.disabled&&d.push("disabled"),r.variant&&d.push(`list-group-item-${r.variant}`),d.join(" ")},i=(r,d,c)=>{r.disabled||l("item-click",{item:r,index:d,event:c})};return(r,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(c,f)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s(c)),{key:f,class:e.normalizeClass(n(c)),href:c.href,to:c.to,"aria-disabled":c.disabled,"aria-current":c.active,onClick:u=>i(c,f,u)},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"item",{item:c,index:f},()=>[e.createTextVNode(e.toDisplayString(c.text),1)])]),_:2},1032,["class","href","to","aria-disabled","aria-current","onClick"]))),128))]),_:3},8,["class"]))}}),je=["aria-valuenow","aria-valuemax"],W=e.defineComponent({__name:"VibeProgress",props:{height:{type:String,default:void 0},bars:{type:Array,required:!0}},emits:["component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>{if(a.height)return{height:a.height}}),o=i=>{const r=["progress-bar"];return i.variant&&r.push(`bg-${i.variant}`),(i.striped||i.animated)&&r.push("progress-bar-striped"),i.animated&&r.push("progress-bar-animated"),r.join(" ")},s=i=>{const r=i.max||100;return{width:`${Math.min(100,Math.max(0,i.value/r*100))}%`}},n=i=>i.label?i.label:i.showValue?`${i.value}%`:"";return(i,r)=>(e.openBlock(),e.createElementBlock("div",{class:"progress",style:e.normalizeStyle(l.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bars,(d,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:e.normalizeClass(o(d)),style:e.normalizeStyle(s(d)),role:"progressbar","aria-valuenow":d.value,"aria-valuemin":0,"aria-valuemax":d.max||100},[e.renderSlot(i.$slots,"label",{bar:d,index:c},()=>[e.createTextVNode(e.toDisplayString(n(d)),1)])],14,je))),128))],4))}}),Ae=["id"],Ie={class:"accordion-header"},Oe=["data-bs-target","aria-expanded","aria-controls","onClick"],Re=["id","data-bs-parent"],Xe={class:"accordion-body"},J=e.defineComponent({__name:"VibeAccordion",props:{id:{type:String,required:!0},flush:{type:Boolean,default:!1},items:{type:Array,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=m,l=(o,s)=>{a("item-click",{item:o,index:s})};return(o,s)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(["accordion",{"accordion-flush":t.flush}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,i)=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:"accordion-item"},[e.createElementVNode("h2",Ie,[e.createElementVNode("button",{class:e.normalizeClass(["accordion-button",{collapsed:!n.show}]),type:"button","data-bs-toggle":"collapse","data-bs-target":`#${n.id}`,"aria-expanded":n.show,"aria-controls":n.id,onClick:r=>l(n,i)},[e.renderSlot(o.$slots,"title",{item:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.title),1)])],10,Oe)]),e.createElementVNode("div",{id:n.id,class:e.normalizeClass(["accordion-collapse","collapse",{show:n.show}]),"data-bs-parent":`#${t.id}`},[e.createElementVNode("div",Xe,[e.renderSlot(o.$slots,"content",{item:n,index:i},()=>[e.createTextVNode(e.toDisplayString(n.content),1)])])],10,Re)]))),128))],10,Ae))}}),Z=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},isNav:{type:Boolean,default:!1}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{emit:m}){const a=t,l=e.inject("vibeNavbarCollapse",null),o=e.ref(a.modelValue);e.watch(()=>a.modelValue,i=>{o.value=i});const s=e.computed(()=>l&&a.id in l.collapseStates?l.collapseStates[a.id]:o.value),n=e.computed(()=>{const i=["collapse"];return a.isNav&&i.push("navbar-collapse"),a.horizontal&&i.push("collapse-horizontal"),s.value&&i.push("show"),i.join(" ")});return(i,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,class:e.normalizeClass(n.value)},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["id","class"]))}}),Ye=["id"],Ge=["aria-labelledby"],He={key:0},Ue={key:1},Ke={class:"dropdown-header"},Qe={key:2},_=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,required:!0}},emits:["item-click","component-error"],setup(t,{emit:m}){const a=t,l=m,o=e.computed(()=>a.direction==="up"?"dropup":a.direction==="end"?"dropend":a.direction==="start"?"dropstart":"dropdown"),s=e.computed(()=>{const d=["btn",`btn-${a.variant}`];return a.size&&d.push(`btn-${a.size}`),d.join(" ")}),n=e.computed(()=>{const d=["dropdown-menu"];return a.menuEnd&&d.push("dropdown-menu-end"),d.join(" ")}),i=d=>{const c=["dropdown-item"];return d.active&&c.push("active"),d.disabled&&c.push("disabled"),c.join(" ")},r=(d,c,f)=>{!d.disabled&&!d.divider&&!d.header&&l("item-click",{item:d,index:c,event:f})};return(d,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[e.createElementVNode("button",{id:t.id,class:e.normalizeClass([s.value,"dropdown-toggle"]),type:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[e.renderSlot(d.$slots,"button",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])],10,Ye),e.createElementVNode("ul",{class:e.normalizeClass(n.value),"aria-labelledby":t.id},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[f.divider?(e.openBlock(),e.createElementBlock("li",He,[...c[0]||(c[0]=[e.createElementVNode("hr",{class:"dropdown-divider"},null,-1)])])):f.header?(e.openBlock(),e.createElementBlock("li",Ue,[e.createElementVNode("h6",Ke,[e.renderSlot(d.$slots,"header",{item:f,index:u},()=>[e.createTextVNode(e.toDisplayString(f.text),1)])])])):(e.openBlock(),e.createElementBlock("li",Qe,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.href?"a":f.to?"router-link":"button"),{class:e.normalizeClass(i(f)),href:f.href,to:f.to,type:!f.href&&!f.to?"button":void 0,disabled:f.disabled,onClick:k=>r(f,u,k)},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"item",{item:f,index:u},()=>[e.createTextVNode(e.toDisplayString(f.text),1)])]),_:2},1032,["class","href","to","type","disabled","onClick"]))]))],64))),128))],10,Ge)],2))}}),We=["id","aria-labelledby","aria-hidden","data-bs-backdrop","data-bs-keyboard"],Je={class:"modal-content"},Ze={key:0,class:"modal-header"},_e=["id"],et={class:"modal-body"},tt={key:1,class:"modal-footer"},ee=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:m}){const a=t,l=m,o=e.ref(null),s=e.ref(null),n=e.ref(!1),i=e.computed(()=>{const u=["modal-dialog"];return a.size&&u.push(`modal-${a.size}`),a.centered&&u.push("modal-dialog-centered"),a.scrollable&&u.push("modal-dialog-scrollable"),a.fullscreen===!0?u.push("modal-fullscreen"):typeof a.fullscreen=="string"&&u.push(`modal-fullscreen-${a.fullscreen}-down`),u.join(" ")}),r=()=>{n.value=!0,l("show")},d=()=>{l("shown"),l("update:modelValue",!0)},c=()=>{l("hide")},f=()=>{n.value=!1,l("hidden"),l("update:modelValue",!1)};return e.onMounted(async()=>{if(o.value)try{const k=(await import("bootstrap")).Modal;s.value=new k(o.value,{backdrop:a.staticBackdrop?"static":!0,keyboard:!a.staticBackdrop}),o.value.addEventListener("show.bs.modal",r),o.value.addEventListener("shown.bs.modal",d),o.value.addEventListener("hide.bs.modal",c),o.value.addEventListener("hidden.bs.modal",f),a.modelValue&&s.value.show()}catch{l("component-error","Bootstrap JS not loaded. Modal will use data attributes only.")}}),e.onBeforeUnmount(()=>{o.value&&(o.value.removeEventListener("show.bs.modal",r),o.value.removeEventListener("shown.bs.modal",d),o.value.removeEventListener("hide.bs.modal",c),o.value.removeEventListener("hidden.bs.modal",f)),s.value&&(s.value.dispose(),s.value=null)}),e.watch(()=>a.modelValue,u=>{s.value&&(u&&!n.value?s.value.show():!u&&n.value&&s.value.hide())}),(u,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"modalRef",ref:o,id:t.id,class:"modal fade",tabindex:"-1","aria-labelledby":`${t.id}-label`,"aria-hidden":!n.value,"data-bs-backdrop":t.staticBackdrop?"static":void 0,"data-bs-keyboard":!t.staticBackdrop},[e.createElementVNode("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("div",Je,[t.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ze,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"modal-title"},[e.renderSlot(u.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,_e),k[0]||(k[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1))])),e.createElementVNode("div",et,[e.renderSlot(u.$slots,"default")]),t.hideFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",tt,[e.renderSlot(u.$slots,"footer",{},()=>[k[1]||(k[1]=e.createElementVNode("button",{type:"button",class:"btn btn-secondary","data-bs-dismiss":"modal"},"Close",-1))])]))])],2)],8,We))}}),at=["id","aria-labelledby","data-bs-backdrop","data-bs-scroll"],lt={class:"offcanvas-header"},ot=["id"],nt={class:"offcanvas-body"},te=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:m}){const a=t,l=e.computed(()=>`offcanvas offcanvas-${a.placement}`);return(o,s)=>(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",lt,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"offcanvas-title"},[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,ot),s[0]||(s[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"offcanvas","aria-label":"Close"},null,-1))]),e.createElementVNode("div",nt,[e.renderSlot(o.$slots,"default")])],10,at))}}),it=["id","data-bs-autohide","data-bs-delay"],rt={key:0,class:"toast-header"},st={class:"me-auto"},dt={class:"toast-body"},ae=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:m}){const a=t,l=m,o=e.ref(null),s=e.ref(null),n=e.ref(!1),i=e.computed(()=>{const u=["toast"];return a.variant&&u.push(`text-bg-${a.variant}`),u.join(" ")}),r=()=>{n.value=!0,l("show")},d=()=>{l("shown"),l("update:modelValue",!0)},c=()=>{l("hide")},f=()=>{n.value=!1,l("hidden"),l("update:modelValue",!1)};return e.onMounted(async()=>{if(o.value)try{const k=(await import("bootstrap")).Toast;s.value=new k(o.value,{autohide:a.autohide,delay:a.delay}),o.value.addEventListener("show.bs.toast",r),o.value.addEventListener("shown.bs.toast",d),o.value.addEventListener("hide.bs.toast",c),o.value.addEventListener("hidden.bs.toast",f),a.modelValue&&s.value.show()}catch{l("component-error","Bootstrap JS not loaded. Toast will use data attributes only.")}}),e.onBeforeUnmount(()=>{o.value&&(o.value.removeEventListener("show.bs.toast",r),o.value.removeEventListener("shown.bs.toast",d),o.value.removeEventListener("hide.bs.toast",c),o.value.removeEventListener("hidden.bs.toast",f)),s.value&&(s.value.dispose(),s.value=null)}),e.watch(()=>a.modelValue,u=>{s.value&&(u&&!n.value?s.value.show():!u&&n.value&&s.value.hide())}),(u,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"toastRef",ref:o,id:t.id,class:e.normalizeClass(i.value),role:"alert","aria-live":"assertive","aria-atomic":"true","data-bs-autohide":t.autohide,"data-bs-delay":t.delay},[t.title||u.$slots.header?(e.openBlock(),e.createElementBlock("div",rt,[e.renderSlot(u.$slots,"header",{},()=>[e.createElementVNode("strong",st,e.toDisplayString(t.title),1)]),k[0]||(k[0]=e.createElementVNode("button",{type:"button",class:"btn-close","data-bs-dismiss":"toast","aria-label":"Close"},null,-1))])):e.createCommentVNode("",!0),e.createElementVNode("div",dt,[e.renderSlot(u.$slots,"default")])],10,it))}}),ct=["id","data-bs-ride","data-bs-interval","data-bs-keyboard","data-bs-pause","data-bs-wrap","data-bs-touch"],mt={key:0,class:"carousel-indicators"},ft=["data-bs-target","data-bs-slide-to","aria-current","aria-label"],ut={class:"carousel-inner"},bt=["data-bs-interval"],yt=["src","alt"],pt={key:0,class:"carousel-caption d-none d-md-block"},ht={key:0},gt={key:1},kt=["data-bs-target"],Bt=["data-bs-target"],le=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,required:!0}},emits:["slide","slid","component-error"],setup(t,{emit:m}){const a=t,l=e.computed(()=>{const s=["carousel","slide"];return a.dark&&s.push("carousel-dark"),a.fade&&s.push("carousel-fade"),s.join(" ")}),o=(s,n)=>s.alt?s.alt:s.caption?s.caption:s.captionText?s.captionText:`Carousel slide ${n+1}`;return e.onMounted(()=>{}),(s,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(l.value),"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.indicators?(e.openBlock(),e.createElementBlock("div",mt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(i,r)=>(e.openBlock(),e.createElementBlock("button",{key:`indicator-${i.src}-${r}`,type:"button","data-bs-target":`#${t.id}`,"data-bs-slide-to":r,class:e.normalizeClass({active:i.active||r===0}),"aria-current":i.active||r===0,"aria-label":`Slide ${r+1}`},null,10,ft))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(i,r)=>(e.openBlock(),e.createElementBlock("div",{key:`slide-${i.src}-${r}`,class:e.normalizeClass(["carousel-item",{active:i.active||r===0}]),"data-bs-interval":i.interval},[e.createElementVNode("img",{src:i.src,alt:o(i,r),class:"d-block w-100"},null,8,yt),i.caption||i.captionText||s.$slots.caption?(e.openBlock(),e.createElementBlock("div",pt,[e.renderSlot(s.$slots,"caption",{item:i,index:r},()=>[i.caption?(e.openBlock(),e.createElementBlock("h5",ht,e.toDisplayString(i.caption),1)):e.createCommentVNode("",!0),i.captionText?(e.openBlock(),e.createElementBlock("p",gt,e.toDisplayString(i.captionText),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)],10,bt))),128))]),t.controls?(e.openBlock(),e.createElementBlock("button",{key:1,class:"carousel-control-prev",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"prev"},[...n[0]||(n[0]=[e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Previous",-1)])],8,kt)):e.createCommentVNode("",!0),t.controls?(e.openBlock(),e.createElementBlock("button",{key:2,class:"carousel-control-next",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"next"},[...n[1]||(n[1]=[e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Next",-1)])],8,Bt)):e.createCommentVNode("",!0)],10,ct))}}),St=["data-bs-placement","data-bs-title","data-bs-trigger","data-bs-html"],oe=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:m}){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,St))}}),Ct=["data-bs-placement","data-bs-title","data-bs-content","data-bs-trigger","data-bs-html"],ne=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:m}){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,Ct))}}),ie=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:m}){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"]))}}),re=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:m}){const a=t,l=m,o=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(" ")}),s=e.computed(()=>{const i={};if(a.fontSize)i.fontSize=a.fontSize;else if(a.size){const d={"1x":"1rem","2x":"2rem","3x":"3rem","4x":"4rem","5x":"5rem"};d[a.size]&&(i.fontSize=d[a.size])}a.color&&(i.color=a.color);const r=[];return a.flipH&&r.push("scaleX(-1)"),a.flipV&&r.push("scaleY(-1)"),a.rotate&&r.push(`rotate(${a.rotate}deg)`),r.length>0&&(i.transform=r.join(" "),i.display="inline-block"),Object.keys(i).length>0?i:void 0}),n=i=>{l("click",i)};return(i,r)=>(e.openBlock(),e.createElementBlock("i",{class:e.normalizeClass(o.value),style:e.normalizeStyle(s.value),"aria-hidden":!0,onClick:n},null,6))}}),Vt={class:"vibe-datatable"},$t={class:"row mb-3"},Nt={key:0,class:"col-md-6 mb-2 mb-md-0"},Et=["placeholder"],vt={key:1,class:"col-md-6"},xt={class:"d-flex justify-content-md-end align-items-center"},wt=["value"],Tt=["onClick"],zt={key:0,class:"ms-1"},Dt=["onClick"],Mt={key:0},Ft=["colspan"],qt={class:"row"},Lt={key:0,class:"col-md-6 mb-2 mb-md-0"},Pt={class:"datatable-info"},jt={key:1,class:"col-md-6"},At={class:"pagination justify-content-md-end mb-0"},It={key:0,class:"page-item"},Ot={key:1,class:"page-item disabled"},Rt=["onClick"],Xt={key:2,class:"page-item disabled"},Yt={key:3,class:"page-item"},Gt=e.defineComponent({__name:"VibeDataTable",props:e.mergeModels({items:{type:Array,default:()=>[]},columns:{type:Array,required:!0},rowKey:{type:String,default:"id"},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},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)"},perPageOptions:{type:Array,default:()=>[5,10,25,50,100]}},{currentPage:{default:1},currentPageModifiers:{},perPage:{default:10},perPageModifiers:{},sortBy:{default:void 0},sortByModifiers:{},sortDesc:{type:Boolean,default:!1},sortDescModifiers:{}}),emits:e.mergeModels(["row-clicked","component-error"],["update:currentPage","update:perPage","update:sortBy","update:sortDesc"]),setup(t,{emit:m}){const a=t,l=e.useModel(t,"currentPage"),o=e.useModel(t,"perPage"),s=e.useModel(t,"sortBy"),n=e.useModel(t,"sortDesc"),i=m,r=e.ref(""),d=e.ref(null),c=e.ref(""),f=(b,p)=>a.rowKey&&b[a.rowKey]!==void 0?String(b[a.rowKey]):p;e.watch(r,b=>{d.value!==null&&clearTimeout(d.value),d.value=setTimeout(()=>{c.value=b,l.value=1,d.value=null},a.searchDebounce)}),e.onBeforeUnmount(()=>{d.value!==null&&(clearTimeout(d.value),d.value=null)});const u=e.computed(()=>{if(!a.searchable||!c.value)return a.items||[];const b=c.value.toLowerCase();return(a.items||[]).filter(p=>(a.columns||[]).some(h=>{if(h.searchable===!1)return!1;const S=p[h.key];return S==null?!1:String(S).toLowerCase().includes(b)}))}),k=(b,p,h)=>{if(b==null)return 1;if(p==null)return-1;if(typeof b=="string"&&typeof p=="string"){const S=b.toLowerCase(),$=p.toLowerCase();return S<$?h?1:-1:S>$?h?-1:1:0}if(typeof b=="number"&&typeof p=="number")return b<p?h?1:-1:b>p?h?-1:1:0;if(typeof b=="boolean"&&typeof p=="boolean")return b===p?0:(b?1:-1)*(h?-1:1);if(b instanceof Date&&p instanceof Date){const S=b.getTime(),$=p.getTime();return S<$?h?1:-1:S>$?h?-1:1:0}return 0},g=e.computed(()=>{if(!a.sortable||!s.value)return u.value;const b=[...u.value],p=s.value;return b.sort((h,S)=>k(h[p],S[p],n.value)),b}),C=e.computed(()=>{if(!a.paginated)return g.value;const b=(l.value-1)*o.value,p=b+o.value;return g.value.slice(b,p)}),V=e.computed(()=>a.items.length),B=e.computed(()=>u.value.length),N=e.computed(()=>Math.ceil(B.value/o.value)),x=e.computed(()=>B.value===0?0:(l.value-1)*o.value+1),w=e.computed(()=>{const b=l.value*o.value;return Math.min(b,B.value)}),gl=e.computed(()=>(B.value!==V.value?a.filteredInfoText:a.infoText).replace("{start}",String(x.value)).replace("{end}",String(w.value)).replace("{total}",String(B.value)).replace("{totalRows}",String(V.value))),kl=e.computed(()=>{const b=["table"];return a.striped&&b.push("table-striped"),a.bordered&&b.push("table-bordered"),a.borderless&&b.push("table-borderless"),a.hover&&b.push("table-hover"),a.small&&b.push("table-sm"),a.variant&&b.push(`table-${a.variant}`),b.join(" ")}),Bl=b=>{!a.sortable||b.sortable===!1||(s.value===b.key?n.value=!n.value:(s.value=b.key,n.value=!1))},E=b=>{b<1||b>N.value||(l.value=b)},Sl=()=>{l.value=1},Cl=(b,p)=>{i("row-clicked",b,p)},Vl=(b,p)=>{const h=b[p.key];return p.formatter?p.formatter(h,b):h},$l=b=>!a.sortable||b.sortable===!1?"":s.value!==b.key?"⇅":n.value?"↓":"↑",Nl=b=>{const p={...b.thStyle};return a.sortable&&b.sortable!==!1&&(p.cursor="pointer"),p};return(b,p)=>(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("div",$t,[t.searchable?(e.openBlock(),e.createElementBlock("div",Nt,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=h=>r.value=h),type:"search",class:"form-control",placeholder:t.searchPlaceholder},null,8,Et),[[e.vModelText,r.value]])])):e.createCommentVNode("",!0),t.showPerPage&&t.paginated?(e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",xt,[p[6]||(p[6]=e.createElementVNode("label",{class:"me-2 mb-0"},"Show",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":p[1]||(p[1]=h=>o.value=h),class:"form-select form-select-sm",style:{width:"auto"},onChange:Sl},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.perPageOptions,h=>(e.openBlock(),e.createElementBlock("option",{key:h,value:h},e.toDisplayString(h),9,wt))),128))],544),[[e.vModelSelect,o.value,void 0,{number:!0}]]),p[7]||(p[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(kl.value)},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,h=>(e.openBlock(),e.createElementBlock("th",{key:h.key,class:e.normalizeClass(h.headerClass),style:e.normalizeStyle(Nl(h)),onClick:S=>Bl(h)},[e.createTextVNode(e.toDisplayString(h.label)+" ",1),t.sortable&&h.sortable!==!1?(e.openBlock(),e.createElementBlock("span",zt,e.toDisplayString($l(h)),1)):e.createCommentVNode("",!0)],14,Tt))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(h,S)=>(e.openBlock(),e.createElementBlock("tr",{key:f(h,S),onClick:$=>Cl(h,S),style:{cursor:"pointer"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,$=>(e.openBlock(),e.createElementBlock("td",{key:$.key,class:e.normalizeClass($.class),style:e.normalizeStyle($.tdStyle)},[e.renderSlot(b.$slots,`cell(${$.key})`,{item:h,value:h[$.key],index:S},()=>[e.createTextVNode(e.toDisplayString(Vl(h,$)),1)],!0)],6))),128))],8,Dt))),128)),C.value.length===0&&t.showEmpty?(e.openBlock(),e.createElementBlock("tr",Mt,[e.createElementVNode("td",{colspan:t.columns.length,class:"text-center"},e.toDisplayString(t.emptyText),9,Ft)])):e.createCommentVNode("",!0)])],2)],2),e.createElementVNode("div",qt,[t.showInfo?(e.openBlock(),e.createElementBlock("div",Lt,[e.createElementVNode("div",Pt,e.toDisplayString(gl.value),1)])):e.createCommentVNode("",!0),t.paginated&&N.value>1?(e.openBlock(),e.createElementBlock("div",jt,[e.createElementVNode("nav",null,[e.createElementVNode("ul",At,[e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:l.value===1}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[2]||(p[2]=e.withModifiers(h=>E(l.value-1),["prevent"]))}," Previous ")],2),l.value>3?(e.openBlock(),e.createElementBlock("li",It,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[3]||(p[3]=e.withModifiers(h=>E(1),["prevent"]))},"1")])):e.createCommentVNode("",!0),l.value>4?(e.openBlock(),e.createElementBlock("li",Ot,[...p[8]||(p[8]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.from({length:N.value},(h,S)=>S+1).filter(h=>h>=l.value-2&&h<=l.value+2),h=>(e.openBlock(),e.createElementBlock("li",{key:h,class:e.normalizeClass(["page-item",{active:h===l.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:e.withModifiers(S=>E(h),["prevent"])},e.toDisplayString(h),9,Rt)],2))),128)),l.value<N.value-3?(e.openBlock(),e.createElementBlock("li",Xt,[...p[9]||(p[9]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),l.value<N.value-2?(e.openBlock(),e.createElementBlock("li",Yt,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[4]||(p[4]=e.withModifiers(h=>E(N.value),["prevent"]))},e.toDisplayString(N.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:l.value===N.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:p[5]||(p[5]=e.withModifiers(h=>E(l.value+1),["prevent"]))}," Next ")],2)])])])):e.createCommentVNode("",!0)])]))}}),v=(t,m)=>{const a=t.__vccOpts||t;for(const[l,o]of m)a[l]=o;return a},se=v(Gt,[["__scopeId","data-v-25bff6a6"]]),Ht={class:"mb-3"},Ut=["for"],Kt={key:0,class:"text-danger"},Qt=["id","type","value","placeholder","disabled","readonly","required","aria-invalid","aria-describedby"],Wt=["id"],Jt={key:2,class:"valid-feedback",style:{display:"block"}},Zt=["id"],de=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:m}){const a=t,l=m,o=e.computed(()=>{const d=[];return a.plaintext?d.push("form-control-plaintext"):(d.push("form-control"),a.size&&d.push(`form-control-${a.size}`)),a.validationState==="valid"&&d.push("is-valid"),a.validationState==="invalid"&&d.push("is-invalid"),d.join(" ")}),s=d=>{const c=d.target,f=a.type==="number"?c.value===""?"":Number(c.value):c.value;l("update:modelValue",f),l("input",d),a.validateOn==="input"&&l("validate")},n=d=>{l("change",d),a.validateOn==="change"&&l("validate")},i=d=>{l("blur",d),a.validateOn==="blur"&&l("validate")},r=d=>{l("focus",d)};return(d,c)=>(e.openBlock(),e.createElementBlock("div",Ht,[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",Kt,"*")):e.createCommentVNode("",!0)],8,Ut)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(o.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly||t.plaintext,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:s,onChange:n,onBlur:i,onFocus:r},null,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,Wt)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Jt,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,Zt)):e.createCommentVNode("",!0)]))}}),_t={class:"mb-3"},ea=["for"],ta={key:0,class:"text-danger"},aa=["id","value","disabled","required","multiple","size","aria-invalid","aria-describedby"],la=["selected"],oa=["value","disabled"],na=["id"],ia={key:2,class:"valid-feedback",style:{display:"block"}},ra=["id"],ce=e.defineComponent({__name:"VibeFormSelect",props:{modelValue:{type:[String,Number,Array],default:"",validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const r=["form-select"];return a.size&&r.push(`form-select-${a.size}`),a.validationState==="valid"&&r.push("is-valid"),a.validationState==="invalid"&&r.push("is-invalid"),r.join(" ")}),s=r=>{const d=r.target;let c;a.multiple?c=Array.from(d.selectedOptions).map(u=>u.value):c=d.value,l("update:modelValue",c),l("change",r),a.validateOn==="change"&&l("validate")},n=r=>{l("blur",r),a.validateOn==="blur"&&l("validate")},i=r=>{l("focus",r)};return(r,d)=>(e.openBlock(),e.createElementBlock("div",_t,[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",ta,"*")):e.createCommentVNode("",!0)],8,ea)):e.createCommentVNode("",!0),e.createElementVNode("select",{id:t.id,class:e.normalizeClass(o.value),value:t.modelValue,disabled:t.disabled,required:t.required,multiple:t.multiple,size:t.htmlSize,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:s,onBlur:n,onFocus:i},[t.placeholder&&!t.multiple?(e.openBlock(),e.createElementBlock("option",{key:0,value:"",disabled:"",selected:!t.modelValue},e.toDisplayString(t.placeholder),9,la)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,c=>(e.openBlock(),e.createElementBlock("option",{key:c.value,value:c.value,disabled:c.disabled},e.toDisplayString(c.text),9,oa))),128)),e.renderSlot(r.$slots,"default")],42,aa),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,na)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ia,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,ra)):e.createCommentVNode("",!0)]))}}),sa={class:"mb-3"},da=["for"],ca={key:0,class:"text-danger"},ma=["id","value","placeholder","disabled","readonly","required","rows","maxlength","aria-invalid","aria-describedby"],fa={key:1,class:"form-text"},ua=["id"],ba={key:3,class:"valid-feedback",style:{display:"block"}},ya=["id"],me=e.defineComponent({__name:"VibeFormTextarea",props:{modelValue:{type:String,default:"",validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const f=["form-control"];return a.size&&f.push(`form-control-${a.size}`),a.validationState==="valid"&&f.push("is-valid"),a.validationState==="invalid"&&f.push("is-invalid"),f.join(" ")}),s=e.computed(()=>{const f=typeof a.modelValue=="string"?a.modelValue:"";return f?f.length:0}),n=e.computed(()=>a.maxlength?`${s.value} / ${a.maxlength}`:`${s.value}`),i=f=>{const u=f.target;l("update:modelValue",u.value),l("input",f),a.validateOn==="input"&&l("validate")},r=f=>{l("change",f),a.validateOn==="change"&&l("validate")},d=f=>{l("blur",f),a.validateOn==="blur"&&l("validate")},c=f=>{l("focus",f)};return(f,u)=>(e.openBlock(),e.createElementBlock("div",sa,[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",ca,"*")):e.createCommentVNode("",!0)],8,da)):e.createCommentVNode("",!0),e.createElementVNode("textarea",{id:t.id,class:e.normalizeClass(o.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,rows:t.rows,maxlength:t.maxlength,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:i,onChange:r,onBlur:d,onFocus:c},null,42,ma),t.showCharCount?(e.openBlock(),e.createElementBlock("div",fa,e.toDisplayString(n.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,ua)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ba,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,ya)):e.createCommentVNode("",!0)]))}}),pa={class:"mb-3"},ha=["for"],ga={key:0,class:"text-danger"},ka=["disabled"],Ba=["id","value","disabled","readonly","required","min","max","step","aria-invalid","aria-describedby"],Sa=["disabled"],Ca=["id"],Va={key:2,class:"valid-feedback",style:{display:"block"}},$a=["id"],fe=v(e.defineComponent({__name:"VibeFormSpinbutton",props:{modelValue:{type:Number,default:0,validator:t=>!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:m}){const a=t,l=m,o=e.computed(()=>{const g=["form-control"];return a.size&&g.push(`form-control-${a.size}`),a.validationState==="valid"&&g.push("is-valid"),a.validationState==="invalid"&&g.push("is-invalid"),g.join(" ")}),s=e.computed(()=>{const g=["input-group"];return a.size&&g.push(`input-group-${a.size}`),a.vertical&&g.push("input-group-vertical"),g.join(" ")}),n=e.computed(()=>a.disabled||a.readonly?!1:a.min===void 0||a.wrap?!0:a.modelValue>a.min),i=e.computed(()=>a.disabled||a.readonly?!1:a.max===void 0||a.wrap?!0:a.modelValue<a.max),r=g=>{const C=g.target;let V=C.value===""?0:Number(C.value);a.min!==void 0&&V<a.min&&(V=a.min),a.max!==void 0&&V>a.max&&(V=a.max),l("update:modelValue",V),l("input",g),a.validateOn==="input"&&l("validate")},d=g=>{l("change",g),a.validateOn==="change"&&l("validate")},c=g=>{l("blur",g),a.validateOn==="blur"&&l("validate")},f=g=>{l("focus",g)},u=()=>{if(!i.value)return;let g=a.modelValue+a.step;a.max!==void 0&&g>a.max&&(g=a.wrap?a.min??0:a.max),l("update:modelValue",g),l("increment",g),a.validateOn==="change"&&l("validate")},k=()=>{if(!n.value)return;let g=a.modelValue-a.step;a.min!==void 0&&g<a.min&&(g=a.wrap?a.max??0:a.min),l("update:modelValue",g),l("decrement",g),a.validateOn==="change"&&l("validate")};return(g,C)=>(e.openBlock(),e.createElementBlock("div",pa,[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",ga,"*")):e.createCommentVNode("",!0)],8,ha)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(s.value)},[e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!n.value,onClick:k,"aria-label":"Decrement"},[...C[0]||(C[0]=[e.createElementVNode("span",{"aria-hidden":"true"},"−",-1)])],8,ka),e.createElementVNode("input",{id:t.id,type:"number",class:e.normalizeClass(o.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,step:t.step,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:r,onChange:d,onBlur:c,onFocus:f},null,42,Ba),e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!i.value,onClick:u,"aria-label":"Increment"},[...C[1]||(C[1]=[e.createElementVNode("span",{"aria-hidden":"true"},"+",-1)])],8,Sa)],2),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Ca)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Va,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,$a)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-fbee244e"]]),Na={class:"mb-3"},Ea=["for"],va={key:0,class:"text-danger"},xa=["id","type","value","disabled","readonly","required","min","max","aria-invalid","aria-describedby"],wa=["id"],Ta={key:2,class:"valid-feedback",style:{display:"block"}},za=["id"],ue=e.defineComponent({__name:"VibeFormDatepicker",props:{modelValue:{type:String,default:"",validator:t=>!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: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:m}){const a=t,l=m,o=e.computed(()=>{const d=["form-control"];return a.size&&d.push(`form-control-${a.size}`),a.validationState==="valid"&&d.push("is-valid"),a.validationState==="invalid"&&d.push("is-invalid"),d.join(" ")}),s=d=>{const c=d.target;l("update:modelValue",c.value),l("input",d),a.validateOn==="input"&&l("validate")},n=d=>{l("change",d),a.validateOn==="change"&&l("validate")},i=d=>{l("blur",d),a.validateOn==="blur"&&l("validate")},r=d=>{l("focus",d)};return(d,c)=>(e.openBlock(),e.createElementBlock("div",Na,[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",va,"*")):e.createCommentVNode("",!0)],8,Ea)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:t.id,type:t.type,class:e.normalizeClass(o.value),value:t.modelValue,disabled:t.disabled,readonly:t.readonly,required:t.required,min:t.min,max:t.max,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onInput:s,onChange:n,onBlur:i,onFocus:r},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,wa)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ta,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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)]))}}),Da=["id","checked","value","disabled","required","indeterminate","aria-invalid","aria-describedby"],Ma=["for"],Fa={key:0,class:"text-danger"},qa=["id"],La={key:2,class:"valid-feedback",style:{display:"block"}},Pa=["id"],be=e.defineComponent({__name:"VibeFormCheckbox",props:{modelValue:{type:[Boolean,Array],default:!1,validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const c=["form-check-input"];return a.validationState==="valid"&&c.push("is-valid"),a.validationState==="invalid"&&c.push("is-invalid"),c.join(" ")}),s=e.computed(()=>{const c=["form-check"];return a.inline&&c.push("form-check-inline"),c.join(" ")}),n=e.computed(()=>Array.isArray(a.modelValue)?a.modelValue.includes(a.value):a.modelValue===a.value||a.modelValue===!0),i=c=>{const f=c.target;let u;if(Array.isArray(a.modelValue))if(u=[...a.modelValue],f.checked)u.includes(a.value)||u.push(a.value);else{const k=u.indexOf(a.value);k>-1&&u.splice(k,1)}else u=f.checked;l("update:modelValue",u),l("change",c),a.validateOn==="change"&&l("validate")},r=c=>{l("blur",c),a.validateOn==="blur"&&l("validate")},d=c=>{l("focus",c)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(o.value),checked:n.value,value:t.value,disabled:t.disabled,required:t.required,indeterminate:t.indeterminate,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:i,onBlur:r,onFocus:d},null,42,Da),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",Fa,"*")):e.createCommentVNode("",!0)],8,Ma)):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,qa)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",La,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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))}}),ja=["id","checked","value","name","disabled","required","aria-invalid","aria-describedby"],Aa=["for"],Ia={key:0,class:"text-danger"},Oa=["id"],Ra={key:2,class:"valid-feedback",style:{display:"block"}},Xa=["id"],ye=e.defineComponent({__name:"VibeFormRadio",props:{modelValue:{type:[String,Number,Boolean],default:void 0,validator:t=>!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:m}){const a=t,l=m,o=e.computed(()=>{const c=["form-check-input"];return a.validationState==="valid"&&c.push("is-valid"),a.validationState==="invalid"&&c.push("is-invalid"),c.join(" ")}),s=e.computed(()=>{const c=["form-check"];return a.inline&&c.push("form-check-inline"),c.join(" ")}),n=e.computed(()=>a.modelValue===a.value),i=c=>{c.target.checked&&l("update:modelValue",a.value),l("change",c),a.validateOn==="change"&&l("validate")},r=c=>{l("blur",c),a.validateOn==="blur"&&l("validate")},d=c=>{l("focus",c)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.createElementVNode("input",{id:t.id,type:"radio",class:e.normalizeClass(o.value),checked:n.value,value:t.value,name:t.name,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,onChange:i,onBlur:r,onFocus:d},null,42,ja),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",Ia,"*")):e.createCommentVNode("",!0)],8,Aa)):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),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ra,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,Xa)):e.createCommentVNode("",!0)],2))}}),Ya={class:"form-check form-switch"},Ga=["id","checked","disabled","required","aria-invalid","aria-describedby"],Ha=["for"],Ua={key:0,class:"text-danger"},Ka=["id"],Qa={key:2,class:"valid-feedback",style:{display:"block"}},Wa=["id"],pe=e.defineComponent({__name:"VibeFormSwitch",props:{modelValue:{type:Boolean,default:!1,validator:t=>!0},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:m}){const a=t,l=m,o=e.computed(()=>{const r=["form-check-input"];return a.validationState==="valid"&&r.push("is-valid"),a.validationState==="invalid"&&r.push("is-invalid"),r.join(" ")}),s=r=>{const d=r.target;l("update:modelValue",d.checked),l("change",r),a.validateOn==="change"&&l("validate")},n=r=>{l("blur",r),a.validateOn==="blur"&&l("validate")},i=r=>{l("focus",r)};return(r,d)=>(e.openBlock(),e.createElementBlock("div",Ya,[e.createElementVNode("input",{id:t.id,type:"checkbox",class:e.normalizeClass(o.value),checked:t.modelValue,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${t.id}-feedback`:void 0,role:"switch",onChange:s,onBlur:n,onFocus:i},null,42,Ga),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",Ua,"*")):e.createCommentVNode("",!0)],8,Ha)):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),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Qa,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,Wa)):e.createCommentVNode("",!0)]))}}),Ja=["for"],Za={key:0,class:"text-danger"},_a=["id"],el={key:1,class:"valid-feedback",style:{display:"block"}},tl=["id"],al=["for"],ll={key:0,class:"text-danger"},ol=["id"],nl={key:2,class:"valid-feedback",style:{display:"block"}},il=["id"],he=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 m=t,a=e.computed(()=>{const n=[];return m.floating?n.push("form-floating"):m.row?n.push("row","mb-3"):n.push("mb-3"),n.join(" ")}),l=e.computed(()=>{const n=[];return m.floating?n.push("form-label"):m.row?(n.push("col-form-label"),m.labelCols&&n.push(`col-sm-${m.labelCols}`),m.labelAlign&&n.push(`text-${m.labelAlign}`)):n.push("form-label"),n.join(" ")}),o=e.computed(()=>m.row&&m.labelCols?`col-sm-${12-Number(m.labelCols)}`:""),s=e.computed(()=>m.labelFor?`${m.labelFor}-feedback`:void 0);return(n,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(l.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Za,"*")):e.createCommentVNode("",!0)],10,Ja)):e.createCommentVNode("",!0),t.row&&t.labelCols?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(o.value)},[e.renderSlot(n.$slots,"default"),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:0,id:s.value,class:"form-text"},e.toDisplayString(t.helpText),9,_a)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",el,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:2,id:s.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,tl)):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.renderSlot(n.$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",ll,"*")):e.createCommentVNode("",!0)],10,al)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:s.value,class:"form-text"},e.toDisplayString(t.helpText),9,ol)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",nl,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:s.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,il)):e.createCommentVNode("",!0)],64))],2))}}),rl={class:"mb-3"},sl=["for"],dl={key:0,class:"text-danger"},cl={key:1,class:"alert alert-warning",role:"alert"},ml=["id"],fl=["id"],ul={key:4,class:"valid-feedback",style:{display:"block"}},bl=["id"],ge=v(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:m}){const a=t,l=m,o=e.ref(null),s=e.ref(null),n=e.ref(!1),i=e.ref(null),r=e.ref(!1),d=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.computed(()=>{const B=["vibe-wysiwyg-container"];return a.validationState==="valid"&&B.push("is-valid"),a.validationState==="invalid"&&B.push("is-invalid"),a.disabled&&B.push("disabled"),B.join(" ")}),k=[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]}],["link","image"],["clean"]],g=()=>a.toolbar===!1?!1:a.toolbar===!0||a.toolbar===void 0?k:a.toolbar,C=B=>{s.value&&(r.value=!0,s.value.setContents([],"silent"),B&&s.value.clipboard.dangerouslyPasteHTML(B,"silent"),r.value=!1)},V=()=>!s.value||s.value.getText().trim().length===0?"":s.value.getSemanticHTML();return e.onMounted(async()=>{try{const B=await import("quill"),N=B.default||B;if(await import("quill/dist/quill.snow.css"),o.value){const x={theme:a.theme,placeholder:a.placeholder,readOnly:a.readonly||a.disabled,modules:{toolbar:g()}};s.value=new N(o.value,x),a.modelValue&&C(a.modelValue),f.value=()=>{if(r.value)return;const w=V();l("update:modelValue",w),l("change"),a.validateOn==="change"&&l("validate")},s.value.on("text-change",f.value),d.value=()=>{l("blur"),a.validateOn==="blur"&&l("validate")},s.value.root.addEventListener("blur",d.value),c.value=()=>{l("focus")},s.value.root.addEventListener("focus",c.value),n.value=!0,l("ready",s.value)}}catch(B){console.error("Failed to load Quill editor:",B),i.value="Failed to load WYSIWYG editor. Please install quill: npm install quill",n.value=!1}}),e.onBeforeUnmount(()=>{s.value&&(f.value&&(s.value.off("text-change",f.value),f.value=null),d.value&&(s.value.root.removeEventListener("blur",d.value),d.value=null),c.value&&(s.value.root.removeEventListener("focus",c.value),c.value=null),s.value=null)}),e.watch(()=>a.modelValue,B=>{if(!s.value)return;V()!==(B||"")&&C(B||"")}),e.watch(()=>a.disabled,B=>{s.value&&s.value.enable(!B)}),e.watch(()=>a.readonly,B=>{s.value&&s.value.enable(!B)}),(B,N)=>(e.openBlock(),e.createElementBlock("div",rl,[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",dl,"*")):e.createCommentVNode("",!0)],8,sl)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",cl,e.toDisplayString(i.value),1)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(u.value),style:e.normalizeStyle({minHeight:t.height})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:o,id:t.id},null,8,ml)],6)),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${t.id}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,fl)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ul,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="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,bl)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-8e6e81b0"]]),yl={install(t){t.component("VibeAlert",T),t.component("VibeBadge",z),t.component("VibeButton",D),t.component("VibeButtonGroup",M),t.component("VibeCloseButton",F),t.component("VibeSpinner",q),t.component("VibePlaceholder",L),t.component("VibeContainer",P),t.component("VibeRow",j),t.component("VibeCol",A),t.component("VibeCard",I),t.component("VibeBreadcrumb",O),t.component("VibeNav",R),t.component("VibeNavbar",X),t.component("VibeNavbarBrand",Y),t.component("VibeNavbarToggle",G),t.component("VibeNavbarNav",H),t.component("VibePagination",U),t.component("VibeTabContent",K),t.component("VibeListGroup",Q),t.component("VibeProgress",W),t.component("VibeAccordion",J),t.component("VibeCollapse",Z),t.component("VibeDropdown",_),t.component("VibeModal",ee),t.component("VibeOffcanvas",te),t.component("VibeToast",ae),t.component("VibeCarousel",le),t.component("VibeTooltip",oe),t.component("VibePopover",ne),t.component("VibeScrollspy",ie),t.component("VibeIcon",re),t.component("VibeDataTable",se),t.component("VibeFormInput",de),t.component("VibeFormSelect",ce),t.component("VibeFormTextarea",me),t.component("VibeFormSpinbutton",fe),t.component("VibeFormDatepicker",ue),t.component("VibeFormCheckbox",be),t.component("VibeFormRadio",ye),t.component("VibeFormSwitch",pe),t.component("VibeFormGroup",he),t.component("VibeFormWysiwyg",ge)}};function pl(t=""){const m=e.ref(t),a=e.ref(null),l=e.ref(""),o=e.ref(!1),s=e.ref(!1),n=e.ref(!1),i=async k=>{if(!k)return a.value=null,l.value="",{valid:!0};n.value=!0;try{const g=Array.isArray(k)?k:[{validator:k}];for(const C of g){const V=await C.validator(m.value);if(V===!1||typeof V=="string")return a.value="invalid",l.value=typeof V=="string"?V:C.message||"Invalid value",n.value=!1,{valid:!1,message:l.value}}return a.value="valid",l.value="",n.value=!1,{valid:!0}}catch{return a.value="invalid",l.value="Validation error occurred",n.value=!1,{valid:!1,message:l.value}}},r=()=>{m.value=t,a.value=null,l.value="",o.value=!1,s.value=!1,n.value=!1},d=()=>{s.value=!0},c=()=>{o.value=!0},f=e.computed(()=>a.value==="valid"),u=e.computed(()=>a.value==="invalid");return{value:m,validationState:a,validationMessage:l,isDirty:o,isTouched:s,isValidating:n,isValid:f,isInvalid:u,validate:i,reset:r,markAsTouched:d,markAsDirty:c}}const hl={required:(t="This field is required")=>({validator:m=>Array.isArray(m)?m.length>0||t:typeof m=="string"?m.trim().length>0||t:m!=null&&m!==""||t,message:t}),email:(t="Please enter a valid email address")=>({validator:m=>m?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(m)||t:!0,message:t}),minLength:(t,m)=>({validator:a=>a?a.length>=t||m||`Minimum length is ${t} characters`:!0,message:m}),maxLength:(t,m)=>({validator:a=>a?a.length<=t||m||`Maximum length is ${t} characters`:!0,message:m}),min:(t,m)=>({validator:a=>{if(a==null||a==="")return!0;const l=Number(a);return Number.isNaN(l)?m||"Value must be a number":l>=t||m||`Minimum value is ${t}`},message:m}),max:(t,m)=>({validator:a=>{if(a==null||a==="")return!0;const l=Number(a);return Number.isNaN(l)?m||"Value must be a number":l<=t||m||`Maximum value is ${t}`},message:m}),pattern:(t,m="Invalid format")=>({validator:a=>a?t.test(a)||m:!0,message:m}),url:(t="Please enter a valid URL")=>({validator:m=>{if(!m)return!0;try{return new URL(m),!0}catch{return t}},message:t}),async:t=>({validator:t})};y.VibeAccordion=J,y.VibeAlert=T,y.VibeBadge=z,y.VibeBreadcrumb=O,y.VibeButton=D,y.VibeButtonGroup=M,y.VibeCard=I,y.VibeCarousel=le,y.VibeCloseButton=F,y.VibeCol=A,y.VibeCollapse=Z,y.VibeContainer=P,y.VibeDataTable=se,y.VibeDropdown=_,y.VibeFormCheckbox=be,y.VibeFormDatepicker=ue,y.VibeFormGroup=he,y.VibeFormInput=de,y.VibeFormRadio=ye,y.VibeFormSelect=ce,y.VibeFormSpinbutton=fe,y.VibeFormSwitch=pe,y.VibeFormTextarea=me,y.VibeFormWysiwyg=ge,y.VibeIcon=re,y.VibeListGroup=Q,y.VibeModal=ee,y.VibeNav=R,y.VibeNavbar=X,y.VibeNavbarBrand=Y,y.VibeNavbarNav=H,y.VibeNavbarToggle=G,y.VibeOffcanvas=te,y.VibePagination=U,y.VibePlaceholder=L,y.VibePopover=ne,y.VibeProgress=W,y.VibeRow=j,y.VibeScrollspy=ie,y.VibeSpinner=q,y.VibeTabContent=K,y.VibeToast=ae,y.VibeTooltip=oe,y.default=yl,y.useFormValidation=pl,y.validators=hl,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velkymx/vibeui",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
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",