@shtabapp/ui-kit 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/SAvatar-BS9Lu2eL.js +249 -0
  3. package/dist/SAvatar-BXABKIV0.cjs +1 -0
  4. package/dist/{SAvatarGroup-Cc4sBQjA.cjs → SAvatarGroup-CMa9KhUZ.cjs} +1 -1
  5. package/dist/{SAvatarGroup-Buja-Gw9.js → SAvatarGroup-wkXHy_tK.js} +1 -1
  6. package/dist/SBadge-BDxQJh6c.js +83 -0
  7. package/dist/SBadge-d1GOPFP-.cjs +1 -0
  8. package/dist/SButton-C-z_q5CG.cjs +1 -0
  9. package/dist/SButton-DnU_XZ1C.js +223 -0
  10. package/dist/{SInput-Bno-hQ-b.cjs → SInput-DYS84eMS.cjs} +1 -1
  11. package/dist/{SInput-W2257ZAC.js → SInput-iNlzBX5m.js} +1 -1
  12. package/dist/{SList-Do2C2gPW.cjs → SList-CU2Sy9Md.cjs} +1 -1
  13. package/dist/{SList-d6s0V3x2.js → SList-C_S9ej45.js} +1 -1
  14. package/dist/{SListItem-BAWj5_pk.js → SListItem-BD7wvCNe.js} +11 -11
  15. package/dist/{SListItem-4OTUkahk.cjs → SListItem-BDkldLVt.cjs} +1 -1
  16. package/dist/SSelect-CgL7ECfS.cjs +1 -0
  17. package/dist/SSelect-iBb45tet.js +654 -0
  18. package/dist/{STabs-DLFs7km7.cjs → STabs-C6QQnCZd.cjs} +1 -1
  19. package/dist/{STabs-Cfv9NIJe.js → STabs-Ce7tHq8T.js} +10 -10
  20. package/dist/{STag-ZPesEPB4.js → STag-CYoj7L-p.js} +8 -8
  21. package/dist/{STag-DlVk53Cn.cjs → STag-DVrSWByQ.cjs} +1 -1
  22. package/dist/{STagGroup-C3-hAyGi.js → STagGroup-B2-_OG3R.js} +1 -1
  23. package/dist/{STagGroup-C4qL3p57.cjs → STagGroup-BMyuxfVX.cjs} +1 -1
  24. package/dist/components/SAvatar/SAvatar.types.d.ts +2 -0
  25. package/dist/components/SAvatar/SAvatar.types.d.ts.map +1 -1
  26. package/dist/components/SAvatar/SAvatar.vue.d.ts.map +1 -1
  27. package/dist/components/SAvatar/utils/useAvatarBadge.d.ts +13 -0
  28. package/dist/components/SAvatar/utils/useAvatarBadge.d.ts.map +1 -0
  29. package/dist/components/SBadge/SBadge.types.d.ts +15 -0
  30. package/dist/components/SBadge/SBadge.types.d.ts.map +1 -1
  31. package/dist/components/SBadge/SBadge.vue.d.ts.map +1 -1
  32. package/dist/components/SBadge/index.d.ts +1 -1
  33. package/dist/components/SBadge/index.d.ts.map +1 -1
  34. package/dist/components/SButton/SButton.types.d.ts +7 -0
  35. package/dist/components/SButton/SButton.types.d.ts.map +1 -1
  36. package/dist/components/SButton/SButton.vue.d.ts.map +1 -1
  37. package/dist/components/SButton/utils/useButtonBadge.d.ts +21 -0
  38. package/dist/components/SButton/utils/useButtonBadge.d.ts.map +1 -0
  39. package/dist/components/SDropdownMenu/SDropdownMenu.types.d.ts +12 -0
  40. package/dist/components/SDropdownMenu/SDropdownMenu.types.d.ts.map +1 -0
  41. package/dist/components/SDropdownMenu/SDropdownMenu.vue.d.ts +16 -0
  42. package/dist/components/SDropdownMenu/SDropdownMenu.vue.d.ts.map +1 -0
  43. package/dist/components/SDropdownMenu/index.d.ts +3 -0
  44. package/dist/components/SDropdownMenu/index.d.ts.map +1 -0
  45. package/dist/components/SList/utils/resolveListItemFields.d.ts +1 -1
  46. package/dist/components/SList/utils/resolveListItemFields.d.ts.map +1 -1
  47. package/dist/components/SSelect/SSelect.vue.d.ts.map +1 -1
  48. package/dist/entries/avatar-group.cjs +1 -1
  49. package/dist/entries/avatar-group.js +1 -1
  50. package/dist/entries/avatar.cjs +1 -1
  51. package/dist/entries/avatar.js +1 -1
  52. package/dist/entries/badge.cjs +1 -1
  53. package/dist/entries/badge.js +1 -1
  54. package/dist/entries/button.cjs +1 -1
  55. package/dist/entries/button.js +1 -1
  56. package/dist/entries/dropdown-menu.d.ts +3 -0
  57. package/dist/entries/dropdown-menu.d.ts.map +1 -0
  58. package/dist/entries/input.cjs +1 -1
  59. package/dist/entries/input.js +1 -1
  60. package/dist/entries/list-item.cjs +1 -1
  61. package/dist/entries/list-item.js +1 -1
  62. package/dist/entries/list.cjs +1 -1
  63. package/dist/entries/list.js +1 -1
  64. package/dist/entries/select.cjs +1 -1
  65. package/dist/entries/select.js +1 -1
  66. package/dist/entries/separator.d.ts +3 -0
  67. package/dist/entries/separator.d.ts.map +1 -0
  68. package/dist/entries/tabs.cjs +1 -1
  69. package/dist/entries/tabs.js +1 -1
  70. package/dist/entries/tag-group.cjs +1 -1
  71. package/dist/entries/tag-group.js +2 -2
  72. package/dist/entries/tag.cjs +1 -1
  73. package/dist/entries/tag.js +1 -1
  74. package/dist/index.cjs +1 -1
  75. package/dist/index.d.ts +2 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +30 -30
  78. package/dist/uikit-components.css +1 -1
  79. package/package.json +13 -3
  80. package/dist/SAvatar-CRq0LG8U.cjs +0 -1
  81. package/dist/SAvatar-kB6E-fX6.js +0 -187
  82. package/dist/SBadge-BQFJFZtw.cjs +0 -1
  83. package/dist/SBadge-CcCknHTw.js +0 -43
  84. package/dist/SButton-CHxE2l-X.cjs +0 -1
  85. package/dist/SButton-D5yFE3W2.js +0 -156
  86. package/dist/SSelect-DXlWQVj8.js +0 -620
  87. package/dist/SSelect-IoCVyA74.cjs +0 -1
  88. package/dist/components/SAvatar/SAvatarBadge.vue.d.ts +0 -5
  89. package/dist/components/SAvatar/SAvatarBadge.vue.d.ts.map +0 -1
@@ -0,0 +1,654 @@
1
+ import { n as e, r as t, t as n } from "./SButton.types-CpdHQtyx.js";
2
+ import { t as r } from "./SButton-DnU_XZ1C.js";
3
+ import { n as i } from "./useSelectionGroup-cKj38lEN.js";
4
+ import { n as a, t as o } from "./SInput-iNlzBX5m.js";
5
+ import { t as s } from "./SDropdown-Cv729__Y.js";
6
+ import { i as c, n as l, r as u, t as d } from "./SList-C_S9ej45.js";
7
+ import { t as f } from "./SListItem-BD7wvCNe.js";
8
+ import { computed as p, createBlock as ee, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createSlots as _, createTextVNode as te, createVNode as v, defineComponent as y, guardReactiveProps as b, isRef as ne, mergeModels as x, mergeProps as re, nextTick as S, normalizeClass as C, normalizeProps as w, normalizeStyle as ie, openBlock as T, ref as E, renderSlot as D, toDisplayString as O, toValue as k, unref as A, useId as ae, useModel as oe, useSlots as se, useTemplateRef as j, vModelText as ce, watch as M, withCtx as N, withDirectives as le, withModifiers as ue } from "vue";
9
+ import { SIcon as de } from "@shtabapp/ui-kit-primitives";
10
+ //#region src/components/SDropdownMenu/SDropdownMenu.vue?vue&type=script&setup=true&lang.ts
11
+ var fe = {
12
+ key: 0,
13
+ class: "s-ui-dropdown-menu__header"
14
+ }, pe = {
15
+ key: 1,
16
+ class: "s-ui-dropdown-menu__footer"
17
+ }, me = /* @__PURE__ */ y({
18
+ __name: "SDropdownMenu",
19
+ props: {
20
+ width: {},
21
+ maxHeight: {},
22
+ accent: {
23
+ type: Boolean,
24
+ default: !1
25
+ }
26
+ },
27
+ setup(e) {
28
+ let t = se(), n = (e) => typeof e == "number" ? `${e}px` : e, r = p(() => ({
29
+ "s-ui-dropdown-menu--accent": e.accent,
30
+ "s-ui-dropdown-menu--bounded": !!e.maxHeight
31
+ })), i = p(() => ({ "s-ui-dropdown-menu__body--scrollable": !!e.maxHeight })), a = p(() => ({
32
+ "--s-ui-dropdown-menu-width": n(e.width),
33
+ "--s-ui-dropdown-menu-max-height": n(e.maxHeight)
34
+ }));
35
+ return (e, n) => (T(), h("div", {
36
+ class: C(["s-ui-dropdown-menu", r.value]),
37
+ style: ie(a.value)
38
+ }, [
39
+ A(t).header ? (T(), h("div", fe, [D(e.$slots, "header")])) : m("", !0),
40
+ g("div", { class: C(["s-ui-dropdown-menu__body", i.value]) }, [D(e.$slots, "default")], 2),
41
+ A(t).footer ? (T(), h("div", pe, [D(e.$slots, "footer")])) : m("", !0)
42
+ ], 6));
43
+ }
44
+ }), he = ({ listItemScope: e, itemTitle: t, itemSubtitle: n, itemDisabled: r, itemIconLeft: i, listActiveKey: a, isOptionSelected: o }) => {
45
+ let s = e.item;
46
+ return {
47
+ rowKey: e.key,
48
+ title: c(s, t),
49
+ subtitle: c(s, n),
50
+ disabled: l(s, r),
51
+ iconLeft: u(s, i),
52
+ selected: o,
53
+ active: a === e.key,
54
+ revealRight: e.revealRight,
55
+ tiny: !0
56
+ };
57
+ }, P = (e) => typeof e == "string" || typeof e == "number", F = (e, t) => {
58
+ let n = e[t];
59
+ if (P(n)) return n;
60
+ }, I = (e) => typeof e == "string" ? e : String(e), L = (e) => e == null ? !1 : typeof e == "string" ? e.length > 0 : !0, R = (e, t, n) => t.find((t) => I(F(t, n) ?? "") === e), z = (e) => typeof e == "object" && !!e, B = (e, t, n) => {
61
+ let r = R(e, t, n);
62
+ if (r) return F(r, n);
63
+ }, V = /* @__PURE__ */ function(e) {
64
+ return e.INPUT = "input", e.CONTENT = "content", e;
65
+ }({}), ge = (e, t, n) => {
66
+ if (!e) return !0;
67
+ let r = e.toLocaleLowerCase(), i = c(t, n.itemTitle)?.toLocaleLowerCase() ?? "", a = I(F(t, n.itemValue) ?? "").toLocaleLowerCase();
68
+ return i.includes(r) || a.includes(r);
69
+ }, H = (e, t, n, r) => {
70
+ let i = r ?? ((e, t) => ge(e, t, n));
71
+ return t ? e.filter((e) => i(t, e)) : [...e];
72
+ }, U = (e) => typeof e == "string" && L(e), W = (e) => typeof e == "number" && L(e), G = (e, t, n) => {
73
+ if (t) {
74
+ if (!z(e)) return;
75
+ let t = F(e, n);
76
+ return U(t) || W(t) ? t : void 0;
77
+ }
78
+ let r = typeof e == "string" || typeof e == "number" ? e : void 0;
79
+ if (U(r) || W(r)) return r;
80
+ }, _e = (e, t, n) => e ? (Array.isArray(e) ? e : [e]).flatMap((e) => {
81
+ let r = G(e, t, n);
82
+ return L(r) ? [r] : [];
83
+ }) : [], ve = (e, t) => {
84
+ if (U(t)) {
85
+ e.value = t;
86
+ return;
87
+ }
88
+ if (W(t)) {
89
+ e.value = t;
90
+ return;
91
+ }
92
+ e.value = void 0;
93
+ }, ye = (e, t, n) => t.flatMap((t) => {
94
+ let r = I(t), i = e.find((e) => I(F(e, n) ?? "") === r);
95
+ return i ? [i] : [];
96
+ }), be = ({ modelValue: e, options: t, itemFields: n, multiple: r, returnObject: a, searchable: o, filterOption: s, isDropdownOpen: l, searchQuery: u }) => {
97
+ let d = p(() => k(r)), f = p(() => k(a)), ee = p(() => k(o) === V.INPUT), m = p(() => k(o) === V.CONTENT), h = p(() => !!k(o)), g = p(() => {
98
+ let t = k(n);
99
+ return _e(e.value, f.value, t.itemValue);
100
+ }), _ = p(() => {
101
+ let e = k(t), r = k(n);
102
+ return H(e, h.value ? u.value : "", r, k(s));
103
+ }), te = p(() => d.value ? i.MULTIPLE : i.SINGLE), v = (t, n, r) => {
104
+ if (f.value) {
105
+ e.value = ye(n, t, r);
106
+ return;
107
+ }
108
+ e.value = t;
109
+ }, y = (t, n, r) => {
110
+ if (!t) {
111
+ e.value = void 0;
112
+ return;
113
+ }
114
+ if (f.value) {
115
+ e.value = R(t, n, r) ?? void 0;
116
+ return;
117
+ }
118
+ ve(e, B(t, n, r));
119
+ }, b = p({
120
+ get: () => {
121
+ if (d.value) return g.value.map((e) => I(e));
122
+ let e = g.value[0];
123
+ if (L(e)) return I(e);
124
+ },
125
+ set: (e) => {
126
+ let r = k(t), i = k(n);
127
+ if (d.value) {
128
+ v((Array.isArray(e) ? e : []).map((e) => B(e, r, i.itemValue)).filter((e) => L(e)), r, i.itemValue);
129
+ return;
130
+ }
131
+ y(typeof e == "string" ? e : void 0, r, i.itemValue);
132
+ }
133
+ }), ne = p(() => g.value.length > 0), x = (e, t, n) => {
134
+ let r = I(t);
135
+ return e.find((e) => I(F(e, n) ?? "") === r);
136
+ }, re = p(() => {
137
+ let e = g.value[0];
138
+ if (!L(e)) return "";
139
+ let r = k(n), i = x(k(t), e, r.itemValue);
140
+ return i ? c(i, r.itemTitle) ?? "" : I(e);
141
+ }), S = p(() => {
142
+ let e = k(t), r = k(n);
143
+ return g.value.map((t) => {
144
+ let n = x(e, t, r.itemValue);
145
+ return n ? c(n, r.itemTitle) ?? "" : I(t);
146
+ });
147
+ }), C = p(() => S.value.join(", ")), w = p(() => d.value ? g.value.length === 0 : !re.value), ie = p(() => ee.value && (l.value || d.value)), T = () => {
148
+ u.value = "";
149
+ };
150
+ return M(l, (e) => {
151
+ e || T();
152
+ }), M(() => k(o), () => {
153
+ T();
154
+ }), {
155
+ searchQuery: u,
156
+ selectedValues: g,
157
+ filteredOptions: _,
158
+ listSelectionMode: te,
159
+ listSelectedModel: b,
160
+ hasSelectedValues: ne,
161
+ singleDisplayLabel: re,
162
+ multipleDisplayLabels: S,
163
+ multipleDisplayText: C,
164
+ showPlaceholder: w,
165
+ showInputSearchField: ie,
166
+ isSearchableMode: h,
167
+ isSearchableInputMode: ee,
168
+ isSearchableContentMode: m,
169
+ isMultipleMode: d,
170
+ isReturnObjectMode: f,
171
+ clearSelection: () => {
172
+ e.value = void 0, T();
173
+ },
174
+ removeSelectedValue: (e) => {
175
+ let r = I(e);
176
+ v(g.value.filter((e) => I(e) !== r), k(t), k(n).itemValue);
177
+ },
178
+ resetSearchQuery: T,
179
+ formatSelectListKey: I,
180
+ resolveValueFromListKey: (e) => B(e, k(t), k(n).itemValue)
181
+ };
182
+ }, xe = {
183
+ key: 1,
184
+ class: "s-ui-select__empty s-ui-typography-body-14-regular"
185
+ }, Se = [
186
+ "id",
187
+ "aria-expanded",
188
+ "aria-controls",
189
+ "aria-disabled",
190
+ "aria-readonly",
191
+ "aria-autocomplete",
192
+ "tabindex"
193
+ ], Ce = {
194
+ key: 0,
195
+ class: "s-ui-select__value"
196
+ }, we = {
197
+ key: 1,
198
+ class: "s-ui-select__placeholder"
199
+ }, Te = {
200
+ key: 1,
201
+ class: "s-ui-select__placeholder"
202
+ }, Ee = {
203
+ key: 2,
204
+ class: "s-ui-select__value"
205
+ }, De = {
206
+ key: 3,
207
+ class: "s-ui-select__value-suffix"
208
+ }, Oe = [
209
+ "name",
210
+ "placeholder",
211
+ "disabled",
212
+ "readonly"
213
+ ], ke = 20, Ae = 20, K = /* @__PURE__ */ y({
214
+ inheritAttrs: !1,
215
+ __name: "SSelect",
216
+ props: /*@__PURE__*/ x({
217
+ options: {},
218
+ itemValue: { default: "value" },
219
+ itemTitle: { default: "label" },
220
+ itemSubtitle: { default: "subtitle" },
221
+ itemId: {},
222
+ itemDisabled: { default: "disabled" },
223
+ itemIconLeft: { default: "iconLeft" },
224
+ multiple: {
225
+ type: Boolean,
226
+ default: !1
227
+ },
228
+ returnObject: {
229
+ type: Boolean,
230
+ default: !1
231
+ },
232
+ clearable: {
233
+ type: Boolean,
234
+ default: !1
235
+ },
236
+ closableOptions: {
237
+ type: Boolean,
238
+ default: !1
239
+ },
240
+ searchable: {
241
+ type: [String, Boolean],
242
+ default: !1
243
+ },
244
+ closeOnSelect: {
245
+ type: Boolean,
246
+ default: !0
247
+ },
248
+ listHeight: { default: 320 },
249
+ searchPlaceholder: { default: "Search" },
250
+ filterOption: { type: Function },
251
+ label: {},
252
+ labelProps: {},
253
+ placeholder: {},
254
+ helpMessages: {},
255
+ errorMessages: {},
256
+ bordered: {
257
+ type: Boolean,
258
+ default: !0
259
+ },
260
+ disabled: {
261
+ type: Boolean,
262
+ default: !1
263
+ },
264
+ readonly: {
265
+ type: Boolean,
266
+ default: !1
267
+ },
268
+ iconLeft: {},
269
+ customize: { default: () => a.NONE },
270
+ name: {},
271
+ id: {}
272
+ }, {
273
+ modelValue: {},
274
+ modelModifiers: {},
275
+ searchQuery: { default: "" },
276
+ searchQueryModifiers: {}
277
+ }),
278
+ emits: /*@__PURE__*/ x([
279
+ "clear",
280
+ "focus",
281
+ "blur",
282
+ "open",
283
+ "close"
284
+ ], ["update:modelValue", "update:searchQuery"]),
285
+ setup(i, { expose: a, emit: c }) {
286
+ let l = oe(i, "modelValue"), u = oe(i, "searchQuery"), y = c, x = se(), ie = ae(), k = ae(), fe = j("triggerInputRef"), pe = E(""), P = j("searchInputElementRef"), F = j("panelSearchInputElementRef"), I = j("listElementRef"), R = E(), z = E(!1), B = E(!1), V = p(() => i.itemId ?? i.itemValue), ge = p(() => ({
287
+ itemValue: i.itemValue,
288
+ itemTitle: i.itemTitle,
289
+ itemSubtitle: i.itemSubtitle,
290
+ itemId: V.value
291
+ })), { selectedValues: H, filteredOptions: U, listSelectionMode: W, listSelectedModel: G, hasSelectedValues: _e, singleDisplayLabel: ve, multipleDisplayLabels: ye, multipleDisplayText: K, showPlaceholder: q, showInputSearchField: J, isSearchableMode: je, isSearchableInputMode: Y, isSearchableContentMode: X, isMultipleMode: Z, clearSelection: Me, removeSelectedValue: Ne, resolveValueFromListKey: Pe, formatSelectListKey: Fe } = be({
292
+ modelValue: l,
293
+ options: () => i.options,
294
+ itemFields: () => ge.value,
295
+ multiple: () => i.multiple,
296
+ returnObject: () => i.returnObject,
297
+ searchable: () => i.searchable,
298
+ filterOption: () => i.filterOption,
299
+ isDropdownOpen: z,
300
+ searchQuery: u
301
+ }), Ie = p(() => !!x["value-suffix"]), Le = p(() => ({
302
+ disabled: i.disabled,
303
+ displayLabel: ve.value
304
+ })), Re = p(() => U.value.length > Ae), ze = p(() => X.value || Re.value ? i.listHeight : "auto"), Be = p(() => {
305
+ if (!(X.value || Re.value)) return i.listHeight;
306
+ }), Ve = p(() => H.value.map((e) => Fe(e))), He = (e) => Ve.value.includes(e), Ue = () => ({ tiny: !0 }), We = (e) => he({
307
+ listItemScope: e,
308
+ itemTitle: i.itemTitle,
309
+ itemSubtitle: i.itemSubtitle,
310
+ itemDisabled: i.itemDisabled,
311
+ itemIconLeft: i.itemIconLeft,
312
+ listActiveKey: R.value,
313
+ isOptionSelected: He(e.key)
314
+ }), Ge = (e) => {
315
+ let t = Pe(e);
316
+ if (L(t)) {
317
+ if (Z.value) {
318
+ Ne(t);
319
+ return;
320
+ }
321
+ l.value = void 0;
322
+ }
323
+ }, Ke = p(() => i.id ?? ie), qe = p(() => k), Je = p(() => fe.value?.fieldElementRef ?? null), Ye = p(() => ({
324
+ labels: ye.value,
325
+ values: H.value,
326
+ displayText: K.value,
327
+ disabled: i.disabled || i.readonly,
328
+ removeValue: Ne
329
+ })), Xe = p(() => {
330
+ if (!i.disabled && (i.readonly && !Y.value || !Y.value)) return 0;
331
+ }), Ze = p(() => ({
332
+ "s-ui-select--disabled": i.disabled,
333
+ "s-ui-select--readonly": i.readonly,
334
+ "s-ui-select--multiple": Z.value,
335
+ "s-ui-select--open": z.value
336
+ })), Qe = () => {
337
+ if (X.value) {
338
+ F.value?.focus();
339
+ return;
340
+ }
341
+ P.value?.focus();
342
+ }, $e = async () => {
343
+ await S(), F.value?.focus();
344
+ }, et = async () => {
345
+ await S(), await I.value?.focusNavigation();
346
+ }, Q = async () => {
347
+ if (!(i.disabled || i.readonly) && !z.value) {
348
+ if (z.value = !0, y("open"), X.value) {
349
+ await $e();
350
+ return;
351
+ }
352
+ if (Y.value) {
353
+ await S(), P.value?.focus();
354
+ return;
355
+ }
356
+ await et();
357
+ }
358
+ }, tt = async () => {
359
+ i.disabled || i.readonly || z.value || await Q();
360
+ };
361
+ M(u, async (e) => {
362
+ Y.value && (i.disabled || i.readonly || e && (z.value || await Q()));
363
+ });
364
+ let $ = () => {
365
+ z.value && (z.value = !1, R.value = void 0, y("close"));
366
+ }, nt = () => {
367
+ !i.closeOnSelect || Z.value || $();
368
+ };
369
+ M(l, (e, t) => {
370
+ !i.closeOnSelect || Z.value || !z.value || !e || e === t || $();
371
+ });
372
+ let rt = (e) => {
373
+ z.value && e.target instanceof Element && e.target.closest(".s-ui-list-item") && nt();
374
+ }, it = async (e) => {
375
+ e.key !== "Enter" && e.key !== " " && e.key !== "Spacebar" || z.value && (await S(), nt());
376
+ }, at = async () => {
377
+ if (z.value) {
378
+ $();
379
+ return;
380
+ }
381
+ await Q();
382
+ }, ot = async (e) => {
383
+ if (!(i.disabled || i.readonly) && e.target instanceof HTMLElement) {
384
+ if (e.target.closest(".s-ui-select__search-input")) {
385
+ z.value || await Q();
386
+ return;
387
+ }
388
+ await at();
389
+ }
390
+ }, st = async (e) => e.key !== "ArrowDown" && e.key !== "ArrowUp" ? !1 : (e.preventDefault(), e.stopPropagation(), z.value || await Q(), await et(), await I.value?.handleKeyboardNavigation(e), !0), ct = (e) => {
391
+ let t = Pe(e);
392
+ if (t) {
393
+ if (Z.value) {
394
+ H.value.some((t) => Fe(t) === e) ? Ne(t) : G.value = [...H.value.map((e) => Fe(e)), e];
395
+ return;
396
+ }
397
+ G.value = e, nt();
398
+ }
399
+ }, lt = async (e) => {
400
+ if (!(i.disabled || i.readonly) && !await st(e)) {
401
+ if (e.key === "Escape") {
402
+ e.preventDefault(), $();
403
+ return;
404
+ }
405
+ if (e.key === "Enter" || e.key === " ") {
406
+ if (e.preventDefault(), z.value && R.value) {
407
+ ct(R.value);
408
+ return;
409
+ }
410
+ await at();
411
+ }
412
+ }
413
+ }, ut = async (e) => {
414
+ if (e.key === "Escape") {
415
+ e.preventDefault(), $();
416
+ return;
417
+ }
418
+ await st(e);
419
+ }, dt = ut, ft = (e) => {
420
+ i.disabled || (B.value || y("focus", e), B.value = !0);
421
+ }, pt = (e) => {
422
+ if (!(e.currentTarget instanceof HTMLElement)) return;
423
+ let t = e.relatedTarget;
424
+ t instanceof Node && e.currentTarget.contains(t) || (B.value = !1, y("blur", e));
425
+ }, mt = () => {
426
+ Me(), y("clear");
427
+ };
428
+ return a({
429
+ open: Q,
430
+ close: $,
431
+ toggle: at,
432
+ focusSearchInput: Qe
433
+ }), (a, c) => (T(), h("div", { class: C(["s-ui-select", Ze.value]) }, [v(A(s), {
434
+ modelValue: z.value,
435
+ "onUpdate:modelValue": c[4] ||= (e) => z.value = e,
436
+ reference: Je.value,
437
+ disabled: i.disabled,
438
+ "match-reference-width": !0,
439
+ "fit-viewport": !0,
440
+ "content-id": qe.value,
441
+ "dismiss-on-click-outside": !0,
442
+ "dismiss-on-escape": !0
443
+ }, {
444
+ content: N(() => [v(A(me), {
445
+ class: "s-ui-select__menu",
446
+ width: "100%"
447
+ }, _({
448
+ default: N(() => [g("div", {
449
+ class: "s-ui-select__menu-body",
450
+ onClick: rt,
451
+ onKeydown: it
452
+ }, [A(U).length > 0 ? (T(), ee(A(d), {
453
+ key: 0,
454
+ ref_key: "listElementRef",
455
+ ref: I,
456
+ modelValue: R.value,
457
+ "onUpdate:modelValue": c[2] ||= (e) => R.value = e,
458
+ selected: A(G),
459
+ "onUpdate:selected": c[3] ||= (e) => ne(G) ? G.value = e : null,
460
+ items: A(U),
461
+ "item-key": V.value,
462
+ "title-key": i.itemTitle,
463
+ "subtitle-key": i.itemSubtitle,
464
+ "icon-left-key": i.itemIconLeft,
465
+ "disabled-key": i.itemDisabled,
466
+ "selection-mode": A(W),
467
+ mandatory: !i.multiple,
468
+ height: ze.value,
469
+ "max-height": Be.value,
470
+ virtual: Re.value,
471
+ "item-props": Ue
472
+ }, _({ _: 2 }, [A(x).option ? {
473
+ name: "item",
474
+ fn: N((e) => [D(a.$slots, "option", w(b(e)))]),
475
+ key: "0"
476
+ } : i.closableOptions ? {
477
+ name: "item",
478
+ fn: N((i) => [v(A(f), w(b(We(i))), _({ _: 2 }, [He(i.key) ? {
479
+ name: "right",
480
+ fn: N((a) => [v(A(r), {
481
+ appearance: A(n).BARE,
482
+ variant: A(t).NEUTRAL,
483
+ size: A(e).SMALL,
484
+ icon: "closeMini",
485
+ disabled: a.disabled || a.readonly,
486
+ tabindex: -1,
487
+ onClick: ue((e) => Ge(i.key), ["stop"])
488
+ }, null, 8, [
489
+ "appearance",
490
+ "variant",
491
+ "size",
492
+ "disabled",
493
+ "onClick"
494
+ ])]),
495
+ key: "0"
496
+ } : void 0]), 1040)]),
497
+ key: "1"
498
+ } : void 0]), 1032, [
499
+ "modelValue",
500
+ "selected",
501
+ "items",
502
+ "item-key",
503
+ "title-key",
504
+ "subtitle-key",
505
+ "icon-left-key",
506
+ "disabled-key",
507
+ "selection-mode",
508
+ "mandatory",
509
+ "height",
510
+ "max-height",
511
+ "virtual"
512
+ ])) : (T(), h("div", xe, [D(a.$slots, "empty", {}, () => [c[8] ||= te("No options", -1)])]))], 32)]),
513
+ _: 2
514
+ }, [A(X) ? {
515
+ name: "header",
516
+ fn: N(() => [v(A(o), {
517
+ ref_key: "panelSearchInputElementRef",
518
+ ref: F,
519
+ modelValue: u.value,
520
+ "onUpdate:modelValue": c[0] ||= (e) => u.value = e,
521
+ placeholder: i.searchPlaceholder,
522
+ disabled: i.disabled,
523
+ clearable: !1,
524
+ "icon-left": "search",
525
+ onClick: c[1] ||= ue(() => {}, ["stop"]),
526
+ onKeydown: A(dt)
527
+ }, null, 8, [
528
+ "modelValue",
529
+ "placeholder",
530
+ "disabled",
531
+ "onKeydown"
532
+ ])]),
533
+ key: "0"
534
+ } : void 0, A(x)["panel-footer"] ? {
535
+ name: "footer",
536
+ fn: N(() => [D(a.$slots, "panel-footer")]),
537
+ key: "1"
538
+ } : void 0]), 1024)]),
539
+ _: 3
540
+ }, 8, [
541
+ "modelValue",
542
+ "reference",
543
+ "disabled",
544
+ "content-id"
545
+ ]), v(A(o), {
546
+ ref_key: "triggerInputRef",
547
+ ref: fe,
548
+ modelValue: pe.value,
549
+ "onUpdate:modelValue": c[7] ||= (e) => pe.value = e,
550
+ label: i.label,
551
+ "label-props": i.labelProps,
552
+ placeholder: i.placeholder,
553
+ "help-messages": i.helpMessages,
554
+ "error-messages": i.errorMessages,
555
+ bordered: i.bordered,
556
+ disabled: i.disabled,
557
+ readonly: i.readonly,
558
+ clearable: i.clearable,
559
+ "has-value": A(_e),
560
+ focused: B.value || z.value,
561
+ "icon-left": i.iconLeft,
562
+ customize: i.customize,
563
+ name: i.name,
564
+ id: Ke.value,
565
+ onClear: mt,
566
+ onFocus: ft,
567
+ onBlur: pt
568
+ }, _({
569
+ control: N(() => [g("div", {
570
+ id: Ke.value,
571
+ class: C(["s-ui-select__control s-ui-typography-body-14-regular", {
572
+ "s-ui-select__control--multiple": A(Z),
573
+ "s-ui-select__control--empty": A(Z) && !A(_e) && !A(J),
574
+ "s-ui-select__control--with-value-suffix": Ie.value && !A(Z) && !A(J) && !A(q)
575
+ }]),
576
+ role: "combobox",
577
+ "aria-expanded": z.value,
578
+ "aria-controls": qe.value,
579
+ "aria-haspopup": "listbox",
580
+ "aria-disabled": i.disabled ? !0 : void 0,
581
+ "aria-readonly": i.readonly ? !0 : void 0,
582
+ "aria-autocomplete": A(je) ? "list" : void 0,
583
+ tabindex: Xe.value,
584
+ onClick: ot,
585
+ onKeydown: lt
586
+ }, [
587
+ A(Z) ? D(a.$slots, "selection", w(re({ key: 0 }, Ye.value)), () => [A(K) ? (T(), h("span", Ce, O(A(K)), 1)) : A(q) && !A(J) ? (T(), h("span", we, O(i.placeholder), 1)) : m("", !0)]) : A(q) && !A(J) ? (T(), h("span", Te, O(i.placeholder), 1)) : A(J) ? m("", !0) : (T(), h("span", Ee, O(A(ve)), 1)),
588
+ Ie.value && !A(Z) && !A(J) && !A(q) ? (T(), h("div", De, [D(a.$slots, "value-suffix", w(b(Le.value)))])) : m("", !0),
589
+ A(J) ? le((T(), h("input", {
590
+ key: 4,
591
+ ref_key: "searchInputElementRef",
592
+ ref: P,
593
+ "onUpdate:modelValue": c[5] ||= (e) => u.value = e,
594
+ class: "s-ui-select__search-input",
595
+ type: "text",
596
+ name: i.name,
597
+ placeholder: i.placeholder,
598
+ disabled: i.disabled,
599
+ readonly: i.readonly,
600
+ autocomplete: "off",
601
+ onClick: c[6] ||= ue(() => {}, ["stop"]),
602
+ onFocus: tt,
603
+ onKeydown: ut
604
+ }, null, 40, Oe)), [[ce, u.value]]) : m("", !0)
605
+ ], 42, Se)]),
606
+ action: N(() => [v(A(de), {
607
+ name: "chevronMiniDown",
608
+ size: ke,
609
+ class: "s-ui-select__chevron"
610
+ })]),
611
+ _: 2
612
+ }, [
613
+ A(x).label ? {
614
+ name: "label",
615
+ fn: N(() => [D(a.$slots, "label")]),
616
+ key: "0"
617
+ } : void 0,
618
+ A(x).prefix ? {
619
+ name: "prefix",
620
+ fn: N((e) => [D(a.$slots, "prefix", w(b(e)))]),
621
+ key: "1"
622
+ } : void 0,
623
+ A(x).prepend ? {
624
+ name: "prepend",
625
+ fn: N((e) => [D(a.$slots, "prepend", w(b(e)))]),
626
+ key: "2"
627
+ } : void 0,
628
+ A(x).message ? {
629
+ name: "message",
630
+ fn: N(() => [D(a.$slots, "message")]),
631
+ key: "3"
632
+ } : void 0
633
+ ]), 1032, [
634
+ "modelValue",
635
+ "label",
636
+ "label-props",
637
+ "placeholder",
638
+ "help-messages",
639
+ "error-messages",
640
+ "bordered",
641
+ "disabled",
642
+ "readonly",
643
+ "clearable",
644
+ "has-value",
645
+ "focused",
646
+ "icon-left",
647
+ "customize",
648
+ "name",
649
+ "id"
650
+ ])], 2));
651
+ }
652
+ });
653
+ //#endregion
654
+ export { V as n, me as r, K as t };
@@ -1 +1 @@
1
- const e=require("./SButton.types-UKroD-ev.cjs"),t=require("./useSelectionGroup-TaektE-I.cjs"),n=require("./SButton-CHxE2l-X.cjs"),r=require("./STab-C8RXx0lW.cjs");let i=require("vue"),a=require("@vueuse/core");var o=`.s-ui-tab[aria-selected="true"]`,s=({trackEl:e,selectedValue:t,enabled:n})=>{let r=(0,i.ref)({offsetX:0,width:0,isBilling:!1}),s=()=>{if(!(0,i.toValue)(n)){r.value={offsetX:0,width:0,isBilling:!1};return}let t=(0,i.toValue)(e);if(!t){r.value={offsetX:0,width:0,isBilling:!1};return}let a=t.querySelector(o);if(!(a instanceof HTMLElement)){r.value={offsetX:0,width:0,isBilling:!1};return}let s=t.getBoundingClientRect(),c=a.getBoundingClientRect();r.value={offsetX:c.left-s.left,width:c.width,isBilling:a.classList.contains(`s-ui-tab--billing`)}};return(0,a.useResizeObserver)(e,()=>{s()}),(0,i.watch)(()=>(0,i.toValue)(t),async()=>{await(0,i.nextTick)(),s()},{immediate:!0}),{indicatorStyle:(0,i.computed)(()=>{let{offsetX:e,width:t}=r.value;return t?{opacity:`1`,width:`${t}px`,transform:`translateX(${e}px)`}:{opacity:`0`}}),indicatorIsBilling:(0,i.computed)(()=>r.value.isBilling)}},c=[`aria-disabled`],l={class:`s-ui-tabs__body`},u=(0,i.defineComponent)({__name:`STabs`,props:(0,i.mergeModels)({appearance:{default:()=>r.n.PRIMARY},size:{default:()=>r.r.LARGE},disabled:{type:Boolean,default:!1},mandatory:{type:Boolean,default:!0},addable:{type:Boolean,default:!1},loop:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:(0,i.mergeModels)([`add`],[`update:modelValue`]),setup(o,{emit:u}){let d=(0,i.useModel)(o,`modelValue`),f=u,p=(0,i.useTemplateRef)(`tabsBodyRef`),m=(0,i.useTemplateRef)(`tabsTrackRef`),{arrivedState:h}=(0,a.useScroll)(p,{throttle:100,offset:{right:1}}),g=t.o({modelValue:()=>d.value,onUpdateModelValue:e=>{t.i(e)&&(d.value=e)},mode:t.n.SINGLE,mandatory:()=>o.mandatory,orientation:t.r.HORIZONTAL,loop:()=>o.loop});(0,i.provide)(r.i,{mode:()=>t.n.SINGLE,isSelected:g.isSelected,selectItem:g.toggle,registerItem:g.registerItem,getItemTabIndex:g.getItemTabIndex,getGroupTabIndex:g.getGroupTabIndex,handleItemKeydown:g.handleItemKeydown,appearance:()=>o.appearance,size:()=>o.size,disabled:()=>o.disabled});let _=(0,i.computed)(()=>o.appearance===r.n.PRIMARY),{indicatorStyle:v,indicatorIsBilling:y}=s({trackEl:()=>m.value,selectedValue:()=>d.value,enabled:_}),b=(0,i.computed)(()=>o.addable&&!h.right),x=(0,i.computed)(()=>[`s-ui-tabs--appearance-${o.appearance}`,`s-ui-tabs--size-${o.size}`,o.addable?`s-ui-tabs--addable`:void 0]),S=()=>{o.disabled||f(`add`)};return(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:(0,i.normalizeClass)([`s-ui-tabs`,x.value]),role:`tablist`,"aria-orientation":`horizontal`,"aria-disabled":o.disabled?!0:void 0},[(0,i.createElementVNode)(`div`,l,[(0,i.createElementVNode)(`div`,{ref_key:`tabsBodyRef`,ref:p,class:`s-ui-tabs__scroll`},[(0,i.createElementVNode)(`div`,{ref_key:`tabsTrackRef`,ref:m,class:`s-ui-tabs__track`},[_.value?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:0,class:(0,i.normalizeClass)([`s-ui-tabs__indicator`,{"s-ui-tabs__indicator--billing":(0,i.unref)(y)}]),style:(0,i.normalizeStyle)((0,i.unref)(v)),"aria-hidden":`true`},null,6)):(0,i.createCommentVNode)(``,!0),(0,i.renderSlot)(t.$slots,`default`)],512)],512),o.addable?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:0,class:(0,i.normalizeClass)([`s-ui-tabs__fade`,{"s-ui-tabs__fade--visible":b.value}]),"aria-hidden":`true`},null,2)):(0,i.createCommentVNode)(``,!0)]),o.addable?(0,i.renderSlot)(t.$slots,`add`,{key:0},()=>[(0,i.createVNode)((0,i.unref)(n.t),{class:`s-ui-tabs__add`,icon:`plus`,appearance:(0,i.unref)(e.t).BARE,variant:(0,i.unref)(e.r).NEUTRAL,size:(0,i.unref)(e.n).SMALL,disabled:o.disabled,onClick:S},null,8,[`appearance`,`variant`,`size`,`disabled`])]):(0,i.createCommentVNode)(``,!0)],10,c))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return u}});
1
+ const e=require("./SButton.types-UKroD-ev.cjs"),t=require("./SButton-C-z_q5CG.cjs"),n=require("./useSelectionGroup-TaektE-I.cjs"),r=require("./STab-C8RXx0lW.cjs");let i=require("vue"),a=require("@vueuse/core");var o=`.s-ui-tab[aria-selected="true"]`,s=({trackEl:e,selectedValue:t,enabled:n})=>{let r=(0,i.ref)({offsetX:0,width:0,isBilling:!1}),s=()=>{if(!(0,i.toValue)(n)){r.value={offsetX:0,width:0,isBilling:!1};return}let t=(0,i.toValue)(e);if(!t){r.value={offsetX:0,width:0,isBilling:!1};return}let a=t.querySelector(o);if(!(a instanceof HTMLElement)){r.value={offsetX:0,width:0,isBilling:!1};return}let s=t.getBoundingClientRect(),c=a.getBoundingClientRect();r.value={offsetX:c.left-s.left,width:c.width,isBilling:a.classList.contains(`s-ui-tab--billing`)}};return(0,a.useResizeObserver)(e,()=>{s()}),(0,i.watch)(()=>(0,i.toValue)(t),async()=>{await(0,i.nextTick)(),s()},{immediate:!0}),{indicatorStyle:(0,i.computed)(()=>{let{offsetX:e,width:t}=r.value;return t?{opacity:`1`,width:`${t}px`,transform:`translateX(${e}px)`}:{opacity:`0`}}),indicatorIsBilling:(0,i.computed)(()=>r.value.isBilling)}},c=[`aria-disabled`],l={class:`s-ui-tabs__body`},u=(0,i.defineComponent)({__name:`STabs`,props:(0,i.mergeModels)({appearance:{default:()=>r.n.PRIMARY},size:{default:()=>r.r.LARGE},disabled:{type:Boolean,default:!1},mandatory:{type:Boolean,default:!0},addable:{type:Boolean,default:!1},loop:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:(0,i.mergeModels)([`add`],[`update:modelValue`]),setup(o,{emit:u}){let d=(0,i.useModel)(o,`modelValue`),f=u,p=(0,i.useTemplateRef)(`tabsBodyRef`),m=(0,i.useTemplateRef)(`tabsTrackRef`),{arrivedState:h}=(0,a.useScroll)(p,{throttle:100,offset:{right:1}}),g=n.o({modelValue:()=>d.value,onUpdateModelValue:e=>{n.i(e)&&(d.value=e)},mode:n.n.SINGLE,mandatory:()=>o.mandatory,orientation:n.r.HORIZONTAL,loop:()=>o.loop});(0,i.provide)(r.i,{mode:()=>n.n.SINGLE,isSelected:g.isSelected,selectItem:g.toggle,registerItem:g.registerItem,getItemTabIndex:g.getItemTabIndex,getGroupTabIndex:g.getGroupTabIndex,handleItemKeydown:g.handleItemKeydown,appearance:()=>o.appearance,size:()=>o.size,disabled:()=>o.disabled});let _=(0,i.computed)(()=>o.appearance===r.n.PRIMARY),{indicatorStyle:v,indicatorIsBilling:y}=s({trackEl:()=>m.value,selectedValue:()=>d.value,enabled:_}),b=(0,i.computed)(()=>o.addable&&!h.right),x=(0,i.computed)(()=>[`s-ui-tabs--appearance-${o.appearance}`,`s-ui-tabs--size-${o.size}`,o.addable?`s-ui-tabs--addable`:void 0]),S=()=>{o.disabled||f(`add`)};return(n,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:(0,i.normalizeClass)([`s-ui-tabs`,x.value]),role:`tablist`,"aria-orientation":`horizontal`,"aria-disabled":o.disabled?!0:void 0},[(0,i.createElementVNode)(`div`,l,[(0,i.createElementVNode)(`div`,{ref_key:`tabsBodyRef`,ref:p,class:`s-ui-tabs__scroll`},[(0,i.createElementVNode)(`div`,{ref_key:`tabsTrackRef`,ref:m,class:`s-ui-tabs__track`},[_.value?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:0,class:(0,i.normalizeClass)([`s-ui-tabs__indicator`,{"s-ui-tabs__indicator--billing":(0,i.unref)(y)}]),style:(0,i.normalizeStyle)((0,i.unref)(v)),"aria-hidden":`true`},null,6)):(0,i.createCommentVNode)(``,!0),(0,i.renderSlot)(n.$slots,`default`)],512)],512),o.addable?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:0,class:(0,i.normalizeClass)([`s-ui-tabs__fade`,{"s-ui-tabs__fade--visible":b.value}]),"aria-hidden":`true`},null,2)):(0,i.createCommentVNode)(``,!0)]),o.addable?(0,i.renderSlot)(n.$slots,`add`,{key:0},()=>[(0,i.createVNode)((0,i.unref)(t.t),{class:`s-ui-tabs__add`,icon:`plus`,appearance:(0,i.unref)(e.t).BARE,variant:(0,i.unref)(e.r).NEUTRAL,size:(0,i.unref)(e.n).SMALL,disabled:o.disabled,onClick:S},null,8,[`appearance`,`variant`,`size`,`disabled`])]):(0,i.createCommentVNode)(``,!0)],10,c))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return u}});