@velkymx/vibeui 0.9.0 → 1.1.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 (184) hide show
  1. package/AGENTS.md +44 -0
  2. package/CLAUDE.md +48 -0
  3. package/README.md +222 -197
  4. package/dist/App.vue.d.ts +2 -1
  5. package/dist/components/HelloWorld.vue.d.ts +2 -1
  6. package/dist/components/VibeAccordion.vue.d.ts +39 -40
  7. package/dist/components/VibeAlert.vue.d.ts +21 -37
  8. package/dist/components/VibeAutocomplete.vue.d.ts +59 -31
  9. package/dist/components/VibeBadge.vue.d.ts +10 -18
  10. package/dist/components/VibeBreadcrumb.vue.d.ts +25 -21
  11. package/dist/components/VibeButton.vue.d.ts +13 -17
  12. package/dist/components/VibeButtonGroup.vue.d.ts +11 -19
  13. package/dist/components/VibeCard.vue.d.ts +51 -24
  14. package/dist/components/VibeCarousel.vue.d.ts +27 -49
  15. package/dist/components/VibeChartBar.vue.d.ts +61 -0
  16. package/dist/components/VibeChartLine.vue.d.ts +70 -0
  17. package/dist/components/VibeChartPie.vue.d.ts +34 -0
  18. package/dist/components/VibeCloseButton.vue.d.ts +9 -7
  19. package/dist/components/VibeCol.vue.d.ts +9 -17
  20. package/dist/components/VibeCollapse.vue.d.ts +24 -32
  21. package/dist/components/VibeContainer.vue.d.ts +9 -17
  22. package/dist/components/VibeDataTable.vue.d.ts +122 -63
  23. package/dist/components/VibeDatePicker.vue.d.ts +4 -6
  24. package/dist/components/VibeDraggable.vue.d.ts +9 -13
  25. package/dist/components/VibeDropdown.vue.d.ts +46 -43
  26. package/dist/components/VibeDroppable.vue.d.ts +9 -13
  27. package/dist/components/VibeFileInput.vue.d.ts +14 -20
  28. package/dist/components/VibeFormCheckbox.vue.d.ts +30 -22
  29. package/dist/components/VibeFormDatepicker.vue.d.ts +27 -30
  30. package/dist/components/VibeFormErrorSummary.vue.d.ts +17 -0
  31. package/dist/components/VibeFormGroup.vue.d.ts +10 -13
  32. package/dist/components/VibeFormInput.vue.d.ts +60 -25
  33. package/dist/components/VibeFormRadio.vue.d.ts +23 -24
  34. package/dist/components/VibeFormSelect.vue.d.ts +28 -34
  35. package/dist/components/VibeFormSpinbutton.vue.d.ts +31 -34
  36. package/dist/components/VibeFormSwitch.vue.d.ts +22 -23
  37. package/dist/components/VibeFormTextarea.vue.d.ts +24 -25
  38. package/dist/components/VibeFormWysiwyg.vue.d.ts +23 -22
  39. package/dist/components/VibeHero.vue.d.ts +117 -0
  40. package/dist/components/VibeIcon.vue.d.ts +27 -7
  41. package/dist/components/VibeInputGroup.vue.d.ts +12 -14
  42. package/dist/components/VibeLink.vue.d.ts +14 -18
  43. package/dist/components/VibeListGroup.vue.d.ts +26 -22
  44. package/dist/components/VibeModal.vue.d.ts +47 -45
  45. package/dist/components/VibeNav.vue.d.ts +40 -20
  46. package/dist/components/VibeNavbar.vue.d.ts +12 -19
  47. package/dist/components/VibeNavbarBrand.vue.d.ts +9 -17
  48. package/dist/components/VibeNavbarNav.vue.d.ts +52 -33
  49. package/dist/components/VibeNavbarToggle.vue.d.ts +7 -5
  50. package/dist/components/VibeOffcanvas.vue.d.ts +28 -43
  51. package/dist/components/VibePagination.vue.d.ts +38 -29
  52. package/dist/components/VibePlaceholder.vue.d.ts +9 -17
  53. package/dist/components/VibePopover.vue.d.ts +17 -40
  54. package/dist/components/VibeProgress.vue.d.ts +13 -21
  55. package/dist/components/VibeResizable.vue.d.ts +10 -14
  56. package/dist/components/VibeRow.vue.d.ts +9 -17
  57. package/dist/components/VibeScrollspy.vue.d.ts +37 -25
  58. package/dist/components/VibeSkeleton.vue.d.ts +2 -1
  59. package/dist/components/VibeSlider.vue.d.ts +4 -5
  60. package/dist/components/VibeSortable.vue.d.ts +37 -18
  61. package/dist/components/VibeSpinner.vue.d.ts +4 -7
  62. package/dist/components/VibeStepper.vue.d.ts +32 -31
  63. package/dist/components/VibeTab.vue.d.ts +7 -11
  64. package/dist/components/VibeTabContent.vue.d.ts +13 -31
  65. package/dist/components/VibeTabs.vue.d.ts +9 -13
  66. package/dist/components/VibeToast.vue.d.ts +31 -44
  67. package/dist/components/VibeToastHost.vue.d.ts +2 -1
  68. package/dist/components/VibeTooltip.vue.d.ts +16 -39
  69. package/dist/components/chart/chartColors.d.ts +3 -0
  70. package/dist/components/chart/chartResize.d.ts +2 -0
  71. package/dist/components/chart/chartTooltip.d.ts +2 -0
  72. package/dist/components/chart/chartTypes.d.ts +6 -0
  73. package/dist/components/chart/drawBar.d.ts +5 -0
  74. package/dist/components/chart/drawLine.d.ts +18 -0
  75. package/dist/components/chart/drawPie.d.ts +4 -0
  76. package/dist/components/dndStore.d.ts +1 -0
  77. package/dist/components/index.d.ts +6 -1
  78. package/dist/composables/useBreakpoints.d.ts +1 -0
  79. package/dist/composables/useColorMode.d.ts +1 -1
  80. package/dist/composables/useId.d.ts +1 -4
  81. package/dist/directives/vTooltip.d.ts +2 -3
  82. package/dist/injectionKeys.d.ts +34 -0
  83. package/dist/purify.es-eYghtX9j.mjs +735 -0
  84. package/dist/types.d.ts +23 -2
  85. package/dist/utils/routeKey.d.ts +11 -0
  86. package/dist/utils/safeCss.d.ts +16 -0
  87. package/dist/utils/safeHref.d.ts +7 -0
  88. package/dist/utils/sanitizeHtml.d.ts +13 -0
  89. package/dist/vibeui.css +2 -1
  90. package/dist/vibeui.es.js +8527 -5855
  91. package/dist/vibeui.umd.js +3 -1
  92. package/docs/README.md +225 -0
  93. package/docs/components/advanced/popover.md +125 -0
  94. package/docs/components/advanced/scrollspy.md +106 -0
  95. package/docs/components/advanced/tooltip.md +90 -0
  96. package/docs/components/card/card.md +223 -0
  97. package/docs/components/charts/chart-bar.md +129 -0
  98. package/docs/components/charts/chart-line.md +136 -0
  99. package/docs/components/charts/chart-pie.md +102 -0
  100. package/docs/components/core/alert.md +94 -0
  101. package/docs/components/core/badge.md +75 -0
  102. package/docs/components/core/button-group.md +99 -0
  103. package/docs/components/core/button.md +145 -0
  104. package/docs/components/core/close-button.md +82 -0
  105. package/docs/components/core/link.md +79 -0
  106. package/docs/components/core/placeholder.md +129 -0
  107. package/docs/components/core/skeleton.md +40 -0
  108. package/docs/components/core/spinner.md +103 -0
  109. package/docs/components/data/datatable.md +437 -0
  110. package/docs/components/hero/hero.md +65 -0
  111. package/docs/components/interactive/accordion.md +121 -0
  112. package/docs/components/interactive/carousel.md +112 -0
  113. package/docs/components/interactive/collapse.md +106 -0
  114. package/docs/components/interactive/date-picker.md +78 -0
  115. package/docs/components/interactive/draggable.md +91 -0
  116. package/docs/components/interactive/dropdown.md +129 -0
  117. package/docs/components/interactive/modal.md +151 -0
  118. package/docs/components/interactive/offcanvas.md +92 -0
  119. package/docs/components/interactive/resizable.md +73 -0
  120. package/docs/components/interactive/slider.md +57 -0
  121. package/docs/components/interactive/sortable.md +52 -0
  122. package/docs/components/interactive/stepper.md +83 -0
  123. package/docs/components/interactive/tabs.md +66 -0
  124. package/docs/components/interactive/toast.md +177 -0
  125. package/docs/components/layout/col.md +117 -0
  126. package/docs/components/layout/container.md +53 -0
  127. package/docs/components/layout/row.md +107 -0
  128. package/docs/components/list/list-group.md +225 -0
  129. package/docs/components/navigation/breadcrumb.md +120 -0
  130. package/docs/components/navigation/nav.md +151 -0
  131. package/docs/components/navigation/navbar.md +114 -0
  132. package/docs/components/navigation/pagination.md +163 -0
  133. package/docs/components/progress/progress.md +188 -0
  134. package/docs/composables/back-button.md +28 -0
  135. package/docs/composables/breakpoints.md +54 -0
  136. package/docs/composables/color-mode.md +179 -0
  137. package/docs/composables/use-form.md +78 -0
  138. package/docs/composables/use-position.md +68 -0
  139. package/docs/composables/use-toast.md +91 -0
  140. package/docs/directives/v-tooltip.md +58 -0
  141. package/docs/forms/README.md +87 -0
  142. package/docs/forms/autocomplete.md +96 -0
  143. package/docs/forms/file-input.md +97 -0
  144. package/docs/forms/form-checkbox.md +100 -0
  145. package/docs/forms/form-datepicker.md +80 -0
  146. package/docs/forms/form-error-summary.md +96 -0
  147. package/docs/forms/form-group.md +118 -0
  148. package/docs/forms/form-input.md +140 -0
  149. package/docs/forms/form-radio.md +82 -0
  150. package/docs/forms/form-select.md +98 -0
  151. package/docs/forms/form-spinbutton.md +94 -0
  152. package/docs/forms/form-switch.md +75 -0
  153. package/docs/forms/form-textarea.md +82 -0
  154. package/docs/forms/form-wysiwyg.md +99 -0
  155. package/docs/forms/input-group.md +70 -0
  156. package/docs/forms/validation.md +213 -0
  157. package/docs/getting-started/starter-template.md +136 -0
  158. package/docs/superpowers/plans/2026-05-12-vibe-charts.md +1999 -0
  159. package/docs/superpowers/plans/2026-05-29-e2e-browser-testing.md +615 -0
  160. package/docs/superpowers/specs/2026-05-12-charting-design.md +185 -0
  161. package/docs/superpowers/specs/2026-05-29-e2e-browser-testing-design.md +168 -0
  162. package/docs/utilities/position.md +82 -0
  163. package/docs/versioning.md +57 -0
  164. package/examples/README.md +201 -0
  165. package/examples/album.html +262 -0
  166. package/examples/blog.html +166 -0
  167. package/examples/carousel.html +114 -0
  168. package/examples/checkout.html +275 -0
  169. package/examples/cover.html +89 -0
  170. package/examples/dashboard.html +156 -0
  171. package/examples/index.html +129 -0
  172. package/examples/jumbotron.html +56 -0
  173. package/examples/mobile-dashboard.html +138 -0
  174. package/examples/pricing.html +172 -0
  175. package/examples/product.html +145 -0
  176. package/examples/sidebars.html +166 -0
  177. package/examples/sign-in.html +119 -0
  178. package/examples/starter.html +314 -0
  179. package/examples/sticky-footer-navbar.html +70 -0
  180. package/examples/sticky-footer.html +60 -0
  181. package/examples/test-simple.html +91 -0
  182. package/llms.txt +801 -0
  183. package/package.json +44 -14
  184. package/dist/types/index.d.ts +0 -6
@@ -1 +1,3 @@
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"}})}));
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue")):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.VibeUI={},e.Vue))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=Object.defineProperty,r=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},i=(e,t)=>{let r={};for(var i in e)n(r,i,{get:e[i],enumerable:!0});return t||n(r,Symbol.toStringTag,{value:`Module`}),r},a=(0,t.defineComponent)({__name:`VibeAlert`,props:{variant:{type:String,default:`primary`},subtle:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!0},dismissible:{type:Boolean,default:!1},message:{type:String,default:``},fade:{type:Boolean,default:!0}},emits:[`update:modelValue`,`close`,`closed`,`component-error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.shallowRef)(null),s=(0,t.ref)(r.modelValue),c=!1,l=!1,u=!1,d=!1,f=()=>{i(`close`)},p=()=>{o.value=null,s.value=!1,i(`update:modelValue`,!1),i(`closed`)},m=()=>{c||!a.value||(a.value.addEventListener(`close.bs.alert`,f),a.value.addEventListener(`closed.bs.alert`,p),c=!0)},h=()=>{!c||!a.value||(a.value.removeEventListener(`close.bs.alert`,f),a.value.removeEventListener(`closed.bs.alert`,p),c=!1)},g=async()=>{if(l){u=!0;return}l=!0,h();try{if(!a.value)return;o.value&&=(o.value.dispose(),null);let e=await import(`bootstrap`);if(!a.value||d)return;o.value=new e.Alert(a.value),m()}catch(e){i(`component-error`,{message:`Bootstrap JS not loaded. Alert will use basic Vue logic.`,componentName:`VibeAlert`,originalError:e})}finally{l=!1,u&&(u=!1,g())}};(0,t.onMounted)(()=>{s.value&&g()}),(0,t.onBeforeUnmount)(()=>{d=!0,h(),o.value&&=(o.value.dispose(),null)}),(0,t.watch)(()=>r.modelValue,async e=>{e?(s.value=!0,await(0,t.nextTick)(),g()):s.value?o.value?o.value.close():(s.value=!1,i(`update:modelValue`,!1),i(`closed`)):s.value=!1});let _=()=>{o.value?o.value.close():(s.value=!1,i(`update:modelValue`,!1),i(`closed`))},v=(0,t.computed)(()=>{let e=[`alert`];return r.subtle?e.push(`bg-${r.variant}-subtle`,`text-${r.variant}-emphasis`,`border-${r.variant}-subtle`):e.push(`alert-${r.variant}`),r.dismissible&&e.push(`alert-dismissible`),r.fade&&e.push(`fade`,`show`),e.join(` `)});return(n,r)=>s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`alertRef`,ref:a,class:(0,t.normalizeClass)(v.value),role:`alert`},[e.message?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createTextVNode)((0,t.toDisplayString)(e.message),1)],64)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`),e.dismissible?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`btn-close`,"aria-label":`Close`,onClick:_})):(0,t.createCommentVNode)(``,!0)],2)):(0,t.createCommentVNode)(``,!0)}}),o=(0,t.defineComponent)({__name:`VibeBadge`,props:{variant:{type:String,default:`primary`},subtle:{type:Boolean,default:!1},pill:{type:Boolean,default:!1},tag:{type:String,default:`span`}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[`badge`];return n.subtle?e.push(`bg-${n.variant}-subtle`,`text-${n.variant}-emphasis`):e.push(`bg-${n.variant}`),n.pill&&e.push(`rounded-pill`),e.join(` `)});return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(r.value)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`class`]))}}),s=(0,t.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(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null);(0,t.onMounted)(()=>{});let o=(0,t.computed)(()=>r.href?`a`:r.to?r.disabled?`span`:`router-link`:`button`),s=(0,t.computed)(()=>{let e=[`btn`];return r.variant===`link`?e.push(`btn-link`):r.outline?e.push(`btn-outline-${r.variant}`):e.push(`btn-${r.variant}`),r.size&&e.push(`btn-${r.size}`),r.active&&e.push(`active`),r.focusRing&&e.push(`focus-ring`),r.disabled&&o.value!==`button`&&e.push(`disabled`),e.join(` `)}),c=e=>{if(r.disabled){e.preventDefault();return}i(`click`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(o.value),{ref_key:`rootRef`,ref:a,class:(0,t.normalizeClass)(s.value),type:e.href||e.to?void 0:e.type,href:e.href,to:e.to||void 0,disabled:o.value===`button`?e.disabled:void 0,"aria-disabled":e.disabled||void 0,onClick:c},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),_:3},8,[`class`,`type`,`href`,`to`,`disabled`,`aria-disabled`]))}}),c=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},l=c(s,[[`__scopeId`,`data-v-17d9412e`]]),u=[`role`,`aria-label`],d=(0,t.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}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[n.vertical?`btn-group-vertical`:`btn-group`];return n.size&&e.push(`btn-group-${n.size}`),e.join(` `)});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r.value),role:e.role,"aria-label":e.ariaLabel},[(0,t.renderSlot)(n.$slots,`default`)],10,u))}}),f=[`disabled`,`aria-label`],p=(0,t.defineComponent)({__name:`VibeCloseButton`,props:{disabled:{type:Boolean,default:!1},white:{type:Boolean,default:!1},ariaLabel:{type:String,default:`Close`}},emits:[`click`,`component-error`],setup(e,{emit:n}){let r=e,i=n,a=e=>{r.disabled||i(`click`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)([`btn-close`,{"btn-close-white":e.white}]),disabled:e.disabled,"aria-label":e.ariaLabel,onClick:a},null,10,f))}}),m={class:`visually-hidden`},h=(0,t.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`}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[`spinner-${n.type}`];return n.variant&&e.push(`text-${n.variant}`),n.size&&e.push(`spinner-${n.type}-${n.size}`),e.join(` `)});return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(r.value),role:`status`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,m,(0,t.toDisplayString)(e.label),1)]),_:1},8,[`class`]))}}),g=(0,t.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`}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[`placeholder`];return n.variant&&e.push(`bg-${n.variant}`),n.size&&e.push(`placeholder-${n.size}`),e.join(` `)}),i=(0,t.computed)(()=>{if(n.animation)return`placeholder-${n.animation}`}),a=(0,t.computed)(()=>{if(n.width)return{width:typeof n.width==`number`?`${n.width}%`:n.width}});return(n,o)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(i.value)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)(r.value),style:(0,t.normalizeStyle)(a.value)},[(0,t.renderSlot)(n.$slots,`default`)],6)]),_:3},8,[`class`]))}}),_=c((0,t.defineComponent)({inheritAttrs:!1,__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(e){let n=e,r=e=>{if(e!==void 0)return typeof e==`number`?`${e}px`:e},i=(0,t.computed)(()=>{let e=[`vibe-skeleton`];return n.animated&&e.push(`vibe-skeleton-animated`),e}),a=(0,t.computed)(()=>Math.max(1,n.lines)),o=(0,t.computed)(()=>n.variant===`circle`?r(n.width):void 0),s=(0,t.computed)(()=>{if(n.variant!==`circle`)return;let e=r(n.height);return e===void 0?r(n.width):e}),c={"aria-busy":`true`,role:`status`};return(n,l)=>e.variant===`text`?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(a.value,i=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({key:i,class:[`vibe-skeleton`,`vibe-skeleton-text`,e.animated?`vibe-skeleton-animated`:``,i===a.value&&a.value>1?`vibe-skeleton-text-last`:``],style:{width:i===a.value&&a.value>1?`60%`:r(e.width),height:r(e.height)}},{ref_for:!0},n.$attrs,{role:`status`,"aria-busy":`true`}),null,16))),128)):e.variant===`rect`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({key:1,class:[...i.value,`vibe-skeleton-rect`],style:{width:r(e.width),height:r(e.height)}},{...n.$attrs,...c}),null,16)):e.variant===`circle`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({key:2,class:[...i.value,`vibe-skeleton-circle`],style:{width:o.value,height:s.value}},{...n.$attrs,...c}),null,16)):e.variant===`card`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({key:3,class:`vibe-skeleton-card`},{...n.$attrs,...c}),[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`vibe-skeleton`,`vibe-skeleton-rect`,e.animated?`vibe-skeleton-animated`:``]),style:(0,t.normalizeStyle)({width:`100%`,height:r(e.height)||`160px`})},null,6),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`vibe-skeleton`,`vibe-skeleton-text`,e.animated?`vibe-skeleton-animated`:``]),style:{width:`80%`}},null,2),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`vibe-skeleton`,`vibe-skeleton-text`,`vibe-skeleton-text-last`,e.animated?`vibe-skeleton-animated`:``]),style:{width:`50%`}},null,2)],16)):(0,t.createCommentVNode)(``,!0)}}),[[`__scopeId`,`data-v-c0c2699d`]]),v=(0,t.defineComponent)({__name:`VibeContainer`,props:{fluid:{type:[Boolean,String],default:!1},tag:{type:String,default:`div`}},setup(e){let n=e,r=(0,t.computed)(()=>n.fluid===!1?`container`:n.fluid===!0?`container-fluid`:`container-${n.fluid}`);return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(r.value)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`class`]))}}),y=(0,t.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}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[`row`];n.gutters!==void 0&&e.push(`g-${n.gutters}`),n.guttersX!==void 0&&e.push(`gx-${n.guttersX}`),n.guttersY!==void 0&&e.push(`gy-${n.guttersY}`);let t=[`sm`,`md`,`lg`,`xl`,`xxl`];return t.forEach(t=>{let r=t.charAt(0).toUpperCase()+t.slice(1),i=`gutters${r}`;n[i]!==void 0&&e.push(`g-${t}-${n[i]}`);let a=`guttersX${r}`;n[a]!==void 0&&e.push(`gx-${t}-${n[a]}`);let o=`guttersY${r}`;n[o]!==void 0&&e.push(`gy-${t}-${n[o]}`)}),n.rowCols!==void 0&&e.push(`row-cols-${n.rowCols}`),t.forEach(t=>{let r=`rowCols${t.charAt(0).toUpperCase()+t.slice(1)}`;n[r]!==void 0&&e.push(`row-cols-${t}-${n[r]}`)}),n.alignItems&&e.push(`align-items-${n.alignItems}`),n.justifyContent&&e.push(`justify-content-${n.justifyContent}`),e.join(` `)});return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(r.value)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`class`]))}}),b=(0,t.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}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[];return n.cols!==void 0||n.sm!==void 0||n.md!==void 0||n.lg!==void 0||n.xl!==void 0||n.xxl!==void 0?(n.cols===!0?e.push(`col`):n.cols===`auto`?e.push(`col-auto`):n.cols&&e.push(`col-${n.cols}`),[{name:`sm`,value:n.sm},{name:`md`,value:n.md},{name:`lg`,value:n.lg},{name:`xl`,value:n.xl},{name:`xxl`,value:n.xxl}].forEach(({name:t,value:n})=>{n===!0?e.push(`col-${t}`):n===`auto`?e.push(`col-${t}-auto`):n!==void 0&&e.push(`col-${t}-${n}`)})):e.push(`col`),n.offset!==void 0&&e.push(`offset-${n.offset}`),n.offsetSm!==void 0&&e.push(`offset-sm-${n.offsetSm}`),n.offsetMd!==void 0&&e.push(`offset-md-${n.offsetMd}`),n.offsetLg!==void 0&&e.push(`offset-lg-${n.offsetLg}`),n.offsetXl!==void 0&&e.push(`offset-xl-${n.offsetXl}`),n.offsetXxl!==void 0&&e.push(`offset-xxl-${n.offsetXxl}`),n.order!==void 0&&e.push(`order-${n.order}`),n.orderSm!==void 0&&e.push(`order-sm-${n.orderSm}`),n.orderMd!==void 0&&e.push(`order-md-${n.orderMd}`),n.orderLg!==void 0&&e.push(`order-lg-${n.orderLg}`),n.orderXl!==void 0&&e.push(`order-xl-${n.orderXl}`),n.orderXxl!==void 0&&e.push(`order-xxl-${n.orderXxl}`),n.alignSelf&&e.push(`align-self-${n.alignSelf}`),e.join(` `)});return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(r.value)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`class`]))}}),x=[`src`,`alt`],S={key:0,class:`card-title`},C={key:1,class:`card-text`},w=[`src`,`alt`],T=(0,t.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},headerClass:{type:[String,Array,Object],default:void 0},bodyClass:{type:[String,Array,Object],default:void 0},footerClass:{type:[String,Array,Object],default:void 0},imgSrc:{type:String,default:void 0},imgAlt:{type:String,default:``},imgTop:{type:Boolean,default:!1},imgBottom:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[`card`];return n.variant&&e.push(`text-bg-${n.variant}`),n.border&&e.push(`border-${n.border}`),n.textVariant&&e.push(`text-${n.textVariant}`),e.join(` `)});return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(r.value)},{default:(0,t.withCtx)(()=>[e.imgSrc&&e.imgTop?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:e.imgSrc,alt:e.imgAlt,class:`card-img-top`},null,8,x)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`image`),e.header||n.$slots.header?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)([`card-header`,e.headerClass])},[(0,t.renderSlot)(n.$slots,`header`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.header),1)])],2)):(0,t.createCommentVNode)(``,!0),e.title||e.body||n.$slots.title||n.$slots.body||n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)([`card-body`,e.bodyClass])},[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`h5`,S,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)])])):(0,t.createCommentVNode)(``,!0),e.body||n.$slots.body?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,C,[(0,t.renderSlot)(n.$slots,`body`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.body),1)])])):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`)],2)):(0,t.createCommentVNode)(``,!0),e.footer||n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:3,class:(0,t.normalizeClass)([`card-footer`,e.footerClass])},[(0,t.renderSlot)(n.$slots,`footer`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.footer),1)])],2)):(0,t.createCommentVNode)(``,!0),e.imgSrc&&e.imgBottom?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:4,src:e.imgSrc,alt:e.imgAlt,class:`card-img-bottom`},null,8,w)):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`class`]))}}),E=/^(https?:\/\/|\/(?!\/)|\.\.?\/|#)/i;function D(e){if(!(e===void 0||e===``))return E.test(e)?e:void 0}var O=/^(auto|0|[\d.]+(%|px|rem|em|vh|vw|dvh|dvw|svh|svw|ch|ex|vmin|vmax))$/,k=/^(#[0-9a-fA-F]{3,8}|rgba?\(\s*[\d.,\s]+\)|hsla?\(\s*[\d.,\s%]+\)|var\(--[\w-]+(?:\s*,\s*[^)]+)?\)|[a-zA-Z]+)$/,ee=new Set([`width`,`minWidth`,`maxWidth`,`textAlign`,`verticalAlign`,`padding`,`paddingLeft`,`paddingRight`,`paddingTop`,`paddingBottom`,`whiteSpace`,`overflow`,`textOverflow`,`fontWeight`,`fontSize`,`color`,`backgroundColor`,`cursor`,`border`,`borderLeft`,`borderRight`,`borderTop`,`borderBottom`]);function A(e){if(e!==void 0)return O.test(e.trim())?e:void 0}function j(e){if(e!==void 0)return k.test(e.trim())?e:void 0}function te(e){return e?Object.fromEntries(Object.entries(e).filter(([e])=>ee.has(e))):{}}var ne=(0,t.defineComponent)({__name:`VibeHero`,props:{variant:{type:String,default:void 0},textVariant:{type:String,default:void 0},border:{type:String,default:void 0},align:{type:String,default:`center`},fluid:{type:[Boolean,String],default:!1},minHeight:{type:String,default:void 0},bgImage:{type:String,default:void 0},overlay:{type:[Boolean,String],default:!1},overlayOpacity:{type:Number,default:.5},gradient:{type:String,default:void 0},tag:{type:String,default:`section`}},setup(e){let n=e,r=/^(?:repeating-)?(?:linear|radial|conic)-gradient\([^;{}]*\)$/i,i=e=>{if(!e)return;let t=e.trim();if(!/url\(|expression\(|javascript:/i.test(t))return r.test(t)?t:void 0},a=(0,t.computed)(()=>{let e=[`py-5`,`text-${n.align}`];return n.variant&&e.push(`bg-${n.variant}`),n.textVariant&&e.push(`text-${n.textVariant}`),n.border&&e.push(`border`,`border-${n.border}`,`rounded-3`),A(n.minHeight)&&e.push(`d-flex`,`align-items-center`),e}),o=(0,t.computed)(()=>n.fluid===!0?`container-fluid`:typeof n.fluid==`string`?`container-${n.fluid}`:`container`),s=(0,t.computed)(()=>{let e={},t=D(n.bgImage),r=i(n.gradient),a=[];if(r)a.push(r);else if(t&&n.overlay){let e=Math.min(1,Math.max(0,n.overlayOpacity)),t=typeof n.overlay==`string`?j(n.overlay)??`rgba(0, 0, 0, ${e})`:`rgba(0, 0, 0, ${e})`;a.push(`linear-gradient(${t}, ${t})`)}t&&a.push(`url("${t}")`),a.length&&(e.backgroundImage=a.join(`, `),t&&(e.backgroundSize=`cover`,e.backgroundPosition=`center`));let o=A(n.minHeight);return o&&(e.minHeight=o),e}),c=(0,t.computed)(()=>Object.keys(s.value).length>0);return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(a.value),style:(0,t.normalizeStyle)(c.value?s.value:void 0)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(o.value)},[(0,t.renderSlot)(n.$slots,`default`)],2)]),_:3},8,[`class`,`style`]))}}),re=[`aria-label`],M={class:`breadcrumb`},ie=[`aria-current`],ae=(0,t.defineComponent)({__name:`VibeBreadcrumb`,props:{ariaLabel:{type:String,default:`breadcrumb`},items:{type:Array,required:!0}},emits:[`item-click`,`component-error`],setup(e,{emit:n}){let r=n,i=(e,t,n)=>{e.active||r(`item-click`,{item:e,index:t,event:n})};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{"aria-label":e.ariaLabel},[(0,t.createElementVNode)(`ol`,M,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.href||e.text||String(r),class:(0,t.normalizeClass)([`breadcrumb-item`,{active:e.active}]),"aria-current":e.active?`page`:void 0},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.active?`span`:(0,t.unref)(D)(e.href)?`a`:e.to?`router-link`:`button`),{href:e.active?void 0:(0,t.unref)(D)(e.href),to:e.active?void 0:e.to,type:!e.active&&!e.href&&!e.to?`button`:void 0,onClick:t=>i(e,r,t)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`item`,{item:e,index:r},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])]),_:2},1032,[`href`,`to`,`type`,`onClick`]))],10,ie))),128))])],8,re))}});function oe(e){return e==null?``:typeof e==`string`?e:JSON.stringify(e)}var se={class:`dropdown-menu`},ce={key:0,class:`dropdown-divider`},le={key:1,class:`dropdown-header`},ue=(0,t.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(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=new Map,c=!1,l=!1,u=!1,d=(0,t.computed)(()=>{let e=[`nav`];return i.pills&&e.push(`nav-pills`),i.tabs&&e.push(`nav-tabs`),i.vertical&&e.push(`flex-column`),i.justified&&e.push(`nav-justified`),i.fill&&e.push(`nav-fill`),i.underline&&e.push(`nav-underline`),e.join(` `)}),f=e=>a(`show`,e),p=e=>a(`shown`,e),m=e=>a(`hide`,e),h=e=>a(`hidden`,e),g=async()=>{if(!(!o.value||c)){c=!0;try{let e=(await import(`bootstrap`)).Tab;if(!o.value||u)return;o.value.querySelectorAll(`[data-bs-toggle="tab"], [data-bs-toggle="pill"]`).forEach(t=>{let n=t;if(!s.has(n)){let t=new e(n);s.set(n,t),n.addEventListener(`show.bs.tab`,f),n.addEventListener(`shown.bs.tab`,p),n.addEventListener(`hide.bs.tab`,m),n.addEventListener(`hidden.bs.tab`,h)}})}catch(e){a(`component-error`,{message:`Bootstrap JS not loaded. Nav will use basic Vue logic.`,componentName:`VibeNav`,originalError:e})}finally{c=!1}}};(0,t.onMounted)(g),(0,t.onBeforeUnmount)(()=>{u=!0,s.forEach((e,t)=>{t.removeEventListener(`show.bs.tab`,f),t.removeEventListener(`shown.bs.tab`,p),t.removeEventListener(`hide.bs.tab`,m),t.removeEventListener(`hidden.bs.tab`,h),e.dispose()}),s.clear()}),(0,t.watch)(()=>i.items,async()=>{if(!l){l=!0;try{s.forEach((e,t)=>{t.removeEventListener(`show.bs.tab`,f),t.removeEventListener(`shown.bs.tab`,p),t.removeEventListener(`hide.bs.tab`,m),t.removeEventListener(`hidden.bs.tab`,h),e.dispose()}),s.clear(),await(0,t.nextTick)(),await g()}finally{l=!1}}},{deep:!1});let _=e=>{if(e.href?.startsWith(`#`))return e.href;if(e.target)return e.target;if(typeof e.to==`string`){let t=e.to.indexOf(`#`);if(t!==-1)return e.to.slice(t)}},v=(e,t,n)=>{e.disabled||a(`item-click`,{item:e,index:t,event:n})};return n({refresh:async()=>{s.forEach((e,t)=>{t.removeEventListener(`show.bs.tab`,f),t.removeEventListener(`shown.bs.tab`,p),t.removeEventListener(`hide.bs.tab`,m),t.removeEventListener(`hidden.bs.tab`,h),e.dispose()}),s.clear(),await(0,t.nextTick)(),await g()},_unsafe_bsInstances:s}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{ref_key:`navRef`,ref:o,class:(0,t.normalizeClass)(d.value)},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r.href||(0,t.unref)(oe)(r.to)||r.text||String(i),class:(0,t.normalizeClass)([`nav-item`,{dropdown:r.children&&r.children.length>0}])},[r.children&&r.children.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`nav-link dropdown-toggle`,{active:r.active,disabled:r.disabled}]),"data-bs-toggle":`dropdown`,"aria-expanded":`false`},(0,t.toDisplayString)(r.text),3),(0,t.createElementVNode)(`ul`,se,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.children,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.href||e.text||String(n)},[e.divider?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,ce)):e.header?((0,t.openBlock)(),(0,t.createElementBlock)(`h6`,le,(0,t.toDisplayString)(e.text),1)):((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(D)(e.href)?`a`:e.to?`router-link`:`button`),{key:2,class:(0,t.normalizeClass)([`dropdown-item`,{active:e.active,disabled:e.disabled}]),href:(0,t.unref)(D)(e.href),to:e.to,type:!e.href&&!e.to?`button`:void 0},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)]),_:2},1032,[`class`,`href`,`to`,`type`]))]))),128))])],64)):((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(D)(r.href)?`a`:r.to?`router-link`:`button`),{key:1,class:(0,t.normalizeClass)([`nav-link`,{active:r.active,disabled:r.disabled}]),href:(0,t.unref)(D)(r.href),to:r.to,type:!r.href&&!r.to?`button`:void 0,disabled:!r.href&&!r.to&&r.disabled||void 0,"aria-current":r.active?`page`:void 0,"data-bs-toggle":(e.tabs||e.pills)&&_(r)?e.tabs?`tab`:`pill`:void 0,"data-bs-target":_(r),onClick:e=>v(r,i,e)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`item`,{item:r,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(r.text),1)])]),_:2},1032,[`class`,`href`,`to`,`type`,`disabled`,`aria-current`,`data-bs-toggle`,`data-bs-target`,`onClick`]))],2))),128))]),_:3},8,[`class`]))}}),N=Symbol(`vibeFormGroup`),de=Symbol(`vibeNavbarCollapse`),P=Symbol(`vibeTabsContext`),fe=c((0,t.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`}},setup(e){let n=e,r=(0,t.reactive)({});(0,t.provide)(de,{collapseStates:r,toggleCollapse:e=>{r[e]=!r[e]}});let i=(0,t.computed)(()=>{let e=[`navbar`];return n.expand===!0?e.push(`navbar-expand`):typeof n.expand==`string`&&e.push(`navbar-expand-${n.expand}`),n.variant&&e.push(`bg-${n.variant}`),n.position&&e.push(n.position),e.join(` `)}),a=(0,t.computed)(()=>{if(n.theme)return n.theme;if(n.variant===`dark`)return`dark`;if(n.variant===`light`)return`light`}),o=(0,t.computed)(()=>{if(n.container!==!1)return n.container===!0?`container-fluid`:`container-${n.container}`});return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(i.value),"data-bs-theme":a.value},{default:(0,t.withCtx)(()=>[o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)(o.value)},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2)):(0,t.renderSlot)(n.$slots,`default`,{key:1},void 0,!0)]),_:3},8,[`class`,`data-bs-theme`]))}}),[[`__scopeId`,`data-v-c3e6fe24`]]),F=(0,t.defineComponent)({__name:`VibeNavbarBrand`,props:{href:{type:String,default:void 0},to:{type:[String,Object],default:void 0}},setup(e){let n=e,r=D(n.href)?`a`:n.to?`router-link`:`span`;return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(r)),{class:`navbar-brand`,href:(0,t.unref)(D)(e.href),to:e.to},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`href`,`to`]))}}),pe=[`aria-controls`,`aria-expanded`,`aria-label`],I=(0,t.defineComponent)({__name:`VibeNavbarToggle`,props:{target:{type:String,required:!0},ariaLabel:{type:String,default:`Toggle navigation`}},emits:[`component-error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(de,null),o=(0,t.computed)(()=>a?.collapseStates[r.target]??!1),s=async()=>{if(a){a.toggleCollapse(r.target);return}try{let e=document.getElementById(r.target);e&&(await import(`bootstrap`)).Collapse.getOrCreateInstance(e).toggle()}catch(e){i(`component-error`,{message:`Bootstrap JS toggle failed.`,componentName:`VibeNavbarToggle`,originalError:e})}};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{class:`navbar-toggler`,type:`button`,"aria-controls":e.target,"aria-expanded":o.value,"aria-label":e.ariaLabel,onClick:s},[...r[0]||=[(0,t.createElementVNode)(`span`,{class:`navbar-toggler-icon`},null,-1)]],8,pe))}}),me={class:`dropdown-menu`},he={key:0},ge={key:1},_e={class:`dropdown-header`},ve={key:2},ye=(0,t.defineComponent)({__name:`VibeNavbarNav`,props:{tag:{type:String,default:`ul`},items:{type:Array,default:void 0}},emits:[`item-click`,`dropdown-item-click`,`component-error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=new Map,s=async()=>{if(a.value)try{let e=(await import(`bootstrap`)).Dropdown;a.value.querySelectorAll(`[data-bs-toggle="dropdown"]`).forEach(t=>{o.has(t)||o.set(t,new e(t))})}catch(e){i(`component-error`,{message:`Bootstrap JS not loaded. Dropdowns will use data attributes only.`,componentName:`VibeNavbarNav`,originalError:e})}};(0,t.onMounted)(s),(0,t.onBeforeUnmount)(()=>{o.forEach(e=>e.dispose()),o.clear()}),(0,t.watch)(()=>r.items,async()=>{o.forEach(e=>e.dispose()),o.clear(),await(0,t.nextTick)(),await s()},{deep:!1});let c=e=>{let t=[`nav-item`];return e.children?.length&&t.push(`dropdown`),t.join(` `)},l=e=>{let t=[`nav-link`];return e.active&&t.push(`active`),e.disabled&&t.push(`disabled`),e.children?.length&&t.push(`dropdown-toggle`),t.join(` `)},u=e=>e.href?`a`:e.to?`router-link`:`button`,d=e=>{let t=[`dropdown-item`];return e.active&&t.push(`active`),e.disabled&&t.push(`disabled`),t.join(` `)},f=(e,t,n)=>{e.disabled||i(`item-click`,{item:e,index:t,event:n})},p=(e,t,n,r,a)=>{!n.disabled&&!n.divider&&!n.header&&i(`dropdown-item-click`,{item:e,itemIndex:t,child:n,childIndex:r,event:a})};return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{ref_key:`navbarNavRef`,ref:a,class:`navbar-nav`},{default:(0,t.withCtx)(()=>[e.items&&e.items.length>0?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.items,(e,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.href||e.text||String(i),class:(0,t.normalizeClass)(c(e))},[e.children?.length?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)(l(e)),"data-bs-toggle":`dropdown`,"aria-expanded":`false`},[(0,t.renderSlot)(n.$slots,`item`,{item:e,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])],2),(0,t.createElementVNode)(`ul`,me,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.children,(a,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:a.href||a.text||String(o)},[a.divider?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,he,[...r[0]||=[(0,t.createElementVNode)(`hr`,{class:`dropdown-divider`},null,-1)]])):a.header?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,ge,[(0,t.createElementVNode)(`h6`,_e,(0,t.toDisplayString)(a.text),1)])):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,ve,[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(a.href?`a`:a.to?`router-link`:`button`),{class:(0,t.normalizeClass)(d(a)),href:a.href,to:a.to,type:!a.href&&!a.to?`button`:void 0,onClick:t=>p(e,i,a,o,t)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`dropdown-item`,{item:e,child:a,index:i,childIndex:o},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(a.text),1)])]),_:2},1032,[`class`,`href`,`to`,`type`,`onClick`]))]))],64))),128))])],64)):((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(u(e)),{key:1,class:(0,t.normalizeClass)(l(e)),href:e.href||void 0,to:e.to,type:!e.href&&!e.to?`button`:void 0,"aria-current":e.active?`page`:void 0,"aria-disabled":e.disabled,onClick:t=>f(e,i,t)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`item`,{item:e,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])]),_:2},1032,[`class`,`href`,`to`,`type`,`aria-current`,`aria-disabled`,`onClick`]))],2))),128)):(0,t.renderSlot)(n.$slots,`default`,{key:1})]),_:3},512))}}),be=[`aria-label`],xe=[`disabled`],Se={key:0,class:`page-item disabled`,"aria-hidden":`true`},Ce=[`aria-current`,`onClick`],we=[`disabled`],Te=(0,t.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,validator:e=>!0},showPrevNext:{type:Boolean,default:!0},prevText:{type:String,default:`Previous`},nextText:{type:String,default:`Next`},maxVisiblePages:{type:Number,default:7}},emits:[`update:currentPage`,`page-click`,`component-error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>{let e=[`pagination`];return r.size&&e.push(`pagination-${r.size}`),e.join(` `)}),o=(0,t.computed)(()=>{let e=r.totalPages;if(e===0)return[];let t=Math.max(5,r.maxVisiblePages);if(e<=t)return Array.from({length:e},(e,t)=>t+1);let n=Math.max(1,t-4),i=Math.floor(n/2),a=Math.max(2,r.currentPage-i),o=a+n-1;o>e-1&&(o=e-1,a=Math.max(2,o-n+1));let s=[1];a>2&&s.push(null);for(let e=a;e<=o;e++)s.push(e);return o<e-1&&s.push(null),s.push(e),s}),s=e=>{e>=1&&e<=r.totalPages&&(i(`update:currentPage`,e),i(`page-click`,e))},c=(0,t.computed)(()=>r.totalPages===0||r.currentPage<=1),l=(0,t.computed)(()=>r.totalPages===0||r.currentPage>=r.totalPages);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{"aria-label":e.ariaLabel},[(0,t.createElementVNode)(`ul`,{class:(0,t.normalizeClass)(a.value)},[e.showPrevNext?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:0,class:(0,t.normalizeClass)([`page-item`,{disabled:c.value}])},[(0,t.createElementVNode)(`button`,{class:`page-link`,type:`button`,disabled:c.value,onClick:r[0]||=t=>s(e.currentPage-1)},[(0,t.renderSlot)(n.$slots,`prev`,{disabled:c.value},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.prevText),1)])],8,xe)],2)):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(i,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:i===null?`e${a}`:`p${i}`},[i===null?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,Se,[...r[2]||=[(0,t.createElementVNode)(`span`,{class:`page-link`},`…`,-1)]])):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:1,class:(0,t.normalizeClass)([`page-item`,{active:i===e.currentPage}])},[(0,t.createElementVNode)(`button`,{class:`page-link`,type:`button`,"aria-current":i===e.currentPage?`page`:void 0,onClick:e=>s(i)},[(0,t.renderSlot)(n.$slots,`page`,{page:i,active:i===e.currentPage},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(i),1)])],8,Ce)],2))],64))),128)),e.showPrevNext?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:1,class:(0,t.normalizeClass)([`page-item`,{disabled:l.value}])},[(0,t.createElementVNode)(`button`,{class:`page-link`,type:`button`,disabled:l.value,onClick:r[1]||=t=>s(e.currentPage+1)},[(0,t.renderSlot)(n.$slots,`next`,{disabled:l.value},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.nextText),1)])],8,we)],2)):(0,t.createCommentVNode)(``,!0)],2)],8,be))}}),Ee=[`id`,`aria-labelledby`],De=(0,t.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}},setup(e){let n=e,r=e=>{let t=[`tab-pane`];return n.fade&&t.push(`fade`),e.active&&t.push(`show`,`active`),t.join(` `)};return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{id:e.id,class:`tab-content`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.panes,(e,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,id:e.id,class:(0,t.normalizeClass)(r(e)),role:`tabpanel`,"aria-labelledby":`${e.id}-tab`,tabindex:`0`},[(0,t.renderSlot)(n.$slots,`pane`,{pane:e,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)])],10,Ee))),128))]),_:3},8,[`id`]))}}),Oe=[`disabled`,`aria-selected`,`onClick`],ke=(0,t.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(e,{emit:n}){let r=e,i=n,a=(0,t.reactive)([]),o=(0,t.ref)(r.modelValue),s=(0,t.reactive)(new Set),c=(0,t.computed)(()=>o.value);(0,t.watch)(()=>r.modelValue,e=>{e===void 0?o.value=void 0:e!==o.value&&(o.value=e,s.add(e))});let l=e=>{o.value!==e&&(o.value=e,s.add(e),i(`update:modelValue`,e),i(`change`,e))},u=(0,t.computed)(()=>{let e=[`nav`];return r.variant===`tabs`?e.push(`nav-tabs`):r.variant===`pills`?e.push(`nav-pills`):r.variant===`underline`&&e.push(`nav-underline`),r.fill&&e.push(`nav-fill`),r.justified&&e.push(`nav-justified`),r.vertical&&e.push(`flex-column`),e.join(` `)}),d=(0,t.computed)(()=>r.vertical?`d-flex`:``);return(0,t.provide)(P,{register:(e,n,r)=>{a.find(t=>t.name===e)||(a.push({name:e,label:n,disabled:r}),o.value===void 0&&!r&&(o.value=e,s.add(e),(0,t.nextTick)(()=>i(`update:modelValue`,e))))},unregister:e=>{let t=o.value===e,n=a.filter(t=>t.name!==e);if(a.splice(0,a.length,...n),s.delete(e),t){let e=a.find(e=>!e.disabled)?.name;o.value=e,e!==void 0&&(s.add(e),i(`update:modelValue`,e),i(`change`,e))}},isActive:e=>o.value===e,hasBeenActive:e=>s.has(e),get lazy(){return r.lazy}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`vibe-tabs`,d.value])},[(0,t.createElementVNode)(`ul`,{class:(0,t.normalizeClass)(u.value),role:`tablist`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.name,class:`nav-item`,role:`presentation`},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`nav-link`,{active:e.name===c.value,disabled:e.disabled}]),disabled:e.disabled,"aria-selected":e.name===c.value,role:`tab`,onClick:t=>l(e.name)},(0,t.toDisplayString)(e.label),11,Oe)]))),128))],2),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`tab-content`,{"flex-grow-1 ms-3":e.vertical}])},[(0,t.renderSlot)(n.$slots,`default`)],2)],2))}}),Ae=(0,t.defineComponent)({__name:`VibeTab`,props:{name:{type:String,required:!0},label:{type:String,required:!0},disabled:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.inject)(P,null);r||console.error(`[VibeTab] must be a descendant of <VibeTabs>`),(0,t.onMounted)(()=>{r?.register(n.name,n.label,n.disabled)}),(0,t.onBeforeUnmount)(()=>{r?.unregister(n.name)});let i=(0,t.computed)(()=>r?.isActive(n.name)??!1),a=(0,t.computed)(()=>!r||!r.lazy?!0:r.hasBeenActive(n.name));return(e,n)=>a.value?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`tab-pane`,{active:i.value,show:i.value}]),role:`tabpanel`},[(0,t.renderSlot)(e.$slots,`default`)],2)),[[t.vShow,i.value]]):(0,t.createCommentVNode)(``,!0)}}),je=(0,t.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(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>{let e=[`list-group`];return r.flush&&e.push(`list-group-flush`),r.numbered&&e.push(`list-group-numbered`),r.horizontal===!0?e.push(`list-group-horizontal`):typeof r.horizontal==`string`&&e.push(`list-group-horizontal-${r.horizontal}`),e.join(` `)}),o=e=>{let t=[`list-group-item`];return(D(e.href)||e.to||!e.disabled)&&t.push(`list-group-item-action`),e.active&&t.push(`active`),e.disabled&&t.push(`disabled`),e.variant&&t.push(`list-group-item-${e.variant}`),t.join(` `)},s=(e,t,n)=>{e.disabled||i(`item-click`,{item:e,index:t,event:n})};return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(a.value)},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(e,r)=>(0,t.withMemo)([e.href,e.to,e.active,e.disabled,e.variant,e.text],()=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(D)(e.href)?`a`:e.to?`router-link`:`li`),{class:(0,t.normalizeClass)(o(e)),style:(0,t.normalizeStyle)(!(0,t.unref)(D)(e.href)&&!e.to&&!e.disabled?{cursor:`pointer`}:void 0),href:(0,t.unref)(D)(e.href),to:e.to,"aria-disabled":e.disabled||void 0,"aria-current":e.active,onClick:t=>s(e,r,t)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`item`,{item:e,index:r},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])]),_:2},1032,[`class`,`style`,`href`,`to`,`aria-disabled`,`aria-current`,`onClick`])),{key:e.href??e.text??r},0)),128))]),_:3},8,[`class`]))}}),Me=[`aria-label`,`aria-valuenow`,`aria-valuemax`],Ne=(0,t.defineComponent)({__name:`VibeProgress`,props:{height:{type:String,default:void 0},bars:{type:Array,required:!0}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=A(n.height);return e?{height:e}:void 0}),i=e=>{let t=[`progress-bar`];return e.variant&&t.push(`bg-${e.variant}`),(e.striped||e.animated)&&t.push(`progress-bar-striped`),e.animated&&t.push(`progress-bar-animated`),t.join(` `)},a=e=>{if(e.max!==void 0&&e.max<=0)return{width:`0%`};let t=e.max||100,n=Number.isFinite(e.value)?e.value:0;return{width:`${Math.min(100,Math.max(0,n/t*100))}%`}},o=e=>{if(e.label)return e.label;if(e.showValue){let t=e.max||100;return`${Math.min(100,Math.max(0,Math.round(e.value/t*100)))}%`}return``};return(n,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`progress`,style:(0,t.normalizeStyle)(r.value)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.bars,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.label??`${e.value}-${r}`,class:(0,t.normalizeClass)(i(e)),style:(0,t.normalizeStyle)(a(e)),role:`progressbar`,"aria-label":e.label||`Progress`,"aria-valuenow":e.value,"aria-valuemin":0,"aria-valuemax":e.max||100},[(0,t.renderSlot)(n.$slots,`label`,{bar:e,index:r},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(o(e)),1)])],14,Me))),128))],4))}}),Pe=0,Fe=new WeakMap;function L(e=`vibe`){let n=(0,t.getCurrentInstance)();if(!n)return`${e}-${++Pe}`;let r=(Fe.get(n)??0)+1;return Fe.set(n,r),`${e}-${n.uid}-${r}`}var R=[`id`],Ie={class:`accordion-header`},Le=[`data-bs-target`,`aria-expanded`,`aria-controls`,`onClick`],Re=[`id`,`data-bs-parent`],ze={class:`accordion-body`},Be=(0,t.defineComponent)({__name:`VibeAccordion`,props:{id:{type:String,default:void 0},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(e,{expose:n,emit:r}){let i=L(`accordion`),a=e,o=(0,t.computed)(()=>a.id||i),s=r,c=(0,t.ref)(null),l=new Map,u=new Map,d=!1,f=!1,p=!1,m=!1,h=new Map,g=e=>s(`show`,e),_=e=>s(`shown`,e),v=e=>s(`hide`,e),y=e=>s(`hidden`,e),b=e=>{let t=u.get(e),n=h.get(e);t&&n&&(t.removeEventListener(`show.bs.collapse`,n.show),t.removeEventListener(`shown.bs.collapse`,n.shown),t.removeEventListener(`hide.bs.collapse`,n.hide),t.removeEventListener(`hidden.bs.collapse`,n.hidden)),u.delete(e),h.delete(e),l.get(e)?.dispose(),l.delete(e)},x=async()=>{if(c.value){if(d){f=!0;return}d=!0,f=!1;try{let e=(await import(`bootstrap`)).Collapse;if(m||!c.value)return;let t=c.value.querySelectorAll(`.accordion-collapse`),n=new Set;t.forEach(t=>{let r=t.id;if(n.has(r)){console.warn(`[VibeAccordion] Duplicate item.id "${r}" detected — only the first occurrence is initialised. Ensure each item has a unique id.`);return}if(n.add(r),!l.has(r)){let n=t;u.set(r,n);let i=new e(n,{toggle:!1,parent:a.alwaysOpen?void 0:`#${o.value}`});l.set(r,i);let s={show:()=>g(r),shown:()=>_(r),hide:()=>v(r),hidden:()=>y(r)};h.set(r,s),t.addEventListener(`show.bs.collapse`,s.show),t.addEventListener(`shown.bs.collapse`,s.shown),t.addEventListener(`hide.bs.collapse`,s.hide),t.addEventListener(`hidden.bs.collapse`,s.hidden),a.items.find(e=>e.id===r)?.show&&i.show()}})}catch(e){s(`component-error`,{message:`Bootstrap JS not loaded. Accordion will use data attributes only.`,componentName:`VibeAccordion`,originalError:e})}finally{d=!1,!m&&f&&(f=!1,x())}}};(0,t.onMounted)(x),(0,t.onBeforeUnmount)(()=>{m=!0,l.forEach((e,t)=>b(t))}),(0,t.watch)([()=>a.items,()=>a.alwaysOpen],async()=>{if(!p){p=!0;try{let e=[...l.keys()];for(let t of e)b(t);l.clear(),u.clear(),await(0,t.nextTick)(),await x()}catch(e){s(`component-error`,{message:`Error reinitialising accordion items.`,componentName:`VibeAccordion`,originalError:e})}finally{p=!1}}},{deep:!1});let S=(e,t)=>{s(`item-click`,{item:e,index:t})};return n({refresh:x,_unsafe_bsInstances:l}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`accordionRef`,ref:c,id:o.value,class:(0,t.normalizeClass)([`accordion`,{"accordion-flush":e.flush}])},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r.id,class:`accordion-item`},[(0,t.createElementVNode)(`h2`,Ie,[(0,t.createElementVNode)(`button`,{class:(0,t.normalizeClass)([`accordion-button`,{collapsed:!r.show}]),type:`button`,"data-bs-toggle":`collapse`,"data-bs-target":`#${r.id}`,"aria-expanded":r.show,"aria-controls":r.id,onClick:e=>S(r,i)},[(0,t.renderSlot)(n.$slots,`title`,{item:r,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(r.title),1)])],10,Le)]),(0,t.createElementVNode)(`div`,{id:r.id,class:(0,t.normalizeClass)([`accordion-collapse`,`collapse`]),"data-bs-parent":e.alwaysOpen?void 0:`#${o.value}`},[(0,t.createElementVNode)(`div`,ze,[(0,t.renderSlot)(n.$slots,`content`,{item:r,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(r.content),1)])])],8,Re)]))),128))],10,R))}}),Ve=(0,t.defineComponent)({__name:`VibeCollapse`,props:{id:{type:String,default:void 0},modelValue:{type:Boolean,default:!1},tag:{type:String,default:`div`},horizontal:{type:Boolean,default:!1},isNav:{type:Boolean,default:!1}},emits:[`update:modelValue`,`show`,`shown`,`hide`,`hidden`,`component-error`],setup(e,{emit:n}){let r=L(`collapse`),i=e,a=n,o=(0,t.inject)(de,null),s=(0,t.computed)(()=>i.id||r),c=(0,t.ref)(null),l=(0,t.shallowRef)(null),u=(0,t.ref)(!1),d=(0,t.ref)(!1),f=!1,p=null,m=()=>{u.value=!0,a(`show`)},h=()=>{a(`shown`),a(`update:modelValue`,!0)},g=()=>{a(`hide`)},_=()=>{u.value=!1,a(`hidden`),a(`update:modelValue`,!1)};(0,t.onMounted)(async()=>{if(c.value)try{let e=(await import(`bootstrap`)).Collapse;if(f||!c.value)return;l.value=new e(c.value,{toggle:!1}),c.value.addEventListener(`show.bs.collapse`,m),c.value.addEventListener(`shown.bs.collapse`,h),c.value.addEventListener(`hide.bs.collapse`,g),c.value.addEventListener(`hidden.bs.collapse`,_);let n=p===null?o&&s.value in o.collapseStates?o.collapseStates[s.value]:i.modelValue:p;if(p=null,d.value=!0,await(0,t.nextTick)(),!l.value)return;n&&l.value.show()}catch(e){d.value=!0,a(`component-error`,{message:`Bootstrap JS not loaded. Collapse will use CSS classes only.`,componentName:`VibeCollapse`,originalError:e})}}),(0,t.onBeforeUnmount)(()=>{f=!0,c.value&&(c.value.removeEventListener(`show.bs.collapse`,m),c.value.removeEventListener(`shown.bs.collapse`,h),c.value.removeEventListener(`hide.bs.collapse`,g),c.value.removeEventListener(`hidden.bs.collapse`,_)),l.value&&=(l.value.dispose(),null)});let v=(0,t.computed)(()=>o&&s.value in o.collapseStates?o.collapseStates[s.value]:i.modelValue);(0,t.watch)(v,e=>{if(!d.value){p=e;return}l.value&&(e&&!u.value?l.value.show():!e&&u.value&&l.value.hide())}),(0,t.watch)(()=>i.modelValue,e=>{o&&s.value in o.collapseStates&&o.collapseStates[s.value]!==e&&(o.collapseStates[s.value]=e)});let y=(0,t.computed)(()=>{let e=[`collapse`];return i.isNav&&e.push(`navbar-collapse`),i.horizontal&&e.push(`collapse-horizontal`),!d.value&&v.value&&e.push(`show`),e.join(` `)});return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{ref_key:`collapseRef`,ref:c,id:s.value,class:(0,t.normalizeClass)(y.value)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`id`,`class`]))}}),He=[`id`,`data-bs-auto-close`],z=[`id`,`data-bs-auto-close`],Ue=[`aria-labelledby`],We={key:0},Ge={key:1},Ke={class:`dropdown-header`},qe={key:2},Je=(0,t.defineComponent)({__name:`VibeDropdown`,props:{id:{type:String,default:void 0},text:{type:String,default:`Dropdown`},variant:{type:String,default:`primary`},size:{type:String,default:void 0},split:{type:Boolean,default:!1},direction:{type:String,default:`down`},menuEnd:{type:Boolean,default:!1},items:{type:Array,required:!0},autoClose:{type:[Boolean,String],default:!0}},emits:[`item-click`,`show`,`shown`,`hide`,`hidden`,`component-error`],setup(e,{expose:n,emit:r}){let i=L(`dropdown`),a=e,o=r,s=(0,t.computed)(()=>a.id||i),c=(0,t.ref)(null),l=(0,t.shallowRef)(null),u=null,d=!1,f=!1,p=!1,m=(0,t.computed)(()=>a.direction===`up`?`dropup`:a.direction===`end`?`dropend`:a.direction===`start`?`dropstart`:`dropdown`),h=(0,t.computed)(()=>{let e=[`btn`,`btn-${a.variant}`];return a.size&&e.push(`btn-${a.size}`),e.join(` `)}),g=(0,t.computed)(()=>{let e=[`dropdown-menu`];return a.menuEnd&&e.push(`dropdown-menu-end`),e.join(` `)}),_=e=>{let t=[`dropdown-item`];return e.active&&t.push(`active`),e.disabled&&t.push(`disabled`),t.join(` `)},v=()=>o(`show`),y=()=>o(`shown`),b=()=>o(`hide`),x=()=>o(`hidden`),S=async()=>{if(!(!c.value||f)){f=!0;try{let e=(await import(`bootstrap`)).Dropdown;if(!c.value||p)return;u=c.value.querySelector(`.dropdown-toggle`),u&&(l.value=new e(u,{autoClose:a.autoClose}),u.addEventListener(`show.bs.dropdown`,v),u.addEventListener(`shown.bs.dropdown`,y),u.addEventListener(`hide.bs.dropdown`,b),u.addEventListener(`hidden.bs.dropdown`,x))}catch(e){o(`component-error`,{message:`Bootstrap JS not loaded. Dropdown will use data attributes only.`,componentName:`VibeDropdown`,originalError:e})}finally{f=!1}}},C=()=>{u&&=(u.removeEventListener(`show.bs.dropdown`,v),u.removeEventListener(`shown.bs.dropdown`,y),u.removeEventListener(`hide.bs.dropdown`,b),u.removeEventListener(`hidden.bs.dropdown`,x),null),l.value&&=(l.value.dispose(),null)};(0,t.onMounted)(S),(0,t.onBeforeUnmount)(()=>{p=!0,C()}),(0,t.watch)(()=>a.autoClose,async()=>{if(!d){d=!0;try{C(),await S()}finally{d=!1}}});let w=(e,t,n)=>{!e.disabled&&!e.divider&&!e.header&&o(`item-click`,{item:e,index:t,event:n})};return n({show:()=>l.value?.show(),hide:()=>l.value?.hide(),toggle:()=>l.value?.toggle()}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`dropdownRef`,ref:c,class:(0,t.normalizeClass)(m.value)},[e.split?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`button`,{class:(0,t.normalizeClass)(h.value),type:`button`},[(0,t.renderSlot)(n.$slots,`button`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])],2),(0,t.createElementVNode)(`button`,{id:s.value,type:`button`,class:(0,t.normalizeClass)([h.value,`dropdown-toggle`,`dropdown-toggle-split`]),"data-bs-toggle":`dropdown`,"aria-expanded":`false`,"data-bs-auto-close":e.autoClose},[...r[0]||=[(0,t.createElementVNode)(`span`,{class:`visually-hidden`},`Toggle Dropdown`,-1)]],10,z)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,id:s.value,class:(0,t.normalizeClass)([h.value,`dropdown-toggle`]),type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`,"data-bs-auto-close":e.autoClose},[(0,t.renderSlot)(n.$slots,`button`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])],10,He)),(0,t.createElementVNode)(`ul`,{class:(0,t.normalizeClass)(g.value),"aria-labelledby":s.value},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(e,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:e.text||e.href||(0,t.unref)(oe)(e.to)||i},[e.divider?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,We,[...r[1]||=[(0,t.createElementVNode)(`hr`,{class:`dropdown-divider`},null,-1)]])):e.header?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,Ge,[(0,t.createElementVNode)(`h6`,Ke,[(0,t.renderSlot)(n.$slots,`header`,{item:e,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])])])):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,qe,[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(D)(e.href)?`a`:e.to?`router-link`:`button`),{class:(0,t.normalizeClass)(_(e)),href:(0,t.unref)(D)(e.href),to:e.to,type:!e.href&&!e.to?`button`:void 0,disabled:e.disabled,onClick:t=>w(e,i,t)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`item`,{item:e,index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)])]),_:2},1032,[`class`,`href`,`to`,`type`,`disabled`,`onClick`]))]))],64))),128))],10,Ue)],2))}}),Ye=[];function Xe(e){if(Ye.length>0){e.preventDefault();let t=Ye.pop();t&&t.action()}}function Ze(e){let n=Symbol();(0,t.onMounted)(()=>{Ye.push({token:n,action:e}),Ye.length===1&&typeof document<`u`&&document.addEventListener(`backbutton`,Xe)}),(0,t.onUnmounted)(()=>{let e=Ye.findIndex(e=>e.token===n);e!==-1&&Ye.splice(e,1),Ye.length===0&&typeof document<`u`&&document.removeEventListener(`backbutton`,Xe)})}var Qe=[`id`,`aria-labelledby`,`aria-hidden`,`data-bs-backdrop`,`data-bs-keyboard`],$e={class:`modal-content`},B={key:0,class:`modal-header`},et=[`id`],tt={class:`modal-body`},nt={key:1,class:`modal-footer`},rt=`a[href], button:not([disabled]), input:not([disabled]),select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,it=c((0,t.defineComponent)({__name:`VibeModal`,props:{id:{type:String,default:void 0},modelValue:{type:Boolean,default:!1},title:{type:String,default:``},size:{type:String,default:void 0},centered:{type:Boolean,default:!1},scrollable:{type:Boolean,default:!1},fullscreen:{type:[Boolean,String],default:!1},staticBackdrop:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1},hideFooter:{type:Boolean,default:!1},teleport:{type:[String,Boolean],default:`body`},autoFocus:{type:Boolean,default:!0},submitOnMetaEnter:{type:Boolean,default:!0}},emits:[`update:modelValue`,`show`,`shown`,`hide`,`hidden`,`component-error`],setup(e,{expose:n,emit:r}){let i=L(`modal`),a=e,o=r,s=(0,t.computed)(()=>a.id||i),c=(0,t.ref)(null),l=(0,t.shallowRef)(null),u=(0,t.ref)(!1),d=null,f=[];function p(){return c.value?Array.from(c.value.querySelectorAll(rt)):[]}function m(e){if(!u.value)return;if(a.submitOnMetaEnter&&(e.metaKey||e.ctrlKey)&&e.key===`Enter`){(c.value?.querySelector(`form`))?.requestSubmit();return}if(e.key!==`Tab`)return;let t=p();if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey?document.activeElement===n&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),n.focus())}function h(){let e=c.value?.parentElement;e&&Array.from(e.children).forEach(e=>{let t=e;t===c.value||t.inert||(t.inert=!0,f.push(t))})}function g(){f.forEach(e=>{e.inert=!1}),f.length=0}let _=!1,v=!1,y=!1,b=(0,t.computed)(()=>{let e=[`modal-dialog`];return a.size&&e.push(`modal-${a.size}`),a.centered&&e.push(`modal-dialog-centered`),a.scrollable&&e.push(`modal-dialog-scrollable`),a.fullscreen===!0?e.push(`modal-fullscreen`):typeof a.fullscreen==`string`&&e.push(`modal-fullscreen-${a.fullscreen}-down`),e.join(` `)}),x=()=>{typeof document<`u`&&(d=document.activeElement),o(`show`)},S=()=>{u.value=!0,o(`shown`),o(`update:modelValue`,!0),h(),a.autoFocus&&c.value&&c.value.querySelector(`input:not([type="hidden"]), select, textarea`)?.focus()},C=()=>{o(`hide`)},w=()=>{u.value=!1,o(`hidden`),o(`update:modelValue`,!1),g(),d&&typeof d.focus==`function`&&d.focus(),d=null};function T(){v||!c.value||(c.value.addEventListener(`show.bs.modal`,x),c.value.addEventListener(`shown.bs.modal`,S),c.value.addEventListener(`hide.bs.modal`,C),c.value.addEventListener(`hidden.bs.modal`,w),c.value.addEventListener(`keydown`,m),v=!0)}function E(){!v||!c.value||(c.value.removeEventListener(`show.bs.modal`,x),c.value.removeEventListener(`shown.bs.modal`,S),c.value.removeEventListener(`hide.bs.modal`,C),c.value.removeEventListener(`hidden.bs.modal`,w),c.value.removeEventListener(`keydown`,m),v=!1)}let D=async()=>{if(c.value&&!_){_=!0;try{l.value&&=(E(),l.value.dispose(),null);let e=await import(`bootstrap`);if(!c.value||y)return;let t=e.Modal;l.value=new t(c.value,{backdrop:a.staticBackdrop?`static`:!0,keyboard:!a.staticBackdrop,focus:!0}),T(),a.modelValue&&l.value.show()}catch(e){o(`component-error`,{message:`Bootstrap JS not loaded. Modal will use data attributes only.`,componentName:`VibeModal`,originalError:e})}finally{_=!1}}};(0,t.onMounted)(D),(0,t.onBeforeUnmount)(()=>{y=!0,g(),E(),l.value?.dispose(),l.value=null}),(0,t.watch)(()=>a.modelValue,e=>{l.value&&(e&&!u.value?l.value.show():!e&&u.value&&l.value.hide())}),(0,t.watch)(()=>a.staticBackdrop,D);let O=()=>l.value?.show(),k=()=>l.value?.hide();return Ze(()=>{u.value&&k()}),n({show:O,hide:k,handleUpdate:()=>l.value?.handleUpdate(),_unsafe_bsInstance:l}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:e.teleport===!0?`body`:e.teleport||void 0,disabled:!e.teleport},[(0,t.createElementVNode)(`div`,{ref_key:`modalRef`,ref:c,id:s.value,class:`modal fade`,tabindex:`-1`,"aria-labelledby":`${s.value}-label`,"aria-hidden":u.value?void 0:`true`,"data-bs-backdrop":e.staticBackdrop?`static`:void 0,"data-bs-keyboard":!e.staticBackdrop},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(b.value)},[(0,t.createElementVNode)(`div`,$e,[e.hideHeader?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,B,[(0,t.createElementVNode)(`h5`,{id:`${s.value}-label`,class:`modal-title`},[(0,t.renderSlot)(n.$slots,`header`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)],8,et),(0,t.createElementVNode)(`button`,{type:`button`,class:`btn-close`,"aria-label":`Close`,onClick:k})])),(0,t.createElementVNode)(`div`,tt,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),e.hideFooter?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,nt,[(0,t.renderSlot)(n.$slots,`footer`,{},()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:`btn btn-secondary`,onClick:k},`Close`)],!0)]))])],2)],8,Qe)],8,[`to`,`disabled`]))}}),[[`__scopeId`,`data-v-37f40a50`]]),at=[`id`,`aria-labelledby`,`data-bs-backdrop`,`data-bs-scroll`],ot={class:`offcanvas-header`},st=[`id`],ct={class:`offcanvas-body`},lt=c((0,t.defineComponent)({__name:`VibeOffcanvas`,props:{id:{type:String,default:void 0},modelValue:{type:Boolean,default:!1},title:{type:String,default:``},placement:{type:String,default:`start`},backdrop:{type:[Boolean,String],default:!0},scroll:{type:Boolean,default:!1},teleport:{type:[String,Boolean],default:`body`}},emits:[`update:modelValue`,`show`,`shown`,`hide`,`hidden`,`component-error`],setup(e,{expose:n,emit:r}){let i=L(`offcanvas`),a=e,o=r,s=(0,t.computed)(()=>a.id||i),c=(0,t.ref)(null),l=(0,t.shallowRef)(null),u=(0,t.ref)(!1),d=!1,f=!1,p=!1,m=null,h=(0,t.computed)(()=>`offcanvas offcanvas-${a.placement}`),g=()=>{typeof document<`u`&&(m=document.activeElement),o(`show`)},_=()=>{u.value=!0,o(`shown`),o(`update:modelValue`,!0)},v=()=>{o(`hide`)},y=()=>{u.value=!1,o(`hidden`),o(`update:modelValue`,!1),m&&typeof m.focus==`function`&&m.focus(),m=null};function b(){f||!c.value||(c.value.addEventListener(`show.bs.offcanvas`,g),c.value.addEventListener(`shown.bs.offcanvas`,_),c.value.addEventListener(`hide.bs.offcanvas`,v),c.value.addEventListener(`hidden.bs.offcanvas`,y),f=!0)}function x(){!f||!c.value||(c.value.removeEventListener(`show.bs.offcanvas`,g),c.value.removeEventListener(`shown.bs.offcanvas`,_),c.value.removeEventListener(`hide.bs.offcanvas`,v),c.value.removeEventListener(`hidden.bs.offcanvas`,y),f=!1)}let S=async()=>{if(c.value&&!d){d=!0;try{l.value&&=(x(),l.value.dispose(),null);let e=await import(`bootstrap`);if(!c.value||p)return;let t=e.Offcanvas;l.value=new t(c.value,{backdrop:a.backdrop===!1?!1:a.backdrop===`static`?`static`:!0,scroll:a.scroll,keyboard:a.backdrop!==`static`}),b(),a.modelValue&&l.value.show()}catch(e){o(`component-error`,{message:`Bootstrap JS not loaded. Offcanvas will use data attributes only.`,componentName:`VibeOffcanvas`,originalError:e})}finally{d=!1}}};(0,t.onMounted)(S),(0,t.onBeforeUnmount)(()=>{p=!0,x(),l.value?.dispose(),l.value=null}),(0,t.watch)(()=>a.modelValue,e=>{l.value&&(e&&!u.value?l.value.show():!e&&u.value&&l.value.hide())}),(0,t.watch)([()=>a.placement,()=>a.backdrop,()=>a.scroll],S);let C=()=>l.value?.show(),w=()=>l.value?.hide();return Ze(()=>{u.value&&w()}),n({show:C,hide:w,_unsafe_bsInstance:l}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:e.teleport===!0?`body`:e.teleport||void 0,disabled:!e.teleport},[(0,t.createElementVNode)(`div`,{ref_key:`offcanvasRef`,ref:c,id:s.value,class:(0,t.normalizeClass)(h.value),tabindex:`-1`,"aria-labelledby":`${s.value}-label`,"data-bs-backdrop":e.backdrop===!1?`false`:e.backdrop===`static`?`static`:`true`,"data-bs-scroll":e.scroll},[(0,t.createElementVNode)(`div`,ot,[(0,t.createElementVNode)(`h5`,{id:`${s.value}-label`,class:`offcanvas-title`},[(0,t.renderSlot)(n.$slots,`header`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)],8,st),(0,t.createElementVNode)(`button`,{type:`button`,class:`btn-close`,"aria-label":`Close`,onClick:w})]),(0,t.createElementVNode)(`div`,ct,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],10,at)],8,[`to`,`disabled`]))}}),[[`__scopeId`,`data-v-417d55a1`]]),ut={key:0,class:`toast-header`},dt={class:`me-auto`},ft={class:`toast-body`},pt={key:0,class:`toast-header`},mt={class:`me-auto`},ht={class:`toast-body`},gt=(0,t.defineComponent)({__name:`VibeToast`,props:{id:{type:String,default:void 0},modelValue:{type:Boolean,default:!1},title:{type:String,default:``},variant:{type:String,default:void 0},autohide:{type:Boolean,default:!0},delay:{type:Number,default:5e3},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(e,{expose:n,emit:r}){let i=L(`toast`),a=e,o=r,s=(0,t.computed)(()=>a.id??i),c=(0,t.ref)(null),l=(0,t.shallowRef)(null),u=(0,t.ref)(!1),d=(0,t.computed)(()=>{let e=[`toast`];return a.variant&&e.push(`text-bg-${a.variant}`),e.join(` `)}),f=(0,t.computed)(()=>{let e=[`toast-container`,`position-fixed`,`p-3`],t=a.placement;return t.includes(`top`)&&e.push(`top-0`),t.includes(`bottom`)&&e.push(`bottom-0`),t.includes(`middle`)&&e.push(`top-50`,`start-50`,`translate-middle`),t.includes(`start`)&&e.push(`start-0`),t.includes(`end`)&&e.push(`end-0`),t.includes(`center`)&&!t.includes(`middle`)&&e.push(`start-50`,`translate-middle-x`),e.join(` `)}),p=()=>{o(`show`)},m=()=>{u.value=!0,o(`shown`),o(`update:modelValue`,!0)},h=()=>{o(`hide`)},g=()=>{u.value=!1,o(`hidden`),o(`update:modelValue`,!1)},_=()=>{let e=c.value;e&&(e.removeEventListener(`show.bs.toast`,p),e.removeEventListener(`shown.bs.toast`,m),e.removeEventListener(`hide.bs.toast`,h),e.removeEventListener(`hidden.bs.toast`,g))},v=!1,y=!1,b=async()=>{if(!(!c.value||v)){v=!0,_(),l.value&&=(l.value.dispose(),null);try{let e=await import(`bootstrap`);if(!c.value||y)return;let t=e.Toast;l.value=new t(c.value,{autohide:a.autohide,delay:a.delay}),c.value.addEventListener(`show.bs.toast`,p),c.value.addEventListener(`shown.bs.toast`,m),c.value.addEventListener(`hide.bs.toast`,h),c.value.addEventListener(`hidden.bs.toast`,g),a.modelValue&&l.value.show()}catch(e){o(`component-error`,{message:`Bootstrap JS not loaded. Toast will use data attributes only.`,componentName:`VibeToast`,originalError:e})}finally{v=!1}}};(0,t.onMounted)(b),(0,t.onBeforeUnmount)(()=>{y=!0,_(),l.value&&=(l.value.dispose(),null)}),(0,t.watch)(()=>a.modelValue,e=>{l.value&&(e&&!u.value?l.value.show():!e&&u.value&&l.value.hide())}),(0,t.watch)([()=>a.autohide,()=>a.delay],b);let x=()=>l.value?.show(),S=()=>l.value?.hide();n({show:x,hide:S,_unsafe_bsInstance:l});let C=(0,t.computed)(()=>({id:s.value,class:d.value,role:`alert`,"aria-live":`assertive`,"aria-atomic":`true`,"data-bs-autohide":a.autohide,"data-bs-delay":a.delay}));return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:e.teleport===!0?`body`:e.teleport||void 0,disabled:e.noContainer||!e.teleport},[e.noContainer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({key:1,ref_key:`toastRef`,ref:c},C.value),[e.title||n.$slots.header?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pt,[(0,t.renderSlot)(n.$slots,`header`,{},()=>[(0,t.createElementVNode)(`strong`,mt,(0,t.toDisplayString)(e.title),1)]),(0,t.createElementVNode)(`button`,{type:`button`,class:`btn-close`,"aria-label":`Close`,onClick:S})])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,ht,[(0,t.renderSlot)(n.$slots,`default`)])],16)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)(f.value),style:{"z-index":`1090`}},[(0,t.createElementVNode)(`div`,(0,t.mergeProps)({ref_key:`toastRef`,ref:c},C.value),[e.title||n.$slots.header?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ut,[(0,t.renderSlot)(n.$slots,`header`,{},()=>[(0,t.createElementVNode)(`strong`,dt,(0,t.toDisplayString)(e.title),1)]),(0,t.createElementVNode)(`button`,{type:`button`,class:`btn-close`,"aria-label":`Close`,onClick:S})])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,ft,[(0,t.renderSlot)(n.$slots,`default`)])],16)],2))],8,[`to`,`disabled`]))}}),V=(0,t.reactive)({toasts:[]}),_t=new Map,vt=0,yt=()=>(vt+=1,`vibe-toast-${vt}`),bt=(e,t)=>{let n=t.id??yt(),r=_t.get(n);if(r)return Object.assign(r,{body:e,title:t.title,variant:t.variant,placement:t.placement,autohide:t.autohide,delay:t.delay}),r;let i={id:n,body:e,title:t.title,variant:t.variant,placement:t.placement,autohide:t.autohide,delay:t.delay};return _t.set(n,i),V.toasts.push(i),i},xt=e=>{if(!_t.has(e))return!1;_t.delete(e);let t=V.toasts.findIndex(t=>t.id===e);return t!==-1&&V.toasts.splice(t,1),!0},St=()=>{_t.clear(),V.toasts.splice(0,V.toasts.length)};function Ct(){return{get toasts(){return(0,t.readonly)(V.toasts)},show:(e,t={})=>bt(e,t),success:(e,t={})=>bt(e,{...t,variant:`success`}),error:(e,t={})=>bt(e,{...t,variant:`danger`}),warn:(e,t={})=>bt(e,{...t,variant:`warning`}),info:(e,t={})=>bt(e,{...t,variant:`info`}),dismiss:xt,clear:St}}var wt=()=>{St(),vt=0},Tt=V,Et=(0,t.defineComponent)({__name:`VibeToastHost`,props:{defaultPlacement:{type:String,default:`top-end`}},setup(e){let n=e,{dismiss:r}=Ct(),i=(0,t.computed)(()=>{let e=new Map;for(let t of Tt.toasts){let r=t.placement??n.defaultPlacement,i=e.get(r);i?i.push(t):e.set(r,[t])}return Array.from(e.entries()).map(([e,t])=>({placement:e,toasts:t}))}),a=e=>{let t=[`toast-container`,`position-fixed`,`p-3`];return e.includes(`top`)&&t.push(`top-0`),e.includes(`bottom`)&&t.push(`bottom-0`),e.includes(`middle`)&&t.push(`top-50`,`start-50`,`translate-middle`),e.includes(`start`)&&t.push(`start-0`),e.includes(`end`)&&t.push(`end-0`),e.includes(`center`)&&!e.includes(`middle`)&&t.push(`start-50`,`translate-middle-x`),t.join(` `)};return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.placement,class:(0,t.normalizeClass)(a(e.placement)),style:{"z-index":`1090`}},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.toasts,n=>((0,t.openBlock)(),(0,t.createBlock)(gt,{key:n.id,"no-container":``,"model-value":!0,title:n.title||``,variant:n.variant,placement:e.placement,autohide:n.autohide??!0,delay:n.delay??5e3,onHidden:e=>(0,t.unref)(r)(n.id)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.body),1)]),_:2},1032,[`title`,`variant`,`placement`,`autohide`,`delay`,`onHidden`]))),128))],2))),128))]))}}),Dt=[`id`,`data-bs-ride`,`data-bs-interval`,`data-bs-keyboard`,`data-bs-pause`,`data-bs-wrap`,`data-bs-touch`],Ot={key:0,class:`carousel-indicators`},kt=[`data-bs-target`,`data-bs-slide-to`,`aria-current`,`aria-label`],At={class:`carousel-inner`},jt=[`data-bs-interval`],Mt=[`src`,`alt`],Nt={key:1,class:`carousel-caption d-none d-md-block`},Pt={key:0},Ft={key:1},It=[`data-bs-target`],Lt=[`data-bs-target`],Rt=(0,t.defineComponent)({__name:`VibeCarousel`,props:{id:{type:String,default:void 0},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(e,{expose:n,emit:r}){let i=L(`carousel`),a=e,o=r,s=(0,t.ref)(null),c=(0,t.shallowRef)(null),l=(0,t.ref)(a.modelValue),u=(0,t.computed)(()=>a.id||i),d=!1,f=(0,t.computed)(()=>{let e=[`carousel`,`slide`];return a.dark&&e.push(`carousel-dark`),a.fade&&e.push(`carousel-fade`),e.join(` `)}),p=e=>{o(`slide`,e)},m=e=>{l.value=e.to,o(`update:modelValue`,e.to),o(`slid`,e)},h=!1,g=(0,t.ref)(null),_=async()=>{if(s.value&&!h){h=!0;try{if(g.value&&=(g.value.removeEventListener(`slide.bs.carousel`,p),g.value.removeEventListener(`slid.bs.carousel`,m),null),c.value&&=(c.value.dispose(),null),!a.items.length)return;let e=await import(`bootstrap`);if(!s.value||d)return;let t=e.Carousel;c.value=new t(s.value,{interval:a.interval,keyboard:a.keyboard,pause:a.pause,ride:a.ride===!0?`carousel`:a.ride,wrap:a.wrap,touch:a.touch}),g.value=s.value,g.value.addEventListener(`slide.bs.carousel`,p),g.value.addEventListener(`slid.bs.carousel`,m),a.modelValue!==0&&c.value.to(a.modelValue)}catch(e){g.value=null,o(`component-error`,{message:`Bootstrap JS not loaded. Carousel will use data attributes only.`,componentName:`VibeCarousel`,originalError:e})}finally{h=!1}}};(0,t.onMounted)(_),(0,t.onBeforeUnmount)(()=>{d=!0,g.value&&=(g.value.removeEventListener(`slide.bs.carousel`,p),g.value.removeEventListener(`slid.bs.carousel`,m),null),c.value&&=(c.value.dispose(),null)}),(0,t.watch)(()=>a.modelValue,e=>{c.value&&e!==l.value&&c.value.to(e)}),(0,t.watch)(()=>a.items,async()=>{l.value=0,await(0,t.nextTick)(),await _()},{deep:!1});let v=(e,t)=>e.alt?e.alt:e.caption?e.caption:e.captionText?e.captionText:`Carousel slide ${t+1}`;return n({refresh:_,_unsafe_bsInstance:c}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`carouselRef`,ref:s,id:u.value,class:(0,t.normalizeClass)(f.value),"data-bs-ride":e.ride===!0?`carousel`:e.ride,"data-bs-interval":e.interval,"data-bs-keyboard":e.keyboard,"data-bs-pause":e.pause,"data-bs-wrap":e.wrap,"data-bs-touch":e.touch},[e.indicators?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ot,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:e.src??n,type:`button`,"data-bs-target":`#${u.value}`,"data-bs-slide-to":n,class:(0,t.normalizeClass)({active:n===l.value}),"aria-current":n===l.value,"aria-label":`Slide ${n+1}`},null,10,kt))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,At,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.src??r,class:(0,t.normalizeClass)([`carousel-item`,{active:r===l.value}]),"data-bs-interval":e.interval},[e.src?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:e.src,alt:v(e,r),class:`d-block w-100`},null,8,Mt)):(0,t.createCommentVNode)(``,!0),e.caption||e.captionText||n.$slots.caption?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Nt,[(0,t.renderSlot)(n.$slots,`caption`,{item:e,index:r},()=>[e.caption?((0,t.openBlock)(),(0,t.createElementBlock)(`h5`,Pt,(0,t.toDisplayString)(e.caption),1)):(0,t.createCommentVNode)(``,!0),e.captionText?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Ft,(0,t.toDisplayString)(e.captionText),1)):(0,t.createCommentVNode)(``,!0)])])):(0,t.createCommentVNode)(``,!0)],10,jt))),128))]),e.controls?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`button`,{class:`carousel-control-prev`,type:`button`,"data-bs-target":`#${u.value}`,"data-bs-slide":`prev`},[...r[0]||=[(0,t.createElementVNode)(`span`,{class:`carousel-control-prev-icon`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`span`,{class:`visually-hidden`},`Previous`,-1)]],8,It),(0,t.createElementVNode)(`button`,{class:`carousel-control-next`,type:`button`,"data-bs-target":`#${u.value}`,"data-bs-slide":`next`},[...r[1]||=[(0,t.createElementVNode)(`span`,{class:`carousel-control-next-icon`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`span`,{class:`visually-hidden`},`Next`,-1)]],8,Lt)],64)):(0,t.createCommentVNode)(``,!0)],10,Dt))}}),zt=[`data-bs-placement`,`data-bs-title`,`data-bs-trigger`],Bt=(0,t.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`}},emits:[`component-error`],setup(e,{expose:n,emit:r}){let i=e,a=r;i.content!==void 0&&i.text===void 0&&console.warn("[VibeTooltip] The `content` prop is deprecated and may be removed in a future version. Use `text` instead.");let o=(0,t.ref)(null),s=(0,t.shallowRef)(null),c=!1,l=typeof window<`u`&&(`ontouchstart`in window||typeof navigator<`u`&&navigator.maxTouchPoints>0),u=(0,t.computed)(()=>l&&i.trigger===`hover focus`?`click`:i.trigger),d=!1,f=!1,p=async()=>{if(o.value){if(d){f=!0;return}d=!0,s.value&&s.value.dispose();try{let e=await import(`bootstrap`);if(!o.value||c)return;let t=e.Tooltip;s.value=new t(o.value,{title:i.text||i.content||``,placement:i.placement,trigger:u.value,html:!1})}catch(e){a(`component-error`,{message:`Bootstrap JS not loaded. Tooltip will use data attributes only.`,componentName:`VibeTooltip`,originalError:e})}finally{d=!1,f&&(f=!1,p())}}};return(0,t.onMounted)(p),(0,t.onBeforeUnmount)(()=>{c=!0,s.value&&=(s.value.dispose(),null)}),(0,t.watch)([()=>i.content,()=>i.text],()=>{s.value&&s.value.setContent({".tooltip-inner":i.text||i.content||``})}),(0,t.watch)([()=>i.placement,()=>i.trigger],p),n({_unsafe_bsInstance:s}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{ref_key:`tooltipRef`,ref:o,"data-bs-placement":e.placement,"data-bs-title":e.text||e.content,"data-bs-trigger":u.value},[(0,t.renderSlot)(n.$slots,`default`)],8,zt))}}),Vt=[`data-bs-placement`,`data-bs-title`,`data-bs-content`,`data-bs-trigger`],Ht=(0,t.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`}},emits:[`component-error`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.shallowRef)(null),c=!1,l=typeof window<`u`&&(`ontouchstart`in window||typeof navigator<`u`&&navigator.maxTouchPoints>0),u=(0,t.computed)(()=>l&&i.trigger===`hover focus`?`click`:i.trigger),d=!1,f=!1,p=async()=>{if(o.value){if(d){f=!0;return}d=!0,s.value&&s.value.dispose();try{let e=await import(`bootstrap`);if(!o.value||c)return;let t=e.Popover;s.value=new t(o.value,{title:i.title,content:i.text||i.content||``,placement:i.placement,trigger:u.value,html:!1})}catch(e){a(`component-error`,{message:`Bootstrap JS not loaded. Popover will use data attributes only.`,componentName:`VibePopover`,originalError:e})}finally{d=!1,f&&(f=!1,p())}}};return(0,t.onMounted)(p),(0,t.onBeforeUnmount)(()=>{c=!0,s.value&&=(s.value.dispose(),null)}),(0,t.watch)([()=>i.content,()=>i.text,()=>i.title],()=>{s.value&&s.value.setContent({".popover-header":i.title||``,".popover-body":i.text||i.content||``})}),(0,t.watch)([()=>i.placement,()=>i.trigger],p),n({_unsafe_bsInstance:s}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{ref_key:`popoverRef`,ref:o,"data-bs-placement":e.placement,"data-bs-title":e.title,"data-bs-content":e.text||e.content,"data-bs-trigger":u.value},[(0,t.renderSlot)(n.$slots,`default`)],8,Vt))}}),Ut=(0,t.defineComponent)({__name:`VibeScrollspy`,props:{target:{type:String,required:!0},offset:{type:Number,default:void 0},rootMargin:{type:String,default:`0px 0px -25%`},method:{type:String,default:`auto`},smoothScroll:{type:Boolean,default:!1},tag:{type:String,default:`div`},height:{type:String,default:`100%`}},emits:[`activate`,`component-error`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.shallowRef)(null),c=!1,l=!1,u=e=>{a(`activate`,e)},d=async()=>{if(!(!o.value||c)){c=!0;try{let e=(await import(`bootstrap`)).ScrollSpy;if(!o.value||l)return;i.offset!==void 0&&console.warn("[VibeScrollspy] The `offset` prop is deprecated (Bootstrap 5.2+). Use `rootMargin` instead.");let t={target:i.target,rootMargin:i.rootMargin,method:i.method,smoothScroll:i.smoothScroll};s.value=new e(o.value,t),o.value.addEventListener(`activate.bs.scrollspy`,u)}catch(e){a(`component-error`,{message:`Bootstrap JS not loaded. ScrollSpy will use data attributes only.`,componentName:`VibeScrollspy`,originalError:e})}finally{c=!1}}};(0,t.onMounted)(d),(0,t.watch)([()=>i.target,()=>i.rootMargin,()=>i.method,()=>i.smoothScroll],async()=>{o.value&&o.value.removeEventListener(`activate.bs.scrollspy`,u),s.value?.dispose(),s.value=null,await(0,t.nextTick)(),o.value&&await d()}),(0,t.onBeforeUnmount)(()=>{l=!0,o.value&&o.value.removeEventListener(`activate.bs.scrollspy`,u),s.value&&=(s.value.dispose(),null)});let f=(0,t.computed)(()=>A(i.height)??`100%`),p=()=>s.value?.refresh();return(0,t.onActivated)(p),n({refresh:p}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{ref_key:`scrollspyRef`,ref:o,"data-bs-spy":`scroll`,"data-bs-target":e.target,"data-bs-root-margin":e.rootMargin,"data-bs-method":e.method,"data-bs-smooth-scroll":e.smoothScroll?`true`:void 0,tabindex:`0`,style:(0,t.normalizeStyle)({position:`relative`,height:f.value,overflow:`auto`})},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`data-bs-target`,`data-bs-root-margin`,`data-bs-method`,`data-bs-smooth-scroll`,`style`]))}}),Wt=[`aria-hidden`,`aria-label`,`role`],Gt=(0,t.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},ariaHidden:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0}},emits:[`click`,`component-error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>{let e=[`bi`,`bi-${r.icon}`];return r.customClass&&e.push(r.customClass),e.join(` `)}),o=(0,t.computed)(()=>{let e={cursor:`inherit`,userSelect:`none`};if(r.fontSize){let t=A(r.fontSize);t&&(e.fontSize=t)}else if(r.size){let t={sm:`0.875rem`,lg:`1.25rem`,"1x":`1rem`,"2x":`2rem`,"3x":`3rem`,"4x":`4rem`,"5x":`5rem`};t[r.size]&&(e.fontSize=t[r.size])}if(r.color){let t=j(r.color);t&&(e.color=t)}let t=[];return r.flipH&&t.push(`scaleX(-1)`),r.flipV&&t.push(`scaleY(-1)`),r.rotate&&t.push(`rotate(${r.rotate}deg)`),t.length>0&&(e.transform=t.join(` `),e.display=`inline-block`),e}),s=e=>{(r.ariaLabel||!r.ariaHidden)&&i(`click`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{class:(0,t.normalizeClass)(a.value),style:(0,t.normalizeStyle)(o.value),"aria-hidden":e.ariaLabel?void 0:e.ariaHidden?`true`:void 0,"aria-label":e.ariaLabel,role:e.ariaLabel?`img`:void 0,onClick:s},null,14,Wt))}}),Kt=[`--bs-primary`,`--bs-success`,`--bs-danger`,`--bs-warning`,`--bs-info`,`--bs-secondary`,`--bs-dark`,`--bs-light`];function qt(e,t){let n=getComputedStyle(t);return e.map((e,t)=>e.color??n.getPropertyValue(Kt[t%Kt.length]).trim())}function Jt(e,t){let n=getComputedStyle(t);return Array.from({length:e},(e,t)=>n.getPropertyValue(Kt[t%Kt.length]).trim())}function Yt(e,n,r){let i=null,a=null;(0,t.onMounted)(()=>{if(typeof ResizeObserver>`u`)return;let t=null;i=new ResizeObserver(e=>{t=e[0]??null,!(!t||a!==null)&&(a=requestAnimationFrame(()=>{if(a=null,!t)return;let{width:e,height:n}=t.contentRect;t=null,r(e,n)}))}),e.value&&i.observe(e.value)}),(0,t.onUnmounted)(()=>{i?.disconnect(),a!==null&&cancelAnimationFrame(a)})}function Xt(e,t){return e===null&&t===null?!0:e===null||t===null?!1:e.datasetIndex===t.datasetIndex&&e.pointIndex===t.pointIndex}function Zt(e,t,n){let r=null,i=document.createElement(`canvas`);i.style.cssText=`position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none`,e.appendChild(i);let a=()=>{i.width!==t.width&&(i.width=t.width),i.height!==t.height&&(i.height=t.height)},o=(e,t,n,r)=>{a();let o=i.getContext(`2d`);if(!o)return;let s=window.devicePixelRatio||1;o.clearRect(0,0,i.width,i.height),o.save(),o.setTransform(s,0,0,s,0,0),o.font=`12px sans-serif`;let c=String(e.label),l=`${c.length>60?c.slice(0,60)+`…`:c}: ${e.value}`,u=o.measureText(l).width+12,d=t+12,f=n-22-6;d+u>r.width&&(d=r.width-u-4),f<0&&(f=n+14),f=Math.min(f,r.height-22),o.fillStyle=`rgba(0,0,0,0.75)`,o.beginPath(),o.moveTo(d+4,f),o.lineTo(d+u-4,f),o.arcTo(d+u,f,d+u,f+4,4),o.lineTo(d+u,f+22-4),o.arcTo(d+u,f+22,d+u-4,f+22,4),o.lineTo(d+4,f+22),o.arcTo(d,f+22,d,f+22-4,4),o.lineTo(d,f+4),o.arcTo(d,f,d+4,f,4),o.closePath(),o.fill(),o.fillStyle=`#fff`,o.fillText(l,d+6,f+15),o.restore()},s=()=>{a();let e=i.getContext(`2d`);e&&e.clearRect(0,0,i.width,i.height)},c=e=>{let i=t.getBoundingClientRect(),a=e.clientX-i.left,c=e.clientY-i.top,l=n(a,c);Xt(l,r)||(r=l,l?o(l,a,c,i):s())},l=()=>{r!==null&&(r=null,s())};return t.addEventListener(`mousemove`,c),t.addEventListener(`mouseleave`,l),()=>{t.removeEventListener(`mousemove`,c),t.removeEventListener(`mouseleave`,l),i.remove()}}var Qt=5,$t=4,en=12;function tn(e){return e?{left:50,right:10,top:10,bottom:30}:{left:10,right:10,top:10,bottom:10}}function nn(e,t,n,r,i,a,o,s,c){let l=tn(a),u=n-l.left-l.right,d=r-l.top-l.bottom,f=t.datasets.flatMap(e=>e.data);if(f.length===0)return;let p=f.reduce((e,t)=>Math.min(e,t),f[0]),m=f.reduce((e,t)=>Math.max(e,t),f[0])-p||1,h=t.labels.length,g=u/Math.max(h-1,1),_=e=>l.left+e*g,v=e=>l.top+d-(e-p)/m*d;if(e.clearRect(0,0,n,r),o){e.strokeStyle=`rgba(0,0,0,0.1)`,e.lineWidth=1,e.setLineDash([4,4]);for(let t=0;t<=Qt;t++){let n=l.top+d/Qt*t;e.beginPath(),e.moveTo(l.left,n),e.lineTo(l.left+u,n),e.stroke()}e.setLineDash([])}if(a){e.save(),e.strokeStyle=`#666`,e.lineWidth=1,e.beginPath(),e.moveTo(l.left,l.top),e.lineTo(l.left,l.top+d),e.stroke(),e.beginPath(),e.moveTo(l.left,l.top+d),e.lineTo(l.left+u,l.top+d),e.stroke(),e.fillStyle=`#666`,e.font=`11px sans-serif`,e.textAlign=`center`,t.labels.forEach((t,n)=>e.fillText(String(t),_(n),l.top+d+18)),e.textAlign=`right`;for(let t=0;t<=Qt;t++){let n=p+m/Qt*(Qt-t),r=l.top+d/Qt*t;e.fillText(n.toFixed(0),l.left-5,r+4)}e.restore()}for(let[n,r]of t.datasets.entries()){let t=i[n],a=t=>{s&&r.data.length>=2?r.data.forEach((n,i)=>{let a=_(i),o=v(n);if(i===0)t&&e.moveTo(a,o);else{let t=(_(i-1)+a)/2;e.bezierCurveTo(t,v(r.data[i-1]),t,o,a,o)}}):r.data.forEach((n,r)=>{r===0&&t?e.moveTo(_(r),v(n)):e.lineTo(_(r),v(n))})};c&&r.data.length>0&&(e.beginPath(),a(!0),e.lineTo(_(r.data.length-1),l.top+d),e.lineTo(_(0),l.top+d),e.closePath(),e.fillStyle=`${t}33`,e.fill()),e.strokeStyle=t,e.lineWidth=2,e.beginPath(),a(!0),e.stroke(),e.fillStyle=t,r.data.forEach((t,n)=>{e.beginPath(),e.arc(_(n),v(t),$t,0,Math.PI*2),e.fill()})}}function rn(e){let t=e.datasets.flatMap(e=>e.data);if(t.length===0)return null;let n=t.reduce((e,t)=>Math.min(e,t),t[0]),r=t.reduce((e,t)=>Math.max(e,t),t[0]);return{min:n,max:r,range:r-n||1}}function an(e,t,n,r,i,a,o){let s=tn(a),c=r-s.left-s.right,l=i-s.top-s.bottom;if(!o)return null;let u=o.min,d=o.range,f=n.labels.length,p=c/Math.max(f-1,1),m=e=>s.left+e*p,h=e=>s.top+l-(e-u)/d*l;for(let[r,i]of n.datasets.entries())for(let[a,o]of i.data.entries())if(Math.hypot(e-m(a),t-h(o))<=en)return{datasetIndex:r,pointIndex:a,value:o,label:n.labels?.[a]??``};return null}var on={class:`vibe-chart`},sn={key:0,class:`vibe-chart-legend vibe-chart-legend--top`},cn={key:1,class:`vibe-chart-legend vibe-chart-legend--bottom`},ln=c((0,t.defineComponent)({__name:`VibeChartLine`,props:{data:{type:Object,required:!0},legend:{type:String,default:`bottom`},height:{type:[Number,String],default:`auto`},showAxes:{type:Boolean,default:!0},showGrid:{type:Boolean,default:!0},smooth:{type:Boolean,default:!1},fill:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.ref)(null),i=(0,t.ref)(null),a=null,o=0,s=0,c=(0,t.computed)(()=>n.height===`auto`?{width:`100%`,aspectRatio:`16/9`}:{width:`100%`,height:typeof n.height==`number`?`${n.height}px`:n.height}),l=(0,t.ref)([]);function u(){l.value=r.value?qt(n.data.datasets,r.value):[]}let d=null;function f(){if(u(),d=rn(n.data),!i.value||!o||!s)return;let e=i.value,t=e.getContext(`2d`);if(!t)return;let r=window.devicePixelRatio||1,a=Math.round(o*r),c=Math.round(s*r);(e.width!==a||e.height!==c)&&(e.width=a,e.height=c),t.setTransform(r,0,0,r,0,0),nn(t,n.data,o,s,l.value,n.showAxes,n.showGrid,n.smooth,n.fill)}return Yt(r,i,(e,t)=>{o=e,s=t,f()}),(0,t.onMounted)(()=>{u(),d=rn(n.data),r.value&&i.value&&(a=Zt(r.value,i.value,(e,t)=>an(e,t,n.data,o,s,n.showAxes,d)))}),(0,t.watch)(()=>n.data,f),(0,t.watch)([()=>n.showAxes,()=>n.showGrid,()=>n.smooth,()=>n.fill],f),(0,t.onUnmounted)(()=>{a?.()}),(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,on,[e.legend===`top`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,sn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.data.datasets,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e.label??n,class:`vibe-chart-legend-item`},[(0,t.createElementVNode)(`span`,{class:`vibe-chart-legend-swatch`,style:(0,t.normalizeStyle)({background:l.value[n]})},null,4),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)]))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`containerEl`,ref:r,class:`vibe-chart-canvas-container`,style:(0,t.normalizeStyle)(c.value)},[(0,t.createElementVNode)(`canvas`,{ref_key:`canvasEl`,ref:i,role:`img`,"aria-label":`Chart`,style:{display:`block`,width:`100%`,height:`100%`}},null,512)],4),e.legend===`bottom`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,cn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.data.datasets,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e.label??n,class:`vibe-chart-legend-item`},[(0,t.createElementVNode)(`span`,{class:`vibe-chart-legend-swatch`,style:(0,t.normalizeStyle)({background:l.value[n]})},null,4),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)]))),128))])):(0,t.createCommentVNode)(``,!0)]))}}),[[`__scopeId`,`data-v-d995a6f3`]]),un=5,dn=.2;function fn(e){return e?{left:50,right:10,top:10,bottom:30}:{left:10,right:10,top:10,bottom:10}}function pn(e,t){return t?e.labels.map((t,n)=>e.datasets.reduce((e,t)=>e+(t.data[n]??0),0)).reduce((e,t)=>Math.max(e,t),0)||1:e.datasets.flatMap(e=>e.data).reduce((e,t)=>Math.max(e,t),0)||1}function mn(e,t,n,r,i,a,o,s){let c=fn(a),l=n-c.left-c.right,u=r-c.top-c.bottom,d=t.labels.length,f=t.datasets.length,p=pn(t,s),m=l/d,h=s?m*(1-dn):m*(1-dn)/f;if(e.clearRect(0,0,n,r),o){e.strokeStyle=`rgba(0,0,0,0.1)`,e.lineWidth=1,e.setLineDash([4,4]);for(let t=1;t<=un;t++){let n=c.top+u/un*t;e.beginPath(),e.moveTo(c.left,n),e.lineTo(c.left+l,n),e.stroke()}e.setLineDash([])}if(a){e.save(),e.strokeStyle=`#666`,e.lineWidth=1,e.beginPath(),e.moveTo(c.left,c.top),e.lineTo(c.left,c.top+u),e.stroke(),e.beginPath(),e.moveTo(c.left,c.top+u),e.lineTo(c.left+l,c.top+u),e.stroke(),e.fillStyle=`#666`,e.font=`11px sans-serif`,e.textAlign=`center`,t.labels.forEach((t,n)=>{e.fillText(String(t),c.left+n*m+m/2,c.top+u+18)}),e.textAlign=`right`;for(let t=0;t<=un;t++){let n=p/un*(un-t),r=c.top+u/un*t;e.fillText(n.toFixed(0),c.left-5,r+4)}e.restore()}if(s)for(let n=0;n<d;n++){let r=c.top+u,a=c.left+n*m+m*dn/2;for(let[o,s]of t.datasets.entries()){let t=Math.max(0,s.data[n]??0)/p*u;e.fillStyle=i[o],e.fillRect(a,r-t,h,t),r-=t}}else for(let[n,r]of t.datasets.entries()){e.fillStyle=i[n];for(let t=0;t<d;t++){let i=Math.max(0,r.data[t]??0)/p*u,a=c.left+t*m+m*dn/2+n*h;e.fillRect(a,c.top+u-i,h,i)}}}function hn(e,t,n,r,i,a,o,s){let c=fn(a),l=r-c.left-c.right,u=i-c.top-c.bottom,d=n.labels.length,f=n.datasets.length,p=l/d,m=o?p*(1-dn):p*(1-dn)/f,h=Math.floor((e-c.left)/p);if(h<0||h>=d)return null;let g=c.left+h*p+p*dn/2;if(o){if(e<g||e>g+m)return null;let r=c.top+u;for(let[e,i]of n.datasets.entries()){let a=Math.max(0,i.data[h]??0),o=a/s*u;if(t>=r-o&&t<=r)return{datasetIndex:e,pointIndex:h,value:a,label:n.labels?.[h]??``};r-=o}return null}for(let r=0;r<f;r++){let i=g+r*m;if(e<i||e>i+m)continue;let a=Math.max(0,n.datasets[r].data[h]??0),o=a/s*u;if(t>=c.top+u-o&&t<=c.top+u)return{datasetIndex:r,pointIndex:h,value:a,label:n.labels?.[h]??``}}return null}var gn={class:`vibe-chart`},_n={key:0,class:`vibe-chart-legend vibe-chart-legend--top`},vn={key:1,class:`vibe-chart-legend vibe-chart-legend--bottom`},yn=c((0,t.defineComponent)({__name:`VibeChartBar`,props:{data:{type:Object,required:!0},legend:{type:String,default:`bottom`},height:{type:[Number,String],default:`auto`},showAxes:{type:Boolean,default:!0},showGrid:{type:Boolean,default:!0},stacked:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.ref)(null),i=(0,t.ref)(null),a=null,o=0,s=0,c=(0,t.computed)(()=>n.height===`auto`?{width:`100%`,aspectRatio:`16/9`}:{width:`100%`,height:typeof n.height==`number`?`${n.height}px`:n.height}),l=(0,t.ref)([]);function u(){l.value=r.value?qt(n.data.datasets,r.value):[]}let d=1;function f(){if(u(),d=pn(n.data,n.stacked),!i.value||!o||!s)return;let e=i.value,t=e.getContext(`2d`);if(!t)return;let r=window.devicePixelRatio||1,a=Math.round(o*r),c=Math.round(s*r);(e.width!==a||e.height!==c)&&(e.width=a,e.height=c),t.setTransform(r,0,0,r,0,0),mn(t,n.data,o,s,l.value,n.showAxes,n.showGrid,n.stacked)}return Yt(r,i,(e,t)=>{o=e,s=t,f()}),(0,t.onMounted)(()=>{u(),d=pn(n.data,n.stacked),r.value&&i.value&&(a=Zt(r.value,i.value,(e,t)=>hn(e,t,n.data,o,s,n.showAxes,n.stacked,d)))}),(0,t.watch)(()=>n.data,f),(0,t.watch)([()=>n.showAxes,()=>n.showGrid,()=>n.stacked],f),(0,t.onUnmounted)(()=>{a?.()}),(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,gn,[e.legend===`top`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_n,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.data.datasets,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e.label??n,class:`vibe-chart-legend-item`},[(0,t.createElementVNode)(`span`,{class:`vibe-chart-legend-swatch`,style:(0,t.normalizeStyle)({background:l.value[n]})},null,4),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)]))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`containerEl`,ref:r,class:`vibe-chart-canvas-container`,style:(0,t.normalizeStyle)(c.value)},[(0,t.createElementVNode)(`canvas`,{ref_key:`canvasEl`,ref:i,role:`img`,"aria-label":`Chart`,style:{display:`block`,width:`100%`,height:`100%`}},null,512)],4),e.legend===`bottom`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.data.datasets,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e.label??n,class:`vibe-chart-legend-item`},[(0,t.createElementVNode)(`span`,{class:`vibe-chart-legend-swatch`,style:(0,t.normalizeStyle)({background:l.value[n]})},null,4),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)]))),128))])):(0,t.createCommentVNode)(``,!0)]))}}),[[`__scopeId`,`data-v-eb3ff4df`]]);function bn(e,t,n,r,i){e.clearRect(0,0,n,r);let a=(t.datasets[0]?.data??[]).map(e=>Math.max(0,e)),o=a.reduce((e,t)=>e+t,0);if(o===0)return;let s=n/2,c=r/2,l=Math.min(n,r)*.4;e.strokeStyle=`#fff`,e.lineWidth=2;let u=-Math.PI/2;for(let[t,n]of a.entries()){let r=n/o*Math.PI*2;e.beginPath(),e.moveTo(s,c),e.arc(s,c,l,u,u+r),e.closePath(),e.fillStyle=i[t],e.fill(),e.stroke(),u+=r}}function xn(e,t,n,r,i){let a=r/2,o=i/2,s=Math.min(r,i)*.4,c=e-a,l=t-o;if(Math.hypot(c,l)>s)return null;let u=(n.datasets[0]?.data??[]).map(e=>Math.max(0,e)),d=u.reduce((e,t)=>e+t,0);if(d===0)return null;let f=(Math.atan2(l,c)+Math.PI*2.5)%(Math.PI*2),p=0;for(let[e,t]of u.entries()){let r=t/d*Math.PI*2;if(f>=p&&f<p+r)return{datasetIndex:0,pointIndex:e,value:t,label:n.labels?.[e]??``};p+=r}return null}var Sn={class:`vibe-chart`},Cn={key:0,class:`vibe-chart-legend vibe-chart-legend--top`},wn={key:1,class:`vibe-chart-legend vibe-chart-legend--bottom`},Tn=c((0,t.defineComponent)({__name:`VibeChartPie`,props:{data:{type:Object,required:!0},legend:{type:String,default:`bottom`},height:{type:[Number,String],default:`auto`}},setup(e){let n=e,r=(0,t.ref)(null),i=(0,t.ref)(null),a=null,o=0,s=0,c=(0,t.computed)(()=>n.height===`auto`?{width:`100%`,aspectRatio:`1/1`}:{width:`100%`,height:typeof n.height==`number`?`${n.height}px`:n.height}),l=(0,t.ref)([]);function u(){l.value=r.value?Jt(n.data.labels?.length??0,r.value):[]}function d(){if(u(),!i.value||!o||!s)return;let e=i.value,t=e.getContext(`2d`);if(!t)return;let r=window.devicePixelRatio||1,a=Math.round(o*r),c=Math.round(s*r);(e.width!==a||e.height!==c)&&(e.width=a,e.height=c),t.setTransform(r,0,0,r,0,0),bn(t,n.data,o,s,l.value)}return Yt(r,i,(e,t)=>{o=e,s=t,d()}),(0,t.onMounted)(()=>{u(),r.value&&i.value&&(a=Zt(r.value,i.value,(e,t)=>xn(e,t,n.data,o,s)))}),(0,t.watch)(()=>n.data,d),(0,t.onUnmounted)(()=>{a?.()}),(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Sn,[e.legend===`top`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Cn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.data.labels,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e??n,class:`vibe-chart-legend-item`},[(0,t.createElementVNode)(`span`,{class:`vibe-chart-legend-swatch`,style:(0,t.normalizeStyle)({background:l.value[n]})},null,4),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e),1)]))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`containerEl`,ref:r,class:`vibe-chart-canvas-container`,style:(0,t.normalizeStyle)(c.value)},[(0,t.createElementVNode)(`canvas`,{ref_key:`canvasEl`,ref:i,role:`img`,"aria-label":`Chart`,style:{display:`block`,width:`100%`,height:`100%`}},null,512)],4),e.legend===`bottom`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,wn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.data.labels,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e??n,class:`vibe-chart-legend-item`},[(0,t.createElementVNode)(`span`,{class:`vibe-chart-legend-swatch`,style:(0,t.normalizeStyle)({background:l.value[n]})},null,4),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e),1)]))),128))])):(0,t.createCommentVNode)(``,!0)]))}}),[[`__scopeId`,`data-v-bab16cba`]]),En={class:`vibe-datatable`},Dn={class:`row mb-3`},On={key:0,class:`col-md-6 mb-2 mb-md-0`},kn=[`placeholder`],An={key:1,class:`col-md-6`},jn={class:`d-flex justify-content-md-end align-items-center`},Mn=[`value`],Nn=[`aria-sort`,`onClick`],Pn=[`onClick`],Fn=[`data-label`],In={key:0},Ln=[`colspan`],Rn={class:`row`},zn={key:0,class:`col-md-6 mb-2 mb-md-0`},Bn={class:`datatable-info`},Vn={key:1,class:`col-md-6`},Hn={class:`pagination justify-content-md-end mb-0`},Un={key:0,class:`page-item`},Wn={key:1,class:`page-item disabled`},Gn=[`onClick`],Kn={key:2,class:`page-item disabled`},qn={key:3,class:`page-item`},Jn=c((0,t.defineComponent)({__name:`VibeDataTable`,props:(0,t.mergeModels)({items:{type:Array,default:()=>[]},columns:{type:Array,default:()=>[]},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]},clickable:{type:Boolean,default:!1}},{currentPage:{default:1},currentPageModifiers:{},perPage:{default:10},perPageModifiers:{},sortBy:{default:void 0},sortByModifiers:{},sortDesc:{type:Boolean,default:!1},sortDescModifiers:{}}),emits:(0,t.mergeModels)([`row-clicked`,`component-error`],[`update:currentPage`,`update:perPage`,`update:sortBy`,`update:sortDesc`]),setup(e,{emit:n}){let r=e,i=(0,t.useModel)(e,`currentPage`),a=(0,t.useModel)(e,`perPage`),o=(0,t.useModel)(e,`sortBy`),s=(0,t.useModel)(e,`sortDesc`),c=n,l=(0,t.ref)(``),u=(0,t.ref)(null),d=(0,t.ref)(``),f=(e,t)=>r.rowKey&&e[r.rowKey]!==void 0?String(e[r.rowKey]):`__row_${x.value-1+t}`,p=!1;(0,t.watch)(l,e=>{u.value!==null&&clearTimeout(u.value),u.value=setTimeout(()=>{p||(d.value=e,i.value=1,u.value=null)},r.searchDebounce)}),(0,t.onBeforeUnmount)(()=>{p=!0,u.value!==null&&(clearTimeout(u.value),u.value=null)});let m=(0,t.computed)(()=>{if(!r.searchable||!d.value)return r.items||[];let e=d.value.toLowerCase();return(r.items||[]).filter(t=>(r.columns||[]).some(n=>{if(n.searchable===!1)return!1;let r=t[n.key];return r==null?!1:String(r).toLowerCase().includes(e)}))}),h=(e,t,n)=>{if(e==null)return 1;if(t==null)return-1;if(typeof e==`string`&&typeof t==`string`){let r=e.toLowerCase(),i=t.toLowerCase();return r<i?n?1:-1:r>i?n?-1:1:0}if(typeof e==`number`&&typeof t==`number`)return e<t?n?1:-1:e>t?n?-1:1:0;if(typeof e==`boolean`&&typeof t==`boolean`)return e===t?0:(e?1:-1)*(n?-1:1);if(e instanceof Date&&t instanceof Date){let r=e.getTime(),i=t.getTime();return r<i?n?1:-1:r>i?n?-1:1:0}return 0},g=(0,t.computed)(()=>{if(!r.sortable||!o.value)return m.value;let e=[...m.value],t=o.value;return e.sort((e,n)=>h(e[t],n[t],s.value)),e}),_=(0,t.computed)(()=>{if(!r.paginated)return g.value;let e=(i.value-1)*a.value,t=e+a.value;return g.value.slice(e,t)}),v=(0,t.computed)(()=>r.items.length),y=(0,t.computed)(()=>m.value.length),b=(0,t.computed)(()=>Math.ceil(y.value/Math.max(1,a.value))),x=(0,t.computed)(()=>y.value===0?0:(i.value-1)*a.value+1),S=(0,t.computed)(()=>{let e=i.value*a.value;return Math.min(e,y.value)}),C=(0,t.computed)(()=>(y.value===v.value?r.infoText:r.filteredInfoText).replace(`{start}`,String(x.value)).replace(`{end}`,String(S.value)).replace(`{total}`,String(y.value)).replace(`{totalRows}`,String(v.value))),w=(0,t.computed)(()=>{let e=i.value-2,t=i.value+2,n=[];for(let r=Math.max(1,e);r<=Math.min(b.value,t);r++)n.push(r);return n}),T=(0,t.computed)(()=>{let e=[`table`];return r.striped&&e.push(`table-striped`),r.bordered&&e.push(`table-bordered`),r.borderless&&e.push(`table-borderless`),r.hover&&e.push(`table-hover`),r.small&&e.push(`table-sm`),r.stack&&e.push(`vibe-table-stack`),r.variant&&e.push(`table-${r.variant}`),e.join(` `)}),E=e=>{!r.sortable||e.sortable===!1||(o.value===e.key?s.value=!s.value:(o.value=e.key,s.value=!1))};(0,t.watch)(b,e=>{e>0&&i.value>e&&(i.value=e)});let D=e=>{e<1||e>b.value||(i.value=e)},O=()=>{i.value=1},k=(e,t)=>{c(`row-clicked`,e,x.value-1+t)},ee=(e,t)=>{let n=e[t.key];return t.formatter?t.formatter(n,e):n},A=(0,t.computed)(()=>{let e=new Map;for(let t of r.columns)!r.sortable||t.sortable===!1?e.set(t,``):o.value===t.key?e.set(t,s.value?`sort-desc`:`sort-asc`):e.set(t,`sort-none`);return e}),j=(0,t.computed)(()=>{let e=new Map;for(let t of r.columns)!r.sortable||t.sortable===!1?e.set(t,void 0):o.value===t.key?e.set(t,s.value?`descending`:`ascending`):e.set(t,`none`);return e}),ne=(0,t.computed)(()=>{let e=new Map;for(let t of r.columns){let n=te(t.thStyle);r.sortable&&t.sortable!==!1&&(n.cursor=`pointer`),e.set(t,n)}return e}),re=(0,t.computed)(()=>{let e=new Map;for(let t of r.columns)e.set(t,te(t.tdStyle));return e});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,En,[(0,t.createElementVNode)(`div`,Dn,[e.searchable?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,On,[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":r[0]||=e=>l.value=e,type:`search`,class:`form-control`,placeholder:e.searchPlaceholder},null,8,kn),[[t.vModelText,l.value]])])):(0,t.createCommentVNode)(``,!0),e.showPerPage&&e.paginated?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,An,[(0,t.createElementVNode)(`div`,jn,[r[6]||=(0,t.createElementVNode)(`label`,{class:`me-2 mb-0`},`Show`,-1),(0,t.withDirectives)((0,t.createElementVNode)(`select`,{"onUpdate:modelValue":r[1]||=e=>a.value=e,class:`form-select form-select-sm`,style:{width:`auto`},onChange:O},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.perPageOptions,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:e,value:e},(0,t.toDisplayString)(e),9,Mn))),128))],544),[[t.vModelSelect,a.value,void 0,{number:!0}]]),r[7]||=(0,t.createElementVNode)(`span`,{class:`ms-2`},`entries`,-1)])])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)({"table-responsive":e.responsive})},[(0,t.createElementVNode)(`table`,{class:(0,t.normalizeClass)(T.value)},[(0,t.createElementVNode)(`thead`,null,[(0,t.createElementVNode)(`tr`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.columns,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`th`,{key:n.key,class:(0,t.normalizeClass)(n.headerClass),style:(0,t.normalizeStyle)(ne.value.get(n)),"aria-sort":j.value.get(n),onClick:e=>E(n)},[(0,t.createTextVNode)((0,t.toDisplayString)(n.label)+` `,1),e.sortable&&n.sortable!==!1?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`ms-1`,`vibe-sort-icon`,A.value.get(n)]),"aria-hidden":`true`},null,2)):(0,t.createCommentVNode)(``,!0)],14,Nn))),128))])]),(0,t.createElementVNode)(`tbody`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(_.value,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:f(r,i),style:(0,t.normalizeStyle)(e.clickable?{cursor:`pointer`}:void 0),onClick:e=>k(r,i)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.columns,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`td`,{key:e.key,class:(0,t.normalizeClass)(e.class),style:(0,t.normalizeStyle)(re.value.get(e)),"data-label":e.label},[(0,t.renderSlot)(n.$slots,`cell(${e.key})`,{item:r,value:r[e.key],index:i},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(ee(r,e)),1)],!0)],14,Fn))),128))],12,Pn))),128)),_.value.length===0&&e.showEmpty?((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,In,[(0,t.createElementVNode)(`td`,{colspan:e.columns?.length||1,class:`text-center`},(0,t.toDisplayString)(e.emptyText),9,Ln)])):(0,t.createCommentVNode)(``,!0)])],2)],2),(0,t.createElementVNode)(`div`,Rn,[e.showInfo?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zn,[(0,t.createElementVNode)(`div`,Bn,(0,t.toDisplayString)(C.value),1)])):(0,t.createCommentVNode)(``,!0),e.paginated&&b.value>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Vn,[(0,t.createElementVNode)(`nav`,null,[(0,t.createElementVNode)(`ul`,Hn,[(0,t.createElementVNode)(`li`,{class:(0,t.normalizeClass)([`page-item`,{disabled:i.value===1}])},[(0,t.createElementVNode)(`button`,{type:`button`,class:`page-link`,onClick:r[2]||=e=>D(i.value-1)},` Previous `)],2),i.value>3?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,Un,[(0,t.createElementVNode)(`button`,{type:`button`,class:`page-link`,onClick:r[3]||=e=>D(1)},`1`)])):(0,t.createCommentVNode)(``,!0),i.value>4?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,Wn,[...r[8]||=[(0,t.createElementVNode)(`span`,{class:`page-link`},`...`,-1)]])):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(w.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e,class:(0,t.normalizeClass)([`page-item`,{active:e===i.value}])},[(0,t.createElementVNode)(`button`,{type:`button`,class:`page-link`,onClick:t=>D(e)},(0,t.toDisplayString)(e),9,Gn)],2))),128)),i.value<b.value-3?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,Kn,[...r[9]||=[(0,t.createElementVNode)(`span`,{class:`page-link`},`...`,-1)]])):(0,t.createCommentVNode)(``,!0),i.value<b.value-2?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,qn,[(0,t.createElementVNode)(`button`,{type:`button`,class:`page-link`,onClick:r[4]||=e=>D(b.value)},(0,t.toDisplayString)(b.value),1)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`li`,{class:(0,t.normalizeClass)([`page-item`,{disabled:i.value===b.value}])},[(0,t.createElementVNode)(`button`,{type:`button`,class:`page-link`,onClick:r[5]||=e=>D(i.value+1)},` Next `)],2)])])])):(0,t.createCommentVNode)(``,!0)])]))}}),[[`__scopeId`,`data-v-fd417a3a`]]),Yn=[`for`],Xn={key:0,class:`text-danger ms-1`,"aria-hidden":`true`},Zn={key:1,class:`text-muted ms-1 small`,"aria-hidden":`true`},Qn={key:2,class:`visually-hidden`},$n={key:1,class:`input-group`},er=[`id`,`type`,`value`,`placeholder`,`disabled`,`readonly`,`required`,`autocomplete`,`inputmode`,`aria-invalid`,`aria-describedby`],tr=[`aria-label`,`aria-pressed`],nr=[`id`,`type`,`value`,`placeholder`,`disabled`,`readonly`,`required`,`autocomplete`,`inputmode`,`aria-invalid`,`aria-describedby`],rr={key:3,"aria-live":`polite`,class:`mt-1`},ir={class:`d-flex gap-1 mb-1`,"aria-hidden":`true`},ar={class:`text-muted`},or=[`id`],sr=[`id`],cr=[`id`],lr=[`id`,`type`,`value`,`placeholder`,`disabled`,`readonly`,`required`,`autocomplete`,`inputmode`,`aria-invalid`,`aria-describedby`],ur=c((0,t.defineComponent)({__name:`VibeFormInput`,props:(0,t.mergeModels)({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},showToggle:{type:Boolean,default:!1},showPasswordStrength:{type:Boolean,default:!1},autocomplete:{type:String,default:void 0},inputmode:{type:String,default:void 0}},{modelValue:{default:``},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`input`,`change`],[`update:modelValue`]),setup(e,{emit:n}){let r=(0,t.useModel)(e,`modelValue`),i=e,a=n,o=(0,t.inject)(N,null),s=(0,t.ref)(!1),c=(0,t.computed)(()=>i.type===`password`&&i.showToggle&&s.value?`text`:i.type);function l(e){let t=0;return e.length>=8&&t++,e.length>=12&&t++,/[a-z]/.test(e)&&t++,/[A-Z]/.test(e)&&t++,/\d/.test(e)&&t++,/[^a-zA-Z0-9]/.test(e)&&t++,t<=1?{level:1,label:`Weak`}:t<=2?{level:2,label:`Fair`}:t<=4?{level:3,label:`Good`}:{level:4,label:`Strong`}}let u=(0,t.computed)(()=>l(String(r.value??``))),d=[``,`#dc3545`,`#fd7e14`,`#0d6efd`,`#198754`],f={number:`decimal`,email:`email`,tel:`tel`,url:`url`,search:`search`},p=(0,t.computed)(()=>i.inputmode??f[i.type]),m={email:`email`},h=(0,t.computed)(()=>i.autocomplete??m[i.type]),g=o?.consumeId(),_=L(`input`),v=(0,t.computed)(()=>i.id||g||_),y=(0,t.computed)(()=>`${v.value}-help`),b=(0,t.computed)(()=>`${v.value}-feedback`),x=(0,t.computed)(()=>{let e=[];return i.helpText&&e.push(y.value),i.validationMessage&&e.push(b.value),o?.helpId.value&&e.push(o.helpId.value),o?.feedbackId.value&&e.push(o.feedbackId.value),e.length?[...new Set(e)].join(` `):void 0}),S=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),C=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),w=(0,t.computed)(()=>!!i.helpText&&!o?.hasHelp.value),T=(0,t.computed)(()=>{let e=[];return i.plaintext?e.push(`form-control-plaintext`):(e.push(`form-control`),i.size&&e.push(`form-control-${i.size}`)),i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),i.focusRing&&e.push(`focus-ring`),e.join(` `)}),E=e=>{let t=e.target;r.value=i.type===`number`?t.value===``?``:Number(t.value):t.value,a(`input`,e),i.validateOn===`input`&&a(`validate`)},D=e=>{a(`change`,e),i.validateOn===`change`&&a(`validate`)},O=e=>{a(`blur`,e),i.validateOn===`blur`&&a(`validate`)},k=e=>{a(`focus`,e)};return(n,i)=>e.noWrapper?((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:1,id:v.value,type:e.type,class:(0,t.normalizeClass)(T.value),value:r.value,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly||e.plaintext,required:e.required,autocomplete:h.value,inputmode:p.value,"aria-invalid":e.validationState===`invalid`,"aria-describedby":x.value,onInput:E,onChange:D,onBlur:O,onFocus:k},null,42,lr)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)({"mb-3":S.value||w.value||C.value})},[S.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:v.value,class:`form-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Xn,`*`)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Zn,`(optional)`)),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Qn,`required`)):(0,t.createCommentVNode)(``,!0)],8,Yn)):(0,t.createCommentVNode)(``,!0),e.showToggle&&e.type===`password`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,$n,[(0,t.createElementVNode)(`input`,{id:v.value,type:c.value,class:(0,t.normalizeClass)(T.value),value:r.value,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly||e.plaintext,required:e.required,autocomplete:h.value,inputmode:p.value,"aria-invalid":e.validationState===`invalid`,"aria-describedby":x.value,onInput:E,onChange:D,onBlur:O,onFocus:k},null,42,er),(0,t.createElementVNode)(`button`,{type:`button`,class:`btn btn-outline-secondary`,"aria-label":s.value?`Hide password`:`Show password`,"aria-pressed":s.value,onClick:i[0]||=e=>s.value=!s.value},[(0,t.createElementVNode)(`i`,{class:(0,t.normalizeClass)(s.value?`bi bi-eye-slash`:`bi bi-eye`),"aria-hidden":`true`},null,2)],8,tr)])):((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:2,id:v.value,type:e.type,class:(0,t.normalizeClass)(T.value),value:r.value,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly||e.plaintext,required:e.required,autocomplete:h.value,inputmode:p.value,"aria-invalid":e.validationState===`invalid`,"aria-describedby":x.value,onInput:E,onChange:D,onBlur:O,onFocus:k},null,42,nr)),e.showPasswordStrength&&e.type===`password`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rr,[(0,t.createElementVNode)(`div`,ir,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(4,e=>(0,t.createElementVNode)(`div`,{key:e,class:`flex-fill rounded`,style:(0,t.normalizeStyle)([{height:`4px`},{backgroundColor:e<=u.value.level?d[u.value.level]:`var(--bs-border-color)`}])},null,4)),64))]),(0,t.createElementVNode)(`small`,ar,`Password strength: `+(0,t.toDisplayString)(u.value.label),1)])):(0,t.createCommentVNode)(``,!0),w.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:4,id:y.value,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,or)):(0,t.createCommentVNode)(``,!0),C.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:5},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:b.value,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,sr)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:b.value,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please provide a valid value.`),9,cr)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-d9ebcf8c`]]),dr=[`for`],fr={key:0,class:`text-danger`},pr=[`id`,`value`,`multiple`,`size`,`disabled`,`required`,`aria-invalid`,`aria-describedby`],mr={key:0,value:``,disabled:``,selected:``},hr=[`value`,`disabled`],gr=[`id`],_r=[`id`],vr=[`id`],yr=``,br=`vi:`,xr=(0,t.defineComponent)({__name:`VibeFormSelect`,props:(0,t.mergeModels)({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}},{modelValue:{type:[String,Number,Boolean,null,Array],default:``},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`change`],[`update:modelValue`]),setup(e,{emit:n}){let r=e=>`${br}${e}`,i=e=>{if(!e.startsWith(br))return-1;let t=Number(e.slice(3));return Number.isInteger(t)&&t>=0?t:-1},a=(e,t)=>{for(let n=0;n<e.length;n++)if(Object.is(e[n].value,t))return n;return-1},o=(0,t.useModel)(e,`modelValue`),s=e,c=n,l=(0,t.inject)(N,null),u=l?.consumeId(),d=L(`select`),f=(0,t.computed)(()=>s.id||u||d),p=(0,t.computed)(()=>`${f.value}-help`),m=(0,t.computed)(()=>`${f.value}-feedback`),h=(0,t.computed)(()=>!!s.label&&!l?.hasLabel.value),g=(0,t.computed)(()=>!!s.validationState&&!l?.hasValidation.value),_=(0,t.computed)(()=>!!s.helpText&&!l?.hasHelp.value),v=(0,t.computed)(()=>{let e=[`form-select`];return s.size&&e.push(`form-select-${s.size}`),s.validationState===`valid`&&e.push(`is-valid`),s.validationState===`invalid`&&e.push(`is-invalid`),e.join(` `)}),y=e=>{let t=i(e);return t>=0&&t<s.options.length?s.options[t].value:``},b=e=>{let t=e.target,n;n=s.multiple?Array.from(t.selectedOptions).map(e=>y(e.value)):y(t.value),o.value=n},x=(0,t.computed)(()=>{if(Array.isArray(o.value))return o.value.map(e=>{let t=a(s.options,e);return t>=0?r(t):yr}).filter(e=>e!==yr);let e=a(s.options,o.value);return e>=0?r(e):yr}),S=e=>{c(`change`,e),s.validateOn===`change`&&c(`validate`)},C=e=>{c(`blur`,e),s.validateOn===`blur`&&c(`validate`)},w=e=>{c(`focus`,e)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)({"mb-3":h.value||_.value||g.value})},[h.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:f.value,class:`form-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,fr,`*`)):(0,t.createCommentVNode)(``,!0)],8,dr)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`select`,{id:f.value,class:(0,t.normalizeClass)(v.value),value:x.value,multiple:e.multiple,size:e.htmlSize||e.selectSize,disabled:e.disabled,required:e.required,"aria-invalid":e.validationState===`invalid`,"aria-describedby":e.helpText&&e.validationMessage?`${p.value} ${m.value}`:e.helpText?p.value:e.validationMessage?m.value:void 0,onInput:b,onChange:S,onBlur:C,onFocus:w},[e.placeholder&&!e.multiple?((0,t.openBlock)(),(0,t.createElementBlock)(`option`,mr,(0,t.toDisplayString)(e.placeholder),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.options,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:e.value===void 0?e.text:String(e.value),value:r(n),disabled:e.disabled},(0,t.toDisplayString)(e.text),9,hr))),128))])],42,pr),_.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${f.value}-help`,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,gr)):(0,t.createCommentVNode)(``,!0),g.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`${f.value}-feedback`,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,_r)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${f.value}-feedback`,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please select an option.`),9,vr)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),Sr=[`for`],Cr={key:0,class:`text-danger`},wr=[`id`,`value`,`placeholder`,`rows`,`maxlength`,`disabled`,`readonly`,`required`,`aria-invalid`,`aria-describedby`],Tr=[`id`],Er={key:0,class:`ms-auto`},Dr=[`id`],Or=[`id`],kr=(0,t.defineComponent)({__name:`VibeFormTextarea`,props:(0,t.mergeModels)({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}},{modelValue:{default:``},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`input`,`change`],[`update:modelValue`]),setup(e,{emit:n}){let r=(0,t.useModel)(e,`modelValue`),i=e,a=n,o=(0,t.inject)(N,null),s=o?.consumeId(),c=L(`textarea`),l=(0,t.computed)(()=>i.id||s||c),u=(0,t.computed)(()=>`${l.value}-help`),d=(0,t.computed)(()=>`${l.value}-feedback`),f=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),p=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),m=(0,t.computed)(()=>(!!i.helpText||i.showCharCount)&&!o?.hasHelp.value),h=(0,t.computed)(()=>{let e=[`form-control`];return i.size&&e.push(`form-control-${i.size}`),i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),e.join(` `)}),g=(0,t.computed)(()=>{if(i.noResize)return{resize:`none`}}),_=(0,t.computed)(()=>r.value?.length||0),v=e=>{r.value=e.target.value,a(`input`,e),i.validateOn===`input`&&a(`validate`)},y=e=>{a(`change`,e),i.validateOn===`change`&&a(`validate`)},b=e=>{a(`blur`,e),i.validateOn===`blur`&&a(`validate`)},x=e=>{a(`focus`,e)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)({"mb-3":f.value||m.value||p.value})},[f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:l.value,class:`form-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Cr,`*`)):(0,t.createCommentVNode)(``,!0)],8,Sr)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`textarea`,{id:l.value,class:(0,t.normalizeClass)(h.value),style:(0,t.normalizeStyle)(g.value),value:r.value,placeholder:e.placeholder,rows:e.rows,maxlength:e.maxlength,disabled:e.disabled,readonly:e.readonly,required:e.required,"aria-invalid":e.validationState===`invalid`,"aria-describedby":(e.helpText||e.showCharCount)&&e.validationMessage?`${u.value} ${d.value}`:e.helpText||e.showCharCount?u.value:e.validationMessage?d.value:void 0,onInput:v,onChange:y,onBlur:b,onFocus:x},null,46,wr),m.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:u.value,class:`form-text d-flex justify-content-between`},[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.helpText),1),e.showCharCount?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Er,[e.maxlength?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createTextVNode)((0,t.toDisplayString)(_.value)+` / `+(0,t.toDisplayString)(e.maxlength),1)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(_.value),1)],64))])):(0,t.createCommentVNode)(``,!0)],8,Tr)):(0,t.createCommentVNode)(``,!0),p.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:d.value,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,Dr)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:d.value,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please provide a valid value.`),9,Or)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),Ar=[`for`],jr={key:0,class:`text-danger`},Mr=[`disabled`],Nr=[`id`,`value`,`disabled`,`readonly`,`required`,`min`,`max`,`step`,`aria-invalid`,`aria-describedby`],Pr=[`disabled`],Fr=[`id`],Ir=[`id`],Lr=[`id`],Rr=c((0,t.defineComponent)({__name:`VibeFormSpinbutton`,props:(0,t.mergeModels)({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}},{modelValue:{default:0,validator:e=>!0},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`input`,`change`,`increment`,`decrement`],[`update:modelValue`]),setup(e,{emit:n}){let r=(0,t.useModel)(e,`modelValue`),i=e,a=n,o=(0,t.inject)(N,null),s=o?.consumeId(),c=L(`spinbutton`),l=(0,t.computed)(()=>i.id||s||c),u=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),d=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),f=(0,t.computed)(()=>!!i.helpText&&!o?.hasHelp.value),p=(0,t.computed)(()=>{let e=[`form-control`];return i.size&&e.push(`form-control-${i.size}`),i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),e.join(` `)}),m=(0,t.computed)(()=>{let e=[`input-group`];return i.size&&e.push(`input-group-${i.size}`),i.vertical&&e.push(`input-group-vertical`),e.join(` `)}),h=(0,t.ref)(r.value);(0,t.watch)(r,e=>{h.value=e??0});let g=(0,t.computed)(()=>i.disabled||i.readonly?!1:i.min===void 0||i.wrap?!0:h.value>i.min),_=(0,t.computed)(()=>i.disabled||i.readonly?!1:i.max===void 0||i.wrap?!0:h.value<i.max),v=e=>{let t=e;return i.min!==void 0&&t<i.min&&(t=i.min),i.max!==void 0&&t>i.max&&(t=i.max),t},y=e=>{let t=e.target,n=t.value===``?0:Number(t.value);h.value=n,r.value=n,a(`input`,e),i.validateOn===`input`&&a(`validate`)},b=e=>{let t=e.target,n=t.value===``?0:Number(t.value),o=v(n);h.value=o,o!==n&&(r.value=o),a(`change`,e),i.validateOn===`change`&&a(`validate`)},x=e=>{let t=e.target,n=t.value===``?0:Number(t.value),o=v(n);h.value=o,o!==n&&(r.value=o),a(`blur`,e),i.validateOn===`blur`&&a(`validate`)},S=e=>{a(`focus`,e)},C=(0,t.computed)(()=>Number.isFinite(i.step)&&i.step>0?i.step:1),w=(0,t.computed)(()=>{let e=String(C.value),t=e.indexOf(`.`);return t===-1?0:e.length-t-1}),T=e=>parseFloat(e.toFixed(w.value)),E=()=>{if(!_.value)return;let e=T(h.value+C.value);i.max!==void 0&&e>i.max&&(e=i.wrap?i.min??0:i.max),h.value=e,r.value=e,a(`increment`,e),a(`validate`)},D=()=>{if(!g.value)return;let e=T(h.value-C.value);i.min!==void 0&&e<i.min&&(e=i.wrap?i.max??0:i.min),h.value=e,r.value=e,a(`decrement`,e),a(`validate`)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)({"mb-3":u.value||f.value||d.value})},[u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:l.value,class:`form-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,jr,`*`)):(0,t.createCommentVNode)(``,!0)],8,Ar)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(m.value)},[(0,t.createElementVNode)(`button`,{class:`btn btn-outline-secondary`,type:`button`,disabled:!g.value,onClick:D,"aria-label":`Decrement`},[...r[0]||=[(0,t.createElementVNode)(`span`,{"aria-hidden":`true`},`−`,-1)]],8,Mr),(0,t.createElementVNode)(`input`,{id:l.value,type:`number`,class:(0,t.normalizeClass)(p.value),value:h.value,disabled:e.disabled,readonly:e.readonly,required:e.required,min:e.min,max:e.max,step:C.value,"aria-invalid":e.validationState===`invalid`,"aria-describedby":e.helpText&&e.validationMessage?`${l.value}-help ${l.value}-feedback`:e.helpText?`${l.value}-help`:e.validationMessage?`${l.value}-feedback`:void 0,onInput:y,onChange:b,onBlur:x,onFocus:S},null,42,Nr),(0,t.createElementVNode)(`button`,{class:`btn btn-outline-secondary`,type:`button`,disabled:!_.value,onClick:E,"aria-label":`Increment`},[...r[1]||=[(0,t.createElementVNode)(`span`,{"aria-hidden":`true`},`+`,-1)]],8,Pr)],2),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-help`,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,Fr)):(0,t.createCommentVNode)(``,!0),d.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`${l.value}-feedback`,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,Ir)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-feedback`,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please provide a valid value.`),9,Lr)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-9dd7f0b5`]]),zr=[`for`],Br={key:0,class:`text-danger`},Vr=[`id`,`type`,`value`,`disabled`,`readonly`,`required`,`min`,`max`,`aria-invalid`,`aria-describedby`],Hr=[`id`],Ur=[`id`],Wr=[`id`],Gr=(0,t.defineComponent)({__name:`VibeFormDatepicker`,props:(0,t.mergeModels)({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`}},{modelValue:{default:``,validator:e=>!0},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`input`,`change`],[`update:modelValue`]),setup(e,{emit:n}){let r=(0,t.useModel)(e,`modelValue`),i=e,a=n,o=(0,t.inject)(N,null),s=o?.consumeId(),c=L(`datepicker`),l=(0,t.computed)(()=>i.id||s||c),u=(0,t.computed)(()=>`${l.value}-help`),d=(0,t.computed)(()=>`${l.value}-feedback`),f=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),p=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),m=(0,t.computed)(()=>!!i.helpText&&!o?.hasHelp.value),h=(0,t.computed)(()=>{let e=[`form-control`];return i.size&&e.push(`form-control-${i.size}`),i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),e.join(` `)}),g=e=>{r.value=e.target.value,a(`input`,e),i.validateOn===`input`&&a(`validate`)},_=e=>{a(`change`,e),i.validateOn===`change`&&a(`validate`)},v=e=>{a(`blur`,e),i.validateOn===`blur`&&a(`validate`)},y=e=>{a(`focus`,e)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)({"mb-3":f.value||m.value||p.value})},[f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:l.value,class:`form-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Br,`*`)):(0,t.createCommentVNode)(``,!0)],8,zr)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{id:l.value,type:e.type,class:(0,t.normalizeClass)(h.value),value:r.value,disabled:e.disabled,readonly:e.readonly,required:e.required,min:e.min,max:e.max,"aria-invalid":e.validationState===`invalid`,"aria-describedby":e.helpText&&e.validationMessage?`${u.value} ${d.value}`:e.helpText?u.value:e.validationMessage?d.value:void 0,onInput:g,onChange:_,onBlur:v,onFocus:y},null,42,Vr),m.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:u.value,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,Hr)):(0,t.createCommentVNode)(``,!0),p.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:d.value,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,Ur)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:d.value,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please provide a valid date.`),9,Wr)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),Kr={class:`vibe-file-input`},qr=[`for`],Jr={class:`mb-0`},Yr=[`id`,`multiple`,`accept`,`disabled`],Xr={key:2,class:`form-text`},Zr=c((0,t.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(e,{expose:n,emit:r}){let i=e,a=r,o=L(`file-input`),s=(0,t.computed)(()=>i.id||o),c=(0,t.ref)(!1),l=(0,t.ref)(null),u=(0,t.computed)(()=>{let e=[`form-control`];return i.size&&e.push(`form-control-${i.size}`),e.join(` `)}),d=(e,t)=>{let n=t.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);if(n.length===0)return!0;let r=e.type.toLowerCase(),i=e.name.toLowerCase();for(let e of n){if(e.startsWith(`.`)){if(i.endsWith(e))return!0;continue}if(e.endsWith(`/*`)){let t=e.slice(0,e.length-1);if(r.startsWith(t))return!0;continue}if(r===e)return!0}return!1},f=e=>{let t=[],n=[];for(let r of e){if(i.maxSize!==void 0&&r.size>i.maxSize){n.push(r);continue}if(i.accept&&!d(r,i.accept)){n.push(r);continue}t.push(r)}return{accepted:t,rejected:n}},p=e=>{let{accepted:t,rejected:n}=f(e);a(`update:modelValue`,t),a(`change`,t),n.length>0&&a(`invalid`,n)},m=e=>{let t=e.target;p(t.files?Array.from(t.files):[]),t.value=``},h=e=>{e.preventDefault(),g=0,c.value=!1,!i.disabled&&p(e.dataTransfer?.files?Array.from(e.dataTransfer.files):[])},g=0,_=e=>{e.preventDefault(),i.disabled||(g++,c.value=!0)},v=e=>{e.preventDefault()},y=e=>{e.preventDefault(),g=Math.max(0,g-1),g===0&&(c.value=!1)},b=()=>{i.disabled||l.value?.click()};n({clearFiles:()=>{l.value&&(l.value.value=``),a(`update:modelValue`,[]),a(`change`,[])}});let x=(0,t.computed)(()=>{let e=[`vibe-file-input-dropzone`];return c.value&&e.push(`vibe-file-input-dropzone-active`),i.disabled&&e.push(`vibe-file-input-dropzone-disabled`),e.join(` `)}),S=()=>{g=0,c.value=!1};return(0,t.onMounted)(()=>{typeof document>`u`||(document.addEventListener(`dragend`,S),document.addEventListener(`drop`,S))}),(0,t.onBeforeUnmount)(()=>{typeof document>`u`||(document.removeEventListener(`dragend`,S),document.removeEventListener(`drop`,S))}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Kr,[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:s.value,class:`form-label`},(0,t.toDisplayString)(e.label),9,qr)):(0,t.createCommentVNode)(``,!0),e.dragDrop?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)(x.value),onDrop:h,onDragenter:_,onDragover:v,onDragleave:y,onClick:b},[(0,t.renderSlot)(n.$slots,`dropzone`,{},()=>[(0,t.createElementVNode)(`p`,Jr,(0,t.toDisplayString)(e.dropzoneText),1)],!0)],34)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{id:s.value,ref_key:`inputRef`,ref:l,type:`file`,class:(0,t.normalizeClass)(e.dragDrop?``:u.value),multiple:e.multiple,accept:e.accept,disabled:e.disabled,style:(0,t.normalizeStyle)(e.dragDrop?`display: none`:void 0),onChange:m},null,46,Yr),e.helpText?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Xr,(0,t.toDisplayString)(e.helpText),1)):(0,t.createCommentVNode)(``,!0)]))}}),[[`__scopeId`,`data-v-d6447a0f`]]),Qr=[`aria-label`,`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-disabled`],$r=[`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-disabled`],ei=c((0,t.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(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=null,c=(0,t.computed)(()=>o.value!==null),l=(0,t.ref)(Array.isArray(r.modelValue)?[...r.modelValue]:r.modelValue);(0,t.watch)(()=>r.modelValue,e=>{c.value||(l.value=Array.isArray(e)?[...e]:e)}),(0,t.onMounted)(()=>{let e=r.range,t=Array.isArray(r.modelValue);e&&!t?console.warn(`[VibeSlider] range=true expects modelValue as [low, high] tuple; received non-array. Slider will be inert.`):!e&&t&&console.warn(`[VibeSlider] range=false expects modelValue as a number; received array. Use range=true for tuple model.`),r.max<=r.min&&console.warn(`[VibeSlider] max (${r.max}) must be greater than min (${r.min}). Slider is rendered but inert.`)});let u=(0,t.computed)(()=>Math.max(0,r.max-r.min)),d=e=>Math.min(r.max,Math.max(r.min,e)),f=e=>u.value===0||r.step<=0?d(e):d(Math.round((e-r.min)/r.step)*r.step+r.min),p=(0,t.computed)(()=>Array.isArray(l.value)?d(l.value[0]):d(l.value)),m=(0,t.computed)(()=>Array.isArray(l.value)?d(l.value[1]):d(l.value)),h=e=>u.value===0?0:(e-r.min)/u.value*100,g=(0,t.computed)(()=>h(p.value)),_=(0,t.computed)(()=>h(m.value)),v=(0,t.computed)(()=>{let e=[`vibe-slider`];return r.vertical&&e.push(`vibe-slider-vertical`),r.disabled&&e.push(`vibe-slider-disabled`),r.range&&e.push(`vibe-slider-range`),e.join(` `)}),y=(0,t.computed)(()=>r.range?r.vertical?{bottom:`${g.value}%`,top:`${100-_.value}%`}:{left:`${g.value}%`,right:`${100-_.value}%`}:r.vertical?{bottom:`0%`,top:`${100-g.value}%`}:{left:`0%`,right:`${100-g.value}%`}),b=(0,t.computed)(()=>r.vertical?{bottom:`${g.value}%`}:{left:`${g.value}%`}),x=(0,t.computed)(()=>r.vertical?{bottom:`${_.value}%`}:{left:`${_.value}%`}),S=(e,t)=>{if(r.range&&Array.isArray(l.value)){let[n,r]=l.value,a=f(t),s,c,u=e;if(e===0?a>r?(s=r,c=a,u=1):(s=a,c=r):a<n?(s=a,c=n,u=0):(s=n,c=a),s===n&&c===r)return;u!==e&&o.value!==null&&(o.value=u);let d=[s,c];l.value=d,i(`update:modelValue`,d),i(`change`,d);return}let n=f(t);n!==p.value&&(l.value=n,i(`update:modelValue`,n),i(`change`,n))},C=e=>{if(!a.value)return r.min;let t=a.value.getBoundingClientRect(),n=r.vertical?1-(e.clientY-t.top)/t.height:(e.clientX-t.left)/t.width;return r.min+n*(r.max-r.min)},w=e=>{if(r.disabled||e.target.classList.contains(`vibe-slider-handle`))return;let t=C(e);S(r.range?Math.abs(t-p.value)<=Math.abs(t-m.value)?0:1:0,t)},T=(e,t)=>{if(r.disabled)return;let n=e===0?p.value:m.value,i=n;switch(t.key){case`ArrowRight`:case`ArrowUp`:i=n+r.step;break;case`ArrowLeft`:case`ArrowDown`:i=n-r.step;break;case`Home`:i=r.min;break;case`End`:i=r.max;break;case`PageUp`:i=n+r.step*10;break;case`PageDown`:i=n-r.step*10;break;default:return}t.preventDefault(),S(e,i)},E=(e,t)=>{r.disabled||!a.value||typeof window>`u`||(l.value=Array.isArray(r.modelValue)?[...r.modelValue]:r.modelValue,o.value=e,s=t.pointerId,window.addEventListener(`pointermove`,A),window.addEventListener(`pointerup`,j))},D=e=>T(0,e),O=e=>T(1,e),k=e=>E(0,e),ee=e=>E(1,e),A=e=>{if(o.value===null||!a.value||e.pointerId!==s)return;let t=a.value.getBoundingClientRect(),n=r.vertical?1-(e.clientY-t.top)/t.height:(e.clientX-t.left)/t.width,i=r.min+n*(r.max-r.min);S(o.value,i)},j=e=>{o.value===null||e.pointerId!==s||(o.value=null,s=null,window.removeEventListener(`pointermove`,A),window.removeEventListener(`pointerup`,j))};return(0,t.onBeforeUnmount)(()=>{typeof window<`u`&&(window.removeEventListener(`pointermove`,A),window.removeEventListener(`pointerup`,j)),o.value=null,s=null}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(v.value)},[(0,t.createElementVNode)(`div`,{class:`vibe-slider-track`,ref_key:`trackRef`,ref:a,onPointerdown:w},[(0,t.createElementVNode)(`div`,{class:`vibe-slider-fill`,style:(0,t.normalizeStyle)(y.value)},null,4),(0,t.createElementVNode)(`div`,{class:`vibe-slider-handle`,role:`slider`,tabindex:`0`,"aria-label":e.range?`Minimum`:void 0,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":p.value,"aria-disabled":e.disabled||void 0,style:(0,t.normalizeStyle)(b.value),onKeydown:D,onPointerdown:k},null,44,Qr),e.range?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`vibe-slider-handle`,role:`slider`,tabindex:`0`,"aria-label":`Maximum`,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":m.value,"aria-disabled":e.disabled||void 0,style:(0,t.normalizeStyle)(x.value),onKeydown:O,onPointerdown:ee},null,44,$r)):(0,t.createCommentVNode)(``,!0)],544)],2))}}),[[`__scopeId`,`data-v-58d4508c`]]),ti={class:`vibe-stepper-header`},ni=[`tabindex`,`aria-disabled`,`onClick`,`onKeydown`],ri={class:`vibe-stepper-marker`},ii={class:`vibe-stepper-label`},ai={key:0,class:`vibe-stepper-description`},oi={class:`vibe-stepper-body`},si={class:`vibe-stepper-actions`},ci=[`disabled`],li=c((0,t.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`,`component-error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>{let e=[`vibe-stepper`];return r.vertical&&e.push(`vibe-stepper-vertical`),e.join(` `)}),o=(0,t.ref)(!1),s=!1;(0,t.onBeforeUnmount)(()=>{s=!0}),(0,t.onDeactivated)(()=>{s=!0});let c=(0,t.computed)(()=>r.modelValue>=r.steps.length-1),l=(0,t.computed)(()=>r.modelValue<=0),u=e=>{let t=[`vibe-stepper-step`];return e===r.modelValue&&t.push(`vibe-stepper-active`),e<r.modelValue&&t.push(`vibe-stepper-completed`),r.steps[e]?.disabled&&t.push(`vibe-stepper-disabled`),r.linear&&e>r.modelValue&&t.push(`vibe-stepper-locked`),t.join(` `)},d=e=>r.steps[e]?.disabled?!1:r.linear?e<=r.modelValue:!0,f=async(e,t)=>{if(!e)return!0;try{let n=e(r.modelValue,t);return n instanceof Promise?await n:n}catch(e){return i(`component-error`,e),!1}},p=async()=>{if(!(!r.steps.length||o.value)){o.value=!0;try{let e=await f(r.beforeNext,`next`);if(s||!e)return;c.value?i(`finish`):i(`update:modelValue`,r.modelValue+1)}finally{s||(o.value=!1)}}},m=async()=>{if(!o.value&&!l.value){o.value=!0;try{let e=await f(r.beforePrev,`prev`);if(s||!e)return;i(`update:modelValue`,Math.max(0,r.modelValue-1))}finally{s||(o.value=!1)}}},h=async e=>{if(!o.value&&d(e)&&e!==r.modelValue){o.value=!0;try{let t=e>r.modelValue?`next`:`prev`,n=await f(t===`next`?r.beforeNext:r.beforePrev,t);if(s||!n)return;i(`update:modelValue`,e)}finally{s||(o.value=!1)}}},g=(0,t.computed)(()=>{if(!r.steps.length)return;let e=Math.max(0,Math.min(r.modelValue,r.steps.length-1));return r.steps[e]});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(a.value)},[(0,t.createElementVNode)(`ol`,ti,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.steps,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r.label??i,class:(0,t.normalizeClass)(u(i)),tabindex:d(i)||i===e.modelValue?0:-1,"aria-disabled":d(i)||i===e.modelValue?void 0:`true`,onClick:e=>h(i),onKeydown:[(0,t.withKeys)((0,t.withModifiers)(e=>h(i),[`prevent`]),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(e=>h(i),[`prevent`]),[`space`])]},[(0,t.createElementVNode)(`span`,ri,[(0,t.renderSlot)(n.$slots,`marker`,{index:i,step:r,active:i===e.modelValue},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(i+1),1)],!0)]),(0,t.createElementVNode)(`span`,ii,[(0,t.renderSlot)(n.$slots,`label`,{index:i,step:r},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(r.label),1)],!0),r.description?((0,t.openBlock)(),(0,t.createElementBlock)(`small`,ai,(0,t.toDisplayString)(r.description),1)):(0,t.createCommentVNode)(``,!0)])],42,ni))),128))]),(0,t.createElementVNode)(`div`,oi,[(0,t.renderSlot)(n.$slots,`step`,{index:e.modelValue,step:g.value},void 0,!0)]),(0,t.createElementVNode)(`div`,si,[(0,t.renderSlot)(n.$slots,`actions`,{next:p,prev:m,isFirst:l.value,isLast:c.value},()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:`btn btn-secondary`,disabled:l.value,"data-stepper-prev":``,onClick:m},(0,t.toDisplayString)(e.prevText),9,ci),(0,t.createElementVNode)(`button`,{type:`button`,class:`btn btn-primary`,"data-stepper-next":``,onClick:p},(0,t.toDisplayString)(c.value?e.finishText:e.nextText),1)],!0)])],2))}}),[[`__scopeId`,`data-v-d9646674`]]),ui=[`for`],di=[`id`,`value`,`placeholder`,`disabled`,`aria-expanded`,`aria-controls`,`aria-activedescendant`],fi=[`id`],pi=[`id`,`aria-selected`,`onMouseenter`,`onClick`],mi={key:2,class:`vibe-autocomplete-empty`},hi=c((0,t.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(e,{emit:n}){let r=e,i=n,a=L(`autocomplete`),o=(0,t.computed)(()=>r.id||a),s=(0,t.computed)(()=>`${o.value}-listbox`),c=(0,t.ref)(r.modelValue),l=(0,t.ref)([]),u=(0,t.ref)(-1),d=(0,t.ref)(!1),f=(0,t.ref)(null),p=(0,t.ref)(null),m=0;(0,t.watch)(()=>r.modelValue,e=>{e!==c.value&&(c.value=e)});let h=!1,g=e=>r.itemText?r.itemText(e):(typeof e!=`string`&&!h&&(h=!0,console.warn(`[VibeAutocomplete] Item is an object but no itemText prop was provided — labelOf falls back to String(item) which produces "[object Object]". Pass an itemText function: :itemText="item => item.name"`)),typeof e==`string`?e:String(e)),_=(e,t)=>{let n=t.toLowerCase();return e.filter(e=>g(e).toLowerCase().includes(n)).slice(0,r.maxResults)},v=()=>{if(u.value<0)return null;let e=l.value[u.value];return e===void 0?null:g(e)},y=e=>{if(e===null){u.value=-1;return}u.value=l.value.findIndex(t=>g(t)===e)},b=!1,x=async e=>{let t=v();if(typeof r.source==`function`){m+=1;let t=m;try{let n=await r.source(e);if(t!==m||b)return;l.value=n.slice(0,r.maxResults)}catch{if(t!==m||b)return;l.value=[],d.value=!1;return}}else m+=1,l.value=_(r.source,e);b||(y(t),d.value=!0)},S=()=>{m+=1},C=e=>{if(f.value!==null&&clearTimeout(f.value),r.debounce<=0){x(e);return}f.value=setTimeout(()=>{x(e),f.value=null},r.debounce)},w=e=>{let t=e.target;if(c.value=t.value,i(`update:modelValue`,t.value),t.value.length<r.minChars){S(),l.value=[],d.value=!1;return}C(t.value)},T=()=>{r.disabled||c.value.length>=r.minChars&&x(c.value)},E=()=>{S(),d.value=!1,u.value=-1},D=e=>{c.value=g(e),i(`update:modelValue`,c.value),i(`select`,e),E()},O=e=>{if(!r.disabled)if(e.key===`ArrowDown`){if(e.preventDefault(),!d.value){x(c.value);return}u.value=Math.min(l.value.length-1,u.value+1)}else if(e.key===`ArrowUp`){if(e.preventDefault(),!d.value)return;u.value=Math.max(0,u.value-1)}else e.key===`Enter`?u.value>=0&&l.value[u.value]&&(e.preventDefault(),D(l.value[u.value])):e.key===`Escape`&&(e.preventDefault(),E())},k=e=>{if(!d.value)return;let t=p.value;t&&e.target instanceof Node&&t.contains(e.target)||E()};(0,t.watch)(d,e=>{typeof document>`u`||(e?document.addEventListener(`mousedown`,k):document.removeEventListener(`mousedown`,k))}),(0,t.onBeforeUnmount)(()=>{b=!0,S(),f.value!==null&&clearTimeout(f.value),typeof document<`u`&&document.removeEventListener(`mousedown`,k)});let ee=(0,t.computed)(()=>d.value&&c.value.length>=r.minChars&&l.value.length===0);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`vibe-autocomplete`,ref_key:`rootRef`,ref:p},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:o.value,class:`form-label`},(0,t.toDisplayString)(e.label),9,ui)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{id:o.value,class:`form-control`,type:`text`,autocomplete:`off`,value:c.value,placeholder:e.placeholder,disabled:e.disabled,"aria-expanded":d.value,"aria-autocomplete":`list`,"aria-controls":d.value&&l.value.length>0?s.value:void 0,"aria-activedescendant":u.value>=0?`${o.value}-option-${u.value}`:void 0,role:`combobox`,onInput:w,onFocus:T,onKeydown:O},null,40,di),d.value&&l.value.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,{key:1,id:s.value,class:`vibe-autocomplete-menu`,role:`listbox`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(l.value,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:g(e)+`\0`+r,id:`${o.value}-option-${r}`,class:(0,t.normalizeClass)([`vibe-autocomplete-item`,r===u.value?`vibe-autocomplete-item-highlighted`:``]),role:`option`,"aria-selected":r===u.value,onMouseenter:e=>u.value=r,onClick:t=>D(e)},[(0,t.renderSlot)(n.$slots,`item`,{item:e,index:r,label:g(e)},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(g(e)),1)],!0)],42,pi))),128))],8,fi)):ee.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,mi,[(0,t.renderSlot)(n.$slots,`empty`,{},()=>[r[0]||=(0,t.createTextVNode)(`No results`,-1)],!0)])):(0,t.createCommentVNode)(``,!0)],512))}}),[[`__scopeId`,`data-v-34f733e3`]]),gi=c((0,t.defineComponent)({__name:`VibeSortable`,props:{modelValue:{type:Array,required:!0},itemKey:{type:String,default:void 0},disabled:{type:Boolean,default:!1},tag:{type:String,default:`div`},itemTag:{type:String,default:`div`}},emits:[`update:modelValue`,`reorder`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(e,t)=>{if(r.disabled){e.preventDefault();return}a.value=t,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)},s=e=>{r.disabled||a.value===null||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`))},c=(e,t)=>{if(r.disabled)return;e.preventDefault();let n=a.value;if(a.value=null,n===null||n===t)return;let o=[...r.modelValue],[s]=o.splice(n,1);o.splice(t,0,s),i(`update:modelValue`,o),i(`reorder`,{from:n,to:t,item:s})},l=()=>{a.value=null},u=e=>Number(e.currentTarget.dataset.sortableIndex),d=e=>o(e,u(e)),f=e=>c(e,u(e)),p=()=>{a.value=null};return(0,t.onMounted)(()=>{document.addEventListener(`dragend`,p)}),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`dragend`,p)),(0,t.onActivated)(()=>{a.value=null}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:`vibe-sortable`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.modelValue,(r,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.itemTag),{key:e.itemKey?r[e.itemKey]:i,class:(0,t.normalizeClass)([`vibe-sortable-item`,{"vibe-sortable-dragging":a.value===i}]),draggable:!e.disabled,"data-vibe-sortable-item":``,"data-sortable-index":i,onDragstart:d,onDragover:s,onDrop:f,onDragend:l},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`,{item:r,index:i},void 0,!0)]),_:2},1064,[`class`,`draggable`,`data-sortable-index`]))),128))]),_:3}))}}),[[`__scopeId`,`data-v-0d48df5a`]]),H={payload:void 0,group:``,active:!1},_i=!1,vi=()=>{H.payload=void 0,H.group=``,H.active=!1,bi()},yi=()=>{_i||typeof document>`u`||(_i=!0,document.addEventListener(`dragend`,vi),document.addEventListener(`drop`,vi))},bi=()=>{!_i||typeof document>`u`||(_i=!1,document.removeEventListener(`dragend`,vi),document.removeEventListener(`drop`,vi))},xi=(e,t)=>{typeof window>`u`||(H.payload=e,H.group=t,H.active=!0,yi())},Si=()=>{typeof window>`u`||(H.payload=void 0,H.group=``,H.active=!1,bi())},Ci=()=>H.active?{payload:H.payload,group:H.group}:null,wi=c((0,t.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(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=e=>{if(r.disabled){e.preventDefault();return}a.value=!0,xi(r.payload,r.group),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`),i(`dragstart`,{payload:r.payload,group:r.group,event:e})},s=e=>{a.value=!1,Si(),i(`dragend`,{payload:r.payload,group:r.group,event:e})};return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)([`vibe-draggable`,{"vibe-draggable-dragging":a.value,"vibe-draggable-disabled":e.disabled}]),draggable:!e.disabled,"data-vibe-draggable":``,"data-vibe-group":e.group,onDragstart:o,onDragend:s},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`,{isDragging:a.value},void 0,!0)]),_:3},40,[`class`,`draggable`,`data-vibe-group`]))}}),[[`__scopeId`,`data-v-39b73254`]]),Ti=c((0,t.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(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=0;(0,t.watch)(()=>r.disabled,e=>{e&&(o=0,a.value=!1)});let s=e=>r.acceptGroups&&r.acceptGroups.length>0?r.acceptGroups.includes(e):e===r.group,c=()=>Ci(),l=e=>{if(r.disabled)return;let t=c();t&&s(t.group)&&(o+=1,a.value=!0,i(`dragenter`,e))},u=e=>{r.disabled||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`))},d=e=>{r.disabled||o===0||(--o,o<=0&&(a.value=!1,o=0,i(`dragleave`,e)))};(0,t.onBeforeUnmount)(()=>{o=0,a.value=!1});let f=e=>{if(r.disabled)return;e.preventDefault(),a.value=!1,o=0;let t=c();t&&s(t.group)&&i(`drop`,{payload:t.payload,group:t.group,event:e})};return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)([`vibe-droppable`,{"vibe-droppable-over":a.value,"vibe-droppable-disabled":e.disabled}]),"data-vibe-droppable":``,"data-vibe-group":e.group,onDragenter:l,onDragover:u,onDragleave:d,onDrop:f},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`,{isOver:a.value},void 0,!0)]),_:3},40,[`class`,`data-vibe-group`]))}}),[[`__scopeId`,`data-v-cb4f90ac`]]),Ei=[`data-handle`,`onPointerdown`],Di=c((0,t.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(e,{emit:n}){let r=[`n`,`s`,`e`,`w`,`ne`,`nw`,`se`,`sw`],i=e,a=n,o=(0,t.ref)(i.width),s=(0,t.ref)(i.height),c=(0,t.ref)(null),l=(0,t.ref)(0),u=(0,t.ref)(0),d=(0,t.ref)(0),f=(0,t.ref)(0),p=null;(0,t.watch)(()=>i.width,e=>{e!==o.value&&(o.value=e)}),(0,t.watch)(()=>i.height,e=>{e!==s.value&&(s.value=e)});let m=e=>Math.round(e/i.grid)*i.grid,h=e=>Math.min(i.maxWidth,Math.max(i.minWidth,e)),g=e=>Math.min(i.maxHeight,Math.max(i.minHeight,e)),_=(0,t.computed)(()=>({width:`${o.value}px`,height:`${s.value}px`})),v=(0,t.computed)(()=>i.handles.filter(e=>r.includes(e))),y=(e,t)=>{i.disabled||(t.stopPropagation(),c.value=e,p=t.pointerId,l.value=t.clientX,u.value=t.clientY,d.value=o.value,f.value=s.value,t.target.setPointerCapture(t.pointerId),a(`resizestart`,{width:o.value,height:s.value}))},b=Object.fromEntries(r.map(e=>[e,t=>y(e,t)])),x=e=>{if(!c.value||e.pointerId!==p)return;let t=e.clientX-l.value,n=e.clientY-u.value,r=d.value,_=f.value,v=c.value;v.includes(`e`)&&(r=d.value+t),v.includes(`w`)&&(r=d.value-t),v.includes(`s`)&&(_=f.value+n),v.includes(`n`)&&(_=f.value-n);let y=v.includes(`e`)||v.includes(`w`),b=v.includes(`n`)||v.includes(`s`),x=y&&(!(y&&b)||!i.aspectRatio||Math.abs(t)>=Math.abs(n));if(i.aspectRatio)if(x){r=h(m(r)),_=r/i.aspectRatio;let e=g(_);e!==_&&(_=e,r=h(_*i.aspectRatio))}else{_=g(m(_)),r=_*i.aspectRatio;let e=h(r);e!==r&&(r=e,_=g(r/i.aspectRatio))}else r=h(m(r)),_=g(m(_));r!==o.value&&(o.value=r,a(`update:width`,r)),_!==s.value&&(s.value=_,a(`update:height`,_)),a(`resize`,{width:o.value,height:s.value,handle:v})},S=e=>{!c.value||e.pointerId!==p||(e.target.releasePointerCapture?.(e.pointerId),c.value=null,p=null,a(`resizeend`,{width:o.value,height:s.value}))};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`vibe-resizable`,{"vibe-resizable-disabled":e.disabled,"vibe-resizable-active":c.value!==null}]),style:(0,t.normalizeStyle)(_.value)},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(v.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e,class:(0,t.normalizeClass)([`vibe-resizable-handle`,`vibe-resizable-handle-${e}`]),"data-handle":e,onPointerdown:(0,t.unref)(b)[e],onPointermove:x,onPointerup:S},null,42,Ei))),128))],6))}}),[[`__scopeId`,`data-v-6582c06b`]]),Oi=[`for`],ki=[`id`,`value`,`placeholder`,`disabled`,`aria-expanded`],Ai=[`aria-label`],ji={class:`vibe-datepicker-header`},Mi={class:`vibe-datepicker-title`},Ni={class:`vibe-datepicker-weekdays`},Pi={class:`vibe-datepicker-grid`},Fi=[`data-iso`,`disabled`,`onClick`],Ii=c((0,t.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(e,{expose:n,emit:r}){let i=e,a=r,o=L(`datepicker`),s=(0,t.computed)(()=>i.id||o),c=e=>String(e).padStart(2,`0`),l=e=>`${e.getFullYear()}-${c(e.getMonth()+1)}-${c(e.getDate())}`,u=/^\d{4}-\d{2}-\d{2}$/,d=e=>{if(!u.test(e))return new Date;let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r)};(0,t.watch)(()=>[i.min,i.max],([e,t])=>{},{immediate:!0});let f=(0,t.ref)(!1),p=()=>new Date,m=(0,t.ref)(p().getFullYear()),h=(0,t.ref)(p().getMonth()),g=(0,t.ref)(null),_=(0,t.ref)(null),v=(0,t.ref)(null),y=(0,t.computed)(()=>Array.isArray(i.modelValue)?i.modelValue[0]:i.modelValue),b=(0,t.computed)(()=>Array.isArray(i.modelValue)?i.modelValue[1]:null);(0,t.watch)(()=>y.value,e=>{if(e){let t=d(e);m.value=t.getFullYear(),h.value=t.getMonth()}},{immediate:!0});let x=e=>i.min&&e<i.min||i.max&&e>i.max?!0:i.disabledDates.includes(e),S=l(p()),C=(0,t.computed)(()=>{let e=[],t=(new Date(m.value,h.value,1).getDay()-i.weekStart+7)%7,n=new Date(m.value,h.value,1-t);for(let t=0;t<42;t++){let r=new Date(n);r.setDate(n.getDate()+t);let a=l(r),o=r.getMonth()===h.value,s=y.value,c=b.value,u=a===s||a===c,d=i.range&&s!==null&&c!==null&&a>s&&a<c;e.push({iso:a,day:r.getDate(),inMonth:o,disabled:x(a),isToday:a===S,isSelected:u,isFocused:a===g.value,isInRange:d,isRangeStart:i.range&&a===s,isRangeEnd:i.range&&a===c})}return e}),w=(0,t.computed)(()=>new Date(m.value,h.value,1).toLocaleDateString(void 0,{month:`long`,year:`numeric`})),T=(0,t.computed)(()=>{let e=[];for(let t=0;t<7;t++){let n=new Date(2024,0,7+(t+i.weekStart)%7);e.push(n.toLocaleDateString(void 0,{weekday:`short`}))}return e}),E=(0,t.computed)(()=>{let e=i.format||(e=>e);if(i.range){let t=y.value?e(y.value):``,n=b.value?e(b.value):``;return!t&&!n?``:`${t} → ${n}`}return y.value?e(y.value):``}),D=()=>{i.disabled||(f.value=!f.value,f.value?a(`open`):a(`close`))},O=()=>{f.value&&(f.value=!1,a(`close`))},k=()=>{h.value===0?(h.value=11,--m.value):--h.value},ee=()=>{h.value===11?(h.value=0,m.value+=1):h.value+=1},A=e=>{if(e.disabled)return;if(!i.range){a(`update:modelValue`,e.iso),O();return}let t=y.value,n=b.value;if(!t||t&&n){a(`update:modelValue`,[e.iso,null]);return}e.iso<t?a(`update:modelValue`,[e.iso,t]):(a(`update:modelValue`,[t,e.iso]),O())},j=e=>{let t=[`vibe-datepicker-day`];return e.inMonth||t.push(`vibe-datepicker-day-outside`),e.disabled&&t.push(`vibe-datepicker-day-disabled`),e.isToday&&t.push(`vibe-datepicker-day-today`),e.isSelected&&t.push(`vibe-datepicker-day-selected`),e.isFocused&&t.push(`vibe-datepicker-day-focused`),e.isInRange&&t.push(`vibe-datepicker-day-in-range`),e.isRangeStart&&t.push(`vibe-datepicker-day-range-start`),e.isRangeEnd&&t.push(`vibe-datepicker-day-range-end`),t.join(` `)},te=async e=>{g.value=e;let n=d(e);(n.getFullYear()!==m.value||n.getMonth()!==h.value)&&(m.value=n.getFullYear(),h.value=n.getMonth()),await(0,t.nextTick)(),(v.value?.querySelector(`[data-iso="${e}"]`))?.focus()},ne=async e=>{let t=d(g.value||y.value||l(p()));t.setDate(t.getDate()+e),await te(l(t))},re=async e=>{let t=d(g.value||y.value||l(p())),n=t.getMonth()+e,r=t.getFullYear()+Math.floor(n/12),i=(n%12+12)%12,a=new Date(r,i+1,0).getDate();t.setFullYear(r,i,Math.min(t.getDate(),a)),await te(l(t))},M=async e=>{switch(e.key){case`ArrowRight`:e.preventDefault(),await ne(1);break;case`ArrowLeft`:e.preventDefault(),await ne(-1);break;case`ArrowDown`:e.preventDefault(),await ne(7);break;case`ArrowUp`:e.preventDefault(),await ne(-7);break;case`PageDown`:e.preventDefault(),await re(1);break;case`PageUp`:e.preventDefault(),await re(-1);break;case`Home`:{e.preventDefault();let t=d(g.value||y.value||l(p())),n=(t.getDay()-i.weekStart+7)%7;t.setDate(t.getDate()-n),await te(l(t));break}case`End`:{e.preventDefault();let t=d(g.value||y.value||l(p())),n=(t.getDay()-i.weekStart+7)%7;t.setDate(t.getDate()+(6-n)),await te(l(t));break}case`Enter`:case` `:{e.preventDefault();let t=g.value;if(!t)break;let n=C.value.find(e=>e.iso===t);n&&A(n);break}case`Escape`:e.preventDefault(),O();break}},ie=e=>{if(!f.value)return;let t=_.value;t&&e.target instanceof Node&&t.contains(e.target)||O()};return(0,t.watch)(f,e=>{typeof document>`u`||(e?(g.value=y.value||l(p()),document.addEventListener(`mousedown`,ie)):(g.value=null,document.removeEventListener(`mousedown`,ie)))}),(0,t.onBeforeUnmount)(()=>{typeof document<`u`&&document.removeEventListener(`mousedown`,ie)}),n({open:()=>{f.value||D()},close:O}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`vibe-datepicker`,ref_key:`rootRef`,ref:_},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:s.value,class:`form-label`},(0,t.toDisplayString)(e.label),9,Oi)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{id:s.value,type:`text`,readonly:``,class:`form-control`,value:E.value,placeholder:e.placeholder,disabled:e.disabled,"aria-haspopup":`dialog`,"aria-expanded":f.value,onClick:D},null,8,ki),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,ref_key:`popoverRef`,ref:v,class:`vibe-datepicker-popover`,role:`dialog`,"aria-label":e.label||`Date picker`,onKeydown:M},[(0,t.createElementVNode)(`div`,ji,[(0,t.createElementVNode)(`button`,{type:`button`,class:`vibe-datepicker-nav`,"aria-label":`Previous month`,"data-prev-month":``,onClick:k},`‹`),(0,t.createElementVNode)(`span`,Mi,(0,t.toDisplayString)(w.value),1),(0,t.createElementVNode)(`button`,{type:`button`,class:`vibe-datepicker-nav`,"aria-label":`Next month`,"data-next-month":``,onClick:ee},`›`)]),(0,t.createElementVNode)(`div`,Ni,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(T.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e,class:`vibe-datepicker-weekday`},(0,t.toDisplayString)(e),1))),128))]),(0,t.createElementVNode)(`div`,Pi,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(C.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:e.iso,type:`button`,class:(0,t.normalizeClass)(j(e)),"data-iso":e.iso,disabled:e.disabled,onClick:t=>A(e)},(0,t.toDisplayString)(e.day),11,Fi))),128))])],40,Ai)):(0,t.createCommentVNode)(``,!0)],512))}}),[[`__scopeId`,`data-v-0a5b8fa4`]]),Li=[`id`,`checked`,`disabled`,`required`,`aria-invalid`,`aria-describedby`],Ri=[`for`],zi={key:0,class:`text-danger`},Bi=[`id`],Vi=[`id`],Hi=[`id`],Ui=(0,t.defineComponent)({__name:`VibeFormCheckbox`,props:(0,t.mergeModels)({value:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,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},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}},{modelValue:{type:[Boolean,String,Number,Array],default:!1},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`change`],[`update:modelValue`]),setup(e,{emit:n}){let r=(0,t.useModel)(e,`modelValue`),i=e,a=n,o=(0,t.inject)(N,null),s=o?.consumeId(),c=L(`checkbox`),l=(0,t.computed)(()=>i.id||s||c),u=(0,t.computed)(()=>`${l.value}-help`),d=(0,t.computed)(()=>`${l.value}-feedback`),f=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),p=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),m=(0,t.computed)(()=>!!i.helpText&&!o?.hasHelp.value),h=(0,t.computed)(()=>{let e=[`form-check`];return i.inline&&e.push(`form-check-inline`),i.reverse&&e.push(`form-check-reverse`),e.join(` `)}),g=(0,t.computed)(()=>{let e=[`form-check-input`];return i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),e.join(` `)}),_=(0,t.computed)(()=>i.indeterminate?!1:Array.isArray(r.value)?r.value.includes(i.value):r.value===i.value),v=e=>{let t=e.target,n;Array.isArray(r.value)?(n=[...r.value],t.checked?n.push(i.value):n=n.filter(e=>e!==i.value)):n=t.checked?i.value:i.uncheckedValue,r.value=n,a(`change`,e),i.validateOn===`change`&&a(`validate`)},y=e=>{a(`blur`,e),i.validateOn===`blur`&&a(`validate`)},b=e=>{a(`focus`,e)},x=(0,t.ref)(null);return(0,t.onMounted)(()=>{x.value&&(x.value.indeterminate=i.indeterminate)}),(0,t.watch)(()=>i.indeterminate,e=>{x.value&&(x.value.indeterminate=e)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([h.value,{"mb-3":f.value||m.value||p.value}])},[(0,t.createElementVNode)(`input`,{ref_key:`inputRef`,ref:x,id:l.value,type:`checkbox`,class:(0,t.normalizeClass)(g.value),checked:_.value,disabled:e.disabled,required:e.required,"aria-invalid":e.validationState===`invalid`,"aria-describedby":e.helpText&&e.validationMessage?`${u.value} ${d.value}`:e.helpText?u.value:e.validationMessage?d.value:void 0,onChange:v,onBlur:y,onFocus:b},null,42,Li),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:l.value,class:`form-check-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,zi,`*`)):(0,t.createCommentVNode)(``,!0)],8,Ri)):(0,t.createCommentVNode)(``,!0),m.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-help`,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,Bi)):(0,t.createCommentVNode)(``,!0),p.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`${l.value}-feedback`,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,Vi)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-feedback`,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please check this box.`),9,Hi)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),Wi=[`id`,`name`,`value`,`checked`,`disabled`,`required`,`aria-invalid`,`aria-describedby`],Gi=[`for`],Ki={key:0,class:`text-danger`},qi=[`id`],Ji=[`id`],Yi=[`id`],Xi=(0,t.defineComponent)({__name:`VibeFormRadio`,props:(0,t.mergeModels)({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}},{modelValue:{type:[String,Number,Boolean],default:``},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`change`],[`update:modelValue`]),setup(e,{emit:n}){let r=(0,t.useModel)(e,`modelValue`),i=e,a=n,o=(0,t.inject)(N,null),s=o?.consumeId(),c=L(`radio`),l=(0,t.computed)(()=>i.id||s||c);(0,t.computed)(()=>`${l.value}-help`),(0,t.computed)(()=>`${l.value}-feedback`);let u=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),d=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),f=(0,t.computed)(()=>!!i.helpText&&!o?.hasHelp.value),p=(0,t.computed)(()=>{let e=[`form-check`];return i.inline&&e.push(`form-check-inline`),i.reverse&&e.push(`form-check-reverse`),e.join(` `)}),m=(0,t.computed)(()=>{let e=[`form-check-input`];return i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),e.join(` `)}),h=(0,t.computed)(()=>r.value===i.value),g=e=>{r.value=i.value,a(`change`,e),i.validateOn===`change`&&a(`validate`)},_=e=>{a(`blur`,e),i.validateOn===`blur`&&a(`validate`)},v=e=>{a(`focus`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([p.value,{"mb-3":u.value||f.value||d.value}])},[(0,t.createElementVNode)(`input`,{id:l.value,type:`radio`,class:(0,t.normalizeClass)(m.value),name:e.name,value:e.value,checked:h.value,disabled:e.disabled,required:e.required,"aria-invalid":e.validationState===`invalid`,"aria-describedby":e.helpText&&e.validationMessage?`${l.value}-help ${l.value}-feedback`:e.helpText?`${l.value}-help`:e.validationMessage?`${l.value}-feedback`:void 0,onChange:g,onBlur:_,onFocus:v},null,42,Wi),u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:l.value,class:`form-check-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ki,`*`)):(0,t.createCommentVNode)(``,!0)],8,Gi)):(0,t.createCommentVNode)(``,!0),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-help`,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,qi)):(0,t.createCommentVNode)(``,!0),d.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`${l.value}-feedback`,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,Ji)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-feedback`,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please select an option.`),9,Yi)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),Zi=[`id`,`checked`,`disabled`,`required`,`aria-invalid`,`aria-describedby`],Qi=[`for`],$i={key:0,class:`text-danger`},ea=[`id`],ta=[`id`],na=[`id`],ra=(0,t.defineComponent)({__name:`VibeFormSwitch`,props:(0,t.mergeModels)({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}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:(0,t.mergeModels)([`validate`,`blur`,`focus`,`change`],[`update:modelValue`]),setup(e,{emit:n}){let r=(0,t.useModel)(e,`modelValue`),i=e,a=n,o=(0,t.inject)(N,null),s=o?.consumeId(),c=L(`switch`),l=(0,t.computed)(()=>i.id||s||c),u=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),d=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),f=(0,t.computed)(()=>!!i.helpText&&!o?.hasHelp.value),p=(0,t.computed)(()=>{let e=[`form-check`,`form-switch`];return i.inline&&e.push(`form-check-inline`),e.join(` `)}),m=(0,t.computed)(()=>{let e=[`form-check-input`];return i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),e.join(` `)}),h=e=>{r.value=e.target.checked,a(`change`,e),i.validateOn===`change`&&a(`validate`)},g=e=>{a(`blur`,e),i.validateOn===`blur`&&a(`validate`)},_=e=>{a(`focus`,e)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([p.value,{"mb-3":u.value||f.value||d.value}])},[(0,t.createElementVNode)(`input`,{id:l.value,type:`checkbox`,role:`switch`,class:(0,t.normalizeClass)(m.value),checked:r.value,disabled:e.disabled,required:e.required,"aria-invalid":e.validationState===`invalid`,"aria-describedby":e.helpText&&e.validationMessage?`${l.value}-help ${l.value}-feedback`:e.helpText?`${l.value}-help`:e.validationMessage?`${l.value}-feedback`:void 0,onChange:h,onBlur:g,onFocus:_},null,42,Zi),u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:l.value,class:`form-check-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,$i,`*`)):(0,t.createCommentVNode)(``,!0)],8,Qi)):(0,t.createCommentVNode)(``,!0),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-help`,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,ea)):(0,t.createCommentVNode)(``,!0),d.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`${l.value}-feedback`,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,ta)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${l.value}-feedback`,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please toggle this switch.`),9,na)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),ia=[`for`],aa={key:0,class:`text-danger ms-1`,"aria-hidden":`true`},oa={key:1,class:`text-muted ms-1 small`,"aria-hidden":`true`},sa={key:2,class:`visually-hidden`},ca=[`id`],la=[`id`],ua=[`id`],da=[`for`],fa={key:0,class:`text-danger ms-1`,"aria-hidden":`true`},pa={key:1,class:`text-muted ms-1 small`,"aria-hidden":`true`},ma={key:2,class:`visually-hidden`},ha=[`id`],ga=[`id`],_a=[`id`],va=(0,t.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(e){let n=e,r=L(`form-group`),i=(0,t.computed)(()=>n.labelFor||r),a=(0,t.ref)(!1);(0,t.provide)(N,{id:i,consumeId:()=>a.value?null:(a.value=!0,i.value),hasLabel:(0,t.computed)(()=>!!n.label),hasValidation:(0,t.computed)(()=>!!n.validationState),hasHelp:(0,t.computed)(()=>!!n.helpText),helpId:(0,t.computed)(()=>n.helpText?u.value:null),feedbackId:(0,t.computed)(()=>n.validationState?l.value:null)});let o=(0,t.computed)(()=>{let e=[];return n.floating?e.push(`form-floating`):n.row?e.push(`row`,`mb-3`):e.push(`mb-3`),e.join(` `)}),s=(0,t.computed)(()=>{let e=[];return n.floating?e.push(`form-label`):n.row?(e.push(`col-form-label`),n.labelCols&&e.push(`col-sm-${n.labelCols}`),n.labelAlign&&e.push(`text-${n.labelAlign}`)):e.push(`form-label`),e.join(` `)}),c=(0,t.computed)(()=>n.row&&n.labelCols?`col-sm-${12-Number(n.labelCols)}`:``),l=(0,t.computed)(()=>`${i.value}-feedback`),u=(0,t.computed)(()=>`${i.value}-help`);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(o.value)},[e.label&&!e.floating?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:i.value,class:(0,t.normalizeClass)(s.value)},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,aa,`*`)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,oa,`(optional)`)),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,sa,`required`)):(0,t.createCommentVNode)(``,!0)],10,ia)):(0,t.createCommentVNode)(``,!0),e.row&&e.labelCols?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)(c.value)},[(0,t.renderSlot)(n.$slots,`default`),e.helpText?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:u.value,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,ca)):(0,t.createCommentVNode)(``,!0),e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:l.value,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,la)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,id:l.value,class:`invalid-feedback`,role:`alert`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please provide a valid value.`),9,ua)):(0,t.createCommentVNode)(``,!0)],2)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.renderSlot)(n.$slots,`default`),e.label&&e.floating?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:i.value,class:(0,t.normalizeClass)(s.value)},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,fa,`*`)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,pa,`(optional)`)),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ma,`required`)):(0,t.createCommentVNode)(``,!0)],10,da)):(0,t.createCommentVNode)(``,!0),e.helpText?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:u.value,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,ha)):(0,t.createCommentVNode)(``,!0),e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,id:l.value,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,ga)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:3,id:l.value,class:`invalid-feedback`,role:`alert`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please provide a valid value.`),9,_a)):(0,t.createCommentVNode)(``,!0)],64))],2))}}),ya={key:0,role:`alert`,"aria-live":`polite`,class:`alert alert-danger`},ba={class:`mb-0`},xa=[`href`,`onClick`],Sa=(0,t.defineComponent)({__name:`VibeFormErrorSummary`,props:{errors:{type:Object,required:!0}},emits:[`focus`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>Object.entries(r.errors).filter(([,e])=>e));return(e,n)=>a.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ya,[n[0]||=(0,t.createElementVNode)(`strong`,null,`Please fix the following:`,-1),(0,t.createElementVNode)(`ul`,ba,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.value,([e,n])=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e},[(0,t.createElementVNode)(`a`,{href:`#field-${e}`,onClick:(0,t.withModifiers)(t=>i(`focus`,e),[`prevent`])},(0,t.toDisplayString)(n),9,xa)]))),128))])])):(0,t.createCommentVNode)(``,!0)}}),Ca={sm:576,md:768,lg:992,xl:1200,xxl:1400};function wa(){let e=(0,t.ref)(!1),n=(0,t.ref)(!1),r=(0,t.ref)(!1),i=(0,t.ref)(!1),a=(0,t.ref)(!1),o=[],s=null;typeof window<`u`&&(s={sm:window.matchMedia(`(min-width: ${Ca.sm}px)`),md:window.matchMedia(`(min-width: ${Ca.md}px)`),lg:window.matchMedia(`(min-width: ${Ca.lg}px)`),xl:window.matchMedia(`(min-width: ${Ca.xl}px)`),xxl:window.matchMedia(`(min-width: ${Ca.xxl}px)`)});let c=()=>{s&&(e.value=s.sm.matches,n.value=s.md.matches,r.value=s.lg.matches,i.value=s.xl.matches,a.value=s.xxl.matches)};c();let l=(0,t.computed)(()=>!e.value),u=(0,t.computed)(()=>!n.value),d=(0,t.computed)(()=>n.value&&!r.value);if(s){let e=()=>c();Object.values(s).forEach(t=>{t.addEventListener(`change`,e),o.push(()=>t.removeEventListener(`change`,e))}),(0,t.getCurrentInstance)()?(0,t.onUnmounted)(()=>o.forEach(e=>e())):console.warn(`[useBreakpoints] Called outside component context. Call the returned cleanup() function manually to prevent listener leaks.`)}return{isXs:l,isSm:e,isMd:n,isLg:r,isXl:i,isXxl:a,isMobile:u,isTablet:d,cleanup:()=>o.forEach(e=>e())}}var Ta=i({default:()=>Vo});function Ea(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Da(e){if(Array.isArray(e))return e}function Oa(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function ka(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Aa(e,t){return Da(e)||Oa(e,t)||ja(e,t)||ka()}function ja(e,t){if(e){if(typeof e==`string`)return Ea(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ea(e,t):void 0}}function U(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return Ga(e,t,r)}}function Ma(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return Ka(e,n)}}function W(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$a;if(za&&za(e,null),!Qa(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Ba(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Na(e){for(let t=0;t<e.length;t++)J(e,t)||(e[t]=null);return e}function G(e){let t=Ua(null);for(let r of Ra(e)){var n=Aa(r,2);let i=n[0],a=n[1];J(e,i)&&(Qa(a)?t[i]=Na(a):a&&typeof a==`object`&&a.constructor===Object?t[i]=G(a):t[i]=a)}return t}function Pa(e){switch(typeof e){case`string`:return e;case`number`:return ao(e);case`boolean`:return oo(e);case`bigint`:return so?so(e):`0`;case`symbol`:return co?co(e):`Symbol()`;case`undefined`:return lo(e);case`function`:case`object`:{if(e===null)return lo(e);let t=e,n=Fa(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:lo(e)}return lo(e)}default:return lo(e)}}function Fa(e,t){for(;e!==null;){let n=Ha(e,t);if(n){if(n.get)return U(n.get);if(typeof n.value==`function`)return U(n.value)}e=Va(e)}function n(){return null}return n}function Ia(e){try{return Y(e,``),!0}catch{return!1}}function La(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Lo(),t=e=>La(e);if(t.version=`3.4.11`,t.removed=[],!e||!e.document||e.document.nodeType!==X.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=Fa(d,`cloneNode`),p=Fa(d,`remove`),m=Fa(d,`nextSibling`),h=Fa(d,`childNodes`),g=Fa(d,`parentNode`),_=Fa(d,`shadowRoot`),v=Fa(d,`attributes`),y=o&&o.prototype?Fa(o.prototype,`nodeType`):null,b=o&&o.prototype?Fa(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C,w=!1,T=0,E=function(){if(T>0)throw uo(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},D=function(e){E(),T++;try{return x.createHTML(e)}finally{T--}},O=function(e){E(),T++;try{return x.createScriptURL(e)}finally{T--}},k=function(){return w||=(C=Ro(u,i),!0),C},ee=n,A=ee.implementation,j=ee.createNodeIterator,te=ee.createDocumentFragment,ne=ee.getElementsByTagName,re=r.importNode,M=zo();t.isSupported=typeof Ra==`function`&&typeof g==`function`&&A&&A.createHTMLDocument!==void 0;let ie=Co,ae=wo,oe=To,se=Eo,ce=Do,le=ko,ue=Ao,N=Mo,de=Oo,P=null,fe=W({},[...fo,...po,...mo,...go,...vo]),F=null,pe=W({},[...yo,...bo,...xo,...So]),I=Object.seal(Ua(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),me=null,he=null,ge=Object.seal(Ua(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),_e=!0,ve=!0,ye=!1,be=!0,xe=!1,Se=!0,Ce=!1,we=!1,Te=null,Ee=null,De=!1,Oe=!1,ke=!1,Ae=!1,je=!0,Me=!1,Ne=`user-content-`,Pe=!0,Fe=!1,L={},R=null,Ie=W({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Le=null,Re=W({},[`audio`,`video`,`img`,`source`,`image`,`track`]),ze=null,Be=W({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Ve=`http://www.w3.org/1998/Math/MathML`,He=`http://www.w3.org/2000/svg`,z=`http://www.w3.org/1999/xhtml`,Ue=z,We=!1,Ge=null,Ke=W({},[Ve,He,z],eo),qe=K([`mi`,`mo`,`mn`,`ms`,`mtext`]),Je=W({},qe),Ye=K([`annotation-xml`]),Xe=W({},Ye),Ze=W({},[`title`,`style`,`font`,`a`,`script`]),Qe=null,$e=[`application/xhtml+xml`,`text/html`],B=null,et=null,tt=n.createElement(`form`),nt=function(e){return e instanceof RegExp||e instanceof Function},rt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(et&&et===e)return;(!e||typeof e!=`object`)&&(e={}),e=G(e),Qe=$e.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,B=Qe===`application/xhtml+xml`?eo:$a,P=Bo(e,`ALLOWED_TAGS`,fe,{transform:B}),F=Bo(e,`ALLOWED_ATTR`,pe,{transform:B}),Ge=Bo(e,`ALLOWED_NAMESPACES`,Ke,{transform:eo}),ze=Bo(e,`ADD_URI_SAFE_ATTR`,Be,{transform:B,base:Be}),Le=Bo(e,`ADD_DATA_URI_TAGS`,Re,{transform:B,base:Re}),R=Bo(e,`FORBID_CONTENTS`,Ie,{transform:B}),me=Bo(e,`FORBID_TAGS`,G({}),{transform:B}),he=Bo(e,`FORBID_ATTR`,G({}),{transform:B}),L=J(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?G(e.USE_PROFILES):e.USE_PROFILES:!1,_e=e.ALLOW_ARIA_ATTR!==!1,ve=e.ALLOW_DATA_ATTR!==!1,ye=e.ALLOW_UNKNOWN_PROTOCOLS||!1,be=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,xe=e.SAFE_FOR_TEMPLATES||!1,Se=e.SAFE_FOR_XML!==!1,Ce=e.WHOLE_DOCUMENT||!1,Oe=e.RETURN_DOM||!1,ke=e.RETURN_DOM_FRAGMENT||!1,Ae=e.RETURN_TRUSTED_TYPE||!1,De=e.FORCE_BODY||!1,je=e.SANITIZE_DOM!==!1,Me=e.SANITIZE_NAMED_PROPS||!1,Pe=e.KEEP_CONTENT!==!1,Fe=e.IN_PLACE||!1,de=Ia(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Oo,Ue=typeof e.NAMESPACE==`string`?e.NAMESPACE:z,Je=J(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?G(e.MATHML_TEXT_INTEGRATION_POINTS):W({},qe),Xe=J(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?G(e.HTML_INTEGRATION_POINTS):W({},Ye);let t=J(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?G(e.CUSTOM_ELEMENT_HANDLING):Ua(null);if(I=Ua(null),J(t,`tagNameCheck`)&&nt(t.tagNameCheck)&&(I.tagNameCheck=t.tagNameCheck),J(t,`attributeNameCheck`)&&nt(t.attributeNameCheck)&&(I.attributeNameCheck=t.attributeNameCheck),J(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(I.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),q(I),xe&&(ve=!1),ke&&(Oe=!0),L&&(P=W({},vo),F=Ua(null),L.html===!0&&(W(P,fo),W(F,yo)),L.svg===!0&&(W(P,po),W(F,bo),W(F,So)),L.svgFilters===!0&&(W(P,mo),W(F,bo),W(F,So)),L.mathMl===!0&&(W(P,go),W(F,xo),W(F,So))),ge.tagCheck=null,ge.attributeCheck=null,J(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?ge.tagCheck=e.ADD_TAGS:Qa(e.ADD_TAGS)&&(P===fe&&(P=G(P)),W(P,e.ADD_TAGS,B))),J(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?ge.attributeCheck=e.ADD_ATTR:Qa(e.ADD_ATTR)&&(F===pe&&(F=G(F)),W(F,e.ADD_ATTR,B))),J(e,`ADD_URI_SAFE_ATTR`)&&Qa(e.ADD_URI_SAFE_ATTR)&&W(ze,e.ADD_URI_SAFE_ATTR,B),J(e,`FORBID_CONTENTS`)&&Qa(e.FORBID_CONTENTS)&&(R===Ie&&(R=G(R)),W(R,e.FORBID_CONTENTS,B)),J(e,`ADD_FORBID_CONTENTS`)&&Qa(e.ADD_FORBID_CONTENTS)&&(R===Ie&&(R=G(R)),W(R,e.ADD_FORBID_CONTENTS,B)),Pe&&(P[`#text`]=!0),Ce&&W(P,[`html`,`head`,`body`]),P.table&&(W(P,[`tbody`]),delete me.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw uo(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw uo(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=x;x=e.TRUSTED_TYPES_POLICY;try{S=D(``)}catch(e){throw x=t,e}}else e.TRUSTED_TYPES_POLICY===null?(x=void 0,S=``):(x===void 0&&(x=k()),x&&typeof S==`string`&&(S=D(``)));K&&K(e),et=e},it=W({},[...po,...mo,...ho]),at=W({},[...go,..._o]),ot=function(e,t,n){return t.namespaceURI===z?e===`svg`:t.namespaceURI===Ve?e===`svg`&&(n===`annotation-xml`||Je[n]):!!it[e]},st=function(e,t,n){return t.namespaceURI===z?e===`math`:t.namespaceURI===He?e===`math`&&Xe[n]:!!at[e]},ct=function(e,t,n){return t.namespaceURI===He&&!Xe[n]||t.namespaceURI===Ve&&!Je[n]?!1:!at[e]&&(Ze[e]||!it[e])},lt=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Ue,tagName:`template`});let n=$a(e.tagName),r=$a(t.tagName);return Ge[e.namespaceURI]?e.namespaceURI===He?ot(n,t,r):e.namespaceURI===Ve?st(n,t,r):e.namespaceURI===z?ct(n,t,r):!!(Qe===`application/xhtml+xml`&&Ge[e.namespaceURI]):!1},ut=function(e){Xa(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw uo(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},dt=function(e){let t=h(e);if(t){let e=[];qa(t,t=>{Xa(e,t)}),qa(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},ft=function(e,n){try{Xa(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{Xa(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(Oe||ke)try{ut(n)}catch{}else try{n.setAttribute(e,``)}catch{}},pt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||F[B(i)]))try{e.removeAttribute(i)}catch{}}},mt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===X.element&&pt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},ht=function(e){let t=null,r=null;if(De)e=`<remove></remove>`+e;else{let t=to(e,/^[\r\n\t ]+/);r=t&&t[0]}Qe===`application/xhtml+xml`&&Ue===z&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=x?D(e):e;if(Ue===z)try{t=new l().parseFromString(i,Qe)}catch{}if(!t||!t.documentElement){t=A.createDocument(Ue,`template`,null);try{t.documentElement.innerHTML=We?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ue===z?ne.call(t,Ce?`html`:`body`)[0]:Ce?t.documentElement:a},gt=function(e){return j.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},V=function(e){return e=no(e,ie,` `),e=no(e,ae,` `),e=no(e,oe,` `),e},_t=function(e){e.normalize();let t=j.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;)n.data=V(n.data),n=t.nextNode();let r=e.querySelectorAll?.call(e,`template`);r&&qa(r,e=>{yt(e.content)&&_t(e.content)})},vt=function(e){let t=b?b(e):null;return typeof t!=`string`||B(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},yt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===X.documentFragment}catch{return!1}},bt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function xt(e,n,r){e.length!==0&&qa(e,e=>{e.call(t,n,r,et)})}let St=function(e,t){return!!(Se&&e.hasChildNodes()&&!bt(e.firstElementChild)&&Y(No,e.textContent)&&Y(No,e.innerHTML)||Se&&e.namespaceURI===z&&t===`style`&&bt(e.firstElementChild)||e.nodeType===X.processingInstruction||Se&&e.nodeType===X.comment&&Y(Po,e.data))},Ct=function(e,t){if(!me[t]&&Dt(t)&&(I.tagNameCheck instanceof RegExp&&Y(I.tagNameCheck,t)||I.tagNameCheck instanceof Function&&I.tagNameCheck(t)))return!1;if(Pe&&!R[t]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=Fe?n[i]:f(n[i],!0);t.insertBefore(r,m(e))}}}return ut(e),!0},wt=function(e){if(xt(M.beforeSanitizeElements,e,null),vt(e))return ut(e),!0;let n=B(b?b(e):e.nodeName);if(xt(M.uponSanitizeElement,e,{tagName:n,allowedTags:P}),St(e,n))return ut(e),!0;if(me[n]||!(ge.tagCheck instanceof Function&&ge.tagCheck(n))&&!P[n])return Ct(e,n);if((y?y(e):e.nodeType)===X.element&&!lt(e)||(n===`noscript`||n===`noembed`||n===`noframes`)&&Y(Fo,e.innerHTML))return ut(e),!0;if(xe&&e.nodeType===X.text){let n=V(e.textContent);e.textContent!==n&&(Xa(t.removed,{element:e.cloneNode()}),e.textContent=n)}return xt(M.afterSanitizeElements,e,null),!1},Tt=function(e,t,r){if(he[t]||je&&(t===`id`||t===`name`)&&(r in n||r in tt))return!1;let i=F[t]||ge.attributeCheck instanceof Function&&ge.attributeCheck(t,e);if(!(ve&&Y(se,t))&&!(_e&&Y(ce,t))){if(!i){if(!(Dt(e)&&(I.tagNameCheck instanceof RegExp&&Y(I.tagNameCheck,e)||I.tagNameCheck instanceof Function&&I.tagNameCheck(e))&&(I.attributeNameCheck instanceof RegExp&&Y(I.attributeNameCheck,t)||I.attributeNameCheck instanceof Function&&I.attributeNameCheck(t,e))||t===`is`&&I.allowCustomizedBuiltInElements&&(I.tagNameCheck instanceof RegExp&&Y(I.tagNameCheck,r)||I.tagNameCheck instanceof Function&&I.tagNameCheck(r))))return!1}else if(!ze[t]&&!Y(de,no(r,ue,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&ro(r,`data:`)===0&&Le[e])&&!(ye&&!Y(le,no(r,ue,``)))&&r)return!1}return!0},Et=W({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Dt=function(e){return!Et[$a(e)]&&Y(N,e)},Ot=function(e,t,n,r){if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return D(r);case`TrustedScriptURL`:return O(r)}return r},kt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),vt(e)?ut(e):Ya(t.removed)}catch{ft(n,e)}},At=function(e){xt(M.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||vt(e))return;let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:F,forceKeepAttr:void 0},r=t.length,i=B(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=B(o),u=c,d=o===`value`?u:io(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,xt(M.uponSanitizeAttribute,e,n),d=n.attrValue,Me&&(l===`id`||l===`name`)&&ro(d,Ne)!==0&&(ft(o,e),d=Ne+d),Se&&Y(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){ft(o,e);continue}if(l===`attributename`&&to(d,`href`)){ft(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){ft(o,e);continue}if(!be&&Y(Io,d)){ft(o,e);continue}if(xe&&(d=V(d)),!Tt(i,l,d)){ft(o,e);continue}d=Ot(i,l,s,d),d!==u&&kt(e,o,s,d)}}xt(M.afterSanitizeAttributes,e,null)},jt=function(e){let t=null,n=gt(e);for(xt(M.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(xt(M.uponSanitizeShadowNode,t,null),wt(t),At(t),yt(t.content)&&jt(t.content),(y?y(t):t.nodeType)===X.element){let e=_(t);yt(e)&&(Mt(e),jt(e))}xt(M.afterSanitizeShadowDOM,e,null)},Mt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){jt(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===X.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&B(e)===`template`){let e=n.content;yt(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);yt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(We=!e,We&&(e=`<!-->`),typeof e!=`string`&&!bt(e)&&(e=Pa(e),typeof e!=`string`))throw uo(`dirty is not a string, aborting`);if(!t.isSupported)return e;we?(P=Te,F=Ee):rt(n),(M.uponSanitizeElement.length>0||M.uponSanitizeAttribute.length>0)&&(P=G(P)),M.uponSanitizeAttribute.length>0&&(F=G(F)),t.removed=[];let c=Fe&&typeof e!=`string`&&bt(e);if(c){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=B(t);if(!P[e]||me[e])throw uo(`root node is forbidden and cannot be sanitized in-place`)}if(vt(e))throw uo(`root node is clobbered and cannot be sanitized in-place`);try{Mt(e)}catch(t){throw dt(e),t}}else if(bt(e))i=ht(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===X.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Mt(a);else{if(!Oe&&!xe&&!Ce&&e.indexOf(`<`)===-1)return x&&Ae?D(e):e;if(i=ht(e),!i)return Oe?null:Ae?S:``}i&&De&&ut(i.firstChild);let l=gt(c?e:i);try{for(;o=l.nextNode();)wt(o),At(o),yt(o.content)&&jt(o.content)}catch(t){throw c&&dt(e),t}if(c)return qa(t.removed,e=>{e.element&&mt(e.element)}),xe&&_t(e),e;if(Oe){if(xe&&_t(i),ke)for(s=te.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(F.shadowroot||F.shadowrootmode)&&(s=re.call(r,s,!0)),s}let u=Ce?i.outerHTML:i.innerHTML;return Ce&&P[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&Y(jo,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
3
+ `+u),xe&&(u=V(u)),x&&Ae?D(u):u},t.setConfig=function(){rt(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),we=!0,Te=P,Ee=F},t.clearConfig=function(){et=null,we=!1,Te=null,Ee=null,x=C,S=``},t.isValidAttribute=function(e,t,n){return et||rt({}),Tt(B(e),B(t),n)},t.addHook=function(e,t){typeof t==`function`&&J(M,e)&&Xa(M[e],t)},t.removeHook=function(e,t){if(J(M,e)){if(t!==void 0){let n=Ja(M[e],t);return n===-1?void 0:Za(M[e],n,1)[0]}return Ya(M[e])}},t.removeHooks=function(e){J(M,e)&&(M[e]=[])},t.removeAllHooks=function(){M=zo()},t}var Ra,za,Ba,Va,Ha,K,q,Ua,Wa,Ga,Ka,qa,Ja,Ya,Xa,Za,Qa,$a,eo,to,no,ro,io,ao,oo,so,co,J,lo,Y,uo,fo,po,mo,ho,go,_o,vo,yo,bo,xo,So,Co,wo,To,Eo,Do,Oo,ko,Ao,jo,Mo,No,Po,Fo,Io,X,Lo,Ro,zo,Bo,Vo,Ho=r((()=>{Ra=Object.entries,za=Object.setPrototypeOf,Ba=Object.isFrozen,Va=Object.getPrototypeOf,Ha=Object.getOwnPropertyDescriptor,K=Object.freeze,q=Object.seal,Ua=Object.create,Wa=typeof Reflect<`u`&&Reflect,Ga=Wa.apply,Ka=Wa.construct,K||=function(e){return e},q||=function(e){return e},Ga||=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(t,r)},Ka||=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new e(...n)},qa=U(Array.prototype.forEach),Ja=U(Array.prototype.lastIndexOf),Ya=U(Array.prototype.pop),Xa=U(Array.prototype.push),Za=U(Array.prototype.splice),Qa=Array.isArray,$a=U(String.prototype.toLowerCase),eo=U(String.prototype.toString),to=U(String.prototype.match),no=U(String.prototype.replace),ro=U(String.prototype.indexOf),io=U(String.prototype.trim),ao=U(Number.prototype.toString),oo=U(Boolean.prototype.toString),so=typeof BigInt>`u`?null:U(BigInt.prototype.toString),co=typeof Symbol>`u`?null:U(Symbol.prototype.toString),J=U(Object.prototype.hasOwnProperty),lo=U(Object.prototype.toString),Y=U(RegExp.prototype.test),uo=Ma(TypeError),fo=K(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),po=K(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),mo=K([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),ho=K([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),go=K(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),_o=K([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),vo=K([`#text`]),yo=K(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),bo=K(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),xo=K(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),So=K([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Co=q(/{{[\w\W]*|^[\w\W]*}}/g),wo=q(/<%[\w\W]*|^[\w\W]*%>/g),To=q(/\${[\w\W]*/g),Eo=q(/^data-[\-\w.\u00B7-\uFFFF]+$/),Do=q(/^aria-[\-\w]+$/),Oo=q(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ko=q(/^(?:\w+script|data):/i),Ao=q(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),jo=q(/^html$/i),Mo=q(/^[a-z][.\w]*(-[.\w]+)+$/i),No=q(/<[/\w!]/g),Po=q(/<[/\w]/g),Fo=q(/<\/no(script|embed|frames)/i),Io=q(/\/>/i),X={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Lo=function(){return typeof window>`u`?null:window},Ro=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},zo=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Bo=function(e,t,n,r){return J(e,t)&&Qa(e[t])?W(r.base?G(r.base):{},e[t],r.transform):n},Vo=La()})),Uo={ALLOWED_TAGS:[`p`,`br`,`strong`,`em`,`u`,`s`,`ol`,`ul`,`li`,`h1`,`h2`,`h3`,`a`,`blockquote`,`pre`,`code`],ALLOWED_ATTR:[`href`,`target`,`rel`]},Wo=null,Go=!1;async function Ko(){if(!Go){Go=!0;try{let e=await Promise.resolve().then(()=>(Ho(),Ta)),t=e.default??e;Wo=e=>t.sanitize(e,Uo)}catch{}}}function qo(e){return Wo?Wo(e):e}var Jo=[`for`],Yo={key:0,class:`text-danger`},Xo={key:1,class:`alert alert-warning`,role:`alert`},Zo=[`id`],Qo=[`id`],$o=[`id`],es=c((0,t.defineComponent)({__name:`VibeFormWysiwyg`,props:{modelValue:{type:String,default:``},id:{type:String,default:void 0},label:{type:String,default:void 0},placeholder:{type:String,default:`Write something...`},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},theme:{type:String,default:`snow`},toolbar:{type:[Array,String,Boolean],default:void 0},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`,`component-error`],setup(e,{emit:n}){let r=L(`wysiwyg`),i=e,a=n,o=(0,t.inject)(N,null),s=o?.consumeId(),c=(0,t.computed)(()=>i.id||s||r),l=(0,t.computed)(()=>A(i.height)??`200px`),{isMobile:u}=wa(),d=(0,t.computed)(()=>!!i.label&&!o?.hasLabel.value),f=(0,t.computed)(()=>!!i.validationState&&!o?.hasValidation.value),p=(0,t.computed)(()=>!!i.helpText&&!o?.hasHelp.value),m=(0,t.ref)(null),h=(0,t.shallowRef)(null),g=(0,t.ref)(!1),_=(0,t.ref)(null),v=(0,t.ref)(!1),y=!1,b=!1,x=null,S=null,C=null,w=null,T=(0,t.computed)(()=>{let e=[`vibe-wysiwyg-container`];return i.validationState===`valid`&&e.push(`is-valid`),i.validationState===`invalid`&&e.push(`is-invalid`),i.disabled&&e.push(`disabled`),e.join(` `)}),E=[[{header:[1,2,3,!1]}],[`bold`,`italic`,`underline`,`strike`],[{list:`ordered`},{list:`bullet`}],[{color:[]},{background:[]}],[`link`,`image`],[`clean`]],D=[[`bold`,`italic`,`underline`],[{list:`ordered`},{list:`bullet`}],[`link`,`clean`]],O={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`]]},k=(e,t)=>e===!1?!1:e===!0||e===void 0?t:typeof e==`string`?O[e]??t:e,ee=()=>i.toolbar===!1?!1:u.value?i.mobileToolbar===!1?!1:i.mobileToolbar===void 0?D:k(i.mobileToolbar,D):k(i.toolbar,E),j=e=>{if(!h.value)return;v.value=!0;let t=qo(e||``),n=h.value.clipboard.convert({html:t});h.value.setContents(n,`silent`),v.value=!1},te=()=>!h.value||h.value.getText().trim().length===0?``:qo(h.value.getSemanticHTML()),ne=()=>{let e=h.value?.root;if(!e)return;e.setAttribute(`aria-invalid`,String(i.validationState===`invalid`));let t=[i.helpText?`${c.value}-help`:null,i.validationMessage?`${c.value}-feedback`:null].filter(Boolean).join(` `);t?e.setAttribute(`aria-describedby`,t):e.removeAttribute(`aria-describedby`)},re=async()=>{if(y)return;y=!0,_.value=null;let e=Ko();try{let t=await import(`quill`),n=t.default||t;if(await Promise.all([import(`quill/dist/quill.snow.css`),e]),!m.value||b)return;if(m.value){let e={theme:i.theme,placeholder:i.placeholder,readOnly:i.readonly||i.disabled,modules:{toolbar:ee()}};h.value=new n(m.value,e);let t=h.value.root;t.id=c.value||``,m.value.removeAttribute(`id`),t.setAttribute(`role`,`textbox`),t.setAttribute(`aria-multiline`,`true`),ne(),i.modelValue&&j(i.modelValue),w=()=>{v.value||(a(`update:modelValue`,te()),a(`change`),i.validateOn===`change`&&a(`validate`))},h.value.on(`text-change`,w),S=()=>{a(`blur`),i.validateOn===`blur`&&a(`validate`)},h.value.root.addEventListener(`blur`,S),C=()=>{a(`focus`)},h.value.root.addEventListener(`focus`,C),g.value=!0,a(`ready`,h.value)}}catch(e){console.error(`Failed to load Quill editor:`,e),_.value=`Failed to load WYSIWYG editor. Please install quill: npm install quill`,g.value=!1,a(`component-error`,{message:`Quill not loaded. Install quill: npm install quill`,componentName:`VibeFormWysiwyg`,originalError:e})}finally{y=!1}};return(0,t.onMounted)(re),(0,t.onBeforeUnmount)(()=>{if(b=!0,x!==null&&(clearTimeout(x),x=null),h.value){if(h.value.scroll?.observer?.disconnect(),h.value.enable(!1),w&&=(h.value.off(`text-change`,w),null),S&&=(h.value.root.removeEventListener(`blur`,S),null),C&&=(h.value.root.removeEventListener(`focus`,C),null),h.value.selection=null,typeof h.value.destroy==`function`&&h.value.destroy(),m.value){let e=m.value.parentElement?.querySelector(`.ql-toolbar`);e&&e.remove()}h.value=null}}),(0,t.watch)(()=>i.modelValue,e=>{h.value&&te()!==(e||``)&&j(e||``)}),(0,t.watch)(()=>i.disabled,e=>{h.value&&h.value.enable(!e)}),(0,t.watch)(()=>i.readonly,e=>{h.value&&h.value.enable(!e)}),(0,t.watch)([()=>i.validationState,()=>i.helpText,()=>i.validationMessage],ne),(0,t.watch)(u,()=>{h.value&&(x!==null&&clearTimeout(x),x=setTimeout(async()=>{if(x=null,!(b||!h.value))try{let e=te();h.value.scroll?.observer?.disconnect(),h.value.enable(!1),w&&=(h.value.off(`text-change`,w),null),S&&=(h.value.root.removeEventListener(`blur`,S),null),C&&=(h.value.root.removeEventListener(`focus`,C),null),h.value.selection=null,h.value&&typeof h.value.destroy==`function`&&h.value.destroy(),h.value=null,g.value=!1;let n=m.value?.parentElement?.querySelector(`.ql-toolbar`);n&&n.remove(),m.value&&(m.value.innerHTML=``),await(0,t.nextTick)(),await re(),e&&j(e)}catch(e){h.value=null,g.value=!1,a(`component-error`,{message:`Editor failed to reinitialise on mobile breakpoint change.`,componentName:`VibeFormWysiwyg`,originalError:e})}},250))}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)({"mb-3":d.value||p.value||f.value})},[d.value?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,for:c.value,class:`form-label`},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label)+` `,1),e.required?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Yo,`*`)):(0,t.createCommentVNode)(``,!0)],8,Jo)):(0,t.createCommentVNode)(``,!0),_.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Xo,(0,t.toDisplayString)(_.value),1)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)(T.value),style:(0,t.normalizeStyle)({minHeight:l.value})},[(0,t.createElementVNode)(`div`,{ref_key:`editorContainer`,ref:m},null,512)],6)),p.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:3,id:`${c.value}-help`,class:`form-text`},(0,t.toDisplayString)(e.helpText),9,Zo)):(0,t.createCommentVNode)(``,!0),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:4},[e.validationState===`valid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`${c.value}-feedback`,class:`valid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Looks good!`),9,Qo)):(0,t.createCommentVNode)(``,!0),e.validationState===`invalid`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,id:`${c.value}-feedback`,class:`invalid-feedback`,style:{display:`block`}},(0,t.toDisplayString)(e.validationMessage||`Please provide valid content.`),9,$o)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-82e0c636`]]),ts={key:0,class:`input-group-text`},ns={key:0,class:`input-group-text`},rs=(0,t.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(e){let n=e,r=(0,t.computed)(()=>{let e=[`input-group`];return n.size&&e.push(`input-group-${n.size}`),e.join(` `)});return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),{class:(0,t.normalizeClass)(r.value)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`prepend`,{},()=>[e.prepend?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ts,(0,t.toDisplayString)(e.prepend),1)):(0,t.createCommentVNode)(``,!0)]),(0,t.renderSlot)(n.$slots,`default`),(0,t.renderSlot)(n.$slots,`append`,{},()=>[e.append?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ns,(0,t.toDisplayString)(e.append),1)):(0,t.createCommentVNode)(``,!0)])]),_:3},8,[`class`]))}}),is=(0,t.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(e){let n=e,r=(0,t.computed)(()=>!!n.to),i=(0,t.computed)(()=>r.value?`router-link`:n.tag),a=(0,t.computed)(()=>{let e=[];return n.variant&&e.push(`link-${n.variant}`),(n.underline===!1||n.underline===`0`)&&e.push(`link-underline-opacity-0`),n.underlineVariant&&e.push(`link-underline-${n.underlineVariant}`),n.underlineOpacity!==void 0&&e.push(`link-underline-opacity-${n.underlineOpacity}`),n.offset!==void 0&&e.push(`link-offset-${n.offset}`),n.opacity!==void 0&&e.push(`link-opacity-${n.opacity}`),n.focusRing&&e.push(`focus-ring`),e.join(` `)});return(n,o)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(i.value),{class:(0,t.normalizeClass)(a.value),to:r.value?e.to:void 0,href:r.value?void 0:(0,t.unref)(D)(e.href)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`class`,`to`,`href`]))}}),as=Symbol(`vibeTooltipInstance`),os=Symbol(`vibeTooltipPending`),ss=Symbol(`vibeTooltipOpts`),cs=()=>typeof window<`u`&&(`ontouchstart`in window||typeof navigator<`u`&&navigator.maxTouchPoints>0),ls=e=>typeof e==`string`?{title:e}:e?{...e,title:e.title??e.text??e.content}:{},us=e=>{let t=e||`hover focus`;return cs()&&t===`hover focus`?`click`:t},ds=(e,t)=>(e.placement||`top`)!==(t.placement||`top`)||us(e.trigger)!==us(t.trigger),fs=async(e,t)=>{if(e[os]||e[as])return;e[os]=!0;let n=t;e[ss]=t;try{e[as]=new(await(import(`bootstrap`))).Tooltip(e,{title:t.title||``,placement:t.placement||`top`,trigger:us(t.trigger),html:!1}),e[ss]!==n&&e[as]&&e[as].setContent({".tooltip-inner":e[ss]?.title??``})}catch{}e[os]=!1},ps=e=>{let t=e[as];t&&(t.dispose(),e[as]=null)},ms=(e,t)=>{e.setAttribute(`data-bs-toggle`,`tooltip`),t.title?e.setAttribute(`data-bs-title`,t.title):e.removeAttribute(`data-bs-title`),e.setAttribute(`data-bs-placement`,t.placement||`top`),e.setAttribute(`data-bs-trigger`,us(t.trigger)),e.removeAttribute(`data-bs-html`)},hs={mounted(e,t){let n=ls(t.value);ms(e,n),fs(e,n)},updated(e,t){let n=ls(t.value);ms(e,n);let r=e[ss]||{},i=e[as];if(e[ss]=n,!e[os]){if(i&&ds(r,n)){ps(e),fs(e,n);return}i&&i.setContent({".tooltip-inner":n.title||``})}},beforeUnmount(e){ps(e)}},gs={install(e){e.component(`VibeAlert`,a),e.component(`VibeBadge`,o),e.component(`VibeButton`,l),e.component(`VibeButtonGroup`,d),e.component(`VibeCloseButton`,p),e.component(`VibeSpinner`,h),e.component(`VibePlaceholder`,g),e.component(`VibeSkeleton`,_),e.component(`VibeContainer`,v),e.component(`VibeRow`,y),e.component(`VibeCol`,b),e.component(`VibeCard`,T),e.component(`VibeHero`,ne),e.component(`VibeBreadcrumb`,ae),e.component(`VibeNav`,ue),e.component(`VibeNavbar`,fe),e.component(`VibeNavbarBrand`,F),e.component(`VibeNavbarToggle`,I),e.component(`VibeNavbarNav`,ye),e.component(`VibePagination`,Te),e.component(`VibeTabContent`,De),e.component(`VibeTabs`,ke),e.component(`VibeTab`,Ae),e.component(`VibeListGroup`,je),e.component(`VibeProgress`,Ne),e.component(`VibeAccordion`,Be),e.component(`VibeCollapse`,Ve),e.component(`VibeDropdown`,Je),e.component(`VibeModal`,it),e.component(`VibeOffcanvas`,lt),e.component(`VibeToast`,gt),e.component(`VibeToastHost`,Et),e.component(`VibeCarousel`,Rt),e.component(`VibeTooltip`,Bt),e.component(`VibePopover`,Ht),e.component(`VibeScrollspy`,Ut),e.component(`VibeIcon`,Gt),e.component(`VibeChartLine`,ln),e.component(`VibeChartBar`,yn),e.component(`VibeChartPie`,Tn),e.component(`VibeDataTable`,Jn),e.component(`VibeFormInput`,ur),e.component(`VibeFormSelect`,xr),e.component(`VibeFormTextarea`,kr),e.component(`VibeFormSpinbutton`,Rr),e.component(`VibeFormDatepicker`,Gr),e.component(`VibeFileInput`,Zr),e.component(`VibeSlider`,ei),e.component(`VibeStepper`,li),e.component(`VibeAutocomplete`,hi),e.component(`VibeSortable`,gi),e.component(`VibeDraggable`,wi),e.component(`VibeDroppable`,Ti),e.component(`VibeResizable`,Di),e.component(`VibeDatePicker`,Ii),e.component(`VibeFormCheckbox`,Ui),e.component(`VibeFormRadio`,Xi),e.component(`VibeFormSwitch`,ra),e.component(`VibeFormGroup`,va),e.component(`VibeFormErrorSummary`,Sa),e.component(`VibeFormWysiwyg`,es),e.component(`VibeInputGroup`,rs),e.component(`VibeLink`,is),e.directive(`vibe-tooltip`,hs)}};function _s(e=``){let n=(0,t.ref)(e),r=(0,t.ref)(null),i=(0,t.ref)(``),a=(0,t.ref)(!1),o=(0,t.ref)(!1),s=(0,t.ref)(!1),c=0;return(0,t.watch)(n,()=>{r.value===`invalid`&&(r.value=null,i.value=``)}),{value:n,validationState:r,validationMessage:i,isDirty:a,isTouched:o,isValidating:s,isValid:(0,t.computed)(()=>r.value===`valid`),isInvalid:(0,t.computed)(()=>r.value===`invalid`),validate:async e=>{let t=++c;if(!e)return t===c?(r.value=null,i.value=``,{valid:!0}):{valid:!0};s.value=!0;try{let a=Array.isArray(e)?e:[{validator:e}];for(let e of a){let a=await e.validator(n.value);if(t!==c)return{valid:!0};if(a===!1||typeof a==`string`)return r.value=`invalid`,i.value=typeof a==`string`?a:e.message||`Invalid value`,s.value=!1,{valid:!1,message:i.value}}return t===c?(r.value=`valid`,i.value=``,s.value=!1,{valid:!0}):{valid:!0}}catch{return t===c?(r.value=`invalid`,i.value=`Validation error occurred`,s.value=!1,{valid:!1,message:i.value}):{valid:!0}}},reset:()=>{n.value=e,r.value=null,i.value=``,a.value=!1,o.value=!1,s.value=!1},markAsTouched:()=>{o.value=!0},markAsDirty:()=>{a.value=!0}}}var vs={required:(e=`This field is required`)=>({validator:t=>Array.isArray(t)?t.length>0||e:typeof t==`string`?t.trim().length>0||e:t!=null&&t!==``||e,message:e}),email:(e=`Please enter a valid email address`)=>({validator:t=>{if(t==null||t===``)return!0;let n=String(t);if(/\s/.test(n))return e;let r=n.indexOf(`@`);return r<=0||r!==n.lastIndexOf(`@`)||!n.slice(r+1).slice(1,-1).includes(`.`)?e:!0},message:e}),minLength:(e,t)=>({validator:n=>n==null||n===``?!0:String(n).length>=e||t||`Minimum length is ${e} characters`,message:t}),maxLength:(e,t)=>({validator:n=>n==null||n===``?!0:String(n).length<=e||t||`Maximum length is ${e} characters`,message:t}),min:(e,t)=>({validator:n=>{if(n==null||n===``)return!0;let r=Number(n);return Number.isNaN(r)?t||`Value must be a number`:r>=e||t||`Minimum value is ${e}`},message:t}),max:(e,t)=>({validator:n=>{if(n==null||n===``)return!0;let r=Number(n);return Number.isNaN(r)?t||`Value must be a number`:r<=e||t||`Maximum value is ${e}`},message:t}),pattern:(e,t=`Invalid format`)=>({validator:n=>n==null||n===``?!0:e.test(String(n))||t,message:t}),url:(e=`Please enter a valid URL`)=>({validator:t=>{if(t==null||t===``)return!0;try{return new URL(String(t)),!0}catch{return e}},message:e}),async:e=>({validator:e})},ys=e=>JSON.parse(JSON.stringify(e)),bs=async(e,t)=>{let n=Array.isArray(t)?t:[{validator:t}];for(let t of n){let n=await t.validator(e);if(n===!1)return t.message||`Invalid value`;if(typeof n==`string`)return n}return``};function xs(e){let n=ys(e),r=(0,t.reactive)(ys(e)),i={},a={};for(let t of Object.keys(e))i[t]=``,a[t]=!1;let o=(0,t.reactive)(i),s=(0,t.reactive)(a),c=(0,t.ref)(!1),l=(0,t.ref)(!1),u=(0,t.computed)(()=>c.value),d=Object.keys(n),f={};for(let e of d)f[e]=JSON.stringify(n[e]);return(0,t.watch)(r,e=>{c.value=d.some(t=>JSON.stringify(e[t])!==f[t])},{deep:!0,immediate:!0}),{fields:r,errors:o,touched:s,isDirty:u,isValid:(0,t.computed)(()=>{if(!l.value)return!1;for(let e of Object.keys(o))if(o[e])return!1;return!0}),values:(0,t.computed)(()=>({...r})),validate:async e=>{let t={},n=!0;for(let i of Object.keys(e)){let a=e[i];if(!a)continue;let s=await bs(r[i],a);o[i]=s,s&&(t[i]=s,n=!1)}return l.value=!0,{valid:n,errors:t}},validateField:async(e,t)=>{let n=await bs(r[e],t);return o[e]=n,l.value=!0,n},reset:()=>{for(let e of Object.keys(n))r[e]=ys(n[e]),o[e]=``,s[e]=!1;c.value=!1,l.value=!1},markTouched:e=>{s[e]=!0},markAllTouched:()=>{for(let e of Object.keys(s))s[e]=!0},setField:(e,t)=>{r[e]=t}}}var Ss=Math.min,Cs=Math.max,ws=Math.round,Ts=Math.floor,Es=e=>({x:e,y:e}),Ds={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Os(e,t,n){return Cs(e,Ss(t,n))}function ks(e,t){return typeof e==`function`?e(t):e}function As(e){return e.split(`-`)[0]}function js(e){return e.split(`-`)[1]}function Ms(e){return e===`x`?`y`:`x`}function Ns(e){return e===`y`?`height`:`width`}function Ps(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Fs(e){return Ms(Ps(e))}function Is(e,t,n){n===void 0&&(n=!1);let r=js(e),i=Fs(e),a=Ns(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Gs(o)),[o,Gs(o)]}function Ls(e){let t=Gs(e);return[Rs(e),t,Rs(t)]}function Rs(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var zs=[`left`,`right`],Bs=[`right`,`left`],Vs=[`top`,`bottom`],Hs=[`bottom`,`top`];function Us(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Bs:zs:t?zs:Bs;case`left`:case`right`:return t?Vs:Hs;default:return[]}}function Ws(e,t,n,r){let i=js(e),a=Us(As(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Rs)))),a}function Gs(e){let t=As(e);return Ds[t]+e.slice(t.length)}function Ks(e){return{top:0,right:0,bottom:0,left:0,...e}}function qs(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Ks(e)}function Js(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Ys(e,t,n){let{reference:r,floating:i}=e,a=Ps(t),o=Fs(t),s=Ns(o),c=As(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(js(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Xs(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=ks(t,e),p=qs(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Js(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Js(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Zs=50,Qs=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Xs},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Ys(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Zs&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Ys(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},$s=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=ks(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=As(r),_=Ps(o),v=As(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Gs(o)]:Ls(o)),x=p!==`none`;!d&&x&&b.push(...Ws(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=Is(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==Ps(t))||T.every(e=>Ps(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Ps(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},ec=new Set([`left`,`top`]);async function tc(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=As(n),s=js(n),c=Ps(n)===`y`,l=ec.has(o)?-1:1,u=a&&c?-1:1,d=ks(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var nc=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await tc(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},rc=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=ks(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=Ps(As(i)),p=Ms(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Os(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Os(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}};function ic(){return typeof window<`u`}function ac(e){return sc(e)?(e.nodeName||``).toLowerCase():`#document`}function Z(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function oc(e){return((sc(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function sc(e){return ic()?e instanceof Node||e instanceof Z(e).Node:!1}function Q(e){return ic()?e instanceof Element||e instanceof Z(e).Element:!1}function cc(e){return ic()?e instanceof HTMLElement||e instanceof Z(e).HTMLElement:!1}function lc(e){return!ic()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Z(e).ShadowRoot}function uc(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=$(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function dc(e){return/^(table|td|th)$/.test(ac(e))}function fc(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var pc=/transform|translate|scale|rotate|perspective|filter/,mc=/paint|layout|strict|content/,hc=e=>!!e&&e!==`none`,gc;function _c(e){let t=Q(e)?$(e):e;return hc(t.transform)||hc(t.translate)||hc(t.scale)||hc(t.rotate)||hc(t.perspective)||!yc()&&(hc(t.backdropFilter)||hc(t.filter))||pc.test(t.willChange||``)||mc.test(t.contain||``)}function vc(e){let t=Sc(e);for(;cc(t)&&!bc(t);){if(_c(t))return t;if(fc(t))return null;t=Sc(t)}return null}function yc(){return gc??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),gc}function bc(e){return/^(html|body|#document)$/.test(ac(e))}function $(e){return Z(e).getComputedStyle(e)}function xc(e){return Q(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Sc(e){if(ac(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||lc(e)&&e.host||oc(e);return lc(t)?t.host:t}function Cc(e){let t=Sc(e);return bc(t)?e.ownerDocument?e.ownerDocument.body:e.body:cc(t)&&uc(t)?t:Cc(t)}function wc(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Cc(e),i=r===e.ownerDocument?.body,a=Z(r);if(i){let e=Tc(a);return t.concat(a,a.visualViewport||[],uc(r)?r:[],e&&n?wc(e):[])}else return t.concat(r,wc(r,[],n))}function Tc(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ec(e){let t=$(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=cc(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=ws(n)!==a||ws(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Dc(e){return Q(e)?e:e.contextElement}function Oc(e){let t=Dc(e);if(!cc(t))return Es(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Ec(t),o=(a?ws(n.width):n.width)/r,s=(a?ws(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var kc=Es(0);function Ac(e){let t=Z(e);return!yc()||!t.visualViewport?kc:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function jc(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Z(e)?!1:t}function Mc(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Dc(e),o=Es(1);t&&(r?Q(r)&&(o=Oc(r)):o=Oc(e));let s=jc(a,n,r)?Ac(a):Es(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=Z(a),t=r&&Q(r)?Z(r):r,n=e,i=Tc(n);for(;i&&r&&t!==n;){let e=Oc(i),t=i.getBoundingClientRect(),r=$(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Z(i),i=Tc(n)}}return Js({width:u,height:d,x:c,y:l})}function Nc(e,t){let n=xc(e).scrollLeft;return t?t.left+n:Mc(oc(e)).left+n}function Pc(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Nc(e,n),y:n.top+t.scrollTop}}function Fc(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=oc(r),s=t?fc(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Es(1),u=Es(0),d=cc(r);if((d||!d&&!a)&&((ac(r)!==`body`||uc(o))&&(c=xc(r)),d)){let e=Mc(r);l=Oc(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Pc(o,c):Es(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Ic(e){return Array.from(e.getClientRects())}function Lc(e){let t=oc(e),n=xc(e),r=e.ownerDocument.body,i=Cs(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Cs(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Nc(e),s=-n.scrollTop;return $(r).direction===`rtl`&&(o+=Cs(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Rc=25;function zc(e,t){let n=Z(e),r=oc(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=yc();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Nc(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Rc&&(a-=o)}else l<=Rc&&(a+=l);return{width:a,height:o,x:s,y:c}}function Bc(e,t){let n=Mc(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=cc(e)?Oc(e):Es(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Vc(e,t,n){let r;if(t===`viewport`)r=zc(e,n);else if(t===`document`)r=Lc(oc(e));else if(Q(t))r=Bc(t,n);else{let n=Ac(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Js(r)}function Hc(e,t){let n=Sc(e);return n===t||!Q(n)||bc(n)?!1:$(n).position===`fixed`||Hc(n,t)}function Uc(e,t){let n=t.get(e);if(n)return n;let r=wc(e,[],!1).filter(e=>Q(e)&&ac(e)!==`body`),i=null,a=$(e).position===`fixed`,o=a?Sc(e):e;for(;Q(o)&&!bc(o);){let t=$(o),n=_c(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||uc(o)&&!n&&Hc(e,o))?r=r.filter(e=>e!==o):i=t,o=Sc(o)}return t.set(e,r),r}function Wc(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?fc(t)?[]:Uc(t,this._c):[].concat(n),r],o=Vc(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Vc(t,a[e],i);s=Cs(n.top,s),c=Ss(n.right,c),l=Ss(n.bottom,l),u=Cs(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Gc(e){let{width:t,height:n}=Ec(e);return{width:t,height:n}}function Kc(e,t,n){let r=cc(t),i=oc(t),a=n===`fixed`,o=Mc(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Es(0);function l(){c.x=Nc(i)}if(r||!r&&!a)if((ac(t)!==`body`||uc(i))&&(s=xc(t)),r){let e=Mc(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?Pc(i,s):Es(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function qc(e){return $(e).position===`static`}function Jc(e,t){if(!cc(e)||$(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return oc(e)===n&&(n=n.ownerDocument.body),n}function Yc(e,t){let n=Z(e);if(fc(e))return n;if(!cc(e)){let t=Sc(e);for(;t&&!bc(t);){if(Q(t)&&!qc(t))return t;t=Sc(t)}return n}let r=Jc(e,t);for(;r&&dc(r)&&qc(r);)r=Jc(r,t);return r&&bc(r)&&qc(r)&&!_c(r)?n:r||vc(e)||n}var Xc=async function(e){let t=this.getOffsetParent||Yc,n=this.getDimensions,r=await n(e.floating);return{reference:Kc(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Zc(e){return $(e).direction===`rtl`}var Qc={convertOffsetParentRelativeRectToViewportRelativeRect:Fc,getDocumentElement:oc,getClippingRect:Wc,getOffsetParent:Yc,getElementRects:Xc,getClientRects:Ic,getDimensions:Gc,getScale:Oc,isElement:Q,isRTL:Zc};function $c(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function el(e,t){let n=null,r,i=oc(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=Ts(d),h=Ts(i.clientWidth-(u+f)),g=Ts(i.clientHeight-(d+p)),_=Ts(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Cs(0,Ss(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!$c(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function tl(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Dc(e),u=i||a?[...l?wc(l):[],...t?wc(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?el(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Mc(e):null;c&&g();function g(){let t=Mc(e);h&&!$c(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var nl=nc,rl=rc,il=$s,al=(e,t,n)=>{let r=new Map,i={platform:Qc,...n},a={...i.platform,_c:r};return Qs(e,t,{...i,platform:a})},ol={"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`},sl=(e,t)=>{let n=`${e} at ${t}`;if(ol[n])return ol[n];let[r,i]=t.split(` `);return r===`bottom`?i===`start`?`bottom-start`:i===`end`?`bottom-end`:`bottom`:r===`top`?i===`start`?`top-start`:i===`end`?`top-end`:`top`:i===`start`?r===`top`?`left-start`:r===`bottom`?`left-end`:`left`:i===`end`?r===`top`?`right-start`:r===`bottom`?`right-end`:`right`:`bottom`};function cl(e,n,r={}){let i=()=>typeof r==`function`?r():r,a=i(),o=(0,t.ref)(sl(a.my??`top center`,a.at??`bottom center`)),s=(0,t.ref)(0),c=(0,t.ref)(0),l=null,u=null,d=null,f=e=>{let t=[];if(e.offset){let[n,r]=e.offset;t.push(nl({mainAxis:r,crossAxis:n}))}let n=e.collision??`flip+shift`;return(n===`flip`||n===`flip+shift`)&&t.push(il()),(n===`shift`||n===`flip+shift`)&&t.push(rl()),t},p=e=>{d!==e&&(d=e,u={position:e.style.position,left:e.style.left,top:e.style.top})},m=e=>{let t=e??d;t&&u&&d===t&&(t.style.position=u.position,t.style.left=u.left,t.style.top=u.top),u=null,d=null},h=async()=>{let t=e.value,r=n.value;if(!t||!r)return;let a=i(),l=a.my??`top center`,u=a.at??`bottom center`;p(t);let d=await al(r,t,{placement:sl(l,u),strategy:a.strategy??`absolute`,middleware:f(a)});s.value=d.x,c.value=d.y,o.value=d.placement,Object.assign(t.style,{position:a.strategy??`absolute`,left:`${d.x}px`,top:`${d.y}px`})},g=()=>{l&&=(l(),null),m()};return(0,t.watchEffect)(t=>{let r=e.value,a=n.value,o=i();if(!r||!a)return;d!==null&&d!==r&&m(d);let s=null;o.autoUpdate===!1?h():s=tl(a,r,()=>{h()}),t(()=>{s?.(),s=null,l=null})},{flush:`post`}),(0,t.onBeforeUnmount)(()=>{g()}),{x:s,y:c,placement:o,update:h,stop:g}}var ll=`vibe-color-mode`,ul={light:`dark`,dark:`auto`,auto:`light`},dl=(0,t.ref)(`auto`),fl=!1,pl=[];function ml(){return typeof window>`u`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function hl(e){if(typeof document>`u`)return;let t=e===`auto`?ml():e;document.documentElement.setAttribute(`data-bs-theme`,t)}function gl(e){dl.value=e,hl(e),pl.forEach(t=>t(e))}var _l=`auto`;try{let e=typeof localStorage<`u`?localStorage.getItem(ll):null;e!==null&&e in ul&&(_l=e)}catch{}var vl=()=>{dl.value===`auto`&&(hl(`auto`),pl.forEach(e=>e(`auto`)))},yl=null;function bl(){typeof window>`u`||(yl=window.matchMedia(`(prefers-color-scheme: dark)`),yl.addEventListener(`change`,vl))}function xl(){yl?.removeEventListener(`change`,vl),yl=null}typeof window<`u`&&(gl(_l),bl(),fl=!0);function Sl(){function e(e){if(e in ul){try{localStorage.setItem(ll,e)}catch{}gl(e)}}function t(){if(fl)return;xl();let e=`auto`;try{let t=typeof localStorage<`u`?localStorage.getItem(ll):null;t!==null&&t in ul&&(e=t)}catch{}gl(e),bl(),fl=!0}function n(){xl();try{localStorage.removeItem(ll)}catch{}gl(`auto`),bl(),fl=!1}function r(){e(ul[dl.value]??`auto`)}function i(e){return pl.push(e),()=>{let t=pl.indexOf(e);t!==-1&&pl.splice(t,1)}}return{colorMode:dl,setColorMode:e,toggleColorMode:r,initColorMode:t,clearColorMode:n,onColorModeChange:i}}var Cl=gs;e.VibeAccordion=Be,e.VibeAlert=a,e.VibeAutocomplete=hi,e.VibeBadge=o,e.VibeBreadcrumb=ae,e.VibeButton=l,e.VibeButtonGroup=d,e.VibeCard=T,e.VibeCarousel=Rt,e.VibeChartBar=yn,e.VibeChartLine=ln,e.VibeChartPie=Tn,e.VibeCloseButton=p,e.VibeCol=b,e.VibeCollapse=Ve,e.VibeContainer=v,e.VibeDataTable=Jn,e.VibeDatePicker=Ii,e.VibeDraggable=wi,e.VibeDropdown=Je,e.VibeDroppable=Ti,e.VibeFileInput=Zr,e.VibeFormCheckbox=Ui,e.VibeFormDatepicker=Gr,e.VibeFormErrorSummary=Sa,e.VibeFormGroup=va,e.VibeFormInput=ur,e.VibeFormRadio=Xi,e.VibeFormSelect=xr,e.VibeFormSpinbutton=Rr,e.VibeFormSwitch=ra,e.VibeFormTextarea=kr,e.VibeFormWysiwyg=es,e.VibeHero=ne,e.VibeIcon=Gt,e.VibeInputGroup=rs,e.VibeLink=is,e.VibeListGroup=je,e.VibeModal=it,e.VibeNav=ue,e.VibeNavbar=fe,e.VibeNavbarBrand=F,e.VibeNavbarNav=ye,e.VibeNavbarToggle=I,e.VibeOffcanvas=lt,e.VibePagination=Te,e.VibePlaceholder=g,e.VibePopover=Ht,e.VibeProgress=Ne,e.VibeResizable=Di,e.VibeRow=y,e.VibeScrollspy=Ut,e.VibeSkeleton=_,e.VibeSlider=ei,e.VibeSortable=gi,e.VibeSpinner=h,e.VibeStepper=li,e.VibeTab=Ae,e.VibeTabContent=De,e.VibeTabs=ke,e.VibeToast=gt,e.VibeToastHost=Et,e.VibeTooltip=Bt,e.default=Cl,e.resetToastStoreForSSR=wt,e.useBackButton=Ze,e.useBreakpoints=wa,e.useColorMode=Sl,e.useForm=xs,e.useFormValidation=_s,e.useId=L,e.usePosition=cl,e.useToast=Ct,e.vTooltip=hs,e.validators=vs});