@volverjs/ui-vue 0.0.1-beta.11 → 0.0.1-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/components/VvBadge/VvBadge.d.ts +1 -1
  2. package/dist/components/VvBadge/VvBadge.es.js +165 -12
  3. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  4. package/dist/components/VvBadge/VvBadge.vue.d.ts +4 -4
  5. package/dist/components/VvBreadcrumb/VvBreadcrumb.d.ts +1 -1
  6. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +4 -4
  7. package/dist/components/VvButton/VvButton.d.ts +2 -33
  8. package/dist/components/VvButton/VvButton.es.js +183 -198
  9. package/dist/components/VvButton/VvButton.umd.js +1 -1
  10. package/dist/components/VvButton/VvButton.vue.d.ts +9 -44
  11. package/dist/components/VvButton/useButtonGroupProps.d.ts +1 -6
  12. package/dist/components/VvButtonGroup/VvButtonGroup.d.ts +2 -26
  13. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +68 -78
  14. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  15. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +9 -69
  16. package/dist/components/VvDropdown/VvDropdown.d.ts +1 -1
  17. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +4 -4
  18. package/dist/components/VvInputText/VvInputText.d.ts +1 -1
  19. package/dist/components/VvInputText/VvInputText.vue.d.ts +4 -4
  20. package/dist/components/VvProgress/VvProgress.d.ts +1 -1
  21. package/dist/components/VvProgress/VvProgress.vue.d.ts +4 -4
  22. package/dist/components/VvSelect/VvSelect.d.ts +5 -1
  23. package/dist/components/VvSelect/VvSelect.es.js +395 -207
  24. package/dist/components/VvSelect/VvSelect.umd.js +2 -2
  25. package/dist/components/VvSelect/VvSelect.vue.d.ts +12 -5
  26. package/dist/components/VvTextarea/VvTextarea.d.ts +1 -1
  27. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +4 -4
  28. package/dist/components/index.es.js +579 -610
  29. package/dist/components/index.umd.js +2 -2
  30. package/dist/composables/group/types/IButtonGroupState.d.ts +4 -0
  31. package/dist/icons.es.js +3 -3
  32. package/dist/icons.umd.js +1 -1
  33. package/dist/index.es.js +553 -585
  34. package/dist/index.umd.js +2 -2
  35. package/dist/props/index.d.ts +2 -1
  36. package/dist/stories/RadioGroup/RadioOption.test.d.ts +4 -0
  37. package/dist/stories/RadioGroup/RadioProperty.test.d.ts +1 -1
  38. package/dist/stories/RadioGroup/RadioSlots.test.d.ts +6 -0
  39. package/package.json +2 -2
  40. package/src/assets/icons/detailed.json +1 -1
  41. package/src/assets/icons/normal.json +1 -1
  42. package/src/assets/icons/simple.json +1 -1
  43. package/src/components/VvBadge/VvBadge.ts +4 -2
  44. package/src/components/VvBadge/VvBadge.vue +8 -3
  45. package/src/components/VvButton/VvButton.ts +4 -34
  46. package/src/components/VvButton/VvButton.vue +3 -12
  47. package/src/components/VvButton/useButtonGroupProps.ts +3 -11
  48. package/src/components/VvButtonGroup/VvButtonGroup.ts +4 -17
  49. package/src/components/VvButtonGroup/VvButtonGroup.vue +5 -16
  50. package/src/components/VvSelect/VvSelect.ts +5 -1
  51. package/src/components/VvSelect/VvSelect.vue +7 -1
  52. package/src/composables/group/types/IButtonGroupState.ts +4 -0
  53. package/src/props/index.ts +3 -1
  54. package/src/stories/Badge/BadgeColor.stories.mdx +4 -4
  55. package/src/stories/Badge/BadgeModifiers.stories.mdx +65 -0
  56. package/src/stories/Button/ButtonActive.stories.mdx +27 -0
  57. package/src/stories/Button/ButtonDisabled.stories.mdx +28 -0
  58. package/src/stories/Button/ButtonIconPosition.stories.mdx +0 -1
  59. package/src/stories/Button/ButtonModifiers.stories.mdx +103 -46
  60. package/src/stories/Button/ButtonSelected.stories.mdx +30 -0
  61. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +2 -2
  62. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +2 -2
  63. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +1 -1
  64. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +1 -1
  65. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +6 -6
  66. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +7 -2
  67. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +7 -19
  68. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +7 -19
  69. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +3 -17
  70. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +10 -9
  71. package/src/stories/RadioGroup/RadioOption.test.ts +45 -0
  72. package/src/stories/RadioGroup/RadioProperty.test.ts +4 -4
  73. package/src/stories/RadioGroup/RadioSlots.test.ts +29 -0
  74. package/src/stories/Select/SelectNative.stories.mdx +45 -0
  75. package/src/stories/stories.scss +5 -27
  76. package/src/stories/Button/ButtonVariant.stories.mdx +0 -205
  77. package/src/stories/Button/test.js +0 -41
  78. package/src/stories/Radio/RadioTest.js +0 -90
  79. package/src/stories/RadioGroup/RadioOptionsTest.js +0 -78
  80. package/src/stories/RadioGroup/RadioPropertyTest.js +0 -131
  81. package/src/stories/RadioGroup/RadioSlotsTest.js +0 -20
@@ -1,13 +1,20 @@
1
- import { computed as f, unref as y, defineComponent as D, ref as T, toRefs as R, inject as q, openBlock as b, createBlock as O, mergeProps as F, createCommentVNode as C, toRef as Z, useAttrs as z, resolveDynamicComponent as H, withCtx as J, renderSlot as A, createElementBlock as w, toDisplayString as j, Fragment as X, createTextVNode as K } from "vue";
2
- import { v4 as W } from "uuid";
3
- import { iconExists as E, Icon as Y, addIcon as ee } from "@iconify/vue";
4
- var _ = /* @__PURE__ */ ((e) => (e.left = "left", e.right = "right", e.top = "top", e.bottom = "bottom", e))(_ || {}), k = /* @__PURE__ */ ((e) => (e.nuxtLink = "nuxt-link", e.routerLink = "router-link", e.a = "a", e.button = "button", e))(k || {}), P = /* @__PURE__ */ ((e) => (e._blank = "_blank", e._self = "_self", e._parent = "_parent", e._top = "_top", e))(P || {});
5
- const te = {
1
+ import { computed as d, unref as m, defineComponent as D, ref as G, toRefs as I, inject as P, openBlock as y, createBlock as A, mergeProps as B, createCommentVNode as _, toRef as M, useAttrs as U, useSlots as T, resolveDynamicComponent as Z, withCtx as z, renderSlot as k, createElementBlock as $, toDisplayString as L, Fragment as H, createTextVNode as J } from "vue";
2
+ import { v4 as X } from "uuid";
3
+ import { iconExists as w, Icon as K, addIcon as Q } from "@iconify/vue";
4
+ const W = {
5
+ disabled: Boolean
6
+ }, Y = {
7
+ modifiers: [String, Array]
8
+ };
9
+ var S = /* @__PURE__ */ ((e) => (e.left = "left", e.right = "right", e.top = "top", e.bottom = "bottom", e))(S || {}), b = /* @__PURE__ */ ((e) => (e.nuxtLink = "nuxt-link", e.routerLink = "router-link", e.a = "a", e.button = "button", e))(b || {}), R = /* @__PURE__ */ ((e) => (e._blank = "_blank", e._self = "_self", e._parent = "_parent", e._top = "_top", e))(R || {});
10
+ const ee = {
11
+ ...Y,
12
+ ...W,
6
13
  icon: String,
7
14
  iconPosition: {
8
15
  type: String,
9
16
  default: "left",
10
- validator: (e) => e in _
17
+ validator: (e) => e in S
11
18
  },
12
19
  label: String,
13
20
  loading: Boolean,
@@ -22,55 +29,48 @@ const te = {
22
29
  href: String,
23
30
  target: {
24
31
  type: String,
25
- validator: (e) => e in P
32
+ validator: (e) => e in R
26
33
  },
27
- block: Boolean,
28
34
  active: Boolean,
29
- rounded: Boolean,
30
- disabled: Boolean,
31
- fullBleed: Boolean,
32
- action: Boolean,
33
- actionQuiet: Boolean,
34
- selected: Boolean,
35
- modifiers: [Array, String]
36
- }, h = {
37
- equals(e, t, n) {
38
- return n ? this.resolveFieldData(e, n) === this.resolveFieldData(t, n) : this.deepEquals(e, t);
35
+ selected: Boolean
36
+ }, v = {
37
+ equals(e, t, r) {
38
+ return r ? this.resolveFieldData(e, r) === this.resolveFieldData(t, r) : this.deepEquals(e, t);
39
39
  },
40
40
  deepEquals(e, t) {
41
41
  if (e === t)
42
42
  return !0;
43
43
  if (e && t && typeof e == "object" && typeof t == "object") {
44
- const n = Array.isArray(e), o = Array.isArray(t);
45
- let r, l, a;
46
- if (n && o) {
44
+ const r = Array.isArray(e), o = Array.isArray(t);
45
+ let n, l, i;
46
+ if (r && o) {
47
47
  if (l = e.length, l != t.length)
48
48
  return !1;
49
- for (r = l; r-- !== 0; )
50
- if (!this.deepEquals(e[r], t[r]))
49
+ for (n = l; n-- !== 0; )
50
+ if (!this.deepEquals(e[n], t[n]))
51
51
  return !1;
52
52
  return !0;
53
53
  }
54
- if (n != o)
54
+ if (r != o)
55
55
  return !1;
56
- const u = e instanceof Date, c = t instanceof Date;
57
- if (u != c)
56
+ const a = e instanceof Date, c = t instanceof Date;
57
+ if (a != c)
58
58
  return !1;
59
- if (u && c)
59
+ if (a && c)
60
60
  return e.getTime() == t.getTime();
61
- const v = e instanceof RegExp, s = t instanceof RegExp;
62
- if (v != s)
61
+ const f = e instanceof RegExp, s = t instanceof RegExp;
62
+ if (f != s)
63
63
  return !1;
64
- if (v && s)
64
+ if (f && s)
65
65
  return e.toString() == t.toString();
66
- const i = Object.keys(e);
67
- if (l = i.length, l !== Object.keys(t).length)
66
+ const u = Object.keys(e);
67
+ if (l = u.length, l !== Object.keys(t).length)
68
68
  return !1;
69
- for (r = l; r-- !== 0; )
70
- if (!Object.prototype.hasOwnProperty.call(t, i[r]))
69
+ for (n = l; n-- !== 0; )
70
+ if (!Object.prototype.hasOwnProperty.call(t, u[n]))
71
71
  return !1;
72
- for (r = l; r-- !== 0; )
73
- if (a = i[r], !this.deepEquals(e[a], t[a]))
72
+ for (n = l; n-- !== 0; )
73
+ if (i = u[n], !this.deepEquals(e[i], t[i]))
74
74
  return !1;
75
75
  return !0;
76
76
  }
@@ -81,12 +81,12 @@ const te = {
81
81
  if (t.indexOf(".") === -1)
82
82
  return e[t];
83
83
  {
84
- const n = t.split(".");
84
+ const r = t.split(".");
85
85
  let o = e;
86
- for (let r = 0, l = n.length; r < l; ++r) {
86
+ for (let n = 0, l = r.length; n < l; ++n) {
87
87
  if (e == null)
88
88
  return null;
89
- o = o[n[r]];
89
+ o = o[r[n]];
90
90
  }
91
91
  return o;
92
92
  }
@@ -97,20 +97,20 @@ const te = {
97
97
  return !!(e && e.constructor && e.call && e.apply);
98
98
  },
99
99
  findIndexInList(e, t) {
100
- let n = -1;
100
+ let r = -1;
101
101
  if (t) {
102
102
  for (let o = 0; o < t.length; o++)
103
103
  if (this.equals(t[o], e)) {
104
- n = o;
104
+ r = o;
105
105
  break;
106
106
  }
107
107
  }
108
- return n;
108
+ return r;
109
109
  },
110
110
  contains(e, t) {
111
111
  if (e != null && t && t.length) {
112
- for (const n of t)
113
- if (this.equals(e, n))
112
+ for (const r of t)
113
+ if (this.equals(e, r))
114
114
  return !0;
115
115
  }
116
116
  return !1;
@@ -123,36 +123,36 @@ const te = {
123
123
  },
124
124
  pickBy(e, t) {
125
125
  return Object.fromEntries(
126
- Object.entries(e).filter(([n]) => t(n))
126
+ Object.entries(e).filter(([r]) => t(r))
127
127
  );
128
128
  },
129
129
  removeFromList(e, t) {
130
- const n = this.findIndexInList(e, t);
131
- return n > -1 ? t.filter((o, r) => r !== n) : t;
130
+ const r = this.findIndexInList(e, t);
131
+ return r > -1 ? t.filter((o, n) => n !== r) : t;
132
132
  },
133
133
  isString(e) {
134
134
  return typeof e == "string" || e instanceof String;
135
135
  },
136
136
  propsToObject(e) {
137
- return Object.keys(e).reduce((t, n) => {
138
- var o, r, l, a, u;
139
- return this.isFunction(e[n]) ? t[n] = e[n]() : Array.isArray(e[n]) ? t[n] = e[n][0]() : (o = e[n]) != null && o.type && (Array.isArray(e[n].type) ? t[n] = ((r = e[n]) == null ? void 0 : r.default) || ((l = e[n]) == null ? void 0 : l.type[0]()) : t[n] = ((a = e[n]) == null ? void 0 : a.default) || ((u = e[n]) == null ? void 0 : u.type())), t;
137
+ return Object.keys(e).reduce((t, r) => {
138
+ var o, n, l, i, a;
139
+ return this.isFunction(e[r]) ? t[r] = e[r]() : Array.isArray(e[r]) ? t[r] = e[r][0]() : (o = e[r]) != null && o.type && (Array.isArray(e[r].type) ? t[r] = ((n = e[r]) == null ? void 0 : n.default) || ((l = e[r]) == null ? void 0 : l.type[0]()) : t[r] = ((i = e[r]) == null ? void 0 : i.default) || ((a = e[r]) == null ? void 0 : a.type())), t;
140
140
  }, {});
141
141
  },
142
- filterArray(e, t, n) {
143
- return e.filter((o) => t.some((r) => typeof r == "string" ? o[n] == r : this.equals(
144
- o[n],
145
- r[n]
142
+ filterArray(e, t, r) {
143
+ return e.filter((o) => t.some((n) => typeof n == "string" ? o[r] == n : this.equals(
144
+ o[r],
145
+ n[r]
146
146
  )));
147
147
  },
148
148
  kebabCase(e) {
149
- var t, n;
149
+ var t, r;
150
150
  if (e)
151
- return (n = (t = e.match(
151
+ return (r = (t = e.match(
152
152
  /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
153
- )) == null ? void 0 : t.join("-")) == null ? void 0 : n.toLowerCase();
153
+ )) == null ? void 0 : t.join("-")) == null ? void 0 : r.toLowerCase();
154
154
  }
155
- }, ne = "ds", re = {
155
+ }, te = "ds", re = {
156
156
  color: String,
157
157
  width: {
158
158
  type: [String, Number]
@@ -184,22 +184,22 @@ const te = {
184
184
  type: [String, Array]
185
185
  }
186
186
  };
187
- function V(e, t) {
188
- const n = { [`${e}`]: !0 };
187
+ function q(e, t) {
188
+ const r = { [`${e}`]: !0 };
189
189
  return {
190
- bemCssClasses: f(() => Object.keys(t).reduce((r, l) => {
191
- const a = y(t[l]) || !1;
192
- if (!a)
193
- return r;
190
+ bemCssClasses: d(() => Object.keys(t).reduce((n, l) => {
191
+ const i = m(t[l]) || !1;
192
+ if (!i)
193
+ return n;
194
194
  if (l === "modifiers") {
195
- const u = Array.isArray(a) ? a : [a];
195
+ const a = Array.isArray(i) ? i : [i];
196
196
  return {
197
- ...r,
198
- ...u.reduce(
199
- (c, v) => ({
197
+ ...n,
198
+ ...a.reduce(
199
+ (c, f) => ({
200
200
  ...c,
201
- [`${e}--${h.kebabCase(
202
- v
201
+ [`${e}--${v.kebabCase(
202
+ f
203
203
  )}`]: !0
204
204
  }),
205
205
  {}
@@ -207,207 +207,192 @@ function V(e, t) {
207
207
  };
208
208
  } else
209
209
  return {
210
- ...r,
211
- [`${e}--${h.kebabCase(l)}`]: a
210
+ ...n,
211
+ [`${e}--${v.kebabCase(l)}`]: i
212
212
  };
213
- }, n) || {})
213
+ }, r) || {})
214
214
  };
215
215
  }
216
- const I = /* @__PURE__ */ D({
216
+ const j = /* @__PURE__ */ D({
217
217
  __name: "VvIcon",
218
218
  props: re,
219
219
  setup(e) {
220
- const t = e, n = T(!0), { modifiers: o } = R(t), r = q(ne), { bemCssClasses: l } = V("vv-icon", {
220
+ const t = e, r = G(!0), { modifiers: o } = I(t), n = P(te), { bemCssClasses: l } = q("vv-icon", {
221
221
  modifiers: o
222
- }), a = f(() => t.provider || (r == null ? void 0 : r.provider)), u = f(() => {
223
- const s = t.name || "", i = `@${a.value}:${t.prefix}:${t.name}`;
224
- return E(s) ? s : E(i) ? i : (r == null ? void 0 : r.iconsCollections.find((d) => {
225
- const g = `@${a.value}:${d.prefix}:${s}`;
226
- if (E(g))
227
- return g;
222
+ }), i = d(() => t.provider || (n == null ? void 0 : n.provider)), a = d(() => {
223
+ const s = t.name || "", u = `@${i.value}:${t.prefix}:${t.name}`;
224
+ return w(s) ? s : w(u) ? u : (n == null ? void 0 : n.iconsCollections.find((p) => {
225
+ const h = `@${i.value}:${p.prefix}:${s}`;
226
+ if (w(h))
227
+ return h;
228
228
  })) || s;
229
229
  });
230
230
  function c(s) {
231
- let i = null;
231
+ let u = null;
232
232
  if (typeof window > "u") {
233
- const { JSDOM: S } = require("jsdom");
234
- i = new S().window;
233
+ const { JSDOM: C } = require("jsdom");
234
+ u = new C().window;
235
235
  }
236
- return (i ? new i.DOMParser() : new window.DOMParser()).parseFromString(s, "text/html").querySelector("svg");
236
+ return (u ? new u.DOMParser() : new window.DOMParser()).parseFromString(s, "text/html").querySelector("svg");
237
237
  }
238
- function v(s) {
239
- const i = c(s), d = (i == null ? void 0 : i.innerHTML.trim()) || "";
240
- i && d && ee(`@${a.value}:${t.prefix}:${t.name}`, {
241
- body: d,
242
- height: i.viewBox.baseVal.height,
243
- width: i.viewBox.baseVal.width
238
+ function f(s) {
239
+ const u = c(s), p = (u == null ? void 0 : u.innerHTML.trim()) || "";
240
+ u && p && Q(`@${i.value}:${t.prefix}:${t.name}`, {
241
+ body: p,
242
+ height: u.viewBox.baseVal.height,
243
+ width: u.viewBox.baseVal.width
244
244
  });
245
245
  }
246
- return r && (t.src ? (n.value = !1, r.fetchIcon(t.src).then((s) => {
247
- s && (v(s), n.value = !0);
246
+ return n && (t.src ? (r.value = !1, n.fetchIcon(t.src).then((s) => {
247
+ s && (f(s), r.value = !0);
248
248
  }).catch((s) => {
249
249
  throw new Error(`During fetch icon: ${s == null ? void 0 : s.message}`);
250
- })) : t.svg && v(t.svg)), (s, i) => n.value ? (b(), O(y(Y), F({
250
+ })) : t.svg && f(t.svg)), (s, u) => r.value ? (y(), A(m(K), B({
251
251
  key: 0,
252
- class: y(l)
252
+ class: m(l)
253
253
  }, {
254
254
  ...s.$props,
255
- provider: y(a),
256
- icon: y(u)
257
- }), null, 16, ["class"])) : C("", !0);
255
+ provider: m(i),
256
+ icon: m(a)
257
+ }), null, 16, ["class"])) : _("", !0);
258
258
  }
259
259
  });
260
- function oe(e) {
261
- const t = q(e, void 0), n = f(() => h.isNotEmpty(t));
262
- function o(r, l, a) {
260
+ function ne(e) {
261
+ const t = P(e, void 0), r = d(() => v.isNotEmpty(t));
262
+ function o(n, l, i) {
263
263
  if (t != null && t.value) {
264
- const u = y(t.value)[r];
265
- return f({
264
+ const a = m(t.value)[n];
265
+ return d({
266
266
  get() {
267
- return u == null ? void 0 : u.value;
267
+ return a == null ? void 0 : a.value;
268
268
  },
269
269
  set(c) {
270
- u.value = c;
270
+ a.value = c;
271
271
  }
272
272
  });
273
273
  } else {
274
- const u = Z(l, r);
275
- return f({
274
+ const a = M(l, n);
275
+ return d({
276
276
  get() {
277
- return u.value;
277
+ return a.value;
278
278
  },
279
279
  set(c) {
280
- a && a(`update:${r}`, c);
280
+ i && i(`update:${n}`, c);
281
281
  }
282
282
  });
283
283
  }
284
284
  }
285
285
  return {
286
286
  group: t,
287
- isInGroup: n,
287
+ isInGroup: r,
288
288
  getGroupOrLocalRef: o
289
289
  };
290
290
  }
291
- const ie = Symbol("VV_BUTTON_GROUP");
291
+ const oe = Symbol("VV_BUTTON_GROUP");
292
292
  function se(e) {
293
- const { group: t, isInGroup: n, getGroupOrLocalRef: o } = oe(ie), { modifiers: r, fullBleed: l, iconPosition: a, icon: u, label: c, block: v, selected: s } = R(e), i = o("modelValue", e), d = o("disabled", e), g = o("toggle", e), p = o("rounded", e), S = o("action", e), $ = o("actionQuiet", e);
293
+ const { group: t, isInGroup: r, getGroupOrLocalRef: o } = ne(oe), { iconPosition: n, icon: l, label: i, selected: a } = I(e), c = o("modelValue", e), f = o("disabled", e), s = o("toggle", e), u = o("modifiers", e);
294
294
  return {
295
- modelValue: i,
296
- disabled: d,
297
- toggle: g,
298
- isInGroup: n,
295
+ modelValue: c,
296
+ disabled: f,
297
+ toggle: s,
298
+ isInGroup: r,
299
299
  group: t,
300
- modifiers: r,
301
- action: S,
302
- actionQuiet: $,
303
- selected: s,
304
- block: v,
305
- rounded: p,
306
- fullBleed: l,
307
- iconPosition: a,
308
- icon: u,
309
- label: c
300
+ modifiers: u,
301
+ selected: a,
302
+ iconPosition: n,
303
+ icon: l,
304
+ label: i
310
305
  };
311
306
  }
312
- const le = {
307
+ const ie = {
313
308
  key: 1,
314
309
  class: "vv-button__label"
315
- }, ae = {
310
+ }, le = {
316
311
  key: 1,
317
312
  class: "vv-button__label"
318
- }, de = /* @__PURE__ */ D({
313
+ }, fe = /* @__PURE__ */ D({
319
314
  __name: "VvButton",
320
- props: te,
315
+ props: ee,
321
316
  setup(e) {
322
- const t = e, n = z(), o = (n == null ? void 0 : n.name) || W(), {
323
- modifiers: r,
324
- action: l,
325
- actionQuiet: a,
326
- block: u,
327
- rounded: c,
328
- fullBleed: v,
329
- iconPosition: s,
330
- icon: i,
331
- label: d,
332
- modelValue: g,
333
- disabled: p,
334
- toggle: S,
335
- isInGroup: $
336
- } = se(t), L = f(() => {
317
+ const t = e, r = U(), o = T(), n = (r == null ? void 0 : r.name) || X(), {
318
+ modifiers: l,
319
+ iconPosition: i,
320
+ icon: a,
321
+ label: c,
322
+ modelValue: f,
323
+ disabled: s,
324
+ toggle: u,
325
+ isInGroup: p
326
+ } = se(t), h = d(() => {
337
327
  switch (!0) {
338
- case p.value:
339
- return k.button;
328
+ case s.value:
329
+ return b.button;
340
330
  case t.to !== void 0:
341
- return k.routerLink;
331
+ return b.routerLink;
342
332
  case t.href !== void 0:
343
- return k.a;
333
+ return b.a;
344
334
  default:
345
- return k.button;
335
+ return b.button;
346
336
  }
347
- }), x = f(() => S.value ? Array.isArray(g.value) ? h.contains(o, g.value) : h.equals(o, g.value) : t.active), N = f(() => S.value ? Array.isArray(g.value) ? h.contains(o, g.value) : h.equals(o, g.value) : t.selected), { bemCssClasses: G } = V("vv-button", {
348
- modifiers: r,
349
- active: x,
350
- action: l,
351
- actionQuiet: a,
352
- selected: N,
353
- block: u,
354
- rounded: c,
355
- fullBleed: v,
356
- disabled: p,
357
- reverse: f(
358
- () => [_.right, _.bottom].includes(
359
- s.value
337
+ }), E = d(() => u.value ? Array.isArray(f.value) ? v.contains(n, f.value) : v.equals(n, f.value) : t.active), C = d(() => u.value ? Array.isArray(f.value) ? v.contains(n, f.value) : v.equals(n, f.value) : t.selected), { bemCssClasses: F } = q("vv-button", {
338
+ modifiers: l,
339
+ active: E,
340
+ selected: C,
341
+ disabled: s,
342
+ reverse: d(
343
+ () => [S.right, S.bottom].includes(
344
+ i.value
360
345
  )
361
346
  ),
362
- column: f(
363
- () => [_.top, _.bottom].includes(
364
- s.value
347
+ column: d(
348
+ () => [S.top, S.bottom].includes(
349
+ i.value
365
350
  )
366
351
  ),
367
- iconOnly: f(() => (i == null ? void 0 : i.value) && !(d != null && d.value))
368
- }), M = f(() => ({
369
- ...U.value,
370
- "aria-label": t.label || n["aria-label"],
371
- "aria-disabled": p.value,
352
+ iconOnly: d(() => (a == null ? void 0 : a.value) && !(c != null && c.value) && !o.default)
353
+ }), V = d(() => ({
354
+ ...x.value,
355
+ "aria-label": t.label || r["aria-label"],
356
+ "aria-disabled": s.value,
372
357
  role: "button",
373
- class: G.value,
358
+ class: F.value,
374
359
  to: t.to
375
- })), U = f(() => {
376
- const m = L.value === k.a;
377
- let B = {};
378
- return m && (B = p.value ? {
360
+ })), x = d(() => {
361
+ const g = h.value === b.a;
362
+ let O = {};
363
+ return g && (O = s.value ? {
379
364
  href: "javascript:;"
380
365
  } : {
381
366
  target: t.target,
382
367
  href: t.href
383
- }), B;
368
+ }), O;
384
369
  });
385
- function Q() {
386
- $.value && (g.value = o);
370
+ function N() {
371
+ p.value && (f.value = n);
387
372
  }
388
- return (m, B) => (b(), O(H(y(L)), F(y(M), { onClickPassive: Q }), {
389
- default: J(() => [
390
- A(m.$slots, "default", {}, () => [
391
- m.loading ? A(m.$slots, "loading", { key: 0 }, () => [
392
- m.loadingIcon ? (b(), O(I, {
373
+ return (g, O) => (y(), A(Z(m(h)), B(m(V), { onClickPassive: N }), {
374
+ default: z(() => [
375
+ k(g.$slots, "default", {}, () => [
376
+ g.loading ? k(g.$slots, "loading", { key: 0 }, () => [
377
+ g.loadingIcon ? (y(), A(j, {
393
378
  key: 0,
394
379
  class: "vv-button__loading-icon",
395
- name: m.loadingIcon
396
- }, null, 8, ["name"])) : C("", !0),
397
- m.loadingLabel ? (b(), w("span", le, j(m.loadingLabel), 1)) : C("", !0)
398
- ]) : (b(), w(X, { key: 1 }, [
399
- A(m.$slots, "before"),
400
- y(i) ? (b(), O(I, {
380
+ name: g.loadingIcon
381
+ }, null, 8, ["name"])) : _("", !0),
382
+ g.loadingLabel ? (y(), $("span", ie, L(g.loadingLabel), 1)) : _("", !0)
383
+ ]) : (y(), $(H, { key: 1 }, [
384
+ k(g.$slots, "before"),
385
+ m(a) ? (y(), A(j, {
401
386
  key: 0,
402
387
  class: "vv-button__icon",
403
- name: y(i)
404
- }, null, 8, ["name"])) : C("", !0),
405
- y(d) ? (b(), w("span", ae, [
406
- A(m.$slots, "label", {}, () => [
407
- K(j(y(d)), 1)
388
+ name: m(a)
389
+ }, null, 8, ["name"])) : _("", !0),
390
+ m(c) ? (y(), $("span", le, [
391
+ k(g.$slots, "label", {}, () => [
392
+ J(L(m(c)), 1)
408
393
  ])
409
- ])) : C("", !0),
410
- A(m.$slots, "after")
394
+ ])) : _("", !0),
395
+ k(g.$slots, "after")
411
396
  ], 64))
412
397
  ])
413
398
  ]),
@@ -416,5 +401,5 @@ const le = {
416
401
  }
417
402
  });
418
403
  export {
419
- de as default
404
+ fe as default
420
405
  };
@@ -1 +1 @@
1
- (function(n,B){typeof exports=="object"&&typeof module<"u"?module.exports=B(require("vue"),require("uuid"),require("@iconify/vue")):typeof define=="function"&&define.amd?define(["vue","uuid","@iconify/vue"],B):(n=typeof globalThis<"u"?globalThis:n||self,n.VvButton=B(n.vue,n.uuid,n.vue$1))})(this,function(n,B,_){"use strict";var b=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(b||{}),k=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(k||{}),O=(e=>(e._blank="_blank",e._self="_self",e._parent="_parent",e._top="_top",e))(O||{});const j={icon:String,iconPosition:{type:String,default:"left",validator:e=>e in b},label:String,loading:Boolean,loadingIcon:{type:String,default:"eos-icons:bubble-loading"},loadingLabel:{type:String,default:"Loading..."},to:{type:[String,Object]},href:String,target:{type:String,validator:e=>e in O},block:Boolean,active:Boolean,rounded:Boolean,disabled:Boolean,fullBleed:Boolean,action:Boolean,actionQuiet:Boolean,selected:Boolean,modifiers:[Array,String]},y={equals(e,t,r){return r?this.resolveFieldData(e,r)===this.resolveFieldData(t,r):this.deepEquals(e,t)},deepEquals(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){const r=Array.isArray(e),i=Array.isArray(t);let o,c,a;if(r&&i){if(c=e.length,c!=t.length)return!1;for(o=c;o--!==0;)if(!this.deepEquals(e[o],t[o]))return!1;return!0}if(r!=i)return!1;const u=e instanceof Date,f=t instanceof Date;if(u!=f)return!1;if(u&&f)return e.getTime()==t.getTime();const p=e instanceof RegExp,l=t instanceof RegExp;if(p!=l)return!1;if(p&&l)return e.toString()==t.toString();const s=Object.keys(e);if(c=s.length,c!==Object.keys(t).length)return!1;for(o=c;o--!==0;)if(!Object.prototype.hasOwnProperty.call(t,s[o]))return!1;for(o=c;o--!==0;)if(a=s[o],!this.deepEquals(e[a],t[a]))return!1;return!0}return e!==e&&t!==t},resolveFieldData(e,t){if(e&&Object.keys(e).length&&t){if(t.indexOf(".")===-1)return e[t];{const r=t.split(".");let i=e;for(let o=0,c=r.length;o<c;++o){if(e==null)return null;i=i[r[o]]}return i}}else return null},isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},findIndexInList(e,t){let r=-1;if(t){for(let i=0;i<t.length;i++)if(this.equals(t[i],e)){r=i;break}}return r},contains(e,t){if(e!=null&&t&&t.length){for(const r of t)if(this.equals(e,r))return!0}return!1},isEmpty(e){return e==null||e===""||Array.isArray(e)&&e.length===0||!(e instanceof Date)&&typeof e=="object"&&Object.keys(e).length===0},isNotEmpty(e){return!this.isEmpty(e)},pickBy(e,t){return Object.fromEntries(Object.entries(e).filter(([r])=>t(r)))},removeFromList(e,t){const r=this.findIndexInList(e,t);return r>-1?t.filter((i,o)=>o!==r):t},isString(e){return typeof e=="string"||e instanceof String},propsToObject(e){return Object.keys(e).reduce((t,r)=>{var i,o,c,a,u;return this.isFunction(e[r])?t[r]=e[r]():Array.isArray(e[r])?t[r]=e[r][0]():(i=e[r])!=null&&i.type&&(Array.isArray(e[r].type)?t[r]=((o=e[r])==null?void 0:o.default)||((c=e[r])==null?void 0:c.type[0]()):t[r]=((a=e[r])==null?void 0:a.default)||((u=e[r])==null?void 0:u.type())),t},{})},filterArray(e,t,r){return e.filter(i=>t.some(o=>typeof o=="string"?i[r]==o:this.equals(i[r],o[r])))},kebabCase(e){var t,r;if(e)return(r=(t=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:t.join("-"))==null?void 0:r.toLowerCase()}},L="ds",V={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};function E(e,t){const r={[`${e}`]:!0};return{bemCssClasses:n.computed(()=>Object.keys(t).reduce((o,c)=>{const a=n.unref(t[c])||!1;if(!a)return o;if(c==="modifiers"){const u=Array.isArray(a)?a:[a];return{...o,...u.reduce((f,p)=>({...f,[`${e}--${y.kebabCase(p)}`]:!0}),{})}}else return{...o,[`${e}--${y.kebabCase(c)}`]:a}},r)||{})}}const w=n.defineComponent({__name:"VvIcon",props:V,setup(e){const t=e,r=n.ref(!0),{modifiers:i}=n.toRefs(t),o=n.inject(L),{bemCssClasses:c}=E("vv-icon",{modifiers:i}),a=n.computed(()=>t.provider||(o==null?void 0:o.provider)),u=n.computed(()=>{const l=t.name||"",s=`@${a.value}:${t.prefix}:${t.name}`;return _.iconExists(l)?l:_.iconExists(s)?s:(o==null?void 0:o.iconsCollections.find(d=>{const m=`@${a.value}:${d.prefix}:${l}`;if(_.iconExists(m))return m}))||l});function f(l){let s=null;if(typeof window>"u"){const{JSDOM:S}=require("jsdom");s=new S().window}return(s?new s.DOMParser:new window.DOMParser).parseFromString(l,"text/html").querySelector("svg")}function p(l){const s=f(l),d=(s==null?void 0:s.innerHTML.trim())||"";s&&d&&_.addIcon(`@${a.value}:${t.prefix}:${t.name}`,{body:d,height:s.viewBox.baseVal.height,width:s.viewBox.baseVal.width})}return o&&(t.src?(r.value=!1,o.fetchIcon(t.src).then(l=>{l&&(p(l),r.value=!0)}).catch(l=>{throw new Error(`During fetch icon: ${l==null?void 0:l.message}`)})):t.svg&&p(t.svg)),(l,s)=>r.value?(n.openBlock(),n.createBlock(n.unref(_.Icon),n.mergeProps({key:0,class:n.unref(c)},{...l.$props,provider:n.unref(a),icon:n.unref(u)}),null,16,["class"])):n.createCommentVNode("",!0)}});function q(e){const t=n.inject(e,void 0),r=n.computed(()=>y.isNotEmpty(t));function i(o,c,a){if(t!=null&&t.value){const u=n.unref(t.value)[o];return n.computed({get(){return u==null?void 0:u.value},set(f){u.value=f}})}else{const u=n.toRef(c,o);return n.computed({get(){return u.value},set(f){a&&a(`update:${o}`,f)}})}}return{group:t,isInGroup:r,getGroupOrLocalRef:i}}const D=Symbol("VV_BUTTON_GROUP");function I(e){const{group:t,isInGroup:r,getGroupOrLocalRef:i}=q(D),{modifiers:o,fullBleed:c,iconPosition:a,icon:u,label:f,block:p,selected:l}=n.toRefs(e),s=i("modelValue",e),d=i("disabled",e),m=i("toggle",e),h=i("rounded",e),S=i("action",e),C=i("actionQuiet",e);return{modelValue:s,disabled:d,toggle:m,isInGroup:r,group:t,modifiers:o,action:S,actionQuiet:C,selected:l,block:p,rounded:h,fullBleed:c,iconPosition:a,icon:u,label:f}}const R={key:1,class:"vv-button__label"},x={key:1,class:"vv-button__label"};return n.defineComponent({__name:"VvButton",props:j,setup(e){const t=e,r=n.useAttrs(),i=(r==null?void 0:r.name)||B.v4(),{modifiers:o,action:c,actionQuiet:a,block:u,rounded:f,fullBleed:p,iconPosition:l,icon:s,label:d,modelValue:m,disabled:h,toggle:S,isInGroup:C}=I(t),$=n.computed(()=>{switch(!0){case h.value:return k.button;case t.to!==void 0:return k.routerLink;case t.href!==void 0:return k.a;default:return k.button}}),P=n.computed(()=>S.value?Array.isArray(m.value)?y.contains(i,m.value):y.equals(i,m.value):t.active),F=n.computed(()=>S.value?Array.isArray(m.value)?y.contains(i,m.value):y.equals(i,m.value):t.selected),{bemCssClasses:N}=E("vv-button",{modifiers:o,active:P,action:c,actionQuiet:a,selected:F,block:u,rounded:f,fullBleed:p,disabled:h,reverse:n.computed(()=>[b.right,b.bottom].includes(l.value)),column:n.computed(()=>[b.top,b.bottom].includes(l.value)),iconOnly:n.computed(()=>(s==null?void 0:s.value)&&!(d!=null&&d.value))}),G=n.computed(()=>({...M.value,"aria-label":t.label||r["aria-label"],"aria-disabled":h.value,role:"button",class:N.value,to:t.to})),M=n.computed(()=>{const g=$.value===k.a;let A={};return g&&(A=h.value?{href:"javascript:;"}:{target:t.target,href:t.href}),A});function T(){C.value&&(m.value=i)}return(g,A)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref($)),n.mergeProps(n.unref(G),{onClickPassive:T}),{default:n.withCtx(()=>[n.renderSlot(g.$slots,"default",{},()=>[g.loading?n.renderSlot(g.$slots,"loading",{key:0},()=>[g.loadingIcon?(n.openBlock(),n.createBlock(w,{key:0,class:"vv-button__loading-icon",name:g.loadingIcon},null,8,["name"])):n.createCommentVNode("",!0),g.loadingLabel?(n.openBlock(),n.createElementBlock("span",R,n.toDisplayString(g.loadingLabel),1)):n.createCommentVNode("",!0)]):(n.openBlock(),n.createElementBlock(n.Fragment,{key:1},[n.renderSlot(g.$slots,"before"),n.unref(s)?(n.openBlock(),n.createBlock(w,{key:0,class:"vv-button__icon",name:n.unref(s)},null,8,["name"])):n.createCommentVNode("",!0),n.unref(d)?(n.openBlock(),n.createElementBlock("span",x,[n.renderSlot(g.$slots,"label",{},()=>[n.createTextVNode(n.toDisplayString(n.unref(d)),1)])])):n.createCommentVNode("",!0),n.renderSlot(g.$slots,"after")],64))])]),_:3},16))}})});
1
+ (function(n,S){typeof exports=="object"&&typeof module<"u"?module.exports=S(require("vue"),require("uuid"),require("@iconify/vue")):typeof define=="function"&&define.amd?define(["vue","uuid","@iconify/vue"],S):(n=typeof globalThis<"u"?globalThis:n||self,n.VvButton=S(n.vue,n.uuid,n.vue$1))})(this,function(n,S,k){"use strict";const w={disabled:Boolean},$={modifiers:[String,Array]};var y=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(y||{}),h=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(h||{}),A=(e=>(e._blank="_blank",e._self="_self",e._parent="_parent",e._top="_top",e))(A||{});const j={...$,...w,icon:String,iconPosition:{type:String,default:"left",validator:e=>e in y},label:String,loading:Boolean,loadingIcon:{type:String,default:"eos-icons:bubble-loading"},loadingLabel:{type:String,default:"Loading..."},to:{type:[String,Object]},href:String,target:{type:String,validator:e=>e in A},active:Boolean,selected:Boolean},p={equals(e,t,r){return r?this.resolveFieldData(e,r)===this.resolveFieldData(t,r):this.deepEquals(e,t)},deepEquals(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){const r=Array.isArray(e),s=Array.isArray(t);let o,c,l;if(r&&s){if(c=e.length,c!=t.length)return!1;for(o=c;o--!==0;)if(!this.deepEquals(e[o],t[o]))return!1;return!0}if(r!=s)return!1;const a=e instanceof Date,u=t instanceof Date;if(a!=u)return!1;if(a&&u)return e.getTime()==t.getTime();const d=e instanceof RegExp,i=t instanceof RegExp;if(d!=i)return!1;if(d&&i)return e.toString()==t.toString();const f=Object.keys(e);if(c=f.length,c!==Object.keys(t).length)return!1;for(o=c;o--!==0;)if(!Object.prototype.hasOwnProperty.call(t,f[o]))return!1;for(o=c;o--!==0;)if(l=f[o],!this.deepEquals(e[l],t[l]))return!1;return!0}return e!==e&&t!==t},resolveFieldData(e,t){if(e&&Object.keys(e).length&&t){if(t.indexOf(".")===-1)return e[t];{const r=t.split(".");let s=e;for(let o=0,c=r.length;o<c;++o){if(e==null)return null;s=s[r[o]]}return s}}else return null},isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},findIndexInList(e,t){let r=-1;if(t){for(let s=0;s<t.length;s++)if(this.equals(t[s],e)){r=s;break}}return r},contains(e,t){if(e!=null&&t&&t.length){for(const r of t)if(this.equals(e,r))return!0}return!1},isEmpty(e){return e==null||e===""||Array.isArray(e)&&e.length===0||!(e instanceof Date)&&typeof e=="object"&&Object.keys(e).length===0},isNotEmpty(e){return!this.isEmpty(e)},pickBy(e,t){return Object.fromEntries(Object.entries(e).filter(([r])=>t(r)))},removeFromList(e,t){const r=this.findIndexInList(e,t);return r>-1?t.filter((s,o)=>o!==r):t},isString(e){return typeof e=="string"||e instanceof String},propsToObject(e){return Object.keys(e).reduce((t,r)=>{var s,o,c,l,a;return this.isFunction(e[r])?t[r]=e[r]():Array.isArray(e[r])?t[r]=e[r][0]():(s=e[r])!=null&&s.type&&(Array.isArray(e[r].type)?t[r]=((o=e[r])==null?void 0:o.default)||((c=e[r])==null?void 0:c.type[0]()):t[r]=((l=e[r])==null?void 0:l.default)||((a=e[r])==null?void 0:a.type())),t},{})},filterArray(e,t,r){return e.filter(s=>t.some(o=>typeof o=="string"?s[r]==o:this.equals(s[r],o[r])))},kebabCase(e){var t,r;if(e)return(r=(t=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:t.join("-"))==null?void 0:r.toLowerCase()}},L="ds",V={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};function B(e,t){const r={[`${e}`]:!0};return{bemCssClasses:n.computed(()=>Object.keys(t).reduce((o,c)=>{const l=n.unref(t[c])||!1;if(!l)return o;if(c==="modifiers"){const a=Array.isArray(l)?l:[l];return{...o,...a.reduce((u,d)=>({...u,[`${e}--${p.kebabCase(d)}`]:!0}),{})}}else return{...o,[`${e}--${p.kebabCase(c)}`]:l}},r)||{})}}const O=n.defineComponent({__name:"VvIcon",props:V,setup(e){const t=e,r=n.ref(!0),{modifiers:s}=n.toRefs(t),o=n.inject(L),{bemCssClasses:c}=B("vv-icon",{modifiers:s}),l=n.computed(()=>t.provider||(o==null?void 0:o.provider)),a=n.computed(()=>{const i=t.name||"",f=`@${l.value}:${t.prefix}:${t.name}`;return k.iconExists(i)?i:k.iconExists(f)?f:(o==null?void 0:o.iconsCollections.find(g=>{const b=`@${l.value}:${g.prefix}:${i}`;if(k.iconExists(b))return b}))||i});function u(i){let f=null;if(typeof window>"u"){const{JSDOM:_}=require("jsdom");f=new _().window}return(f?new f.DOMParser:new window.DOMParser).parseFromString(i,"text/html").querySelector("svg")}function d(i){const f=u(i),g=(f==null?void 0:f.innerHTML.trim())||"";f&&g&&k.addIcon(`@${l.value}:${t.prefix}:${t.name}`,{body:g,height:f.viewBox.baseVal.height,width:f.viewBox.baseVal.width})}return o&&(t.src?(r.value=!1,o.fetchIcon(t.src).then(i=>{i&&(d(i),r.value=!0)}).catch(i=>{throw new Error(`During fetch icon: ${i==null?void 0:i.message}`)})):t.svg&&d(t.svg)),(i,f)=>r.value?(n.openBlock(),n.createBlock(n.unref(k.Icon),n.mergeProps({key:0,class:n.unref(c)},{...i.$props,provider:n.unref(l),icon:n.unref(a)}),null,16,["class"])):n.createCommentVNode("",!0)}});function q(e){const t=n.inject(e,void 0),r=n.computed(()=>p.isNotEmpty(t));function s(o,c,l){if(t!=null&&t.value){const a=n.unref(t.value)[o];return n.computed({get(){return a==null?void 0:a.value},set(u){a.value=u}})}else{const a=n.toRef(c,o);return n.computed({get(){return a.value},set(u){l&&l(`update:${o}`,u)}})}}return{group:t,isInGroup:r,getGroupOrLocalRef:s}}const D=Symbol("VV_BUTTON_GROUP");function P(e){const{group:t,isInGroup:r,getGroupOrLocalRef:s}=q(D),{iconPosition:o,icon:c,label:l,selected:a}=n.toRefs(e),u=s("modelValue",e),d=s("disabled",e),i=s("toggle",e),f=s("modifiers",e);return{modelValue:u,disabled:d,toggle:i,isInGroup:r,group:t,modifiers:f,selected:a,iconPosition:o,icon:c,label:l}}const I={key:1,class:"vv-button__label"},R={key:1,class:"vv-button__label"};return n.defineComponent({__name:"VvButton",props:j,setup(e){const t=e,r=n.useAttrs(),s=n.useSlots(),o=(r==null?void 0:r.name)||S.v4(),{modifiers:c,iconPosition:l,icon:a,label:u,modelValue:d,disabled:i,toggle:f,isInGroup:g}=P(t),b=n.computed(()=>{switch(!0){case i.value:return h.button;case t.to!==void 0:return h.routerLink;case t.href!==void 0:return h.a;default:return h.button}}),E=n.computed(()=>f.value?Array.isArray(d.value)?p.contains(o,d.value):p.equals(o,d.value):t.active),_=n.computed(()=>f.value?Array.isArray(d.value)?p.contains(o,d.value):p.equals(o,d.value):t.selected),{bemCssClasses:x}=B("vv-button",{modifiers:c,active:E,selected:_,disabled:i,reverse:n.computed(()=>[y.right,y.bottom].includes(l.value)),column:n.computed(()=>[y.top,y.bottom].includes(l.value)),iconOnly:n.computed(()=>(a==null?void 0:a.value)&&!(u!=null&&u.value)&&!s.default)}),F=n.computed(()=>({...N.value,"aria-label":t.label||r["aria-label"],"aria-disabled":i.value,role:"button",class:x.value,to:t.to})),N=n.computed(()=>{const m=b.value===h.a;let C={};return m&&(C=i.value?{href:"javascript:;"}:{target:t.target,href:t.href}),C});function G(){g.value&&(d.value=o)}return(m,C)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(b)),n.mergeProps(n.unref(F),{onClickPassive:G}),{default:n.withCtx(()=>[n.renderSlot(m.$slots,"default",{},()=>[m.loading?n.renderSlot(m.$slots,"loading",{key:0},()=>[m.loadingIcon?(n.openBlock(),n.createBlock(O,{key:0,class:"vv-button__loading-icon",name:m.loadingIcon},null,8,["name"])):n.createCommentVNode("",!0),m.loadingLabel?(n.openBlock(),n.createElementBlock("span",I,n.toDisplayString(m.loadingLabel),1)):n.createCommentVNode("",!0)]):(n.openBlock(),n.createElementBlock(n.Fragment,{key:1},[n.renderSlot(m.$slots,"before"),n.unref(a)?(n.openBlock(),n.createBlock(O,{key:0,class:"vv-button__icon",name:n.unref(a)},null,8,["name"])):n.createCommentVNode("",!0),n.unref(u)?(n.openBlock(),n.createElementBlock("span",R,[n.renderSlot(m.$slots,"label",{},()=>[n.createTextVNode(n.toDisplayString(n.unref(u)),1)])])):n.createCommentVNode("",!0),n.renderSlot(m.$slots,"after")],64))])]),_:3},16))}})});