@velkymx/vibeui 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vibeui.es.js CHANGED
@@ -1,5 +1,5 @@
1
- import { defineComponent as C, computed as y, openBlock as i, createElementBlock as n, normalizeClass as g, renderSlot as V, createTextVNode as w, toDisplayString as b, createCommentVNode as v, createBlock as M, resolveDynamicComponent as q, withCtx as P, createElementVNode as h, normalizeStyle as D, Fragment as F, renderList as z, unref as se, ref as T, watch as E, onMounted as G, onBeforeUnmount as H, useModel as Y, withDirectives as W, vModelText as oe, vModelSelect as de, withModifiers as X, mergeModels as J } from "vue";
2
- const re = /* @__PURE__ */ C({
1
+ import { defineComponent as C, computed as y, openBlock as i, createElementBlock as s, normalizeClass as g, renderSlot as V, createTextVNode as B, toDisplayString as b, createCommentVNode as v, createBlock as M, resolveDynamicComponent as q, withCtx as P, createElementVNode as h, normalizeStyle as D, Fragment as F, renderList as z, reactive as oe, provide as de, unref as re, inject as Z, ref as T, watch as E, onMounted as G, onBeforeUnmount as H, useModel as Y, withDirectives as W, vModelText as ue, vModelSelect as ce, withModifiers as X, mergeModels as J } from "vue";
2
+ const fe = /* @__PURE__ */ C({
3
3
  __name: "VibeAlert",
4
4
  props: {
5
5
  variant: { type: String, default: "primary" },
@@ -11,35 +11,35 @@ const re = /* @__PURE__ */ C({
11
11
  setup(e, { emit: f }) {
12
12
  const t = e, a = f, l = y({
13
13
  get: () => t.modelValue,
14
- set: (s) => a("update:modelValue", s)
15
- }), o = () => {
14
+ set: (n) => a("update:modelValue", n)
15
+ }), r = () => {
16
16
  try {
17
17
  l.value = !1;
18
- } catch (s) {
18
+ } catch (n) {
19
19
  a("component-error", {
20
20
  message: "Dismiss failed",
21
21
  componentName: "VibeAlert",
22
- originalError: s
22
+ originalError: n
23
23
  });
24
24
  }
25
25
  };
26
- return (s, u) => l.value ? (i(), n("div", {
26
+ return (n, o) => l.value ? (i(), s("div", {
27
27
  key: 0,
28
28
  class: g(`alert alert-${e.variant}`),
29
29
  role: "alert"
30
30
  }, [
31
- V(s.$slots, "default", {}, () => [
32
- w(b(e.message), 1)
31
+ V(n.$slots, "default", {}, () => [
32
+ B(b(e.message), 1)
33
33
  ]),
34
- e.dismissable ? (i(), n("button", {
34
+ e.dismissable ? (i(), s("button", {
35
35
  key: 0,
36
36
  class: "btn-close",
37
- onClick: o,
37
+ onClick: r,
38
38
  "aria-label": "Close"
39
39
  })) : v("", !0)
40
40
  ], 2)) : v("", !0);
41
41
  }
42
- }), ue = /* @__PURE__ */ C({
42
+ }), ve = /* @__PURE__ */ C({
43
43
  __name: "VibeBadge",
44
44
  props: {
45
45
  variant: { type: String, default: "primary" },
@@ -52,7 +52,7 @@ const re = /* @__PURE__ */ C({
52
52
  const l = ["badge", `bg-${t.variant}`];
53
53
  return t.pill && l.push("rounded-pill"), l.join(" ");
54
54
  });
55
- return (l, o) => (i(), M(q(e.tag), {
55
+ return (l, r) => (i(), M(q(e.tag), {
56
56
  class: g(a.value)
57
57
  }, {
58
58
  default: P(() => [
@@ -61,7 +61,7 @@ const re = /* @__PURE__ */ C({
61
61
  _: 3
62
62
  }, 8, ["class"]));
63
63
  }
64
- }), ce = /* @__PURE__ */ C({
64
+ }), be = /* @__PURE__ */ C({
65
65
  __name: "VibeButton",
66
66
  props: {
67
67
  variant: { type: String, default: "primary" },
@@ -75,28 +75,28 @@ const re = /* @__PURE__ */ C({
75
75
  },
76
76
  emits: ["click", "component-error"],
77
77
  setup(e, { emit: f }) {
78
- const t = e, a = f, l = y(() => t.href ? "a" : t.to ? "router-link" : "button"), o = y(() => {
79
- const u = ["btn"];
80
- return t.outline ? u.push(`btn-outline-${t.variant}`) : u.push(`btn-${t.variant}`), t.size && u.push(`btn-${t.size}`), t.active && u.push("active"), u.join(" ");
81
- }), s = (u) => {
82
- t.disabled || a("click", u);
78
+ const t = e, a = f, l = y(() => t.href ? "a" : t.to ? "router-link" : "button"), r = y(() => {
79
+ const o = ["btn"];
80
+ return t.outline ? o.push(`btn-outline-${t.variant}`) : o.push(`btn-${t.variant}`), t.size && o.push(`btn-${t.size}`), t.active && o.push("active"), o.join(" ");
81
+ }), n = (o) => {
82
+ t.disabled || a("click", o);
83
83
  };
84
- return (u, d) => (i(), M(q(l.value), {
85
- class: g(o.value),
84
+ return (o, d) => (i(), M(q(l.value), {
85
+ class: g(r.value),
86
86
  type: e.href || e.to ? void 0 : e.type,
87
87
  href: e.href,
88
88
  to: e.to,
89
89
  disabled: e.disabled,
90
90
  "aria-disabled": e.disabled,
91
- onClick: s
91
+ onClick: n
92
92
  }, {
93
93
  default: P(() => [
94
- V(u.$slots, "default")
94
+ V(o.$slots, "default")
95
95
  ]),
96
96
  _: 3
97
97
  }, 8, ["class", "type", "href", "to", "disabled", "aria-disabled"]));
98
98
  }
99
- }), fe = ["role", "aria-label"], ve = /* @__PURE__ */ C({
99
+ }), me = ["role", "aria-label"], he = /* @__PURE__ */ C({
100
100
  __name: "VibeButtonGroup",
101
101
  props: {
102
102
  size: { type: String, default: void 0 },
@@ -110,15 +110,15 @@ const re = /* @__PURE__ */ C({
110
110
  const l = [t.vertical ? "btn-group-vertical" : "btn-group"];
111
111
  return t.size && l.push(`btn-group-${t.size}`), l.join(" ");
112
112
  });
113
- return (l, o) => (i(), n("div", {
113
+ return (l, r) => (i(), s("div", {
114
114
  class: g(a.value),
115
115
  role: e.role,
116
116
  "aria-label": e.ariaLabel
117
117
  }, [
118
118
  V(l.$slots, "default")
119
- ], 10, fe));
119
+ ], 10, me));
120
120
  }
121
- }), be = ["disabled", "aria-label"], me = /* @__PURE__ */ C({
121
+ }), ye = ["disabled", "aria-label"], ge = /* @__PURE__ */ C({
122
122
  __name: "VibeCloseButton",
123
123
  props: {
124
124
  disabled: { type: Boolean, default: !1 },
@@ -127,18 +127,18 @@ const re = /* @__PURE__ */ C({
127
127
  },
128
128
  emits: ["click", "component-error"],
129
129
  setup(e, { emit: f }) {
130
- const t = e, a = f, l = (o) => {
131
- t.disabled || a("click", o);
130
+ const t = e, a = f, l = (r) => {
131
+ t.disabled || a("click", r);
132
132
  };
133
- return (o, s) => (i(), n("button", {
133
+ return (r, n) => (i(), s("button", {
134
134
  type: "button",
135
135
  class: g(["btn-close", { "btn-close-white": e.white }]),
136
136
  disabled: e.disabled,
137
137
  "aria-label": e.ariaLabel,
138
138
  onClick: l
139
- }, null, 10, be));
139
+ }, null, 10, ye));
140
140
  }
141
- }), he = { class: "visually-hidden" }, ye = /* @__PURE__ */ C({
141
+ }), pe = { class: "visually-hidden" }, $e = /* @__PURE__ */ C({
142
142
  __name: "VibeSpinner",
143
143
  props: {
144
144
  variant: { type: String, default: void 0 },
@@ -153,17 +153,17 @@ const re = /* @__PURE__ */ C({
153
153
  const l = [`spinner-${t.type}`];
154
154
  return t.variant && l.push(`text-${t.variant}`), t.size && l.push(`spinner-${t.type}-${t.size}`), l.join(" ");
155
155
  });
156
- return (l, o) => (i(), M(q(e.tag), {
156
+ return (l, r) => (i(), M(q(e.tag), {
157
157
  class: g(a.value),
158
158
  role: "status"
159
159
  }, {
160
160
  default: P(() => [
161
- h("span", he, b(e.label), 1)
161
+ h("span", pe, b(e.label), 1)
162
162
  ]),
163
163
  _: 1
164
164
  }, 8, ["class"]));
165
165
  }
166
- }), ge = /* @__PURE__ */ C({
166
+ }), ke = /* @__PURE__ */ C({
167
167
  __name: "VibePlaceholder",
168
168
  props: {
169
169
  variant: { type: String, default: void 0 },
@@ -175,29 +175,29 @@ const re = /* @__PURE__ */ C({
175
175
  emits: ["component-error"],
176
176
  setup(e, { emit: f }) {
177
177
  const t = e, a = y(() => {
178
- const s = ["placeholder"];
179
- return t.variant && s.push(`bg-${t.variant}`), t.size && s.push(`placeholder-${t.size}`), s.join(" ");
178
+ const n = ["placeholder"];
179
+ return t.variant && n.push(`bg-${t.variant}`), t.size && n.push(`placeholder-${t.size}`), n.join(" ");
180
180
  }), l = y(() => {
181
181
  if (t.animation) return `placeholder-${t.animation}`;
182
- }), o = y(() => {
182
+ }), r = y(() => {
183
183
  if (t.width)
184
184
  return { width: typeof t.width == "number" ? `${t.width}%` : t.width };
185
185
  });
186
- return (s, u) => (i(), M(q(e.tag), {
186
+ return (n, o) => (i(), M(q(e.tag), {
187
187
  class: g(l.value)
188
188
  }, {
189
189
  default: P(() => [
190
190
  h("span", {
191
191
  class: g(a.value),
192
- style: D(o.value)
192
+ style: D(r.value)
193
193
  }, [
194
- V(s.$slots, "default")
194
+ V(n.$slots, "default")
195
195
  ], 6)
196
196
  ]),
197
197
  _: 3
198
198
  }, 8, ["class"]));
199
199
  }
200
- }), pe = /* @__PURE__ */ C({
200
+ }), Se = /* @__PURE__ */ C({
201
201
  __name: "VibeContainer",
202
202
  props: {
203
203
  fluid: { type: [Boolean, String], default: !1 },
@@ -206,7 +206,7 @@ const re = /* @__PURE__ */ C({
206
206
  emits: ["component-error"],
207
207
  setup(e, { emit: f }) {
208
208
  const t = e, a = y(() => t.fluid === !1 ? "container" : t.fluid === !0 ? "container-fluid" : `container-${t.fluid}`);
209
- return (l, o) => (i(), M(q(e.tag), {
209
+ return (l, r) => (i(), M(q(e.tag), {
210
210
  class: g(a.value)
211
211
  }, {
212
212
  default: P(() => [
@@ -215,7 +215,7 @@ const re = /* @__PURE__ */ C({
215
215
  _: 3
216
216
  }, 8, ["class"]));
217
217
  }
218
- }), $e = /* @__PURE__ */ C({
218
+ }), Ve = /* @__PURE__ */ C({
219
219
  __name: "VibeRow",
220
220
  props: {
221
221
  tag: { type: String, default: "div" },
@@ -255,20 +255,20 @@ const re = /* @__PURE__ */ C({
255
255
  const t = e, a = y(() => {
256
256
  const l = ["row"];
257
257
  t.gutters !== void 0 && l.push(`g-${t.gutters}`), t.guttersX !== void 0 && l.push(`gx-${t.guttersX}`), t.guttersY !== void 0 && l.push(`gy-${t.guttersY}`);
258
- const o = ["sm", "md", "lg", "xl", "xxl"];
259
- return o.forEach((s) => {
260
- const u = s.charAt(0).toUpperCase() + s.slice(1), d = `gutters${u}`;
261
- t[d] !== void 0 && l.push(`g-${s}-${t[d]}`);
262
- const r = `guttersX${u}`;
263
- t[r] !== void 0 && l.push(`gx-${s}-${t[r]}`);
264
- const c = `guttersY${u}`;
265
- t[c] !== void 0 && l.push(`gy-${s}-${t[c]}`);
266
- }), t.rowCols !== void 0 && l.push(`row-cols-${t.rowCols}`), o.forEach((s) => {
267
- const u = `rowCols${s.charAt(0).toUpperCase() + s.slice(1)}`;
268
- t[u] !== void 0 && l.push(`row-cols-${s}-${t[u]}`);
258
+ const r = ["sm", "md", "lg", "xl", "xxl"];
259
+ return r.forEach((n) => {
260
+ const o = n.charAt(0).toUpperCase() + n.slice(1), d = `gutters${o}`;
261
+ t[d] !== void 0 && l.push(`g-${n}-${t[d]}`);
262
+ const u = `guttersX${o}`;
263
+ t[u] !== void 0 && l.push(`gx-${n}-${t[u]}`);
264
+ const c = `guttersY${o}`;
265
+ t[c] !== void 0 && l.push(`gy-${n}-${t[c]}`);
266
+ }), t.rowCols !== void 0 && l.push(`row-cols-${t.rowCols}`), r.forEach((n) => {
267
+ const o = `rowCols${n.charAt(0).toUpperCase() + n.slice(1)}`;
268
+ t[o] !== void 0 && l.push(`row-cols-${n}-${t[o]}`);
269
269
  }), t.alignItems && l.push(`align-items-${t.alignItems}`), t.justifyContent && l.push(`justify-content-${t.justifyContent}`), l.join(" ");
270
270
  });
271
- return (l, o) => (i(), M(q(e.tag), {
271
+ return (l, r) => (i(), M(q(e.tag), {
272
272
  class: g(a.value)
273
273
  }, {
274
274
  default: P(() => [
@@ -277,7 +277,7 @@ const re = /* @__PURE__ */ C({
277
277
  _: 3
278
278
  }, 8, ["class"]));
279
279
  }
280
- }), ke = /* @__PURE__ */ C({
280
+ }), Ce = /* @__PURE__ */ C({
281
281
  __name: "VibeCol",
282
282
  props: {
283
283
  tag: { type: String, default: "div" },
@@ -315,11 +315,11 @@ const re = /* @__PURE__ */ C({
315
315
  { name: "lg", value: t.lg },
316
316
  { name: "xl", value: t.xl },
317
317
  { name: "xxl", value: t.xxl }
318
- ].forEach(({ name: u, value: d }) => {
319
- d === !0 ? l.push(`col-${u}`) : d === "auto" ? l.push(`col-${u}-auto`) : d !== void 0 && l.push(`col-${u}-${d}`);
318
+ ].forEach(({ name: o, value: d }) => {
319
+ d === !0 ? l.push(`col-${o}`) : d === "auto" ? l.push(`col-${o}-auto`) : d !== void 0 && l.push(`col-${o}-${d}`);
320
320
  })) : l.push("col"), t.offset !== void 0 && l.push(`offset-${t.offset}`), t.offsetSm !== void 0 && l.push(`offset-sm-${t.offsetSm}`), t.offsetMd !== void 0 && l.push(`offset-md-${t.offsetMd}`), t.offsetLg !== void 0 && l.push(`offset-lg-${t.offsetLg}`), t.offsetXl !== void 0 && l.push(`offset-xl-${t.offsetXl}`), t.offsetXxl !== void 0 && l.push(`offset-xxl-${t.offsetXxl}`), t.order !== void 0 && l.push(`order-${t.order}`), t.orderSm !== void 0 && l.push(`order-sm-${t.orderSm}`), t.orderMd !== void 0 && l.push(`order-md-${t.orderMd}`), t.orderLg !== void 0 && l.push(`order-lg-${t.orderLg}`), t.orderXl !== void 0 && l.push(`order-xl-${t.orderXl}`), t.orderXxl !== void 0 && l.push(`order-xxl-${t.orderXxl}`), t.alignSelf && l.push(`align-self-${t.alignSelf}`), l.join(" ");
321
321
  });
322
- return (l, o) => (i(), M(q(e.tag), {
322
+ return (l, r) => (i(), M(q(e.tag), {
323
323
  class: g(a.value)
324
324
  }, {
325
325
  default: P(() => [
@@ -328,22 +328,22 @@ const re = /* @__PURE__ */ C({
328
328
  _: 3
329
329
  }, 8, ["class"]));
330
330
  }
331
- }), Se = ["src", "alt"], Ve = {
331
+ }), xe = ["src", "alt"], Be = {
332
332
  key: 1,
333
333
  class: "card-header"
334
- }, Ce = {
334
+ }, we = {
335
335
  key: 2,
336
336
  class: "card-body"
337
- }, xe = {
337
+ }, Ne = {
338
338
  key: 0,
339
339
  class: "card-title"
340
- }, we = {
340
+ }, Te = {
341
341
  key: 1,
342
342
  class: "card-text"
343
- }, Be = {
343
+ }, Me = {
344
344
  key: 3,
345
345
  class: "card-footer"
346
- }, Ne = ["src", "alt"], Te = /* @__PURE__ */ C({
346
+ }, qe = ["src", "alt"], Pe = /* @__PURE__ */ C({
347
347
  __name: "VibeCard",
348
348
  props: {
349
349
  variant: { type: String, default: void 0 },
@@ -367,50 +367,50 @@ const re = /* @__PURE__ */ C({
367
367
  const l = ["card"];
368
368
  return t.variant && l.push(`bg-${t.variant}`), t.border && l.push(`border-${t.border}`), t.textVariant && l.push(`text-${t.textVariant}`), l.join(" ");
369
369
  });
370
- return (l, o) => (i(), M(q(e.tag), {
370
+ return (l, r) => (i(), M(q(e.tag), {
371
371
  class: g(a.value)
372
372
  }, {
373
373
  default: P(() => [
374
- e.imgSrc && e.imgTop ? (i(), n("img", {
374
+ e.imgSrc && e.imgTop ? (i(), s("img", {
375
375
  key: 0,
376
376
  src: e.imgSrc,
377
377
  alt: e.imgAlt,
378
378
  class: "card-img-top"
379
- }, null, 8, Se)) : v("", !0),
380
- e.header || l.$slots.header ? (i(), n("div", Ve, [
379
+ }, null, 8, xe)) : v("", !0),
380
+ e.header || l.$slots.header ? (i(), s("div", Be, [
381
381
  V(l.$slots, "header", {}, () => [
382
- w(b(e.header), 1)
382
+ B(b(e.header), 1)
383
383
  ])
384
384
  ])) : v("", !0),
385
- e.title || e.body || l.$slots.default ? (i(), n("div", Ce, [
386
- e.title || l.$slots.title ? (i(), n("h5", xe, [
385
+ e.title || e.body || l.$slots.default || l.$slots.body ? (i(), s("div", we, [
386
+ e.title || l.$slots.title ? (i(), s("h5", Ne, [
387
387
  V(l.$slots, "title", {}, () => [
388
- w(b(e.title), 1)
388
+ B(b(e.title), 1)
389
389
  ])
390
390
  ])) : v("", !0),
391
- e.body || l.$slots.body ? (i(), n("p", we, [
391
+ e.body || l.$slots.body ? (i(), s("p", Te, [
392
392
  V(l.$slots, "body", {}, () => [
393
- w(b(e.body), 1)
393
+ B(b(e.body), 1)
394
394
  ])
395
395
  ])) : v("", !0),
396
396
  V(l.$slots, "default")
397
397
  ])) : v("", !0),
398
- e.footer || l.$slots.footer ? (i(), n("div", Be, [
398
+ e.footer || l.$slots.footer ? (i(), s("div", Me, [
399
399
  V(l.$slots, "footer", {}, () => [
400
- w(b(e.footer), 1)
400
+ B(b(e.footer), 1)
401
401
  ])
402
402
  ])) : v("", !0),
403
- e.imgSrc && e.imgBottom ? (i(), n("img", {
403
+ e.imgSrc && e.imgBottom ? (i(), s("img", {
404
404
  key: 4,
405
405
  src: e.imgSrc,
406
406
  alt: e.imgAlt,
407
407
  class: "card-img-bottom"
408
- }, null, 8, Ne)) : v("", !0)
408
+ }, null, 8, qe)) : v("", !0)
409
409
  ]),
410
410
  _: 3
411
411
  }, 8, ["class"]));
412
412
  }
413
- }), Me = ["aria-label"], qe = { class: "breadcrumb" }, Pe = ["aria-current"], Fe = /* @__PURE__ */ C({
413
+ }), Fe = ["aria-label"], Le = { class: "breadcrumb" }, ze = ["aria-current"], je = /* @__PURE__ */ C({
414
414
  __name: "VibeBreadcrumb",
415
415
  props: {
416
416
  ariaLabel: { type: String, default: "breadcrumb" },
@@ -418,36 +418,36 @@ const re = /* @__PURE__ */ C({
418
418
  },
419
419
  emits: ["item-click", "component-error"],
420
420
  setup(e, { emit: f }) {
421
- const t = f, a = (l, o, s) => {
422
- l.active || t("item-click", { item: l, index: o, event: s });
421
+ const t = f, a = (l, r, n) => {
422
+ l.active || t("item-click", { item: l, index: r, event: n });
423
423
  };
424
- return (l, o) => (i(), n("nav", { "aria-label": e.ariaLabel }, [
425
- h("ol", qe, [
426
- (i(!0), n(F, null, z(e.items, (s, u) => (i(), n("li", {
427
- key: u,
428
- class: g(["breadcrumb-item", { active: s.active }]),
429
- "aria-current": s.active ? "page" : void 0
424
+ return (l, r) => (i(), s("nav", { "aria-label": e.ariaLabel }, [
425
+ h("ol", Le, [
426
+ (i(!0), s(F, null, z(e.items, (n, o) => (i(), s("li", {
427
+ key: o,
428
+ class: g(["breadcrumb-item", { active: n.active }]),
429
+ "aria-current": n.active ? "page" : void 0
430
430
  }, [
431
- (i(), M(q(s.href ? "a" : s.to ? "router-link" : "span"), {
432
- href: s.href,
433
- to: s.to,
434
- onClick: (d) => a(s, u, d)
431
+ (i(), M(q(n.href ? "a" : n.to ? "router-link" : "span"), {
432
+ href: n.href,
433
+ to: n.to,
434
+ onClick: (d) => a(n, o, d)
435
435
  }, {
436
436
  default: P(() => [
437
437
  V(l.$slots, "item", {
438
- item: s,
439
- index: u
438
+ item: n,
439
+ index: o
440
440
  }, () => [
441
- w(b(s.text), 1)
441
+ B(b(n.text), 1)
442
442
  ])
443
443
  ]),
444
444
  _: 2
445
445
  }, 1032, ["href", "to", "onClick"]))
446
- ], 10, Pe))), 128))
446
+ ], 10, ze))), 128))
447
447
  ])
448
- ], 8, Me));
448
+ ], 8, Fe));
449
449
  }
450
- }), Le = /* @__PURE__ */ C({
450
+ }), Ae = /* @__PURE__ */ C({
451
451
  __name: "VibeNav",
452
452
  props: {
453
453
  tabs: { type: Boolean, default: !1 },
@@ -463,34 +463,34 @@ const re = /* @__PURE__ */ C({
463
463
  const t = e, a = f, l = y(() => {
464
464
  const d = ["nav"];
465
465
  return t.tabs && d.push("nav-tabs"), t.pills && d.push("nav-pills"), t.fill && d.push("nav-fill"), t.justified && d.push("nav-justified"), t.vertical && d.push("flex-column"), d.join(" ");
466
- }), o = (d) => {
467
- const r = ["nav-link"];
468
- return d.active && r.push("active"), d.disabled && r.push("disabled"), r.join(" ");
469
- }, s = (d) => d.href ? "a" : d.to ? "router-link" : "a", u = (d, r, c) => {
470
- d.disabled || a("item-click", { item: d, index: r, event: c });
466
+ }), r = (d) => {
467
+ const u = ["nav-link"];
468
+ return d.active && u.push("active"), d.disabled && u.push("disabled"), u.join(" ");
469
+ }, n = (d) => d.href ? "a" : d.to ? "router-link" : "a", o = (d, u, c) => {
470
+ d.disabled || a("item-click", { item: d, index: u, event: c });
471
471
  };
472
- return (d, r) => (i(), M(q(e.tag), {
472
+ return (d, u) => (i(), M(q(e.tag), {
473
473
  class: g(l.value)
474
474
  }, {
475
475
  default: P(() => [
476
- (i(!0), n(F, null, z(e.items, (c, m) => (i(), n("li", {
476
+ (i(!0), s(F, null, z(e.items, (c, m) => (i(), s("li", {
477
477
  key: m,
478
478
  class: "nav-item"
479
479
  }, [
480
- (i(), M(q(s(c)), {
481
- class: g(o(c)),
480
+ (i(), M(q(n(c)), {
481
+ class: g(r(c)),
482
482
  href: c.href,
483
483
  to: c.to,
484
484
  "aria-current": c.active ? "page" : void 0,
485
485
  "aria-disabled": c.disabled,
486
- onClick: (p) => u(c, m, p)
486
+ onClick: (p) => o(c, m, p)
487
487
  }, {
488
488
  default: P(() => [
489
489
  V(d.$slots, "item", {
490
490
  item: c,
491
491
  index: m
492
492
  }, () => [
493
- w(b(c.text), 1)
493
+ B(b(c.text), 1)
494
494
  ])
495
495
  ]),
496
496
  _: 2
@@ -500,7 +500,7 @@ const re = /* @__PURE__ */ C({
500
500
  _: 3
501
501
  }, 8, ["class"]));
502
502
  }
503
- }), ze = /* @__PURE__ */ C({
503
+ }), Ie = /* @__PURE__ */ C({
504
504
  __name: "VibeNavbar",
505
505
  props: {
506
506
  variant: { type: String, default: "light" },
@@ -511,20 +511,24 @@ const re = /* @__PURE__ */ C({
511
511
  },
512
512
  emits: ["component-error"],
513
513
  setup(e, { emit: f }) {
514
- const t = e, a = y(() => {
514
+ const t = e, a = oe({});
515
+ de("vibeNavbarCollapse", { collapseStates: a, toggleCollapse: (o) => {
516
+ a[o] = !a[o];
517
+ } });
518
+ const r = y(() => {
515
519
  const o = ["navbar"];
516
- return t.expand === !0 ? o.push("navbar-expand") : typeof t.expand == "string" && o.push(`navbar-expand-${t.expand}`), t.variant === "dark" || t.variant === "light" ? o.push(`navbar-${t.variant}`) : o.push(`bg-${t.variant}`), t.position && o.push(t.position), o.join(" ");
517
- }), l = y(() => {
520
+ return t.expand === !0 ? o.push("navbar-expand") : typeof t.expand == "string" && o.push(`navbar-expand-${t.expand}`), t.variant === "dark" || t.variant === "light" ? o.push(`navbar-${t.variant}`, `bg-${t.variant}`) : o.push(`bg-${t.variant}`), t.position && o.push(t.position), o.join(" ");
521
+ }), n = y(() => {
518
522
  if (t.container !== !1)
519
523
  return t.container === !0 ? "container-fluid" : `container-${t.container}`;
520
524
  });
521
- return (o, s) => (i(), M(q(e.tag), {
522
- class: g(a.value)
525
+ return (o, d) => (i(), M(q(e.tag), {
526
+ class: g(r.value)
523
527
  }, {
524
528
  default: P(() => [
525
- l.value ? (i(), n("div", {
529
+ n.value ? (i(), s("div", {
526
530
  key: 0,
527
- class: g(l.value)
531
+ class: g(n.value)
528
532
  }, [
529
533
  V(o.$slots, "default")
530
534
  ], 2)) : V(o.$slots, "default", { key: 1 })
@@ -532,7 +536,7 @@ const re = /* @__PURE__ */ C({
532
536
  _: 3
533
537
  }, 8, ["class"]));
534
538
  }
535
- }), Ae = /* @__PURE__ */ C({
539
+ }), Oe = /* @__PURE__ */ C({
536
540
  __name: "VibeNavbarBrand",
537
541
  props: {
538
542
  href: { type: String, default: void 0 },
@@ -541,7 +545,7 @@ const re = /* @__PURE__ */ C({
541
545
  emits: ["component-error"],
542
546
  setup(e, { emit: f }) {
543
547
  const t = e, a = t.href ? "a" : t.to ? "router-link" : "span";
544
- return (l, o) => (i(), M(q(se(a)), {
548
+ return (l, r) => (i(), M(q(re(a)), {
545
549
  class: "navbar-brand",
546
550
  href: e.href,
547
551
  to: e.to
@@ -552,7 +556,7 @@ const re = /* @__PURE__ */ C({
552
556
  _: 3
553
557
  }, 8, ["href", "to"]));
554
558
  }
555
- }), je = ["data-bs-target", "aria-controls", "aria-label"], Ie = /* @__PURE__ */ C({
559
+ }), Ee = ["aria-controls", "aria-expanded", "aria-label"], De = /* @__PURE__ */ C({
556
560
  __name: "VibeNavbarToggle",
557
561
  props: {
558
562
  target: { type: String, required: !0 },
@@ -560,19 +564,21 @@ const re = /* @__PURE__ */ C({
560
564
  },
561
565
  emits: ["component-error"],
562
566
  setup(e, { emit: f }) {
563
- return (t, a) => (i(), n("button", {
567
+ const t = e, a = Z("vibeNavbarCollapse", null), l = y(() => (a == null ? void 0 : a.collapseStates[t.target]) ?? !1), r = () => {
568
+ a && a.toggleCollapse(t.target);
569
+ };
570
+ return (n, o) => (i(), s("button", {
564
571
  class: "navbar-toggler",
565
572
  type: "button",
566
- "data-bs-toggle": "collapse",
567
- "data-bs-target": `#${e.target}`,
568
573
  "aria-controls": e.target,
569
- "aria-expanded": "false",
570
- "aria-label": e.ariaLabel
571
- }, [...a[0] || (a[0] = [
574
+ "aria-expanded": l.value,
575
+ "aria-label": e.ariaLabel,
576
+ onClick: r
577
+ }, [...o[0] || (o[0] = [
572
578
  h("span", { class: "navbar-toggler-icon" }, null, -1)
573
- ])], 8, je));
579
+ ])], 8, Ee));
574
580
  }
575
- }), Oe = /* @__PURE__ */ C({
581
+ }), Re = /* @__PURE__ */ C({
576
582
  __name: "VibeNavbarNav",
577
583
  props: {
578
584
  tag: { type: String, default: "ul" },
@@ -580,16 +586,16 @@ const re = /* @__PURE__ */ C({
580
586
  },
581
587
  emits: ["item-click", "component-error"],
582
588
  setup(e, { emit: f }) {
583
- const t = f, a = (s) => {
584
- const u = ["nav-link"];
585
- return s.active && u.push("active"), s.disabled && u.push("disabled"), u.join(" ");
586
- }, l = (s) => s.href ? "a" : s.to ? "router-link" : "a", o = (s, u, d) => {
587
- s.disabled || t("item-click", { item: s, index: u, event: d });
589
+ const t = f, a = (n) => {
590
+ const o = ["nav-link"];
591
+ return n.active && o.push("active"), n.disabled && o.push("disabled"), o.join(" ");
592
+ }, l = (n) => n.href ? "a" : n.to ? "router-link" : "a", r = (n, o, d) => {
593
+ n.disabled || t("item-click", { item: n, index: o, event: d });
588
594
  };
589
- return (s, u) => (i(), M(q(e.tag), { class: "navbar-nav" }, {
595
+ return (n, o) => (i(), M(q(e.tag), { class: "navbar-nav" }, {
590
596
  default: P(() => [
591
- e.items && e.items.length > 0 ? (i(!0), n(F, { key: 0 }, z(e.items, (d, r) => (i(), n("li", {
592
- key: r,
597
+ e.items && e.items.length > 0 ? (i(!0), s(F, { key: 0 }, z(e.items, (d, u) => (i(), s("li", {
598
+ key: u,
593
599
  class: "nav-item"
594
600
  }, [
595
601
  (i(), M(q(l(d)), {
@@ -598,24 +604,24 @@ const re = /* @__PURE__ */ C({
598
604
  to: d.to,
599
605
  "aria-current": d.active ? "page" : void 0,
600
606
  "aria-disabled": d.disabled,
601
- onClick: (c) => o(d, r, c)
607
+ onClick: (c) => r(d, u, c)
602
608
  }, {
603
609
  default: P(() => [
604
- V(s.$slots, "item", {
610
+ V(n.$slots, "item", {
605
611
  item: d,
606
- index: r
612
+ index: u
607
613
  }, () => [
608
- w(b(d.text), 1)
614
+ B(b(d.text), 1)
609
615
  ])
610
616
  ]),
611
617
  _: 2
612
618
  }, 1032, ["class", "href", "to", "aria-current", "aria-disabled", "onClick"]))
613
- ]))), 128)) : V(s.$slots, "default", { key: 1 })
619
+ ]))), 128)) : V(n.$slots, "default", { key: 1 })
614
620
  ]),
615
621
  _: 3
616
622
  }));
617
623
  }
618
- }), Ee = ["aria-label"], De = ["disabled", "aria-disabled"], Re = ["aria-current", "onClick"], Xe = ["disabled", "aria-disabled"], Ye = /* @__PURE__ */ C({
624
+ }), Xe = ["aria-label"], Ye = ["disabled", "aria-disabled"], Ge = ["aria-current", "onClick"], He = ["disabled", "aria-disabled"], Ke = /* @__PURE__ */ C({
619
625
  __name: "VibePagination",
620
626
  props: {
621
627
  size: { type: String, default: void 0 },
@@ -629,32 +635,32 @@ const re = /* @__PURE__ */ C({
629
635
  emits: ["update:currentPage", "page-click", "component-error"],
630
636
  setup(e, { emit: f }) {
631
637
  const t = e, a = f, l = y(() => {
632
- const r = ["pagination"];
633
- return t.size && r.push(`pagination-${t.size}`), r.join(" ");
634
- }), o = y(() => Array.from({ length: t.totalPages }, (r, c) => c + 1)), s = (r) => {
635
- r >= 1 && r <= t.totalPages && (a("update:currentPage", r), a("page-click", r));
636
- }, u = y(() => t.currentPage === 1), d = y(() => t.currentPage === t.totalPages);
637
- return (r, c) => (i(), n("nav", { "aria-label": e.ariaLabel }, [
638
+ const u = ["pagination"];
639
+ return t.size && u.push(`pagination-${t.size}`), u.join(" ");
640
+ }), r = y(() => Array.from({ length: t.totalPages }, (u, c) => c + 1)), n = (u) => {
641
+ u >= 1 && u <= t.totalPages && (a("update:currentPage", u), a("page-click", u));
642
+ }, o = y(() => t.currentPage === 1), d = y(() => t.currentPage === t.totalPages);
643
+ return (u, c) => (i(), s("nav", { "aria-label": e.ariaLabel }, [
638
644
  h("ul", {
639
645
  class: g(l.value)
640
646
  }, [
641
- e.showPrevNext ? (i(), n("li", {
647
+ e.showPrevNext ? (i(), s("li", {
642
648
  key: 0,
643
- class: g(["page-item", { disabled: u.value }])
649
+ class: g(["page-item", { disabled: o.value }])
644
650
  }, [
645
651
  h("button", {
646
652
  class: "page-link",
647
653
  type: "button",
648
- disabled: u.value,
649
- "aria-disabled": u.value,
650
- onClick: c[0] || (c[0] = (m) => s(e.currentPage - 1))
654
+ disabled: o.value,
655
+ "aria-disabled": o.value,
656
+ onClick: c[0] || (c[0] = (m) => n(e.currentPage - 1))
651
657
  }, [
652
- V(r.$slots, "prev", { disabled: u.value }, () => [
653
- w(b(e.prevText), 1)
658
+ V(u.$slots, "prev", { disabled: o.value }, () => [
659
+ B(b(e.prevText), 1)
654
660
  ])
655
- ], 8, De)
661
+ ], 8, Ye)
656
662
  ], 2)) : v("", !0),
657
- (i(!0), n(F, null, z(o.value, (m) => (i(), n("li", {
663
+ (i(!0), s(F, null, z(r.value, (m) => (i(), s("li", {
658
664
  key: m,
659
665
  class: g(["page-item", { active: m === e.currentPage }])
660
666
  }, [
@@ -662,17 +668,17 @@ const re = /* @__PURE__ */ C({
662
668
  class: "page-link",
663
669
  type: "button",
664
670
  "aria-current": m === e.currentPage ? "page" : void 0,
665
- onClick: (p) => s(m)
671
+ onClick: (p) => n(m)
666
672
  }, [
667
- V(r.$slots, "page", {
673
+ V(u.$slots, "page", {
668
674
  page: m,
669
675
  active: m === e.currentPage
670
676
  }, () => [
671
- w(b(m), 1)
677
+ B(b(m), 1)
672
678
  ])
673
- ], 8, Re)
679
+ ], 8, Ge)
674
680
  ], 2))), 128)),
675
- e.showPrevNext ? (i(), n("li", {
681
+ e.showPrevNext ? (i(), s("li", {
676
682
  key: 1,
677
683
  class: g(["page-item", { disabled: d.value }])
678
684
  }, [
@@ -681,17 +687,17 @@ const re = /* @__PURE__ */ C({
681
687
  type: "button",
682
688
  disabled: d.value,
683
689
  "aria-disabled": d.value,
684
- onClick: c[1] || (c[1] = (m) => s(e.currentPage + 1))
690
+ onClick: c[1] || (c[1] = (m) => n(e.currentPage + 1))
685
691
  }, [
686
- V(r.$slots, "next", { disabled: d.value }, () => [
687
- w(b(e.nextText), 1)
692
+ V(u.$slots, "next", { disabled: d.value }, () => [
693
+ B(b(e.nextText), 1)
688
694
  ])
689
- ], 8, Xe)
695
+ ], 8, He)
690
696
  ], 2)) : v("", !0)
691
697
  ], 2)
692
- ], 8, Ee));
698
+ ], 8, Xe));
693
699
  }
694
- }), Ge = ["id", "aria-labelledby"], He = /* @__PURE__ */ C({
700
+ }), Ue = ["id", "aria-labelledby"], Qe = /* @__PURE__ */ C({
695
701
  __name: "VibeTabContent",
696
702
  props: {
697
703
  id: { type: String, default: void 0 },
@@ -702,34 +708,34 @@ const re = /* @__PURE__ */ C({
702
708
  emits: ["component-error"],
703
709
  setup(e, { emit: f }) {
704
710
  const t = e, a = (l) => {
705
- const o = ["tab-pane"];
706
- return t.fade && o.push("fade"), l.active && o.push("show", "active"), o.join(" ");
711
+ const r = ["tab-pane"];
712
+ return t.fade && r.push("fade"), l.active && r.push("show", "active"), r.join(" ");
707
713
  };
708
- return (l, o) => (i(), M(q(e.tag), {
714
+ return (l, r) => (i(), M(q(e.tag), {
709
715
  id: e.id,
710
716
  class: "tab-content"
711
717
  }, {
712
718
  default: P(() => [
713
- (i(!0), n(F, null, z(e.panes, (s, u) => (i(), n("div", {
714
- key: s.id,
715
- id: s.id,
716
- class: g(a(s)),
719
+ (i(!0), s(F, null, z(e.panes, (n, o) => (i(), s("div", {
720
+ key: n.id,
721
+ id: n.id,
722
+ class: g(a(n)),
717
723
  role: "tabpanel",
718
- "aria-labelledby": `${s.id}-tab`,
724
+ "aria-labelledby": `${n.id}-tab`,
719
725
  tabindex: "0"
720
726
  }, [
721
727
  V(l.$slots, "pane", {
722
- pane: s,
723
- index: u
728
+ pane: n,
729
+ index: o
724
730
  }, () => [
725
- w(b(s.content), 1)
731
+ B(b(n.content), 1)
726
732
  ])
727
- ], 10, Ge))), 128))
733
+ ], 10, Ue))), 128))
728
734
  ]),
729
735
  _: 3
730
736
  }, 8, ["id"]));
731
737
  }
732
- }), Ke = /* @__PURE__ */ C({
738
+ }), We = /* @__PURE__ */ C({
733
739
  __name: "VibeListGroup",
734
740
  props: {
735
741
  flush: { type: Boolean, default: !1 },
@@ -743,31 +749,31 @@ const re = /* @__PURE__ */ C({
743
749
  const t = e, a = f, l = y(() => {
744
750
  const d = ["list-group"];
745
751
  return t.flush && d.push("list-group-flush"), t.numbered && d.push("list-group-numbered"), t.horizontal === !0 ? d.push("list-group-horizontal") : typeof t.horizontal == "string" && d.push(`list-group-horizontal-${t.horizontal}`), d.join(" ");
746
- }), o = (d) => d.href ? "a" : d.to ? "router-link" : "li", s = (d) => {
747
- const r = ["list-group-item"];
748
- return d.active && r.push("active"), d.disabled && r.push("disabled"), d.variant && r.push(`list-group-item-${d.variant}`), r.join(" ");
749
- }, u = (d, r, c) => {
750
- d.disabled || a("item-click", { item: d, index: r, event: c });
752
+ }), r = (d) => d.href ? "a" : d.to ? "router-link" : "li", n = (d) => {
753
+ const u = ["list-group-item"];
754
+ return d.active && u.push("active"), d.disabled && u.push("disabled"), d.variant && u.push(`list-group-item-${d.variant}`), u.join(" ");
755
+ }, o = (d, u, c) => {
756
+ d.disabled || a("item-click", { item: d, index: u, event: c });
751
757
  };
752
- return (d, r) => (i(), M(q(e.tag), {
758
+ return (d, u) => (i(), M(q(e.tag), {
753
759
  class: g(l.value)
754
760
  }, {
755
761
  default: P(() => [
756
- (i(!0), n(F, null, z(e.items, (c, m) => (i(), M(q(o(c)), {
762
+ (i(!0), s(F, null, z(e.items, (c, m) => (i(), M(q(r(c)), {
757
763
  key: m,
758
- class: g(s(c)),
764
+ class: g(n(c)),
759
765
  href: c.href,
760
766
  to: c.to,
761
767
  "aria-disabled": c.disabled,
762
768
  "aria-current": c.active,
763
- onClick: (p) => u(c, m, p)
769
+ onClick: (p) => o(c, m, p)
764
770
  }, {
765
771
  default: P(() => [
766
772
  V(d.$slots, "item", {
767
773
  item: c,
768
774
  index: m
769
775
  }, () => [
770
- w(b(c.text), 1)
776
+ B(b(c.text), 1)
771
777
  ])
772
778
  ]),
773
779
  _: 2
@@ -776,7 +782,7 @@ const re = /* @__PURE__ */ C({
776
782
  _: 3
777
783
  }, 8, ["class"]));
778
784
  }
779
- }), Ue = ["aria-valuenow", "aria-valuemax"], Qe = /* @__PURE__ */ C({
785
+ }), Je = ["aria-valuenow", "aria-valuemax"], Ze = /* @__PURE__ */ C({
780
786
  __name: "VibeProgress",
781
787
  props: {
782
788
  height: { type: String, default: void 0 },
@@ -787,36 +793,36 @@ const re = /* @__PURE__ */ C({
787
793
  const t = e, a = y(() => {
788
794
  if (t.height)
789
795
  return { height: t.height };
790
- }), l = (u) => {
796
+ }), l = (o) => {
791
797
  const d = ["progress-bar"];
792
- return u.variant && d.push(`bg-${u.variant}`), (u.striped || u.animated) && d.push("progress-bar-striped"), u.animated && d.push("progress-bar-animated"), d.join(" ");
793
- }, o = (u) => {
794
- const d = u.max || 100;
795
- return { width: `${Math.min(100, Math.max(0, u.value / d * 100))}%` };
796
- }, s = (u) => u.label ? u.label : u.showValue ? `${u.value}%` : "";
797
- return (u, d) => (i(), n("div", {
798
+ return o.variant && d.push(`bg-${o.variant}`), (o.striped || o.animated) && d.push("progress-bar-striped"), o.animated && d.push("progress-bar-animated"), d.join(" ");
799
+ }, r = (o) => {
800
+ const d = o.max || 100;
801
+ return { width: `${Math.min(100, Math.max(0, o.value / d * 100))}%` };
802
+ }, n = (o) => o.label ? o.label : o.showValue ? `${o.value}%` : "";
803
+ return (o, d) => (i(), s("div", {
798
804
  class: "progress",
799
805
  style: D(a.value)
800
806
  }, [
801
- (i(!0), n(F, null, z(e.bars, (r, c) => (i(), n("div", {
807
+ (i(!0), s(F, null, z(e.bars, (u, c) => (i(), s("div", {
802
808
  key: c,
803
- class: g(l(r)),
804
- style: D(o(r)),
809
+ class: g(l(u)),
810
+ style: D(r(u)),
805
811
  role: "progressbar",
806
- "aria-valuenow": r.value,
812
+ "aria-valuenow": u.value,
807
813
  "aria-valuemin": 0,
808
- "aria-valuemax": r.max || 100
814
+ "aria-valuemax": u.max || 100
809
815
  }, [
810
- V(u.$slots, "label", {
811
- bar: r,
816
+ V(o.$slots, "label", {
817
+ bar: u,
812
818
  index: c
813
819
  }, () => [
814
- w(b(s(r)), 1)
820
+ B(b(n(u)), 1)
815
821
  ])
816
- ], 14, Ue))), 128))
822
+ ], 14, Je))), 128))
817
823
  ], 4));
818
824
  }
819
- }), We = ["id"], Je = { class: "accordion-header" }, Ze = ["data-bs-target", "aria-expanded", "aria-controls", "onClick"], _e = ["id", "data-bs-parent"], et = { class: "accordion-body" }, tt = /* @__PURE__ */ C({
825
+ }), _e = ["id"], et = { class: "accordion-header" }, tt = ["data-bs-target", "aria-expanded", "aria-controls", "onClick"], at = ["id", "data-bs-parent"], lt = { class: "accordion-body" }, it = /* @__PURE__ */ C({
820
826
  __name: "VibeAccordion",
821
827
  props: {
822
828
  id: { type: String, required: !0 },
@@ -825,73 +831,74 @@ const re = /* @__PURE__ */ C({
825
831
  },
826
832
  emits: ["item-click", "component-error"],
827
833
  setup(e, { emit: f }) {
828
- const t = f, a = (l, o) => {
829
- t("item-click", { item: l, index: o });
834
+ const t = f, a = (l, r) => {
835
+ t("item-click", { item: l, index: r });
830
836
  };
831
- return (l, o) => (i(), n("div", {
837
+ return (l, r) => (i(), s("div", {
832
838
  id: e.id,
833
839
  class: g(["accordion", { "accordion-flush": e.flush }])
834
840
  }, [
835
- (i(!0), n(F, null, z(e.items, (s, u) => (i(), n("div", {
836
- key: s.id,
841
+ (i(!0), s(F, null, z(e.items, (n, o) => (i(), s("div", {
842
+ key: n.id,
837
843
  class: "accordion-item"
838
844
  }, [
839
- h("h2", Je, [
845
+ h("h2", et, [
840
846
  h("button", {
841
- class: g(["accordion-button", { collapsed: !s.show }]),
847
+ class: g(["accordion-button", { collapsed: !n.show }]),
842
848
  type: "button",
843
849
  "data-bs-toggle": "collapse",
844
- "data-bs-target": `#${s.id}`,
845
- "aria-expanded": s.show,
846
- "aria-controls": s.id,
847
- onClick: (d) => a(s, u)
850
+ "data-bs-target": `#${n.id}`,
851
+ "aria-expanded": n.show,
852
+ "aria-controls": n.id,
853
+ onClick: (d) => a(n, o)
848
854
  }, [
849
855
  V(l.$slots, "title", {
850
- item: s,
851
- index: u
856
+ item: n,
857
+ index: o
852
858
  }, () => [
853
- w(b(s.title), 1)
859
+ B(b(n.title), 1)
854
860
  ])
855
- ], 10, Ze)
861
+ ], 10, tt)
856
862
  ]),
857
863
  h("div", {
858
- id: s.id,
859
- class: g(["accordion-collapse", "collapse", { show: s.show }]),
864
+ id: n.id,
865
+ class: g(["accordion-collapse", "collapse", { show: n.show }]),
860
866
  "data-bs-parent": `#${e.id}`
861
867
  }, [
862
- h("div", et, [
868
+ h("div", lt, [
863
869
  V(l.$slots, "content", {
864
- item: s,
865
- index: u
870
+ item: n,
871
+ index: o
866
872
  }, () => [
867
- w(b(s.content), 1)
873
+ B(b(n.content), 1)
868
874
  ])
869
875
  ])
870
- ], 10, _e)
876
+ ], 10, at)
871
877
  ]))), 128))
872
- ], 10, We));
878
+ ], 10, _e));
873
879
  }
874
- }), at = /* @__PURE__ */ C({
880
+ }), nt = /* @__PURE__ */ C({
875
881
  __name: "VibeCollapse",
876
882
  props: {
877
883
  id: { type: String, required: !0 },
878
884
  modelValue: { type: Boolean, default: !1 },
879
885
  tag: { type: String, default: "div" },
880
- horizontal: { type: Boolean, default: !1 }
886
+ horizontal: { type: Boolean, default: !1 },
887
+ isNav: { type: Boolean, default: !1 }
881
888
  },
882
889
  emits: ["update:modelValue", "show", "shown", "hide", "hidden", "component-error"],
883
890
  setup(e, { emit: f }) {
884
- const t = e, a = T(t.modelValue);
891
+ const t = e, a = Z("vibeNavbarCollapse", null), l = T(t.modelValue);
885
892
  E(() => t.modelValue, (o) => {
886
- a.value = o;
893
+ l.value = o;
887
894
  });
888
- const l = y(() => {
895
+ const r = y(() => a && t.id in a.collapseStates ? a.collapseStates[t.id] : l.value), n = y(() => {
889
896
  const o = ["collapse"];
890
- return t.horizontal && o.push("collapse-horizontal"), a.value && o.push("show"), o.join(" ");
897
+ return t.isNav && o.push("navbar-collapse"), t.horizontal && o.push("collapse-horizontal"), r.value && o.push("show"), o.join(" ");
891
898
  });
892
- return (o, s) => (i(), M(q(e.tag), {
899
+ return (o, d) => (i(), M(q(e.tag), {
893
900
  id: e.id,
894
- class: g(l.value)
901
+ class: g(n.value)
895
902
  }, {
896
903
  default: P(() => [
897
904
  V(o.$slots, "default")
@@ -899,7 +906,7 @@ const re = /* @__PURE__ */ C({
899
906
  _: 3
900
907
  }, 8, ["id", "class"]));
901
908
  }
902
- }), lt = ["id"], it = ["aria-labelledby"], nt = { key: 0 }, st = { key: 1 }, ot = { class: "dropdown-header" }, dt = { key: 2 }, rt = /* @__PURE__ */ C({
909
+ }), st = ["id"], ot = ["aria-labelledby"], dt = { key: 0 }, rt = { key: 1 }, ut = { class: "dropdown-header" }, ct = { key: 2 }, ft = /* @__PURE__ */ C({
903
910
  __name: "VibeDropdown",
904
911
  props: {
905
912
  id: { type: String, required: !0 },
@@ -913,79 +920,79 @@ const re = /* @__PURE__ */ C({
913
920
  },
914
921
  emits: ["item-click", "component-error"],
915
922
  setup(e, { emit: f }) {
916
- const t = e, a = f, l = y(() => t.direction === "up" ? "dropup" : t.direction === "end" ? "dropend" : t.direction === "start" ? "dropstart" : "dropdown"), o = y(() => {
917
- const r = ["btn", `btn-${t.variant}`];
918
- return t.size && r.push(`btn-${t.size}`), r.join(" ");
919
- }), s = y(() => {
920
- const r = ["dropdown-menu"];
921
- return t.menuEnd && r.push("dropdown-menu-end"), r.join(" ");
922
- }), u = (r) => {
923
+ const t = e, a = f, l = y(() => t.direction === "up" ? "dropup" : t.direction === "end" ? "dropend" : t.direction === "start" ? "dropstart" : "dropdown"), r = y(() => {
924
+ const u = ["btn", `btn-${t.variant}`];
925
+ return t.size && u.push(`btn-${t.size}`), u.join(" ");
926
+ }), n = y(() => {
927
+ const u = ["dropdown-menu"];
928
+ return t.menuEnd && u.push("dropdown-menu-end"), u.join(" ");
929
+ }), o = (u) => {
923
930
  const c = ["dropdown-item"];
924
- return r.active && c.push("active"), r.disabled && c.push("disabled"), c.join(" ");
925
- }, d = (r, c, m) => {
926
- !r.disabled && !r.divider && !r.header && a("item-click", { item: r, index: c, event: m });
931
+ return u.active && c.push("active"), u.disabled && c.push("disabled"), c.join(" ");
932
+ }, d = (u, c, m) => {
933
+ !u.disabled && !u.divider && !u.header && a("item-click", { item: u, index: c, event: m });
927
934
  };
928
- return (r, c) => (i(), n("div", {
935
+ return (u, c) => (i(), s("div", {
929
936
  class: g(l.value)
930
937
  }, [
931
938
  h("button", {
932
939
  id: e.id,
933
- class: g([o.value, "dropdown-toggle"]),
940
+ class: g([r.value, "dropdown-toggle"]),
934
941
  type: "button",
935
942
  "data-bs-toggle": "dropdown",
936
943
  "aria-expanded": "false"
937
944
  }, [
938
- V(r.$slots, "button", {}, () => [
939
- w(b(e.text), 1)
945
+ V(u.$slots, "button", {}, () => [
946
+ B(b(e.text), 1)
940
947
  ])
941
- ], 10, lt),
948
+ ], 10, st),
942
949
  h("ul", {
943
- class: g(s.value),
950
+ class: g(n.value),
944
951
  "aria-labelledby": e.id
945
952
  }, [
946
- (i(!0), n(F, null, z(e.items, (m, p) => (i(), n(F, { key: p }, [
947
- m.divider ? (i(), n("li", nt, [...c[0] || (c[0] = [
953
+ (i(!0), s(F, null, z(e.items, (m, p) => (i(), s(F, { key: p }, [
954
+ m.divider ? (i(), s("li", dt, [...c[0] || (c[0] = [
948
955
  h("hr", { class: "dropdown-divider" }, null, -1)
949
- ])])) : m.header ? (i(), n("li", st, [
950
- h("h6", ot, [
951
- V(r.$slots, "header", {
956
+ ])])) : m.header ? (i(), s("li", rt, [
957
+ h("h6", ut, [
958
+ V(u.$slots, "header", {
952
959
  item: m,
953
960
  index: p
954
961
  }, () => [
955
- w(b(m.text), 1)
962
+ B(b(m.text), 1)
956
963
  ])
957
964
  ])
958
- ])) : (i(), n("li", dt, [
965
+ ])) : (i(), s("li", ct, [
959
966
  (i(), M(q(m.href ? "a" : m.to ? "router-link" : "button"), {
960
- class: g(u(m)),
967
+ class: g(o(m)),
961
968
  href: m.href,
962
969
  to: m.to,
963
970
  type: !m.href && !m.to ? "button" : void 0,
964
971
  disabled: m.disabled,
965
- onClick: (B) => d(m, p, B)
972
+ onClick: (w) => d(m, p, w)
966
973
  }, {
967
974
  default: P(() => [
968
- V(r.$slots, "item", {
975
+ V(u.$slots, "item", {
969
976
  item: m,
970
977
  index: p
971
978
  }, () => [
972
- w(b(m.text), 1)
979
+ B(b(m.text), 1)
973
980
  ])
974
981
  ]),
975
982
  _: 2
976
983
  }, 1032, ["class", "href", "to", "type", "disabled", "onClick"]))
977
984
  ]))
978
985
  ], 64))), 128))
979
- ], 10, it)
986
+ ], 10, ot)
980
987
  ], 2));
981
988
  }
982
- }), ut = ["id", "aria-labelledby", "aria-hidden", "data-bs-backdrop", "data-bs-keyboard"], ct = { class: "modal-content" }, ft = {
989
+ }), vt = ["id", "aria-labelledby", "aria-hidden", "data-bs-backdrop", "data-bs-keyboard"], bt = { class: "modal-content" }, mt = {
983
990
  key: 0,
984
991
  class: "modal-header"
985
- }, vt = ["id"], bt = { class: "modal-body" }, mt = {
992
+ }, ht = ["id"], yt = { class: "modal-body" }, gt = {
986
993
  key: 1,
987
994
  class: "modal-footer"
988
- }, ht = /* @__PURE__ */ C({
995
+ }, pt = /* @__PURE__ */ C({
989
996
  __name: "VibeModal",
990
997
  props: {
991
998
  id: { type: String, required: !0 },
@@ -1001,70 +1008,70 @@ const re = /* @__PURE__ */ C({
1001
1008
  },
1002
1009
  emits: ["update:modelValue", "show", "shown", "hide", "hidden", "component-error"],
1003
1010
  setup(e, { emit: f }) {
1004
- const t = e, a = f, l = T(null), o = T(null), s = T(!1), u = y(() => {
1011
+ const t = e, a = f, l = T(null), r = T(null), n = T(!1), o = y(() => {
1005
1012
  const p = ["modal-dialog"];
1006
1013
  return t.size && p.push(`modal-${t.size}`), t.centered && p.push("modal-dialog-centered"), t.scrollable && p.push("modal-dialog-scrollable"), t.fullscreen === !0 ? p.push("modal-fullscreen") : typeof t.fullscreen == "string" && p.push(`modal-fullscreen-${t.fullscreen}-down`), p.join(" ");
1007
1014
  }), d = () => {
1008
- s.value = !0, a("show");
1009
- }, r = () => {
1015
+ n.value = !0, a("show");
1016
+ }, u = () => {
1010
1017
  a("shown"), a("update:modelValue", !0);
1011
1018
  }, c = () => {
1012
1019
  a("hide");
1013
1020
  }, m = () => {
1014
- s.value = !1, a("hidden"), a("update:modelValue", !1);
1021
+ n.value = !1, a("hidden"), a("update:modelValue", !1);
1015
1022
  };
1016
1023
  return G(async () => {
1017
1024
  if (l.value)
1018
1025
  try {
1019
- const B = (await import("bootstrap")).Modal;
1020
- o.value = new B(l.value, {
1026
+ const w = (await import("bootstrap")).Modal;
1027
+ r.value = new w(l.value, {
1021
1028
  backdrop: t.staticBackdrop ? "static" : !0,
1022
1029
  keyboard: !t.staticBackdrop
1023
- }), l.value.addEventListener("show.bs.modal", d), l.value.addEventListener("shown.bs.modal", r), l.value.addEventListener("hide.bs.modal", c), l.value.addEventListener("hidden.bs.modal", m), t.modelValue && o.value.show();
1030
+ }), l.value.addEventListener("show.bs.modal", d), l.value.addEventListener("shown.bs.modal", u), l.value.addEventListener("hide.bs.modal", c), l.value.addEventListener("hidden.bs.modal", m), t.modelValue && r.value.show();
1024
1031
  } catch {
1025
1032
  a("component-error", "Bootstrap JS not loaded. Modal will use data attributes only.");
1026
1033
  }
1027
1034
  }), H(() => {
1028
- l.value && (l.value.removeEventListener("show.bs.modal", d), l.value.removeEventListener("shown.bs.modal", r), l.value.removeEventListener("hide.bs.modal", c), l.value.removeEventListener("hidden.bs.modal", m)), o.value && (o.value.dispose(), o.value = null);
1035
+ l.value && (l.value.removeEventListener("show.bs.modal", d), l.value.removeEventListener("shown.bs.modal", u), l.value.removeEventListener("hide.bs.modal", c), l.value.removeEventListener("hidden.bs.modal", m)), r.value && (r.value.dispose(), r.value = null);
1029
1036
  }), E(() => t.modelValue, (p) => {
1030
- o.value && (p && !s.value ? o.value.show() : !p && s.value && o.value.hide());
1031
- }), (p, B) => (i(), n("div", {
1037
+ r.value && (p && !n.value ? r.value.show() : !p && n.value && r.value.hide());
1038
+ }), (p, w) => (i(), s("div", {
1032
1039
  ref_key: "modalRef",
1033
1040
  ref: l,
1034
1041
  id: e.id,
1035
1042
  class: "modal fade",
1036
1043
  tabindex: "-1",
1037
1044
  "aria-labelledby": `${e.id}-label`,
1038
- "aria-hidden": !s.value,
1045
+ "aria-hidden": !n.value,
1039
1046
  "data-bs-backdrop": e.staticBackdrop ? "static" : void 0,
1040
1047
  "data-bs-keyboard": !e.staticBackdrop
1041
1048
  }, [
1042
1049
  h("div", {
1043
- class: g(u.value)
1050
+ class: g(o.value)
1044
1051
  }, [
1045
- h("div", ct, [
1046
- e.hideHeader ? v("", !0) : (i(), n("div", ft, [
1052
+ h("div", bt, [
1053
+ e.hideHeader ? v("", !0) : (i(), s("div", mt, [
1047
1054
  h("h5", {
1048
1055
  id: `${e.id}-label`,
1049
1056
  class: "modal-title"
1050
1057
  }, [
1051
1058
  V(p.$slots, "header", {}, () => [
1052
- w(b(e.title), 1)
1059
+ B(b(e.title), 1)
1053
1060
  ])
1054
- ], 8, vt),
1055
- B[0] || (B[0] = h("button", {
1061
+ ], 8, ht),
1062
+ w[0] || (w[0] = h("button", {
1056
1063
  type: "button",
1057
1064
  class: "btn-close",
1058
1065
  "data-bs-dismiss": "modal",
1059
1066
  "aria-label": "Close"
1060
1067
  }, null, -1))
1061
1068
  ])),
1062
- h("div", bt, [
1069
+ h("div", yt, [
1063
1070
  V(p.$slots, "default")
1064
1071
  ]),
1065
- e.hideFooter ? v("", !0) : (i(), n("div", mt, [
1072
+ e.hideFooter ? v("", !0) : (i(), s("div", gt, [
1066
1073
  V(p.$slots, "footer", {}, () => [
1067
- B[1] || (B[1] = h("button", {
1074
+ w[1] || (w[1] = h("button", {
1068
1075
  type: "button",
1069
1076
  class: "btn btn-secondary",
1070
1077
  "data-bs-dismiss": "modal"
@@ -1073,9 +1080,9 @@ const re = /* @__PURE__ */ C({
1073
1080
  ]))
1074
1081
  ])
1075
1082
  ], 2)
1076
- ], 8, ut));
1083
+ ], 8, vt));
1077
1084
  }
1078
- }), yt = ["id", "aria-labelledby", "data-bs-backdrop", "data-bs-scroll"], gt = { class: "offcanvas-header" }, pt = ["id"], $t = { class: "offcanvas-body" }, kt = /* @__PURE__ */ C({
1085
+ }), $t = ["id", "aria-labelledby", "data-bs-backdrop", "data-bs-scroll"], kt = { class: "offcanvas-header" }, St = ["id"], Vt = { class: "offcanvas-body" }, Ct = /* @__PURE__ */ C({
1079
1086
  __name: "VibeOffcanvas",
1080
1087
  props: {
1081
1088
  id: { type: String, required: !0 },
@@ -1088,7 +1095,7 @@ const re = /* @__PURE__ */ C({
1088
1095
  emits: ["update:modelValue", "show", "shown", "hide", "hidden", "component-error"],
1089
1096
  setup(e, { emit: f }) {
1090
1097
  const t = e, a = y(() => `offcanvas offcanvas-${t.placement}`);
1091
- return (l, o) => (i(), n("div", {
1098
+ return (l, r) => (i(), s("div", {
1092
1099
  id: e.id,
1093
1100
  class: g(a.value),
1094
1101
  tabindex: "-1",
@@ -1096,31 +1103,31 @@ const re = /* @__PURE__ */ C({
1096
1103
  "data-bs-backdrop": e.backdrop === !1 ? "false" : e.backdrop === "static" ? "static" : "true",
1097
1104
  "data-bs-scroll": e.scroll
1098
1105
  }, [
1099
- h("div", gt, [
1106
+ h("div", kt, [
1100
1107
  h("h5", {
1101
1108
  id: `${e.id}-label`,
1102
1109
  class: "offcanvas-title"
1103
1110
  }, [
1104
1111
  V(l.$slots, "header", {}, () => [
1105
- w(b(e.title), 1)
1112
+ B(b(e.title), 1)
1106
1113
  ])
1107
- ], 8, pt),
1108
- o[0] || (o[0] = h("button", {
1114
+ ], 8, St),
1115
+ r[0] || (r[0] = h("button", {
1109
1116
  type: "button",
1110
1117
  class: "btn-close",
1111
1118
  "data-bs-dismiss": "offcanvas",
1112
1119
  "aria-label": "Close"
1113
1120
  }, null, -1))
1114
1121
  ]),
1115
- h("div", $t, [
1122
+ h("div", Vt, [
1116
1123
  V(l.$slots, "default")
1117
1124
  ])
1118
- ], 10, yt));
1125
+ ], 10, $t));
1119
1126
  }
1120
- }), St = ["id", "data-bs-autohide", "data-bs-delay"], Vt = {
1127
+ }), xt = ["id", "data-bs-autohide", "data-bs-delay"], Bt = {
1121
1128
  key: 0,
1122
1129
  class: "toast-header"
1123
- }, Ct = { class: "me-auto" }, xt = { class: "toast-body" }, wt = /* @__PURE__ */ C({
1130
+ }, wt = { class: "me-auto" }, Nt = { class: "toast-body" }, Tt = /* @__PURE__ */ C({
1124
1131
  __name: "VibeToast",
1125
1132
  props: {
1126
1133
  id: { type: String, default: void 0 },
@@ -1132,67 +1139,67 @@ const re = /* @__PURE__ */ C({
1132
1139
  },
1133
1140
  emits: ["update:modelValue", "show", "shown", "hide", "hidden", "component-error"],
1134
1141
  setup(e, { emit: f }) {
1135
- const t = e, a = f, l = T(null), o = T(null), s = T(!1), u = y(() => {
1142
+ const t = e, a = f, l = T(null), r = T(null), n = T(!1), o = y(() => {
1136
1143
  const p = ["toast"];
1137
1144
  return t.variant && p.push(`text-bg-${t.variant}`), p.join(" ");
1138
1145
  }), d = () => {
1139
- s.value = !0, a("show");
1140
- }, r = () => {
1146
+ n.value = !0, a("show");
1147
+ }, u = () => {
1141
1148
  a("shown"), a("update:modelValue", !0);
1142
1149
  }, c = () => {
1143
1150
  a("hide");
1144
1151
  }, m = () => {
1145
- s.value = !1, a("hidden"), a("update:modelValue", !1);
1152
+ n.value = !1, a("hidden"), a("update:modelValue", !1);
1146
1153
  };
1147
1154
  return G(async () => {
1148
1155
  if (l.value)
1149
1156
  try {
1150
- const B = (await import("bootstrap")).Toast;
1151
- o.value = new B(l.value, {
1157
+ const w = (await import("bootstrap")).Toast;
1158
+ r.value = new w(l.value, {
1152
1159
  autohide: t.autohide,
1153
1160
  delay: t.delay
1154
- }), l.value.addEventListener("show.bs.toast", d), l.value.addEventListener("shown.bs.toast", r), l.value.addEventListener("hide.bs.toast", c), l.value.addEventListener("hidden.bs.toast", m), t.modelValue && o.value.show();
1161
+ }), l.value.addEventListener("show.bs.toast", d), l.value.addEventListener("shown.bs.toast", u), l.value.addEventListener("hide.bs.toast", c), l.value.addEventListener("hidden.bs.toast", m), t.modelValue && r.value.show();
1155
1162
  } catch {
1156
1163
  a("component-error", "Bootstrap JS not loaded. Toast will use data attributes only.");
1157
1164
  }
1158
1165
  }), H(() => {
1159
- l.value && (l.value.removeEventListener("show.bs.toast", d), l.value.removeEventListener("shown.bs.toast", r), l.value.removeEventListener("hide.bs.toast", c), l.value.removeEventListener("hidden.bs.toast", m)), o.value && (o.value.dispose(), o.value = null);
1166
+ l.value && (l.value.removeEventListener("show.bs.toast", d), l.value.removeEventListener("shown.bs.toast", u), l.value.removeEventListener("hide.bs.toast", c), l.value.removeEventListener("hidden.bs.toast", m)), r.value && (r.value.dispose(), r.value = null);
1160
1167
  }), E(() => t.modelValue, (p) => {
1161
- o.value && (p && !s.value ? o.value.show() : !p && s.value && o.value.hide());
1162
- }), (p, B) => (i(), n("div", {
1168
+ r.value && (p && !n.value ? r.value.show() : !p && n.value && r.value.hide());
1169
+ }), (p, w) => (i(), s("div", {
1163
1170
  ref_key: "toastRef",
1164
1171
  ref: l,
1165
1172
  id: e.id,
1166
- class: g(u.value),
1173
+ class: g(o.value),
1167
1174
  role: "alert",
1168
1175
  "aria-live": "assertive",
1169
1176
  "aria-atomic": "true",
1170
1177
  "data-bs-autohide": e.autohide,
1171
1178
  "data-bs-delay": e.delay
1172
1179
  }, [
1173
- e.title || p.$slots.header ? (i(), n("div", Vt, [
1180
+ e.title || p.$slots.header ? (i(), s("div", Bt, [
1174
1181
  V(p.$slots, "header", {}, () => [
1175
- h("strong", Ct, b(e.title), 1)
1182
+ h("strong", wt, b(e.title), 1)
1176
1183
  ]),
1177
- B[0] || (B[0] = h("button", {
1184
+ w[0] || (w[0] = h("button", {
1178
1185
  type: "button",
1179
1186
  class: "btn-close",
1180
1187
  "data-bs-dismiss": "toast",
1181
1188
  "aria-label": "Close"
1182
1189
  }, null, -1))
1183
1190
  ])) : v("", !0),
1184
- h("div", xt, [
1191
+ h("div", Nt, [
1185
1192
  V(p.$slots, "default")
1186
1193
  ])
1187
- ], 10, St));
1194
+ ], 10, xt));
1188
1195
  }
1189
- }), Bt = ["id", "data-bs-ride", "data-bs-interval", "data-bs-keyboard", "data-bs-pause", "data-bs-wrap", "data-bs-touch"], Nt = {
1196
+ }), Mt = ["id", "data-bs-ride", "data-bs-interval", "data-bs-keyboard", "data-bs-pause", "data-bs-wrap", "data-bs-touch"], qt = {
1190
1197
  key: 0,
1191
1198
  class: "carousel-indicators"
1192
- }, Tt = ["data-bs-target", "data-bs-slide-to", "aria-current", "aria-label"], Mt = { class: "carousel-inner" }, qt = ["data-bs-interval"], Pt = ["src", "alt"], Ft = {
1199
+ }, Pt = ["data-bs-target", "data-bs-slide-to", "aria-current", "aria-label"], Ft = { class: "carousel-inner" }, Lt = ["data-bs-interval"], zt = ["src", "alt"], jt = {
1193
1200
  key: 0,
1194
1201
  class: "carousel-caption d-none d-md-block"
1195
- }, Lt = { key: 0 }, zt = { key: 1 }, At = ["data-bs-target"], jt = ["data-bs-target"], It = /* @__PURE__ */ C({
1202
+ }, At = { key: 0 }, It = { key: 1 }, Ot = ["data-bs-target"], Et = ["data-bs-target"], Dt = /* @__PURE__ */ C({
1196
1203
  __name: "VibeCarousel",
1197
1204
  props: {
1198
1205
  id: { type: String, required: !0 },
@@ -1211,11 +1218,11 @@ const re = /* @__PURE__ */ C({
1211
1218
  emits: ["slide", "slid", "component-error"],
1212
1219
  setup(e, { emit: f }) {
1213
1220
  const t = e, a = y(() => {
1214
- const o = ["carousel", "slide"];
1215
- return t.dark && o.push("carousel-dark"), t.fade && o.push("carousel-fade"), o.join(" ");
1216
- }), l = (o, s) => o.alt ? o.alt : o.caption ? o.caption : o.captionText ? o.captionText : `Carousel slide ${s + 1}`;
1221
+ const r = ["carousel", "slide"];
1222
+ return t.dark && r.push("carousel-dark"), t.fade && r.push("carousel-fade"), r.join(" ");
1223
+ }), l = (r, n) => r.alt ? r.alt : r.caption ? r.caption : r.captionText ? r.captionText : `Carousel slide ${n + 1}`;
1217
1224
  return G(() => {
1218
- }), (o, s) => (i(), n("div", {
1225
+ }), (r, n) => (i(), s("div", {
1219
1226
  id: e.id,
1220
1227
  class: g(a.value),
1221
1228
  "data-bs-ride": e.ride === !0 ? "carousel" : e.ride,
@@ -1225,68 +1232,68 @@ const re = /* @__PURE__ */ C({
1225
1232
  "data-bs-wrap": e.wrap,
1226
1233
  "data-bs-touch": e.touch
1227
1234
  }, [
1228
- e.indicators ? (i(), n("div", Nt, [
1229
- (i(!0), n(F, null, z(e.items, (u, d) => (i(), n("button", {
1230
- key: `indicator-${u.src}-${d}`,
1235
+ e.indicators ? (i(), s("div", qt, [
1236
+ (i(!0), s(F, null, z(e.items, (o, d) => (i(), s("button", {
1237
+ key: `indicator-${o.src}-${d}`,
1231
1238
  type: "button",
1232
1239
  "data-bs-target": `#${e.id}`,
1233
1240
  "data-bs-slide-to": d,
1234
- class: g({ active: u.active || d === 0 }),
1235
- "aria-current": u.active || d === 0,
1241
+ class: g({ active: o.active || d === 0 }),
1242
+ "aria-current": o.active || d === 0,
1236
1243
  "aria-label": `Slide ${d + 1}`
1237
- }, null, 10, Tt))), 128))
1244
+ }, null, 10, Pt))), 128))
1238
1245
  ])) : v("", !0),
1239
- h("div", Mt, [
1240
- (i(!0), n(F, null, z(e.items, (u, d) => (i(), n("div", {
1241
- key: `slide-${u.src}-${d}`,
1242
- class: g(["carousel-item", { active: u.active || d === 0 }]),
1243
- "data-bs-interval": u.interval
1246
+ h("div", Ft, [
1247
+ (i(!0), s(F, null, z(e.items, (o, d) => (i(), s("div", {
1248
+ key: `slide-${o.src}-${d}`,
1249
+ class: g(["carousel-item", { active: o.active || d === 0 }]),
1250
+ "data-bs-interval": o.interval
1244
1251
  }, [
1245
1252
  h("img", {
1246
- src: u.src,
1247
- alt: l(u, d),
1253
+ src: o.src,
1254
+ alt: l(o, d),
1248
1255
  class: "d-block w-100"
1249
- }, null, 8, Pt),
1250
- u.caption || u.captionText || o.$slots.caption ? (i(), n("div", Ft, [
1251
- V(o.$slots, "caption", {
1252
- item: u,
1256
+ }, null, 8, zt),
1257
+ o.caption || o.captionText || r.$slots.caption ? (i(), s("div", jt, [
1258
+ V(r.$slots, "caption", {
1259
+ item: o,
1253
1260
  index: d
1254
1261
  }, () => [
1255
- u.caption ? (i(), n("h5", Lt, b(u.caption), 1)) : v("", !0),
1256
- u.captionText ? (i(), n("p", zt, b(u.captionText), 1)) : v("", !0)
1262
+ o.caption ? (i(), s("h5", At, b(o.caption), 1)) : v("", !0),
1263
+ o.captionText ? (i(), s("p", It, b(o.captionText), 1)) : v("", !0)
1257
1264
  ])
1258
1265
  ])) : v("", !0)
1259
- ], 10, qt))), 128))
1266
+ ], 10, Lt))), 128))
1260
1267
  ]),
1261
- e.controls ? (i(), n("button", {
1268
+ e.controls ? (i(), s("button", {
1262
1269
  key: 1,
1263
1270
  class: "carousel-control-prev",
1264
1271
  type: "button",
1265
1272
  "data-bs-target": `#${e.id}`,
1266
1273
  "data-bs-slide": "prev"
1267
- }, [...s[0] || (s[0] = [
1274
+ }, [...n[0] || (n[0] = [
1268
1275
  h("span", {
1269
1276
  class: "carousel-control-prev-icon",
1270
1277
  "aria-hidden": "true"
1271
1278
  }, null, -1),
1272
1279
  h("span", { class: "visually-hidden" }, "Previous", -1)
1273
- ])], 8, At)) : v("", !0),
1274
- e.controls ? (i(), n("button", {
1280
+ ])], 8, Ot)) : v("", !0),
1281
+ e.controls ? (i(), s("button", {
1275
1282
  key: 2,
1276
1283
  class: "carousel-control-next",
1277
1284
  type: "button",
1278
1285
  "data-bs-target": `#${e.id}`,
1279
1286
  "data-bs-slide": "next"
1280
- }, [...s[1] || (s[1] = [
1287
+ }, [...n[1] || (n[1] = [
1281
1288
  h("span", {
1282
1289
  class: "carousel-control-next-icon",
1283
1290
  "aria-hidden": "true"
1284
1291
  }, null, -1),
1285
1292
  h("span", { class: "visually-hidden" }, "Next", -1)
1286
- ])], 8, jt)) : v("", !0)
1287
- ], 10, Bt));
1293
+ ])], 8, Et)) : v("", !0)
1294
+ ], 10, Mt));
1288
1295
  }
1289
- }), Ot = ["data-bs-placement", "data-bs-title", "data-bs-trigger", "data-bs-html"], Et = /* @__PURE__ */ C({
1296
+ }), Rt = ["data-bs-placement", "data-bs-title", "data-bs-trigger", "data-bs-html"], Xt = /* @__PURE__ */ C({
1290
1297
  __name: "VibeTooltip",
1291
1298
  props: {
1292
1299
  content: { type: String, required: !0 },
@@ -1296,7 +1303,7 @@ const re = /* @__PURE__ */ C({
1296
1303
  },
1297
1304
  emits: ["component-error"],
1298
1305
  setup(e, { emit: f }) {
1299
- return (t, a) => (i(), n("span", {
1306
+ return (t, a) => (i(), s("span", {
1300
1307
  "data-bs-toggle": "tooltip",
1301
1308
  "data-bs-placement": e.placement,
1302
1309
  "data-bs-title": e.content,
@@ -1304,9 +1311,9 @@ const re = /* @__PURE__ */ C({
1304
1311
  "data-bs-html": e.html
1305
1312
  }, [
1306
1313
  V(t.$slots, "default")
1307
- ], 8, Ot));
1314
+ ], 8, Rt));
1308
1315
  }
1309
- }), Dt = ["data-bs-placement", "data-bs-title", "data-bs-content", "data-bs-trigger", "data-bs-html"], Rt = /* @__PURE__ */ C({
1316
+ }), Yt = ["data-bs-placement", "data-bs-title", "data-bs-content", "data-bs-trigger", "data-bs-html"], Gt = /* @__PURE__ */ C({
1310
1317
  __name: "VibePopover",
1311
1318
  props: {
1312
1319
  title: { type: String, default: void 0 },
@@ -1317,7 +1324,7 @@ const re = /* @__PURE__ */ C({
1317
1324
  },
1318
1325
  emits: ["component-error"],
1319
1326
  setup(e, { emit: f }) {
1320
- return (t, a) => (i(), n("span", {
1327
+ return (t, a) => (i(), s("span", {
1321
1328
  "data-bs-toggle": "popover",
1322
1329
  "data-bs-placement": e.placement,
1323
1330
  "data-bs-title": e.title,
@@ -1326,9 +1333,9 @@ const re = /* @__PURE__ */ C({
1326
1333
  "data-bs-html": e.html
1327
1334
  }, [
1328
1335
  V(t.$slots, "default")
1329
- ], 8, Dt));
1336
+ ], 8, Yt));
1330
1337
  }
1331
- }), Xt = /* @__PURE__ */ C({
1338
+ }), Ht = /* @__PURE__ */ C({
1332
1339
  __name: "VibeScrollspy",
1333
1340
  props: {
1334
1341
  target: { type: String, required: !0 },
@@ -1353,7 +1360,7 @@ const re = /* @__PURE__ */ C({
1353
1360
  _: 3
1354
1361
  }, 8, ["data-bs-target", "data-bs-offset", "data-bs-method", "data-bs-smooth-scroll"]));
1355
1362
  }
1356
- }), Yt = /* @__PURE__ */ C({
1363
+ }), Kt = /* @__PURE__ */ C({
1357
1364
  __name: "VibeIcon",
1358
1365
  props: {
1359
1366
  // Icon name (e.g., 'house', 'heart-fill', 'star')
@@ -1374,63 +1381,63 @@ const re = /* @__PURE__ */ C({
1374
1381
  emits: ["click", "component-error"],
1375
1382
  setup(e, { emit: f }) {
1376
1383
  const t = e, a = f, l = y(() => {
1377
- const u = ["bi", `bi-${t.icon}`];
1378
- return t.size && (["1x", "2x", "3x", "4x", "5x"].includes(t.size) || u.push(`bi-${t.size}`)), t.customClass && u.push(t.customClass), u.join(" ");
1379
- }), o = y(() => {
1380
- const u = {};
1384
+ const o = ["bi", `bi-${t.icon}`];
1385
+ return t.size && (["1x", "2x", "3x", "4x", "5x"].includes(t.size) || o.push(`bi-${t.size}`)), t.customClass && o.push(t.customClass), o.join(" ");
1386
+ }), r = y(() => {
1387
+ const o = {};
1381
1388
  if (t.fontSize)
1382
- u.fontSize = t.fontSize;
1389
+ o.fontSize = t.fontSize;
1383
1390
  else if (t.size) {
1384
- const r = {
1391
+ const u = {
1385
1392
  "1x": "1rem",
1386
1393
  "2x": "2rem",
1387
1394
  "3x": "3rem",
1388
1395
  "4x": "4rem",
1389
1396
  "5x": "5rem"
1390
1397
  };
1391
- r[t.size] && (u.fontSize = r[t.size]);
1398
+ u[t.size] && (o.fontSize = u[t.size]);
1392
1399
  }
1393
- t.color && (u.color = t.color);
1400
+ t.color && (o.color = t.color);
1394
1401
  const d = [];
1395
- return t.flipH && d.push("scaleX(-1)"), t.flipV && d.push("scaleY(-1)"), t.rotate && d.push(`rotate(${t.rotate}deg)`), d.length > 0 && (u.transform = d.join(" "), u.display = "inline-block"), Object.keys(u).length > 0 ? u : void 0;
1396
- }), s = (u) => {
1397
- a("click", u);
1402
+ return t.flipH && d.push("scaleX(-1)"), t.flipV && d.push("scaleY(-1)"), t.rotate && d.push(`rotate(${t.rotate}deg)`), d.length > 0 && (o.transform = d.join(" "), o.display = "inline-block"), Object.keys(o).length > 0 ? o : void 0;
1403
+ }), n = (o) => {
1404
+ a("click", o);
1398
1405
  };
1399
- return (u, d) => (i(), n("i", {
1406
+ return (o, d) => (i(), s("i", {
1400
1407
  class: g(l.value),
1401
- style: D(o.value),
1408
+ style: D(r.value),
1402
1409
  "aria-hidden": !0,
1403
- onClick: s
1410
+ onClick: n
1404
1411
  }, null, 6));
1405
1412
  }
1406
- }), Gt = { class: "vibe-datatable" }, Ht = { class: "row mb-3" }, Kt = {
1413
+ }), Ut = { class: "vibe-datatable" }, Qt = { class: "row mb-3" }, Wt = {
1407
1414
  key: 0,
1408
1415
  class: "col-md-6 mb-2 mb-md-0"
1409
- }, Ut = ["placeholder"], Qt = {
1416
+ }, Jt = ["placeholder"], Zt = {
1410
1417
  key: 1,
1411
1418
  class: "col-md-6"
1412
- }, Wt = { class: "d-flex justify-content-md-end align-items-center" }, Jt = ["value"], Zt = ["onClick"], _t = {
1419
+ }, _t = { class: "d-flex justify-content-md-end align-items-center" }, ea = ["value"], ta = ["onClick"], aa = {
1413
1420
  key: 0,
1414
1421
  class: "ms-1"
1415
- }, ea = ["onClick"], ta = { key: 0 }, aa = ["colspan"], la = { class: "row" }, ia = {
1422
+ }, la = ["onClick"], ia = { key: 0 }, na = ["colspan"], sa = { class: "row" }, oa = {
1416
1423
  key: 0,
1417
1424
  class: "col-md-6 mb-2 mb-md-0"
1418
- }, na = { class: "datatable-info" }, sa = {
1425
+ }, da = { class: "datatable-info" }, ra = {
1419
1426
  key: 1,
1420
1427
  class: "col-md-6"
1421
- }, oa = { class: "pagination justify-content-md-end mb-0" }, da = {
1428
+ }, ua = { class: "pagination justify-content-md-end mb-0" }, ca = {
1422
1429
  key: 0,
1423
1430
  class: "page-item"
1424
- }, ra = {
1431
+ }, fa = {
1425
1432
  key: 1,
1426
1433
  class: "page-item disabled"
1427
- }, ua = ["onClick"], ca = {
1434
+ }, va = ["onClick"], ba = {
1428
1435
  key: 2,
1429
1436
  class: "page-item disabled"
1430
- }, fa = {
1437
+ }, ma = {
1431
1438
  key: 3,
1432
1439
  class: "page-item"
1433
- }, va = /* @__PURE__ */ C({
1440
+ }, ha = /* @__PURE__ */ C({
1434
1441
  __name: "VibeDataTable",
1435
1442
  props: /* @__PURE__ */ J({
1436
1443
  // Data
@@ -1473,13 +1480,13 @@ const re = /* @__PURE__ */ C({
1473
1480
  }),
1474
1481
  emits: /* @__PURE__ */ J(["row-clicked", "component-error"], ["update:currentPage", "update:perPage", "update:sortBy", "update:sortDesc"]),
1475
1482
  setup(e, { emit: f }) {
1476
- const t = e, a = Y(e, "currentPage"), l = Y(e, "perPage"), o = Y(e, "sortBy"), s = Y(e, "sortDesc"), u = f, d = T(""), r = T(null), c = T(""), m = ($, k) => t.rowKey && $[t.rowKey] !== void 0 ? String($[t.rowKey]) : k;
1483
+ const t = e, a = Y(e, "currentPage"), l = Y(e, "perPage"), r = Y(e, "sortBy"), n = Y(e, "sortDesc"), o = f, d = T(""), u = T(null), c = T(""), m = ($, k) => t.rowKey && $[t.rowKey] !== void 0 ? String($[t.rowKey]) : k;
1477
1484
  E(d, ($) => {
1478
- r.value !== null && clearTimeout(r.value), r.value = setTimeout(() => {
1479
- c.value = $, a.value = 1, r.value = null;
1485
+ u.value !== null && clearTimeout(u.value), u.value = setTimeout(() => {
1486
+ c.value = $, a.value = 1, u.value = null;
1480
1487
  }, t.searchDebounce);
1481
1488
  }), H(() => {
1482
- r.value !== null && (clearTimeout(r.value), r.value = null);
1489
+ u.value !== null && (clearTimeout(u.value), u.value = null);
1483
1490
  });
1484
1491
  const p = y(() => {
1485
1492
  if (!t.searchable || !c.value)
@@ -1490,7 +1497,7 @@ const re = /* @__PURE__ */ C({
1490
1497
  const L = k[S.key];
1491
1498
  return L == null ? !1 : String(L).toLowerCase().includes($);
1492
1499
  }));
1493
- }), B = ($, k, S) => {
1500
+ }), w = ($, k, S) => {
1494
1501
  if ($ == null) return 1;
1495
1502
  if (k == null) return -1;
1496
1503
  if (typeof $ == "string" && typeof k == "string") {
@@ -1507,64 +1514,64 @@ const re = /* @__PURE__ */ C({
1507
1514
  }
1508
1515
  return 0;
1509
1516
  }, x = y(() => {
1510
- if (!t.sortable || !o.value)
1517
+ if (!t.sortable || !r.value)
1511
1518
  return p.value;
1512
- const $ = [...p.value], k = o.value;
1513
- return $.sort((S, L) => B(S[k], L[k], s.value)), $;
1514
- }), A = y(() => {
1519
+ const $ = [...p.value], k = r.value;
1520
+ return $.sort((S, L) => w(S[k], L[k], n.value)), $;
1521
+ }), j = y(() => {
1515
1522
  if (!t.paginated)
1516
1523
  return x.value;
1517
1524
  const $ = (a.value - 1) * l.value, k = $ + l.value;
1518
1525
  return x.value.slice($, k);
1519
- }), j = y(() => t.items.length), N = y(() => p.value.length), O = y(() => Math.ceil(N.value / l.value)), K = y(() => N.value === 0 ? 0 : (a.value - 1) * l.value + 1), U = y(() => {
1526
+ }), A = y(() => t.items.length), N = y(() => p.value.length), O = y(() => Math.ceil(N.value / l.value)), K = y(() => N.value === 0 ? 0 : (a.value - 1) * l.value + 1), U = y(() => {
1520
1527
  const $ = a.value * l.value;
1521
1528
  return Math.min($, N.value);
1522
- }), Z = y(() => (N.value !== j.value ? t.filteredInfoText : t.infoText).replace("{start}", String(K.value)).replace("{end}", String(U.value)).replace("{total}", String(N.value)).replace("{totalRows}", String(j.value))), _ = y(() => {
1529
+ }), _ = y(() => (N.value !== A.value ? t.filteredInfoText : t.infoText).replace("{start}", String(K.value)).replace("{end}", String(U.value)).replace("{total}", String(N.value)).replace("{totalRows}", String(A.value))), ee = y(() => {
1523
1530
  const $ = ["table"];
1524
1531
  return t.striped && $.push("table-striped"), t.bordered && $.push("table-bordered"), t.borderless && $.push("table-borderless"), t.hover && $.push("table-hover"), t.small && $.push("table-sm"), t.variant && $.push(`table-${t.variant}`), $.join(" ");
1525
- }), ee = ($) => {
1526
- !t.sortable || $.sortable === !1 || (o.value === $.key ? s.value = !s.value : (o.value = $.key, s.value = !1));
1532
+ }), te = ($) => {
1533
+ !t.sortable || $.sortable === !1 || (r.value === $.key ? n.value = !n.value : (r.value = $.key, n.value = !1));
1527
1534
  }, R = ($) => {
1528
1535
  $ < 1 || $ > O.value || (a.value = $);
1529
- }, te = () => {
1536
+ }, ae = () => {
1530
1537
  a.value = 1;
1531
- }, ae = ($, k) => {
1532
- u("row-clicked", $, k);
1533
1538
  }, le = ($, k) => {
1539
+ o("row-clicked", $, k);
1540
+ }, ie = ($, k) => {
1534
1541
  const S = $[k.key];
1535
1542
  return k.formatter ? k.formatter(S, $) : S;
1536
- }, ie = ($) => !t.sortable || $.sortable === !1 ? "" : o.value !== $.key ? "⇅" : s.value ? "↓" : "↑", ne = ($) => {
1543
+ }, ne = ($) => !t.sortable || $.sortable === !1 ? "" : r.value !== $.key ? "⇅" : n.value ? "↓" : "↑", se = ($) => {
1537
1544
  const k = { ...$.thStyle };
1538
1545
  return t.sortable && $.sortable !== !1 && (k.cursor = "pointer"), k;
1539
1546
  };
1540
- return ($, k) => (i(), n("div", Gt, [
1541
- h("div", Ht, [
1542
- e.searchable ? (i(), n("div", Kt, [
1547
+ return ($, k) => (i(), s("div", Ut, [
1548
+ h("div", Qt, [
1549
+ e.searchable ? (i(), s("div", Wt, [
1543
1550
  W(h("input", {
1544
1551
  "onUpdate:modelValue": k[0] || (k[0] = (S) => d.value = S),
1545
1552
  type: "search",
1546
1553
  class: "form-control",
1547
1554
  placeholder: e.searchPlaceholder
1548
- }, null, 8, Ut), [
1549
- [oe, d.value]
1555
+ }, null, 8, Jt), [
1556
+ [ue, d.value]
1550
1557
  ])
1551
1558
  ])) : v("", !0),
1552
- e.showPerPage && e.paginated ? (i(), n("div", Qt, [
1553
- h("div", Wt, [
1559
+ e.showPerPage && e.paginated ? (i(), s("div", Zt, [
1560
+ h("div", _t, [
1554
1561
  k[6] || (k[6] = h("label", { class: "me-2 mb-0" }, "Show", -1)),
1555
1562
  W(h("select", {
1556
1563
  "onUpdate:modelValue": k[1] || (k[1] = (S) => l.value = S),
1557
1564
  class: "form-select form-select-sm",
1558
1565
  style: { width: "auto" },
1559
- onChange: te
1566
+ onChange: ae
1560
1567
  }, [
1561
- (i(!0), n(F, null, z(e.perPageOptions, (S) => (i(), n("option", {
1568
+ (i(!0), s(F, null, z(e.perPageOptions, (S) => (i(), s("option", {
1562
1569
  key: S,
1563
1570
  value: S
1564
- }, b(S), 9, Jt))), 128))
1571
+ }, b(S), 9, ea))), 128))
1565
1572
  ], 544), [
1566
1573
  [
1567
- de,
1574
+ ce,
1568
1575
  l.value,
1569
1576
  void 0,
1570
1577
  { number: !0 }
@@ -1578,28 +1585,28 @@ const re = /* @__PURE__ */ C({
1578
1585
  class: g({ "table-responsive": e.responsive })
1579
1586
  }, [
1580
1587
  h("table", {
1581
- class: g(_.value)
1588
+ class: g(ee.value)
1582
1589
  }, [
1583
1590
  h("thead", null, [
1584
1591
  h("tr", null, [
1585
- (i(!0), n(F, null, z(e.columns, (S) => (i(), n("th", {
1592
+ (i(!0), s(F, null, z(e.columns, (S) => (i(), s("th", {
1586
1593
  key: S.key,
1587
1594
  class: g(S.headerClass),
1588
- style: D(ne(S)),
1589
- onClick: (L) => ee(S)
1595
+ style: D(se(S)),
1596
+ onClick: (L) => te(S)
1590
1597
  }, [
1591
- w(b(S.label) + " ", 1),
1592
- e.sortable && S.sortable !== !1 ? (i(), n("span", _t, b(ie(S)), 1)) : v("", !0)
1593
- ], 14, Zt))), 128))
1598
+ B(b(S.label) + " ", 1),
1599
+ e.sortable && S.sortable !== !1 ? (i(), s("span", aa, b(ne(S)), 1)) : v("", !0)
1600
+ ], 14, ta))), 128))
1594
1601
  ])
1595
1602
  ]),
1596
1603
  h("tbody", null, [
1597
- (i(!0), n(F, null, z(A.value, (S, L) => (i(), n("tr", {
1604
+ (i(!0), s(F, null, z(j.value, (S, L) => (i(), s("tr", {
1598
1605
  key: m(S, L),
1599
- onClick: (I) => ae(S, L),
1606
+ onClick: (I) => le(S, L),
1600
1607
  style: { cursor: "pointer" }
1601
1608
  }, [
1602
- (i(!0), n(F, null, z(e.columns, (I) => (i(), n("td", {
1609
+ (i(!0), s(F, null, z(e.columns, (I) => (i(), s("td", {
1603
1610
  key: I.key,
1604
1611
  class: g(I.class),
1605
1612
  style: D(I.tdStyle)
@@ -1609,26 +1616,26 @@ const re = /* @__PURE__ */ C({
1609
1616
  value: S[I.key],
1610
1617
  index: L
1611
1618
  }, () => [
1612
- w(b(le(S, I)), 1)
1619
+ B(b(ie(S, I)), 1)
1613
1620
  ], !0)
1614
1621
  ], 6))), 128))
1615
- ], 8, ea))), 128)),
1616
- A.value.length === 0 && e.showEmpty ? (i(), n("tr", ta, [
1622
+ ], 8, la))), 128)),
1623
+ j.value.length === 0 && e.showEmpty ? (i(), s("tr", ia, [
1617
1624
  h("td", {
1618
1625
  colspan: e.columns.length,
1619
1626
  class: "text-center"
1620
- }, b(e.emptyText), 9, aa)
1627
+ }, b(e.emptyText), 9, na)
1621
1628
  ])) : v("", !0)
1622
1629
  ])
1623
1630
  ], 2)
1624
1631
  ], 2),
1625
- h("div", la, [
1626
- e.showInfo ? (i(), n("div", ia, [
1627
- h("div", na, b(Z.value), 1)
1632
+ h("div", sa, [
1633
+ e.showInfo ? (i(), s("div", oa, [
1634
+ h("div", da, b(_.value), 1)
1628
1635
  ])) : v("", !0),
1629
- e.paginated && O.value > 1 ? (i(), n("div", sa, [
1636
+ e.paginated && O.value > 1 ? (i(), s("div", ra, [
1630
1637
  h("nav", null, [
1631
- h("ul", oa, [
1638
+ h("ul", ua, [
1632
1639
  h("li", {
1633
1640
  class: g(["page-item", { disabled: a.value === 1 }])
1634
1641
  }, [
@@ -1638,19 +1645,19 @@ const re = /* @__PURE__ */ C({
1638
1645
  onClick: k[2] || (k[2] = X((S) => R(a.value - 1), ["prevent"]))
1639
1646
  }, " Previous ")
1640
1647
  ], 2),
1641
- a.value > 3 ? (i(), n("li", da, [
1648
+ a.value > 3 ? (i(), s("li", ca, [
1642
1649
  h("a", {
1643
1650
  class: "page-link",
1644
1651
  href: "#",
1645
1652
  onClick: k[3] || (k[3] = X((S) => R(1), ["prevent"]))
1646
1653
  }, "1")
1647
1654
  ])) : v("", !0),
1648
- a.value > 4 ? (i(), n("li", ra, [...k[8] || (k[8] = [
1655
+ a.value > 4 ? (i(), s("li", fa, [...k[8] || (k[8] = [
1649
1656
  h("span", { class: "page-link" }, "...", -1)
1650
1657
  ])])) : v("", !0),
1651
- (i(!0), n(F, null, z(Array.from({ length: O.value }, (S, L) => L + 1).filter(
1658
+ (i(!0), s(F, null, z(Array.from({ length: O.value }, (S, L) => L + 1).filter(
1652
1659
  (S) => S >= a.value - 2 && S <= a.value + 2
1653
- ), (S) => (i(), n("li", {
1660
+ ), (S) => (i(), s("li", {
1654
1661
  key: S,
1655
1662
  class: g(["page-item", { active: S === a.value }])
1656
1663
  }, [
@@ -1658,12 +1665,12 @@ const re = /* @__PURE__ */ C({
1658
1665
  class: "page-link",
1659
1666
  href: "#",
1660
1667
  onClick: X((L) => R(S), ["prevent"])
1661
- }, b(S), 9, ua)
1668
+ }, b(S), 9, va)
1662
1669
  ], 2))), 128)),
1663
- a.value < O.value - 3 ? (i(), n("li", ca, [...k[9] || (k[9] = [
1670
+ a.value < O.value - 3 ? (i(), s("li", ba, [...k[9] || (k[9] = [
1664
1671
  h("span", { class: "page-link" }, "...", -1)
1665
1672
  ])])) : v("", !0),
1666
- a.value < O.value - 2 ? (i(), n("li", fa, [
1673
+ a.value < O.value - 2 ? (i(), s("li", ma, [
1667
1674
  h("a", {
1668
1675
  class: "page-link",
1669
1676
  href: "#",
@@ -1690,14 +1697,14 @@ const re = /* @__PURE__ */ C({
1690
1697
  for (const [a, l] of f)
1691
1698
  t[a] = l;
1692
1699
  return t;
1693
- }, ba = /* @__PURE__ */ Q(va, [["__scopeId", "data-v-bafec986"]]), ma = { class: "mb-3" }, ha = ["for"], ya = {
1700
+ }, ya = /* @__PURE__ */ Q(ha, [["__scopeId", "data-v-bafec986"]]), ga = { class: "mb-3" }, pa = ["for"], $a = {
1694
1701
  key: 0,
1695
1702
  class: "text-danger"
1696
- }, ga = ["id", "type", "value", "placeholder", "disabled", "readonly", "required", "aria-invalid", "aria-describedby"], pa = ["id"], $a = {
1703
+ }, ka = ["id", "type", "value", "placeholder", "disabled", "readonly", "required", "aria-invalid", "aria-describedby"], Sa = ["id"], Va = {
1697
1704
  key: 2,
1698
1705
  class: "valid-feedback",
1699
1706
  style: { display: "block" }
1700
- }, ka = ["id"], Sa = /* @__PURE__ */ C({
1707
+ }, Ca = ["id"], xa = /* @__PURE__ */ C({
1701
1708
  __name: "VibeFormInput",
1702
1709
  props: {
1703
1710
  modelValue: {
@@ -1722,27 +1729,27 @@ const re = /* @__PURE__ */ C({
1722
1729
  emits: ["update:modelValue", "validate", "blur", "focus", "input", "change"],
1723
1730
  setup(e, { emit: f }) {
1724
1731
  const t = e, a = f, l = y(() => {
1725
- const r = [];
1726
- return t.plaintext ? r.push("form-control-plaintext") : (r.push("form-control"), t.size && r.push(`form-control-${t.size}`)), t.validationState === "valid" && r.push("is-valid"), t.validationState === "invalid" && r.push("is-invalid"), r.join(" ");
1727
- }), o = (r) => {
1728
- const c = r.target, m = t.type === "number" ? c.value === "" ? "" : Number(c.value) : c.value;
1729
- a("update:modelValue", m), a("input", r), t.validateOn === "input" && a("validate");
1730
- }, s = (r) => {
1731
- a("change", r), t.validateOn === "change" && a("validate");
1732
- }, u = (r) => {
1733
- a("blur", r), t.validateOn === "blur" && a("validate");
1734
- }, d = (r) => {
1735
- a("focus", r);
1732
+ const u = [];
1733
+ return t.plaintext ? u.push("form-control-plaintext") : (u.push("form-control"), t.size && u.push(`form-control-${t.size}`)), t.validationState === "valid" && u.push("is-valid"), t.validationState === "invalid" && u.push("is-invalid"), u.join(" ");
1734
+ }), r = (u) => {
1735
+ const c = u.target, m = t.type === "number" ? c.value === "" ? "" : Number(c.value) : c.value;
1736
+ a("update:modelValue", m), a("input", u), t.validateOn === "input" && a("validate");
1737
+ }, n = (u) => {
1738
+ a("change", u), t.validateOn === "change" && a("validate");
1739
+ }, o = (u) => {
1740
+ a("blur", u), t.validateOn === "blur" && a("validate");
1741
+ }, d = (u) => {
1742
+ a("focus", u);
1736
1743
  };
1737
- return (r, c) => (i(), n("div", ma, [
1738
- e.label ? (i(), n("label", {
1744
+ return (u, c) => (i(), s("div", ga, [
1745
+ e.label ? (i(), s("label", {
1739
1746
  key: 0,
1740
1747
  for: e.id,
1741
1748
  class: "form-label"
1742
1749
  }, [
1743
- w(b(e.label) + " ", 1),
1744
- e.required ? (i(), n("span", ya, "*")) : v("", !0)
1745
- ], 8, ha)) : v("", !0),
1750
+ B(b(e.label) + " ", 1),
1751
+ e.required ? (i(), s("span", $a, "*")) : v("", !0)
1752
+ ], 8, pa)) : v("", !0),
1746
1753
  h("input", {
1747
1754
  id: e.id,
1748
1755
  type: e.type,
@@ -1754,33 +1761,33 @@ const re = /* @__PURE__ */ C({
1754
1761
  required: e.required,
1755
1762
  "aria-invalid": e.validationState === "invalid",
1756
1763
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
1757
- onInput: o,
1758
- onChange: s,
1759
- onBlur: u,
1764
+ onInput: r,
1765
+ onChange: n,
1766
+ onBlur: o,
1760
1767
  onFocus: d
1761
- }, null, 42, ga),
1762
- e.helpText && !e.validationMessage ? (i(), n("div", {
1768
+ }, null, 42, ka),
1769
+ e.helpText && !e.validationMessage ? (i(), s("div", {
1763
1770
  key: 1,
1764
1771
  id: `${e.id}-feedback`,
1765
1772
  class: "form-text"
1766
- }, b(e.helpText), 9, pa)) : v("", !0),
1767
- e.validationState === "valid" ? (i(), n("div", $a, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
1768
- e.validationState === "invalid" ? (i(), n("div", {
1773
+ }, b(e.helpText), 9, Sa)) : v("", !0),
1774
+ e.validationState === "valid" ? (i(), s("div", Va, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
1775
+ e.validationState === "invalid" ? (i(), s("div", {
1769
1776
  key: 3,
1770
1777
  id: `${e.id}-feedback`,
1771
1778
  class: "invalid-feedback",
1772
1779
  style: { display: "block" }
1773
- }, b(e.validationMessage || "Please provide a valid value."), 9, ka)) : v("", !0)
1780
+ }, b(e.validationMessage || "Please provide a valid value."), 9, Ca)) : v("", !0)
1774
1781
  ]));
1775
1782
  }
1776
- }), Va = { class: "mb-3" }, Ca = ["for"], xa = {
1783
+ }), Ba = { class: "mb-3" }, wa = ["for"], Na = {
1777
1784
  key: 0,
1778
1785
  class: "text-danger"
1779
- }, wa = ["id", "value", "disabled", "required", "multiple", "size", "aria-invalid", "aria-describedby"], Ba = ["selected"], Na = ["value", "disabled"], Ta = ["id"], Ma = {
1786
+ }, Ta = ["id", "value", "disabled", "required", "multiple", "size", "aria-invalid", "aria-describedby"], Ma = ["selected"], qa = ["value", "disabled"], Pa = ["id"], Fa = {
1780
1787
  key: 2,
1781
1788
  class: "valid-feedback",
1782
1789
  style: { display: "block" }
1783
- }, qa = ["id"], Pa = /* @__PURE__ */ C({
1790
+ }, La = ["id"], za = /* @__PURE__ */ C({
1784
1791
  __name: "VibeFormSelect",
1785
1792
  props: {
1786
1793
  modelValue: {
@@ -1808,24 +1815,24 @@ const re = /* @__PURE__ */ C({
1808
1815
  const t = e, a = f, l = y(() => {
1809
1816
  const d = ["form-select"];
1810
1817
  return t.size && d.push(`form-select-${t.size}`), t.validationState === "valid" && d.push("is-valid"), t.validationState === "invalid" && d.push("is-invalid"), d.join(" ");
1811
- }), o = (d) => {
1812
- const r = d.target;
1818
+ }), r = (d) => {
1819
+ const u = d.target;
1813
1820
  let c;
1814
- t.multiple ? c = Array.from(r.selectedOptions).map((p) => p.value) : c = r.value, a("update:modelValue", c), a("change", d), t.validateOn === "change" && a("validate");
1815
- }, s = (d) => {
1821
+ t.multiple ? c = Array.from(u.selectedOptions).map((p) => p.value) : c = u.value, a("update:modelValue", c), a("change", d), t.validateOn === "change" && a("validate");
1822
+ }, n = (d) => {
1816
1823
  a("blur", d), t.validateOn === "blur" && a("validate");
1817
- }, u = (d) => {
1824
+ }, o = (d) => {
1818
1825
  a("focus", d);
1819
1826
  };
1820
- return (d, r) => (i(), n("div", Va, [
1821
- e.label ? (i(), n("label", {
1827
+ return (d, u) => (i(), s("div", Ba, [
1828
+ e.label ? (i(), s("label", {
1822
1829
  key: 0,
1823
1830
  for: e.id,
1824
1831
  class: "form-label"
1825
1832
  }, [
1826
- w(b(e.label) + " ", 1),
1827
- e.required ? (i(), n("span", xa, "*")) : v("", !0)
1828
- ], 8, Ca)) : v("", !0),
1833
+ B(b(e.label) + " ", 1),
1834
+ e.required ? (i(), s("span", Na, "*")) : v("", !0)
1835
+ ], 8, wa)) : v("", !0),
1829
1836
  h("select", {
1830
1837
  id: e.id,
1831
1838
  class: g(l.value),
@@ -1836,48 +1843,48 @@ const re = /* @__PURE__ */ C({
1836
1843
  size: e.htmlSize,
1837
1844
  "aria-invalid": e.validationState === "invalid",
1838
1845
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
1839
- onChange: o,
1840
- onBlur: s,
1841
- onFocus: u
1846
+ onChange: r,
1847
+ onBlur: n,
1848
+ onFocus: o
1842
1849
  }, [
1843
- e.placeholder && !e.multiple ? (i(), n("option", {
1850
+ e.placeholder && !e.multiple ? (i(), s("option", {
1844
1851
  key: 0,
1845
1852
  value: "",
1846
1853
  disabled: "",
1847
1854
  selected: !e.modelValue
1848
- }, b(e.placeholder), 9, Ba)) : v("", !0),
1849
- (i(!0), n(F, null, z(e.options, (c) => (i(), n("option", {
1855
+ }, b(e.placeholder), 9, Ma)) : v("", !0),
1856
+ (i(!0), s(F, null, z(e.options, (c) => (i(), s("option", {
1850
1857
  key: c.value,
1851
1858
  value: c.value,
1852
1859
  disabled: c.disabled
1853
- }, b(c.text), 9, Na))), 128)),
1860
+ }, b(c.text), 9, qa))), 128)),
1854
1861
  V(d.$slots, "default")
1855
- ], 42, wa),
1856
- e.helpText && !e.validationMessage ? (i(), n("div", {
1862
+ ], 42, Ta),
1863
+ e.helpText && !e.validationMessage ? (i(), s("div", {
1857
1864
  key: 1,
1858
1865
  id: `${e.id}-feedback`,
1859
1866
  class: "form-text"
1860
- }, b(e.helpText), 9, Ta)) : v("", !0),
1861
- e.validationState === "valid" ? (i(), n("div", Ma, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
1862
- e.validationState === "invalid" ? (i(), n("div", {
1867
+ }, b(e.helpText), 9, Pa)) : v("", !0),
1868
+ e.validationState === "valid" ? (i(), s("div", Fa, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
1869
+ e.validationState === "invalid" ? (i(), s("div", {
1863
1870
  key: 3,
1864
1871
  id: `${e.id}-feedback`,
1865
1872
  class: "invalid-feedback",
1866
1873
  style: { display: "block" }
1867
- }, b(e.validationMessage || "Please select a valid option."), 9, qa)) : v("", !0)
1874
+ }, b(e.validationMessage || "Please select a valid option."), 9, La)) : v("", !0)
1868
1875
  ]));
1869
1876
  }
1870
- }), Fa = { class: "mb-3" }, La = ["for"], za = {
1877
+ }), ja = { class: "mb-3" }, Aa = ["for"], Ia = {
1871
1878
  key: 0,
1872
1879
  class: "text-danger"
1873
- }, Aa = ["id", "value", "placeholder", "disabled", "readonly", "required", "rows", "maxlength", "aria-invalid", "aria-describedby"], ja = {
1880
+ }, Oa = ["id", "value", "placeholder", "disabled", "readonly", "required", "rows", "maxlength", "aria-invalid", "aria-describedby"], Ea = {
1874
1881
  key: 1,
1875
1882
  class: "form-text"
1876
- }, Ia = ["id"], Oa = {
1883
+ }, Da = ["id"], Ra = {
1877
1884
  key: 3,
1878
1885
  class: "valid-feedback",
1879
1886
  style: { display: "block" }
1880
- }, Ea = ["id"], Da = /* @__PURE__ */ C({
1887
+ }, Xa = ["id"], Ya = /* @__PURE__ */ C({
1881
1888
  __name: "VibeFormTextarea",
1882
1889
  props: {
1883
1890
  modelValue: {
@@ -1906,28 +1913,28 @@ const re = /* @__PURE__ */ C({
1906
1913
  const t = e, a = f, l = y(() => {
1907
1914
  const m = ["form-control"];
1908
1915
  return t.size && m.push(`form-control-${t.size}`), t.validationState === "valid" && m.push("is-valid"), t.validationState === "invalid" && m.push("is-invalid"), m.join(" ");
1909
- }), o = y(() => {
1916
+ }), r = y(() => {
1910
1917
  const m = typeof t.modelValue == "string" ? t.modelValue : "";
1911
1918
  return m ? m.length : 0;
1912
- }), s = y(() => t.maxlength ? `${o.value} / ${t.maxlength}` : `${o.value}`), u = (m) => {
1919
+ }), n = y(() => t.maxlength ? `${r.value} / ${t.maxlength}` : `${r.value}`), o = (m) => {
1913
1920
  const p = m.target;
1914
1921
  a("update:modelValue", p.value), a("input", m), t.validateOn === "input" && a("validate");
1915
1922
  }, d = (m) => {
1916
1923
  a("change", m), t.validateOn === "change" && a("validate");
1917
- }, r = (m) => {
1924
+ }, u = (m) => {
1918
1925
  a("blur", m), t.validateOn === "blur" && a("validate");
1919
1926
  }, c = (m) => {
1920
1927
  a("focus", m);
1921
1928
  };
1922
- return (m, p) => (i(), n("div", Fa, [
1923
- e.label ? (i(), n("label", {
1929
+ return (m, p) => (i(), s("div", ja, [
1930
+ e.label ? (i(), s("label", {
1924
1931
  key: 0,
1925
1932
  for: e.id,
1926
1933
  class: "form-label"
1927
1934
  }, [
1928
- w(b(e.label) + " ", 1),
1929
- e.required ? (i(), n("span", za, "*")) : v("", !0)
1930
- ], 8, La)) : v("", !0),
1935
+ B(b(e.label) + " ", 1),
1936
+ e.required ? (i(), s("span", Ia, "*")) : v("", !0)
1937
+ ], 8, Aa)) : v("", !0),
1931
1938
  h("textarea", {
1932
1939
  id: e.id,
1933
1940
  class: g(l.value),
@@ -1940,34 +1947,34 @@ const re = /* @__PURE__ */ C({
1940
1947
  maxlength: e.maxlength,
1941
1948
  "aria-invalid": e.validationState === "invalid",
1942
1949
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
1943
- onInput: u,
1950
+ onInput: o,
1944
1951
  onChange: d,
1945
- onBlur: r,
1952
+ onBlur: u,
1946
1953
  onFocus: c
1947
- }, null, 42, Aa),
1948
- e.showCharCount ? (i(), n("div", ja, b(s.value), 1)) : v("", !0),
1949
- e.helpText && !e.validationMessage && !e.showCharCount ? (i(), n("div", {
1954
+ }, null, 42, Oa),
1955
+ e.showCharCount ? (i(), s("div", Ea, b(n.value), 1)) : v("", !0),
1956
+ e.helpText && !e.validationMessage && !e.showCharCount ? (i(), s("div", {
1950
1957
  key: 2,
1951
1958
  id: `${e.id}-feedback`,
1952
1959
  class: "form-text"
1953
- }, b(e.helpText), 9, Ia)) : v("", !0),
1954
- e.validationState === "valid" ? (i(), n("div", Oa, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
1955
- e.validationState === "invalid" ? (i(), n("div", {
1960
+ }, b(e.helpText), 9, Da)) : v("", !0),
1961
+ e.validationState === "valid" ? (i(), s("div", Ra, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
1962
+ e.validationState === "invalid" ? (i(), s("div", {
1956
1963
  key: 4,
1957
1964
  id: `${e.id}-feedback`,
1958
1965
  class: "invalid-feedback",
1959
1966
  style: { display: "block" }
1960
- }, b(e.validationMessage || "Please provide a valid value."), 9, Ea)) : v("", !0)
1967
+ }, b(e.validationMessage || "Please provide a valid value."), 9, Xa)) : v("", !0)
1961
1968
  ]));
1962
1969
  }
1963
- }), Ra = { class: "mb-3" }, Xa = ["for"], Ya = {
1970
+ }), Ga = { class: "mb-3" }, Ha = ["for"], Ka = {
1964
1971
  key: 0,
1965
1972
  class: "text-danger"
1966
- }, Ga = ["disabled"], Ha = ["id", "value", "disabled", "readonly", "required", "min", "max", "step", "aria-invalid", "aria-describedby"], Ka = ["disabled"], Ua = ["id"], Qa = {
1973
+ }, Ua = ["disabled"], Qa = ["id", "value", "disabled", "readonly", "required", "min", "max", "step", "aria-invalid", "aria-describedby"], Wa = ["disabled"], Ja = ["id"], Za = {
1967
1974
  key: 2,
1968
1975
  class: "valid-feedback",
1969
1976
  style: { display: "block" }
1970
- }, Wa = ["id"], Ja = /* @__PURE__ */ C({
1977
+ }, _a = ["id"], el = /* @__PURE__ */ C({
1971
1978
  __name: "VibeFormSpinbutton",
1972
1979
  props: {
1973
1980
  modelValue: {
@@ -1997,49 +2004,49 @@ const re = /* @__PURE__ */ C({
1997
2004
  const t = e, a = f, l = y(() => {
1998
2005
  const x = ["form-control"];
1999
2006
  return t.size && x.push(`form-control-${t.size}`), t.validationState === "valid" && x.push("is-valid"), t.validationState === "invalid" && x.push("is-invalid"), x.join(" ");
2000
- }), o = y(() => {
2007
+ }), r = y(() => {
2001
2008
  const x = ["input-group"];
2002
2009
  return t.size && x.push(`input-group-${t.size}`), t.vertical && x.push("input-group-vertical"), x.join(" ");
2003
- }), s = y(() => t.disabled || t.readonly ? !1 : t.min === void 0 || t.wrap ? !0 : t.modelValue > t.min), u = y(() => t.disabled || t.readonly ? !1 : t.max === void 0 || t.wrap ? !0 : t.modelValue < t.max), d = (x) => {
2004
- const A = x.target;
2005
- let j = A.value === "" ? 0 : Number(A.value);
2006
- t.min !== void 0 && j < t.min && (j = t.min), t.max !== void 0 && j > t.max && (j = t.max), a("update:modelValue", j), a("input", x), t.validateOn === "input" && a("validate");
2007
- }, r = (x) => {
2010
+ }), n = y(() => t.disabled || t.readonly ? !1 : t.min === void 0 || t.wrap ? !0 : t.modelValue > t.min), o = y(() => t.disabled || t.readonly ? !1 : t.max === void 0 || t.wrap ? !0 : t.modelValue < t.max), d = (x) => {
2011
+ const j = x.target;
2012
+ let A = j.value === "" ? 0 : Number(j.value);
2013
+ t.min !== void 0 && A < t.min && (A = t.min), t.max !== void 0 && A > t.max && (A = t.max), a("update:modelValue", A), a("input", x), t.validateOn === "input" && a("validate");
2014
+ }, u = (x) => {
2008
2015
  a("change", x), t.validateOn === "change" && a("validate");
2009
2016
  }, c = (x) => {
2010
2017
  a("blur", x), t.validateOn === "blur" && a("validate");
2011
2018
  }, m = (x) => {
2012
2019
  a("focus", x);
2013
2020
  }, p = () => {
2014
- if (!u.value) return;
2021
+ if (!o.value) return;
2015
2022
  let x = t.modelValue + t.step;
2016
2023
  t.max !== void 0 && x > t.max && (x = t.wrap ? t.min ?? 0 : t.max), a("update:modelValue", x), a("increment", x), t.validateOn === "change" && a("validate");
2017
- }, B = () => {
2018
- if (!s.value) return;
2024
+ }, w = () => {
2025
+ if (!n.value) return;
2019
2026
  let x = t.modelValue - t.step;
2020
2027
  t.min !== void 0 && x < t.min && (x = t.wrap ? t.max ?? 0 : t.min), a("update:modelValue", x), a("decrement", x), t.validateOn === "change" && a("validate");
2021
2028
  };
2022
- return (x, A) => (i(), n("div", Ra, [
2023
- e.label ? (i(), n("label", {
2029
+ return (x, j) => (i(), s("div", Ga, [
2030
+ e.label ? (i(), s("label", {
2024
2031
  key: 0,
2025
2032
  for: e.id,
2026
2033
  class: "form-label"
2027
2034
  }, [
2028
- w(b(e.label) + " ", 1),
2029
- e.required ? (i(), n("span", Ya, "*")) : v("", !0)
2030
- ], 8, Xa)) : v("", !0),
2035
+ B(b(e.label) + " ", 1),
2036
+ e.required ? (i(), s("span", Ka, "*")) : v("", !0)
2037
+ ], 8, Ha)) : v("", !0),
2031
2038
  h("div", {
2032
- class: g(o.value)
2039
+ class: g(r.value)
2033
2040
  }, [
2034
2041
  h("button", {
2035
2042
  class: "btn btn-outline-secondary",
2036
2043
  type: "button",
2037
- disabled: !s.value,
2038
- onClick: B,
2044
+ disabled: !n.value,
2045
+ onClick: w,
2039
2046
  "aria-label": "Decrement"
2040
- }, [...A[0] || (A[0] = [
2047
+ }, [...j[0] || (j[0] = [
2041
2048
  h("span", { "aria-hidden": "true" }, "−", -1)
2042
- ])], 8, Ga),
2049
+ ])], 8, Ua),
2043
2050
  h("input", {
2044
2051
  id: e.id,
2045
2052
  type: "number",
@@ -2054,42 +2061,42 @@ const re = /* @__PURE__ */ C({
2054
2061
  "aria-invalid": e.validationState === "invalid",
2055
2062
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
2056
2063
  onInput: d,
2057
- onChange: r,
2064
+ onChange: u,
2058
2065
  onBlur: c,
2059
2066
  onFocus: m
2060
- }, null, 42, Ha),
2067
+ }, null, 42, Qa),
2061
2068
  h("button", {
2062
2069
  class: "btn btn-outline-secondary",
2063
2070
  type: "button",
2064
- disabled: !u.value,
2071
+ disabled: !o.value,
2065
2072
  onClick: p,
2066
2073
  "aria-label": "Increment"
2067
- }, [...A[1] || (A[1] = [
2074
+ }, [...j[1] || (j[1] = [
2068
2075
  h("span", { "aria-hidden": "true" }, "+", -1)
2069
- ])], 8, Ka)
2076
+ ])], 8, Wa)
2070
2077
  ], 2),
2071
- e.helpText && !e.validationMessage ? (i(), n("div", {
2078
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2072
2079
  key: 1,
2073
2080
  id: `${e.id}-feedback`,
2074
2081
  class: "form-text"
2075
- }, b(e.helpText), 9, Ua)) : v("", !0),
2076
- e.validationState === "valid" ? (i(), n("div", Qa, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2077
- e.validationState === "invalid" ? (i(), n("div", {
2082
+ }, b(e.helpText), 9, Ja)) : v("", !0),
2083
+ e.validationState === "valid" ? (i(), s("div", Za, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2084
+ e.validationState === "invalid" ? (i(), s("div", {
2078
2085
  key: 3,
2079
2086
  id: `${e.id}-feedback`,
2080
2087
  class: "invalid-feedback",
2081
2088
  style: { display: "block" }
2082
- }, b(e.validationMessage || "Please provide a valid value."), 9, Wa)) : v("", !0)
2089
+ }, b(e.validationMessage || "Please provide a valid value."), 9, _a)) : v("", !0)
2083
2090
  ]));
2084
2091
  }
2085
- }), Za = /* @__PURE__ */ Q(Ja, [["__scopeId", "data-v-fbee244e"]]), _a = { class: "mb-3" }, el = ["for"], tl = {
2092
+ }), tl = /* @__PURE__ */ Q(el, [["__scopeId", "data-v-fbee244e"]]), al = { class: "mb-3" }, ll = ["for"], il = {
2086
2093
  key: 0,
2087
2094
  class: "text-danger"
2088
- }, al = ["id", "type", "value", "disabled", "readonly", "required", "min", "max", "aria-invalid", "aria-describedby"], ll = ["id"], il = {
2095
+ }, nl = ["id", "type", "value", "disabled", "readonly", "required", "min", "max", "aria-invalid", "aria-describedby"], sl = ["id"], ol = {
2089
2096
  key: 2,
2090
2097
  class: "valid-feedback",
2091
2098
  style: { display: "block" }
2092
- }, nl = ["id"], sl = /* @__PURE__ */ C({
2099
+ }, dl = ["id"], rl = /* @__PURE__ */ C({
2093
2100
  __name: "VibeFormDatepicker",
2094
2101
  props: {
2095
2102
  modelValue: {
@@ -2115,27 +2122,27 @@ const re = /* @__PURE__ */ C({
2115
2122
  emits: ["update:modelValue", "validate", "blur", "focus", "input", "change"],
2116
2123
  setup(e, { emit: f }) {
2117
2124
  const t = e, a = f, l = y(() => {
2118
- const r = ["form-control"];
2119
- return t.size && r.push(`form-control-${t.size}`), t.validationState === "valid" && r.push("is-valid"), t.validationState === "invalid" && r.push("is-invalid"), r.join(" ");
2120
- }), o = (r) => {
2121
- const c = r.target;
2122
- a("update:modelValue", c.value), a("input", r), t.validateOn === "input" && a("validate");
2123
- }, s = (r) => {
2124
- a("change", r), t.validateOn === "change" && a("validate");
2125
- }, u = (r) => {
2126
- a("blur", r), t.validateOn === "blur" && a("validate");
2127
- }, d = (r) => {
2128
- a("focus", r);
2125
+ const u = ["form-control"];
2126
+ return t.size && u.push(`form-control-${t.size}`), t.validationState === "valid" && u.push("is-valid"), t.validationState === "invalid" && u.push("is-invalid"), u.join(" ");
2127
+ }), r = (u) => {
2128
+ const c = u.target;
2129
+ a("update:modelValue", c.value), a("input", u), t.validateOn === "input" && a("validate");
2130
+ }, n = (u) => {
2131
+ a("change", u), t.validateOn === "change" && a("validate");
2132
+ }, o = (u) => {
2133
+ a("blur", u), t.validateOn === "blur" && a("validate");
2134
+ }, d = (u) => {
2135
+ a("focus", u);
2129
2136
  };
2130
- return (r, c) => (i(), n("div", _a, [
2131
- e.label ? (i(), n("label", {
2137
+ return (u, c) => (i(), s("div", al, [
2138
+ e.label ? (i(), s("label", {
2132
2139
  key: 0,
2133
2140
  for: e.id,
2134
2141
  class: "form-label"
2135
2142
  }, [
2136
- w(b(e.label) + " ", 1),
2137
- e.required ? (i(), n("span", tl, "*")) : v("", !0)
2138
- ], 8, el)) : v("", !0),
2143
+ B(b(e.label) + " ", 1),
2144
+ e.required ? (i(), s("span", il, "*")) : v("", !0)
2145
+ ], 8, ll)) : v("", !0),
2139
2146
  h("input", {
2140
2147
  id: e.id,
2141
2148
  type: e.type,
@@ -2148,33 +2155,33 @@ const re = /* @__PURE__ */ C({
2148
2155
  max: e.max,
2149
2156
  "aria-invalid": e.validationState === "invalid",
2150
2157
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
2151
- onInput: o,
2152
- onChange: s,
2153
- onBlur: u,
2158
+ onInput: r,
2159
+ onChange: n,
2160
+ onBlur: o,
2154
2161
  onFocus: d
2155
- }, null, 42, al),
2156
- e.helpText && !e.validationMessage ? (i(), n("div", {
2162
+ }, null, 42, nl),
2163
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2157
2164
  key: 1,
2158
2165
  id: `${e.id}-feedback`,
2159
2166
  class: "form-text"
2160
- }, b(e.helpText), 9, ll)) : v("", !0),
2161
- e.validationState === "valid" ? (i(), n("div", il, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2162
- e.validationState === "invalid" ? (i(), n("div", {
2167
+ }, b(e.helpText), 9, sl)) : v("", !0),
2168
+ e.validationState === "valid" ? (i(), s("div", ol, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2169
+ e.validationState === "invalid" ? (i(), s("div", {
2163
2170
  key: 3,
2164
2171
  id: `${e.id}-feedback`,
2165
2172
  class: "invalid-feedback",
2166
2173
  style: { display: "block" }
2167
- }, b(e.validationMessage || "Please provide a valid date."), 9, nl)) : v("", !0)
2174
+ }, b(e.validationMessage || "Please provide a valid date."), 9, dl)) : v("", !0)
2168
2175
  ]));
2169
2176
  }
2170
- }), ol = ["id", "checked", "value", "disabled", "required", "indeterminate", "aria-invalid", "aria-describedby"], dl = ["for"], rl = {
2177
+ }), ul = ["id", "checked", "value", "disabled", "required", "indeterminate", "aria-invalid", "aria-describedby"], cl = ["for"], fl = {
2171
2178
  key: 0,
2172
2179
  class: "text-danger"
2173
- }, ul = ["id"], cl = {
2180
+ }, vl = ["id"], bl = {
2174
2181
  key: 2,
2175
2182
  class: "valid-feedback",
2176
2183
  style: { display: "block" }
2177
- }, fl = ["id"], vl = /* @__PURE__ */ C({
2184
+ }, ml = ["id"], hl = /* @__PURE__ */ C({
2178
2185
  __name: "VibeFormCheckbox",
2179
2186
  props: {
2180
2187
  modelValue: {
@@ -2200,75 +2207,75 @@ const re = /* @__PURE__ */ C({
2200
2207
  const t = e, a = f, l = y(() => {
2201
2208
  const c = ["form-check-input"];
2202
2209
  return t.validationState === "valid" && c.push("is-valid"), t.validationState === "invalid" && c.push("is-invalid"), c.join(" ");
2203
- }), o = y(() => {
2210
+ }), r = y(() => {
2204
2211
  const c = ["form-check"];
2205
2212
  return t.inline && c.push("form-check-inline"), c.join(" ");
2206
- }), s = y(() => Array.isArray(t.modelValue) ? t.modelValue.includes(t.value) : t.modelValue === t.value || t.modelValue === !0), u = (c) => {
2213
+ }), n = y(() => Array.isArray(t.modelValue) ? t.modelValue.includes(t.value) : t.modelValue === t.value || t.modelValue === !0), o = (c) => {
2207
2214
  const m = c.target;
2208
2215
  let p;
2209
2216
  if (Array.isArray(t.modelValue))
2210
2217
  if (p = [...t.modelValue], m.checked)
2211
2218
  p.includes(t.value) || p.push(t.value);
2212
2219
  else {
2213
- const B = p.indexOf(t.value);
2214
- B > -1 && p.splice(B, 1);
2220
+ const w = p.indexOf(t.value);
2221
+ w > -1 && p.splice(w, 1);
2215
2222
  }
2216
2223
  else
2217
2224
  p = m.checked;
2218
2225
  a("update:modelValue", p), a("change", c), t.validateOn === "change" && a("validate");
2219
2226
  }, d = (c) => {
2220
2227
  a("blur", c), t.validateOn === "blur" && a("validate");
2221
- }, r = (c) => {
2228
+ }, u = (c) => {
2222
2229
  a("focus", c);
2223
2230
  };
2224
- return (c, m) => (i(), n("div", {
2225
- class: g(o.value)
2231
+ return (c, m) => (i(), s("div", {
2232
+ class: g(r.value)
2226
2233
  }, [
2227
2234
  h("input", {
2228
2235
  id: e.id,
2229
2236
  type: "checkbox",
2230
2237
  class: g(l.value),
2231
- checked: s.value,
2238
+ checked: n.value,
2232
2239
  value: e.value,
2233
2240
  disabled: e.disabled,
2234
2241
  required: e.required,
2235
2242
  indeterminate: e.indeterminate,
2236
2243
  "aria-invalid": e.validationState === "invalid",
2237
2244
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
2238
- onChange: u,
2245
+ onChange: o,
2239
2246
  onBlur: d,
2240
- onFocus: r
2241
- }, null, 42, ol),
2242
- e.label ? (i(), n("label", {
2247
+ onFocus: u
2248
+ }, null, 42, ul),
2249
+ e.label ? (i(), s("label", {
2243
2250
  key: 0,
2244
2251
  for: e.id,
2245
2252
  class: "form-check-label"
2246
2253
  }, [
2247
- w(b(e.label) + " ", 1),
2248
- e.required ? (i(), n("span", rl, "*")) : v("", !0)
2249
- ], 8, dl)) : v("", !0),
2250
- e.helpText && !e.validationMessage ? (i(), n("div", {
2254
+ B(b(e.label) + " ", 1),
2255
+ e.required ? (i(), s("span", fl, "*")) : v("", !0)
2256
+ ], 8, cl)) : v("", !0),
2257
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2251
2258
  key: 1,
2252
2259
  id: `${e.id}-feedback`,
2253
2260
  class: "form-text"
2254
- }, b(e.helpText), 9, ul)) : v("", !0),
2255
- e.validationState === "valid" ? (i(), n("div", cl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2256
- e.validationState === "invalid" ? (i(), n("div", {
2261
+ }, b(e.helpText), 9, vl)) : v("", !0),
2262
+ e.validationState === "valid" ? (i(), s("div", bl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2263
+ e.validationState === "invalid" ? (i(), s("div", {
2257
2264
  key: 3,
2258
2265
  id: `${e.id}-feedback`,
2259
2266
  class: "invalid-feedback",
2260
2267
  style: { display: "block" }
2261
- }, b(e.validationMessage || "You must check this box."), 9, fl)) : v("", !0)
2268
+ }, b(e.validationMessage || "You must check this box."), 9, ml)) : v("", !0)
2262
2269
  ], 2));
2263
2270
  }
2264
- }), bl = ["id", "checked", "value", "name", "disabled", "required", "aria-invalid", "aria-describedby"], ml = ["for"], hl = {
2271
+ }), yl = ["id", "checked", "value", "name", "disabled", "required", "aria-invalid", "aria-describedby"], gl = ["for"], pl = {
2265
2272
  key: 0,
2266
2273
  class: "text-danger"
2267
- }, yl = ["id"], gl = {
2274
+ }, $l = ["id"], kl = {
2268
2275
  key: 2,
2269
2276
  class: "valid-feedback",
2270
2277
  style: { display: "block" }
2271
- }, pl = ["id"], $l = /* @__PURE__ */ C({
2278
+ }, Sl = ["id"], Vl = /* @__PURE__ */ C({
2272
2279
  __name: "VibeFormRadio",
2273
2280
  props: {
2274
2281
  modelValue: {
@@ -2294,64 +2301,64 @@ const re = /* @__PURE__ */ C({
2294
2301
  const t = e, a = f, l = y(() => {
2295
2302
  const c = ["form-check-input"];
2296
2303
  return t.validationState === "valid" && c.push("is-valid"), t.validationState === "invalid" && c.push("is-invalid"), c.join(" ");
2297
- }), o = y(() => {
2304
+ }), r = y(() => {
2298
2305
  const c = ["form-check"];
2299
2306
  return t.inline && c.push("form-check-inline"), c.join(" ");
2300
- }), s = y(() => t.modelValue === t.value), u = (c) => {
2307
+ }), n = y(() => t.modelValue === t.value), o = (c) => {
2301
2308
  c.target.checked && a("update:modelValue", t.value), a("change", c), t.validateOn === "change" && a("validate");
2302
2309
  }, d = (c) => {
2303
2310
  a("blur", c), t.validateOn === "blur" && a("validate");
2304
- }, r = (c) => {
2311
+ }, u = (c) => {
2305
2312
  a("focus", c);
2306
2313
  };
2307
- return (c, m) => (i(), n("div", {
2308
- class: g(o.value)
2314
+ return (c, m) => (i(), s("div", {
2315
+ class: g(r.value)
2309
2316
  }, [
2310
2317
  h("input", {
2311
2318
  id: e.id,
2312
2319
  type: "radio",
2313
2320
  class: g(l.value),
2314
- checked: s.value,
2321
+ checked: n.value,
2315
2322
  value: e.value,
2316
2323
  name: e.name,
2317
2324
  disabled: e.disabled,
2318
2325
  required: e.required,
2319
2326
  "aria-invalid": e.validationState === "invalid",
2320
2327
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
2321
- onChange: u,
2328
+ onChange: o,
2322
2329
  onBlur: d,
2323
- onFocus: r
2324
- }, null, 42, bl),
2325
- e.label ? (i(), n("label", {
2330
+ onFocus: u
2331
+ }, null, 42, yl),
2332
+ e.label ? (i(), s("label", {
2326
2333
  key: 0,
2327
2334
  for: e.id,
2328
2335
  class: "form-check-label"
2329
2336
  }, [
2330
- w(b(e.label) + " ", 1),
2331
- e.required ? (i(), n("span", hl, "*")) : v("", !0)
2332
- ], 8, ml)) : v("", !0),
2333
- e.helpText && !e.validationMessage ? (i(), n("div", {
2337
+ B(b(e.label) + " ", 1),
2338
+ e.required ? (i(), s("span", pl, "*")) : v("", !0)
2339
+ ], 8, gl)) : v("", !0),
2340
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2334
2341
  key: 1,
2335
2342
  id: `${e.id}-feedback`,
2336
2343
  class: "form-text"
2337
- }, b(e.helpText), 9, yl)) : v("", !0),
2338
- e.validationState === "valid" ? (i(), n("div", gl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2339
- e.validationState === "invalid" ? (i(), n("div", {
2344
+ }, b(e.helpText), 9, $l)) : v("", !0),
2345
+ e.validationState === "valid" ? (i(), s("div", kl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2346
+ e.validationState === "invalid" ? (i(), s("div", {
2340
2347
  key: 3,
2341
2348
  id: `${e.id}-feedback`,
2342
2349
  class: "invalid-feedback",
2343
2350
  style: { display: "block" }
2344
- }, b(e.validationMessage || "Please select an option."), 9, pl)) : v("", !0)
2351
+ }, b(e.validationMessage || "Please select an option."), 9, Sl)) : v("", !0)
2345
2352
  ], 2));
2346
2353
  }
2347
- }), kl = { class: "form-check form-switch" }, Sl = ["id", "checked", "disabled", "required", "aria-invalid", "aria-describedby"], Vl = ["for"], Cl = {
2354
+ }), Cl = { class: "form-check form-switch" }, xl = ["id", "checked", "disabled", "required", "aria-invalid", "aria-describedby"], Bl = ["for"], wl = {
2348
2355
  key: 0,
2349
2356
  class: "text-danger"
2350
- }, xl = ["id"], wl = {
2357
+ }, Nl = ["id"], Tl = {
2351
2358
  key: 2,
2352
2359
  class: "valid-feedback",
2353
2360
  style: { display: "block" }
2354
- }, Bl = ["id"], Nl = /* @__PURE__ */ C({
2361
+ }, Ml = ["id"], ql = /* @__PURE__ */ C({
2355
2362
  __name: "VibeFormSwitch",
2356
2363
  props: {
2357
2364
  modelValue: {
@@ -2374,15 +2381,15 @@ const re = /* @__PURE__ */ C({
2374
2381
  const t = e, a = f, l = y(() => {
2375
2382
  const d = ["form-check-input"];
2376
2383
  return t.validationState === "valid" && d.push("is-valid"), t.validationState === "invalid" && d.push("is-invalid"), d.join(" ");
2377
- }), o = (d) => {
2378
- const r = d.target;
2379
- a("update:modelValue", r.checked), a("change", d), t.validateOn === "change" && a("validate");
2380
- }, s = (d) => {
2384
+ }), r = (d) => {
2385
+ const u = d.target;
2386
+ a("update:modelValue", u.checked), a("change", d), t.validateOn === "change" && a("validate");
2387
+ }, n = (d) => {
2381
2388
  a("blur", d), t.validateOn === "blur" && a("validate");
2382
- }, u = (d) => {
2389
+ }, o = (d) => {
2383
2390
  a("focus", d);
2384
2391
  };
2385
- return (d, r) => (i(), n("div", kl, [
2392
+ return (d, u) => (i(), s("div", Cl, [
2386
2393
  h("input", {
2387
2394
  id: e.id,
2388
2395
  type: "checkbox",
@@ -2393,47 +2400,47 @@ const re = /* @__PURE__ */ C({
2393
2400
  "aria-invalid": e.validationState === "invalid",
2394
2401
  "aria-describedby": e.validationMessage || e.helpText ? `${e.id}-feedback` : void 0,
2395
2402
  role: "switch",
2396
- onChange: o,
2397
- onBlur: s,
2398
- onFocus: u
2399
- }, null, 42, Sl),
2400
- e.label ? (i(), n("label", {
2403
+ onChange: r,
2404
+ onBlur: n,
2405
+ onFocus: o
2406
+ }, null, 42, xl),
2407
+ e.label ? (i(), s("label", {
2401
2408
  key: 0,
2402
2409
  for: e.id,
2403
2410
  class: "form-check-label"
2404
2411
  }, [
2405
- w(b(e.label) + " ", 1),
2406
- e.required ? (i(), n("span", Cl, "*")) : v("", !0)
2407
- ], 8, Vl)) : v("", !0),
2408
- e.helpText && !e.validationMessage ? (i(), n("div", {
2412
+ B(b(e.label) + " ", 1),
2413
+ e.required ? (i(), s("span", wl, "*")) : v("", !0)
2414
+ ], 8, Bl)) : v("", !0),
2415
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2409
2416
  key: 1,
2410
2417
  id: `${e.id}-feedback`,
2411
2418
  class: "form-text"
2412
- }, b(e.helpText), 9, xl)) : v("", !0),
2413
- e.validationState === "valid" ? (i(), n("div", wl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2414
- e.validationState === "invalid" ? (i(), n("div", {
2419
+ }, b(e.helpText), 9, Nl)) : v("", !0),
2420
+ e.validationState === "valid" ? (i(), s("div", Tl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2421
+ e.validationState === "invalid" ? (i(), s("div", {
2415
2422
  key: 3,
2416
2423
  id: `${e.id}-feedback`,
2417
2424
  class: "invalid-feedback",
2418
2425
  style: { display: "block" }
2419
- }, b(e.validationMessage || "You must toggle this switch."), 9, Bl)) : v("", !0)
2426
+ }, b(e.validationMessage || "You must toggle this switch."), 9, Ml)) : v("", !0)
2420
2427
  ]));
2421
2428
  }
2422
- }), Tl = ["for"], Ml = {
2429
+ }), Pl = ["for"], Fl = {
2423
2430
  key: 0,
2424
2431
  class: "text-danger"
2425
- }, ql = ["id"], Pl = {
2432
+ }, Ll = ["id"], zl = {
2426
2433
  key: 1,
2427
2434
  class: "valid-feedback",
2428
2435
  style: { display: "block" }
2429
- }, Fl = ["id"], Ll = ["for"], zl = {
2436
+ }, jl = ["id"], Al = ["for"], Il = {
2430
2437
  key: 0,
2431
2438
  class: "text-danger"
2432
- }, Al = ["id"], jl = {
2439
+ }, Ol = ["id"], El = {
2433
2440
  key: 2,
2434
2441
  class: "valid-feedback",
2435
2442
  style: { display: "block" }
2436
- }, Il = ["id"], Ol = /* @__PURE__ */ C({
2443
+ }, Dl = ["id"], Rl = /* @__PURE__ */ C({
2437
2444
  __name: "VibeFormGroup",
2438
2445
  props: {
2439
2446
  label: { type: String, default: void 0 },
@@ -2449,77 +2456,77 @@ const re = /* @__PURE__ */ C({
2449
2456
  },
2450
2457
  setup(e) {
2451
2458
  const f = e, t = y(() => {
2452
- const s = [];
2453
- return f.floating ? s.push("form-floating") : f.row ? s.push("row", "mb-3") : s.push("mb-3"), s.join(" ");
2459
+ const n = [];
2460
+ return f.floating ? n.push("form-floating") : f.row ? n.push("row", "mb-3") : n.push("mb-3"), n.join(" ");
2454
2461
  }), a = y(() => {
2455
- const s = [];
2456
- return f.floating ? s.push("form-label") : f.row ? (s.push("col-form-label"), f.labelCols && s.push(`col-sm-${f.labelCols}`), f.labelAlign && s.push(`text-${f.labelAlign}`)) : s.push("form-label"), s.join(" ");
2457
- }), l = y(() => f.row && f.labelCols ? `col-sm-${12 - Number(f.labelCols)}` : ""), o = y(() => f.labelFor ? `${f.labelFor}-feedback` : void 0);
2458
- return (s, u) => (i(), n("div", {
2462
+ const n = [];
2463
+ return f.floating ? n.push("form-label") : f.row ? (n.push("col-form-label"), f.labelCols && n.push(`col-sm-${f.labelCols}`), f.labelAlign && n.push(`text-${f.labelAlign}`)) : n.push("form-label"), n.join(" ");
2464
+ }), l = y(() => f.row && f.labelCols ? `col-sm-${12 - Number(f.labelCols)}` : ""), r = y(() => f.labelFor ? `${f.labelFor}-feedback` : void 0);
2465
+ return (n, o) => (i(), s("div", {
2459
2466
  class: g(t.value)
2460
2467
  }, [
2461
- e.label && !e.floating ? (i(), n("label", {
2468
+ e.label && !e.floating ? (i(), s("label", {
2462
2469
  key: 0,
2463
2470
  for: e.labelFor,
2464
2471
  class: g(a.value)
2465
2472
  }, [
2466
- w(b(e.label) + " ", 1),
2467
- e.required ? (i(), n("span", Ml, "*")) : v("", !0)
2468
- ], 10, Tl)) : v("", !0),
2469
- e.row && e.labelCols ? (i(), n("div", {
2473
+ B(b(e.label) + " ", 1),
2474
+ e.required ? (i(), s("span", Fl, "*")) : v("", !0)
2475
+ ], 10, Pl)) : v("", !0),
2476
+ e.row && e.labelCols ? (i(), s("div", {
2470
2477
  key: 1,
2471
2478
  class: g(l.value)
2472
2479
  }, [
2473
- V(s.$slots, "default"),
2474
- e.helpText && !e.validationMessage ? (i(), n("div", {
2480
+ V(n.$slots, "default"),
2481
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2475
2482
  key: 0,
2476
- id: o.value,
2483
+ id: r.value,
2477
2484
  class: "form-text"
2478
- }, b(e.helpText), 9, ql)) : v("", !0),
2479
- e.validationState === "valid" ? (i(), n("div", Pl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2480
- e.validationState === "invalid" ? (i(), n("div", {
2485
+ }, b(e.helpText), 9, Ll)) : v("", !0),
2486
+ e.validationState === "valid" ? (i(), s("div", zl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2487
+ e.validationState === "invalid" ? (i(), s("div", {
2481
2488
  key: 2,
2482
- id: o.value,
2489
+ id: r.value,
2483
2490
  class: "invalid-feedback",
2484
2491
  style: { display: "block" }
2485
- }, b(e.validationMessage || "Please provide a valid value."), 9, Fl)) : v("", !0)
2486
- ], 2)) : (i(), n(F, { key: 2 }, [
2487
- V(s.$slots, "default"),
2488
- e.label && e.floating ? (i(), n("label", {
2492
+ }, b(e.validationMessage || "Please provide a valid value."), 9, jl)) : v("", !0)
2493
+ ], 2)) : (i(), s(F, { key: 2 }, [
2494
+ V(n.$slots, "default"),
2495
+ e.label && e.floating ? (i(), s("label", {
2489
2496
  key: 0,
2490
2497
  for: e.labelFor,
2491
2498
  class: g(a.value)
2492
2499
  }, [
2493
- w(b(e.label) + " ", 1),
2494
- e.required ? (i(), n("span", zl, "*")) : v("", !0)
2495
- ], 10, Ll)) : v("", !0),
2496
- e.helpText && !e.validationMessage ? (i(), n("div", {
2500
+ B(b(e.label) + " ", 1),
2501
+ e.required ? (i(), s("span", Il, "*")) : v("", !0)
2502
+ ], 10, Al)) : v("", !0),
2503
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2497
2504
  key: 1,
2498
- id: o.value,
2505
+ id: r.value,
2499
2506
  class: "form-text"
2500
- }, b(e.helpText), 9, Al)) : v("", !0),
2501
- e.validationState === "valid" ? (i(), n("div", jl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2502
- e.validationState === "invalid" ? (i(), n("div", {
2507
+ }, b(e.helpText), 9, Ol)) : v("", !0),
2508
+ e.validationState === "valid" ? (i(), s("div", El, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2509
+ e.validationState === "invalid" ? (i(), s("div", {
2503
2510
  key: 3,
2504
- id: o.value,
2511
+ id: r.value,
2505
2512
  class: "invalid-feedback",
2506
2513
  style: { display: "block" }
2507
- }, b(e.validationMessage || "Please provide a valid value."), 9, Il)) : v("", !0)
2514
+ }, b(e.validationMessage || "Please provide a valid value."), 9, Dl)) : v("", !0)
2508
2515
  ], 64))
2509
2516
  ], 2));
2510
2517
  }
2511
- }), El = { class: "mb-3" }, Dl = ["for"], Rl = {
2518
+ }), Xl = { class: "mb-3" }, Yl = ["for"], Gl = {
2512
2519
  key: 0,
2513
2520
  class: "text-danger"
2514
- }, Xl = {
2521
+ }, Hl = {
2515
2522
  key: 1,
2516
2523
  class: "alert alert-warning",
2517
2524
  role: "alert"
2518
- }, Yl = ["id"], Gl = ["id"], Hl = {
2525
+ }, Kl = ["id"], Ul = ["id"], Ql = {
2519
2526
  key: 4,
2520
2527
  class: "valid-feedback",
2521
2528
  style: { display: "block" }
2522
- }, Kl = ["id"], Ul = /* @__PURE__ */ C({
2529
+ }, Wl = ["id"], Jl = /* @__PURE__ */ C({
2523
2530
  __name: "VibeFormWysiwyg",
2524
2531
  props: {
2525
2532
  modelValue: {
@@ -2543,19 +2550,19 @@ const re = /* @__PURE__ */ C({
2543
2550
  },
2544
2551
  emits: ["update:modelValue", "validate", "blur", "focus", "change", "ready"],
2545
2552
  setup(e, { emit: f }) {
2546
- const t = e, a = f, l = T(null), o = T(null), s = T(!1), u = T(null), d = T(!1), r = T(null), c = T(null), m = T(null), p = y(() => {
2553
+ const t = e, a = f, l = T(null), r = T(null), n = T(!1), o = T(null), d = T(!1), u = T(null), c = T(null), m = T(null), p = y(() => {
2547
2554
  const N = ["vibe-wysiwyg-container"];
2548
2555
  return t.validationState === "valid" && N.push("is-valid"), t.validationState === "invalid" && N.push("is-invalid"), t.disabled && N.push("disabled"), N.join(" ");
2549
- }), B = [
2556
+ }), w = [
2550
2557
  [{ header: [1, 2, 3, !1] }],
2551
2558
  ["bold", "italic", "underline", "strike"],
2552
2559
  [{ list: "ordered" }, { list: "bullet" }],
2553
2560
  [{ color: [] }, { background: [] }],
2554
2561
  ["link", "image"],
2555
2562
  ["clean"]
2556
- ], x = () => t.toolbar === !1 ? !1 : t.toolbar === !0 || t.toolbar === void 0 ? B : t.toolbar, A = (N) => {
2557
- o.value && (d.value = !0, o.value.setContents([], "silent"), N && o.value.clipboard.dangerouslyPasteHTML(N, "silent"), d.value = !1);
2558
- }, j = () => !o.value || o.value.getText().trim().length === 0 ? "" : o.value.getSemanticHTML();
2563
+ ], x = () => t.toolbar === !1 ? !1 : t.toolbar === !0 || t.toolbar === void 0 ? w : t.toolbar, j = (N) => {
2564
+ r.value && (d.value = !0, r.value.setContents([], "silent"), N && r.value.clipboard.dangerouslyPasteHTML(N, "silent"), d.value = !1);
2565
+ }, A = () => !r.value || r.value.getText().trim().length === 0 ? "" : r.value.getSemanticHTML();
2559
2566
  return G(async () => {
2560
2567
  try {
2561
2568
  const N = await import("quill"), O = N.default || N;
@@ -2568,38 +2575,38 @@ const re = /* @__PURE__ */ C({
2568
2575
  toolbar: x()
2569
2576
  }
2570
2577
  };
2571
- o.value = new O(l.value, K), t.modelValue && A(t.modelValue), m.value = () => {
2578
+ r.value = new O(l.value, K), t.modelValue && j(t.modelValue), m.value = () => {
2572
2579
  if (d.value) return;
2573
- const U = j();
2580
+ const U = A();
2574
2581
  a("update:modelValue", U), a("change"), t.validateOn === "change" && a("validate");
2575
- }, o.value.on("text-change", m.value), r.value = () => {
2582
+ }, r.value.on("text-change", m.value), u.value = () => {
2576
2583
  a("blur"), t.validateOn === "blur" && a("validate");
2577
- }, o.value.root.addEventListener("blur", r.value), c.value = () => {
2584
+ }, r.value.root.addEventListener("blur", u.value), c.value = () => {
2578
2585
  a("focus");
2579
- }, o.value.root.addEventListener("focus", c.value), s.value = !0, a("ready", o.value);
2586
+ }, r.value.root.addEventListener("focus", c.value), n.value = !0, a("ready", r.value);
2580
2587
  }
2581
2588
  } catch (N) {
2582
- console.error("Failed to load Quill editor:", N), u.value = "Failed to load WYSIWYG editor. Please install quill: npm install quill", s.value = !1;
2589
+ console.error("Failed to load Quill editor:", N), o.value = "Failed to load WYSIWYG editor. Please install quill: npm install quill", n.value = !1;
2583
2590
  }
2584
2591
  }), H(() => {
2585
- o.value && (m.value && (o.value.off("text-change", m.value), m.value = null), r.value && (o.value.root.removeEventListener("blur", r.value), r.value = null), c.value && (o.value.root.removeEventListener("focus", c.value), c.value = null), o.value = null);
2592
+ r.value && (m.value && (r.value.off("text-change", m.value), m.value = null), u.value && (r.value.root.removeEventListener("blur", u.value), u.value = null), c.value && (r.value.root.removeEventListener("focus", c.value), c.value = null), r.value = null);
2586
2593
  }), E(() => t.modelValue, (N) => {
2587
- if (!o.value) return;
2588
- j() !== (N || "") && A(N || "");
2594
+ if (!r.value) return;
2595
+ A() !== (N || "") && j(N || "");
2589
2596
  }), E(() => t.disabled, (N) => {
2590
- o.value && o.value.enable(!N);
2597
+ r.value && r.value.enable(!N);
2591
2598
  }), E(() => t.readonly, (N) => {
2592
- o.value && o.value.enable(!N);
2593
- }), (N, O) => (i(), n("div", El, [
2594
- e.label ? (i(), n("label", {
2599
+ r.value && r.value.enable(!N);
2600
+ }), (N, O) => (i(), s("div", Xl, [
2601
+ e.label ? (i(), s("label", {
2595
2602
  key: 0,
2596
2603
  for: e.id,
2597
2604
  class: "form-label"
2598
2605
  }, [
2599
- w(b(e.label) + " ", 1),
2600
- e.required ? (i(), n("span", Rl, "*")) : v("", !0)
2601
- ], 8, Dl)) : v("", !0),
2602
- u.value ? (i(), n("div", Xl, b(u.value), 1)) : (i(), n("div", {
2606
+ B(b(e.label) + " ", 1),
2607
+ e.required ? (i(), s("span", Gl, "*")) : v("", !0)
2608
+ ], 8, Yl)) : v("", !0),
2609
+ o.value ? (i(), s("div", Hl, b(o.value), 1)) : (i(), s("div", {
2603
2610
  key: 2,
2604
2611
  class: g(p.value),
2605
2612
  style: D({ minHeight: e.height })
@@ -2608,47 +2615,47 @@ const re = /* @__PURE__ */ C({
2608
2615
  ref_key: "editorContainer",
2609
2616
  ref: l,
2610
2617
  id: e.id
2611
- }, null, 8, Yl)
2618
+ }, null, 8, Kl)
2612
2619
  ], 6)),
2613
- e.helpText && !e.validationMessage ? (i(), n("div", {
2620
+ e.helpText && !e.validationMessage ? (i(), s("div", {
2614
2621
  key: 3,
2615
2622
  id: `${e.id}-feedback`,
2616
2623
  class: "form-text"
2617
- }, b(e.helpText), 9, Gl)) : v("", !0),
2618
- e.validationState === "valid" ? (i(), n("div", Hl, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2619
- e.validationState === "invalid" ? (i(), n("div", {
2624
+ }, b(e.helpText), 9, Ul)) : v("", !0),
2625
+ e.validationState === "valid" ? (i(), s("div", Ql, b(e.validationMessage || "Looks good!"), 1)) : v("", !0),
2626
+ e.validationState === "invalid" ? (i(), s("div", {
2620
2627
  key: 5,
2621
2628
  id: `${e.id}-feedback`,
2622
2629
  class: "invalid-feedback",
2623
2630
  style: { display: "block" }
2624
- }, b(e.validationMessage || "Please provide valid content."), 9, Kl)) : v("", !0)
2631
+ }, b(e.validationMessage || "Please provide valid content."), 9, Wl)) : v("", !0)
2625
2632
  ]));
2626
2633
  }
2627
- }), Ql = /* @__PURE__ */ Q(Ul, [["__scopeId", "data-v-8e6e81b0"]]), Jl = {
2634
+ }), Zl = /* @__PURE__ */ Q(Jl, [["__scopeId", "data-v-8e6e81b0"]]), ei = {
2628
2635
  install(e) {
2629
- e.component("VibeAlert", re), e.component("VibeBadge", ue), e.component("VibeButton", ce), e.component("VibeButtonGroup", ve), e.component("VibeCloseButton", me), e.component("VibeSpinner", ye), e.component("VibePlaceholder", ge), e.component("VibeContainer", pe), e.component("VibeRow", $e), e.component("VibeCol", ke), e.component("VibeCard", Te), e.component("VibeBreadcrumb", Fe), e.component("VibeNav", Le), e.component("VibeNavbar", ze), e.component("VibeNavbarBrand", Ae), e.component("VibeNavbarToggle", Ie), e.component("VibeNavbarNav", Oe), e.component("VibePagination", Ye), e.component("VibeTabContent", He), e.component("VibeListGroup", Ke), e.component("VibeProgress", Qe), e.component("VibeAccordion", tt), e.component("VibeCollapse", at), e.component("VibeDropdown", rt), e.component("VibeModal", ht), e.component("VibeOffcanvas", kt), e.component("VibeToast", wt), e.component("VibeCarousel", It), e.component("VibeTooltip", Et), e.component("VibePopover", Rt), e.component("VibeScrollspy", Xt), e.component("VibeIcon", Yt), e.component("VibeDataTable", ba), e.component("VibeFormInput", Sa), e.component("VibeFormSelect", Pa), e.component("VibeFormTextarea", Da), e.component("VibeFormSpinbutton", Za), e.component("VibeFormDatepicker", sl), e.component("VibeFormCheckbox", vl), e.component("VibeFormRadio", $l), e.component("VibeFormSwitch", Nl), e.component("VibeFormGroup", Ol), e.component("VibeFormWysiwyg", Ql);
2636
+ e.component("VibeAlert", fe), e.component("VibeBadge", ve), e.component("VibeButton", be), e.component("VibeButtonGroup", he), e.component("VibeCloseButton", ge), e.component("VibeSpinner", $e), e.component("VibePlaceholder", ke), e.component("VibeContainer", Se), e.component("VibeRow", Ve), e.component("VibeCol", Ce), e.component("VibeCard", Pe), e.component("VibeBreadcrumb", je), e.component("VibeNav", Ae), e.component("VibeNavbar", Ie), e.component("VibeNavbarBrand", Oe), e.component("VibeNavbarToggle", De), e.component("VibeNavbarNav", Re), e.component("VibePagination", Ke), e.component("VibeTabContent", Qe), e.component("VibeListGroup", We), e.component("VibeProgress", Ze), e.component("VibeAccordion", it), e.component("VibeCollapse", nt), e.component("VibeDropdown", ft), e.component("VibeModal", pt), e.component("VibeOffcanvas", Ct), e.component("VibeToast", Tt), e.component("VibeCarousel", Dt), e.component("VibeTooltip", Xt), e.component("VibePopover", Gt), e.component("VibeScrollspy", Ht), e.component("VibeIcon", Kt), e.component("VibeDataTable", ya), e.component("VibeFormInput", xa), e.component("VibeFormSelect", za), e.component("VibeFormTextarea", Ya), e.component("VibeFormSpinbutton", tl), e.component("VibeFormDatepicker", rl), e.component("VibeFormCheckbox", hl), e.component("VibeFormRadio", Vl), e.component("VibeFormSwitch", ql), e.component("VibeFormGroup", Rl), e.component("VibeFormWysiwyg", Zl);
2630
2637
  }
2631
2638
  };
2632
- function Zl(e = "") {
2633
- const f = T(e), t = T(null), a = T(""), l = T(!1), o = T(!1), s = T(!1), u = async (B) => {
2634
- if (!B)
2639
+ function ti(e = "") {
2640
+ const f = T(e), t = T(null), a = T(""), l = T(!1), r = T(!1), n = T(!1), o = async (w) => {
2641
+ if (!w)
2635
2642
  return t.value = null, a.value = "", { valid: !0 };
2636
- s.value = !0;
2643
+ n.value = !0;
2637
2644
  try {
2638
- const x = Array.isArray(B) ? B : [{ validator: B }];
2639
- for (const A of x) {
2640
- const j = await A.validator(f.value);
2641
- if (j === !1 || typeof j == "string")
2642
- return t.value = "invalid", a.value = typeof j == "string" ? j : A.message || "Invalid value", s.value = !1, { valid: !1, message: a.value };
2645
+ const x = Array.isArray(w) ? w : [{ validator: w }];
2646
+ for (const j of x) {
2647
+ const A = await j.validator(f.value);
2648
+ if (A === !1 || typeof A == "string")
2649
+ return t.value = "invalid", a.value = typeof A == "string" ? A : j.message || "Invalid value", n.value = !1, { valid: !1, message: a.value };
2643
2650
  }
2644
- return t.value = "valid", a.value = "", s.value = !1, { valid: !0 };
2651
+ return t.value = "valid", a.value = "", n.value = !1, { valid: !0 };
2645
2652
  } catch {
2646
- return t.value = "invalid", a.value = "Validation error occurred", s.value = !1, { valid: !1, message: a.value };
2653
+ return t.value = "invalid", a.value = "Validation error occurred", n.value = !1, { valid: !1, message: a.value };
2647
2654
  }
2648
2655
  }, d = () => {
2649
- f.value = e, t.value = null, a.value = "", l.value = !1, o.value = !1, s.value = !1;
2650
- }, r = () => {
2651
- o.value = !0;
2656
+ f.value = e, t.value = null, a.value = "", l.value = !1, r.value = !1, n.value = !1;
2657
+ }, u = () => {
2658
+ r.value = !0;
2652
2659
  }, c = () => {
2653
2660
  l.value = !0;
2654
2661
  }, m = y(() => t.value === "valid"), p = y(() => t.value === "invalid");
@@ -2657,17 +2664,17 @@ function Zl(e = "") {
2657
2664
  validationState: t,
2658
2665
  validationMessage: a,
2659
2666
  isDirty: l,
2660
- isTouched: o,
2661
- isValidating: s,
2667
+ isTouched: r,
2668
+ isValidating: n,
2662
2669
  isValid: m,
2663
2670
  isInvalid: p,
2664
- validate: u,
2671
+ validate: o,
2665
2672
  reset: d,
2666
- markAsTouched: r,
2673
+ markAsTouched: u,
2667
2674
  markAsDirty: c
2668
2675
  };
2669
2676
  }
2670
- const _l = {
2677
+ const ai = {
2671
2678
  required: (e = "This field is required") => ({
2672
2679
  validator: (f) => Array.isArray(f) ? f.length > 0 || e : typeof f == "string" ? f.trim().length > 0 || e : f != null && f !== "" || e,
2673
2680
  message: e
@@ -2721,50 +2728,50 @@ const _l = {
2721
2728
  })
2722
2729
  };
2723
2730
  export {
2724
- tt as VibeAccordion,
2725
- re as VibeAlert,
2726
- ue as VibeBadge,
2727
- Fe as VibeBreadcrumb,
2728
- ce as VibeButton,
2729
- ve as VibeButtonGroup,
2730
- Te as VibeCard,
2731
- It as VibeCarousel,
2732
- me as VibeCloseButton,
2733
- ke as VibeCol,
2734
- at as VibeCollapse,
2735
- pe as VibeContainer,
2736
- ba as VibeDataTable,
2737
- rt as VibeDropdown,
2738
- vl as VibeFormCheckbox,
2739
- sl as VibeFormDatepicker,
2740
- Ol as VibeFormGroup,
2741
- Sa as VibeFormInput,
2742
- $l as VibeFormRadio,
2743
- Pa as VibeFormSelect,
2744
- Za as VibeFormSpinbutton,
2745
- Nl as VibeFormSwitch,
2746
- Da as VibeFormTextarea,
2747
- Ql as VibeFormWysiwyg,
2748
- Yt as VibeIcon,
2749
- Ke as VibeListGroup,
2750
- ht as VibeModal,
2751
- Le as VibeNav,
2752
- ze as VibeNavbar,
2753
- Ae as VibeNavbarBrand,
2754
- Oe as VibeNavbarNav,
2755
- Ie as VibeNavbarToggle,
2756
- kt as VibeOffcanvas,
2757
- Ye as VibePagination,
2758
- ge as VibePlaceholder,
2759
- Rt as VibePopover,
2760
- Qe as VibeProgress,
2761
- $e as VibeRow,
2762
- Xt as VibeScrollspy,
2763
- ye as VibeSpinner,
2764
- He as VibeTabContent,
2765
- wt as VibeToast,
2766
- Et as VibeTooltip,
2767
- Jl as default,
2768
- Zl as useFormValidation,
2769
- _l as validators
2731
+ it as VibeAccordion,
2732
+ fe as VibeAlert,
2733
+ ve as VibeBadge,
2734
+ je as VibeBreadcrumb,
2735
+ be as VibeButton,
2736
+ he as VibeButtonGroup,
2737
+ Pe as VibeCard,
2738
+ Dt as VibeCarousel,
2739
+ ge as VibeCloseButton,
2740
+ Ce as VibeCol,
2741
+ nt as VibeCollapse,
2742
+ Se as VibeContainer,
2743
+ ya as VibeDataTable,
2744
+ ft as VibeDropdown,
2745
+ hl as VibeFormCheckbox,
2746
+ rl as VibeFormDatepicker,
2747
+ Rl as VibeFormGroup,
2748
+ xa as VibeFormInput,
2749
+ Vl as VibeFormRadio,
2750
+ za as VibeFormSelect,
2751
+ tl as VibeFormSpinbutton,
2752
+ ql as VibeFormSwitch,
2753
+ Ya as VibeFormTextarea,
2754
+ Zl as VibeFormWysiwyg,
2755
+ Kt as VibeIcon,
2756
+ We as VibeListGroup,
2757
+ pt as VibeModal,
2758
+ Ae as VibeNav,
2759
+ Ie as VibeNavbar,
2760
+ Oe as VibeNavbarBrand,
2761
+ Re as VibeNavbarNav,
2762
+ De as VibeNavbarToggle,
2763
+ Ct as VibeOffcanvas,
2764
+ Ke as VibePagination,
2765
+ ke as VibePlaceholder,
2766
+ Gt as VibePopover,
2767
+ Ze as VibeProgress,
2768
+ Ve as VibeRow,
2769
+ Ht as VibeScrollspy,
2770
+ $e as VibeSpinner,
2771
+ Qe as VibeTabContent,
2772
+ Tt as VibeToast,
2773
+ Xt as VibeTooltip,
2774
+ ei as default,
2775
+ ti as useFormValidation,
2776
+ ai as validators
2770
2777
  };