@velkymx/vibeui 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +171 -9
  2. package/dist/components/VibeAlert.vue.d.ts +12 -2
  3. package/dist/components/VibeAutocomplete.vue.d.ts +46 -0
  4. package/dist/components/VibeButton.vue.d.ts +4 -4
  5. package/dist/components/VibeDataTable.vue.d.ts +6 -6
  6. package/dist/components/VibeDatePicker.vue.d.ts +122 -0
  7. package/dist/components/VibeDraggable.vue.d.ts +81 -0
  8. package/dist/components/VibeDroppable.vue.d.ts +74 -0
  9. package/dist/components/VibeFileInput.vue.d.ts +133 -0
  10. package/dist/components/VibeFormCheckbox.vue.d.ts +1 -1
  11. package/dist/components/VibeFormDatepicker.vue.d.ts +1 -1
  12. package/dist/components/VibeFormGroup.vue.d.ts +1 -1
  13. package/dist/components/VibeFormInput.vue.d.ts +1 -1
  14. package/dist/components/VibeFormRadio.vue.d.ts +1 -1
  15. package/dist/components/VibeFormSelect.vue.d.ts +1 -1
  16. package/dist/components/VibeFormSpinbutton.vue.d.ts +1 -1
  17. package/dist/components/VibeFormSwitch.vue.d.ts +1 -1
  18. package/dist/components/VibeFormTextarea.vue.d.ts +1 -1
  19. package/dist/components/VibeFormWysiwyg.vue.d.ts +2 -2
  20. package/dist/components/VibeResizable.vue.d.ts +144 -0
  21. package/dist/components/VibeSkeleton.vue.d.ts +53 -0
  22. package/dist/components/VibeSlider.vue.d.ts +78 -0
  23. package/dist/components/VibeSortable.vue.d.ts +40 -0
  24. package/dist/components/VibeStepper.vue.d.ts +132 -0
  25. package/dist/components/VibeTab.vue.d.ts +45 -0
  26. package/dist/components/VibeTabs.vue.d.ts +82 -0
  27. package/dist/components/VibeToast.vue.d.ts +11 -0
  28. package/dist/components/VibeToastHost.vue.d.ts +15 -0
  29. package/dist/components/dndStore.d.ts +6 -0
  30. package/dist/components/index.d.ts +14 -1
  31. package/dist/composables/useForm.d.ts +22 -0
  32. package/dist/composables/usePosition.d.ts +20 -0
  33. package/dist/composables/useToast.d.ts +52 -0
  34. package/dist/directives/vTooltip.d.ts +25 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/types.d.ts +11 -4
  37. package/dist/vibeui.css +1 -1
  38. package/dist/vibeui.es.js +4256 -1827
  39. package/dist/vibeui.umd.js +1 -1
  40. package/package.json +4 -5
  41. package/CLAUDE.md +0 -48
  42. package/docs/README.md +0 -153
  43. package/docs/components/advanced/popover.md +0 -150
  44. package/docs/components/advanced/scrollspy.md +0 -64
  45. package/docs/components/advanced/tooltip.md +0 -111
  46. package/docs/components/card/card.md +0 -215
  47. package/docs/components/core/alert.md +0 -72
  48. package/docs/components/core/badge.md +0 -81
  49. package/docs/components/core/button-group.md +0 -105
  50. package/docs/components/core/button.md +0 -127
  51. package/docs/components/core/close-button.md +0 -82
  52. package/docs/components/core/link.md +0 -36
  53. package/docs/components/core/placeholder.md +0 -135
  54. package/docs/components/core/spinner.md +0 -109
  55. package/docs/components/data/datatable.md +0 -416
  56. package/docs/components/interactive/accordion.md +0 -92
  57. package/docs/components/interactive/carousel.md +0 -97
  58. package/docs/components/interactive/collapse.md +0 -105
  59. package/docs/components/interactive/dropdown.md +0 -93
  60. package/docs/components/interactive/modal.md +0 -148
  61. package/docs/components/interactive/offcanvas.md +0 -89
  62. package/docs/components/interactive/toast.md +0 -114
  63. package/docs/components/layout/col.md +0 -123
  64. package/docs/components/layout/container.md +0 -59
  65. package/docs/components/layout/row.md +0 -113
  66. package/docs/components/list/list-group.md +0 -221
  67. package/docs/components/navigation/breadcrumb.md +0 -116
  68. package/docs/components/navigation/nav.md +0 -88
  69. package/docs/components/navigation/navbar.md +0 -106
  70. package/docs/components/navigation/pagination.md +0 -146
  71. package/docs/components/progress/progress.md +0 -182
  72. package/docs/composables/back-button.md +0 -28
  73. package/docs/composables/breakpoints.md +0 -54
  74. package/docs/composables/color-mode.md +0 -141
  75. package/docs/forms/README.md +0 -88
  76. package/docs/forms/form-checkbox.md +0 -50
  77. package/docs/forms/form-datepicker.md +0 -50
  78. package/docs/forms/form-group.md +0 -80
  79. package/docs/forms/form-input.md +0 -55
  80. package/docs/forms/form-radio.md +0 -58
  81. package/docs/forms/form-select.md +0 -54
  82. package/docs/forms/form-spinbutton.md +0 -55
  83. package/docs/forms/form-switch.md +0 -47
  84. package/docs/forms/form-textarea.md +0 -51
  85. package/docs/forms/form-wysiwyg.md +0 -64
  86. package/docs/forms/input-group.md +0 -51
  87. package/docs/forms/validation.md +0 -599
  88. package/llms.txt +0 -422
@@ -1 +1 @@
1
- (function(S,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(S=typeof globalThis<"u"?globalThis:S||self,e(S.VibeUI={},S.Vue))})(this,(function(S,e){"use strict";const J=e.defineComponent({__name:"VibeAlert",props:{variant:{type:String,default:"primary"},subtle:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!0},dismissable:{type:Boolean,default:!1},message:{type:String,required:!0},fade:{type:Boolean,default:!0}},emits:["update:modelValue","close","closed","component-error"],setup(t,{emit:r}){const a=t,o=r,l=e.ref(null),i=e.ref(null),n=e.ref(a.modelValue),s=()=>{o("close")},u=()=>{n.value=!1,o("update:modelValue",!1),o("closed")};e.onMounted(async()=>{if(l.value)try{const g=(await import("bootstrap")).Alert;i.value=new g(l.value),l.value.addEventListener("close.bs.alert",s),l.value.addEventListener("closed.bs.alert",u)}catch(m){o("component-error",{message:"Bootstrap JS not loaded. Alert will use basic Vue logic.",componentName:"VibeAlert",originalError:m})}}),e.onBeforeUnmount(()=>{l.value&&(l.value.removeEventListener("close.bs.alert",s),l.value.removeEventListener("closed.bs.alert",u)),i.value&&(i.value.dispose(),i.value=null)}),e.watch(()=>a.modelValue,m=>{m?n.value=!0:i.value&&n.value?i.value.close():n.value=!1});const c=()=>{i.value?i.value.close():(n.value=!1,o("update:modelValue",!1),o("closed"))},b=e.computed(()=>{const m=["alert"];return a.subtle?m.push(`bg-${a.variant}-subtle`,`text-${a.variant}-emphasis`,`border-${a.variant}-subtle`):m.push(`alert-${a.variant}`),a.dismissable&&m.push("alert-dismissible"),a.fade&&m.push("fade","show"),m.join(" ")});return(m,g)=>n.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"alertRef",ref:l,class:e.normalizeClass(b.value),role:"alert"},[e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.dismissable?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"btn-close","aria-label":"Close",onClick:c})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),K=e.defineComponent({__name:"VibeBadge",props:{variant:{type:String,default:"primary"},subtle:{type:Boolean,default:!1},pill:{type:Boolean,default:!1},tag:{type:String,default:"span"}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=["badge"];return a.subtle?l.push(`bg-${a.variant}-subtle`,`text-${a.variant}-emphasis`):l.push(`bg-${a.variant}`),a.pill&&l.push("rounded-pill"),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),W=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},focusRing:{type:Boolean,default:!1}},emits:["click","component-error"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>a.href?"a":a.to?"router-link":"button"),i=e.computed(()=>{const s=["btn"];return a.outline?s.push(`btn-outline-${a.variant}`):s.push(`btn-${a.variant}`),a.size&&s.push(`btn-${a.size}`),a.active&&s.push("active"),a.focusRing&&s.push("focus-ring"),s.join(" ")}),n=s=>{a.disabled||o("click",s)};return(s,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(i.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(s.$slots,"default")]),_:3},8,["class","type","href","to","disabled","aria-disabled"]))}}),He=["role","aria-label"],Q=e.defineComponent({__name:"VibeButtonGroup",props:{size:{type:String,default:void 0},vertical:{type:Boolean,default:!1},role:{type:String,default:"group"},ariaLabel:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=[a.vertical?"btn-group-vertical":"btn-group"];return a.size&&l.push(`btn-group-${a.size}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),role:t.role,"aria-label":t.ariaLabel},[e.renderSlot(l.$slots,"default")],10,He))}}),Ge=["disabled","aria-label"],Z=e.defineComponent({__name:"VibeCloseButton",props:{disabled:{type:Boolean,default:!1},white:{type:Boolean,default:!1},ariaLabel:{type:String,default:"Close"}},emits:["click","component-error"],setup(t,{emit:r}){const a=t,o=r,l=i=>{a.disabled||o("click",i)};return(i,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:l},null,10,Ge))}}),Xe={class:"visually-hidden"},_=e.defineComponent({__name:"VibeSpinner",props:{variant:{type:String,default:void 0},type:{type:String,default:"border"},size:{type:String,default:void 0},label:{type:String,default:"Loading..."},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=[`spinner-${a.type}`];return a.variant&&l.push(`text-${a.variant}`),a.size&&l.push(`spinner-${a.type}-${a.size}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value),role:"status"},{default:e.withCtx(()=>[e.createElementVNode("span",Xe,e.toDisplayString(t.label),1)]),_:1},8,["class"]))}}),ee=e.defineComponent({__name:"VibePlaceholder",props:{variant:{type:String,default:void 0},size:{type:String,default:void 0},animation:{type:String,default:void 0},width:{type:[String,Number],default:void 0},tag:{type:String,default:"span"}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const n=["placeholder"];return a.variant&&n.push(`bg-${a.variant}`),a.size&&n.push(`placeholder-${a.size}`),n.join(" ")}),l=e.computed(()=>{if(a.animation)return`placeholder-${a.animation}`}),i=e.computed(()=>{if(a.width)return{width:typeof a.width=="number"?`${a.width}%`:a.width}});return(n,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(o.value),style:e.normalizeStyle(i.value)},[e.renderSlot(n.$slots,"default")],6)]),_:3},8,["class"]))}}),te=e.defineComponent({__name:"VibeContainer",props:{fluid:{type:[Boolean,String],default:!1},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>a.fluid===!1?"container":a.fluid===!0?"container-fluid":`container-${a.fluid}`);return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),ae=e.defineComponent({__name:"VibeRow",props:{tag:{type:String,default:"div"},gutters:{type:Number,default:void 0},guttersX:{type:Number,default:void 0},guttersY:{type:Number,default:void 0},guttersSm:{type:Number,default:void 0},guttersMd:{type:Number,default:void 0},guttersLg:{type:Number,default:void 0},guttersXl:{type:Number,default:void 0},guttersXxl:{type:Number,default:void 0},guttersXSm:{type:Number,default:void 0},guttersXMd:{type:Number,default:void 0},guttersXLg:{type:Number,default:void 0},guttersXXl:{type:Number,default:void 0},guttersXXxl:{type:Number,default:void 0},guttersYSm:{type:Number,default:void 0},guttersYMd:{type:Number,default:void 0},guttersYLg:{type:Number,default:void 0},guttersYXl:{type:Number,default:void 0},guttersYXxl:{type:Number,default:void 0},rowCols:{type:Number,default:void 0},rowColsSm:{type:Number,default:void 0},rowColsMd:{type:Number,default:void 0},rowColsLg:{type:Number,default:void 0},rowColsXl:{type:Number,default:void 0},rowColsXxl:{type:Number,default:void 0},alignItems:{type:String,default:void 0},justifyContent:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=["row"];a.gutters!==void 0&&l.push(`g-${a.gutters}`),a.guttersX!==void 0&&l.push(`gx-${a.guttersX}`),a.guttersY!==void 0&&l.push(`gy-${a.guttersY}`);const i=["sm","md","lg","xl","xxl"];return i.forEach(n=>{const s=n.charAt(0).toUpperCase()+n.slice(1),u=`gutters${s}`;a[u]!==void 0&&l.push(`g-${n}-${a[u]}`);const c=`guttersX${s}`;a[c]!==void 0&&l.push(`gx-${n}-${a[c]}`);const b=`guttersY${s}`;a[b]!==void 0&&l.push(`gy-${n}-${a[b]}`)}),a.rowCols!==void 0&&l.push(`row-cols-${a.rowCols}`),i.forEach(n=>{const s=`rowCols${n.charAt(0).toUpperCase()+n.slice(1)}`;a[s]!==void 0&&l.push(`row-cols-${n}-${a[s]}`)}),a.alignItems&&l.push(`align-items-${a.alignItems}`),a.justifyContent&&l.push(`justify-content-${a.justifyContent}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),oe=e.defineComponent({__name:"VibeCol",props:{tag:{type:String,default:"div"},cols:{type:[Number,String,Boolean],default:void 0},sm:{type:[Number,String,Boolean],default:void 0},md:{type:[Number,String,Boolean],default:void 0},lg:{type:[Number,String,Boolean],default:void 0},xl:{type:[Number,String,Boolean],default:void 0},xxl:{type:[Number,String,Boolean],default:void 0},offset:{type:Number,default:void 0},offsetSm:{type:Number,default:void 0},offsetMd:{type:Number,default:void 0},offsetLg:{type:Number,default:void 0},offsetXl:{type:Number,default:void 0},offsetXxl:{type:Number,default:void 0},order:{type:[Number,String],default:void 0},orderSm:{type:[Number,String],default:void 0},orderMd:{type:[Number,String],default:void 0},orderLg:{type:[Number,String],default:void 0},orderXl:{type:[Number,String],default:void 0},orderXxl:{type:[Number,String],default:void 0},alignSelf:{type:String,default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{const l=[];return a.cols!==void 0||a.sm!==void 0||a.md!==void 0||a.lg!==void 0||a.xl!==void 0||a.xxl!==void 0?(a.cols===!0?l.push("col"):a.cols==="auto"?l.push("col-auto"):a.cols&&l.push(`col-${a.cols}`),[{name:"sm",value:a.sm},{name:"md",value:a.md},{name:"lg",value:a.lg},{name:"xl",value:a.xl},{name:"xxl",value:a.xxl}].forEach(({name:s,value:u})=>{u===!0?l.push(`col-${s}`):u==="auto"?l.push(`col-${s}-auto`):u!==void 0&&l.push(`col-${s}-${u}`)})):l.push("col"),a.offset!==void 0&&l.push(`offset-${a.offset}`),a.offsetSm!==void 0&&l.push(`offset-sm-${a.offsetSm}`),a.offsetMd!==void 0&&l.push(`offset-md-${a.offsetMd}`),a.offsetLg!==void 0&&l.push(`offset-lg-${a.offsetLg}`),a.offsetXl!==void 0&&l.push(`offset-xl-${a.offsetXl}`),a.offsetXxl!==void 0&&l.push(`offset-xxl-${a.offsetXxl}`),a.order!==void 0&&l.push(`order-${a.order}`),a.orderSm!==void 0&&l.push(`order-sm-${a.orderSm}`),a.orderMd!==void 0&&l.push(`order-md-${a.orderMd}`),a.orderLg!==void 0&&l.push(`order-lg-${a.orderLg}`),a.orderXl!==void 0&&l.push(`order-xl-${a.orderXl}`),a.orderXxl!==void 0&&l.push(`order-xxl-${a.orderXxl}`),a.alignSelf&&l.push(`align-self-${a.alignSelf}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),Ue=["src","alt"],Ye={key:1,class:"card-header"},Je={key:2,class:"card-body"},Ke={key:0,class:"card-title"},We={key:1,class:"card-text"},Qe={key:3,class:"card-footer"},Ze=["src","alt"],le=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:r}){const a=t,o=e.computed(()=>{const l=["card"];return a.variant&&l.push(`text-bg-${a.variant}`),a.border&&l.push(`border-${a.border}`),a.textVariant&&l.push(`text-${a.textVariant}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.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,Ue)):e.createCommentVNode("",!0),t.header||l.$slots.header?(e.openBlock(),e.createElementBlock("div",Ye,[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.header),1)])])):e.createCommentVNode("",!0),t.title||t.body||l.$slots.default||l.$slots.body?(e.openBlock(),e.createElementBlock("div",Je,[t.title||l.$slots.title?(e.openBlock(),e.createElementBlock("h5",Ke,[e.renderSlot(l.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),t.body||l.$slots.body?(e.openBlock(),e.createElementBlock("p",We,[e.renderSlot(l.$slots,"body",{},()=>[e.createTextVNode(e.toDisplayString(t.body),1)])])):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default")])):e.createCommentVNode("",!0),t.footer||l.$slots.footer?(e.openBlock(),e.createElementBlock("div",Qe,[e.renderSlot(l.$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,Ze)):e.createCommentVNode("",!0)]),_:3},8,["class"]))}}),_e=["aria-label"],et={class:"breadcrumb"},tt=["aria-current"],ne=e.defineComponent({__name:"VibeBreadcrumb",props:{ariaLabel:{type:String,default:"breadcrumb"},items:{type:Array,required:!0}},emits:["item-click","component-error"],setup(t,{emit:r}){const a=r,o=(l,i,n)=>{l.active||a("item-click",{item:l,index:i,event:n})};return(l,i)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ol",et,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,s)=>(e.openBlock(),e.createElementBlock("li",{key:s,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:u=>o(n,s,u)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"item",{item:n,index:s},()=>[e.createTextVNode(e.toDisplayString(n.text),1)])]),_:2},1032,["href","to","onClick"]))],10,tt))),128))])],8,_e))}}),at={class:"dropdown-menu"},ot={key:0,class:"dropdown-divider"},lt={key:1,class:"dropdown-header"},ie=e.defineComponent({__name:"VibeNav",props:{items:{type:Array,required:!0},pills:{type:Boolean,default:!1},tabs:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},justified:{type:Boolean,default:!1},fill:{type:Boolean,default:!1},underline:{type:Boolean,default:!1},tag:{type:String,default:"ul"}},emits:["item-click","show","shown","hide","hidden","component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=new Map,s=e.computed(()=>{const d=["nav"];return o.pills&&d.push("nav-pills"),o.tabs&&d.push("nav-tabs"),o.vertical&&d.push("flex-column"),o.justified&&d.push("nav-justified"),o.fill&&d.push("nav-fill"),o.underline&&d.push("nav-underline"),d.join(" ")}),u=d=>l("show",d),c=d=>l("shown",d),b=d=>l("hide",d),m=d=>l("hidden",d),g=async()=>{if(i.value)try{const f=(await import("bootstrap")).Tab;i.value.querySelectorAll('[data-bs-toggle="tab"], [data-bs-toggle="pill"]').forEach(y=>{const B=y;if(!n.has(B)){const k=new f(B);n.set(B,k),B.addEventListener("show.bs.tab",u),B.addEventListener("shown.bs.tab",c),B.addEventListener("hide.bs.tab",b),B.addEventListener("hidden.bs.tab",m)}})}catch(d){l("component-error",{message:"Bootstrap JS not loaded. Nav will use basic Vue logic.",componentName:"VibeNav",originalError:d})}};e.onMounted(g),e.onBeforeUnmount(()=>{n.forEach((d,f)=>{f.removeEventListener("show.bs.tab",u),f.removeEventListener("shown.bs.tab",c),f.removeEventListener("hide.bs.tab",b),f.removeEventListener("hidden.bs.tab",m),d.dispose()}),n.clear()}),e.watch(()=>o.items,async()=>{await e.nextTick(),await g()},{deep:!0});const h=(d,f,p)=>{d.disabled||l("item-click",{item:d,index:f,event:p})};return r({bsInstances:n,refresh:g}),(d,f)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{ref_key:"navRef",ref:i,class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(p,y)=>(e.openBlock(),e.createElementBlock("li",{key:y,class:e.normalizeClass(["nav-item",{dropdown:p.children&&p.children.length>0}])},[p.children&&p.children.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("a",{class:e.normalizeClass(["nav-link dropdown-toggle",{active:p.active,disabled:p.disabled}]),"data-bs-toggle":"dropdown",href:"#",role:"button","aria-expanded":"false"},e.toDisplayString(p.text),3),e.createElementVNode("ul",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.children,(B,k)=>(e.openBlock(),e.createElementBlock("li",{key:k},[B.divider?(e.openBlock(),e.createElementBlock("hr",ot)):B.header?(e.openBlock(),e.createElementBlock("h6",lt,e.toDisplayString(B.text),1)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.href?"a":B.to?"router-link":"button"),{key:2,class:e.normalizeClass(["dropdown-item",{active:B.active,disabled:B.disabled}]),href:B.href,to:B.to,type:!B.href&&!B.to?"button":void 0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(B.text),1)]),_:2},1032,["class","href","to","type"]))]))),128))])],64)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.href?"a":p.to?"router-link":"button"),{key:1,class:e.normalizeClass(["nav-link",{active:p.active,disabled:p.disabled}]),href:p.href,to:p.to,type:!p.href&&!p.to?"button":void 0,"aria-current":p.active?"page":void 0,"data-bs-toggle":(t.tabs||t.pills)&&p.href&&p.href.startsWith("#")?t.tabs?"tab":"pill":void 0,"data-bs-target":p.href&&p.href.startsWith("#")?p.href:void 0,onClick:B=>h(p,y,B)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.text),1)]),_:2},1032,["class","href","to","type","aria-current","data-bs-toggle","data-bs-target","onClick"]))],2))),128))]),_:1},8,["class"]))}}),nt=e.defineComponent({__name:"VibeNavbar",props:{variant:{type:String,default:"light"},theme:{type:String,default:void 0},expand:{type:[Boolean,String],default:"lg"},container:{type:[Boolean,String],default:!0},position:{type:String,default:void 0},tag:{type:String,default:"nav"}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.reactive({}),l=u=>{o[u]=!o[u]};e.provide("vibeNavbarCollapse",{collapseStates:o,toggleCollapse:l});const i=e.computed(()=>{const u=["navbar"];return a.expand===!0?u.push("navbar-expand"):typeof a.expand=="string"&&u.push(`navbar-expand-${a.expand}`),u.push(`bg-${a.variant}`),a.position&&u.push(a.position),u.join(" ")}),n=e.computed(()=>{if(a.theme)return a.theme;if(a.variant==="dark")return"dark";if(a.variant==="light")return"light"}),s=e.computed(()=>{if(a.container!==!1)return a.container===!0?"container-fluid":`container-${a.container}`});return(u,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(i.value),"data-bs-theme":n.value},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.value)},[e.renderSlot(u.$slots,"default",{},void 0,!0)],2)):e.renderSlot(u.$slots,"default",{key:1},void 0,!0)]),_:3},8,["class","data-bs-theme"]))}}),I=(t,r)=>{const a=t.__vccOpts||t;for(const[o,l]of r)a[o]=l;return a},re=I(nt,[["__scopeId","data-v-8228b170"]]),se=e.defineComponent({__name:"VibeNavbarBrand",props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=a.href?"a":a.to?"router-link":"span";return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o)),{class:"navbar-brand",href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["href","to"]))}}),it=["data-bs-target","aria-controls","aria-expanded","aria-label"],de=e.defineComponent({__name:"VibeNavbarToggle",props:{target:{type:String,required:!0},ariaLabel:{type:String,default:"Toggle navigation"}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.inject("vibeNavbarCollapse",null),l=e.computed(()=>o?.collapseStates[a.target]??!1),i=async()=>{o&&o.toggleCollapse(a.target);try{const n=document.getElementById(a.target);n&&(await import("bootstrap")).Collapse.getOrCreateInstance(n).toggle()}catch{}};return(n,s)=>(e.openBlock(),e.createElementBlock("button",{class:"navbar-toggler",type:"button","data-bs-target":`#${t.target}`,"data-bs-toggle":"collapse","aria-controls":t.target,"aria-expanded":l.value,"aria-label":t.ariaLabel,onClick:i},[...s[0]||(s[0]=[e.createElementVNode("span",{class:"navbar-toggler-icon"},null,-1)])],8,it))}}),rt={class:"dropdown-menu"},st={key:0},dt={key:1},ct={class:"dropdown-header"},ut={key:2},ce=e.defineComponent({__name:"VibeNavbarNav",props:{tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["item-click","dropdown-item-click","component-error"],setup(t,{emit:r}){const a=r,o=c=>{const b=["nav-item"];return c.children?.length&&b.push("dropdown"),b.join(" ")},l=c=>{const b=["nav-link"];return c.active&&b.push("active"),c.disabled&&b.push("disabled"),c.children?.length&&b.push("dropdown-toggle"),b.join(" ")},i=c=>c.href?"a":c.to?"router-link":"a",n=c=>{const b=["dropdown-item"];return c.active&&b.push("active"),c.disabled&&b.push("disabled"),b.join(" ")},s=(c,b,m)=>{c.disabled||a("item-click",{item:c,index:b,event:m})},u=(c,b,m,g,h)=>{!m.disabled&&!m.divider&&!m.header&&a("dropdown-item-click",{item:c,itemIndex:b,child:m,childIndex:g,event:h})};return(c,b)=>(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,(m,g)=>(e.openBlock(),e.createElementBlock("li",{key:g,class:e.normalizeClass(o(m))},[m.children?.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("a",{class:e.normalizeClass(l(m)),href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[e.renderSlot(c.$slots,"item",{item:m,index:g},()=>[e.createTextVNode(e.toDisplayString(m.text),1)])],2),e.createElementVNode("ul",rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.children,(h,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[h.divider?(e.openBlock(),e.createElementBlock("li",st,[...b[0]||(b[0]=[e.createElementVNode("hr",{class:"dropdown-divider"},null,-1)])])):h.header?(e.openBlock(),e.createElementBlock("li",dt,[e.createElementVNode("h6",ct,e.toDisplayString(h.text),1)])):(e.openBlock(),e.createElementBlock("li",ut,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.href?"a":h.to?"router-link":"button"),{class:e.normalizeClass(n(h)),href:h.href,to:h.to,type:!h.href&&!h.to?"button":void 0,onClick:f=>u(m,g,h,d,f)},{default:e.withCtx(()=>[e.renderSlot(c.$slots,"dropdown-item",{item:m,child:h,index:g,childIndex:d},()=>[e.createTextVNode(e.toDisplayString(h.text),1)])]),_:2},1032,["class","href","to","type","onClick"]))]))],64))),128))])],64)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i(m)),{key:1,class:e.normalizeClass(l(m)),href:m.href,to:m.to,"aria-current":m.active?"page":void 0,"aria-disabled":m.disabled,onClick:h=>s(m,g,h)},{default:e.withCtx(()=>[e.renderSlot(c.$slots,"item",{item:m,index:g},()=>[e.createTextVNode(e.toDisplayString(m.text),1)])]),_:2},1032,["class","href","to","aria-current","aria-disabled","onClick"]))],2))),128)):e.renderSlot(c.$slots,"default",{key:1})]),_:3}))}}),mt=["aria-label"],ft=["disabled","aria-disabled"],pt=["aria-current","onClick"],bt=["disabled","aria-disabled"],ue=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:r}){const a=t,o=r,l=e.computed(()=>{const c=["pagination"];return a.size&&c.push(`pagination-${a.size}`),c.join(" ")}),i=e.computed(()=>Array.from({length:a.totalPages},(c,b)=>b+1)),n=c=>{c>=1&&c<=a.totalPages&&(o("update:currentPage",c),o("page-click",c))},s=e.computed(()=>a.currentPage===1),u=e.computed(()=>a.currentPage===a.totalPages);return(c,b)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ul",{class:e.normalizeClass(l.value)},[t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:0,class:e.normalizeClass(["page-item",{disabled:s.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:s.value,"aria-disabled":s.value,onClick:b[0]||(b[0]=m=>n(t.currentPage-1))},[e.renderSlot(c.$slots,"prev",{disabled:s.value},()=>[e.createTextVNode(e.toDisplayString(t.prevText),1)])],8,ft)],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,m=>(e.openBlock(),e.createElementBlock("li",{key:m,class:e.normalizeClass(["page-item",{active:m===t.currentPage}])},[e.createElementVNode("button",{class:"page-link",type:"button","aria-current":m===t.currentPage?"page":void 0,onClick:g=>n(m)},[e.renderSlot(c.$slots,"page",{page:m,active:m===t.currentPage},()=>[e.createTextVNode(e.toDisplayString(m),1)])],8,pt)],2))),128)),t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:1,class:e.normalizeClass(["page-item",{disabled:u.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:u.value,"aria-disabled":u.value,onClick:b[1]||(b[1]=m=>n(t.currentPage+1))},[e.renderSlot(c.$slots,"next",{disabled:u.value},()=>[e.createTextVNode(e.toDisplayString(t.nextText),1)])],8,bt)],2)):e.createCommentVNode("",!0)],2)],8,mt))}}),ht=["id","aria-labelledby"],me=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","shown","hide","hidden"],setup(t,{emit:r}){const a=t,o=e.ref(null),l=new Map,i=n=>{const s=["tab-pane"];return a.fade&&s.push("fade"),n.active&&s.push("show","active"),s.join(" ")};return e.onMounted(async()=>{if(o.value)try{const s=(await import("bootstrap")).Tab}catch{}}),e.onBeforeUnmount(()=>{l.forEach(n=>n.dispose()),l.clear()}),(n,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,ref_key:"tabContentRef",ref:o,class:"tab-content"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.panes,(u,c)=>(e.openBlock(),e.createElementBlock("div",{key:u.id,id:u.id,class:e.normalizeClass(i(u)),role:"tabpanel","aria-labelledby":`${u.id}-tab`,tabindex:"0"},[e.renderSlot(n.$slots,"pane",{pane:u,index:c},()=>[e.createTextVNode(e.toDisplayString(u.content),1)])],10,ht))),128))]),_:3},8,["id"]))}}),fe=e.defineComponent({__name:"VibeListGroup",props:{flush:{type:Boolean,default:!1},horizontal:{type:[Boolean,String],default:!1},numbered:{type:Boolean,default:!1},tag:{type:String,default:"ul"},items:{type:Array,required:!0}},emits:["item-click","component-error"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>{const u=["list-group"];return a.flush&&u.push("list-group-flush"),a.numbered&&u.push("list-group-numbered"),a.horizontal===!0?u.push("list-group-horizontal"):typeof a.horizontal=="string"&&u.push(`list-group-horizontal-${a.horizontal}`),u.join(" ")}),i=u=>u.href?"a":u.to?"router-link":"li",n=u=>{const c=["list-group-item"];return u.active&&c.push("active"),u.disabled&&c.push("disabled"),u.variant&&c.push(`list-group-item-${u.variant}`),c.join(" ")},s=(u,c,b)=>{u.disabled||o("item-click",{item:u,index:c,event:b})};return(u,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(b,m)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i(b)),{key:m,class:e.normalizeClass(n(b)),href:b.href,to:b.to,"aria-disabled":b.disabled,"aria-current":b.active,onClick:g=>s(b,m,g)},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"item",{item:b,index:m},()=>[e.createTextVNode(e.toDisplayString(b.text),1)])]),_:2},1032,["class","href","to","aria-disabled","aria-current","onClick"]))),128))]),_:3},8,["class"]))}}),yt=["aria-valuenow","aria-valuemax"],pe=e.defineComponent({__name:"VibeProgress",props:{height:{type:String,default:void 0},bars:{type:Array,required:!0}},emits:["component-error"],setup(t,{emit:r}){const a=t,o=e.computed(()=>{if(a.height)return{height:a.height}}),l=s=>{const u=["progress-bar"];return s.variant&&u.push(`bg-${s.variant}`),(s.striped||s.animated)&&u.push("progress-bar-striped"),s.animated&&u.push("progress-bar-animated"),u.join(" ")},i=s=>{const u=s.max||100;return{width:`${Math.min(100,Math.max(0,s.value/u*100))}%`}},n=s=>s.label?s.label:s.showValue?`${s.value}%`:"";return(s,u)=>(e.openBlock(),e.createElementBlock("div",{class:"progress",style:e.normalizeStyle(o.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bars,(c,b)=>(e.openBlock(),e.createElementBlock("div",{key:b,class:e.normalizeClass(l(c)),style:e.normalizeStyle(i(c)),role:"progressbar","aria-valuenow":c.value,"aria-valuemin":0,"aria-valuemax":c.max||100},[e.renderSlot(s.$slots,"label",{bar:c,index:b},()=>[e.createTextVNode(e.toDisplayString(n(c)),1)])],14,yt))),128))],4))}});let be=0;function N(t="vibe"){const r=e.getCurrentInstance(),a=r?r.uid:"no-instance";return be++,`${t}-${a}-${be}`}const gt=["id"],kt={class:"accordion-header"},Bt=["data-bs-target","aria-expanded","aria-controls","onClick"],St=["id","data-bs-parent"],Ct={class:"accordion-body"},he=e.defineComponent({__name:"VibeAccordion",props:{id:{type:String,default:()=>N("accordion")},flush:{type:Boolean,default:!1},items:{type:Array,required:!0},alwaysOpen:{type:Boolean,default:!1}},emits:["item-click","show","shown","hide","hidden","component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=new Map,s=h=>l("show",h),u=h=>l("shown",h),c=h=>l("hide",h),b=h=>l("hidden",h),m=async()=>{if(i.value)try{const d=(await import("bootstrap")).Collapse;i.value.querySelectorAll(".accordion-collapse").forEach(p=>{const y=p.id;if(!n.has(y)){const B=new d(p,{toggle:!1,parent:o.alwaysOpen?void 0:`#${o.id}`});n.set(y,B),p.addEventListener("show.bs.collapse",()=>s(y)),p.addEventListener("shown.bs.collapse",()=>u(y)),p.addEventListener("hide.bs.collapse",()=>c(y)),p.addEventListener("hidden.bs.collapse",()=>b(y)),o.items.find(E=>E.id===y)?.show&&B.show()}})}catch(h){l("component-error",{message:"Bootstrap JS not loaded. Accordion will use data attributes only.",componentName:"VibeAccordion",originalError:h})}};e.onMounted(m),e.onBeforeUnmount(()=>{n.forEach((h,d)=>{const f=document.getElementById(d);f&&(f.removeEventListener("show.bs.collapse",()=>s(d)),f.removeEventListener("shown.bs.collapse",()=>u(d)),f.removeEventListener("hide.bs.collapse",()=>c(d)),f.removeEventListener("hidden.bs.collapse",()=>b(d))),h.dispose()}),n.clear()}),e.watch(()=>o.items,async(h,d)=>{h.length!==d?.length&&(await e.nextTick(),await m()),h.forEach(f=>{const p=n.get(f.id);p&&(f.show?p.show():o.alwaysOpen||p.hide())})},{deep:!0});const g=(h,d)=>{l("item-click",{item:h,index:d})};return r({bsInstances:n,refresh:m}),(h,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"accordionRef",ref:i,id:t.id,class:e.normalizeClass(["accordion",{"accordion-flush":t.flush}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,p)=>(e.openBlock(),e.createElementBlock("div",{key:f.id,class:"accordion-item"},[e.createElementVNode("h2",kt,[e.createElementVNode("button",{class:e.normalizeClass(["accordion-button",{collapsed:!f.show}]),type:"button","data-bs-toggle":"collapse","data-bs-target":`#${f.id}`,"aria-expanded":f.show,"aria-controls":f.id,onClick:y=>g(f,p)},[e.renderSlot(h.$slots,"title",{item:f,index:p},()=>[e.createTextVNode(e.toDisplayString(f.title),1)])],10,Bt)]),e.createElementVNode("div",{id:f.id,class:e.normalizeClass(["accordion-collapse","collapse",{show:f.show}]),"data-bs-parent":t.alwaysOpen?void 0:`#${t.id}`},[e.createElementVNode("div",Ct,[e.renderSlot(h.$slots,"content",{item:f,index:p},()=>[e.createTextVNode(e.toDisplayString(f.content),1)])])],10,St)]))),128))],10,gt))}}),ye=e.defineComponent({__name:"VibeCollapse",props:{id:{type:String,default:()=>N("collapse")},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:r}){const a=t,o=r,l=e.inject("vibeNavbarCollapse",null),i=e.ref(null),n=e.ref(null),s=e.ref(!1),u=()=>{s.value=!0,o("show")},c=()=>{o("shown"),o("update:modelValue",!0)},b=()=>{o("hide")},m=()=>{s.value=!1,o("hidden"),o("update:modelValue",!1)};e.onMounted(async()=>{if(i.value)try{const f=(await import("bootstrap")).Collapse;n.value=new f(i.value,{toggle:!1}),i.value.addEventListener("show.bs.collapse",u),i.value.addEventListener("shown.bs.collapse",c),i.value.addEventListener("hide.bs.collapse",b),i.value.addEventListener("hidden.bs.collapse",m),(l&&a.id in l.collapseStates?l.collapseStates[a.id]:a.modelValue)&&n.value.show()}catch(d){o("component-error",{message:"Bootstrap JS not loaded. Collapse will use CSS classes only.",componentName:"VibeCollapse",originalError:d})}}),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.collapse",u),i.value.removeEventListener("shown.bs.collapse",c),i.value.removeEventListener("hide.bs.collapse",b),i.value.removeEventListener("hidden.bs.collapse",m)),n.value&&(n.value.dispose(),n.value=null)});const g=e.computed(()=>l&&a.id in l.collapseStates?l.collapseStates[a.id]:a.modelValue);e.watch(g,d=>{n.value&&(d&&!s.value?n.value.show():!d&&s.value&&n.value.hide())});const h=e.computed(()=>{const d=["collapse"];return a.isNav&&d.push("navbar-collapse"),a.horizontal&&d.push("collapse-horizontal"),!n.value&&g.value&&d.push("show"),d.join(" ")});return(d,f)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{ref_key:"collapseRef",ref:i,id:t.id,class:e.normalizeClass(h.value)},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3},8,["id","class"]))}}),Vt=["id","data-bs-auto-close"],vt=["id","data-bs-auto-close"],wt=["aria-labelledby"],$t={key:0},Et={key:1},Nt={class:"dropdown-header"},xt={key:2},ge=e.defineComponent({__name:"VibeDropdown",props:{id:{type:String,default:()=>N("dropdown")},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},autoClose:{type:[Boolean,String],default:!0}},emits:["item-click","show","shown","hide","hidden","component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=e.computed(()=>o.direction==="up"?"dropup":o.direction==="end"?"dropend":o.direction==="start"?"dropstart":"dropdown"),u=e.computed(()=>{const k=["btn",`btn-${o.variant}`];return o.size&&k.push(`btn-${o.size}`),k.join(" ")}),c=e.computed(()=>{const k=["dropdown-menu"];return o.menuEnd&&k.push("dropdown-menu-end"),k.join(" ")}),b=k=>{const E=["dropdown-item"];return k.active&&E.push("active"),k.disabled&&E.push("disabled"),E.join(" ")},m=()=>l("show"),g=()=>l("shown"),h=()=>l("hide"),d=()=>l("hidden");e.onMounted(async()=>{if(i.value)try{const E=(await import("bootstrap")).Dropdown,w=i.value.querySelector(".dropdown-toggle");w&&(n.value=new E(w,{autoClose:o.autoClose}),w.addEventListener("show.bs.dropdown",m),w.addEventListener("shown.bs.dropdown",g),w.addEventListener("hide.bs.dropdown",h),w.addEventListener("hidden.bs.dropdown",d))}catch(k){l("component-error",{message:"Bootstrap JS not loaded. Dropdown will use data attributes only.",componentName:"VibeDropdown",originalError:k})}}),e.onBeforeUnmount(()=>{const k=i.value?.querySelector(".dropdown-toggle");k&&(k.removeEventListener("show.bs.dropdown",m),k.removeEventListener("shown.bs.dropdown",g),k.removeEventListener("hide.bs.dropdown",h),k.removeEventListener("hidden.bs.dropdown",d)),n.value&&(n.value.dispose(),n.value=null)});const f=(k,E,w)=>{!k.disabled&&!k.divider&&!k.header&&l("item-click",{item:k,index:E,event:w})};return r({show:()=>n.value?.show(),hide:()=>n.value?.hide(),toggle:()=>n.value?.toggle()}),(k,E)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:i,class:e.normalizeClass(s.value)},[t.split?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:e.normalizeClass(u.value),type:"button"},[e.renderSlot(k.$slots,"button",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])],2),e.createElementVNode("button",{id:t.id,type:"button",class:e.normalizeClass([u.value,"dropdown-toggle","dropdown-toggle-split"]),"data-bs-toggle":"dropdown","aria-expanded":"false","data-bs-auto-close":t.autoClose},[...E[0]||(E[0]=[e.createElementVNode("span",{class:"visually-hidden"},"Toggle Dropdown",-1)])],10,vt)],64)):(e.openBlock(),e.createElementBlock("button",{key:0,id:t.id,class:e.normalizeClass([u.value,"dropdown-toggle"]),type:"button","data-bs-toggle":"dropdown","aria-expanded":"false","data-bs-auto-close":t.autoClose},[e.renderSlot(k.$slots,"button",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])],10,Vt)),e.createElementVNode("ul",{class:e.normalizeClass(c.value),"aria-labelledby":t.id},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(w,z)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:z},[w.divider?(e.openBlock(),e.createElementBlock("li",$t,[...E[1]||(E[1]=[e.createElementVNode("hr",{class:"dropdown-divider"},null,-1)])])):w.header?(e.openBlock(),e.createElementBlock("li",Et,[e.createElementVNode("h6",Nt,[e.renderSlot(k.$slots,"header",{item:w,index:z},()=>[e.createTextVNode(e.toDisplayString(w.text),1)])])])):(e.openBlock(),e.createElementBlock("li",xt,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w.href?"a":w.to?"router-link":"button"),{class:e.normalizeClass(b(w)),href:w.href,to:w.to,type:!w.href&&!w.to?"button":void 0,disabled:w.disabled,onClick:F=>f(w,z,F)},{default:e.withCtx(()=>[e.renderSlot(k.$slots,"item",{item:w,index:z},()=>[e.createTextVNode(e.toDisplayString(w.text),1)])]),_:2},1032,["class","href","to","type","disabled","onClick"]))]))],64))),128))],10,wt)],2))}}),M=[];function ke(t){if(M.length>0){t.preventDefault();const r=M.pop();r&&r()}}function A(t){e.onMounted(()=>{M.push(t),M.length===1&&typeof document<"u"&&document.addEventListener("backbutton",ke)}),e.onUnmounted(()=>{const r=M.indexOf(t);r!==-1&&M.splice(r,1),M.length===0&&typeof document<"u"&&document.removeEventListener("backbutton",ke)})}const Tt=["id","aria-labelledby","aria-hidden","data-bs-backdrop","data-bs-keyboard"],Lt={class:"modal-content"},zt={key:0,class:"modal-header"},Dt=["id"],Mt={class:"modal-body"},Ft={key:1,class:"modal-footer"},Be=I(e.defineComponent({__name:"VibeModal",props:{id:{type:String,default:()=>N("modal")},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},teleport:{type:[String,Boolean],default:"body"}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=e.ref(!1),u=e.computed(()=>{const y=["modal-dialog"];return o.size&&y.push(`modal-${o.size}`),o.centered&&y.push("modal-dialog-centered"),o.scrollable&&y.push("modal-dialog-scrollable"),o.fullscreen===!0?y.push("modal-fullscreen"):typeof o.fullscreen=="string"&&y.push(`modal-fullscreen-${o.fullscreen}-down`),y.join(" ")}),c=()=>{s.value=!0,l("show")},b=()=>{l("shown"),l("update:modelValue",!0)},m=()=>{l("hide")},g=()=>{s.value=!1,l("hidden"),l("update:modelValue",!1)},h=async()=>{if(i.value){n.value&&n.value.dispose();try{const B=(await import("bootstrap")).Modal;n.value=new B(i.value,{backdrop:o.staticBackdrop?"static":!0,keyboard:!o.staticBackdrop,focus:!0}),i.value.addEventListener("show.bs.modal",c),i.value.addEventListener("shown.bs.modal",b),i.value.addEventListener("hide.bs.modal",m),i.value.addEventListener("hidden.bs.modal",g),o.modelValue&&n.value.show()}catch(y){l("component-error",{message:"Bootstrap JS not loaded. Modal will use data attributes only.",componentName:"VibeModal",originalError:y})}}};e.onMounted(h),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.modal",c),i.value.removeEventListener("shown.bs.modal",b),i.value.removeEventListener("hide.bs.modal",m),i.value.removeEventListener("hidden.bs.modal",g)),n.value&&(s.value&&n.value.hide(),n.value.dispose(),n.value=null)}),e.watch(()=>o.modelValue,y=>{n.value&&(y&&!s.value?n.value.show():!y&&s.value&&n.value.hide())}),e.watch(()=>o.staticBackdrop,h);const d=()=>n.value?.show(),f=()=>n.value?.hide(),p=()=>n.value?.handleUpdate();return A(()=>{s.value&&f()}),r({show:d,hide:f,handleUpdate:p,bsInstance:n}),(y,B)=>(e.openBlock(),e.createBlock(e.Teleport,{to:t.teleport===!0?"body":t.teleport||void 0,disabled:!t.teleport},[e.createElementVNode("div",{ref_key:"modalRef",ref:i,id:t.id,class:e.normalizeClass(["modal fade",{show:s.value}]),tabindex:"-1","aria-labelledby":`${t.id}-label`,"aria-hidden":!s.value,"data-bs-backdrop":t.staticBackdrop?"static":void 0,"data-bs-keyboard":!t.staticBackdrop},[e.createElementVNode("div",{class:e.normalizeClass(u.value)},[e.createElementVNode("div",Lt,[t.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"modal-title"},[e.renderSlot(y.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)],!0)],8,Dt),e.createElementVNode("button",{type:"button",class:"btn-close","aria-label":"Close",onClick:f})])),e.createElementVNode("div",Mt,[e.renderSlot(y.$slots,"default",{},void 0,!0)]),t.hideFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ft,[e.renderSlot(y.$slots,"footer",{},()=>[e.createElementVNode("button",{type:"button",class:"btn btn-secondary",onClick:f},"Close")],!0)]))])],2)],10,Tt)],8,["to","disabled"]))}}),[["__scopeId","data-v-c11ac690"]]),It=["id","aria-labelledby","data-bs-backdrop","data-bs-scroll"],Rt={class:"offcanvas-header"},Pt=["id"],qt={class:"offcanvas-body"},Se=I(e.defineComponent({__name:"VibeOffcanvas",props:{id:{type:String,default:()=>N("offcanvas")},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},teleport:{type:[String,Boolean],default:"body"}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=e.ref(!1),u=e.computed(()=>`offcanvas offcanvas-${o.placement}`),c=()=>{s.value=!0,l("show")},b=()=>{l("shown"),l("update:modelValue",!0)},m=()=>{l("hide")},g=()=>{s.value=!1,l("hidden"),l("update:modelValue",!1)},h=async()=>{if(i.value){n.value&&n.value.dispose();try{const y=(await import("bootstrap")).Offcanvas;n.value=new y(i.value,{backdrop:o.backdrop===!1?!1:o.backdrop==="static"?"static":!0,scroll:o.scroll,keyboard:o.backdrop!=="static"}),i.value.addEventListener("show.bs.offcanvas",c),i.value.addEventListener("shown.bs.offcanvas",b),i.value.addEventListener("hide.bs.offcanvas",m),i.value.addEventListener("hidden.bs.offcanvas",g),o.modelValue&&n.value.show()}catch(p){l("component-error",{message:"Bootstrap JS not loaded. Offcanvas will use data attributes only.",componentName:"VibeOffcanvas",originalError:p})}}};e.onMounted(h),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.offcanvas",c),i.value.removeEventListener("shown.bs.offcanvas",b),i.value.removeEventListener("hide.bs.offcanvas",m),i.value.removeEventListener("hidden.bs.offcanvas",g)),n.value&&(s.value&&n.value.hide(),n.value.dispose(),n.value=null)}),e.watch(()=>o.modelValue,p=>{n.value&&(p&&!s.value?n.value.show():!p&&s.value&&n.value.hide())}),e.watch([()=>o.placement,()=>o.backdrop,()=>o.scroll],h);const d=()=>n.value?.show(),f=()=>n.value?.hide();return A(()=>{s.value&&f()}),r({show:d,hide:f,bsInstance:n}),(p,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:t.teleport===!0?"body":t.teleport||void 0,disabled:!t.teleport},[e.createElementVNode("div",{ref_key:"offcanvasRef",ref:i,id:t.id,class:e.normalizeClass(u.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",Rt,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"offcanvas-title"},[e.renderSlot(p.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)],!0)],8,Pt),e.createElementVNode("button",{type:"button",class:"btn-close","aria-label":"Close",onClick:f})]),e.createElementVNode("div",qt,[e.renderSlot(p.$slots,"default",{},void 0,!0)])],10,It)],8,["to","disabled"]))}}),[["__scopeId","data-v-f03bd194"]]),jt=["id","data-bs-autohide","data-bs-delay"],At={key:0,class:"toast-header"},Ot={class:"me-auto"},Ht={class:"toast-body"},Ce=e.defineComponent({__name:"VibeToast",props:{id:{type:String,default:()=>N("toast")},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},teleport:{type:[String,Boolean],default:"body"},placement:{type:String,default:"top-end"}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=e.ref(!1),u=e.computed(()=>{const y=["toast"];return o.variant&&y.push(`text-bg-${o.variant}`),y.join(" ")}),c=e.computed(()=>{const y=["toast-container","position-fixed","p-3"],B=o.placement;return B.includes("top")&&y.push("top-0"),B.includes("bottom")&&y.push("bottom-0"),B.includes("middle")&&y.push("top-50","start-50","translate-middle"),B.includes("start")&&y.push("start-0"),B.includes("end")&&y.push("end-0"),B.includes("center")&&!B.includes("middle")&&y.push("start-50","translate-middle-x"),y.join(" ")}),b=()=>{s.value=!0,l("show")},m=()=>{l("shown"),l("update:modelValue",!0)},g=()=>{l("hide")},h=()=>{s.value=!1,l("hidden"),l("update:modelValue",!1)},d=async()=>{if(i.value){n.value&&n.value.dispose();try{const B=(await import("bootstrap")).Toast;n.value=new B(i.value,{autohide:o.autohide,delay:o.delay}),i.value.addEventListener("show.bs.toast",b),i.value.addEventListener("shown.bs.toast",m),i.value.addEventListener("hide.bs.toast",g),i.value.addEventListener("hidden.bs.toast",h),o.modelValue&&n.value.show()}catch(y){l("component-error",{message:"Bootstrap JS not loaded. Toast will use data attributes only.",componentName:"VibeToast",originalError:y})}}};e.onMounted(d),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.toast",b),i.value.removeEventListener("shown.bs.toast",m),i.value.removeEventListener("hide.bs.toast",g),i.value.removeEventListener("hidden.bs.toast",h)),n.value&&(n.value.dispose(),n.value=null)}),e.watch(()=>o.modelValue,y=>{n.value&&(y&&!s.value?n.value.show():!y&&s.value&&n.value.hide())}),e.watch([()=>o.autohide,()=>o.delay],d);const f=()=>n.value?.show(),p=()=>n.value?.hide();return r({show:f,hide:p,bsInstance:n}),(y,B)=>(e.openBlock(),e.createBlock(e.Teleport,{to:t.teleport===!0?"body":t.teleport||void 0,disabled:!t.teleport},[e.createElementVNode("div",{class:e.normalizeClass(c.value),style:{"z-index":"1090"}},[e.createElementVNode("div",{ref_key:"toastRef",ref:i,id:t.id,class:e.normalizeClass(u.value),role:"alert","aria-live":"assertive","aria-atomic":"true","data-bs-autohide":t.autohide,"data-bs-delay":t.delay},[t.title||y.$slots.header?(e.openBlock(),e.createElementBlock("div",At,[e.renderSlot(y.$slots,"header",{},()=>[e.createElementVNode("strong",Ot,e.toDisplayString(t.title),1)]),e.createElementVNode("button",{type:"button",class:"btn-close","aria-label":"Close",onClick:p})])):e.createCommentVNode("",!0),e.createElementVNode("div",Ht,[e.renderSlot(y.$slots,"default")])],10,jt)],2)],8,["to","disabled"]))}}),Gt=["id","data-bs-ride","data-bs-interval","data-bs-keyboard","data-bs-pause","data-bs-wrap","data-bs-touch"],Xt={key:0,class:"carousel-indicators"},Ut=["data-bs-target","data-bs-slide-to","aria-current","aria-label"],Yt={class:"carousel-inner"},Jt=["data-bs-interval"],Kt=["src","alt"],Wt={key:0,class:"carousel-caption d-none d-md-block"},Qt={key:0},Zt={key:1},_t=["data-bs-target"],ea=["data-bs-target"],Ve=e.defineComponent({__name:"VibeCarousel",props:{id:{type:String,default:()=>N("carousel")},modelValue:{type:Number,default: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:["update:modelValue","slide","slid","component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=e.ref(o.modelValue),u=e.computed(()=>{const h=["carousel","slide"];return o.dark&&h.push("carousel-dark"),o.fade&&h.push("carousel-fade"),h.join(" ")}),c=h=>{l("slide",h)},b=h=>{s.value=h.to,l("update:modelValue",h.to),l("slid",h)},m=async()=>{if(i.value){n.value&&n.value.dispose();try{const d=(await import("bootstrap")).Carousel;n.value=new d(i.value,{interval:o.interval,keyboard:o.keyboard,pause:o.pause,ride:o.ride===!0?"carousel":o.ride,wrap:o.wrap,touch:o.touch}),i.value.addEventListener("slide.bs.carousel",c),i.value.addEventListener("slid.bs.carousel",b),o.modelValue!==0&&n.value.to(o.modelValue)}catch(h){l("component-error",{message:"Bootstrap JS not loaded. Carousel will use data attributes only.",componentName:"VibeCarousel",originalError:h})}}};e.onMounted(m),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("slide.bs.carousel",c),i.value.removeEventListener("slid.bs.carousel",b)),n.value&&(n.value.dispose(),n.value=null)}),e.watch(()=>o.modelValue,h=>{n.value&&h!==s.value&&n.value.to(h)}),e.watch(()=>o.items,async()=>{await e.nextTick(),await m()},{deep:!0});const g=(h,d)=>h.alt?h.alt:h.caption?h.caption:h.captionText?h.captionText:`Carousel slide ${d+1}`;return r({bsInstance:n,refresh:m}),(h,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"carouselRef",ref:i,id:t.id,class:e.normalizeClass(u.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",Xt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,p)=>(e.openBlock(),e.createElementBlock("button",{key:`indicator-${p}`,type:"button","data-bs-target":`#${t.id}`,"data-bs-slide-to":p,class:e.normalizeClass({active:p===s.value}),"aria-current":p===s.value,"aria-label":`Slide ${p+1}`},null,10,Ut))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",Yt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,p)=>(e.openBlock(),e.createElementBlock("div",{key:`slide-${p}`,class:e.normalizeClass(["carousel-item",{active:p===s.value}]),"data-bs-interval":f.interval},[e.createElementVNode("img",{src:f.src,alt:g(f,p),class:"d-block w-100"},null,8,Kt),f.caption||f.captionText||h.$slots.caption?(e.openBlock(),e.createElementBlock("div",Wt,[e.renderSlot(h.$slots,"caption",{item:f,index:p},()=>[f.caption?(e.openBlock(),e.createElementBlock("h5",Qt,e.toDisplayString(f.caption),1)):e.createCommentVNode("",!0),f.captionText?(e.openBlock(),e.createElementBlock("p",Zt,e.toDisplayString(f.captionText),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)],10,Jt))),128))]),t.controls?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:"carousel-control-prev",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"prev"},[...d[0]||(d[0]=[e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Previous",-1)])],8,_t),e.createElementVNode("button",{class:"carousel-control-next",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"next"},[...d[1]||(d[1]=[e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Next",-1)])],8,ea)],64)):e.createCommentVNode("",!0)],10,Gt))}}),ta=["data-bs-placement","data-bs-title","data-bs-trigger","data-bs-html"],ve=e.defineComponent({__name:"VibeTooltip",props:{content:{type:String,default:void 0},text:{type:String,default:void 0},placement:{type:String,default:"top"},trigger:{type:String,default:"hover focus"},html:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=()=>typeof window<"u"&&("ontouchstart"in window||navigator.maxTouchPoints>0),u=e.computed(()=>s()&&o.trigger==="hover focus"?"click":o.trigger),c=async()=>{if(i.value){n.value&&n.value.dispose();try{const m=(await import("bootstrap")).Tooltip;n.value=new m(i.value,{title:o.text||o.content||"",placement:o.placement,trigger:u.value,html:o.html})}catch(b){l("component-error",{message:"Bootstrap JS not loaded. Tooltip will use data attributes only.",componentName:"VibeTooltip",originalError:b})}}};return e.onMounted(c),e.onBeforeUnmount(()=>{n.value&&(n.value.dispose(),n.value=null)}),e.watch([()=>o.content,()=>o.text],()=>{n.value&&n.value.setContent({".tooltip-inner":o.text||o.content||""})}),e.watch([()=>o.placement,()=>o.trigger,()=>o.html],c),r({bsInstance:n}),(b,m)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"tooltipRef",ref:i,"data-bs-toggle":"tooltip","data-bs-placement":t.placement,"data-bs-title":t.text||t.content,"data-bs-trigger":t.trigger,"data-bs-html":t.html},[e.renderSlot(b.$slots,"default")],8,ta))}}),aa=["data-bs-placement","data-bs-title","data-bs-content","data-bs-trigger","data-bs-html"],we=e.defineComponent({__name:"VibePopover",props:{title:{type:String,default:void 0},content:{type:String,default:void 0},text:{type:String,default:void 0},placement:{type:String,default:"top"},trigger:{type:String,default:"click"},html:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=()=>typeof window<"u"&&("ontouchstart"in window||navigator.maxTouchPoints>0),u=e.computed(()=>s()&&o.trigger==="hover focus"?"click":o.trigger),c=async()=>{if(i.value){n.value&&n.value.dispose();try{const m=(await import("bootstrap")).Popover;n.value=new m(i.value,{title:o.title,content:o.text||o.content||"",placement:o.placement,trigger:u.value,html:o.html})}catch(b){l("component-error",{message:"Bootstrap JS not loaded. Popover will use data attributes only.",componentName:"VibePopover",originalError:b})}}};return e.onMounted(c),e.onBeforeUnmount(()=>{n.value&&(n.value.dispose(),n.value=null)}),e.watch([()=>o.content,()=>o.text,()=>o.title],()=>{n.value&&n.value.setContent({".popover-header":o.title||"",".popover-body":o.text||o.content||""})}),e.watch([()=>o.placement,()=>o.trigger,()=>o.html],c),r({bsInstance:n}),(b,m)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"popoverRef",ref:i,"data-bs-toggle":"popover","data-bs-placement":t.placement,"data-bs-title":t.title,"data-bs-content":t.text||t.content,"data-bs-trigger":t.trigger,"data-bs-html":t.html},[e.renderSlot(b.$slots,"default")],8,aa))}}),$e=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,{expose:r,emit:a}){const o=t,l=a,i=e.ref(null),n=e.ref(null),s=c=>{l("activate",c)};return e.onMounted(async()=>{if(i.value)try{const b=(await import("bootstrap")).ScrollSpy;n.value=new b(i.value,{target:o.target,offset:o.offset,method:o.method,smoothScroll:o.smoothScroll}),i.value.addEventListener("activate.bs.scrollspy",s)}catch(c){l("component-error",{message:"Bootstrap JS not loaded. ScrollSpy will use data attributes only.",componentName:"VibeScrollspy",originalError:c})}}),e.onBeforeUnmount(()=>{i.value&&i.value.removeEventListener("activate.bs.scrollspy",s),n.value&&(n.value.dispose(),n.value=null)}),r({refresh:()=>{n.value&&n.value.refresh()}}),(c,b)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{ref_key:"scrollspyRef",ref:i,"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",style:{position:"relative",height:"100%",overflow:"auto"}},{default:e.withCtx(()=>[e.renderSlot(c.$slots,"default")]),_:3},8,["data-bs-target","data-bs-offset","data-bs-method","data-bs-smooth-scroll"]))}}),Ee=e.defineComponent({__name:"VibeIcon",props:{icon:{type:String,required:!0},size:{type:String,default:void 0},fontSize:{type:String,default:void 0},color:{type:String,default:void 0},customClass:{type:String,default:void 0},flipH:{type:Boolean,default:!1},flipV:{type:Boolean,default:!1},rotate:{type:Number,default:void 0}},emits:["click","component-error"],setup(t,{emit:r}){const a=t,o=r,l=e.computed(()=>{const s=["bi",`bi-${a.icon}`];return a.size&&(["1x","2x","3x","4x","5x"].includes(a.size)||s.push(`bi-${a.size}`)),a.customClass&&s.push(a.customClass),s.join(" ")}),i=e.computed(()=>{const s={};if(a.fontSize)s.fontSize=a.fontSize;else if(a.size){const c={"1x":"1rem","2x":"2rem","3x":"3rem","4x":"4rem","5x":"5rem"};c[a.size]&&(s.fontSize=c[a.size])}a.color&&(s.color=a.color);const u=[];return a.flipH&&u.push("scaleX(-1)"),a.flipV&&u.push("scaleY(-1)"),a.rotate&&u.push(`rotate(${a.rotate}deg)`),u.length>0&&(s.transform=u.join(" "),s.display="inline-block"),Object.keys(s).length>0?s:void 0}),n=s=>{o("click",s)};return(s,u)=>(e.openBlock(),e.createElementBlock("i",{class:e.normalizeClass(l.value),style:e.normalizeStyle(i.value),"aria-hidden":!0,onClick:n},null,6))}}),oa={class:"vibe-datatable"},la={class:"row mb-3"},na={key:0,class:"col-md-6 mb-2 mb-md-0"},ia=["placeholder"],ra={key:1,class:"col-md-6"},sa={class:"d-flex justify-content-md-end align-items-center"},da=["value"],ca=["onClick"],ua={key:0,class:"ms-1"},ma=["onClick"],fa=["data-label"],pa={key:0},ba=["colspan"],ha={class:"row"},ya={key:0,class:"col-md-6 mb-2 mb-md-0"},ga={class:"datatable-info"},ka={key:1,class:"col-md-6"},Ba={class:"pagination justify-content-md-end mb-0"},Sa={key:0,class:"page-item"},Ca={key:1,class:"page-item disabled"},Va=["onClick"],va={key:2,class:"page-item disabled"},wa={key:3,class:"page-item"},Ne=I(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},stack:{type:Boolean,default:!1},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:r}){const a=t,o=e.useModel(t,"currentPage"),l=e.useModel(t,"perPage"),i=e.useModel(t,"sortBy"),n=e.useModel(t,"sortDesc"),s=r,u=e.ref(""),c=e.ref(null),b=e.ref(""),m=(C,V)=>a.rowKey&&C[a.rowKey]!==void 0?String(C[a.rowKey]):V;e.watch(u,C=>{c.value!==null&&clearTimeout(c.value),c.value=setTimeout(()=>{b.value=C,o.value=1,c.value=null},a.searchDebounce)}),e.onBeforeUnmount(()=>{c.value!==null&&(clearTimeout(c.value),c.value=null)});const g=e.computed(()=>{if(!a.searchable||!b.value)return a.items||[];const C=b.value.toLowerCase();return(a.items||[]).filter(V=>(a.columns||[]).some(v=>{if(v.searchable===!1)return!1;const x=V[v.key];return x==null?!1:String(x).toLowerCase().includes(C)}))}),h=(C,V,v)=>{if(C==null)return 1;if(V==null)return-1;if(typeof C=="string"&&typeof V=="string"){const x=C.toLowerCase(),T=V.toLowerCase();return x<T?v?1:-1:x>T?v?-1:1:0}if(typeof C=="number"&&typeof V=="number")return C<V?v?1:-1:C>V?v?-1:1:0;if(typeof C=="boolean"&&typeof V=="boolean")return C===V?0:(C?1:-1)*(v?-1:1);if(C instanceof Date&&V instanceof Date){const x=C.getTime(),T=V.getTime();return x<T?v?1:-1:x>T?v?-1:1:0}return 0},d=e.computed(()=>{if(!a.sortable||!i.value)return g.value;const C=[...g.value],V=i.value;return C.sort((v,x)=>h(v[V],x[V],n.value)),C}),f=e.computed(()=>{if(!a.paginated)return d.value;const C=(o.value-1)*l.value,V=C+l.value;return d.value.slice(C,V)}),p=e.computed(()=>a.items.length),y=e.computed(()=>g.value.length),B=e.computed(()=>Math.ceil(y.value/l.value)),k=e.computed(()=>y.value===0?0:(o.value-1)*l.value+1),E=e.computed(()=>{const C=o.value*l.value;return Math.min(C,y.value)}),w=e.computed(()=>(y.value!==p.value?a.filteredInfoText:a.infoText).replace("{start}",String(k.value)).replace("{end}",String(E.value)).replace("{total}",String(y.value)).replace("{totalRows}",String(p.value))),z=e.computed(()=>{const C=["table"];return a.striped&&C.push("table-striped"),a.bordered&&C.push("table-bordered"),a.borderless&&C.push("table-borderless"),a.hover&&C.push("table-hover"),a.small&&C.push("table-sm"),a.stack&&C.push("vibe-table-stack"),a.variant&&C.push(`table-${a.variant}`),C.join(" ")}),F=C=>{!a.sortable||C.sortable===!1||(i.value===C.key?n.value=!n.value:(i.value=C.key,n.value=!1))},L=C=>{C<1||C>B.value||(o.value=C)},j=()=>{o.value=1},$=(C,V)=>{s("row-clicked",C,V)},D=(C,V)=>{const v=C[V.key];return V.formatter?V.formatter(v,C):v},U=C=>!a.sortable||C.sortable===!1?"":i.value!==C.key?"⇅":n.value?"↓":"↑",Y=C=>{const V={...C.thStyle};return a.sortable&&C.sortable!==!1&&(V.cursor="pointer"),V};return(C,V)=>(e.openBlock(),e.createElementBlock("div",oa,[e.createElementVNode("div",la,[t.searchable?(e.openBlock(),e.createElementBlock("div",na,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":V[0]||(V[0]=v=>u.value=v),type:"search",class:"form-control",placeholder:t.searchPlaceholder},null,8,ia),[[e.vModelText,u.value]])])):e.createCommentVNode("",!0),t.showPerPage&&t.paginated?(e.openBlock(),e.createElementBlock("div",ra,[e.createElementVNode("div",sa,[V[6]||(V[6]=e.createElementVNode("label",{class:"me-2 mb-0"},"Show",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":V[1]||(V[1]=v=>l.value=v),class:"form-select form-select-sm",style:{width:"auto"},onChange:j},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.perPageOptions,v=>(e.openBlock(),e.createElementBlock("option",{key:v,value:v},e.toDisplayString(v),9,da))),128))],544),[[e.vModelSelect,l.value,void 0,{number:!0}]]),V[7]||(V[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(z.value)},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,v=>(e.openBlock(),e.createElementBlock("th",{key:v.key,class:e.normalizeClass(v.headerClass),style:e.normalizeStyle(Y(v)),onClick:x=>F(v)},[e.createTextVNode(e.toDisplayString(v.label)+" ",1),t.sortable&&v.sortable!==!1?(e.openBlock(),e.createElementBlock("span",ua,e.toDisplayString(U(v)),1)):e.createCommentVNode("",!0)],14,ca))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(v,x)=>(e.openBlock(),e.createElementBlock("tr",{key:m(v,x),onClick:T=>$(v,x),style:{cursor:"pointer"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,T=>(e.openBlock(),e.createElementBlock("td",{key:T.key,class:e.normalizeClass(T.class),style:e.normalizeStyle(T.tdStyle),"data-label":T.label},[e.renderSlot(C.$slots,`cell(${T.key})`,{item:v,value:v[T.key],index:x},()=>[e.createTextVNode(e.toDisplayString(D(v,T)),1)],!0)],14,fa))),128))],8,ma))),128)),f.value.length===0&&t.showEmpty?(e.openBlock(),e.createElementBlock("tr",pa,[e.createElementVNode("td",{colspan:t.columns?.length||1,class:"text-center"},e.toDisplayString(t.emptyText),9,ba)])):e.createCommentVNode("",!0)])],2)],2),e.createElementVNode("div",ha,[t.showInfo?(e.openBlock(),e.createElementBlock("div",ya,[e.createElementVNode("div",ga,e.toDisplayString(w.value),1)])):e.createCommentVNode("",!0),t.paginated&&B.value>1?(e.openBlock(),e.createElementBlock("div",ka,[e.createElementVNode("nav",null,[e.createElementVNode("ul",Ba,[e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:o.value===1}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:V[2]||(V[2]=e.withModifiers(v=>L(o.value-1),["prevent"]))}," Previous ")],2),o.value>3?(e.openBlock(),e.createElementBlock("li",Sa,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:V[3]||(V[3]=e.withModifiers(v=>L(1),["prevent"]))},"1")])):e.createCommentVNode("",!0),o.value>4?(e.openBlock(),e.createElementBlock("li",Ca,[...V[8]||(V[8]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.from({length:B.value},(v,x)=>x+1).filter(v=>v>=o.value-2&&v<=o.value+2),v=>(e.openBlock(),e.createElementBlock("li",{key:v,class:e.normalizeClass(["page-item",{active:v===o.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:e.withModifiers(x=>L(v),["prevent"])},e.toDisplayString(v),9,Va)],2))),128)),o.value<B.value-3?(e.openBlock(),e.createElementBlock("li",va,[...V[9]||(V[9]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),o.value<B.value-2?(e.openBlock(),e.createElementBlock("li",wa,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:V[4]||(V[4]=e.withModifiers(v=>L(B.value),["prevent"]))},e.toDisplayString(B.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:o.value===B.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:V[5]||(V[5]=e.withModifiers(v=>L(o.value+1),["prevent"]))}," Next ")],2)])])])):e.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-c496dc70"]]),$a=["for"],Ea={key:0,class:"text-danger"},Na=["id","type","value","placeholder","disabled","readonly","required","aria-invalid","aria-describedby"],xa=["id"],Ta={key:0,class:"valid-feedback",style:{display:"block"}},La=["id"],za=["id","type","value","placeholder","disabled","readonly","required","aria-invalid"],xe=e.defineComponent({__name:"VibeFormInput",props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},id:{type:String,default:void 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},noWrapper:{type:Boolean,default:!1},focusRing:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("input")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),c=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"),a.focusRing&&d.push("focus-ring"),d.join(" ")}),b=d=>{const f=d.target,p=a.type==="number"?f.value===""?"":Number(f.value):f.value;o("update:modelValue",p),o("input",d),a.validateOn==="input"&&o("validate")},m=d=>{o("change",d),a.validateOn==="change"&&o("validate")},g=d=>{o("blur",d),a.validateOn==="blur"&&o("validate")},h=d=>{o("focus",d)};return(d,f)=>t.noWrapper?(e.openBlock(),e.createElementBlock("input",{key:1,id:i.value,type:t.type,class:e.normalizeClass(c.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly||t.plaintext,required:t.required,"aria-invalid":t.validationState==="invalid",onInput:b,onChange:m,onBlur:g,onFocus:h},null,42,za)):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass({"mb-3":n.value||u.value||s.value})},[n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ea,"*")):e.createCommentVNode("",!0)],8,$a)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:i.value,type:t.type,class:e.normalizeClass(c.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?`${i.value}-feedback`:void 0,onInput:b,onChange:m,onBlur:g,onFocus:h},null,42,Na),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,xa)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[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:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,La)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),Da=["for"],Ma={key:0,class:"text-danger"},Fa=["id","value","multiple","size","disabled","required","aria-invalid","aria-describedby"],Ia={key:0,value:"",disabled:"",selected:""},Ra=["value","disabled"],Pa=["id"],qa={key:0,class:"valid-feedback",style:{display:"block"}},ja=["id"],Te=e.defineComponent({__name:"VibeFormSelect",props:{modelValue:{type:[String,Number,Array],default:""},id:{type:String,default:void 0},label:{type:String,default:void 0},options:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!1},selectSize:{type:Number,default:void 0},htmlSize:{type:Number,default:void 0},placeholder:{type:String,default:void 0},disabled:{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:"change"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("select")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),c=e.computed(()=>{const d=["form-select"];return a.size&&d.push(`form-select-${a.size}`),a.validationState==="valid"&&d.push("is-valid"),a.validationState==="invalid"&&d.push("is-invalid"),d.join(" ")}),b=d=>{const f=d.target;let p;a.multiple?p=Array.from(f.selectedOptions).map(y=>y.value):p=f.value,o("update:modelValue",p)},m=d=>{o("change",d),a.validateOn==="change"&&o("validate")},g=d=>{o("blur",d),a.validateOn==="blur"&&o("validate")},h=d=>{o("focus",d)};return(d,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":n.value||u.value||s.value})},[n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ma,"*")):e.createCommentVNode("",!0)],8,Da)):e.createCommentVNode("",!0),e.createElementVNode("select",{id:i.value,class:e.normalizeClass(c.value),value:t.modelValue,multiple:t.multiple,size:t.htmlSize||t.selectSize,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${i.value}-feedback`:void 0,onInput:b,onChange:m,onBlur:g,onFocus:h},[t.placeholder?(e.openBlock(),e.createElementBlock("option",Ia,e.toDisplayString(t.placeholder),1)):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,p=>(e.openBlock(),e.createElementBlock("option",{key:String(p.value),value:p.value,disabled:p.disabled},e.toDisplayString(p.text),9,Ra))),128))])],42,Fa),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Pa)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[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:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select an option."),9,ja)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),Aa=["for"],Oa={key:0,class:"text-danger"},Ha=["id","value","placeholder","rows","maxlength","disabled","readonly","required","aria-invalid","aria-describedby"],Ga=["id"],Xa={key:0,class:"ms-auto"},Ua={key:0,class:"valid-feedback",style:{display:"block"}},Ya=["id"],Le=e.defineComponent({__name:"VibeFormTextarea",props:{modelValue:{type:String,default:""},id:{type:String,default:void 0},label:{type:String,default:void 0},placeholder:{type:String,default:void 0},rows:{type:[Number,String],default:3},maxlength:{type:[Number,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},noResize:{type:Boolean,default:!1},showCharCount:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("textarea")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>(!!a.helpText||a.showCharCount)&&!l?.hasHelp.value),c=e.computed(()=>{const p=["form-control"];return a.size&&p.push(`form-control-${a.size}`),a.validationState==="valid"&&p.push("is-valid"),a.validationState==="invalid"&&p.push("is-invalid"),p.join(" ")}),b=e.computed(()=>{if(a.noResize)return{resize:"none"}}),m=e.computed(()=>a.modelValue?.length||0),g=p=>{const y=p.target;o("update:modelValue",y.value),o("input",p),a.validateOn==="input"&&o("validate")},h=p=>{o("change",p),a.validateOn==="change"&&o("validate")},d=p=>{o("blur",p),a.validateOn==="blur"&&o("validate")},f=p=>{o("focus",p)};return(p,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":n.value||u.value||s.value})},[n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Oa,"*")):e.createCommentVNode("",!0)],8,Aa)):e.createCommentVNode("",!0),e.createElementVNode("textarea",{id:i.value,class:e.normalizeClass(c.value),style:e.normalizeStyle(b.value),value:t.modelValue,placeholder:t.placeholder,rows:t.rows,maxlength:t.maxlength,disabled:t.disabled,readonly:t.readonly,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText||t.showCharCount?`${i.value}-feedback`:void 0,onInput:g,onChange:h,onBlur:d,onFocus:f},null,46,Ha),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text d-flex justify-content-between"},[e.createElementVNode("span",null,e.toDisplayString(t.helpText),1),t.showCharCount?(e.openBlock(),e.createElementBlock("span",Xa,[t.maxlength?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(m.value)+" / "+e.toDisplayString(t.maxlength),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(m.value),1)],64))])):e.createCommentVNode("",!0)],8,Ga)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ua,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Ya)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),Ja=["for"],Ka={key:0,class:"text-danger"},Wa=["disabled"],Qa=["id","value","disabled","readonly","required","min","max","step","aria-invalid","aria-describedby"],Za=["disabled"],_a=["id"],eo={key:0,class:"valid-feedback",style:{display:"block"}},to=["id"],ze=I(e.defineComponent({__name:"VibeFormSpinbutton",props:{modelValue:{type:Number,default:0,validator:t=>!0},id:{type:String,default:void 0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:Number,default:1},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},wrap:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change","increment","decrement"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("spinbutton")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),c=e.computed(()=>{const k=["form-control"];return a.size&&k.push(`form-control-${a.size}`),a.validationState==="valid"&&k.push("is-valid"),a.validationState==="invalid"&&k.push("is-invalid"),k.join(" ")}),b=e.computed(()=>{const k=["input-group"];return a.size&&k.push(`input-group-${a.size}`),a.vertical&&k.push("input-group-vertical"),k.join(" ")}),m=e.computed(()=>a.disabled||a.readonly?!1:a.min===void 0||a.wrap?!0:a.modelValue>a.min),g=e.computed(()=>a.disabled||a.readonly?!1:a.max===void 0||a.wrap?!0:a.modelValue<a.max),h=k=>{const E=k.target;let w=E.value===""?0:Number(E.value);a.min!==void 0&&w<a.min&&(w=a.min),a.max!==void 0&&w>a.max&&(w=a.max),o("update:modelValue",w),o("input",k),a.validateOn==="input"&&o("validate")},d=k=>{o("change",k),a.validateOn==="change"&&o("validate")},f=k=>{o("blur",k),a.validateOn==="blur"&&o("validate")},p=k=>{o("focus",k)},y=()=>{if(!g.value)return;let k=a.modelValue+a.step;a.max!==void 0&&k>a.max&&(k=a.wrap?a.min??0:a.max),o("update:modelValue",k),o("increment",k),a.validateOn==="change"&&o("validate")},B=()=>{if(!m.value)return;let k=a.modelValue-a.step;a.min!==void 0&&k<a.min&&(k=a.wrap?a.max??0:a.min),o("update:modelValue",k),o("decrement",k),a.validateOn==="change"&&o("validate")};return(k,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":n.value||u.value||s.value})},[n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Ka,"*")):e.createCommentVNode("",!0)],8,Ja)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(b.value)},[e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!m.value,onClick:B,"aria-label":"Decrement"},[...E[0]||(E[0]=[e.createElementVNode("span",{"aria-hidden":"true"},"−",-1)])],8,Wa),e.createElementVNode("input",{id:i.value,type:"number",class:e.normalizeClass(c.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?`${i.value}-feedback`:void 0,onInput:h,onChange:d,onBlur:f,onFocus:p},null,42,Qa),e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!g.value,onClick:y,"aria-label":"Increment"},[...E[1]||(E[1]=[e.createElementVNode("span",{"aria-hidden":"true"},"+",-1)])],8,Za)],2),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,_a)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",eo,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,to)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-49746a62"]]),ao=["for"],oo={key:0,class:"text-danger"},lo=["id","type","value","disabled","readonly","required","min","max","aria-invalid","aria-describedby"],no=["id"],io={key:0,class:"valid-feedback",style:{display:"block"}},ro=["id"],De=e.defineComponent({__name:"VibeFormDatepicker",props:{modelValue:{type:String,default:"",validator:t=>!0},id:{type:String,default:void 0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},min:{type:String,default:void 0},max:{type:String,default:void 0},size:{type:String,default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},type:{type:String,default:"date"}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("datepicker")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),c=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(" ")}),b=d=>{const f=d.target;o("update:modelValue",f.value),o("input",d),a.validateOn==="input"&&o("validate")},m=d=>{o("change",d),a.validateOn==="change"&&o("validate")},g=d=>{o("blur",d),a.validateOn==="blur"&&o("validate")},h=d=>{o("focus",d)};return(d,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":n.value||u.value||s.value})},[n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",oo,"*")):e.createCommentVNode("",!0)],8,ao)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:i.value,type:t.type,class:e.normalizeClass(c.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?`${i.value}-feedback`:void 0,onInput:b,onChange:m,onBlur:g,onFocus:h},null,42,lo),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,no)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",io,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid date."),9,ro)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),so=["id","checked","disabled","required","indeterminate","aria-invalid","aria-describedby"],co=["for"],uo={key:0,class:"text-danger"},mo=["id"],fo={key:0,class:"valid-feedback",style:{display:"block"}},po=["id"],Me=e.defineComponent({__name:"VibeFormCheckbox",props:{modelValue:{type:[Boolean,Array],default:!1},value:{type:[String,Number,Boolean],default:!0},id:{type:String,default:void 0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},indeterminate:{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:"change"},helpText:{type:String,default:void 0},reverse:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("checkbox")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),c=e.computed(()=>{const f=["form-check"];return a.inline&&f.push("form-check-inline"),a.reverse&&f.push("form-check-reverse"),f.join(" ")}),b=e.computed(()=>{const f=["form-check-input"];return a.validationState==="valid"&&f.push("is-valid"),a.validationState==="invalid"&&f.push("is-invalid"),f.join(" ")}),m=e.computed(()=>Array.isArray(a.modelValue)?a.modelValue.includes(a.value):a.modelValue===a.value),g=f=>{const p=f.target;let y;if(Array.isArray(a.modelValue))if(y=[...a.modelValue],p.checked)y.push(a.value);else{const B=y.indexOf(a.value);B>-1&&y.splice(B,1)}else y=p.checked?a.value:a.value===!0?!1:null;o("update:modelValue",y),o("change",f),a.validateOn==="change"&&o("validate")},h=f=>{o("blur",f),a.validateOn==="blur"&&o("validate")},d=f=>{o("focus",f)};return(f,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([c.value,{"mb-3":n.value||u.value||s.value}])},[e.createElementVNode("input",{id:i.value,type:"checkbox",class:e.normalizeClass(b.value),checked:m.value,disabled:t.disabled,required:t.required,indeterminate:t.indeterminate,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${i.value}-feedback`:void 0,onChange:g,onBlur:h,onFocus:d},null,42,so),n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",uo,"*")):e.createCommentVNode("",!0)],8,co)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,mo)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",fo,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please check this box."),9,po)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),bo=["id","name","value","checked","disabled","required","aria-invalid","aria-describedby"],ho=["for"],yo={key:0,class:"text-danger"},go=["id"],ko={key:0,class:"valid-feedback",style:{display:"block"}},Bo=["id"],Fe=e.defineComponent({__name:"VibeFormRadio",props:{modelValue:{type:[String,Number,Boolean],default:""},value:{type:[String,Number,Boolean],required:!0},name:{type:String,required:!0},id:{type:String,default:void 0},label:{type:String,default:void 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:"change"},helpText:{type:String,default:void 0},reverse:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("radio")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),c=e.computed(()=>{const f=["form-check"];return a.inline&&f.push("form-check-inline"),a.reverse&&f.push("form-check-reverse"),f.join(" ")}),b=e.computed(()=>{const f=["form-check-input"];return a.validationState==="valid"&&f.push("is-valid"),a.validationState==="invalid"&&f.push("is-invalid"),f.join(" ")}),m=e.computed(()=>a.modelValue===a.value),g=f=>{o("update:modelValue",a.value),o("change",f),a.validateOn==="change"&&o("validate")},h=f=>{o("blur",f),a.validateOn==="blur"&&o("validate")},d=f=>{o("focus",f)};return(f,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([c.value,{"mb-3":n.value||u.value||s.value}])},[e.createElementVNode("input",{id:i.value,type:"radio",class:e.normalizeClass(b.value),name:t.name,value:t.value,checked:m.value,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${i.value}-feedback`:void 0,onChange:g,onBlur:h,onFocus:d},null,42,bo),n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",yo,"*")):e.createCommentVNode("",!0)],8,ho)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,go)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ko,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select an option."),9,Bo)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),So=["id","checked","disabled","required","aria-invalid","aria-describedby"],Co=["for"],Vo={key:0,class:"text-danger"},vo=["id"],wo={key:0,class:"valid-feedback",style:{display:"block"}},$o=["id"],Ie=e.defineComponent({__name:"VibeFormSwitch",props:{modelValue:{type:Boolean,default:!1},id:{type:String,default:void 0},label:{type:String,default:void 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:"change"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||N("switch")),n=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),c=e.computed(()=>{const d=["form-check","form-switch"];return a.inline&&d.push("form-check-inline"),d.join(" ")}),b=e.computed(()=>{const d=["form-check-input"];return a.validationState==="valid"&&d.push("is-valid"),a.validationState==="invalid"&&d.push("is-invalid"),d.join(" ")}),m=d=>{const f=d.target;o("update:modelValue",f.checked),o("change",d),a.validateOn==="change"&&o("validate")},g=d=>{o("blur",d),a.validateOn==="blur"&&o("validate")},h=d=>{o("focus",d)};return(d,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([c.value,{"mb-3":n.value||u.value||s.value}])},[e.createElementVNode("input",{id:i.value,type:"checkbox",role:"switch",class:e.normalizeClass(b.value),checked:t.modelValue,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${i.value}-feedback`:void 0,onChange:m,onBlur:g,onFocus:h},null,42,So),n.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Vo,"*")):e.createCommentVNode("",!0)],8,Co)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,vo)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",wo,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please toggle this switch."),9,$o)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),Eo=["for"],No={key:0,class:"text-danger"},xo=["id"],To={key:1,class:"valid-feedback",style:{display:"block"}},Lo=["id"],zo=["for"],Do={key:0,class:"text-danger"},Mo=["id"],Fo={key:2,class:"valid-feedback",style:{display:"block"}},Io=["id"],Re=e.defineComponent({__name:"VibeFormGroup",props:{label:{type:String,default:void 0},labelFor:{type:String,default:void 0},required:{type:Boolean,default:!1},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},helpText:{type:String,default:void 0},floating:{type:Boolean,default:!1},row:{type:Boolean,default:!1},labelCols:{type:[Number,String],default:void 0},labelAlign:{type:String,default:void 0}},setup(t){const r=t,a=e.computed(()=>r.labelFor||N("form-group")),o=e.ref(!1),l=()=>o.value?null:(o.value=!0,a.value);e.provide("vibeFormGroup",{id:a,consumeId:l,hasLabel:e.computed(()=>!!r.label),hasValidation:e.computed(()=>!!r.validationState),hasHelp:e.computed(()=>!!r.helpText)});const i=e.computed(()=>{const c=[];return r.floating?c.push("form-floating"):r.row?c.push("row","mb-3"):c.push("mb-3"),c.join(" ")}),n=e.computed(()=>{const c=[];return r.floating?c.push("form-label"):r.row?(c.push("col-form-label"),r.labelCols&&c.push(`col-sm-${r.labelCols}`),r.labelAlign&&c.push(`text-${r.labelAlign}`)):c.push("form-label"),c.join(" ")}),s=e.computed(()=>r.row&&r.labelCols?`col-sm-${12-Number(r.labelCols)}`:""),u=e.computed(()=>`${a.value}-feedback`);return(c,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[t.label&&!t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:a.value,class:e.normalizeClass(n.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",No,"*")):e.createCommentVNode("",!0)],10,Eo)):e.createCommentVNode("",!0),t.row&&t.labelCols?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(s.value)},[e.renderSlot(c.$slots,"default"),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:0,id:u.value,class:"form-text"},e.toDisplayString(t.helpText),9,xo)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",To,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:2,id:u.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Lo)):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.renderSlot(c.$slots,"default"),t.label&&t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:a.value,class:e.normalizeClass(n.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Do,"*")):e.createCommentVNode("",!0)],10,zo)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:u.value,class:"form-text"},e.toDisplayString(t.helpText),9,Mo)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Fo,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:u.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Io)):e.createCommentVNode("",!0)],64))],2))}}),R={sm:576,md:768,lg:992,xl:1200,xxl:1400};function Pe(){const t=e.ref(!1),r=e.ref(!1),a=e.ref(!1),o=e.ref(!1),l=e.ref(!1),i=()=>{typeof window>"u"||(t.value=window.matchMedia(`(min-width: ${R.sm}px)`).matches,r.value=window.matchMedia(`(min-width: ${R.md}px)`).matches,a.value=window.matchMedia(`(min-width: ${R.lg}px)`).matches,o.value=window.matchMedia(`(min-width: ${R.xl}px)`).matches,l.value=window.matchMedia(`(min-width: ${R.xxl}px)`).matches)};i();const n=e.computed(()=>!t.value),s=e.computed(()=>!r.value),u=e.computed(()=>r.value&&!a.value);return typeof window<"u"&&Object.entries(R).forEach(([c,b])=>{const m=window.matchMedia(`(min-width: ${b}px)`),g=()=>{i()};m.addEventListener("change",g),e.getCurrentInstance()&&e.onUnmounted(()=>m.removeEventListener("change",g))}),{isXs:n,isSm:t,isMd:r,isLg:a,isXl:o,isXxl:l,isMobile:s,isTablet:u}}const Ro=["for"],Po={key:0,class:"text-danger"},qo={key:1,class:"alert alert-warning",role:"alert"},jo=["id"],Ao=["id"],Oo={key:0,class:"valid-feedback",style:{display:"block"}},Ho=["id"],qe=I(e.defineComponent({__name:"VibeFormWysiwyg",props:{modelValue:{type:String,default:""},id:{type:String,default:()=>N("wysiwyg")},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},mobileToolbar:{type:[Array,String,Boolean],default:void 0},validationState:{type:String,default:null},validationMessage:{type:String,default:void 0},validationRules:{type:[Array,Function],default:void 0},validateOn:{type:String,default:"blur"},helpText:{type:String,default:void 0},height:{type:String,default:"200px"}},emits:["update:modelValue","validate","blur","focus","change","ready"],setup(t,{emit:r}){const a=t,o=r,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.id.value||N("wysiwyg")),{isMobile:n}=Pe(),s=e.computed(()=>!!a.label&&!l?.hasLabel.value),u=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),c=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),b=e.ref(null),m=e.ref(null),g=e.ref(!1),h=e.ref(null),d=e.ref(!1),f=e.ref(null),p=e.ref(null),y=e.ref(null),B=e.ref(null),k=e.computed(()=>{const $=["vibe-wysiwyg-container"];return a.validationState==="valid"&&$.push("is-valid"),a.validationState==="invalid"&&$.push("is-invalid"),a.disabled&&$.push("disabled"),$.join(" ")}),E=[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]}],["link","image"],["clean"]],w=[["bold","italic","underline"],[{list:"ordered"},{list:"bullet"}],["link","clean"]],z=()=>a.toolbar===!1?!1:n.value?a.mobileToolbar===!1?!1:a.mobileToolbar!==void 0?a.mobileToolbar:w:a.toolbar===!0||a.toolbar===void 0?E:a.toolbar,F=$=>{m.value&&(d.value=!0,m.value.setContents([],"silent"),$&&m.value.clipboard.dangerouslyPasteHTML($,"silent"),d.value=!1)},L=()=>!m.value||m.value.getText().trim().length===0?"":m.value.getSemanticHTML(),j=async()=>{try{const $=await import("quill"),D=$.default||$;if(await import("quill/dist/quill.snow.css"),b.value){const U={theme:a.theme,placeholder:a.placeholder,readOnly:a.readonly||a.disabled,modules:{toolbar:z()}};m.value=new D(b.value,U),a.modelValue&&F(a.modelValue),y.value=()=>{if(d.value)return;const Y=L();o("update:modelValue",Y),o("change"),a.validateOn==="change"&&o("validate")},m.value.on("text-change",y.value),f.value=()=>{o("blur"),a.validateOn==="blur"&&o("validate")},m.value.root.addEventListener("blur",f.value),p.value=()=>{o("focus")},m.value.root.addEventListener("focus",p.value),B.value=()=>{},m.value.on("selection-change",B.value),g.value=!0,o("ready",m.value)}}catch($){console.error("Failed to load Quill editor:",$),h.value="Failed to load WYSIWYG editor. Please install quill: npm install quill",g.value=!1}};return e.onMounted(j),e.onBeforeUnmount(()=>{if(m.value){if(m.value.enable(!1),y.value&&(m.value.off("text-change",y.value),y.value=null),B.value&&(m.value.off("selection-change",B.value),B.value=null),f.value&&(m.value.root.removeEventListener("blur",f.value),f.value=null),p.value&&(m.value.root.removeEventListener("focus",p.value),p.value=null),m.value.selection=null,b.value){const $=b.value.parentElement?.querySelector(".ql-toolbar");$&&$.remove()}m.value=null}}),e.watch(()=>a.modelValue,$=>{if(!m.value)return;L()!==($||"")&&F($||"")}),e.watch(()=>a.disabled,$=>{m.value&&m.value.enable(!$)}),e.watch(()=>a.readonly,$=>{m.value&&m.value.enable(!$)}),e.watch(n,async()=>{if(m.value){const $=L();y.value&&m.value.off("text-change",y.value),f.value&&m.value.root.removeEventListener("blur",f.value),p.value&&m.value.root.removeEventListener("focus",p.value);const D=b.value?.parentElement?.querySelector(".ql-toolbar");D&&D.remove(),b.value&&(b.value.innerHTML=""),await e.nextTick(),await j(),$&&F($)}}),($,D)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":s.value||c.value||u.value})},[s.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Po,"*")):e.createCommentVNode("",!0)],8,Ro)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("div",qo,e.toDisplayString(h.value),1)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(k.value),style:e.normalizeStyle({minHeight:t.height})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:b,id:i.value},null,8,jo)],6)),c.value?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Ao)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Oo,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide valid content."),9,Ho)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-822ccb91"]]),Go={key:0,class:"input-group-text"},Xo={key:0,class:"input-group-text"},je=e.defineComponent({__name:"VibeInputGroup",props:{size:{type:String,default:void 0},prepend:{type:String,default:void 0},append:{type:String,default:void 0},tag:{type:String,default:"div"}},setup(t){const r=t,a=e.computed(()=>{const o=["input-group"];return r.size&&o.push(`input-group-${r.size}`),o.join(" ")});return(o,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(a.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"prepend",{},()=>[t.prepend?(e.openBlock(),e.createElementBlock("span",Go,e.toDisplayString(t.prepend),1)):e.createCommentVNode("",!0)]),e.renderSlot(o.$slots,"default"),e.renderSlot(o.$slots,"append",{},()=>[t.append?(e.openBlock(),e.createElementBlock("span",Xo,e.toDisplayString(t.append),1)):e.createCommentVNode("",!0)])]),_:3},8,["class"]))}}),Ae=e.defineComponent({__name:"VibeLink",props:{tag:{type:String,default:"a"},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0},variant:{type:String,default:void 0},underline:{type:[Boolean,String],default:!0},underlineVariant:{type:String,default:void 0},underlineOpacity:{type:[String,Number],default:void 0},offset:{type:[String,Number],default:void 0},opacity:{type:[String,Number],default:void 0},focusRing:{type:Boolean,default:!1}},setup(t){const r=t,a=e.computed(()=>!!r.to),o=e.computed(()=>a.value?"router-link":r.tag),l=e.computed(()=>{const i=[];return r.variant&&i.push(`link-${r.variant}`),r.underline===!1||r.underline==="0"?i.push("link-underline-0"):typeof r.underline=="string"&&["1","2","3"].includes(r.underline)&&i.push("link-underline",`link-underline-opacity-${r.underline}`),r.underlineVariant&&i.push(`link-underline-${r.underlineVariant}`),r.underlineOpacity!==void 0&&i.push(`link-underline-opacity-${r.underlineOpacity}`),r.offset!==void 0&&i.push(`link-offset-${r.offset}`),r.opacity!==void 0&&i.push(`link-opacity-${r.opacity}`),r.focusRing&&i.push("focus-ring"),i.join(" ")});return(i,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(l.value),href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","href","to"]))}}),Uo={install(t){t.component("VibeAlert",J),t.component("VibeBadge",K),t.component("VibeButton",W),t.component("VibeButtonGroup",Q),t.component("VibeCloseButton",Z),t.component("VibeSpinner",_),t.component("VibePlaceholder",ee),t.component("VibeContainer",te),t.component("VibeRow",ae),t.component("VibeCol",oe),t.component("VibeCard",le),t.component("VibeBreadcrumb",ne),t.component("VibeNav",ie),t.component("VibeNavbar",re),t.component("VibeNavbarBrand",se),t.component("VibeNavbarToggle",de),t.component("VibeNavbarNav",ce),t.component("VibePagination",ue),t.component("VibeTabContent",me),t.component("VibeListGroup",fe),t.component("VibeProgress",pe),t.component("VibeAccordion",he),t.component("VibeCollapse",ye),t.component("VibeDropdown",ge),t.component("VibeModal",Be),t.component("VibeOffcanvas",Se),t.component("VibeToast",Ce),t.component("VibeCarousel",Ve),t.component("VibeTooltip",ve),t.component("VibePopover",we),t.component("VibeScrollspy",$e),t.component("VibeIcon",Ee),t.component("VibeDataTable",Ne),t.component("VibeFormInput",xe),t.component("VibeFormSelect",Te),t.component("VibeFormTextarea",Le),t.component("VibeFormSpinbutton",ze),t.component("VibeFormDatepicker",De),t.component("VibeFormCheckbox",Me),t.component("VibeFormRadio",Fe),t.component("VibeFormSwitch",Ie),t.component("VibeFormGroup",Re),t.component("VibeFormWysiwyg",qe),t.component("VibeInputGroup",je),t.component("VibeLink",Ae)}};function Yo(t=""){const r=e.ref(t),a=e.ref(null),o=e.ref(""),l=e.ref(!1),i=e.ref(!1),n=e.ref(!1),s=async h=>{if(!h)return a.value=null,o.value="",{valid:!0};n.value=!0;try{const d=Array.isArray(h)?h:[{validator:h}];for(const f of d){const p=await f.validator(r.value);if(p===!1||typeof p=="string")return a.value="invalid",o.value=typeof p=="string"?p:f.message||"Invalid value",n.value=!1,{valid:!1,message:o.value}}return a.value="valid",o.value="",n.value=!1,{valid:!0}}catch{return a.value="invalid",o.value="Validation error occurred",n.value=!1,{valid:!1,message:o.value}}},u=()=>{r.value=t,a.value=null,o.value="",l.value=!1,i.value=!1,n.value=!1},c=()=>{i.value=!0},b=()=>{l.value=!0},m=e.computed(()=>a.value==="valid"),g=e.computed(()=>a.value==="invalid");return{value:r,validationState:a,validationMessage:o,isDirty:l,isTouched:i,isValidating:n,isValid:m,isInvalid:g,validate:s,reset:u,markAsTouched:c,markAsDirty:b}}const Jo={required:(t="This field is required")=>({validator:r=>Array.isArray(r)?r.length>0||t:typeof r=="string"?r.trim().length>0||t:r!=null&&r!==""||t,message:t}),email:(t="Please enter a valid email address")=>({validator:r=>r?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)||t:!0,message:t}),minLength:(t,r)=>({validator:a=>a?a.length>=t||r||`Minimum length is ${t} characters`:!0,message:r}),maxLength:(t,r)=>({validator:a=>a?a.length<=t||r||`Maximum length is ${t} characters`:!0,message:r}),min:(t,r)=>({validator:a=>{if(a==null||a==="")return!0;const o=Number(a);return Number.isNaN(o)?r||"Value must be a number":o>=t||r||`Minimum value is ${t}`},message:r}),max:(t,r)=>({validator:a=>{if(a==null||a==="")return!0;const o=Number(a);return Number.isNaN(o)?r||"Value must be a number":o<=t||r||`Maximum value is ${t}`},message:r}),pattern:(t,r="Invalid format")=>({validator:a=>a?t.test(a)||r:!0,message:r}),url:(t="Please enter a valid URL")=>({validator:r=>{if(!r)return!0;try{return new URL(r),!0}catch{return t}},message:t}),async:t=>({validator:t})},O="vibe-color-mode",H={light:"dark",dark:"auto",auto:"light"},P=e.ref("auto");let G=!1;const X=[];function Ko(){return typeof window>"u"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Oe(t){if(typeof document>"u")return;const r=t==="auto"?Ko():t;document.documentElement.setAttribute("data-bs-theme",r)}function q(t){P.value=t,Oe(t),X.forEach(r=>r(t))}q("auto"),typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{P.value==="auto"&&(Oe("auto"),X.forEach(t=>t("auto")))});function Wo(){function t(i){if(i in H){try{localStorage.setItem(O,i)}catch{}q(i)}}function r(){if(G)return;let i="auto";try{const n=localStorage.getItem(O);n!==null&&n in H&&(i=n)}catch{}q(i),G=!0}function a(){try{localStorage.removeItem(O)}catch{}G=!1,q("auto")}function o(){t(H[P.value]??"auto")}function l(i){X.push(i)}return{colorMode:P,setColorMode:t,toggleColorMode:o,initColorMode:r,clearColorMode:a,onColorModeChange:l}}S.VibeAccordion=he,S.VibeAlert=J,S.VibeBadge=K,S.VibeBreadcrumb=ne,S.VibeButton=W,S.VibeButtonGroup=Q,S.VibeCard=le,S.VibeCarousel=Ve,S.VibeCloseButton=Z,S.VibeCol=oe,S.VibeCollapse=ye,S.VibeContainer=te,S.VibeDataTable=Ne,S.VibeDropdown=ge,S.VibeFormCheckbox=Me,S.VibeFormDatepicker=De,S.VibeFormGroup=Re,S.VibeFormInput=xe,S.VibeFormRadio=Fe,S.VibeFormSelect=Te,S.VibeFormSpinbutton=ze,S.VibeFormSwitch=Ie,S.VibeFormTextarea=Le,S.VibeFormWysiwyg=qe,S.VibeIcon=Ee,S.VibeInputGroup=je,S.VibeLink=Ae,S.VibeListGroup=fe,S.VibeModal=Be,S.VibeNav=ie,S.VibeNavbar=re,S.VibeNavbarBrand=se,S.VibeNavbarNav=ce,S.VibeNavbarToggle=de,S.VibeOffcanvas=Se,S.VibePagination=ue,S.VibePlaceholder=ee,S.VibePopover=we,S.VibeProgress=pe,S.VibeRow=ae,S.VibeScrollspy=$e,S.VibeSpinner=_,S.VibeTabContent=me,S.VibeToast=Ce,S.VibeTooltip=ve,S.default=Uo,S.useBackButton=A,S.useBreakpoints=Pe,S.useColorMode=Wo,S.useFormValidation=Yo,S.useId=N,S.validators=Jo,Object.defineProperties(S,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(E,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(E=typeof globalThis<"u"?globalThis:E||self,e(E.VibeUI={},E.Vue))})(this,(function(E,e){"use strict";const tt=e.defineComponent({__name:"VibeAlert",props:{variant:{type:String,default:"primary"},subtle:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!0},dismissable:{type:Boolean,default:!1},dismissible:{type:Boolean,default:!1},message:{type:String,default:""},fade:{type:Boolean,default:!0}},emits:["update:modelValue","close","closed","component-error"],setup(t,{emit:n}){const a=t,o=e.computed(()=>a.dismissible||a.dismissable);a.dismissable&&!a.dismissible&&console.warn("[VibeAlert] The `dismissable` prop is deprecated due to a typo; use `dismissible`. Both work in v0.9 but `dismissable` will be removed in v1.0.");const l=n,i=e.ref(null),r=e.ref(null),s=e.ref(a.modelValue),d=()=>{l("close")},u=()=>{s.value=!1,l("update:modelValue",!1),l("closed")};e.onMounted(async()=>{if(i.value)try{const m=(await import("bootstrap")).Alert;r.value=new m(i.value),i.value.addEventListener("close.bs.alert",d),i.value.addEventListener("closed.bs.alert",u)}catch(h){l("component-error",{message:"Bootstrap JS not loaded. Alert will use basic Vue logic.",componentName:"VibeAlert",originalError:h})}}),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("close.bs.alert",d),i.value.removeEventListener("closed.bs.alert",u)),r.value&&(r.value.dispose(),r.value=null)}),e.watch(()=>a.modelValue,h=>{h?s.value=!0:r.value&&s.value?r.value.close():s.value=!1});const f=()=>{r.value?r.value.close():(s.value=!1,l("update:modelValue",!1),l("closed"))},c=e.computed(()=>{const h=["alert"];return a.subtle?h.push(`bg-${a.variant}-subtle`,`text-${a.variant}-emphasis`,`border-${a.variant}-subtle`):h.push(`alert-${a.variant}`),o.value&&h.push("alert-dismissible"),a.fade&&h.push("fade","show"),h.join(" ")});return(h,m)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"alertRef",ref:i,class:e.normalizeClass(c.value),role:"alert"},[e.renderSlot(h.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),o.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"btn-close","aria-label":"Close",onClick:f})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),at=e.defineComponent({__name:"VibeBadge",props:{variant:{type:String,default:"primary"},subtle:{type:Boolean,default:!1},pill:{type:Boolean,default:!1},tag:{type:String,default:"span"}},emits:["component-error"],setup(t,{emit:n}){const a=t,o=e.computed(()=>{const l=["badge"];return a.subtle?l.push(`bg-${a.variant}-subtle`,`text-${a.variant}-emphasis`):l.push(`bg-${a.variant}`),a.pill&&l.push("rounded-pill"),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),ot=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},focusRing:{type:Boolean,default:!1}},emits:["click","component-error"],setup(t,{emit:n}){const a=t,o=n,l=e.computed(()=>a.href?"a":a.to?"router-link":"button"),i=e.computed(()=>{const s=["btn"];return a.variant==="link"?s.push("btn-link"):a.outline?s.push(`btn-outline-${a.variant}`):s.push(`btn-${a.variant}`),a.size&&s.push(`btn-${a.size}`),a.active&&s.push("active"),a.focusRing&&s.push("focus-ring"),s.join(" ")}),r=s=>{a.disabled||o("click",s)};return(s,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{class:e.normalizeClass(i.value),type:t.href||t.to?void 0:t.type,href:t.href,to:t.to,disabled:t.disabled,"aria-disabled":t.disabled,onClick:r},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["class","type","href","to","disabled","aria-disabled"]))}}),Pa=["role","aria-label"],nt=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:n}){const a=t,o=e.computed(()=>{const l=[a.vertical?"btn-group-vertical":"btn-group"];return a.size&&l.push(`btn-group-${a.size}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),role:t.role,"aria-label":t.ariaLabel},[e.renderSlot(l.$slots,"default")],10,Pa))}}),Ia=["disabled","aria-label"],lt=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:n}){const a=t,o=n,l=i=>{a.disabled||o("click",i)};return(i,r)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(["btn-close",{"btn-close-white":t.white}]),disabled:t.disabled,"aria-label":t.ariaLabel,onClick:l},null,10,Ia))}}),Oa={class:"visually-hidden"},it=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:n}){const a=t,o=e.computed(()=>{const l=[`spinner-${a.type}`];return a.variant&&l.push(`text-${a.variant}`),a.size&&l.push(`spinner-${a.type}-${a.size}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value),role:"status"},{default:e.withCtx(()=>[e.createElementVNode("span",Oa,e.toDisplayString(t.label),1)]),_:1},8,["class"]))}}),rt=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:n}){const a=t,o=e.computed(()=>{const r=["placeholder"];return a.variant&&r.push(`bg-${a.variant}`),a.size&&r.push(`placeholder-${a.size}`),r.join(" ")}),l=e.computed(()=>{if(a.animation)return`placeholder-${a.animation}`}),i=e.computed(()=>{if(a.width)return{width:typeof a.width=="number"?`${a.width}%`:a.width}});return(r,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(o.value),style:e.normalizeStyle(i.value)},[e.renderSlot(r.$slots,"default")],6)]),_:3},8,["class"]))}}),ja=e.defineComponent({__name:"VibeSkeleton",props:{variant:{type:String,default:"text"},width:{type:[String,Number],default:void 0},height:{type:[String,Number],default:void 0},lines:{type:Number,default:1},animated:{type:Boolean,default:!0}},setup(t){const n=t,a=d=>{if(d!==void 0)return typeof d=="number"?`${d}px`:d},o=e.computed(()=>{const d=["vibe-skeleton"];return n.animated&&d.push("vibe-skeleton-animated"),d}),l=e.computed(()=>Math.max(1,n.lines)),i=e.computed(()=>n.variant==="circle"?a(n.width):void 0),r=e.computed(()=>{if(n.variant!=="circle")return;const d=a(n.height);return d!==void 0?d:a(n.width)}),s={"aria-busy":!0,role:"status"};return(d,u)=>t.variant==="text"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f,class:e.normalizeClass(["vibe-skeleton","vibe-skeleton-text",t.animated?"vibe-skeleton-animated":"",f===l.value&&l.value>1?"vibe-skeleton-text-last":""]),style:e.normalizeStyle({width:f===l.value&&l.value>1?"60%":a(t.width),height:a(t.height)}),role:"status","aria-busy":"true"},null,6))),128)):t.variant==="rect"?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:1,class:[...o.value,"vibe-skeleton-rect"],style:{width:a(t.width),height:a(t.height)}},s),null,16)):t.variant==="circle"?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:2,class:[...o.value,"vibe-skeleton-circle"],style:{width:i.value,height:r.value}},s),null,16)):t.variant==="card"?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:3,class:"vibe-skeleton-card"},s),[e.createElementVNode("div",{class:e.normalizeClass(["vibe-skeleton","vibe-skeleton-rect",t.animated?"vibe-skeleton-animated":""]),style:e.normalizeStyle({width:"100%",height:a(t.height)||"160px"})},null,6),e.createElementVNode("div",{class:e.normalizeClass(["vibe-skeleton","vibe-skeleton-text",t.animated?"vibe-skeleton-animated":""]),style:{width:"80%"}},null,2),e.createElementVNode("div",{class:e.normalizeClass(["vibe-skeleton","vibe-skeleton-text","vibe-skeleton-text-last",t.animated?"vibe-skeleton-animated":""]),style:{width:"50%"}},null,2)],16)):e.createCommentVNode("",!0)}}),j=(t,n)=>{const a=t.__vccOpts||t;for(const[o,l]of n)a[o]=l;return a},st=j(ja,[["__scopeId","data-v-37d19d6e"]]),dt=e.defineComponent({__name:"VibeContainer",props:{fluid:{type:[Boolean,String],default:!1},tag:{type:String,default:"div"}},emits:["component-error"],setup(t,{emit:n}){const a=t,o=e.computed(()=>a.fluid===!1?"container":a.fluid===!0?"container-fluid":`container-${a.fluid}`);return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),ct=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:n}){const a=t,o=e.computed(()=>{const l=["row"];a.gutters!==void 0&&l.push(`g-${a.gutters}`),a.guttersX!==void 0&&l.push(`gx-${a.guttersX}`),a.guttersY!==void 0&&l.push(`gy-${a.guttersY}`);const i=["sm","md","lg","xl","xxl"];return i.forEach(r=>{const s=r.charAt(0).toUpperCase()+r.slice(1),d=`gutters${s}`;a[d]!==void 0&&l.push(`g-${r}-${a[d]}`);const u=`guttersX${s}`;a[u]!==void 0&&l.push(`gx-${r}-${a[u]}`);const f=`guttersY${s}`;a[f]!==void 0&&l.push(`gy-${r}-${a[f]}`)}),a.rowCols!==void 0&&l.push(`row-cols-${a.rowCols}`),i.forEach(r=>{const s=`rowCols${r.charAt(0).toUpperCase()+r.slice(1)}`;a[s]!==void 0&&l.push(`row-cols-${r}-${a[s]}`)}),a.alignItems&&l.push(`align-items-${a.alignItems}`),a.justifyContent&&l.push(`justify-content-${a.justifyContent}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),ut=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:n}){const a=t,o=e.computed(()=>{const l=[];return a.cols!==void 0||a.sm!==void 0||a.md!==void 0||a.lg!==void 0||a.xl!==void 0||a.xxl!==void 0?(a.cols===!0?l.push("col"):a.cols==="auto"?l.push("col-auto"):a.cols&&l.push(`col-${a.cols}`),[{name:"sm",value:a.sm},{name:"md",value:a.md},{name:"lg",value:a.lg},{name:"xl",value:a.xl},{name:"xxl",value:a.xxl}].forEach(({name:s,value:d})=>{d===!0?l.push(`col-${s}`):d==="auto"?l.push(`col-${s}-auto`):d!==void 0&&l.push(`col-${s}-${d}`)})):l.push("col"),a.offset!==void 0&&l.push(`offset-${a.offset}`),a.offsetSm!==void 0&&l.push(`offset-sm-${a.offsetSm}`),a.offsetMd!==void 0&&l.push(`offset-md-${a.offsetMd}`),a.offsetLg!==void 0&&l.push(`offset-lg-${a.offsetLg}`),a.offsetXl!==void 0&&l.push(`offset-xl-${a.offsetXl}`),a.offsetXxl!==void 0&&l.push(`offset-xxl-${a.offsetXxl}`),a.order!==void 0&&l.push(`order-${a.order}`),a.orderSm!==void 0&&l.push(`order-sm-${a.orderSm}`),a.orderMd!==void 0&&l.push(`order-md-${a.orderMd}`),a.orderLg!==void 0&&l.push(`order-lg-${a.orderLg}`),a.orderXl!==void 0&&l.push(`order-xl-${a.orderXl}`),a.orderXxl!==void 0&&l.push(`order-xxl-${a.orderXxl}`),a.alignSelf&&l.push(`align-self-${a.alignSelf}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.value)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["class"]))}}),qa=["src","alt"],Ha={key:1,class:"card-header"},Wa={key:2,class:"card-body"},Ua={key:0,class:"card-title"},Xa={key:1,class:"card-text"},Ga={key:3,class:"card-footer"},Ya=["src","alt"],ft=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:n}){const a=t,o=e.computed(()=>{const l=["card"];return a.variant&&l.push(`text-bg-${a.variant}`),a.border&&l.push(`border-${a.border}`),a.textVariant&&l.push(`text-${a.textVariant}`),l.join(" ")});return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(o.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,qa)):e.createCommentVNode("",!0),t.header||l.$slots.header?(e.openBlock(),e.createElementBlock("div",Ha,[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.header),1)])])):e.createCommentVNode("",!0),t.title||t.body||l.$slots.default||l.$slots.body?(e.openBlock(),e.createElementBlock("div",Wa,[t.title||l.$slots.title?(e.openBlock(),e.createElementBlock("h5",Ua,[e.renderSlot(l.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),t.body||l.$slots.body?(e.openBlock(),e.createElementBlock("p",Xa,[e.renderSlot(l.$slots,"body",{},()=>[e.createTextVNode(e.toDisplayString(t.body),1)])])):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default")])):e.createCommentVNode("",!0),t.footer||l.$slots.footer?(e.openBlock(),e.createElementBlock("div",Ga,[e.renderSlot(l.$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,Ya)):e.createCommentVNode("",!0)]),_:3},8,["class"]))}}),Ka=["aria-label"],Ja={class:"breadcrumb"},Qa=["aria-current"],mt=e.defineComponent({__name:"VibeBreadcrumb",props:{ariaLabel:{type:String,default:"breadcrumb"},items:{type:Array,required:!0}},emits:["item-click","component-error"],setup(t,{emit:n}){const a=n,o=(l,i,r)=>{l.active||a("item-click",{item:l,index:i,event:r})};return(l,i)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ol",Ja,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(r,s)=>(e.openBlock(),e.createElementBlock("li",{key:s,class:e.normalizeClass(["breadcrumb-item",{active:r.active}]),"aria-current":r.active?"page":void 0},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.href?"a":r.to?"router-link":"span"),{href:r.href,to:r.to,onClick:d=>o(r,s,d)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"item",{item:r,index:s},()=>[e.createTextVNode(e.toDisplayString(r.text),1)])]),_:2},1032,["href","to","onClick"]))],10,Qa))),128))])],8,Ka))}}),Za={class:"dropdown-menu"},_a={key:0,class:"dropdown-divider"},eo={key:1,class:"dropdown-header"},pt=e.defineComponent({__name:"VibeNav",props:{items:{type:Array,required:!0},pills:{type:Boolean,default:!1},tabs:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},justified:{type:Boolean,default:!1},fill:{type:Boolean,default:!1},underline:{type:Boolean,default:!1},tag:{type:String,default:"ul"}},emits:["item-click","show","shown","hide","hidden","component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=new Map,s=e.computed(()=>{const p=["nav"];return o.pills&&p.push("nav-pills"),o.tabs&&p.push("nav-tabs"),o.vertical&&p.push("flex-column"),o.justified&&p.push("nav-justified"),o.fill&&p.push("nav-fill"),o.underline&&p.push("nav-underline"),p.join(" ")}),d=p=>l("show",p),u=p=>l("shown",p),f=p=>l("hide",p),c=p=>l("hidden",p),h=async()=>{if(i.value)try{const b=(await import("bootstrap")).Tab;i.value.querySelectorAll('[data-bs-toggle="tab"], [data-bs-toggle="pill"]').forEach(y=>{const v=y;if(!r.has(v)){const g=new b(v);r.set(v,g),v.addEventListener("show.bs.tab",d),v.addEventListener("shown.bs.tab",u),v.addEventListener("hide.bs.tab",f),v.addEventListener("hidden.bs.tab",c)}})}catch(p){l("component-error",{message:"Bootstrap JS not loaded. Nav will use basic Vue logic.",componentName:"VibeNav",originalError:p})}};e.onMounted(h),e.onBeforeUnmount(()=>{r.forEach((p,b)=>{b.removeEventListener("show.bs.tab",d),b.removeEventListener("shown.bs.tab",u),b.removeEventListener("hide.bs.tab",f),b.removeEventListener("hidden.bs.tab",c),p.dispose()}),r.clear()}),e.watch(()=>o.items,async()=>{await e.nextTick(),await h()},{deep:!0});const m=(p,b,k)=>{p.disabled||l("item-click",{item:p,index:b,event:k})};return n({bsInstances:r,refresh:h}),(p,b)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{ref_key:"navRef",ref:i,class:e.normalizeClass(s.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(k,y)=>(e.openBlock(),e.createElementBlock("li",{key:y,class:e.normalizeClass(["nav-item",{dropdown:k.children&&k.children.length>0}])},[k.children&&k.children.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("a",{class:e.normalizeClass(["nav-link dropdown-toggle",{active:k.active,disabled:k.disabled}]),"data-bs-toggle":"dropdown",href:"#",role:"button","aria-expanded":"false"},e.toDisplayString(k.text),3),e.createElementVNode("ul",Za,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.children,(v,g)=>(e.openBlock(),e.createElementBlock("li",{key:g},[v.divider?(e.openBlock(),e.createElementBlock("hr",_a)):v.header?(e.openBlock(),e.createElementBlock("h6",eo,e.toDisplayString(v.text),1)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(v.href?"a":v.to?"router-link":"button"),{key:2,class:e.normalizeClass(["dropdown-item",{active:v.active,disabled:v.disabled}]),href:v.href,to:v.to,type:!v.href&&!v.to?"button":void 0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.text),1)]),_:2},1032,["class","href","to","type"]))]))),128))])],64)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(k.href?"a":k.to?"router-link":"button"),{key:1,class:e.normalizeClass(["nav-link",{active:k.active,disabled:k.disabled}]),href:k.href,to:k.to,type:!k.href&&!k.to?"button":void 0,"aria-current":k.active?"page":void 0,"data-bs-toggle":(t.tabs||t.pills)&&k.href&&k.href.startsWith("#")?t.tabs?"tab":"pill":void 0,"data-bs-target":k.href&&k.href.startsWith("#")?k.href:void 0,onClick:v=>m(k,y,v)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.text),1)]),_:2},1032,["class","href","to","type","aria-current","data-bs-toggle","data-bs-target","onClick"]))],2))),128))]),_:1},8,["class"]))}}),bt=j(e.defineComponent({__name:"VibeNavbar",props:{variant:{type:String,default:"light"},theme:{type:String,default:void 0},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:n}){const a=t,o=e.reactive({}),l=d=>{o[d]=!o[d]};e.provide("vibeNavbarCollapse",{collapseStates:o,toggleCollapse:l});const i=e.computed(()=>{const d=["navbar"];return a.expand===!0?d.push("navbar-expand"):typeof a.expand=="string"&&d.push(`navbar-expand-${a.expand}`),d.push(`bg-${a.variant}`),a.position&&d.push(a.position),d.join(" ")}),r=e.computed(()=>{if(a.theme)return a.theme;if(a.variant==="dark")return"dark";if(a.variant==="light")return"light"}),s=e.computed(()=>{if(a.container!==!1)return a.container===!0?"container-fluid":`container-${a.container}`});return(d,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(i.value),"data-bs-theme":r.value},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.value)},[e.renderSlot(d.$slots,"default",{},void 0,!0)],2)):e.renderSlot(d.$slots,"default",{key:1},void 0,!0)]),_:3},8,["class","data-bs-theme"]))}}),[["__scopeId","data-v-8228b170"]]),ht=e.defineComponent({__name:"VibeNavbarBrand",props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},emits:["component-error"],setup(t,{emit:n}){const a=t,o=a.href?"a":a.to?"router-link":"span";return(l,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o)),{class:"navbar-brand",href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["href","to"]))}}),to=["data-bs-target","aria-controls","aria-expanded","aria-label"],gt=e.defineComponent({__name:"VibeNavbarToggle",props:{target:{type:String,required:!0},ariaLabel:{type:String,default:"Toggle navigation"}},emits:["component-error"],setup(t,{emit:n}){const a=t,o=e.inject("vibeNavbarCollapse",null),l=e.computed(()=>o?.collapseStates[a.target]??!1),i=async()=>{o&&o.toggleCollapse(a.target);try{const r=document.getElementById(a.target);r&&(await import("bootstrap")).Collapse.getOrCreateInstance(r).toggle()}catch{}};return(r,s)=>(e.openBlock(),e.createElementBlock("button",{class:"navbar-toggler",type:"button","data-bs-target":`#${t.target}`,"data-bs-toggle":"collapse","aria-controls":t.target,"aria-expanded":l.value,"aria-label":t.ariaLabel,onClick:i},[...s[0]||(s[0]=[e.createElementVNode("span",{class:"navbar-toggler-icon"},null,-1)])],8,to))}}),ao={class:"dropdown-menu"},oo={key:0},no={key:1},lo={class:"dropdown-header"},io={key:2},yt=e.defineComponent({__name:"VibeNavbarNav",props:{tag:{type:String,default:"ul"},items:{type:Array,default:void 0}},emits:["item-click","dropdown-item-click","component-error"],setup(t,{emit:n}){const a=n,o=u=>{const f=["nav-item"];return u.children?.length&&f.push("dropdown"),f.join(" ")},l=u=>{const f=["nav-link"];return u.active&&f.push("active"),u.disabled&&f.push("disabled"),u.children?.length&&f.push("dropdown-toggle"),f.join(" ")},i=u=>u.href?"a":u.to?"router-link":"a",r=u=>{const f=["dropdown-item"];return u.active&&f.push("active"),u.disabled&&f.push("disabled"),f.join(" ")},s=(u,f,c)=>{u.disabled||a("item-click",{item:u,index:f,event:c})},d=(u,f,c,h,m)=>{!c.disabled&&!c.divider&&!c.header&&a("dropdown-item-click",{item:u,itemIndex:f,child:c,childIndex:h,event:m})};return(u,f)=>(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,(c,h)=>(e.openBlock(),e.createElementBlock("li",{key:h,class:e.normalizeClass(o(c))},[c.children?.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("a",{class:e.normalizeClass(l(c)),href:"#",role:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[e.renderSlot(u.$slots,"item",{item:c,index:h},()=>[e.createTextVNode(e.toDisplayString(c.text),1)])],2),e.createElementVNode("ul",ao,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.children,(m,p)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:p},[m.divider?(e.openBlock(),e.createElementBlock("li",oo,[...f[0]||(f[0]=[e.createElementVNode("hr",{class:"dropdown-divider"},null,-1)])])):m.header?(e.openBlock(),e.createElementBlock("li",no,[e.createElementVNode("h6",lo,e.toDisplayString(m.text),1)])):(e.openBlock(),e.createElementBlock("li",io,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.href?"a":m.to?"router-link":"button"),{class:e.normalizeClass(r(m)),href:m.href,to:m.to,type:!m.href&&!m.to?"button":void 0,onClick:b=>d(c,h,m,p,b)},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"dropdown-item",{item:c,child:m,index:h,childIndex:p},()=>[e.createTextVNode(e.toDisplayString(m.text),1)])]),_:2},1032,["class","href","to","type","onClick"]))]))],64))),128))])],64)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i(c)),{key:1,class:e.normalizeClass(l(c)),href:c.href,to:c.to,"aria-current":c.active?"page":void 0,"aria-disabled":c.disabled,onClick:m=>s(c,h,m)},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"item",{item:c,index:h},()=>[e.createTextVNode(e.toDisplayString(c.text),1)])]),_:2},1032,["class","href","to","aria-current","aria-disabled","onClick"]))],2))),128)):e.renderSlot(u.$slots,"default",{key:1})]),_:3}))}}),ro=["aria-label"],so=["disabled","aria-disabled"],co=["aria-current","onClick"],uo=["disabled","aria-disabled"],kt=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:n}){const a=t,o=n,l=e.computed(()=>{const u=["pagination"];return a.size&&u.push(`pagination-${a.size}`),u.join(" ")}),i=e.computed(()=>Array.from({length:a.totalPages},(u,f)=>f+1)),r=u=>{u>=1&&u<=a.totalPages&&(o("update:currentPage",u),o("page-click",u))},s=e.computed(()=>a.currentPage===1),d=e.computed(()=>a.currentPage===a.totalPages);return(u,f)=>(e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel},[e.createElementVNode("ul",{class:e.normalizeClass(l.value)},[t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:0,class:e.normalizeClass(["page-item",{disabled:s.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:s.value,"aria-disabled":s.value,onClick:f[0]||(f[0]=c=>r(t.currentPage-1))},[e.renderSlot(u.$slots,"prev",{disabled:s.value},()=>[e.createTextVNode(e.toDisplayString(t.prevText),1)])],8,so)],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,c=>(e.openBlock(),e.createElementBlock("li",{key:c,class:e.normalizeClass(["page-item",{active:c===t.currentPage}])},[e.createElementVNode("button",{class:"page-link",type:"button","aria-current":c===t.currentPage?"page":void 0,onClick:h=>r(c)},[e.renderSlot(u.$slots,"page",{page:c,active:c===t.currentPage},()=>[e.createTextVNode(e.toDisplayString(c),1)])],8,co)],2))),128)),t.showPrevNext?(e.openBlock(),e.createElementBlock("li",{key:1,class:e.normalizeClass(["page-item",{disabled:d.value}])},[e.createElementVNode("button",{class:"page-link",type:"button",disabled:d.value,"aria-disabled":d.value,onClick:f[1]||(f[1]=c=>r(t.currentPage+1))},[e.renderSlot(u.$slots,"next",{disabled:d.value},()=>[e.createTextVNode(e.toDisplayString(t.nextText),1)])],8,uo)],2)):e.createCommentVNode("",!0)],2)],8,ro))}}),fo=["id","aria-labelledby"],vt=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","shown","hide","hidden"],setup(t,{emit:n}){const a=t,o=e.ref(null),l=new Map,i=r=>{const s=["tab-pane"];return a.fade&&s.push("fade"),r.active&&s.push("show","active"),s.join(" ")};return e.onMounted(async()=>{if(o.value)try{const s=(await import("bootstrap")).Tab}catch{}}),e.onBeforeUnmount(()=>{l.forEach(r=>r.dispose()),l.clear()}),(r,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{id:t.id,ref_key:"tabContentRef",ref:o,class:"tab-content"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.panes,(d,u)=>(e.openBlock(),e.createElementBlock("div",{key:d.id,id:d.id,class:e.normalizeClass(i(d)),role:"tabpanel","aria-labelledby":`${d.id}-tab`,tabindex:"0"},[e.renderSlot(r.$slots,"pane",{pane:d,index:u},()=>[e.createTextVNode(e.toDisplayString(d.content),1)])],10,fo))),128))]),_:3},8,["id"]))}}),mo=["disabled","aria-selected","onClick"],Bt=e.defineComponent({__name:"VibeTabs",props:{modelValue:{type:String,default:void 0},variant:{type:String,default:"tabs"},fill:{type:Boolean,default:!1},justified:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:n}){const a=t,o=n,l=e.reactive([]),i=e.ref(a.modelValue),r=e.reactive(new Set),s=e.computed(()=>i.value);e.watch(()=>a.modelValue,c=>{c!==void 0&&c!==i.value&&(i.value=c,r.add(c))});const d=c=>{i.value!==c&&(i.value=c,r.add(c),o("update:modelValue",c),o("change",c))},u=e.computed(()=>{const c=["nav"];return a.variant==="tabs"?c.push("nav-tabs"):a.variant==="pills"?c.push("nav-pills"):a.variant==="underline"&&c.push("nav-underline"),a.fill&&c.push("nav-fill"),a.justified&&c.push("nav-justified"),a.vertical&&c.push("flex-column"),c.join(" ")}),f=e.computed(()=>a.vertical?"d-flex":"");return e.provide("vibeTabsContext",{register:(c,h,m)=>{l.find(p=>p.name===c)||(l.push({name:c,label:h,disabled:m}),i.value===void 0&&!m&&(i.value=c,r.add(c),o("update:modelValue",c)))},unregister:c=>{const h=l.findIndex(m=>m.name===c);h>=0&&l.splice(h,1)},isActive:c=>i.value===c,hasBeenActive:c=>r.has(c),get lazy(){return a.lazy}}),(c,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vibe-tabs",f.value])},[e.createElementVNode("ul",{class:e.normalizeClass(u.value),role:"tablist"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l,m=>(e.openBlock(),e.createElementBlock("li",{key:m.name,class:"nav-item",role:"presentation"},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["nav-link",{active:m.name===s.value,disabled:m.disabled}]),disabled:m.disabled,"aria-selected":m.name===s.value,role:"tab",onClick:p=>d(m.name)},e.toDisplayString(m.label),11,mo)]))),128))],2),e.createElementVNode("div",{class:e.normalizeClass(["tab-content",{"flex-grow-1 ms-3":t.vertical}])},[e.renderSlot(c.$slots,"default")],2)],2))}}),St=e.defineComponent({__name:"VibeTab",props:{name:{type:String,required:!0},label:{type:String,required:!0},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=e.inject("vibeTabsContext",null);if(!a)throw new Error("[VibeTab] must be a descendant of <VibeTabs>");e.onMounted(()=>{a.register(n.name,n.label,n.disabled)}),e.onBeforeUnmount(()=>{a.unregister(n.name)});const o=e.computed(()=>a.isActive(n.name)),l=e.computed(()=>a.lazy?a.hasBeenActive(n.name):!0);return(i,r)=>l.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["tab-pane",{active:o.value,show:o.value}]),role:"tabpanel"},[e.renderSlot(i.$slots,"default")],2)),[[e.vShow,o.value]]):e.createCommentVNode("",!0)}}),wt=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:n}){const a=t,o=n,l=e.computed(()=>{const d=["list-group"];return a.flush&&d.push("list-group-flush"),a.numbered&&d.push("list-group-numbered"),a.horizontal===!0?d.push("list-group-horizontal"):typeof a.horizontal=="string"&&d.push(`list-group-horizontal-${a.horizontal}`),d.join(" ")}),i=d=>d.href?"a":d.to?"router-link":"li",r=d=>{const u=["list-group-item"];return d.active&&u.push("active"),d.disabled&&u.push("disabled"),d.variant&&u.push(`list-group-item-${d.variant}`),u.join(" ")},s=(d,u,f)=>{d.disabled||o("item-click",{item:d,index:u,event:f})};return(d,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(l.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i(f)),{key:c,class:e.normalizeClass(r(f)),href:f.href,to:f.to,"aria-disabled":f.disabled,"aria-current":f.active,onClick:h=>s(f,c,h)},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"item",{item:f,index:c},()=>[e.createTextVNode(e.toDisplayString(f.text),1)])]),_:2},1032,["class","href","to","aria-disabled","aria-current","onClick"]))),128))]),_:3},8,["class"]))}}),po=["aria-valuenow","aria-valuemax"],Vt=e.defineComponent({__name:"VibeProgress",props:{height:{type:String,default:void 0},bars:{type:Array,required:!0}},emits:["component-error"],setup(t,{emit:n}){const a=t,o=e.computed(()=>{if(a.height)return{height:a.height}}),l=s=>{const d=["progress-bar"];return s.variant&&d.push(`bg-${s.variant}`),(s.striped||s.animated)&&d.push("progress-bar-striped"),s.animated&&d.push("progress-bar-animated"),d.join(" ")},i=s=>{const d=s.max||100;return{width:`${Math.min(100,Math.max(0,s.value/d*100))}%`}},r=s=>s.label?s.label:s.showValue?`${s.value}%`:"";return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:"progress",style:e.normalizeStyle(o.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bars,(u,f)=>(e.openBlock(),e.createElementBlock("div",{key:f,class:e.normalizeClass(l(u)),style:e.normalizeStyle(i(u)),role:"progressbar","aria-valuenow":u.value,"aria-valuemin":0,"aria-valuemax":u.max||100},[e.renderSlot(s.$slots,"label",{bar:u,index:f},()=>[e.createTextVNode(e.toDisplayString(r(u)),1)])],14,po))),128))],4))}});let Ct=0;function O(t="vibe"){const n=e.getCurrentInstance(),a=n?n.uid:"no-instance";return Ct++,`${t}-${a}-${Ct}`}const bo=["id"],ho={class:"accordion-header"},go=["data-bs-target","aria-expanded","aria-controls","onClick"],yo=["id","data-bs-parent"],ko={class:"accordion-body"},Et=e.defineComponent({__name:"VibeAccordion",props:{id:{type:String,default:()=>O("accordion")},flush:{type:Boolean,default:!1},items:{type:Array,required:!0},alwaysOpen:{type:Boolean,default:!1}},emits:["item-click","show","shown","hide","hidden","component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=new Map,s=m=>l("show",m),d=m=>l("shown",m),u=m=>l("hide",m),f=m=>l("hidden",m),c=async()=>{if(i.value)try{const p=(await import("bootstrap")).Collapse;i.value.querySelectorAll(".accordion-collapse").forEach(k=>{const y=k.id;if(!r.has(y)){const v=new p(k,{toggle:!1,parent:o.alwaysOpen?void 0:`#${o.id}`});r.set(y,v),k.addEventListener("show.bs.collapse",()=>s(y)),k.addEventListener("shown.bs.collapse",()=>d(y)),k.addEventListener("hide.bs.collapse",()=>u(y)),k.addEventListener("hidden.bs.collapse",()=>f(y)),o.items.find(S=>S.id===y)?.show&&v.show()}})}catch(m){l("component-error",{message:"Bootstrap JS not loaded. Accordion will use data attributes only.",componentName:"VibeAccordion",originalError:m})}};e.onMounted(c),e.onBeforeUnmount(()=>{r.forEach((m,p)=>{const b=document.getElementById(p);b&&(b.removeEventListener("show.bs.collapse",()=>s(p)),b.removeEventListener("shown.bs.collapse",()=>d(p)),b.removeEventListener("hide.bs.collapse",()=>u(p)),b.removeEventListener("hidden.bs.collapse",()=>f(p))),m.dispose()}),r.clear()}),e.watch(()=>o.items,async(m,p)=>{m.length!==p?.length&&(await e.nextTick(),await c()),m.forEach(b=>{const k=r.get(b.id);k&&(b.show?k.show():o.alwaysOpen||k.hide())})},{deep:!0});const h=(m,p)=>{l("item-click",{item:m,index:p})};return n({bsInstances:r,refresh:c}),(m,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"accordionRef",ref:i,id:t.id,class:e.normalizeClass(["accordion",{"accordion-flush":t.flush}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(b,k)=>(e.openBlock(),e.createElementBlock("div",{key:b.id,class:"accordion-item"},[e.createElementVNode("h2",ho,[e.createElementVNode("button",{class:e.normalizeClass(["accordion-button",{collapsed:!b.show}]),type:"button","data-bs-toggle":"collapse","data-bs-target":`#${b.id}`,"aria-expanded":b.show,"aria-controls":b.id,onClick:y=>h(b,k)},[e.renderSlot(m.$slots,"title",{item:b,index:k},()=>[e.createTextVNode(e.toDisplayString(b.title),1)])],10,go)]),e.createElementVNode("div",{id:b.id,class:e.normalizeClass(["accordion-collapse","collapse",{show:b.show}]),"data-bs-parent":t.alwaysOpen?void 0:`#${t.id}`},[e.createElementVNode("div",ko,[e.renderSlot(m.$slots,"content",{item:b,index:k},()=>[e.createTextVNode(e.toDisplayString(b.content),1)])])],10,yo)]))),128))],10,bo))}}),$t=e.defineComponent({__name:"VibeCollapse",props:{id:{type:String,default:()=>O("collapse")},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:n}){const a=t,o=n,l=e.inject("vibeNavbarCollapse",null),i=e.ref(null),r=e.ref(null),s=e.ref(!1),d=()=>{s.value=!0,o("show")},u=()=>{o("shown"),o("update:modelValue",!0)},f=()=>{o("hide")},c=()=>{s.value=!1,o("hidden"),o("update:modelValue",!1)};e.onMounted(async()=>{if(i.value)try{const b=(await import("bootstrap")).Collapse;r.value=new b(i.value,{toggle:!1}),i.value.addEventListener("show.bs.collapse",d),i.value.addEventListener("shown.bs.collapse",u),i.value.addEventListener("hide.bs.collapse",f),i.value.addEventListener("hidden.bs.collapse",c),(l&&a.id in l.collapseStates?l.collapseStates[a.id]:a.modelValue)&&r.value.show()}catch(p){o("component-error",{message:"Bootstrap JS not loaded. Collapse will use CSS classes only.",componentName:"VibeCollapse",originalError:p})}}),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.collapse",d),i.value.removeEventListener("shown.bs.collapse",u),i.value.removeEventListener("hide.bs.collapse",f),i.value.removeEventListener("hidden.bs.collapse",c)),r.value&&(r.value.dispose(),r.value=null)});const h=e.computed(()=>l&&a.id in l.collapseStates?l.collapseStates[a.id]:a.modelValue);e.watch(h,p=>{r.value&&(p&&!s.value?r.value.show():!p&&s.value&&r.value.hide())});const m=e.computed(()=>{const p=["collapse"];return a.isNav&&p.push("navbar-collapse"),a.horizontal&&p.push("collapse-horizontal"),!r.value&&h.value&&p.push("show"),p.join(" ")});return(p,b)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{ref_key:"collapseRef",ref:i,id:t.id,class:e.normalizeClass(m.value)},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3},8,["id","class"]))}}),vo=["id","data-bs-auto-close"],Bo=["id","data-bs-auto-close"],So=["aria-labelledby"],wo={key:0},Vo={key:1},Co={class:"dropdown-header"},Eo={key:2},xt=e.defineComponent({__name:"VibeDropdown",props:{id:{type:String,default:()=>O("dropdown")},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},autoClose:{type:[Boolean,String],default:!0}},emits:["item-click","show","shown","hide","hidden","component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=e.computed(()=>o.direction==="up"?"dropup":o.direction==="end"?"dropend":o.direction==="start"?"dropstart":"dropdown"),d=e.computed(()=>{const g=["btn",`btn-${o.variant}`];return o.size&&g.push(`btn-${o.size}`),g.join(" ")}),u=e.computed(()=>{const g=["dropdown-menu"];return o.menuEnd&&g.push("dropdown-menu-end"),g.join(" ")}),f=g=>{const S=["dropdown-item"];return g.active&&S.push("active"),g.disabled&&S.push("disabled"),S.join(" ")},c=()=>l("show"),h=()=>l("shown"),m=()=>l("hide"),p=()=>l("hidden");e.onMounted(async()=>{if(i.value)try{const S=(await import("bootstrap")).Dropdown,B=i.value.querySelector(".dropdown-toggle");B&&(r.value=new S(B,{autoClose:o.autoClose}),B.addEventListener("show.bs.dropdown",c),B.addEventListener("shown.bs.dropdown",h),B.addEventListener("hide.bs.dropdown",m),B.addEventListener("hidden.bs.dropdown",p))}catch(g){l("component-error",{message:"Bootstrap JS not loaded. Dropdown will use data attributes only.",componentName:"VibeDropdown",originalError:g})}}),e.onBeforeUnmount(()=>{const g=i.value?.querySelector(".dropdown-toggle");g&&(g.removeEventListener("show.bs.dropdown",c),g.removeEventListener("shown.bs.dropdown",h),g.removeEventListener("hide.bs.dropdown",m),g.removeEventListener("hidden.bs.dropdown",p)),r.value&&(r.value.dispose(),r.value=null)});const b=(g,S,B)=>{!g.disabled&&!g.divider&&!g.header&&l("item-click",{item:g,index:S,event:B})};return n({show:()=>r.value?.show(),hide:()=>r.value?.hide(),toggle:()=>r.value?.toggle()}),(g,S)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:i,class:e.normalizeClass(s.value)},[t.split?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:e.normalizeClass(d.value),type:"button"},[e.renderSlot(g.$slots,"button",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])],2),e.createElementVNode("button",{id:t.id,type:"button",class:e.normalizeClass([d.value,"dropdown-toggle","dropdown-toggle-split"]),"data-bs-toggle":"dropdown","aria-expanded":"false","data-bs-auto-close":t.autoClose},[...S[0]||(S[0]=[e.createElementVNode("span",{class:"visually-hidden"},"Toggle Dropdown",-1)])],10,Bo)],64)):(e.openBlock(),e.createElementBlock("button",{key:0,id:t.id,class:e.normalizeClass([d.value,"dropdown-toggle"]),type:"button","data-bs-toggle":"dropdown","aria-expanded":"false","data-bs-auto-close":t.autoClose},[e.renderSlot(g.$slots,"button",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])],10,vo)),e.createElementVNode("ul",{class:e.normalizeClass(u.value),"aria-labelledby":t.id},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(B,N)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:N},[B.divider?(e.openBlock(),e.createElementBlock("li",wo,[...S[1]||(S[1]=[e.createElementVNode("hr",{class:"dropdown-divider"},null,-1)])])):B.header?(e.openBlock(),e.createElementBlock("li",Vo,[e.createElementVNode("h6",Co,[e.renderSlot(g.$slots,"header",{item:B,index:N},()=>[e.createTextVNode(e.toDisplayString(B.text),1)])])])):(e.openBlock(),e.createElementBlock("li",Eo,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.href?"a":B.to?"router-link":"button"),{class:e.normalizeClass(f(B)),href:B.href,to:B.to,type:!B.href&&!B.to?"button":void 0,disabled:B.disabled,onClick:F=>b(B,N,F)},{default:e.withCtx(()=>[e.renderSlot(g.$slots,"item",{item:B,index:N},()=>[e.createTextVNode(e.toDisplayString(B.text),1)])]),_:2},1032,["class","href","to","type","disabled","onClick"]))]))],64))),128))],10,So)],2))}}),ee=[];function Nt(t){if(ee.length>0){t.preventDefault();const n=ee.pop();n&&n()}}function Me(t){e.onMounted(()=>{ee.push(t),ee.length===1&&typeof document<"u"&&document.addEventListener("backbutton",Nt)}),e.onUnmounted(()=>{const n=ee.indexOf(t);n!==-1&&ee.splice(n,1),ee.length===0&&typeof document<"u"&&document.removeEventListener("backbutton",Nt)})}const $o=["id","aria-labelledby","aria-hidden","data-bs-backdrop","data-bs-keyboard"],xo={class:"modal-content"},No={key:0,class:"modal-header"},Do=["id"],To={class:"modal-body"},Lo={key:1,class:"modal-footer"},Dt=j(e.defineComponent({__name:"VibeModal",props:{id:{type:String,default:()=>O("modal")},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},teleport:{type:[String,Boolean],default:"body"}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=e.ref(!1),d=e.computed(()=>{const y=["modal-dialog"];return o.size&&y.push(`modal-${o.size}`),o.centered&&y.push("modal-dialog-centered"),o.scrollable&&y.push("modal-dialog-scrollable"),o.fullscreen===!0?y.push("modal-fullscreen"):typeof o.fullscreen=="string"&&y.push(`modal-fullscreen-${o.fullscreen}-down`),y.join(" ")}),u=()=>{s.value=!0,l("show")},f=()=>{l("shown"),l("update:modelValue",!0)},c=()=>{l("hide")},h=()=>{s.value=!1,l("hidden"),l("update:modelValue",!1)},m=async()=>{if(i.value){r.value&&r.value.dispose();try{const v=(await import("bootstrap")).Modal;r.value=new v(i.value,{backdrop:o.staticBackdrop?"static":!0,keyboard:!o.staticBackdrop,focus:!0}),i.value.addEventListener("show.bs.modal",u),i.value.addEventListener("shown.bs.modal",f),i.value.addEventListener("hide.bs.modal",c),i.value.addEventListener("hidden.bs.modal",h),o.modelValue&&r.value.show()}catch(y){l("component-error",{message:"Bootstrap JS not loaded. Modal will use data attributes only.",componentName:"VibeModal",originalError:y})}}};e.onMounted(m),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.modal",u),i.value.removeEventListener("shown.bs.modal",f),i.value.removeEventListener("hide.bs.modal",c),i.value.removeEventListener("hidden.bs.modal",h)),r.value&&(s.value&&r.value.hide(),r.value.dispose(),r.value=null)}),e.watch(()=>o.modelValue,y=>{r.value&&(y&&!s.value?r.value.show():!y&&s.value&&r.value.hide())}),e.watch(()=>o.staticBackdrop,m);const p=()=>r.value?.show(),b=()=>r.value?.hide(),k=()=>r.value?.handleUpdate();return Me(()=>{s.value&&b()}),n({show:p,hide:b,handleUpdate:k,bsInstance:r}),(y,v)=>(e.openBlock(),e.createBlock(e.Teleport,{to:t.teleport===!0?"body":t.teleport||void 0,disabled:!t.teleport},[e.createElementVNode("div",{ref_key:"modalRef",ref:i,id:t.id,class:e.normalizeClass(["modal fade",{show:s.value}]),tabindex:"-1","aria-labelledby":`${t.id}-label`,"aria-hidden":!s.value,"data-bs-backdrop":t.staticBackdrop?"static":void 0,"data-bs-keyboard":!t.staticBackdrop},[e.createElementVNode("div",{class:e.normalizeClass(d.value)},[e.createElementVNode("div",xo,[t.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",No,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"modal-title"},[e.renderSlot(y.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)],!0)],8,Do),e.createElementVNode("button",{type:"button",class:"btn-close","aria-label":"Close",onClick:b})])),e.createElementVNode("div",To,[e.renderSlot(y.$slots,"default",{},void 0,!0)]),t.hideFooter?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Lo,[e.renderSlot(y.$slots,"footer",{},()=>[e.createElementVNode("button",{type:"button",class:"btn btn-secondary",onClick:b},"Close")],!0)]))])],2)],10,$o)],8,["to","disabled"]))}}),[["__scopeId","data-v-c11ac690"]]),zo=["id","aria-labelledby","data-bs-backdrop","data-bs-scroll"],Ao={class:"offcanvas-header"},Mo=["id"],Fo={class:"offcanvas-body"},Tt=j(e.defineComponent({__name:"VibeOffcanvas",props:{id:{type:String,default:()=>O("offcanvas")},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},teleport:{type:[String,Boolean],default:"body"}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=e.ref(!1),d=e.computed(()=>`offcanvas offcanvas-${o.placement}`),u=()=>{s.value=!0,l("show")},f=()=>{l("shown"),l("update:modelValue",!0)},c=()=>{l("hide")},h=()=>{s.value=!1,l("hidden"),l("update:modelValue",!1)},m=async()=>{if(i.value){r.value&&r.value.dispose();try{const y=(await import("bootstrap")).Offcanvas;r.value=new y(i.value,{backdrop:o.backdrop===!1?!1:o.backdrop==="static"?"static":!0,scroll:o.scroll,keyboard:o.backdrop!=="static"}),i.value.addEventListener("show.bs.offcanvas",u),i.value.addEventListener("shown.bs.offcanvas",f),i.value.addEventListener("hide.bs.offcanvas",c),i.value.addEventListener("hidden.bs.offcanvas",h),o.modelValue&&r.value.show()}catch(k){l("component-error",{message:"Bootstrap JS not loaded. Offcanvas will use data attributes only.",componentName:"VibeOffcanvas",originalError:k})}}};e.onMounted(m),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.offcanvas",u),i.value.removeEventListener("shown.bs.offcanvas",f),i.value.removeEventListener("hide.bs.offcanvas",c),i.value.removeEventListener("hidden.bs.offcanvas",h)),r.value&&(s.value&&r.value.hide(),r.value.dispose(),r.value=null)}),e.watch(()=>o.modelValue,k=>{r.value&&(k&&!s.value?r.value.show():!k&&s.value&&r.value.hide())}),e.watch([()=>o.placement,()=>o.backdrop,()=>o.scroll],m);const p=()=>r.value?.show(),b=()=>r.value?.hide();return Me(()=>{s.value&&b()}),n({show:p,hide:b,bsInstance:r}),(k,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:t.teleport===!0?"body":t.teleport||void 0,disabled:!t.teleport},[e.createElementVNode("div",{ref_key:"offcanvasRef",ref:i,id:t.id,class:e.normalizeClass(d.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",Ao,[e.createElementVNode("h5",{id:`${t.id}-label`,class:"offcanvas-title"},[e.renderSlot(k.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)],!0)],8,Mo),e.createElementVNode("button",{type:"button",class:"btn-close","aria-label":"Close",onClick:b})]),e.createElementVNode("div",Fo,[e.renderSlot(k.$slots,"default",{},void 0,!0)])],10,zo)],8,["to","disabled"]))}}),[["__scopeId","data-v-f03bd194"]]),Ro=["id","data-bs-autohide","data-bs-delay"],Po={key:0,class:"toast-header"},Io={class:"me-auto"},Oo={class:"toast-body"},jo=["id","data-bs-autohide","data-bs-delay"],qo={key:0,class:"toast-header"},Ho={class:"me-auto"},Wo={class:"toast-body"},Fe=e.defineComponent({__name:"VibeToast",props:{id:{type:String,default:()=>O("toast")},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},teleport:{type:[String,Boolean],default:"body"},placement:{type:String,default:"top-end"},noContainer:{type:Boolean,default:!1}},emits:["update:modelValue","show","shown","hide","hidden","component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=e.ref(!1),d=e.computed(()=>{const y=["toast"];return o.variant&&y.push(`text-bg-${o.variant}`),y.join(" ")}),u=e.computed(()=>{const y=["toast-container","position-fixed","p-3"],v=o.placement;return v.includes("top")&&y.push("top-0"),v.includes("bottom")&&y.push("bottom-0"),v.includes("middle")&&y.push("top-50","start-50","translate-middle"),v.includes("start")&&y.push("start-0"),v.includes("end")&&y.push("end-0"),v.includes("center")&&!v.includes("middle")&&y.push("start-50","translate-middle-x"),y.join(" ")}),f=()=>{s.value=!0,l("show")},c=()=>{l("shown"),l("update:modelValue",!0)},h=()=>{l("hide")},m=()=>{s.value=!1,l("hidden"),l("update:modelValue",!1)},p=async()=>{if(i.value){r.value&&r.value.dispose();try{const v=(await import("bootstrap")).Toast;r.value=new v(i.value,{autohide:o.autohide,delay:o.delay}),i.value.addEventListener("show.bs.toast",f),i.value.addEventListener("shown.bs.toast",c),i.value.addEventListener("hide.bs.toast",h),i.value.addEventListener("hidden.bs.toast",m),o.modelValue&&r.value.show()}catch(y){l("component-error",{message:"Bootstrap JS not loaded. Toast will use data attributes only.",componentName:"VibeToast",originalError:y})}}};e.onMounted(p),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("show.bs.toast",f),i.value.removeEventListener("shown.bs.toast",c),i.value.removeEventListener("hide.bs.toast",h),i.value.removeEventListener("hidden.bs.toast",m)),r.value&&(r.value.dispose(),r.value=null)}),e.watch(()=>o.modelValue,y=>{r.value&&(y&&!s.value?r.value.show():!y&&s.value&&r.value.hide())}),e.watch([()=>o.autohide,()=>o.delay],p);const b=()=>r.value?.show(),k=()=>r.value?.hide();return n({show:b,hide:k,bsInstance:r}),(y,v)=>t.noContainer?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"toastRef",ref:i,id:t.id,class:e.normalizeClass(d.value),role:"alert","aria-live":"assertive","aria-atomic":"true","data-bs-autohide":t.autohide,"data-bs-delay":t.delay},[t.title||y.$slots.header?(e.openBlock(),e.createElementBlock("div",Po,[e.renderSlot(y.$slots,"header",{},()=>[e.createElementVNode("strong",Io,e.toDisplayString(t.title),1)]),e.createElementVNode("button",{type:"button",class:"btn-close","aria-label":"Close",onClick:k})])):e.createCommentVNode("",!0),e.createElementVNode("div",Oo,[e.renderSlot(y.$slots,"default")])],10,Ro)):(e.openBlock(),e.createBlock(e.Teleport,{key:1,to:t.teleport===!0?"body":t.teleport||void 0,disabled:!t.teleport},[e.createElementVNode("div",{class:e.normalizeClass(u.value),style:{"z-index":"1090"}},[e.createElementVNode("div",{ref_key:"toastRef",ref:i,id:t.id,class:e.normalizeClass(d.value),role:"alert","aria-live":"assertive","aria-atomic":"true","data-bs-autohide":t.autohide,"data-bs-delay":t.delay},[t.title||y.$slots.header?(e.openBlock(),e.createElementBlock("div",qo,[e.renderSlot(y.$slots,"header",{},()=>[e.createElementVNode("strong",Ho,e.toDisplayString(t.title),1)]),e.createElementVNode("button",{type:"button",class:"btn-close","aria-label":"Close",onClick:k})])):e.createCommentVNode("",!0),e.createElementVNode("div",Wo,[e.renderSlot(y.$slots,"default")])],10,jo)],2)],8,["to","disabled"]))}}),te=e.reactive({toasts:[]});let Re=0;const Uo=()=>(Re+=1,`vibe-toast-${Re}`),ce=(t,n)=>{const a={id:n.id??Uo(),body:t,title:n.title,variant:n.variant,placement:n.placement,autohide:n.autohide,delay:n.delay};return te.toasts.push(a),a},Xo=t=>{const n=te.toasts.findIndex(a=>a.id===t);return n===-1?!1:(te.toasts.splice(n,1),!0)},Lt=()=>{te.toasts.splice(0,te.toasts.length)};function zt(){return{get toasts(){return e.readonly(te.toasts)},show:(t,n={})=>ce(t,n),success:(t,n={})=>ce(t,{...n,variant:"success"}),error:(t,n={})=>ce(t,{...n,variant:"danger"}),warn:(t,n={})=>ce(t,{...n,variant:"warning"}),info:(t,n={})=>ce(t,{...n,variant:"info"}),dismiss:Xo,clear:Lt}}const Go=()=>{Lt(),Re=0},Yo=te,At=e.defineComponent({__name:"VibeToastHost",props:{defaultPlacement:{type:String,default:"top-end"}},setup(t){const n=t,{dismiss:a}=zt(),o=e.computed(()=>{const i=new Map;for(const r of Yo.toasts){const s=r.placement??n.defaultPlacement,d=i.get(s);d?d.push(r):i.set(s,[r])}return Array.from(i.entries()).map(([r,s])=>({placement:r,toasts:s}))}),l=i=>{const r=["toast-container","position-fixed","p-3"];return i.includes("top")&&r.push("top-0"),i.includes("bottom")&&r.push("bottom-0"),i.includes("middle")&&r.push("top-50","start-50","translate-middle"),i.includes("start")&&r.push("start-0"),i.includes("end")&&r.push("end-0"),i.includes("center")&&!i.includes("middle")&&r.push("start-50","translate-middle-x"),r.join(" ")};return(i,r)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>(e.openBlock(),e.createElementBlock("div",{key:s.placement,class:e.normalizeClass(l(s.placement)),style:{"z-index":"1090"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.toasts,d=>(e.openBlock(),e.createBlock(Fe,{key:d.id,"no-container":"","model-value":!0,title:d.title||"",variant:d.variant,placement:s.placement,autohide:d.autohide??!0,delay:d.delay??5e3,onHidden:u=>e.unref(a)(d.id)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.body),1)]),_:2},1032,["title","variant","placement","autohide","delay","onHidden"]))),128))],2))),128))]))}}),Ko=["id","data-bs-ride","data-bs-interval","data-bs-keyboard","data-bs-pause","data-bs-wrap","data-bs-touch"],Jo={key:0,class:"carousel-indicators"},Qo=["data-bs-target","data-bs-slide-to","aria-current","aria-label"],Zo={class:"carousel-inner"},_o=["data-bs-interval"],en=["src","alt"],tn={key:0,class:"carousel-caption d-none d-md-block"},an={key:0},on={key:1},nn=["data-bs-target"],ln=["data-bs-target"],Mt=e.defineComponent({__name:"VibeCarousel",props:{id:{type:String,default:()=>O("carousel")},modelValue:{type:Number,default: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:["update:modelValue","slide","slid","component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=e.ref(o.modelValue),d=e.computed(()=>{const m=["carousel","slide"];return o.dark&&m.push("carousel-dark"),o.fade&&m.push("carousel-fade"),m.join(" ")}),u=m=>{l("slide",m)},f=m=>{s.value=m.to,l("update:modelValue",m.to),l("slid",m)},c=async()=>{if(i.value){r.value&&r.value.dispose();try{const p=(await import("bootstrap")).Carousel;r.value=new p(i.value,{interval:o.interval,keyboard:o.keyboard,pause:o.pause,ride:o.ride===!0?"carousel":o.ride,wrap:o.wrap,touch:o.touch}),i.value.addEventListener("slide.bs.carousel",u),i.value.addEventListener("slid.bs.carousel",f),o.modelValue!==0&&r.value.to(o.modelValue)}catch(m){l("component-error",{message:"Bootstrap JS not loaded. Carousel will use data attributes only.",componentName:"VibeCarousel",originalError:m})}}};e.onMounted(c),e.onBeforeUnmount(()=>{i.value&&(i.value.removeEventListener("slide.bs.carousel",u),i.value.removeEventListener("slid.bs.carousel",f)),r.value&&(r.value.dispose(),r.value=null)}),e.watch(()=>o.modelValue,m=>{r.value&&m!==s.value&&r.value.to(m)}),e.watch(()=>o.items,async()=>{await e.nextTick(),await c()},{deep:!0});const h=(m,p)=>m.alt?m.alt:m.caption?m.caption:m.captionText?m.captionText:`Carousel slide ${p+1}`;return n({bsInstance:r,refresh:c}),(m,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"carouselRef",ref:i,id:t.id,class:e.normalizeClass(d.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",Jo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(b,k)=>(e.openBlock(),e.createElementBlock("button",{key:`indicator-${k}`,type:"button","data-bs-target":`#${t.id}`,"data-bs-slide-to":k,class:e.normalizeClass({active:k===s.value}),"aria-current":k===s.value,"aria-label":`Slide ${k+1}`},null,10,Qo))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",Zo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(b,k)=>(e.openBlock(),e.createElementBlock("div",{key:`slide-${k}`,class:e.normalizeClass(["carousel-item",{active:k===s.value}]),"data-bs-interval":b.interval},[e.createElementVNode("img",{src:b.src,alt:h(b,k),class:"d-block w-100"},null,8,en),b.caption||b.captionText||m.$slots.caption?(e.openBlock(),e.createElementBlock("div",tn,[e.renderSlot(m.$slots,"caption",{item:b,index:k},()=>[b.caption?(e.openBlock(),e.createElementBlock("h5",an,e.toDisplayString(b.caption),1)):e.createCommentVNode("",!0),b.captionText?(e.openBlock(),e.createElementBlock("p",on,e.toDisplayString(b.captionText),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)],10,_o))),128))]),t.controls?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:"carousel-control-prev",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"prev"},[...p[0]||(p[0]=[e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Previous",-1)])],8,nn),e.createElementVNode("button",{class:"carousel-control-next",type:"button","data-bs-target":`#${t.id}`,"data-bs-slide":"next"},[...p[1]||(p[1]=[e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"visually-hidden"},"Next",-1)])],8,ln)],64)):e.createCommentVNode("",!0)],10,Ko))}}),rn=["data-bs-placement","data-bs-title","data-bs-trigger","data-bs-html"],Ft=e.defineComponent({__name:"VibeTooltip",props:{content:{type:String,default:void 0},text:{type:String,default:void 0},placement:{type:String,default:"top"},trigger:{type:String,default:"hover focus"},html:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=()=>typeof window<"u"&&("ontouchstart"in window||navigator.maxTouchPoints>0),d=e.computed(()=>s()&&o.trigger==="hover focus"?"click":o.trigger),u=async()=>{if(i.value){r.value&&r.value.dispose();try{const c=(await import("bootstrap")).Tooltip;r.value=new c(i.value,{title:o.text||o.content||"",placement:o.placement,trigger:d.value,html:o.html})}catch(f){l("component-error",{message:"Bootstrap JS not loaded. Tooltip will use data attributes only.",componentName:"VibeTooltip",originalError:f})}}};return e.onMounted(u),e.onBeforeUnmount(()=>{r.value&&(r.value.dispose(),r.value=null)}),e.watch([()=>o.content,()=>o.text],()=>{r.value&&r.value.setContent({".tooltip-inner":o.text||o.content||""})}),e.watch([()=>o.placement,()=>o.trigger,()=>o.html],u),n({bsInstance:r}),(f,c)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"tooltipRef",ref:i,"data-bs-toggle":"tooltip","data-bs-placement":t.placement,"data-bs-title":t.text||t.content,"data-bs-trigger":t.trigger,"data-bs-html":t.html},[e.renderSlot(f.$slots,"default")],8,rn))}}),sn=["data-bs-placement","data-bs-title","data-bs-content","data-bs-trigger","data-bs-html"],Rt=e.defineComponent({__name:"VibePopover",props:{title:{type:String,default:void 0},content:{type:String,default:void 0},text:{type:String,default:void 0},placement:{type:String,default:"top"},trigger:{type:String,default:"click"},html:{type:Boolean,default:!1}},emits:["component-error"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=()=>typeof window<"u"&&("ontouchstart"in window||navigator.maxTouchPoints>0),d=e.computed(()=>s()&&o.trigger==="hover focus"?"click":o.trigger),u=async()=>{if(i.value){r.value&&r.value.dispose();try{const c=(await import("bootstrap")).Popover;r.value=new c(i.value,{title:o.title,content:o.text||o.content||"",placement:o.placement,trigger:d.value,html:o.html})}catch(f){l("component-error",{message:"Bootstrap JS not loaded. Popover will use data attributes only.",componentName:"VibePopover",originalError:f})}}};return e.onMounted(u),e.onBeforeUnmount(()=>{r.value&&(r.value.dispose(),r.value=null)}),e.watch([()=>o.content,()=>o.text,()=>o.title],()=>{r.value&&r.value.setContent({".popover-header":o.title||"",".popover-body":o.text||o.content||""})}),e.watch([()=>o.placement,()=>o.trigger,()=>o.html],u),n({bsInstance:r}),(f,c)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"popoverRef",ref:i,"data-bs-toggle":"popover","data-bs-placement":t.placement,"data-bs-title":t.title,"data-bs-content":t.text||t.content,"data-bs-trigger":t.trigger,"data-bs-html":t.html},[e.renderSlot(f.$slots,"default")],8,sn))}}),Pt=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,{expose:n,emit:a}){const o=t,l=a,i=e.ref(null),r=e.ref(null),s=u=>{l("activate",u)};return e.onMounted(async()=>{if(i.value)try{const f=(await import("bootstrap")).ScrollSpy;r.value=new f(i.value,{target:o.target,offset:o.offset,method:o.method,smoothScroll:o.smoothScroll}),i.value.addEventListener("activate.bs.scrollspy",s)}catch(u){l("component-error",{message:"Bootstrap JS not loaded. ScrollSpy will use data attributes only.",componentName:"VibeScrollspy",originalError:u})}}),e.onBeforeUnmount(()=>{i.value&&i.value.removeEventListener("activate.bs.scrollspy",s),r.value&&(r.value.dispose(),r.value=null)}),n({refresh:()=>{r.value&&r.value.refresh()}}),(u,f)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{ref_key:"scrollspyRef",ref:i,"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",style:{position:"relative",height:"100%",overflow:"auto"}},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default")]),_:3},8,["data-bs-target","data-bs-offset","data-bs-method","data-bs-smooth-scroll"]))}}),It=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:n}){const a=t,o=n,l=e.computed(()=>{const s=["bi",`bi-${a.icon}`];return a.size&&(["1x","2x","3x","4x","5x"].includes(a.size)||s.push(`bi-${a.size}`)),a.customClass&&s.push(a.customClass),s.join(" ")}),i=e.computed(()=>{const s={};if(a.fontSize)s.fontSize=a.fontSize;else if(a.size){const u={"1x":"1rem","2x":"2rem","3x":"3rem","4x":"4rem","5x":"5rem"};u[a.size]&&(s.fontSize=u[a.size])}a.color&&(s.color=a.color);const d=[];return a.flipH&&d.push("scaleX(-1)"),a.flipV&&d.push("scaleY(-1)"),a.rotate&&d.push(`rotate(${a.rotate}deg)`),d.length>0&&(s.transform=d.join(" "),s.display="inline-block"),Object.keys(s).length>0?s:void 0}),r=s=>{o("click",s)};return(s,d)=>(e.openBlock(),e.createElementBlock("i",{class:e.normalizeClass(l.value),style:e.normalizeStyle(i.value),"aria-hidden":!0,onClick:r},null,6))}}),dn={class:"vibe-datatable"},cn={class:"row mb-3"},un={key:0,class:"col-md-6 mb-2 mb-md-0"},fn=["placeholder"],mn={key:1,class:"col-md-6"},pn={class:"d-flex justify-content-md-end align-items-center"},bn=["value"],hn=["onClick"],gn={key:0,class:"ms-1"},yn=["onClick"],kn=["data-label"],vn={key:0},Bn=["colspan"],Sn={class:"row"},wn={key:0,class:"col-md-6 mb-2 mb-md-0"},Vn={class:"datatable-info"},Cn={key:1,class:"col-md-6"},En={class:"pagination justify-content-md-end mb-0"},$n={key:0,class:"page-item"},xn={key:1,class:"page-item disabled"},Nn=["onClick"],Dn={key:2,class:"page-item disabled"},Tn={key:3,class:"page-item"},Ot=j(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},stack:{type:Boolean,default:!1},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:n}){const a=t,o=e.useModel(t,"currentPage"),l=e.useModel(t,"perPage"),i=e.useModel(t,"sortBy"),r=e.useModel(t,"sortDesc"),s=n,d=e.ref(""),u=e.ref(null),f=e.ref(""),c=(C,D)=>a.rowKey&&C[a.rowKey]!==void 0?String(C[a.rowKey]):D;e.watch(d,C=>{u.value!==null&&clearTimeout(u.value),u.value=setTimeout(()=>{f.value=C,o.value=1,u.value=null},a.searchDebounce)}),e.onBeforeUnmount(()=>{u.value!==null&&(clearTimeout(u.value),u.value=null)});const h=e.computed(()=>{if(!a.searchable||!f.value)return a.items||[];const C=f.value.toLowerCase();return(a.items||[]).filter(D=>(a.columns||[]).some(x=>{if(x.searchable===!1)return!1;const R=D[x.key];return R==null?!1:String(R).toLowerCase().includes(C)}))}),m=(C,D,x)=>{if(C==null)return 1;if(D==null)return-1;if(typeof C=="string"&&typeof D=="string"){const R=C.toLowerCase(),P=D.toLowerCase();return R<P?x?1:-1:R>P?x?-1:1:0}if(typeof C=="number"&&typeof D=="number")return C<D?x?1:-1:C>D?x?-1:1:0;if(typeof C=="boolean"&&typeof D=="boolean")return C===D?0:(C?1:-1)*(x?-1:1);if(C instanceof Date&&D instanceof Date){const R=C.getTime(),P=D.getTime();return R<P?x?1:-1:R>P?x?-1:1:0}return 0},p=e.computed(()=>{if(!a.sortable||!i.value)return h.value;const C=[...h.value],D=i.value;return C.sort((x,R)=>m(x[D],R[D],r.value)),C}),b=e.computed(()=>{if(!a.paginated)return p.value;const C=(o.value-1)*l.value,D=C+l.value;return p.value.slice(C,D)}),k=e.computed(()=>a.items.length),y=e.computed(()=>h.value.length),v=e.computed(()=>Math.ceil(y.value/l.value)),g=e.computed(()=>y.value===0?0:(o.value-1)*l.value+1),S=e.computed(()=>{const C=o.value*l.value;return Math.min(C,y.value)}),B=e.computed(()=>(y.value!==k.value?a.filteredInfoText:a.infoText).replace("{start}",String(g.value)).replace("{end}",String(S.value)).replace("{total}",String(y.value)).replace("{totalRows}",String(k.value))),N=e.computed(()=>{const C=["table"];return a.striped&&C.push("table-striped"),a.bordered&&C.push("table-bordered"),a.borderless&&C.push("table-borderless"),a.hover&&C.push("table-hover"),a.small&&C.push("table-sm"),a.stack&&C.push("vibe-table-stack"),a.variant&&C.push(`table-${a.variant}`),C.join(" ")}),F=C=>{!a.sortable||C.sortable===!1||(i.value===C.key?r.value=!r.value:(i.value=C.key,r.value=!1))},M=C=>{C<1||C>v.value||(o.value=C)},T=()=>{o.value=1},w=(C,D)=>{s("row-clicked",C,D)},V=(C,D)=>{const x=C[D.key];return D.formatter?D.formatter(x,C):x},z=C=>!a.sortable||C.sortable===!1?"":i.value!==C.key?"⇅":r.value?"↓":"↑",I=C=>{const D={...C.thStyle};return a.sortable&&C.sortable!==!1&&(D.cursor="pointer"),D};return(C,D)=>(e.openBlock(),e.createElementBlock("div",dn,[e.createElementVNode("div",cn,[t.searchable?(e.openBlock(),e.createElementBlock("div",un,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":D[0]||(D[0]=x=>d.value=x),type:"search",class:"form-control",placeholder:t.searchPlaceholder},null,8,fn),[[e.vModelText,d.value]])])):e.createCommentVNode("",!0),t.showPerPage&&t.paginated?(e.openBlock(),e.createElementBlock("div",mn,[e.createElementVNode("div",pn,[D[6]||(D[6]=e.createElementVNode("label",{class:"me-2 mb-0"},"Show",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":D[1]||(D[1]=x=>l.value=x),class:"form-select form-select-sm",style:{width:"auto"},onChange:T},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.perPageOptions,x=>(e.openBlock(),e.createElementBlock("option",{key:x,value:x},e.toDisplayString(x),9,bn))),128))],544),[[e.vModelSelect,l.value,void 0,{number:!0}]]),D[7]||(D[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(N.value)},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,x=>(e.openBlock(),e.createElementBlock("th",{key:x.key,class:e.normalizeClass(x.headerClass),style:e.normalizeStyle(I(x)),onClick:R=>F(x)},[e.createTextVNode(e.toDisplayString(x.label)+" ",1),t.sortable&&x.sortable!==!1?(e.openBlock(),e.createElementBlock("span",gn,e.toDisplayString(z(x)),1)):e.createCommentVNode("",!0)],14,hn))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,(x,R)=>(e.openBlock(),e.createElementBlock("tr",{key:c(x,R),onClick:P=>w(x,R),style:{cursor:"pointer"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,P=>(e.openBlock(),e.createElementBlock("td",{key:P.key,class:e.normalizeClass(P.class),style:e.normalizeStyle(P.tdStyle),"data-label":P.label},[e.renderSlot(C.$slots,`cell(${P.key})`,{item:x,value:x[P.key],index:R},()=>[e.createTextVNode(e.toDisplayString(V(x,P)),1)],!0)],14,kn))),128))],8,yn))),128)),b.value.length===0&&t.showEmpty?(e.openBlock(),e.createElementBlock("tr",vn,[e.createElementVNode("td",{colspan:t.columns?.length||1,class:"text-center"},e.toDisplayString(t.emptyText),9,Bn)])):e.createCommentVNode("",!0)])],2)],2),e.createElementVNode("div",Sn,[t.showInfo?(e.openBlock(),e.createElementBlock("div",wn,[e.createElementVNode("div",Vn,e.toDisplayString(B.value),1)])):e.createCommentVNode("",!0),t.paginated&&v.value>1?(e.openBlock(),e.createElementBlock("div",Cn,[e.createElementVNode("nav",null,[e.createElementVNode("ul",En,[e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:o.value===1}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:D[2]||(D[2]=e.withModifiers(x=>M(o.value-1),["prevent"]))}," Previous ")],2),o.value>3?(e.openBlock(),e.createElementBlock("li",$n,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:D[3]||(D[3]=e.withModifiers(x=>M(1),["prevent"]))},"1")])):e.createCommentVNode("",!0),o.value>4?(e.openBlock(),e.createElementBlock("li",xn,[...D[8]||(D[8]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.from({length:v.value},(x,R)=>R+1).filter(x=>x>=o.value-2&&x<=o.value+2),x=>(e.openBlock(),e.createElementBlock("li",{key:x,class:e.normalizeClass(["page-item",{active:x===o.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:e.withModifiers(R=>M(x),["prevent"])},e.toDisplayString(x),9,Nn)],2))),128)),o.value<v.value-3?(e.openBlock(),e.createElementBlock("li",Dn,[...D[9]||(D[9]=[e.createElementVNode("span",{class:"page-link"},"...",-1)])])):e.createCommentVNode("",!0),o.value<v.value-2?(e.openBlock(),e.createElementBlock("li",Tn,[e.createElementVNode("a",{class:"page-link",href:"#",onClick:D[4]||(D[4]=e.withModifiers(x=>M(v.value),["prevent"]))},e.toDisplayString(v.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["page-item",{disabled:o.value===v.value}])},[e.createElementVNode("a",{class:"page-link",href:"#",onClick:D[5]||(D[5]=e.withModifiers(x=>M(o.value+1),["prevent"]))}," Next ")],2)])])])):e.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-3d846265"]]),Ln=["for"],zn={key:0,class:"text-danger"},An=["id","type","value","placeholder","disabled","readonly","required","aria-invalid","aria-describedby"],Mn=["id"],Fn={key:0,class:"valid-feedback",style:{display:"block"}},Rn=["id"],Pn=["id","type","value","placeholder","disabled","readonly","required","aria-invalid"],jt=e.defineComponent({__name:"VibeFormInput",props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},id:{type:String,default:void 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},noWrapper:{type:Boolean,default:!1},focusRing:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||O("input")),r=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),d=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),u=e.computed(()=>{const p=[];return a.plaintext?p.push("form-control-plaintext"):(p.push("form-control"),a.size&&p.push(`form-control-${a.size}`)),a.validationState==="valid"&&p.push("is-valid"),a.validationState==="invalid"&&p.push("is-invalid"),a.focusRing&&p.push("focus-ring"),p.join(" ")}),f=p=>{const b=p.target,k=a.type==="number"?b.value===""?"":Number(b.value):b.value;o("update:modelValue",k),o("input",p),a.validateOn==="input"&&o("validate")},c=p=>{o("change",p),a.validateOn==="change"&&o("validate")},h=p=>{o("blur",p),a.validateOn==="blur"&&o("validate")},m=p=>{o("focus",p)};return(p,b)=>t.noWrapper?(e.openBlock(),e.createElementBlock("input",{key:1,id:i.value,type:t.type,class:e.normalizeClass(u.value),value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly||t.plaintext,required:t.required,"aria-invalid":t.validationState==="invalid",onInput:f,onChange:c,onBlur:h,onFocus:m},null,42,Pn)):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass({"mb-3":r.value||d.value||s.value})},[r.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",zn,"*")):e.createCommentVNode("",!0)],8,Ln)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:i.value,type:t.type,class:e.normalizeClass(u.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?`${i.value}-feedback`:void 0,onInput:f,onChange:c,onBlur:h,onFocus:m},null,42,An),d.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Mn)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Fn,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,Rn)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),In=["for"],On={key:0,class:"text-danger"},jn=["id","value","multiple","size","disabled","required","aria-invalid","aria-describedby"],qn={key:0,value:"",disabled:"",selected:""},Hn=["value","disabled"],Wn=["id"],Un={key:0,class:"valid-feedback",style:{display:"block"}},Xn=["id"],Pe="",Ie="vi:",qt=e.defineComponent({__name:"VibeFormSelect",props:{modelValue:{type:[String,Number,Array],default:""},id:{type:String,default:void 0},label:{type:String,default:void 0},options:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!1},selectSize:{type:Number,default:void 0},htmlSize:{type:Number,default:void 0},placeholder:{type:String,default:void 0},disabled:{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:"change"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:n}){const a=g=>`${Ie}${g}`,o=g=>{if(!g.startsWith(Ie))return-1;const S=Number(g.slice(Ie.length));return Number.isInteger(S)&&S>=0?S:-1},l=(g,S)=>{for(let B=0;B<g.length;B++)if(Object.is(g[B].value,S))return B;return-1},i=t,r=n,s=e.inject("vibeFormGroup",null),d=e.computed(()=>i.id||s?.consumeId()||O("select")),u=e.computed(()=>!!i.label&&!s?.hasLabel.value),f=e.computed(()=>!!i.validationState&&!s?.hasValidation.value),c=e.computed(()=>!!i.helpText&&!s?.hasHelp.value),h=e.computed(()=>{const g=["form-select"];return i.size&&g.push(`form-select-${i.size}`),i.validationState==="valid"&&g.push("is-valid"),i.validationState==="invalid"&&g.push("is-invalid"),g.join(" ")}),m=g=>{const S=o(g);return S>=0&&S<i.options.length?i.options[S].value:""},p=g=>{const S=g.target;let B;i.multiple?B=Array.from(S.selectedOptions).map(N=>m(N.value)):B=m(S.value),r("update:modelValue",B)},b=e.computed(()=>{if(Array.isArray(i.modelValue))return i.modelValue.map(S=>{const B=l(i.options,S);return B>=0?a(B):Pe}).filter(S=>S!==Pe);const g=l(i.options,i.modelValue);return g>=0?a(g):Pe}),k=g=>{r("change",g),i.validateOn==="change"&&r("validate")},y=g=>{r("blur",g),i.validateOn==="blur"&&r("validate")},v=g=>{r("focus",g)};return(g,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":u.value||c.value||f.value})},[u.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:d.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",On,"*")):e.createCommentVNode("",!0)],8,In)):e.createCommentVNode("",!0),e.createElementVNode("select",{id:d.value,class:e.normalizeClass(h.value),value:b.value,multiple:t.multiple,size:t.htmlSize||t.selectSize,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${d.value}-feedback`:void 0,onInput:p,onChange:k,onBlur:y,onFocus:v},[t.placeholder&&!t.multiple?(e.openBlock(),e.createElementBlock("option",qn,e.toDisplayString(t.placeholder),1)):e.createCommentVNode("",!0),e.renderSlot(g.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,(B,N)=>(e.openBlock(),e.createElementBlock("option",{key:N,value:a(N),disabled:B.disabled},e.toDisplayString(B.text),9,Hn))),128))])],42,jn),c.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${d.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Wn)):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Un,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${d.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select an option."),9,Xn)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),Gn=["for"],Yn={key:0,class:"text-danger"},Kn=["id","value","placeholder","rows","maxlength","disabled","readonly","required","aria-invalid","aria-describedby"],Jn=["id"],Qn={key:0,class:"ms-auto"},Zn={key:0,class:"valid-feedback",style:{display:"block"}},_n=["id"],Ht=e.defineComponent({__name:"VibeFormTextarea",props:{modelValue:{type:String,default:""},id:{type:String,default:void 0},label:{type:String,default:void 0},placeholder:{type:String,default:void 0},rows:{type:[Number,String],default:3},maxlength:{type:[Number,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},noResize:{type:Boolean,default:!1},showCharCount:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","input","change"],setup(t,{emit:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||O("textarea")),r=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),d=e.computed(()=>(!!a.helpText||a.showCharCount)&&!l?.hasHelp.value),u=e.computed(()=>{const k=["form-control"];return a.size&&k.push(`form-control-${a.size}`),a.validationState==="valid"&&k.push("is-valid"),a.validationState==="invalid"&&k.push("is-invalid"),k.join(" ")}),f=e.computed(()=>{if(a.noResize)return{resize:"none"}}),c=e.computed(()=>a.modelValue?.length||0),h=k=>{const y=k.target;o("update:modelValue",y.value),o("input",k),a.validateOn==="input"&&o("validate")},m=k=>{o("change",k),a.validateOn==="change"&&o("validate")},p=k=>{o("blur",k),a.validateOn==="blur"&&o("validate")},b=k=>{o("focus",k)};return(k,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":r.value||d.value||s.value})},[r.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Yn,"*")):e.createCommentVNode("",!0)],8,Gn)):e.createCommentVNode("",!0),e.createElementVNode("textarea",{id:i.value,class:e.normalizeClass(u.value),style:e.normalizeStyle(f.value),value:t.modelValue,placeholder:t.placeholder,rows:t.rows,maxlength:t.maxlength,disabled:t.disabled,readonly:t.readonly,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText||t.showCharCount?`${i.value}-feedback`:void 0,onInput:h,onChange:m,onBlur:p,onFocus:b},null,46,Kn),d.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text d-flex justify-content-between"},[e.createElementVNode("span",null,e.toDisplayString(t.helpText),1),t.showCharCount?(e.openBlock(),e.createElementBlock("span",Qn,[t.maxlength?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(c.value)+" / "+e.toDisplayString(t.maxlength),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.value),1)],64))])):e.createCommentVNode("",!0)],8,Jn)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Zn,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,_n)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),el=["for"],tl={key:0,class:"text-danger"},al=["disabled"],ol=["id","value","disabled","readonly","required","min","max","step","aria-invalid","aria-describedby"],nl=["disabled"],ll=["id"],il={key:0,class:"valid-feedback",style:{display:"block"}},rl=["id"],Wt=j(e.defineComponent({__name:"VibeFormSpinbutton",props:{modelValue:{type:Number,default:0,validator:t=>!0},id:{type:String,default:void 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:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||O("spinbutton")),r=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),d=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),u=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(" ")}),f=e.computed(()=>{const g=["input-group"];return a.size&&g.push(`input-group-${a.size}`),a.vertical&&g.push("input-group-vertical"),g.join(" ")}),c=e.computed(()=>a.disabled||a.readonly?!1:a.min===void 0||a.wrap?!0:a.modelValue>a.min),h=e.computed(()=>a.disabled||a.readonly?!1:a.max===void 0||a.wrap?!0:a.modelValue<a.max),m=g=>{const S=g.target;let B=S.value===""?0:Number(S.value);a.min!==void 0&&B<a.min&&(B=a.min),a.max!==void 0&&B>a.max&&(B=a.max),o("update:modelValue",B),o("input",g),a.validateOn==="input"&&o("validate")},p=g=>{o("change",g),a.validateOn==="change"&&o("validate")},b=g=>{o("blur",g),a.validateOn==="blur"&&o("validate")},k=g=>{o("focus",g)},y=()=>{if(!h.value)return;let g=a.modelValue+a.step;a.max!==void 0&&g>a.max&&(g=a.wrap?a.min??0:a.max),o("update:modelValue",g),o("increment",g),a.validateOn==="change"&&o("validate")},v=()=>{if(!c.value)return;let g=a.modelValue-a.step;a.min!==void 0&&g<a.min&&(g=a.wrap?a.max??0:a.min),o("update:modelValue",g),o("decrement",g),a.validateOn==="change"&&o("validate")};return(g,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":r.value||d.value||s.value})},[r.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",tl,"*")):e.createCommentVNode("",!0)],8,el)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(f.value)},[e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!c.value,onClick:v,"aria-label":"Decrement"},[...S[0]||(S[0]=[e.createElementVNode("span",{"aria-hidden":"true"},"−",-1)])],8,al),e.createElementVNode("input",{id:i.value,type:"number",class:e.normalizeClass(u.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?`${i.value}-feedback`:void 0,onInput:m,onChange:p,onBlur:b,onFocus:k},null,42,ol),e.createElementVNode("button",{class:"btn btn-outline-secondary",type:"button",disabled:!h.value,onClick:y,"aria-label":"Increment"},[...S[1]||(S[1]=[e.createElementVNode("span",{"aria-hidden":"true"},"+",-1)])],8,nl)],2),d.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,ll)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",il,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,rl)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-49746a62"]]),sl=["for"],dl={key:0,class:"text-danger"},cl=["id","type","value","disabled","readonly","required","min","max","aria-invalid","aria-describedby"],ul=["id"],fl={key:0,class:"valid-feedback",style:{display:"block"}},ml=["id"],Ut=e.defineComponent({__name:"VibeFormDatepicker",props:{modelValue:{type:String,default:"",validator:t=>!0},id:{type:String,default:void 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:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||O("datepicker")),r=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),d=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),u=e.computed(()=>{const p=["form-control"];return a.size&&p.push(`form-control-${a.size}`),a.validationState==="valid"&&p.push("is-valid"),a.validationState==="invalid"&&p.push("is-invalid"),p.join(" ")}),f=p=>{const b=p.target;o("update:modelValue",b.value),o("input",p),a.validateOn==="input"&&o("validate")},c=p=>{o("change",p),a.validateOn==="change"&&o("validate")},h=p=>{o("blur",p),a.validateOn==="blur"&&o("validate")},m=p=>{o("focus",p)};return(p,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":r.value||d.value||s.value})},[r.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,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),e.createElementVNode("input",{id:i.value,type:t.type,class:e.normalizeClass(u.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?`${i.value}-feedback`:void 0,onInput:f,onChange:c,onBlur:h,onFocus:m},null,42,cl),d.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,ul)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",fl,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid date."),9,ml)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),pl={class:"vibe-file-input"},bl=["for"],hl={class:"mb-0"},gl=["id","multiple","accept","disabled"],yl={key:2,class:"form-text"},Xt=j(e.defineComponent({__name:"VibeFileInput",props:{modelValue:{type:Array,default:()=>[]},id:{type:String,default:void 0},label:{type:String,default:void 0},multiple:{type:Boolean,default:!1},accept:{type:String,default:void 0},maxSize:{type:Number,default:void 0},dragDrop:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{type:String,default:void 0},helpText:{type:String,default:void 0},dropzoneText:{type:String,default:"Drag files here or click to browse"}},emits:["update:modelValue","change","invalid"],setup(t,{emit:n}){const a=t,o=n,l=e.computed(()=>a.id||O("file-input")),i=e.ref(!1),r=e.ref(null),s=e.computed(()=>{const g=["form-control"];return a.size&&g.push(`form-control-${a.size}`),g.join(" ")}),d=(g,S)=>{const B=S.split(",").map(M=>M.trim().toLowerCase()).filter(Boolean);if(B.length===0)return!0;const N=g.type.toLowerCase(),F=g.name.toLowerCase();for(const M of B){if(M.startsWith(".")){if(F.endsWith(M))return!0;continue}if(M.endsWith("/*")){const T=M.slice(0,M.length-1);if(N.startsWith(T))return!0;continue}if(N===M)return!0}return!1},u=g=>{const S=[],B=[];for(const N of g){if(a.maxSize!==void 0&&N.size>a.maxSize){B.push(N);continue}if(a.accept&&!d(N,a.accept)){B.push(N);continue}S.push(N)}return{accepted:S,rejected:B}},f=g=>{const{accepted:S,rejected:B}=u(g);o("update:modelValue",S),o("change",S),B.length>0&&o("invalid",B)},c=g=>{const S=g.target,B=S.files?Array.from(S.files):[];f(B),S.value=""},h=g=>{if(g.preventDefault(),i.value=!1,a.disabled)return;const S=g.dataTransfer?.files?Array.from(g.dataTransfer.files):[];f(S)},m=g=>{g.preventDefault(),a.disabled||(i.value=!0)},p=g=>{g.preventDefault()},b=g=>{g.preventDefault(),i.value=!1},k=()=>{a.disabled||r.value?.click()},y=e.computed(()=>{const g=["vibe-file-input-dropzone"];return i.value&&g.push("vibe-file-input-dropzone-active"),a.disabled&&g.push("vibe-file-input-dropzone-disabled"),g.join(" ")}),v=()=>{i.value=!1};return e.onMounted(()=>{typeof document>"u"||(document.addEventListener("dragend",v),document.addEventListener("drop",v))}),e.onBeforeUnmount(()=>{typeof document>"u"||(document.removeEventListener("dragend",v),document.removeEventListener("drop",v))}),(g,S)=>(e.openBlock(),e.createElementBlock("div",pl,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:l.value,class:"form-label"},e.toDisplayString(t.label),9,bl)):e.createCommentVNode("",!0),t.dragDrop?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(y.value),onDrop:h,onDragenter:m,onDragover:p,onDragleave:b,onClick:k},[e.renderSlot(g.$slots,"dropzone",{},()=>[e.createElementVNode("p",hl,e.toDisplayString(t.dropzoneText),1)],!0)],34)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:l.value,ref_key:"inputRef",ref:r,type:"file",class:e.normalizeClass(t.dragDrop?"":s.value),multiple:t.multiple,accept:t.accept,disabled:t.disabled,style:e.normalizeStyle(t.dragDrop?"display: none":void 0),onChange:c},null,46,gl),t.helpText?(e.openBlock(),e.createElementBlock("div",yl,e.toDisplayString(t.helpText),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-258bd632"]]),kl=["aria-valuemin","aria-valuemax","aria-valuenow","aria-disabled"],vl=["aria-valuemin","aria-valuemax","aria-valuenow","aria-disabled"],Gt=j(e.defineComponent({__name:"VibeSlider",props:{modelValue:{type:[Number,Array],default:0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:n}){const a=t,o=n,l=e.ref(null),i=e.ref(null);e.onMounted(()=>{const T=a.range,w=Array.isArray(a.modelValue);T&&!w?console.warn("[VibeSlider] range=true expects modelValue as [low, high] tuple; received non-array. Slider will be inert."):!T&&w&&console.warn("[VibeSlider] range=false expects modelValue as a number; received array. Use range=true for tuple model."),a.max<=a.min&&console.warn(`[VibeSlider] max (${a.max}) must be greater than min (${a.min}). Slider is rendered but inert.`)});const r=e.computed(()=>Math.max(0,a.max-a.min)),s=T=>Math.min(a.max,Math.max(a.min,T)),d=T=>{if(r.value===0||a.step<=0)return s(T);const w=Math.round((T-a.min)/a.step)*a.step+a.min;return s(w)},u=e.computed(()=>Array.isArray(a.modelValue)?s(a.modelValue[0]):s(a.modelValue)),f=e.computed(()=>Array.isArray(a.modelValue)?s(a.modelValue[1]):s(a.modelValue)),c=T=>r.value===0?0:(T-a.min)/r.value*100,h=e.computed(()=>c(u.value)),m=e.computed(()=>c(f.value)),p=e.computed(()=>{const T=["vibe-slider"];return a.vertical&&T.push("vibe-slider-vertical"),a.disabled&&T.push("vibe-slider-disabled"),a.range&&T.push("vibe-slider-range"),T.join(" ")}),b=e.computed(()=>a.range?a.vertical?{bottom:`${h.value}%`,top:`${100-m.value}%`}:{left:`${h.value}%`,right:`${100-m.value}%`}:a.vertical?{bottom:"0%",top:`${100-h.value}%`}:{left:"0%",right:`${100-h.value}%`}),k=e.computed(()=>a.vertical?{bottom:`${h.value}%`}:{left:`${h.value}%`}),y=e.computed(()=>a.vertical?{bottom:`${m.value}%`}:{left:`${m.value}%`}),v=(T,w)=>{if(a.range&&Array.isArray(a.modelValue)){const[z,I]=a.modelValue,C=d(w);let D,x,R=T;if(T===0?C>I?(D=I,x=C,R=1):(D=C,x=I):C<z?(D=C,x=z,R=0):(D=z,x=C),D===z&&x===I)return;R!==T&&i.value!==null&&(i.value=R);const P=[D,x];o("update:modelValue",P),o("change",P);return}const V=d(w);V!==u.value&&(o("update:modelValue",V),o("change",V))},g=T=>{if(!l.value)return a.min;const w=l.value.getBoundingClientRect(),V=a.vertical?1-(T.clientY-w.top)/w.height:(T.clientX-w.left)/w.width;return a.min+V*(a.max-a.min)},S=T=>{if(a.disabled||T.target.classList.contains("vibe-slider-handle"))return;const V=g(T),z=a.range?Math.abs(V-u.value)<=Math.abs(V-f.value)?0:1:0;v(z,V)},B=(T,w)=>{if(a.disabled)return;const V=T===0?u.value:f.value;let z=V;switch(w.key){case"ArrowRight":case"ArrowUp":z=V+a.step;break;case"ArrowLeft":case"ArrowDown":z=V-a.step;break;case"Home":z=a.min;break;case"End":z=a.max;break;case"PageUp":z=V+a.step*10;break;case"PageDown":z=V-a.step*10;break;default:return}w.preventDefault(),v(T,z)},N=(T,w)=>{a.disabled||!l.value||(i.value=T,w.target.setPointerCapture(w.pointerId))},F=T=>{if(i.value===null||!l.value)return;const w=l.value.getBoundingClientRect(),V=a.vertical?1-(T.clientY-w.top)/w.height:(T.clientX-w.left)/w.width,z=a.min+V*(a.max-a.min);v(i.value,z)},M=T=>{i.value!==null&&(T.target.releasePointerCapture?.(T.pointerId),i.value=null)};return(T,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(p.value)},[e.createElementVNode("div",{class:"vibe-slider-track",ref_key:"trackRef",ref:l,onPointerdown:S},[e.createElementVNode("div",{class:"vibe-slider-fill",style:e.normalizeStyle(b.value)},null,4),e.createElementVNode("div",{class:"vibe-slider-handle",role:"slider",tabindex:"0","aria-valuemin":t.min,"aria-valuemax":t.max,"aria-valuenow":u.value,"aria-disabled":t.disabled||void 0,style:e.normalizeStyle(k.value),onKeydown:w[0]||(w[0]=V=>B(0,V)),onPointerdown:w[1]||(w[1]=V=>N(0,V)),onPointermove:F,onPointerup:M},null,44,kl),t.range?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vibe-slider-handle",role:"slider",tabindex:"0","aria-valuemin":t.min,"aria-valuemax":t.max,"aria-valuenow":f.value,"aria-disabled":t.disabled||void 0,style:e.normalizeStyle(y.value),onKeydown:w[2]||(w[2]=V=>B(1,V)),onPointerdown:w[3]||(w[3]=V=>N(1,V)),onPointermove:F,onPointerup:M},null,44,vl)):e.createCommentVNode("",!0)],544)],2))}}),[["__scopeId","data-v-5b520fda"]]),Bl={class:"vibe-stepper-header"},Sl=["tabindex","aria-disabled","onClick"],wl={class:"vibe-stepper-marker"},Vl={class:"vibe-stepper-label"},Cl={key:0,class:"vibe-stepper-description"},El={class:"vibe-stepper-body"},$l={class:"vibe-stepper-actions"},xl=["disabled"],Yt=j(e.defineComponent({__name:"VibeStepper",props:{modelValue:{type:Number,default:0},steps:{type:Array,required:!0},linear:{type:Boolean,default:!0},vertical:{type:Boolean,default:!1},beforeNext:{type:Function,default:void 0},beforePrev:{type:Function,default:void 0},nextText:{type:String,default:"Next"},prevText:{type:String,default:"Back"},finishText:{type:String,default:"Finish"}},emits:["update:modelValue","finish"],setup(t,{emit:n}){const a=t,o=n,l=e.computed(()=>{const b=["vibe-stepper"];return a.vertical&&b.push("vibe-stepper-vertical"),b.join(" ")}),i=e.ref(!1),r=e.computed(()=>a.modelValue>=a.steps.length-1),s=e.computed(()=>a.modelValue<=0),d=b=>{const k=["vibe-stepper-step"];return b===a.modelValue&&k.push("vibe-stepper-active"),b<a.modelValue&&k.push("vibe-stepper-completed"),a.steps[b]?.disabled&&k.push("vibe-stepper-disabled"),a.linear&&b>a.modelValue&&k.push("vibe-stepper-locked"),k.join(" ")},u=b=>a.steps[b]?.disabled?!1:a.linear?b<=a.modelValue:!0,f=async(b,k)=>{if(!b)return!0;const y=b(a.modelValue,k);return y instanceof Promise?await y:y},c=async()=>{if(!i.value){if(r.value){o("finish");return}i.value=!0;try{if(!await f(a.beforeNext,"next"))return;o("update:modelValue",a.modelValue+1)}finally{i.value=!1}}},h=async()=>{if(!i.value&&!s.value){i.value=!0;try{if(!await f(a.beforePrev,"prev"))return;o("update:modelValue",a.modelValue-1)}finally{i.value=!1}}},m=async b=>{if(!i.value&&u(b)&&b!==a.modelValue){i.value=!0;try{const k=b>a.modelValue?"next":"prev",y=k==="next"?a.beforeNext:a.beforePrev;if(!await f(y,k))return;o("update:modelValue",b)}finally{i.value=!1}}},p=e.computed(()=>a.steps[a.modelValue]);return(b,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.createElementVNode("ol",Bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.steps,(y,v)=>(e.openBlock(),e.createElementBlock("li",{key:v,class:e.normalizeClass(d(v)),tabindex:u(v)||v===t.modelValue?0:-1,"aria-disabled":u(v)||v===t.modelValue?void 0:"true",onClick:g=>m(v)},[e.createElementVNode("span",wl,[e.renderSlot(b.$slots,"marker",{index:v,step:y,active:v===t.modelValue},()=>[e.createTextVNode(e.toDisplayString(v+1),1)],!0)]),e.createElementVNode("span",Vl,[e.renderSlot(b.$slots,"label",{index:v,step:y},()=>[e.createTextVNode(e.toDisplayString(y.label),1)],!0),y.description?(e.openBlock(),e.createElementBlock("small",Cl,e.toDisplayString(y.description),1)):e.createCommentVNode("",!0)])],10,Sl))),128))]),e.createElementVNode("div",El,[e.renderSlot(b.$slots,"step",{index:t.modelValue,step:p.value},void 0,!0)]),e.createElementVNode("div",$l,[e.renderSlot(b.$slots,"actions",{next:c,prev:h,isFirst:s.value,isLast:r.value},()=>[e.createElementVNode("button",{type:"button",class:"btn btn-secondary",disabled:s.value,"data-stepper-prev":"",onClick:h},e.toDisplayString(t.prevText),9,xl),e.createElementVNode("button",{type:"button",class:"btn btn-primary","data-stepper-next":"",onClick:c},e.toDisplayString(r.value?t.finishText:t.nextText),1)],!0)])],2))}}),[["__scopeId","data-v-c693b42b"]]),Nl=["for"],Dl=["id","value","placeholder","disabled","aria-expanded"],Tl={key:1,class:"vibe-autocomplete-menu",role:"listbox"},Ll=["aria-selected","onMouseenter","onMousedown"],zl={key:2,class:"vibe-autocomplete-empty"},Kt=j(e.defineComponent({__name:"VibeAutocomplete",props:{modelValue:{type:String,default:""},source:{type:[Array,Function],required:!0},minChars:{type:Number,default:1},debounce:{type:Number,default:200},placeholder:{type:String,default:""},label:{type:String,default:void 0},id:{type:String,default:void 0},disabled:{type:Boolean,default:!1},itemText:{type:Function,default:void 0},maxResults:{type:Number,default:10}},emits:["update:modelValue","select"],setup(t,{emit:n}){const a=t,o=n,l=e.computed(()=>a.id||O("autocomplete")),i=e.ref(a.modelValue),r=e.ref([]),s=e.ref(-1),d=e.ref(!1),u=e.ref(null),f=e.ref(null);let c=0;e.watch(()=>a.modelValue,w=>{w!==i.value&&(i.value=w)});const h=w=>a.itemText?a.itemText(w):typeof w=="string"?w:String(w),m=(w,V)=>{const z=V.toLowerCase();return w.filter(I=>h(I).toLowerCase().includes(z)).slice(0,a.maxResults)},p=()=>{if(s.value<0)return null;const w=r.value[s.value];return w===void 0?null:h(w)},b=w=>{if(w===null){s.value=-1;return}const V=r.value.findIndex(z=>h(z)===w);s.value=V},k=async w=>{const V=p();if(typeof a.source=="function"){c+=1;const z=c,I=await a.source(w);if(z!==c)return;r.value=I.slice(0,a.maxResults)}else c+=1,r.value=m(a.source,w);b(V),d.value=!0},y=()=>{c+=1},v=w=>{if(u.value!==null&&clearTimeout(u.value),a.debounce<=0){k(w);return}u.value=setTimeout(()=>{k(w),u.value=null},a.debounce)},g=w=>{const V=w.target;if(i.value=V.value,o("update:modelValue",V.value),V.value.length<a.minChars){y(),r.value=[],d.value=!1;return}v(V.value)},S=()=>{i.value.length>=a.minChars&&k(i.value)},B=()=>{y(),d.value=!1,s.value=-1},N=w=>{i.value=h(w),o("update:modelValue",i.value),o("select",w),B()},F=w=>{if(!a.disabled)if(w.key==="ArrowDown"){if(w.preventDefault(),!d.value){k(i.value);return}s.value=Math.min(r.value.length-1,s.value+1)}else w.key==="ArrowUp"?(w.preventDefault(),s.value=Math.max(0,s.value-1)):w.key==="Enter"?s.value>=0&&r.value[s.value]&&(w.preventDefault(),N(r.value[s.value])):w.key==="Escape"&&(w.preventDefault(),B())},M=w=>{if(!d.value)return;const V=f.value;V&&w.target instanceof Node&&V.contains(w.target)||B()};e.watch(d,w=>{typeof document>"u"||(w?document.addEventListener("mousedown",M):document.removeEventListener("mousedown",M))}),e.onBeforeUnmount(()=>{u.value!==null&&clearTimeout(u.value),typeof document<"u"&&document.removeEventListener("mousedown",M)});const T=e.computed(()=>d.value&&i.value.length>=a.minChars&&r.value.length===0);return(w,V)=>(e.openBlock(),e.createElementBlock("div",{class:"vibe-autocomplete",ref_key:"rootRef",ref:f},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:l.value,class:"form-label"},e.toDisplayString(t.label),9,Nl)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:l.value,class:"form-control",type:"text",autocomplete:"off",value:i.value,placeholder:t.placeholder,disabled:t.disabled,"aria-expanded":d.value,"aria-autocomplete":"list",role:"combobox",onInput:g,onFocus:S,onKeydown:F},null,40,Dl),d.value&&r.value.length>0?(e.openBlock(),e.createElementBlock("ul",Tl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(z,I)=>(e.openBlock(),e.createElementBlock("li",{key:I,class:e.normalizeClass(["vibe-autocomplete-item",I===s.value?"vibe-autocomplete-item-highlighted":""]),role:"option","aria-selected":I===s.value,onMouseenter:C=>s.value=I,onMousedown:e.withModifiers(C=>N(z),["prevent"])},[e.renderSlot(w.$slots,"item",{item:z,index:I,label:h(z)},()=>[e.createTextVNode(e.toDisplayString(h(z)),1)],!0)],42,Ll))),128))])):T.value?(e.openBlock(),e.createElementBlock("div",zl,[e.renderSlot(w.$slots,"empty",{},()=>[V[0]||(V[0]=e.createTextVNode("No results",-1))],!0)])):e.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-ccd7df7d"]]),Jt=j(e.defineComponent({__name:"VibeSortable",props:{modelValue:{type:Array,required:!0},disabled:{type:Boolean,default:!1},tag:{type:String,default:"div"},itemTag:{type:String,default:"div"}},emits:["update:modelValue","reorder"],setup(t,{emit:n}){const a=t,o=n,l=e.ref(null),i=(u,f)=>{if(a.disabled){u.preventDefault();return}l.value=f,u.dataTransfer&&(u.dataTransfer.effectAllowed="move",u.dataTransfer.setData("text/plain",String(f)))},r=u=>{a.disabled||l.value===null||(u.preventDefault(),u.dataTransfer&&(u.dataTransfer.dropEffect="move"))},s=(u,f)=>{if(a.disabled)return;u.preventDefault();const c=l.value;if(l.value=null,c===null||c===f)return;const h=[...a.modelValue],[m]=h.splice(c,1);h.splice(f,0,m),o("update:modelValue",h),o("reorder",{from:c,to:f,item:m})},d=()=>{l.value=null};return(u,f)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:"vibe-sortable"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.modelValue,(c,h)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.itemTag),{key:h,class:e.normalizeClass(["vibe-sortable-item",{"vibe-sortable-dragging":l.value===h}]),draggable:!t.disabled,"data-vibe-sortable-item":"",onDragstart:m=>i(m,h),onDragover:r,onDrop:m=>s(m,h),onDragend:d},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default",{item:c,index:h},void 0,!0)]),_:2},1064,["class","draggable","onDragstart","onDrop"]))),128))]),_:3}))}}),[["__scopeId","data-v-651679ac"]]),W={payload:void 0,group:"",active:!1};let pe=!1;const be=()=>{W.payload=void 0,W.group="",W.active=!1,Qt()},Al=()=>{pe||typeof document>"u"||(pe=!0,document.addEventListener("dragend",be),document.addEventListener("drop",be))},Qt=()=>{!pe||typeof document>"u"||(pe=!1,document.removeEventListener("dragend",be),document.removeEventListener("drop",be))},Ml=(t,n)=>{W.payload=t,W.group=n,W.active=!0,Al()},Fl=()=>{W.payload=void 0,W.group="",W.active=!1,Qt()},Rl=()=>W.active?{payload:W.payload,group:W.group}:null,Zt=j(e.defineComponent({__name:"VibeDraggable",props:{payload:{type:null,default:void 0},group:{type:String,default:"default"},disabled:{type:Boolean,default:!1},tag:{type:String,default:"div"}},emits:["dragstart","dragend"],setup(t,{emit:n}){const a=t,o=n,l=e.ref(!1),i=s=>{if(a.disabled){s.preventDefault();return}l.value=!0,Ml(a.payload,a.group),s.dataTransfer&&(s.dataTransfer.effectAllowed="move",s.dataTransfer.setData("application/vibe-group",a.group)),o("dragstart",{payload:a.payload,group:a.group,event:s})},r=s=>{l.value=!1,Fl(),o("dragend",{payload:a.payload,group:a.group,event:s})};return(s,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(["vibe-draggable",{"vibe-draggable-dragging":l.value,"vibe-draggable-disabled":t.disabled}]),draggable:!t.disabled,"data-vibe-draggable":"","data-vibe-group":t.group,onDragstart:i,onDragend:r},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default",{isDragging:l.value},void 0,!0)]),_:3},40,["class","draggable","data-vibe-group"]))}}),[["__scopeId","data-v-633735d3"]]),_t=j(e.defineComponent({__name:"VibeDroppable",props:{group:{type:String,default:"default"},acceptGroups:{type:Array,default:void 0},disabled:{type:Boolean,default:!1},tag:{type:String,default:"div"}},emits:["drop","dragenter","dragleave"],setup(t,{emit:n}){const a=t,o=n,l=e.ref(!1);let i=0;const r=h=>a.acceptGroups&&a.acceptGroups.length>0?a.acceptGroups.includes(h):h===a.group,s=()=>Rl(),d=h=>{a.disabled||(i+=1,l.value=!0,o("dragenter",h))},u=h=>{a.disabled||(h.preventDefault(),h.dataTransfer&&(h.dataTransfer.dropEffect="move"))},f=h=>{a.disabled||(i-=1,i<=0&&(l.value=!1,i=0),o("dragleave",h))},c=h=>{if(a.disabled)return;h.preventDefault(),l.value=!1,i=0;const m=s(),p=m?.group??a.group;r(p)&&o("drop",{payload:m?.payload,group:p,event:h})};return(h,m)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(["vibe-droppable",{"vibe-droppable-over":l.value,"vibe-droppable-disabled":t.disabled}]),"data-vibe-droppable":"","data-vibe-group":t.group,onDragenter:d,onDragover:u,onDragleave:f,onDrop:c},{default:e.withCtx(()=>[e.renderSlot(h.$slots,"default",{isOver:l.value},void 0,!0)]),_:3},40,["class","data-vibe-group"]))}}),[["__scopeId","data-v-b75c06d6"]]),Pl=["data-handle","onPointerdown"],ea=j(e.defineComponent({__name:"VibeResizable",props:{handles:{type:Array,default:()=>["se"]},width:{type:Number,default:200},height:{type:Number,default:150},minWidth:{type:Number,default:20},maxWidth:{type:Number,default:1/0},minHeight:{type:Number,default:20},maxHeight:{type:Number,default:1/0},aspectRatio:{type:Number,default:void 0},grid:{type:Number,default:1},disabled:{type:Boolean,default:!1}},emits:["update:width","update:height","resizestart","resize","resizeend"],setup(t,{emit:n}){const a=["n","s","e","w","ne","nw","se","sw"],o=t,l=n,i=e.ref(o.width),r=e.ref(o.height),s=e.ref(null),d=e.ref(0),u=e.ref(0),f=e.ref(0),c=e.ref(0);e.watch(()=>o.width,B=>{B!==i.value&&(i.value=B)}),e.watch(()=>o.height,B=>{B!==r.value&&(r.value=B)});const h=B=>Math.round(B/o.grid)*o.grid,m=B=>Math.min(o.maxWidth,Math.max(o.minWidth,B)),p=B=>Math.min(o.maxHeight,Math.max(o.minHeight,B)),b=(B,N,F)=>o.aspectRatio?F?{w:B,h:B/o.aspectRatio}:{w:N*o.aspectRatio,h:N}:{w:B,h:N},k=e.computed(()=>({width:`${i.value}px`,height:`${r.value}px`})),y=e.computed(()=>o.handles.filter(B=>a.includes(B))),v=(B,N)=>{o.disabled||(N.stopPropagation(),s.value=B,d.value=N.clientX,u.value=N.clientY,f.value=i.value,c.value=r.value,N.target.setPointerCapture(N.pointerId),l("resizestart",{width:i.value,height:r.value}))},g=B=>{if(!s.value)return;const N=B.clientX-d.value,F=B.clientY-u.value;let M=f.value,T=c.value;const w=s.value;w.includes("e")&&(M=f.value+N),w.includes("w")&&(M=f.value-N),w.includes("s")&&(T=c.value+F),w.includes("n")&&(T=c.value-F);const V=w.includes("e")||w.includes("w"),z=b(M,T,V);M=m(h(z.w)),T=p(h(z.h)),M!==i.value&&(i.value=M,l("update:width",M)),T!==r.value&&(r.value=T,l("update:height",T)),l("resize",{width:i.value,height:r.value,handle:w})},S=B=>{s.value&&(B.target.releasePointerCapture?.(B.pointerId),s.value=null,l("resizeend",{width:i.value,height:r.value}))};return(B,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vibe-resizable",{"vibe-resizable-disabled":t.disabled,"vibe-resizable-active":s.value!==null}]),style:e.normalizeStyle(k.value)},[e.renderSlot(B.$slots,"default",{},void 0,!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,F=>(e.openBlock(),e.createElementBlock("span",{key:F,class:e.normalizeClass(["vibe-resizable-handle",`vibe-resizable-handle-${F}`]),"data-handle":F,onPointerdown:M=>v(F,M),onPointermove:g,onPointerup:S},null,42,Pl))),128))],6))}}),[["__scopeId","data-v-cf1014a7"]]),Il=["for"],Ol=["id","value","placeholder","disabled","aria-expanded"],jl=["aria-label"],ql={class:"vibe-datepicker-header"},Hl={class:"vibe-datepicker-title"},Wl={class:"vibe-datepicker-weekdays"},Ul={class:"vibe-datepicker-grid"},Xl=["data-iso","disabled","onClick"],ta=j(e.defineComponent({__name:"VibeDatePicker",props:{modelValue:{type:[String,Array,null],default:null},range:{type:Boolean,default:!1},min:{type:String,default:void 0},max:{type:String,default:void 0},disabledDates:{type:Array,default:()=>[]},format:{type:Function,default:void 0},placeholder:{type:String,default:"Select date"},weekStart:{type:Number,default:0},id:{type:String,default:void 0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","open","close"],setup(t,{expose:n,emit:a}){const o=t,l=a,i=e.computed(()=>o.id||O("datepicker")),r=$=>String($).padStart(2,"0"),s=$=>`${$.getFullYear()}-${r($.getMonth()+1)}-${r($.getDate())}`,d=$=>{const[L,A,H]=$.split("-").map(Number);return new Date(L,A-1,H)},u=/^\d{4}-\d{2}-\d{2}$/,f=($,L)=>{$!==void 0&&!u.test($)&&console.warn(`[VibeDatePicker] Invalid ${L} prop "${$}". Expected zero-padded YYYY-MM-DD; comparisons are lexical and will be wrong otherwise.`)};f(o.min,"min"),f(o.max,"max");const c=e.ref(!1),h=()=>new Date,m=e.ref(h().getFullYear()),p=e.ref(h().getMonth()),b=e.ref(null),k=e.ref(null),y=e.ref(null),v=e.computed(()=>Array.isArray(o.modelValue)?o.modelValue[0]:o.modelValue),g=e.computed(()=>Array.isArray(o.modelValue)?o.modelValue[1]:null);e.watch(()=>v.value,$=>{if($){const L=d($);m.value=L.getFullYear(),p.value=L.getMonth()}},{immediate:!0});const S=$=>o.min&&$<o.min||o.max&&$>o.max?!0:o.disabledDates.includes($),B=e.computed(()=>{const $=[],H=(new Date(m.value,p.value,1).getDay()-o.weekStart+7)%7,Te=new Date(m.value,p.value,1-H),_e=s(h());for(let et=0;et<42;et++){const Le=new Date(Te);Le.setDate(Te.getDate()+et);const J=s(Le),Er=Le.getMonth()===p.value,ze=v.value,Ae=g.value,$r=J===ze||J===Ae,xr=o.range&&ze!==null&&Ae!==null&&J>ze&&J<Ae;$.push({iso:J,day:Le.getDate(),inMonth:Er,disabled:S(J),isToday:J===_e,isSelected:$r,isFocused:J===b.value,isInRange:xr,isRangeStart:o.range&&J===ze,isRangeEnd:o.range&&J===Ae})}return $}),N=e.computed(()=>new Date(m.value,p.value,1).toLocaleDateString(void 0,{month:"long",year:"numeric"})),F=e.computed(()=>{const $=[];for(let L=0;L<7;L++){const A=new Date(2024,0,7+(L+o.weekStart)%7);$.push(A.toLocaleDateString(void 0,{weekday:"short"}))}return $}),M=e.computed(()=>{const $=o.format||(L=>L);if(o.range){const L=v.value?$(v.value):"",A=g.value?$(g.value):"";return!L&&!A?"":`${L} → ${A}`}return v.value?$(v.value):""}),T=()=>{o.disabled||(c.value=!c.value,c.value?l("open"):l("close"))},w=()=>{c.value&&(c.value=!1,l("close"))},V=()=>{p.value===0?(p.value=11,m.value-=1):p.value-=1},z=()=>{p.value===11?(p.value=0,m.value+=1):p.value+=1},I=$=>{if($.disabled)return;if(!o.range){l("update:modelValue",$.iso),w();return}const L=v.value,A=g.value;if(!L||L&&A){l("update:modelValue",[$.iso,null]);return}$.iso<L?l("update:modelValue",[$.iso,L]):(l("update:modelValue",[L,$.iso]),w())},C=$=>{const L=["vibe-datepicker-day"];return $.inMonth||L.push("vibe-datepicker-day-outside"),$.disabled&&L.push("vibe-datepicker-day-disabled"),$.isToday&&L.push("vibe-datepicker-day-today"),$.isSelected&&L.push("vibe-datepicker-day-selected"),$.isFocused&&L.push("vibe-datepicker-day-focused"),$.isInRange&&L.push("vibe-datepicker-day-in-range"),$.isRangeStart&&L.push("vibe-datepicker-day-range-start"),$.isRangeEnd&&L.push("vibe-datepicker-day-range-end"),L.join(" ")},D=async $=>{b.value=$;const L=d($);(L.getFullYear()!==m.value||L.getMonth()!==p.value)&&(m.value=L.getFullYear(),p.value=L.getMonth()),await e.nextTick(),y.value?.querySelector(`[data-iso="${$}"]`)?.focus()},x=async $=>{const L=b.value||v.value||s(h()),A=d(L);A.setDate(A.getDate()+$),await D(s(A))},R=async $=>{const L=b.value||v.value||s(h()),A=d(L),H=A.getMonth()+$,Te=A.getFullYear()+Math.floor(H/12),_e=(H%12+12)%12;A.setFullYear(Te,_e,Math.min(A.getDate(),28)),await D(s(A))},P=async $=>{switch($.key){case"ArrowRight":$.preventDefault(),await x(1);break;case"ArrowLeft":$.preventDefault(),await x(-1);break;case"ArrowDown":$.preventDefault(),await x(7);break;case"ArrowUp":$.preventDefault(),await x(-7);break;case"PageDown":$.preventDefault(),await R(1);break;case"PageUp":$.preventDefault(),await R(-1);break;case"Home":{$.preventDefault();const L=b.value||v.value||s(h()),A=d(L),H=(A.getDay()-o.weekStart+7)%7;A.setDate(A.getDate()-H),await D(s(A));break}case"End":{$.preventDefault();const L=b.value||v.value||s(h()),A=d(L),H=(A.getDay()-o.weekStart+7)%7;A.setDate(A.getDate()+(6-H)),await D(s(A));break}case"Enter":case" ":{$.preventDefault();const L=b.value;if(!L)break;const A=B.value.find(H=>H.iso===L);A&&I(A);break}case"Escape":$.preventDefault(),w();break}},U=$=>{if(!c.value)return;const L=k.value;L&&$.target instanceof Node&&L.contains($.target)||w()};return e.watch(c,$=>{typeof document>"u"||($?(b.value=v.value||s(h()),document.addEventListener("mousedown",U)):(b.value=null,document.removeEventListener("mousedown",U)))}),e.onBeforeUnmount(()=>{typeof document<"u"&&document.removeEventListener("mousedown",U)}),n({open:()=>{c.value||T()},close:w}),($,L)=>(e.openBlock(),e.createElementBlock("div",{class:"vibe-datepicker",ref_key:"rootRef",ref:k},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},e.toDisplayString(t.label),9,Il)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:i.value,type:"text",readonly:"",class:"form-control",value:M.value,placeholder:t.placeholder,disabled:t.disabled,"aria-haspopup":"dialog","aria-expanded":c.value,onClick:T},null,8,Ol),c.value?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:y,class:"vibe-datepicker-popover",role:"dialog","aria-label":t.label||"Date picker",onKeydown:P},[e.createElementVNode("div",ql,[e.createElementVNode("button",{type:"button",class:"vibe-datepicker-nav","aria-label":"Previous month","data-prev-month":"",onClick:V},"‹"),e.createElementVNode("span",Hl,e.toDisplayString(N.value),1),e.createElementVNode("button",{type:"button",class:"vibe-datepicker-nav","aria-label":"Next month","data-next-month":"",onClick:z},"›")]),e.createElementVNode("div",Wl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value,A=>(e.openBlock(),e.createElementBlock("span",{key:A,class:"vibe-datepicker-weekday"},e.toDisplayString(A),1))),128))]),e.createElementVNode("div",Ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,A=>(e.openBlock(),e.createElementBlock("button",{key:A.iso,type:"button",class:e.normalizeClass(C(A)),"data-iso":A.iso,disabled:A.disabled,onClick:H=>I(A)},e.toDisplayString(A.day),11,Xl))),128))])],40,jl)):e.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-d18ee62c"]]),Gl=["id","checked","disabled","required","indeterminate","aria-invalid","aria-describedby"],Yl=["for"],Kl={key:0,class:"text-danger"},Jl=["id"],Ql={key:0,class:"valid-feedback",style:{display:"block"}},Zl=["id"],aa=e.defineComponent({__name:"VibeFormCheckbox",props:{modelValue:{type:[Boolean,Array],default:!1},value:{type:[String,Number,Boolean],default:!0},id:{type:String,default:void 0},label:{type:String,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},indeterminate:{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:"change"},helpText:{type:String,default:void 0},reverse:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||O("checkbox")),r=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),d=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),u=e.computed(()=>{const b=["form-check"];return a.inline&&b.push("form-check-inline"),a.reverse&&b.push("form-check-reverse"),b.join(" ")}),f=e.computed(()=>{const b=["form-check-input"];return a.validationState==="valid"&&b.push("is-valid"),a.validationState==="invalid"&&b.push("is-invalid"),b.join(" ")}),c=e.computed(()=>Array.isArray(a.modelValue)?a.modelValue.includes(a.value):a.modelValue===a.value),h=b=>{const k=b.target;let y;if(Array.isArray(a.modelValue))if(y=[...a.modelValue],k.checked)y.push(a.value);else{const v=y.indexOf(a.value);v>-1&&y.splice(v,1)}else y=k.checked?a.value:a.value===!0?!1:null;o("update:modelValue",y),o("change",b),a.validateOn==="change"&&o("validate")},m=b=>{o("blur",b),a.validateOn==="blur"&&o("validate")},p=b=>{o("focus",b)};return(b,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([u.value,{"mb-3":r.value||d.value||s.value}])},[e.createElementVNode("input",{id:i.value,type:"checkbox",class:e.normalizeClass(f.value),checked:c.value,disabled:t.disabled,required:t.required,indeterminate:t.indeterminate,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${i.value}-feedback`:void 0,onChange:h,onBlur:m,onFocus:p},null,42,Gl),r.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Kl,"*")):e.createCommentVNode("",!0)],8,Yl)):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Jl)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ql,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please check this box."),9,Zl)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),_l=["id","name","value","checked","disabled","required","aria-invalid","aria-describedby"],ei=["for"],ti={key:0,class:"text-danger"},ai=["id"],oi={key:0,class:"valid-feedback",style:{display:"block"}},ni=["id"],oa=e.defineComponent({__name:"VibeFormRadio",props:{modelValue:{type:[String,Number,Boolean],default:""},value:{type:[String,Number,Boolean],required:!0},name:{type:String,required:!0},id:{type:String,default:void 0},label:{type:String,default:void 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:"change"},helpText:{type:String,default:void 0},reverse:{type:Boolean,default:!1}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||O("radio")),r=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),d=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),u=e.computed(()=>{const b=["form-check"];return a.inline&&b.push("form-check-inline"),a.reverse&&b.push("form-check-reverse"),b.join(" ")}),f=e.computed(()=>{const b=["form-check-input"];return a.validationState==="valid"&&b.push("is-valid"),a.validationState==="invalid"&&b.push("is-invalid"),b.join(" ")}),c=e.computed(()=>a.modelValue===a.value),h=b=>{o("update:modelValue",a.value),o("change",b),a.validateOn==="change"&&o("validate")},m=b=>{o("blur",b),a.validateOn==="blur"&&o("validate")},p=b=>{o("focus",b)};return(b,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([u.value,{"mb-3":r.value||d.value||s.value}])},[e.createElementVNode("input",{id:i.value,type:"radio",class:e.normalizeClass(f.value),name:t.name,value:t.value,checked:c.value,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${i.value}-feedback`:void 0,onChange:h,onBlur:m,onFocus:p},null,42,_l),r.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ti,"*")):e.createCommentVNode("",!0)],8,ei)):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,ai)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",oi,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please select an option."),9,ni)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),li=["id","checked","disabled","required","aria-invalid","aria-describedby"],ii=["for"],ri={key:0,class:"text-danger"},si=["id"],di={key:0,class:"valid-feedback",style:{display:"block"}},ci=["id"],na=e.defineComponent({__name:"VibeFormSwitch",props:{modelValue:{type:Boolean,default:!1},id:{type:String,default:void 0},label:{type:String,default:void 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:"change"},helpText:{type:String,default:void 0}},emits:["update:modelValue","validate","blur","focus","change"],setup(t,{emit:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.consumeId()||O("switch")),r=e.computed(()=>!!a.label&&!l?.hasLabel.value),s=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),d=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),u=e.computed(()=>{const p=["form-check","form-switch"];return a.inline&&p.push("form-check-inline"),p.join(" ")}),f=e.computed(()=>{const p=["form-check-input"];return a.validationState==="valid"&&p.push("is-valid"),a.validationState==="invalid"&&p.push("is-invalid"),p.join(" ")}),c=p=>{const b=p.target;o("update:modelValue",b.checked),o("change",p),a.validateOn==="change"&&o("validate")},h=p=>{o("blur",p),a.validateOn==="blur"&&o("validate")},m=p=>{o("focus",p)};return(p,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([u.value,{"mb-3":r.value||d.value||s.value}])},[e.createElementVNode("input",{id:i.value,type:"checkbox",role:"switch",class:e.normalizeClass(f.value),checked:t.modelValue,disabled:t.disabled,required:t.required,"aria-invalid":t.validationState==="invalid","aria-describedby":t.validationMessage||t.helpText?`${i.value}-feedback`:void 0,onChange:c,onBlur:h,onFocus:m},null,42,li),r.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-check-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ri,"*")):e.createCommentVNode("",!0)],8,ii)):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,si)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",di,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please toggle this switch."),9,ci)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),ui=["for"],fi={key:0,class:"text-danger"},mi=["id"],pi={key:1,class:"valid-feedback",style:{display:"block"}},bi=["id"],hi=["for"],gi={key:0,class:"text-danger"},yi=["id"],ki={key:2,class:"valid-feedback",style:{display:"block"}},vi=["id"],la=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 n=t,a=e.computed(()=>n.labelFor||O("form-group")),o=e.ref(!1),l=()=>o.value?null:(o.value=!0,a.value);e.provide("vibeFormGroup",{id:a,consumeId:l,hasLabel:e.computed(()=>!!n.label),hasValidation:e.computed(()=>!!n.validationState),hasHelp:e.computed(()=>!!n.helpText)});const i=e.computed(()=>{const u=[];return n.floating?u.push("form-floating"):n.row?u.push("row","mb-3"):u.push("mb-3"),u.join(" ")}),r=e.computed(()=>{const u=[];return n.floating?u.push("form-label"):n.row?(u.push("col-form-label"),n.labelCols&&u.push(`col-sm-${n.labelCols}`),n.labelAlign&&u.push(`text-${n.labelAlign}`)):u.push("form-label"),u.join(" ")}),s=e.computed(()=>n.row&&n.labelCols?`col-sm-${12-Number(n.labelCols)}`:""),d=e.computed(()=>`${a.value}-feedback`);return(u,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[t.label&&!t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:a.value,class:e.normalizeClass(r.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",fi,"*")):e.createCommentVNode("",!0)],10,ui)):e.createCommentVNode("",!0),t.row&&t.labelCols?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(s.value)},[e.renderSlot(u.$slots,"default"),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:0,id:d.value,class:"form-text"},e.toDisplayString(t.helpText),9,mi)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",pi,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:2,id:d.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,bi)):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.renderSlot(u.$slots,"default"),t.label&&t.floating?(e.openBlock(),e.createElementBlock("label",{key:0,for:a.value,class:e.normalizeClass(r.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",gi,"*")):e.createCommentVNode("",!0)],10,hi)):e.createCommentVNode("",!0),t.helpText&&!t.validationMessage?(e.openBlock(),e.createElementBlock("div",{key:1,id:d.value,class:"form-text"},e.toDisplayString(t.helpText),9,yi)):e.createCommentVNode("",!0),t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",ki,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:3,id:d.value,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide a valid value."),9,vi)):e.createCommentVNode("",!0)],64))],2))}}),ie={sm:576,md:768,lg:992,xl:1200,xxl:1400};function ia(){const t=e.ref(!1),n=e.ref(!1),a=e.ref(!1),o=e.ref(!1),l=e.ref(!1),i=()=>{typeof window>"u"||(t.value=window.matchMedia(`(min-width: ${ie.sm}px)`).matches,n.value=window.matchMedia(`(min-width: ${ie.md}px)`).matches,a.value=window.matchMedia(`(min-width: ${ie.lg}px)`).matches,o.value=window.matchMedia(`(min-width: ${ie.xl}px)`).matches,l.value=window.matchMedia(`(min-width: ${ie.xxl}px)`).matches)};i();const r=e.computed(()=>!t.value),s=e.computed(()=>!n.value),d=e.computed(()=>n.value&&!a.value);return typeof window<"u"&&Object.entries(ie).forEach(([u,f])=>{const c=window.matchMedia(`(min-width: ${f}px)`),h=()=>{i()};c.addEventListener("change",h),e.getCurrentInstance()&&e.onUnmounted(()=>c.removeEventListener("change",h))}),{isXs:r,isSm:t,isMd:n,isLg:a,isXl:o,isXxl:l,isMobile:s,isTablet:d}}const Bi=["for"],Si={key:0,class:"text-danger"},wi={key:1,class:"alert alert-warning",role:"alert"},Vi=["id"],Ci=["id"],Ei={key:0,class:"valid-feedback",style:{display:"block"}},$i=["id"],ra=j(e.defineComponent({__name:"VibeFormWysiwyg",props:{modelValue:{type:String,default:""},id:{type:String,default:()=>O("wysiwyg")},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},mobileToolbar:{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:n}){const a=t,o=n,l=e.inject("vibeFormGroup",null),i=e.computed(()=>a.id||l?.id.value||O("wysiwyg")),{isMobile:r}=ia(),s=e.computed(()=>!!a.label&&!l?.hasLabel.value),d=e.computed(()=>!!a.validationState&&!l?.hasValidation.value),u=e.computed(()=>!!a.helpText&&!l?.hasHelp.value),f=e.ref(null),c=e.ref(null),h=e.ref(!1),m=e.ref(null),p=e.ref(!1),b=e.ref(null),k=e.ref(null),y=e.ref(null),v=e.computed(()=>{const V=["vibe-wysiwyg-container"];return a.validationState==="valid"&&V.push("is-valid"),a.validationState==="invalid"&&V.push("is-invalid"),a.disabled&&V.push("disabled"),V.join(" ")}),g=[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]}],["link","image"],["clean"]],S=[["bold","italic","underline"],[{list:"ordered"},{list:"bullet"}],["link","clean"]],B={minimal:[["bold","italic","underline"],["link","clean"]],standard:[[{header:[1,2,3,!1]}],["bold","italic","underline"],[{list:"ordered"},{list:"bullet"}],["link","clean"]],full:[[{header:[1,2,3,4,5,6,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"},{indent:"-1"},{indent:"+1"}],[{color:[]},{background:[]}],[{align:[]}],["blockquote","code-block"],["link","image","video"],["clean"]]},N=(V,z)=>V===!1?!1:V===!0||V===void 0?z:typeof V=="string"?B[V]??z:V,F=()=>a.toolbar===!1?!1:r.value?a.mobileToolbar===!1?!1:a.mobileToolbar!==void 0?N(a.mobileToolbar,S):S:N(a.toolbar,g),M=V=>{if(!c.value)return;p.value=!0;const z=c.value.clipboard.convert({html:V||""});c.value.setContents(z,"silent"),p.value=!1},T=()=>!c.value||c.value.getText().trim().length===0?"":c.value.getSemanticHTML(),w=async()=>{try{const V=await import("quill"),z=V.default||V;if(await import("quill/dist/quill.snow.css"),f.value){const I={theme:a.theme,placeholder:a.placeholder,readOnly:a.readonly||a.disabled,modules:{toolbar:F()}};c.value=new z(f.value,I),a.modelValue&&M(a.modelValue),y.value=()=>{if(p.value)return;const C=T();o("update:modelValue",C),o("change"),a.validateOn==="change"&&o("validate")},c.value.on("text-change",y.value),b.value=()=>{o("blur"),a.validateOn==="blur"&&o("validate")},c.value.root.addEventListener("blur",b.value),k.value=()=>{o("focus")},c.value.root.addEventListener("focus",k.value),h.value=!0,o("ready",c.value)}}catch(V){console.error("Failed to load Quill editor:",V),m.value="Failed to load WYSIWYG editor. Please install quill: npm install quill",h.value=!1}};return e.onMounted(w),e.onBeforeUnmount(()=>{if(c.value){if(y.value&&(c.value.off("text-change",y.value),y.value=null),b.value&&(c.value.root.removeEventListener("blur",b.value),b.value=null),k.value&&(c.value.root.removeEventListener("focus",k.value),k.value=null),f.value){const V=f.value.parentElement?.querySelector(".ql-toolbar");V&&V.remove()}c.value=null}}),e.watch(()=>a.modelValue,V=>{if(!c.value)return;T()!==(V||"")&&M(V||"")}),e.watch(()=>a.disabled,V=>{c.value&&c.value.enable(!V)}),e.watch(()=>a.readonly,V=>{c.value&&c.value.enable(!V)}),e.watch(r,async()=>{if(c.value){const V=T();y.value&&c.value.off("text-change",y.value),b.value&&c.value.root.removeEventListener("blur",b.value),k.value&&c.value.root.removeEventListener("focus",k.value);const z=f.value?.parentElement?.querySelector(".ql-toolbar");z&&z.remove(),f.value&&(f.value.innerHTML=""),await e.nextTick(),await w(),V&&M(V)}}),(V,z)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"mb-3":s.value||u.value||d.value})},[s.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"form-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Si,"*")):e.createCommentVNode("",!0)],8,Bi)):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("div",wi,e.toDisplayString(m.value),1)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(v.value),style:e.normalizeStyle({minHeight:t.height})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:f,id:i.value},null,8,Vi)],6)),u.value?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${i.value}-feedback`,class:"form-text"},e.toDisplayString(t.helpText),9,Ci)):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[t.validationState==="valid"?(e.openBlock(),e.createElementBlock("div",Ei,e.toDisplayString(t.validationMessage||"Looks good!"),1)):e.createCommentVNode("",!0),t.validationState==="invalid"?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${i.value}-feedback`,class:"invalid-feedback",style:{display:"block"}},e.toDisplayString(t.validationMessage||"Please provide valid content."),9,$i)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-10ea0dd0"]]),xi={key:0,class:"input-group-text"},Ni={key:0,class:"input-group-text"},sa=e.defineComponent({__name:"VibeInputGroup",props:{size:{type:String,default:void 0},prepend:{type:String,default:void 0},append:{type:String,default:void 0},tag:{type:String,default:"div"}},setup(t){const n=t,a=e.computed(()=>{const o=["input-group"];return n.size&&o.push(`input-group-${n.size}`),o.join(" ")});return(o,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(a.value)},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"prepend",{},()=>[t.prepend?(e.openBlock(),e.createElementBlock("span",xi,e.toDisplayString(t.prepend),1)):e.createCommentVNode("",!0)]),e.renderSlot(o.$slots,"default"),e.renderSlot(o.$slots,"append",{},()=>[t.append?(e.openBlock(),e.createElementBlock("span",Ni,e.toDisplayString(t.append),1)):e.createCommentVNode("",!0)])]),_:3},8,["class"]))}}),da=e.defineComponent({__name:"VibeLink",props:{tag:{type:String,default:"a"},href:{type:String,default:void 0},to:{type:[String,Object],default:void 0},variant:{type:String,default:void 0},underline:{type:[Boolean,String],default:!0},underlineVariant:{type:String,default:void 0},underlineOpacity:{type:[String,Number],default:void 0},offset:{type:[String,Number],default:void 0},opacity:{type:[String,Number],default:void 0},focusRing:{type:Boolean,default:!1}},setup(t){const n=t,a=e.computed(()=>!!n.to),o=e.computed(()=>a.value?"router-link":n.tag),l=e.computed(()=>{const i=[];return n.variant&&i.push(`link-${n.variant}`),n.underline===!1||n.underline==="0"?i.push("link-underline-0"):typeof n.underline=="string"&&["1","2","3"].includes(n.underline)&&i.push("link-underline",`link-underline-opacity-${n.underline}`),n.underlineVariant&&i.push(`link-underline-${n.underlineVariant}`),n.underlineOpacity!==void 0&&i.push(`link-underline-opacity-${n.underlineOpacity}`),n.offset!==void 0&&i.push(`link-offset-${n.offset}`),n.opacity!==void 0&&i.push(`link-opacity-${n.opacity}`),n.focusRing&&i.push("focus-ring"),i.join(" ")});return(i,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{class:e.normalizeClass(l.value),href:t.href,to:t.to},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},8,["class","href","to"]))}}),ue=Symbol("vibeTooltipInstance"),Oe=Symbol("vibeTooltipPending"),he=Symbol("vibeTooltipOpts"),Di=()=>typeof window<"u"&&("ontouchstart"in window||typeof navigator<"u"&&navigator.maxTouchPoints>0),ca=t=>typeof t=="string"?{title:t}:t?{...t,title:t.title??t.text??t.content}:{},ge=t=>{const n=t||"hover focus";return Di()&&n==="hover focus"?"click":n},Ti=(t,n)=>(t.placement||"top")!==(n.placement||"top")||ge(t.trigger)!==ge(n.trigger)||!!t.html!=!!n.html,ua=async(t,n)=>{if(!(t[Oe]||t[ue])){t[Oe]=!0;try{const a=await import("bootstrap");t[ue]=new a.Tooltip(t,{title:n.title||"",placement:n.placement||"top",trigger:ge(n.trigger),html:n.html||!1}),t[he]=n}catch{}t[Oe]=!1}},fa=t=>{const n=t[ue];n&&(n.dispose(),t[ue]=null)},ma=(t,n)=>{t.setAttribute("data-bs-toggle","tooltip"),n.title?t.setAttribute("data-bs-title",n.title):t.removeAttribute("data-bs-title"),t.setAttribute("data-bs-placement",n.placement||"top"),t.setAttribute("data-bs-trigger",ge(n.trigger)),n.html?t.setAttribute("data-bs-html","true"):t.removeAttribute("data-bs-html")},pa={mounted(t,n){const a=ca(n.value);ma(t,a),ua(t,a)},updated(t,n){const a=ca(n.value);ma(t,a);const o=t[he]||{},l=t[ue];if(l&&Ti(o,a)){fa(t),t[he]=a,ua(t,a);return}l&&(l.setContent({".tooltip-inner":a.title||""}),t[he]=a)},beforeUnmount(t){fa(t)}},Li={install(t){t.component("VibeAlert",tt),t.component("VibeBadge",at),t.component("VibeButton",ot),t.component("VibeButtonGroup",nt),t.component("VibeCloseButton",lt),t.component("VibeSpinner",it),t.component("VibePlaceholder",rt),t.component("VibeSkeleton",st),t.component("VibeContainer",dt),t.component("VibeRow",ct),t.component("VibeCol",ut),t.component("VibeCard",ft),t.component("VibeBreadcrumb",mt),t.component("VibeNav",pt),t.component("VibeNavbar",bt),t.component("VibeNavbarBrand",ht),t.component("VibeNavbarToggle",gt),t.component("VibeNavbarNav",yt),t.component("VibePagination",kt),t.component("VibeTabContent",vt),t.component("VibeTabs",Bt),t.component("VibeTab",St),t.component("VibeListGroup",wt),t.component("VibeProgress",Vt),t.component("VibeAccordion",Et),t.component("VibeCollapse",$t),t.component("VibeDropdown",xt),t.component("VibeModal",Dt),t.component("VibeOffcanvas",Tt),t.component("VibeToast",Fe),t.component("VibeToastHost",At),t.component("VibeCarousel",Mt),t.component("VibeTooltip",Ft),t.component("VibePopover",Rt),t.component("VibeScrollspy",Pt),t.component("VibeIcon",It),t.component("VibeDataTable",Ot),t.component("VibeFormInput",jt),t.component("VibeFormSelect",qt),t.component("VibeFormTextarea",Ht),t.component("VibeFormSpinbutton",Wt),t.component("VibeFormDatepicker",Ut),t.component("VibeFileInput",Xt),t.component("VibeSlider",Gt),t.component("VibeStepper",Yt),t.component("VibeAutocomplete",Kt),t.component("VibeSortable",Jt),t.component("VibeDraggable",Zt),t.component("VibeDroppable",_t),t.component("VibeResizable",ea),t.component("VibeDatePicker",ta),t.component("VibeFormCheckbox",aa),t.component("VibeFormRadio",oa),t.component("VibeFormSwitch",na),t.component("VibeFormGroup",la),t.component("VibeFormWysiwyg",ra),t.component("VibeInputGroup",sa),t.component("VibeLink",da),t.directive("vibe-tooltip",pa)}};function zi(t=""){const n=e.ref(t),a=e.ref(null),o=e.ref(""),l=e.ref(!1),i=e.ref(!1),r=e.ref(!1),s=async m=>{if(!m)return a.value=null,o.value="",{valid:!0};r.value=!0;try{const p=Array.isArray(m)?m:[{validator:m}];for(const b of p){const k=await b.validator(n.value);if(k===!1||typeof k=="string")return a.value="invalid",o.value=typeof k=="string"?k:b.message||"Invalid value",r.value=!1,{valid:!1,message:o.value}}return a.value="valid",o.value="",r.value=!1,{valid:!0}}catch{return a.value="invalid",o.value="Validation error occurred",r.value=!1,{valid:!1,message:o.value}}},d=()=>{n.value=t,a.value=null,o.value="",l.value=!1,i.value=!1,r.value=!1},u=()=>{i.value=!0},f=()=>{l.value=!0},c=e.computed(()=>a.value==="valid"),h=e.computed(()=>a.value==="invalid");return{value:n,validationState:a,validationMessage:o,isDirty:l,isTouched:i,isValidating:r,isValid:c,isInvalid:h,validate:s,reset:d,markAsTouched:u,markAsDirty:f}}const Ai={required:(t="This field is required")=>({validator:n=>Array.isArray(n)?n.length>0||t:typeof n=="string"?n.trim().length>0||t:n!=null&&n!==""||t,message:t}),email:(t="Please enter a valid email address")=>({validator:n=>n?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n)||t:!0,message:t}),minLength:(t,n)=>({validator:a=>a?a.length>=t||n||`Minimum length is ${t} characters`:!0,message:n}),maxLength:(t,n)=>({validator:a=>a?a.length<=t||n||`Maximum length is ${t} characters`:!0,message:n}),min:(t,n)=>({validator:a=>{if(a==null||a==="")return!0;const o=Number(a);return Number.isNaN(o)?n||"Value must be a number":o>=t||n||`Minimum value is ${t}`},message:n}),max:(t,n)=>({validator:a=>{if(a==null||a==="")return!0;const o=Number(a);return Number.isNaN(o)?n||"Value must be a number":o<=t||n||`Maximum value is ${t}`},message:n}),pattern:(t,n="Invalid format")=>({validator:a=>a?t.test(a)||n:!0,message:n}),url:(t="Please enter a valid URL")=>({validator:n=>{if(!n)return!0;try{return new URL(n),!0}catch{return t}},message:t}),async:t=>({validator:t})},je=t=>JSON.parse(JSON.stringify(t)),ba=async(t,n)=>{const a=Array.isArray(n)?n:[{validator:n}];for(const o of a){const l=await o.validator(t);if(l===!1)return o.message||"Invalid value";if(typeof l=="string")return l}return""};function Mi(t){const n=je(t),a=e.reactive(je(t)),o={},l={};for(const y of Object.keys(t))o[y]="",l[y]=!1;const i=e.reactive(o),r=e.reactive(l),s=e.ref(!1),d=e.computed(()=>s.value);e.watch(()=>JSON.stringify(a),()=>{const y=JSON.stringify(a),v=JSON.stringify(n);s.value=y!==v},{deep:!0,immediate:!0});const u=e.computed(()=>{for(const y of Object.keys(i))if(i[y])return!1;return!0}),f=e.computed(()=>({...a}));return{fields:a,errors:i,touched:r,isDirty:d,isValid:u,values:f,validate:async y=>{const v={};let g=!0;for(const S of Object.keys(y)){const B=y[S];if(!B)continue;const N=await ba(a[S],B);i[S]=N,N&&(v[S]=N,g=!1)}return{valid:g,errors:v}},validateField:async(y,v)=>{const g=await ba(a[y],v);return i[y]=g,g},reset:()=>{for(const y of Object.keys(n))a[y]=je(n[y]),i[y]="",r[y]=!1;s.value=!1},markTouched:y=>{r[y]=!0},markAllTouched:()=>{for(const y of Object.keys(r))r[y]=!0},setField:(y,v)=>{a[y]=v}}}const ye=Math.min,ae=Math.max,ke=Math.round,ve=Math.floor,Y=t=>({x:t,y:t}),Fi={left:"right",right:"left",bottom:"top",top:"bottom"};function ha(t,n,a){return ae(t,ye(n,a))}function Be(t,n){return typeof t=="function"?t(n):t}function oe(t){return t.split("-")[0]}function Se(t){return t.split("-")[1]}function ga(t){return t==="x"?"y":"x"}function ya(t){return t==="y"?"height":"width"}function Z(t){const n=t[0];return n==="t"||n==="b"?"y":"x"}function ka(t){return ga(Z(t))}function Ri(t,n,a){a===void 0&&(a=!1);const o=Se(t),l=ka(t),i=ya(l);let r=l==="x"?o===(a?"end":"start")?"right":"left":o==="start"?"bottom":"top";return n.reference[i]>n.floating[i]&&(r=we(r)),[r,we(r)]}function Pi(t){const n=we(t);return[qe(t),n,qe(n)]}function qe(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const va=["left","right"],Ba=["right","left"],Ii=["top","bottom"],Oi=["bottom","top"];function ji(t,n,a){switch(t){case"top":case"bottom":return a?n?Ba:va:n?va:Ba;case"left":case"right":return n?Ii:Oi;default:return[]}}function qi(t,n,a,o){const l=Se(t);let i=ji(oe(t),a==="start",o);return l&&(i=i.map(r=>r+"-"+l),n&&(i=i.concat(i.map(qe)))),i}function we(t){const n=oe(t);return Fi[n]+t.slice(n.length)}function Hi(t){return{top:0,right:0,bottom:0,left:0,...t}}function Wi(t){return typeof t!="number"?Hi(t):{top:t,right:t,bottom:t,left:t}}function Ve(t){const{x:n,y:a,width:o,height:l}=t;return{width:o,height:l,top:a,left:n,right:n+o,bottom:a+l,x:n,y:a}}function Sa(t,n,a){let{reference:o,floating:l}=t;const i=Z(n),r=ka(n),s=ya(r),d=oe(n),u=i==="y",f=o.x+o.width/2-l.width/2,c=o.y+o.height/2-l.height/2,h=o[s]/2-l[s]/2;let m;switch(d){case"top":m={x:f,y:o.y-l.height};break;case"bottom":m={x:f,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:c};break;case"left":m={x:o.x-l.width,y:c};break;default:m={x:o.x,y:o.y}}switch(Se(n)){case"start":m[r]-=h*(a&&u?-1:1);break;case"end":m[r]+=h*(a&&u?-1:1);break}return m}async function Ui(t,n){var a;n===void 0&&(n={});const{x:o,y:l,platform:i,rects:r,elements:s,strategy:d}=t,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:c="floating",altBoundary:h=!1,padding:m=0}=Be(n,t),p=Wi(m),k=s[h?c==="floating"?"reference":"floating":c],y=Ve(await i.getClippingRect({element:(a=await(i.isElement==null?void 0:i.isElement(k)))==null||a?k:k.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:d})),v=c==="floating"?{x:o,y:l,width:r.floating.width,height:r.floating.height}:r.reference,g=await(i.getOffsetParent==null?void 0:i.getOffsetParent(s.floating)),S=await(i.isElement==null?void 0:i.isElement(g))?await(i.getScale==null?void 0:i.getScale(g))||{x:1,y:1}:{x:1,y:1},B=Ve(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:v,offsetParent:g,strategy:d}):v);return{top:(y.top-B.top+p.top)/S.y,bottom:(B.bottom-y.bottom+p.bottom)/S.y,left:(y.left-B.left+p.left)/S.x,right:(B.right-y.right+p.right)/S.x}}const Xi=50,Gi=async(t,n,a)=>{const{placement:o="bottom",strategy:l="absolute",middleware:i=[],platform:r}=a,s=r.detectOverflow?r:{...r,detectOverflow:Ui},d=await(r.isRTL==null?void 0:r.isRTL(n));let u=await r.getElementRects({reference:t,floating:n,strategy:l}),{x:f,y:c}=Sa(u,o,d),h=o,m=0;const p={};for(let b=0;b<i.length;b++){const k=i[b];if(!k)continue;const{name:y,fn:v}=k,{x:g,y:S,data:B,reset:N}=await v({x:f,y:c,initialPlacement:o,placement:h,strategy:l,middlewareData:p,rects:u,platform:s,elements:{reference:t,floating:n}});f=g??f,c=S??c,p[y]={...p[y],...B},N&&m<Xi&&(m++,typeof N=="object"&&(N.placement&&(h=N.placement),N.rects&&(u=N.rects===!0?await r.getElementRects({reference:t,floating:n,strategy:l}):N.rects),{x:f,y:c}=Sa(u,h,d)),b=-1)}return{x:f,y:c,placement:h,strategy:l,middlewareData:p}},Yi=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(n){var a,o;const{placement:l,middlewareData:i,rects:r,initialPlacement:s,platform:d,elements:u}=n,{mainAxis:f=!0,crossAxis:c=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:b=!0,...k}=Be(t,n);if((a=i.arrow)!=null&&a.alignmentOffset)return{};const y=oe(l),v=Z(s),g=oe(s)===s,S=await(d.isRTL==null?void 0:d.isRTL(u.floating)),B=h||(g||!b?[we(s)]:Pi(s)),N=p!=="none";!h&&N&&B.push(...qi(s,b,p,S));const F=[s,...B],M=await d.detectOverflow(n,k),T=[];let w=((o=i.flip)==null?void 0:o.overflows)||[];if(f&&T.push(M[y]),c){const C=Ri(l,r,S);T.push(M[C[0]],M[C[1]])}if(w=[...w,{placement:l,overflows:T}],!T.every(C=>C<=0)){var V,z;const C=(((V=i.flip)==null?void 0:V.index)||0)+1,D=F[C];if(D&&(!(c==="alignment"?v!==Z(D):!1)||w.every(P=>Z(P.placement)===v?P.overflows[0]>0:!0)))return{data:{index:C,overflows:w},reset:{placement:D}};let x=(z=w.filter(R=>R.overflows[0]<=0).sort((R,P)=>R.overflows[1]-P.overflows[1])[0])==null?void 0:z.placement;if(!x)switch(m){case"bestFit":{var I;const R=(I=w.filter(P=>{if(N){const U=Z(P.placement);return U===v||U==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(U=>U>0).reduce((U,$)=>U+$,0)]).sort((P,U)=>P[1]-U[1])[0])==null?void 0:I[0];R&&(x=R);break}case"initialPlacement":x=s;break}if(l!==x)return{reset:{placement:x}}}return{}}}},Ki=new Set(["left","top"]);async function Ji(t,n){const{placement:a,platform:o,elements:l}=t,i=await(o.isRTL==null?void 0:o.isRTL(l.floating)),r=oe(a),s=Se(a),d=Z(a)==="y",u=Ki.has(r)?-1:1,f=i&&d?-1:1,c=Be(n,t);let{mainAxis:h,crossAxis:m,alignmentAxis:p}=typeof c=="number"?{mainAxis:c,crossAxis:0,alignmentAxis:null}:{mainAxis:c.mainAxis||0,crossAxis:c.crossAxis||0,alignmentAxis:c.alignmentAxis};return s&&typeof p=="number"&&(m=s==="end"?p*-1:p),d?{x:m*f,y:h*u}:{x:h*u,y:m*f}}const Qi=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(n){var a,o;const{x:l,y:i,placement:r,middlewareData:s}=n,d=await Ji(n,t);return r===((a=s.offset)==null?void 0:a.placement)&&(o=s.arrow)!=null&&o.alignmentOffset?{}:{x:l+d.x,y:i+d.y,data:{...d,placement:r}}}}},Zi=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(n){const{x:a,y:o,placement:l,platform:i}=n,{mainAxis:r=!0,crossAxis:s=!1,limiter:d={fn:y=>{let{x:v,y:g}=y;return{x:v,y:g}}},...u}=Be(t,n),f={x:a,y:o},c=await i.detectOverflow(n,u),h=Z(oe(l)),m=ga(h);let p=f[m],b=f[h];if(r){const y=m==="y"?"top":"left",v=m==="y"?"bottom":"right",g=p+c[y],S=p-c[v];p=ha(g,p,S)}if(s){const y=h==="y"?"top":"left",v=h==="y"?"bottom":"right",g=b+c[y],S=b-c[v];b=ha(g,b,S)}const k=d.fn({...n,[m]:p,[h]:b});return{...k,data:{x:k.x-a,y:k.y-o,enabled:{[m]:r,[h]:s}}}}}};function Ce(){return typeof window<"u"}function re(t){return wa(t)?(t.nodeName||"").toLowerCase():"#document"}function q(t){var n;return(t==null||(n=t.ownerDocument)==null?void 0:n.defaultView)||window}function K(t){var n;return(n=(wa(t)?t.ownerDocument:t.document)||window.document)==null?void 0:n.documentElement}function wa(t){return Ce()?t instanceof Node||t instanceof q(t).Node:!1}function X(t){return Ce()?t instanceof Element||t instanceof q(t).Element:!1}function Q(t){return Ce()?t instanceof HTMLElement||t instanceof q(t).HTMLElement:!1}function Va(t){return!Ce()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof q(t).ShadowRoot}function fe(t){const{overflow:n,overflowX:a,overflowY:o,display:l}=G(t);return/auto|scroll|overlay|hidden|clip/.test(n+o+a)&&l!=="inline"&&l!=="contents"}function _i(t){return/^(table|td|th)$/.test(re(t))}function Ee(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const er=/transform|translate|scale|rotate|perspective|filter/,tr=/paint|layout|strict|content/,ne=t=>!!t&&t!=="none";let He;function We(t){const n=X(t)?G(t):t;return ne(n.transform)||ne(n.translate)||ne(n.scale)||ne(n.rotate)||ne(n.perspective)||!Ue()&&(ne(n.backdropFilter)||ne(n.filter))||er.test(n.willChange||"")||tr.test(n.contain||"")}function ar(t){let n=_(t);for(;Q(n)&&!se(n);){if(We(n))return n;if(Ee(n))return null;n=_(n)}return null}function Ue(){return He==null&&(He=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),He}function se(t){return/^(html|body|#document)$/.test(re(t))}function G(t){return q(t).getComputedStyle(t)}function $e(t){return X(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function _(t){if(re(t)==="html")return t;const n=t.assignedSlot||t.parentNode||Va(t)&&t.host||K(t);return Va(n)?n.host:n}function Ca(t){const n=_(t);return se(n)?t.ownerDocument?t.ownerDocument.body:t.body:Q(n)&&fe(n)?n:Ca(n)}function me(t,n,a){var o;n===void 0&&(n=[]),a===void 0&&(a=!0);const l=Ca(t),i=l===((o=t.ownerDocument)==null?void 0:o.body),r=q(l);if(i){const s=Xe(r);return n.concat(r,r.visualViewport||[],fe(l)?l:[],s&&a?me(s):[])}else return n.concat(l,me(l,[],a))}function Xe(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Ea(t){const n=G(t);let a=parseFloat(n.width)||0,o=parseFloat(n.height)||0;const l=Q(t),i=l?t.offsetWidth:a,r=l?t.offsetHeight:o,s=ke(a)!==i||ke(o)!==r;return s&&(a=i,o=r),{width:a,height:o,$:s}}function Ge(t){return X(t)?t:t.contextElement}function de(t){const n=Ge(t);if(!Q(n))return Y(1);const a=n.getBoundingClientRect(),{width:o,height:l,$:i}=Ea(n);let r=(i?ke(a.width):a.width)/o,s=(i?ke(a.height):a.height)/l;return(!r||!Number.isFinite(r))&&(r=1),(!s||!Number.isFinite(s))&&(s=1),{x:r,y:s}}const or=Y(0);function $a(t){const n=q(t);return!Ue()||!n.visualViewport?or:{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}}function nr(t,n,a){return n===void 0&&(n=!1),!a||n&&a!==q(t)?!1:n}function le(t,n,a,o){n===void 0&&(n=!1),a===void 0&&(a=!1);const l=t.getBoundingClientRect(),i=Ge(t);let r=Y(1);n&&(o?X(o)&&(r=de(o)):r=de(t));const s=nr(i,a,o)?$a(i):Y(0);let d=(l.left+s.x)/r.x,u=(l.top+s.y)/r.y,f=l.width/r.x,c=l.height/r.y;if(i){const h=q(i),m=o&&X(o)?q(o):o;let p=h,b=Xe(p);for(;b&&o&&m!==p;){const k=de(b),y=b.getBoundingClientRect(),v=G(b),g=y.left+(b.clientLeft+parseFloat(v.paddingLeft))*k.x,S=y.top+(b.clientTop+parseFloat(v.paddingTop))*k.y;d*=k.x,u*=k.y,f*=k.x,c*=k.y,d+=g,u+=S,p=q(b),b=Xe(p)}}return Ve({width:f,height:c,x:d,y:u})}function xe(t,n){const a=$e(t).scrollLeft;return n?n.left+a:le(K(t)).left+a}function xa(t,n){const a=t.getBoundingClientRect(),o=a.left+n.scrollLeft-xe(t,a),l=a.top+n.scrollTop;return{x:o,y:l}}function lr(t){let{elements:n,rect:a,offsetParent:o,strategy:l}=t;const i=l==="fixed",r=K(o),s=n?Ee(n.floating):!1;if(o===r||s&&i)return a;let d={scrollLeft:0,scrollTop:0},u=Y(1);const f=Y(0),c=Q(o);if((c||!c&&!i)&&((re(o)!=="body"||fe(r))&&(d=$e(o)),c)){const m=le(o);u=de(o),f.x=m.x+o.clientLeft,f.y=m.y+o.clientTop}const h=r&&!c&&!i?xa(r,d):Y(0);return{width:a.width*u.x,height:a.height*u.y,x:a.x*u.x-d.scrollLeft*u.x+f.x+h.x,y:a.y*u.y-d.scrollTop*u.y+f.y+h.y}}function ir(t){return Array.from(t.getClientRects())}function rr(t){const n=K(t),a=$e(t),o=t.ownerDocument.body,l=ae(n.scrollWidth,n.clientWidth,o.scrollWidth,o.clientWidth),i=ae(n.scrollHeight,n.clientHeight,o.scrollHeight,o.clientHeight);let r=-a.scrollLeft+xe(t);const s=-a.scrollTop;return G(o).direction==="rtl"&&(r+=ae(n.clientWidth,o.clientWidth)-l),{width:l,height:i,x:r,y:s}}const Na=25;function sr(t,n){const a=q(t),o=K(t),l=a.visualViewport;let i=o.clientWidth,r=o.clientHeight,s=0,d=0;if(l){i=l.width,r=l.height;const f=Ue();(!f||f&&n==="fixed")&&(s=l.offsetLeft,d=l.offsetTop)}const u=xe(o);if(u<=0){const f=o.ownerDocument,c=f.body,h=getComputedStyle(c),m=f.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,p=Math.abs(o.clientWidth-c.clientWidth-m);p<=Na&&(i-=p)}else u<=Na&&(i+=u);return{width:i,height:r,x:s,y:d}}function dr(t,n){const a=le(t,!0,n==="fixed"),o=a.top+t.clientTop,l=a.left+t.clientLeft,i=Q(t)?de(t):Y(1),r=t.clientWidth*i.x,s=t.clientHeight*i.y,d=l*i.x,u=o*i.y;return{width:r,height:s,x:d,y:u}}function Da(t,n,a){let o;if(n==="viewport")o=sr(t,a);else if(n==="document")o=rr(K(t));else if(X(n))o=dr(n,a);else{const l=$a(t);o={x:n.x-l.x,y:n.y-l.y,width:n.width,height:n.height}}return Ve(o)}function Ta(t,n){const a=_(t);return a===n||!X(a)||se(a)?!1:G(a).position==="fixed"||Ta(a,n)}function cr(t,n){const a=n.get(t);if(a)return a;let o=me(t,[],!1).filter(s=>X(s)&&re(s)!=="body"),l=null;const i=G(t).position==="fixed";let r=i?_(t):t;for(;X(r)&&!se(r);){const s=G(r),d=We(r);!d&&s.position==="fixed"&&(l=null),(i?!d&&!l:!d&&s.position==="static"&&!!l&&(l.position==="absolute"||l.position==="fixed")||fe(r)&&!d&&Ta(t,r))?o=o.filter(f=>f!==r):l=s,r=_(r)}return n.set(t,o),o}function ur(t){let{element:n,boundary:a,rootBoundary:o,strategy:l}=t;const r=[...a==="clippingAncestors"?Ee(n)?[]:cr(n,this._c):[].concat(a),o],s=Da(n,r[0],l);let d=s.top,u=s.right,f=s.bottom,c=s.left;for(let h=1;h<r.length;h++){const m=Da(n,r[h],l);d=ae(m.top,d),u=ye(m.right,u),f=ye(m.bottom,f),c=ae(m.left,c)}return{width:u-c,height:f-d,x:c,y:d}}function fr(t){const{width:n,height:a}=Ea(t);return{width:n,height:a}}function mr(t,n,a){const o=Q(n),l=K(n),i=a==="fixed",r=le(t,!0,i,n);let s={scrollLeft:0,scrollTop:0};const d=Y(0);function u(){d.x=xe(l)}if(o||!o&&!i)if((re(n)!=="body"||fe(l))&&(s=$e(n)),o){const m=le(n,!0,i,n);d.x=m.x+n.clientLeft,d.y=m.y+n.clientTop}else l&&u();i&&!o&&l&&u();const f=l&&!o&&!i?xa(l,s):Y(0),c=r.left+s.scrollLeft-d.x-f.x,h=r.top+s.scrollTop-d.y-f.y;return{x:c,y:h,width:r.width,height:r.height}}function Ye(t){return G(t).position==="static"}function La(t,n){if(!Q(t)||G(t).position==="fixed")return null;if(n)return n(t);let a=t.offsetParent;return K(t)===a&&(a=a.ownerDocument.body),a}function za(t,n){const a=q(t);if(Ee(t))return a;if(!Q(t)){let l=_(t);for(;l&&!se(l);){if(X(l)&&!Ye(l))return l;l=_(l)}return a}let o=La(t,n);for(;o&&_i(o)&&Ye(o);)o=La(o,n);return o&&se(o)&&Ye(o)&&!We(o)?a:o||ar(t)||a}const pr=async function(t){const n=this.getOffsetParent||za,a=this.getDimensions,o=await a(t.floating);return{reference:mr(t.reference,await n(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function br(t){return G(t).direction==="rtl"}const hr={convertOffsetParentRelativeRectToViewportRelativeRect:lr,getDocumentElement:K,getClippingRect:ur,getOffsetParent:za,getElementRects:pr,getClientRects:ir,getDimensions:fr,getScale:de,isElement:X,isRTL:br};function Aa(t,n){return t.x===n.x&&t.y===n.y&&t.width===n.width&&t.height===n.height}function gr(t,n){let a=null,o;const l=K(t);function i(){var s;clearTimeout(o),(s=a)==null||s.disconnect(),a=null}function r(s,d){s===void 0&&(s=!1),d===void 0&&(d=1),i();const u=t.getBoundingClientRect(),{left:f,top:c,width:h,height:m}=u;if(s||n(),!h||!m)return;const p=ve(c),b=ve(l.clientWidth-(f+h)),k=ve(l.clientHeight-(c+m)),y=ve(f),g={rootMargin:-p+"px "+-b+"px "+-k+"px "+-y+"px",threshold:ae(0,ye(1,d))||1};let S=!0;function B(N){const F=N[0].intersectionRatio;if(F!==d){if(!S)return r();F?r(!1,F):o=setTimeout(()=>{r(!1,1e-7)},1e3)}F===1&&!Aa(u,t.getBoundingClientRect())&&r(),S=!1}try{a=new IntersectionObserver(B,{...g,root:l.ownerDocument})}catch{a=new IntersectionObserver(B,g)}a.observe(t)}return r(!0),i}function yr(t,n,a,o){o===void 0&&(o={});const{ancestorScroll:l=!0,ancestorResize:i=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:d=!1}=o,u=Ge(t),f=l||i?[...u?me(u):[],...n?me(n):[]]:[];f.forEach(y=>{l&&y.addEventListener("scroll",a,{passive:!0}),i&&y.addEventListener("resize",a)});const c=u&&s?gr(u,a):null;let h=-1,m=null;r&&(m=new ResizeObserver(y=>{let[v]=y;v&&v.target===u&&m&&n&&(m.unobserve(n),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var g;(g=m)==null||g.observe(n)})),a()}),u&&!d&&m.observe(u),n&&m.observe(n));let p,b=d?le(t):null;d&&k();function k(){const y=le(t);b&&!Aa(b,y)&&a(),b=y,p=requestAnimationFrame(k)}return a(),()=>{var y;f.forEach(v=>{l&&v.removeEventListener("scroll",a),i&&v.removeEventListener("resize",a)}),c?.(),(y=m)==null||y.disconnect(),m=null,d&&cancelAnimationFrame(p)}}const kr=Qi,vr=Zi,Br=Yi,Sr=(t,n,a)=>{const o=new Map,l={platform:hr,...a},i={...l.platform,_c:o};return Gi(t,n,{...l,platform:i})},Ma={"top start at bottom start":"bottom-start","top center at bottom center":"bottom","top end at bottom end":"bottom-end","bottom start at top start":"top-start","bottom center at top center":"top","bottom end at top end":"top-end","center start at center end":"right","center end at center start":"left","top start at top end":"right-start","bottom start at bottom end":"right-end","top end at top start":"left-start","bottom end at bottom start":"left-end"},Fa=(t,n)=>{const a=`${t} at ${n}`;if(Ma[a])return Ma[a];const[o,l]=n.split(" ");return o==="bottom"?l==="start"?"bottom-start":l==="end"?"bottom-end":"bottom":o==="top"?l==="start"?"top-start":l==="end"?"top-end":"top":l==="start"?o==="top"?"left-start":o==="bottom"?"left-end":"left":l==="end"?o==="top"?"right-start":o==="bottom"?"right-end":"right":"bottom"};function wr(t,n,a={}){const o=()=>typeof a=="function"?a():a,l=o(),i=l.my??"top center",r=l.at??"bottom center",s=e.ref(Fa(i,r)),d=e.ref(0),u=e.ref(0);let f=null,c=null,h=null;const m=v=>{const g=[];if(v.offset){const[B,N]=v.offset;g.push(kr({mainAxis:N,crossAxis:B}))}const S=v.collision??"flip+shift";return(S==="flip"||S==="flip+shift")&&g.push(Br()),(S==="shift"||S==="flip+shift")&&g.push(vr()),g},p=v=>{h!==v&&(h=v,c={position:v.style.position,left:v.style.left,top:v.style.top})},b=()=>{h&&c&&(h.style.position=c.position,h.style.left=c.left,h.style.top=c.top),c=null,h=null},k=async()=>{const v=t.value,g=n.value;if(!v||!g)return;const S=o(),B=S.my??"top center",N=S.at??"bottom center";p(v);const F=await Sr(g,v,{placement:Fa(B,N),strategy:S.strategy??"absolute",middleware:m(S)});d.value=F.x,u.value=F.y,s.value=F.placement,Object.assign(v.style,{position:S.strategy??"absolute",left:`${F.x}px`,top:`${F.y}px`})},y=()=>{f&&(f(),f=null),b()};return e.watch([t,n,()=>o()],()=>{f&&(f(),f=null);const v=t.value,g=n.value;if(!v||!g)return;o().autoUpdate!==!1?f=yr(g,v,()=>{k()}):k()},{immediate:!0,flush:"post",deep:!0}),e.onBeforeUnmount(()=>{y()}),{x:d,y:u,placement:s,update:k,stop:y}}const Ke="vibe-color-mode",Je={light:"dark",dark:"auto",auto:"light"},Ne=e.ref("auto");let Qe=!1;const Ze=[];function Vr(){return typeof window>"u"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ra(t){if(typeof document>"u")return;const n=t==="auto"?Vr():t;document.documentElement.setAttribute("data-bs-theme",n)}function De(t){Ne.value=t,Ra(t),Ze.forEach(n=>n(t))}De("auto"),typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{Ne.value==="auto"&&(Ra("auto"),Ze.forEach(t=>t("auto")))});function Cr(){function t(i){if(i in Je){try{localStorage.setItem(Ke,i)}catch{}De(i)}}function n(){if(Qe)return;let i="auto";try{const r=localStorage.getItem(Ke);r!==null&&r in Je&&(i=r)}catch{}De(i),Qe=!0}function a(){try{localStorage.removeItem(Ke)}catch{}Qe=!1,De("auto")}function o(){t(Je[Ne.value]??"auto")}function l(i){Ze.push(i)}return{colorMode:Ne,setColorMode:t,toggleColorMode:o,initColorMode:n,clearColorMode:a,onColorModeChange:l}}E.VibeAccordion=Et,E.VibeAlert=tt,E.VibeAutocomplete=Kt,E.VibeBadge=at,E.VibeBreadcrumb=mt,E.VibeButton=ot,E.VibeButtonGroup=nt,E.VibeCard=ft,E.VibeCarousel=Mt,E.VibeCloseButton=lt,E.VibeCol=ut,E.VibeCollapse=$t,E.VibeContainer=dt,E.VibeDataTable=Ot,E.VibeDatePicker=ta,E.VibeDraggable=Zt,E.VibeDropdown=xt,E.VibeDroppable=_t,E.VibeFileInput=Xt,E.VibeFormCheckbox=aa,E.VibeFormDatepicker=Ut,E.VibeFormGroup=la,E.VibeFormInput=jt,E.VibeFormRadio=oa,E.VibeFormSelect=qt,E.VibeFormSpinbutton=Wt,E.VibeFormSwitch=na,E.VibeFormTextarea=Ht,E.VibeFormWysiwyg=ra,E.VibeIcon=It,E.VibeInputGroup=sa,E.VibeLink=da,E.VibeListGroup=wt,E.VibeModal=Dt,E.VibeNav=pt,E.VibeNavbar=bt,E.VibeNavbarBrand=ht,E.VibeNavbarNav=yt,E.VibeNavbarToggle=gt,E.VibeOffcanvas=Tt,E.VibePagination=kt,E.VibePlaceholder=rt,E.VibePopover=Rt,E.VibeProgress=Vt,E.VibeResizable=ea,E.VibeRow=ct,E.VibeScrollspy=Pt,E.VibeSkeleton=st,E.VibeSlider=Gt,E.VibeSortable=Jt,E.VibeSpinner=it,E.VibeStepper=Yt,E.VibeTab=St,E.VibeTabContent=vt,E.VibeTabs=Bt,E.VibeToast=Fe,E.VibeToastHost=At,E.VibeTooltip=Ft,E.default=Li,E.resetToastStoreForSSR=Go,E.useBackButton=Me,E.useBreakpoints=ia,E.useColorMode=Cr,E.useForm=Mi,E.useFormValidation=zi,E.useId=O,E.usePosition=wr,E.useToast=zt,E.vTooltip=pa,E.validators=Ai,Object.defineProperties(E,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));