@7pmlabs/design-system 1.0.9 → 1.0.10

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 (126) hide show
  1. package/dist/design-system.css +1 -1
  2. package/dist/design-system.js +24 -16
  3. package/dist/design-system177.js +29 -326
  4. package/dist/design-system177.js.map +1 -1
  5. package/dist/design-system179.js +1 -1
  6. package/dist/design-system179.js.map +1 -1
  7. package/dist/design-system180.js +73 -85
  8. package/dist/design-system180.js.map +1 -1
  9. package/dist/design-system182.js +1 -1
  10. package/dist/design-system182.js.map +1 -1
  11. package/dist/design-system183.js +32 -105
  12. package/dist/design-system183.js.map +1 -1
  13. package/dist/design-system185.js +4 -5
  14. package/dist/design-system185.js.map +1 -1
  15. package/dist/design-system186.js +26 -104
  16. package/dist/design-system186.js.map +1 -1
  17. package/dist/design-system188.js +4 -5
  18. package/dist/design-system188.js.map +1 -1
  19. package/dist/design-system189.js +23 -727
  20. package/dist/design-system189.js.map +1 -1
  21. package/dist/design-system191.js +1 -1
  22. package/dist/design-system191.js.map +1 -1
  23. package/dist/design-system192.js +31 -11
  24. package/dist/design-system192.js.map +1 -1
  25. package/dist/design-system194.js +8 -0
  26. package/dist/design-system194.js.map +1 -0
  27. package/dist/design-system195.js +332 -5
  28. package/dist/design-system195.js.map +1 -1
  29. package/dist/design-system197.js +5 -46
  30. package/dist/design-system197.js.map +1 -1
  31. package/dist/design-system198.js +100 -4
  32. package/dist/design-system198.js.map +1 -1
  33. package/dist/design-system200.js +8 -0
  34. package/dist/design-system200.js.map +1 -0
  35. package/dist/design-system201.js +19 -5
  36. package/dist/design-system201.js.map +1 -1
  37. package/dist/design-system202.js +4 -119
  38. package/dist/design-system202.js.map +1 -1
  39. package/dist/design-system203.js +6 -0
  40. package/dist/design-system203.js.map +1 -0
  41. package/dist/design-system204.js +419 -5
  42. package/dist/design-system204.js.map +1 -1
  43. package/dist/design-system206.js +8 -0
  44. package/dist/design-system206.js.map +1 -0
  45. package/dist/design-system207.js +108 -5
  46. package/dist/design-system207.js.map +1 -1
  47. package/dist/design-system209.js +6 -4
  48. package/dist/design-system209.js.map +1 -1
  49. package/dist/design-system210.js +90 -154
  50. package/dist/design-system210.js.map +1 -1
  51. package/dist/design-system212.js +5 -4
  52. package/dist/design-system212.js.map +1 -1
  53. package/dist/design-system213.js +737 -7
  54. package/dist/design-system213.js.map +1 -1
  55. package/dist/design-system215.js +8 -0
  56. package/dist/design-system215.js.map +1 -0
  57. package/dist/design-system216.js +11 -5
  58. package/dist/design-system216.js.map +1 -1
  59. package/dist/design-system217.js +451 -506
  60. package/dist/design-system217.js.map +1 -1
  61. package/dist/design-system219.js +4 -5
  62. package/dist/design-system219.js.map +1 -1
  63. package/dist/design-system220.js +3 -7
  64. package/dist/design-system220.js.map +1 -1
  65. package/dist/design-system221.js +41 -369
  66. package/dist/design-system221.js.map +1 -1
  67. package/dist/design-system222.js +7 -0
  68. package/dist/design-system222.js.map +1 -0
  69. package/dist/design-system223.js +283 -6
  70. package/dist/design-system223.js.map +1 -1
  71. package/dist/design-system225.js +8 -0
  72. package/dist/design-system225.js.map +1 -0
  73. package/dist/design-system226.js +122 -0
  74. package/dist/design-system226.js.map +1 -0
  75. package/dist/design-system228.js +8 -0
  76. package/dist/design-system228.js.map +1 -0
  77. package/dist/{design-system205.js → design-system229.js} +1 -1
  78. package/dist/{design-system205.js.map → design-system229.js.map} +1 -1
  79. package/dist/design-system231.js +8 -0
  80. package/dist/design-system231.js.map +1 -0
  81. package/dist/{design-system208.js → design-system232.js} +1 -1
  82. package/dist/{design-system208.js.map → design-system232.js.map} +1 -1
  83. package/dist/design-system233.js +7 -0
  84. package/dist/design-system233.js.map +1 -0
  85. package/dist/design-system234.js +173 -0
  86. package/dist/design-system234.js.map +1 -0
  87. package/dist/design-system236.js +8 -0
  88. package/dist/design-system236.js.map +1 -0
  89. package/dist/design-system237.js +10 -0
  90. package/dist/design-system237.js.map +1 -0
  91. package/dist/{design-system214.js → design-system238.js} +2 -2
  92. package/dist/{design-system214.js.map → design-system238.js.map} +1 -1
  93. package/dist/design-system240.js +8 -0
  94. package/dist/design-system240.js.map +1 -0
  95. package/dist/design-system241.js +583 -0
  96. package/dist/design-system241.js.map +1 -0
  97. package/dist/design-system243.js +9 -0
  98. package/dist/design-system243.js.map +1 -0
  99. package/dist/design-system244.js +10 -0
  100. package/dist/design-system244.js.map +1 -0
  101. package/dist/design-system245.js +377 -0
  102. package/dist/design-system245.js.map +1 -0
  103. package/dist/design-system247.js +9 -0
  104. package/dist/design-system247.js.map +1 -0
  105. package/dist/types/components/BSkeleton/BSkeleton.spec.d.ts +1 -0
  106. package/dist/types/components/BSkeleton/BSkeleton.vue.d.ts +46 -0
  107. package/dist/types/components/BSkeleton/BSkeletonAvatar.vue.d.ts +12 -0
  108. package/dist/types/components/BSkeleton/BSkeletonButton.vue.d.ts +14 -0
  109. package/dist/types/components/BSkeleton/BSkeletonImage.vue.d.ts +7 -0
  110. package/dist/types/components/BSkeleton/BSkeletonInput.vue.d.ts +12 -0
  111. package/dist/types/components/BSkeleton/BSkeletonNode.vue.d.ts +19 -0
  112. package/dist/types/components/BSkeleton/index.d.ts +7 -0
  113. package/dist/types/components/BSkeleton/types.d.ts +20 -0
  114. package/dist/types/components/BSplitter/BSplitter.spec.d.ts +1 -0
  115. package/dist/types/components/BSplitter/BSplitter.vue.d.ts +45 -0
  116. package/dist/types/components/BSplitter/BSplitterPanel.vue.d.ts +40 -0
  117. package/dist/types/components/BSplitter/index.d.ts +3 -0
  118. package/dist/types/components/BSplitter/types.d.ts +42 -0
  119. package/dist/types/components/index.d.ts +2 -0
  120. package/package.json +1 -1
  121. package/dist/design-system193.js +0 -528
  122. package/dist/design-system193.js.map +0 -1
  123. package/dist/design-system196.js +0 -6
  124. package/dist/design-system196.js.map +0 -1
  125. package/dist/design-system199.js +0 -286
  126. package/dist/design-system199.js.map +0 -1
@@ -1,8 +1,422 @@
1
- import e from "./design-system202.js";
2
- /* empty css */
3
- //#region src/components/BTag/BTag.vue
4
- var t = e;
1
+ import { useComponentId as e } from "./design-system10.js";
2
+ import t from "./design-system202.js";
3
+ import { BSplitterContextKey as n } from "./design-system203.js";
4
+ import { Fragment as r, camelize as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, defineComponent as u, h as d, normalizeClass as f, normalizeStyle as p, onBeforeUnmount as m, onMounted as ee, openBlock as h, provide as te, ref as g, renderList as ne, renderSlot as _, resolveDynamicComponent as re, unref as v, useSlots as ie, watch as y, withModifiers as b } from "vue";
5
+ //#region src/components/BSplitter/BSplitter.vue?vue&type=script&setup=true&lang.ts
6
+ var ae = ["data-orientation"], oe = ["id"], se = [
7
+ "tabindex",
8
+ "aria-orientation",
9
+ "aria-controls",
10
+ "aria-valuenow",
11
+ "aria-disabled",
12
+ "aria-label",
13
+ "onMousedown",
14
+ "onTouchstart",
15
+ "onKeydown",
16
+ "onDblclick"
17
+ ], ce = {
18
+ "aria-hidden": "true",
19
+ class: "b-splitter__handle"
20
+ }, le = [
21
+ "aria-label",
22
+ "aria-expanded",
23
+ "onClick"
24
+ ], ue = [
25
+ "aria-label",
26
+ "aria-expanded",
27
+ "onClick"
28
+ ], x = 6, S = 10, C = /* @__PURE__ */ u({
29
+ name: "BSplitter",
30
+ inheritAttrs: !1,
31
+ __name: "BSplitter",
32
+ props: {
33
+ vertical: {
34
+ type: Boolean,
35
+ default: !1
36
+ },
37
+ orientation: {},
38
+ lazy: {
39
+ type: Boolean,
40
+ default: !1
41
+ },
42
+ collapsible: {}
43
+ },
44
+ emits: [
45
+ "resize",
46
+ "resizeStart",
47
+ "resizeEnd",
48
+ "collapse",
49
+ "draggerDoubleClick"
50
+ ],
51
+ setup(C, { expose: de, emit: fe }) {
52
+ let w = u({
53
+ name: "BSplitterVNodeRenderer",
54
+ props: { nodes: {
55
+ type: Array,
56
+ default: () => []
57
+ } },
58
+ setup(e) {
59
+ return () => e.nodes && e.nodes.length ? d(r, null, e.nodes) : null;
60
+ }
61
+ }), T = fe, pe = ie(), { componentUID: E } = e(), D = a(() => C.orientation ?? (C.vertical ? "vertical" : "horizontal")), O = a(() => D.value === "vertical");
62
+ te(n, { orientation: D.value });
63
+ function k(e) {
64
+ let t = [];
65
+ for (let n of e) n.type === r && Array.isArray(n.children) ? t.push(...k(n.children)) : t.push(n);
66
+ return t;
67
+ }
68
+ let A = a(() => {
69
+ let e = pe.default?.();
70
+ if (!e) return [];
71
+ let n = k(e), r = [], a = 0;
72
+ for (let e of n) {
73
+ if (e.type !== t) continue;
74
+ let n = e.props ?? {}, o = {};
75
+ for (let e in n) o[i(e)] = n[e];
76
+ let s = e.children?.default?.(), c = s ? Array.isArray(s) ? s : [s] : void 0, l = !1, u = o.collapsible;
77
+ u === !0 || u === "" || u === "true" ? l = {
78
+ start: !0,
79
+ end: !0
80
+ } : u && typeof u == "object" && (l = u);
81
+ let d = o.resizable, f = d === void 0 ? !0 : !(d === !1 || d === "false"), p = o.destroyOnHidden, m = p === !0 || p === "" || p === "true";
82
+ r.push({
83
+ index: a++,
84
+ size: o.size,
85
+ defaultSize: o.defaultSize,
86
+ min: o.min,
87
+ max: o.max,
88
+ resizable: f,
89
+ collapsible: l,
90
+ destroyOnHidden: m,
91
+ content: c
92
+ });
93
+ }
94
+ return r;
95
+ }), j = g(null), M = g(0), N = g([]), P = g([]), F = g([]), I = g([]);
96
+ function L(e, t, n = NaN) {
97
+ if (e == null) return n;
98
+ if (typeof e == "number") return e;
99
+ let r = e.trim();
100
+ if (r.endsWith("%")) {
101
+ let e = parseFloat(r);
102
+ return isFinite(e) ? e / 100 * t : n;
103
+ }
104
+ if (r.endsWith("px")) return parseFloat(r);
105
+ let i = parseFloat(r);
106
+ return isFinite(i) ? i : n;
107
+ }
108
+ function R() {
109
+ let e = M.value, t = Math.max(A.value.length - 1, 0) * x;
110
+ return Math.max(e - t, 0);
111
+ }
112
+ function me() {
113
+ let e = A.value, t = R();
114
+ if (e.length === 0 || t <= 0) return e.map(() => 0);
115
+ let n = Array.from({ length: e.length }, () => NaN), r = 0;
116
+ e.forEach((e, i) => {
117
+ let a = L(e.size ?? e.defaultSize, t);
118
+ isNaN(a) || (n[i] = a, r += a);
119
+ });
120
+ let i = n.map((e, t) => isNaN(e) ? t : -1).filter((e) => e >= 0);
121
+ if (i.length > 0) {
122
+ let e = Math.max(t - r, 0) / i.length;
123
+ i.forEach((t) => n[t] = e);
124
+ }
125
+ return z(n, t);
126
+ }
127
+ function z(e, t) {
128
+ let n = A.value, r = e.map((e, r) => {
129
+ let i = L(n[r]?.min, t, 0), a = L(n[r]?.max, t, Infinity);
130
+ return Math.min(Math.max(e, i), a);
131
+ }), i = r.reduce((e, t) => e + t, 0);
132
+ if (i === 0 || t === 0) return r;
133
+ let a = t / i;
134
+ return r.map((e) => e * a);
135
+ }
136
+ function B() {
137
+ let e = A.value;
138
+ P.value.length !== e.length && (P.value = e.map(() => !1), F.value = e.map(() => null), I.value = e.map(() => null)), N.value = me();
139
+ }
140
+ y(() => A.value.map((e) => `${e.size ?? ""}`).join("|"), () => {
141
+ M.value > 0 && B();
142
+ }), y(() => A.value.length, () => {
143
+ M.value > 0 && B();
144
+ });
145
+ let V = null;
146
+ ee(() => {
147
+ j.value && (H(), B(), typeof ResizeObserver < "u" && (V = new ResizeObserver(() => {
148
+ let e = M.value;
149
+ if (H(), e > 0 && M.value > 0 && N.value.length > 0) {
150
+ let t = R() / Math.max(e - x * (N.value.length - 1), 1);
151
+ N.value = z(N.value.map((e) => e * t), R());
152
+ } else B();
153
+ }), V.observe(j.value)));
154
+ }), m(() => {
155
+ V?.disconnect(), V = null, X();
156
+ });
157
+ function H() {
158
+ j.value && (M.value = O.value ? j.value.clientHeight : j.value.clientWidth);
159
+ }
160
+ let U = g(null), W = g(null);
161
+ function G(e) {
162
+ if ("touches" in e) {
163
+ let t = e.touches[0] ?? e.changedTouches[0];
164
+ return O.value ? t.clientY : t.clientX;
165
+ }
166
+ return O.value ? e.clientY : e.clientX;
167
+ }
168
+ function K(e, t) {
169
+ Z(e) && (t.preventDefault(), U.value = {
170
+ draggerIndex: e,
171
+ startCoord: G(t),
172
+ startSizes: [...N.value],
173
+ previewDelta: 0
174
+ }, W.value = C.lazy ? 0 : null, T("resizeStart", [...N.value]), document.addEventListener("mousemove", J), document.addEventListener("mouseup", Y), document.addEventListener("touchmove", J, { passive: !1 }), document.addEventListener("touchend", Y));
175
+ }
176
+ function q(e, t, n) {
177
+ let r = A.value, i = R(), a = [...e], o = t, s = t + 1, c = L(r[o]?.min, i, 0), l = L(r[o]?.max, i, Infinity), u = L(r[s]?.min, i, 0), d = L(r[s]?.max, i, Infinity), f = a[o] + n, p = a[s] - n;
178
+ return f < c && (p -= c - f, f = c), f > l && (p += f - l, f = l), p < u && (f -= u - p, p = u), p > d && (f += p - d, p = d), f = Math.min(Math.max(f, c), l), p = Math.min(Math.max(p, u), d), a[o] = f, a[s] = p, a;
179
+ }
180
+ function J(e) {
181
+ if (!U.value) return;
182
+ "touches" in e && e.preventDefault();
183
+ let t = G(e) - U.value.startCoord;
184
+ if (C.lazy) {
185
+ W.value = t;
186
+ return;
187
+ }
188
+ let n = q(U.value.startSizes, U.value.draggerIndex, t);
189
+ N.value = n, T("resize", [...n]);
190
+ }
191
+ function Y(e) {
192
+ if (!U.value) return;
193
+ let t = ("changedTouches" in e, G(e)) - U.value.startCoord;
194
+ if (C.lazy) {
195
+ let e = q(U.value.startSizes, U.value.draggerIndex, t);
196
+ N.value = e, T("resize", [...e]);
197
+ }
198
+ T("resizeEnd", [...N.value]), U.value = null, W.value = null, X();
199
+ }
200
+ function X() {
201
+ document.removeEventListener("mousemove", J), document.removeEventListener("mouseup", Y), document.removeEventListener("touchmove", J), document.removeEventListener("touchend", Y);
202
+ }
203
+ function Z(e) {
204
+ let t = A.value[e], n = A.value[e + 1];
205
+ return !!(t?.resizable && n?.resizable);
206
+ }
207
+ function he(e) {
208
+ T("draggerDoubleClick", e);
209
+ }
210
+ function ge(e, t) {
211
+ if (!Z(e)) return;
212
+ let n = 0;
213
+ switch (t.key) {
214
+ case "ArrowLeft":
215
+ n = O.value ? 0 : -S;
216
+ break;
217
+ case "ArrowRight":
218
+ n = O.value ? 0 : S;
219
+ break;
220
+ case "ArrowUp":
221
+ n = O.value ? -S : 0;
222
+ break;
223
+ case "ArrowDown":
224
+ n = O.value ? S : 0;
225
+ break;
226
+ case "Home": {
227
+ let t = R(), r = A.value[e];
228
+ n = -(N.value[e] - L(r?.min, t, 0));
229
+ break;
230
+ }
231
+ case "End": {
232
+ let t = R(), r = A.value[e + 1];
233
+ n = N.value[e + 1] - L(r?.min, t, 0);
234
+ break;
235
+ }
236
+ case "Enter":
237
+ case " ":
238
+ t.preventDefault(), _e(e);
239
+ return;
240
+ default: return;
241
+ }
242
+ if (n === 0) return;
243
+ t.preventDefault(), T("resizeStart", [...N.value]);
244
+ let r = q(N.value, e, n);
245
+ N.value = r, T("resize", [...r]), T("resizeEnd", [...r]);
246
+ }
247
+ function _e(e) {
248
+ let t = A.value[e], n = A.value[e + 1];
249
+ t?.collapsible ? Q(e, "start") : n?.collapsible && Q(e + 1, "end");
250
+ }
251
+ function Q(e, t) {
252
+ if (!A.value[e]) return;
253
+ let n = R(), r = [...N.value], i = t === "start" ? e + 1 : e - 1;
254
+ if (P.value[e]) {
255
+ let t = F.value[e] ?? n / A.value.length;
256
+ if (i >= 0 && i < r.length) {
257
+ let n = Math.min(t, r[i]);
258
+ r[e] = n, r[i] -= n;
259
+ } else r[e] = t;
260
+ P.value = P.value.map((t, n) => n === e ? !1 : t), F.value = F.value.map((t, n) => n === e ? null : t), I.value = I.value.map((t, n) => n === e ? null : t);
261
+ } else F.value = F.value.map((t, n) => n === e ? r[e] : t), i >= 0 && i < r.length && (r[i] += r[e]), r[e] = 0, P.value = P.value.map((t, n) => n === e ? !0 : t), I.value = I.value.map((n, r) => r === e ? t : n);
262
+ N.value = r, T("resize", [...r]), T("resizeEnd", [...r]), T("collapse", [...P.value], [...r]);
263
+ }
264
+ function ve(e) {
265
+ return A.value[e]?.collapsible ? A.value[e].collapsible : null;
266
+ }
267
+ function ye(e) {
268
+ return A.value[e + 1]?.collapsible ? A.value[e + 1].collapsible : null;
269
+ }
270
+ function be(e) {
271
+ let t = N.value, n = t[e] ?? 0, r = t[e + 1] ?? 0, i = !!ve(e)?.start && n > 0 && r > 0, a = !!P.value[e + 1] && I.value[e + 1] === "end" && n > 0;
272
+ return i || a;
273
+ }
274
+ function xe(e) {
275
+ let t = N.value, n = t[e] ?? 0, r = t[e + 1] ?? 0, i = !!ye(e)?.end && r > 0 && n > 0, a = !!P.value[e] && I.value[e] === "start" && r > 0;
276
+ return i || a;
277
+ }
278
+ function $(e) {
279
+ P.value[e + 1] && I.value[e + 1] === "end" ? Q(e + 1, "end") : Q(e, "start");
280
+ }
281
+ function Se(e) {
282
+ P.value[e] && I.value[e] === "start" ? Q(e, "start") : Q(e + 1, "end");
283
+ }
284
+ function Ce(e) {
285
+ return P.value[e + 1] && I.value[e + 1] === "end" ? `Expand panel ${e + 2}` : `Collapse panel ${e + 1}`;
286
+ }
287
+ function we(e) {
288
+ return P.value[e] && I.value[e] === "start" ? `Expand panel ${e + 1}` : `Collapse panel ${e + 2}`;
289
+ }
290
+ let Te = a(() => C.collapsible?.motion !== !1);
291
+ function Ee(e) {
292
+ let t = `${N.value[e] ?? 0}px`;
293
+ return O.value ? {
294
+ height: t,
295
+ flex: `0 0 ${t}`
296
+ } : {
297
+ width: t,
298
+ flex: `0 0 ${t}`
299
+ };
300
+ }
301
+ function De(e) {
302
+ let t = R();
303
+ if (t === 0) return 0;
304
+ let n = N.value.slice(0, e + 1).reduce((e, t) => e + t, 0);
305
+ return Math.round(n / t * 100);
306
+ }
307
+ let Oe = a(() => {
308
+ if (!C.lazy || !U.value || W.value === null) return;
309
+ let e = U.value.draggerIndex, t = U.value.startSizes.slice(0, e + 1).reduce((e, t) => e + t, 0) + e * x + W.value;
310
+ return O.value ? { top: `${t}px` } : { left: `${t}px` };
311
+ });
312
+ function ke() {
313
+ return [...N.value];
314
+ }
315
+ function Ae(e) {
316
+ e.length === N.value.length && (N.value = z(e, R()), T("resize", [...N.value]));
317
+ }
318
+ de({
319
+ getSizes: ke,
320
+ setSizes: Ae
321
+ });
322
+ function je(e, t) {
323
+ let n = (N.value[t] ?? 0) <= 0;
324
+ return e.destroyOnHidden && n ? null : e.content ?? null;
325
+ }
326
+ return (e, t) => (h(), c("div", {
327
+ ref_key: "rootRef",
328
+ ref: j,
329
+ class: f(["b-splitter", {
330
+ "b-splitter--horizontal": !O.value,
331
+ "b-splitter--vertical": O.value,
332
+ "b-splitter--lazy": C.lazy,
333
+ "b-splitter--motion": Te.value,
334
+ "b-splitter--dragging": U.value !== null
335
+ }]),
336
+ "data-orientation": D.value
337
+ }, [(h(!0), c(r, null, ne(A.value, (n, i) => (h(), c(r, { key: `panel-${v(E)}-${i}` }, [l("div", {
338
+ id: `b-splitter-${v(E)}-panel-${i}`,
339
+ class: f(["b-splitter__panel", { "b-splitter__panel--collapsed": (N.value[i] ?? 0) <= 0 }]),
340
+ style: p(Ee(i)),
341
+ role: "group"
342
+ }, [(h(), o(re(v(w)), { nodes: je(n, i) }, null, 8, ["nodes"]))], 14, oe), i < A.value.length - 1 ? (h(), c("div", {
343
+ key: 0,
344
+ class: f(["b-splitter__divider", { "b-splitter__divider--disabled": !Z(i) }])
345
+ }, [
346
+ l("div", {
347
+ class: f(["b-splitter__dragger", {
348
+ "b-splitter__dragger--disabled": !Z(i),
349
+ "b-splitter__dragger--active": U.value && U.value.draggerIndex === i
350
+ }]),
351
+ role: "separator",
352
+ tabindex: Z(i) ? 0 : -1,
353
+ "aria-orientation": O.value ? "horizontal" : "vertical",
354
+ "aria-controls": `b-splitter-${v(E)}-panel-${i} b-splitter-${v(E)}-panel-${i + 1}`,
355
+ "aria-valuenow": De(i),
356
+ "aria-valuemin": "0",
357
+ "aria-valuemax": "100",
358
+ "aria-disabled": !Z(i) || void 0,
359
+ "aria-label": `Resize panel ${i + 1}`,
360
+ onMousedown: (e) => K(i, e),
361
+ onTouchstart: (e) => K(i, e),
362
+ onKeydown: (e) => ge(i, e),
363
+ onDblclick: (e) => he(i)
364
+ }, [l("span", ce, [_(e.$slots, "draggerIcon")])], 42, se),
365
+ be(i) ? (h(), c("button", {
366
+ key: 0,
367
+ type: "button",
368
+ class: "b-splitter__collapse-btn b-splitter__collapse-btn--start",
369
+ "aria-label": Ce(i),
370
+ "aria-expanded": !(P.value[i + 1] && I.value[i + 1] === "end"),
371
+ onMousedown: t[0] ||= b(() => {}, ["stop"]),
372
+ onTouchstart: t[1] ||= b(() => {}, ["stop"]),
373
+ onClick: b((e) => $(i), ["stop"])
374
+ }, [_(e.$slots, "collapseIconStart", {}, () => [t[4] ||= l("svg", {
375
+ "aria-hidden": "true",
376
+ class: "b-splitter__chevron b-splitter__chevron--start",
377
+ viewBox: "0 0 8 8",
378
+ width: "8",
379
+ height: "8"
380
+ }, [l("polyline", {
381
+ points: "5,1 2,4 5,7",
382
+ fill: "none",
383
+ stroke: "currentColor",
384
+ "stroke-width": "1.5",
385
+ "stroke-linecap": "round",
386
+ "stroke-linejoin": "round"
387
+ })], -1)])], 40, le)) : s("", !0),
388
+ xe(i) ? (h(), c("button", {
389
+ key: 1,
390
+ type: "button",
391
+ class: "b-splitter__collapse-btn b-splitter__collapse-btn--end",
392
+ "aria-label": we(i),
393
+ "aria-expanded": !(P.value[i] && I.value[i] === "start"),
394
+ onMousedown: t[2] ||= b(() => {}, ["stop"]),
395
+ onTouchstart: t[3] ||= b(() => {}, ["stop"]),
396
+ onClick: b((e) => Se(i), ["stop"])
397
+ }, [_(e.$slots, "collapseIconEnd", {}, () => [t[5] ||= l("svg", {
398
+ "aria-hidden": "true",
399
+ class: "b-splitter__chevron b-splitter__chevron--end",
400
+ viewBox: "0 0 8 8",
401
+ width: "8",
402
+ height: "8"
403
+ }, [l("polyline", {
404
+ points: "3,1 6,4 3,7",
405
+ fill: "none",
406
+ stroke: "currentColor",
407
+ "stroke-width": "1.5",
408
+ "stroke-linecap": "round",
409
+ "stroke-linejoin": "round"
410
+ })], -1)])], 40, ue)) : s("", !0)
411
+ ], 2)) : s("", !0)], 64))), 128)), C.lazy && U.value && W.value !== null ? (h(), c("div", {
412
+ key: 0,
413
+ class: "b-splitter__lazy-indicator",
414
+ style: p(Oe.value),
415
+ "aria-hidden": "true"
416
+ }, null, 4)) : s("", !0)], 10, ae));
417
+ }
418
+ });
5
419
  //#endregion
6
- export { t as default };
420
+ export { C as default };
7
421
 
8
422
  //# sourceMappingURL=design-system204.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"design-system204.js","names":[],"sources":["../src/components/BTag/BTag.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\n\nimport type { BTagColor, BTagPresetColor, BTagSize, BTagVariant } from './types';\n\n// ─────────────────────────────────────────────\n// Props\n// ─────────────────────────────────────────────\nconst {\n color,\n variant = 'filled',\n size = 'default',\n closable = false,\n closeIcon,\n visible = undefined,\n bordered = true,\n icon,\n} = defineProps<{\n /**\n * Preset semantic color name or any CSS color value.\n * Preset names map to a full color scale (bg, border, text).\n * Any other string is treated as a raw CSS color and applied to the border.\n * @example 'success' | 'processing' | 'error' | '#ff0000' | 'rgb(0,0,255)'\n */\n color?: BTagColor;\n /**\n * Visual style variant.\n * @default 'filled'\n */\n variant?: BTagVariant;\n /**\n * Size of the tag.\n * @default 'default'\n */\n size?: BTagSize;\n /**\n * Whether the tag can be closed/removed.\n * @default false\n */\n closable?: boolean;\n /**\n * Custom icon shown as the close trigger (string emoji / unicode or slot).\n * If omitted the default × SVG is used.\n */\n closeIcon?: string;\n /**\n * Controlled visibility - operate the tag in controlled mode via v-model.\n * When undefined the component manages its own visibility.\n */\n visible?: boolean;\n /**\n * Whether the tag has a border.\n * @default true\n */\n bordered?: boolean;\n /**\n * Leading icon string (emoji / unicode). For accessible icon rendering\n * prefer the `#icon` slot which lets callers set `role=\"img\"` + `aria-label`.\n */\n icon?: string;\n}>();\n\n// ─────────────────────────────────────────────\n// Emits\n// ─────────────────────────────────────────────\nconst emit = defineEmits<{\n /** Fires synchronously when the close button is clicked/activated. */\n (e: 'close', event: MouseEvent | KeyboardEvent): void;\n /** Fires after the fade-out transition fully completes. */\n (e: 'afterClose'): void;\n /** v-model support - emitted with `false` when the tag is closed. */\n (e: 'update:visible', value: boolean): void;\n}>();\n\n// ─────────────────────────────────────────────\n// Slots\n// ─────────────────────────────────────────────\ndefineSlots<{\n /** Default tag content. */\n default?(): unknown;\n /** Leading icon area - receives no scoped props. */\n icon?(): unknown;\n /** Overrides the built-in close icon. */\n closeIcon?(): unknown;\n}>();\n\n// ─────────────────────────────────────────────\n// Preset colors\n// ─────────────────────────────────────────────\nconst PRESET_COLORS: BTagPresetColor[] = [\n 'default',\n 'success',\n 'processing',\n 'error',\n 'warning',\n 'magenta',\n 'red',\n 'volcano',\n 'orange',\n 'gold',\n 'lime',\n 'green',\n 'cyan',\n 'blue',\n 'geekblue',\n 'purple',\n];\n\nconst isPreset = computed(() => color === undefined || (PRESET_COLORS as string[]).includes(color));\n\nconst effectiveColor = computed<BTagPresetColor>(() =>\n isPreset.value ? ((color ?? 'default') as BTagPresetColor) : 'default',\n);\n\n// ─────────────────────────────────────────────\n// Visibility state\n// ─────────────────────────────────────────────\nconst isControlled = computed(() => visible !== undefined);\nconst internalVisible = ref(true);\n\n// Sync external → internal when switching to controlled\nwatch(\n () => visible,\n (val) => {\n if (val !== undefined) internalVisible.value = val;\n },\n);\n\nconst isVisible = computed(() => (isControlled.value ? visible! : internalVisible.value));\n\n// ─────────────────────────────────────────────\n// Close logic\n// ─────────────────────────────────────────────\nfunction handleClose(event: MouseEvent | KeyboardEvent) {\n emit('close', event);\n if (isControlled.value) {\n emit('update:visible', false);\n } else {\n internalVisible.value = false;\n }\n}\n\nfunction onCloseClick(event: MouseEvent) {\n handleClose(event);\n}\n\nfunction onCloseKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Escape') {\n event.preventDefault();\n handleClose(event);\n }\n}\n\nfunction onAfterLeave() {\n emit('afterClose');\n}\n\n// ─────────────────────────────────────────────\n// Root class\n// ─────────────────────────────────────────────\nconst rootClasses = computed(() => [\n 'b-tag',\n `b-tag--${effectiveColor.value}`,\n `b-tag--${variant}`,\n {\n 'b-tag--borderless': !bordered,\n 'b-tag--closable': closable,\n 'b-tag--small': size === 'small',\n 'b-tag--large': size === 'large',\n 'b-tag--custom-color': !isPreset.value,\n },\n]);\n\n// ─────────────────────────────────────────────\n// Custom color inline style\n// ─────────────────────────────────────────────\nconst customColorStyle = computed(() => {\n if (isPreset.value) return undefined;\n // For custom colors: use the color as border + text; tint bg at 10% opacity\n return {\n '--b-tag-custom-color': color,\n } as Record<string, string>;\n});\n</script>\n\n<template>\n <Transition name=\"b-tag-fade\" @after-leave=\"onAfterLeave\">\n <span v-if=\"isVisible\" :class=\"rootClasses\" :style=\"customColorStyle\">\n <!-- Leading icon -->\n <span\n v-if=\"$slots.icon || icon\"\n class=\"b-tag__icon\"\n :aria-hidden=\"$slots.icon ? undefined : 'true'\"\n >\n <slot name=\"icon\">{{ icon }}</slot>\n </span>\n\n <!-- Content -->\n <span class=\"b-tag__content\">\n <slot />\n </span>\n\n <!-- Close button -->\n <button\n v-if=\"closable\"\n type=\"button\"\n class=\"b-tag__close\"\n aria-label=\"Remove tag\"\n tabindex=\"0\"\n @click.stop=\"onCloseClick\"\n @keydown=\"onCloseKeydown\"\n >\n <slot name=\"closeIcon\">\n <span\n v-if=\"closeIcon\"\n class=\"b-tag__close-label\"\n aria-hidden=\"true\"\n :data-icon=\"closeIcon\"\n />\n <svg\n v-else\n class=\"b-tag__close-icon\"\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M9.5 3.205 8.795 2.5 6 5.295 3.205 2.5 2.5 3.205 5.295 6 2.5 8.795 3.205 9.5 6 6.705 8.795 9.5 9.5 8.795 6.705 6z\"\n />\n </svg>\n </slot>\n </button>\n </span>\n </Transition>\n</template>\n\n<style>\n/* ─────────────────────────────────────────────\n BTag - CSS custom properties (scoped to root)\n ───────────────────────────────────────────── */\n.b-tag {\n /* Layout */\n --b-tag-height: 22px;\n --b-tag-padding: 0 7px;\n --b-tag-border-radius: 4px;\n --b-tag-font-size: 12px;\n --b-tag-line-height: 20px;\n --b-tag-gap: 4px;\n\n /* Close button */\n --b-tag-close-size: 12px;\n --b-tag-close-offset: 3px;\n --b-tag-close-opacity: 0.45;\n --b-tag-close-hover-opacity: 1;\n\n /* Animation */\n --b-tag-transition-duration: 200ms;\n\n /* Custom color (set via inline style for non-preset colors) */\n --b-tag-custom-color: initial;\n\n /* ── Default color scheme ── */\n --b-tag-bg: oklch(96% 0.003 260);\n --b-tag-border-color: oklch(87% 0.007 260);\n --b-tag-color: oklch(32% 0.02 260);\n\n /* ── Layout ── */\n display: inline-flex;\n align-items: center;\n gap: var(--b-tag-gap);\n height: var(--b-tag-height);\n padding: var(--b-tag-padding);\n border-radius: var(--b-tag-border-radius);\n border: 1px solid var(--b-tag-border-color);\n background: var(--b-tag-bg);\n color: var(--b-tag-color);\n font-size: var(--b-tag-font-size);\n line-height: var(--b-tag-line-height);\n white-space: nowrap;\n box-sizing: border-box;\n vertical-align: middle;\n cursor: default;\n user-select: none;\n}\n\n/* ── Size variants ── */\n.b-tag--small {\n --b-tag-height: 18px;\n --b-tag-padding: 0 5px;\n --b-tag-font-size: 11px;\n --b-tag-line-height: 16px;\n --b-tag-close-size: 10px;\n}\n\n.b-tag--large {\n --b-tag-height: 28px;\n --b-tag-padding: 0 10px;\n --b-tag-font-size: 14px;\n --b-tag-line-height: 26px;\n --b-tag-close-size: 14px;\n}\n\n/* ── Borderless ── */\n.b-tag--borderless {\n border-color: transparent;\n}\n\n/* ── Outlined variant ── */\n.b-tag--outlined {\n background: transparent;\n}\n\n/* ── Icon ── */\n.b-tag__icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n font-size: var(--b-tag-font-size);\n}\n\n/* ── Content ── */\n.b-tag__content {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--b-tag-line-height);\n}\n\n/* ── Close button ── */\n.b-tag__close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 0;\n margin-left: var(--b-tag-close-offset);\n border: none;\n border-radius: 2px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n opacity: var(--b-tag-close-opacity);\n line-height: 1;\n font-size: var(--b-tag-close-size);\n width: var(--b-tag-close-size);\n height: var(--b-tag-close-size);\n transition: opacity var(--b-tag-transition-duration) ease;\n}\n\n.b-tag__close:hover {\n opacity: var(--b-tag-close-hover-opacity);\n}\n\n.b-tag__close:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n opacity: var(--b-tag-close-hover-opacity);\n}\n\n.b-tag__close-icon {\n width: 1em;\n height: 1em;\n fill: currentColor;\n display: block;\n}\n\n.b-tag__close-label::before {\n content: attr(data-icon);\n}\n\n/* ─────────────────────────────────────────────\n Preset color schemes\n ───────────────────────────────────────────── */\n\n/* ── success ── */\n.b-tag--success {\n --b-tag-bg: oklch(95% 0.05 145);\n --b-tag-border-color: oklch(78% 0.14 148);\n --b-tag-color: oklch(40% 0.14 148);\n}\n\n/* ── processing (blue pulse-ready) ── */\n.b-tag--processing {\n --b-tag-bg: oklch(94% 0.05 260);\n --b-tag-border-color: oklch(72% 0.17 262);\n --b-tag-color: oklch(45% 0.18 262);\n}\n\n/* ── error ── */\n.b-tag--error {\n --b-tag-bg: oklch(96% 0.04 20);\n --b-tag-border-color: oklch(78% 0.15 22);\n --b-tag-color: oklch(40% 0.17 22);\n}\n\n/* ── warning ── */\n.b-tag--warning {\n --b-tag-bg: oklch(97% 0.06 75);\n --b-tag-border-color: oklch(82% 0.17 58);\n --b-tag-color: oklch(42% 0.14 55);\n}\n\n/* ── magenta ── */\n.b-tag--magenta {\n --b-tag-bg: oklch(95% 0.04 345);\n --b-tag-border-color: oklch(76% 0.18 350);\n --b-tag-color: oklch(42% 0.2 348);\n}\n\n/* ── red ── */\n.b-tag--red {\n --b-tag-bg: oklch(96% 0.035 15);\n --b-tag-border-color: oklch(74% 0.19 18);\n --b-tag-color: oklch(40% 0.2 18);\n}\n\n/* ── volcano ── */\n.b-tag--volcano {\n --b-tag-bg: oklch(96% 0.04 38);\n --b-tag-border-color: oklch(76% 0.17 38);\n --b-tag-color: oklch(42% 0.18 38);\n}\n\n/* ── orange ── */\n.b-tag--orange {\n --b-tag-bg: oklch(97% 0.055 65);\n --b-tag-border-color: oklch(80% 0.18 62);\n --b-tag-color: oklch(44% 0.16 60);\n}\n\n/* ── gold ── */\n.b-tag--gold {\n --b-tag-bg: oklch(97% 0.06 80);\n --b-tag-border-color: oklch(82% 0.18 78);\n --b-tag-color: oklch(45% 0.14 78);\n}\n\n/* ── lime ── */\n.b-tag--lime {\n --b-tag-bg: oklch(96% 0.07 128);\n --b-tag-border-color: oklch(80% 0.18 128);\n --b-tag-color: oklch(42% 0.15 128);\n}\n\n/* ── green ── */\n.b-tag--green {\n --b-tag-bg: oklch(95% 0.05 145);\n --b-tag-border-color: oklch(76% 0.16 147);\n --b-tag-color: oklch(38% 0.14 147);\n}\n\n/* ── cyan ── */\n.b-tag--cyan {\n --b-tag-bg: oklch(95% 0.05 200);\n --b-tag-border-color: oklch(76% 0.14 200);\n --b-tag-color: oklch(40% 0.12 200);\n}\n\n/* ── blue ── */\n.b-tag--blue {\n --b-tag-bg: oklch(94% 0.05 255);\n --b-tag-border-color: oklch(72% 0.17 258);\n --b-tag-color: oklch(42% 0.18 258);\n}\n\n/* ── geekblue ── */\n.b-tag--geekblue {\n --b-tag-bg: oklch(94% 0.04 270);\n --b-tag-border-color: oklch(68% 0.2 272);\n --b-tag-color: oklch(38% 0.22 272);\n}\n\n/* ── purple ── */\n.b-tag--purple {\n --b-tag-bg: oklch(95% 0.04 300);\n --b-tag-border-color: oklch(72% 0.18 300);\n --b-tag-color: oklch(40% 0.2 300);\n}\n\n/* ─────────────────────────────────────────────\n Custom (non-preset) color\n ───────────────────────────────────────────── */\n.b-tag--custom-color {\n /* 8% tint keeps the background very light; 55% blend with black produces\n text dark enough to clear WCAG AA 4.5:1 against that near-white bg. */\n --b-tag-bg: color-mix(in oklch, var(--b-tag-custom-color) 8%, white);\n --b-tag-border-color: color-mix(in oklch, var(--b-tag-custom-color) 50%, white);\n --b-tag-color: color-mix(in oklch, var(--b-tag-custom-color) 55%, black);\n}\n\n/* ─────────────────────────────────────────────\n Dark mode\n ───────────────────────────────────────────── */\n[data-prefers-color='dark'] .b-tag {\n --b-tag-bg: oklch(26% 0.008 260);\n --b-tag-border-color: oklch(36% 0.012 260);\n --b-tag-color: oklch(82% 0.01 260);\n}\n\n[data-prefers-color='dark'] .b-tag--success {\n --b-tag-bg: oklch(20% 0.06 148);\n --b-tag-border-color: oklch(38% 0.12 148);\n --b-tag-color: oklch(78% 0.12 148);\n}\n\n[data-prefers-color='dark'] .b-tag--processing {\n --b-tag-bg: oklch(20% 0.06 260);\n --b-tag-border-color: oklch(40% 0.14 262);\n --b-tag-color: oklch(76% 0.15 262);\n}\n\n[data-prefers-color='dark'] .b-tag--error {\n --b-tag-bg: oklch(20% 0.05 20);\n --b-tag-border-color: oklch(38% 0.14 22);\n --b-tag-color: oklch(78% 0.14 22);\n}\n\n[data-prefers-color='dark'] .b-tag--warning {\n --b-tag-bg: oklch(20% 0.06 58);\n --b-tag-border-color: oklch(40% 0.15 58);\n --b-tag-color: oklch(80% 0.14 58);\n}\n\n[data-prefers-color='dark'] .b-tag--magenta {\n --b-tag-bg: oklch(20% 0.05 348);\n --b-tag-border-color: oklch(38% 0.16 350);\n --b-tag-color: oklch(76% 0.16 348);\n}\n\n[data-prefers-color='dark'] .b-tag--red {\n --b-tag-bg: oklch(20% 0.05 18);\n --b-tag-border-color: oklch(38% 0.17 18);\n --b-tag-color: oklch(76% 0.17 18);\n}\n\n[data-prefers-color='dark'] .b-tag--volcano {\n --b-tag-bg: oklch(20% 0.05 38);\n --b-tag-border-color: oklch(38% 0.15 38);\n --b-tag-color: oklch(76% 0.15 38);\n}\n\n[data-prefers-color='dark'] .b-tag--orange {\n --b-tag-bg: oklch(20% 0.06 62);\n --b-tag-border-color: oklch(40% 0.16 62);\n --b-tag-color: oklch(80% 0.16 62);\n}\n\n[data-prefers-color='dark'] .b-tag--gold {\n --b-tag-bg: oklch(20% 0.06 78);\n --b-tag-border-color: oklch(40% 0.16 78);\n --b-tag-color: oklch(80% 0.14 78);\n}\n\n[data-prefers-color='dark'] .b-tag--lime {\n --b-tag-bg: oklch(20% 0.07 128);\n --b-tag-border-color: oklch(40% 0.16 128);\n --b-tag-color: oklch(80% 0.14 128);\n}\n\n[data-prefers-color='dark'] .b-tag--green {\n --b-tag-bg: oklch(20% 0.06 147);\n --b-tag-border-color: oklch(38% 0.14 147);\n --b-tag-color: oklch(76% 0.13 147);\n}\n\n[data-prefers-color='dark'] .b-tag--cyan {\n --b-tag-bg: oklch(20% 0.05 200);\n --b-tag-border-color: oklch(38% 0.12 200);\n --b-tag-color: oklch(76% 0.11 200);\n}\n\n[data-prefers-color='dark'] .b-tag--blue {\n --b-tag-bg: oklch(20% 0.06 258);\n --b-tag-border-color: oklch(38% 0.15 258);\n --b-tag-color: oklch(74% 0.15 258);\n}\n\n[data-prefers-color='dark'] .b-tag--geekblue {\n --b-tag-bg: oklch(20% 0.05 272);\n --b-tag-border-color: oklch(36% 0.18 272);\n --b-tag-color: oklch(72% 0.18 272);\n}\n\n[data-prefers-color='dark'] .b-tag--purple {\n --b-tag-bg: oklch(20% 0.05 300);\n --b-tag-border-color: oklch(36% 0.16 300);\n --b-tag-color: oklch(74% 0.16 300);\n}\n\n[data-prefers-color='dark'] .b-tag--custom-color {\n --b-tag-bg: color-mix(in oklch, var(--b-tag-custom-color) 15%, oklch(15% 0 0));\n --b-tag-border-color: color-mix(in oklch, var(--b-tag-custom-color) 50%, oklch(15% 0 0));\n --b-tag-color: color-mix(in oklch, var(--b-tag-custom-color) 85%, white);\n}\n\n@media (prefers-color-scheme: dark) {\n [data-prefers-color='system'] .b-tag {\n --b-tag-bg: oklch(26% 0.008 260);\n --b-tag-border-color: oklch(36% 0.012 260);\n --b-tag-color: oklch(82% 0.01 260);\n }\n [data-prefers-color='system'] .b-tag--success {\n --b-tag-bg: oklch(20% 0.06 148);\n --b-tag-border-color: oklch(38% 0.12 148);\n --b-tag-color: oklch(78% 0.12 148);\n }\n [data-prefers-color='system'] .b-tag--processing {\n --b-tag-bg: oklch(20% 0.06 260);\n --b-tag-border-color: oklch(40% 0.14 262);\n --b-tag-color: oklch(76% 0.15 262);\n }\n [data-prefers-color='system'] .b-tag--error {\n --b-tag-bg: oklch(20% 0.05 20);\n --b-tag-border-color: oklch(38% 0.14 22);\n --b-tag-color: oklch(78% 0.14 22);\n }\n [data-prefers-color='system'] .b-tag--warning {\n --b-tag-bg: oklch(20% 0.06 58);\n --b-tag-border-color: oklch(40% 0.15 58);\n --b-tag-color: oklch(80% 0.14 58);\n }\n [data-prefers-color='system'] .b-tag--magenta {\n --b-tag-bg: oklch(20% 0.05 348);\n --b-tag-border-color: oklch(38% 0.16 350);\n --b-tag-color: oklch(76% 0.16 348);\n }\n [data-prefers-color='system'] .b-tag--red {\n --b-tag-bg: oklch(20% 0.05 18);\n --b-tag-border-color: oklch(38% 0.17 18);\n --b-tag-color: oklch(76% 0.17 18);\n }\n [data-prefers-color='system'] .b-tag--volcano {\n --b-tag-bg: oklch(20% 0.05 38);\n --b-tag-border-color: oklch(38% 0.15 38);\n --b-tag-color: oklch(76% 0.15 38);\n }\n [data-prefers-color='system'] .b-tag--orange {\n --b-tag-bg: oklch(20% 0.06 62);\n --b-tag-border-color: oklch(40% 0.16 62);\n --b-tag-color: oklch(80% 0.16 62);\n }\n [data-prefers-color='system'] .b-tag--gold {\n --b-tag-bg: oklch(20% 0.06 78);\n --b-tag-border-color: oklch(40% 0.16 78);\n --b-tag-color: oklch(80% 0.14 78);\n }\n [data-prefers-color='system'] .b-tag--lime {\n --b-tag-bg: oklch(20% 0.07 128);\n --b-tag-border-color: oklch(40% 0.16 128);\n --b-tag-color: oklch(80% 0.14 128);\n }\n [data-prefers-color='system'] .b-tag--green {\n --b-tag-bg: oklch(20% 0.06 147);\n --b-tag-border-color: oklch(38% 0.14 147);\n --b-tag-color: oklch(76% 0.13 147);\n }\n [data-prefers-color='system'] .b-tag--cyan {\n --b-tag-bg: oklch(20% 0.05 200);\n --b-tag-border-color: oklch(38% 0.12 200);\n --b-tag-color: oklch(76% 0.11 200);\n }\n [data-prefers-color='system'] .b-tag--blue {\n --b-tag-bg: oklch(20% 0.06 258);\n --b-tag-border-color: oklch(38% 0.15 258);\n --b-tag-color: oklch(74% 0.15 258);\n }\n [data-prefers-color='system'] .b-tag--geekblue {\n --b-tag-bg: oklch(20% 0.05 272);\n --b-tag-border-color: oklch(36% 0.18 272);\n --b-tag-color: oklch(72% 0.18 272);\n }\n [data-prefers-color='system'] .b-tag--purple {\n --b-tag-bg: oklch(20% 0.05 300);\n --b-tag-border-color: oklch(36% 0.16 300);\n --b-tag-color: oklch(74% 0.16 300);\n }\n [data-prefers-color='system'] .b-tag--custom-color {\n --b-tag-bg: color-mix(in oklch, var(--b-tag-custom-color) 15%, oklch(15% 0 0));\n --b-tag-border-color: color-mix(in oklch, var(--b-tag-custom-color) 50%, oklch(15% 0 0));\n --b-tag-color: color-mix(in oklch, var(--b-tag-custom-color) 85%, white);\n }\n}\n\n/* ─────────────────────────────────────────────\n Transition (fade)\n ───────────────────────────────────────────── */\n.b-tag-fade-enter-active,\n.b-tag-fade-leave-active {\n transition:\n opacity var(--b-tag-transition-duration) ease,\n transform var(--b-tag-transition-duration) ease;\n}\n\n.b-tag-fade-enter-from,\n.b-tag-fade-leave-to {\n opacity: 0;\n transform: scale(0.85);\n}\n\n/* ── Reduced motion ── */\n@media (prefers-reduced-motion: reduce) {\n .b-tag {\n --b-tag-transition-duration: 0ms;\n }\n\n .b-tag-fade-enter-active,\n .b-tag-fade-leave-active {\n transition: opacity var(--b-tag-transition-duration) ease;\n transform: none !important;\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"design-system204.js","names":[],"sources":["../src/components/BSplitter/BSplitter.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, unref as _unref, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, renderSlot as _renderSlot, withModifiers as _withModifiers, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"data-orientation\"]\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = [\"tabindex\", \"aria-orientation\", \"aria-controls\", \"aria-valuenow\", \"aria-disabled\", \"aria-label\", \"onMousedown\", \"onTouchstart\", \"onKeydown\", \"onDblclick\"]\nconst _hoisted_4 = {\n \"aria-hidden\": \"true\",\n class: \"b-splitter__handle\"\n}\nconst _hoisted_5 = [\"aria-label\", \"aria-expanded\", \"onClick\"]\nconst _hoisted_6 = [\"aria-label\", \"aria-expanded\", \"onClick\"]\n\nimport type { CSSProperties, PropType, VNode } from 'vue';\nimport { Fragment, camelize, computed, defineComponent, h, onBeforeUnmount, onMounted, provide, ref, useSlots, watch } from 'vue';\nimport { useComponentId } from '../../composables/useComponentId';\nimport BSplitterPanel from './BSplitterPanel.vue';\nimport {\n BSplitterContextKey,\n type BSplitterCollapsible,\n type BSplitterOrientation,\n type BSplitterPanelCollapsible,\n type BSplitterPanelConfig,\n} from './types';\n\nconst DRAGGER_PX = 6; // matches --b-splitter-dragger-size default\n\n/** Pixel sizes for each panel, kept in sync with container size + props. */\ninterface DragState {\n draggerIndex: number;\n startCoord: number;\n startSizes: number[];\n /** In lazy mode, the preview offset (pixels relative to original divider). */\n previewDelta: number;\n}\nconst KEY_STEP = 10;\n\n\nexport default /*@__PURE__*/_defineComponent({\n ...{ name: 'BSplitter', inheritAttrs: false },\n __name: 'BSplitter',\n props: {\n vertical: { type: Boolean, default: false },\n orientation: {},\n lazy: { type: Boolean, default: false },\n collapsible: {}\n },\n emits: [\"resize\", \"resizeStart\", \"resizeEnd\", \"collapse\", \"draggerDoubleClick\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\n/**\n * BSplitter\n * ---------\n * A flex container that lets the user resize the size of its panels by\n * dragging the bars between them.\n *\n * Mirrors the AntD `<Splitter>` API. Children must be `<BSplitterPanel>`\n * components.\n */\n\n\n/**\n * Internal helper component that renders an array of pre-built VNodes inside\n * a panel. Declared inline to keep the SFC self-contained.\n */\nconst VNodeRenderer = defineComponent({\n name: 'BSplitterVNodeRenderer',\n props: {\n nodes: {\n type: Array as PropType<VNode[] | undefined | null>,\n default: () => [],\n },\n },\n setup(props) {\n return () => (props.nodes && props.nodes.length ? h(Fragment, null, props.nodes) : null);\n },\n});\n\n//#region Props / Emits / Slots\n\n\nconst emit = __emit;\n\nconst slots = useSlots();\nconst { componentUID } = useComponentId();\n//#endregion\n\n//#region Orientation\nconst resolvedOrientation = computed<BSplitterOrientation>(() =>\n __props.orientation ?? (__props.vertical ? 'vertical' : 'horizontal'),\n);\nconst isVertical = computed(() => resolvedOrientation.value === 'vertical');\n\nprovide(BSplitterContextKey, {\n orientation: resolvedOrientation.value,\n});\n//#endregion\n\n//#region Slot inspection — extract panel configs from default slot\nfunction flattenChildren(children: VNode[]): VNode[] {\n const out: VNode[] = [];\n for (const vn of children) {\n if (vn.type === Fragment && Array.isArray(vn.children)) {\n out.push(...flattenChildren(vn.children as VNode[]));\n } else {\n out.push(vn);\n }\n }\n return out;\n}\n\nconst panelConfigs = computed<BSplitterPanelConfig[]>(() => {\n const raw = slots.default?.();\n if (!raw) return [];\n const flat = flattenChildren(raw);\n const result: BSplitterPanelConfig[] = [];\n let idx = 0;\n for (const vnode of flat) {\n if (vnode.type !== BSplitterPanel) continue;\n // Normalize prop keys to camelCase — Vue keeps the original (often\n // kebab-case) keys on the raw vnode.props.\n const rawProps = (vnode.props ?? {}) as Record<string, unknown>;\n const props: Record<string, unknown> = {};\n for (const k in rawProps) props[camelize(k)] = rawProps[k];\n\n const slotChildren = vnode.children as\n | { default?: () => VNode | VNode[] }\n | null\n | undefined;\n const rawDefault = slotChildren?.default?.();\n const content: VNode[] | undefined = rawDefault\n ? Array.isArray(rawDefault)\n ? rawDefault\n : [rawDefault]\n : undefined;\n\n let collapsible: BSplitterPanelCollapsible | false = false;\n const c = props.collapsible;\n if (c === true || c === '' || c === 'true') {\n collapsible = { start: true, end: true };\n } else if (c && typeof c === 'object') {\n collapsible = c as BSplitterPanelCollapsible;\n }\n\n const resizableRaw = props.resizable;\n const resizable =\n resizableRaw === undefined\n ? true\n : resizableRaw === false || resizableRaw === 'false'\n ? false\n : true;\n\n const destroyRaw = props.destroyOnHidden;\n const destroyOnHidden =\n destroyRaw === true || destroyRaw === '' || destroyRaw === 'true';\n\n result.push({\n index: idx++,\n size: props.size as number | string | undefined,\n defaultSize: props.defaultSize as number | string | undefined,\n min: props.min as number | string | undefined,\n max: props.max as number | string | undefined,\n resizable,\n collapsible,\n destroyOnHidden,\n content,\n });\n }\n return result;\n});\n//#endregion\n\n//#region Sizing internals\nconst rootRef = ref<HTMLElement | null>(null);\nconst containerSize = ref(0);\nconst sizesPx = ref<number[]>([]);\n/** Per-panel collapsed flag (true → forced size 0). */\nconst collapsedFlags = ref<boolean[]>([]);\n/** Per-panel sizes saved before collapsing (so we can restore). */\nconst savedSizes = ref<(number | null)[]>([]);\n/**\n * Per-panel record of how it was collapsed:\n * - 'start': collapsed via the `<` button on the dragger AFTER the panel\n * (neighbor that absorbed = panel + 1)\n * - 'end': collapsed via the `>` button on the dragger BEFORE the panel\n * (neighbor that absorbed = panel - 1)\n * Used to decide which dragger should expose the restore button.\n */\nconst collapsedDirection = ref<('start' | 'end' | null)[]>([]);\n\nfunction parseLength(\n value: number | string | undefined,\n total: number,\n fallback = NaN,\n): number {\n if (value === undefined || value === null) return fallback;\n if (typeof value === 'number') return value;\n const s = value.trim();\n if (s.endsWith('%')) {\n const pct = parseFloat(s);\n return isFinite(pct) ? (pct / 100) * total : fallback;\n }\n if (s.endsWith('px')) return parseFloat(s);\n const n = parseFloat(s);\n return isFinite(n) ? n : fallback;\n}\n\nfunction availableSize(): number {\n const total = containerSize.value;\n const dividers = Math.max(panelConfigs.value.length - 1, 0) * DRAGGER_PX;\n return Math.max(total - dividers, 0);\n}\n\nfunction computeInitialSizes(): number[] {\n const panels = panelConfigs.value;\n const avail = availableSize();\n if (panels.length === 0 || avail <= 0) return panels.map(() => 0);\n\n const result: number[] = Array.from({ length: panels.length }, () => NaN);\n let assigned = 0;\n // First pass: explicit `size` and `defaultSize`.\n panels.forEach((p, i) => {\n const v = parseLength(p.size ?? p.defaultSize, avail);\n if (!isNaN(v)) {\n result[i] = v;\n assigned += v;\n }\n });\n // Distribute remainder evenly among the rest.\n const remainingIdx = result.map((v, i) => (isNaN(v) ? i : -1)).filter((i) => i >= 0);\n if (remainingIdx.length > 0) {\n const remainder = Math.max(avail - assigned, 0);\n const each = remainder / remainingIdx.length;\n remainingIdx.forEach((i) => (result[i] = each));\n }\n // Clamp to min/max and re-normalize so they sum to avail.\n return clampAndNormalize(result, avail);\n}\n\nfunction clampAndNormalize(input: number[], avail: number): number[] {\n const panels = panelConfigs.value;\n const out = input.map((v, i) => {\n const min = parseLength(panels[i]?.min, avail, 0);\n const max = parseLength(panels[i]?.max, avail, Infinity);\n return Math.min(Math.max(v, min), max);\n });\n // Normalize to fit avail.\n const sum = out.reduce((a, b) => a + b, 0);\n if (sum === 0 || avail === 0) return out;\n const scale = avail / sum;\n return out.map((v) => v * scale);\n}\n\nfunction syncFromProps() {\n const panels = panelConfigs.value;\n // Ensure collapsedFlags / savedSizes have correct length.\n if (collapsedFlags.value.length !== panels.length) {\n collapsedFlags.value = panels.map(() => false);\n savedSizes.value = panels.map(() => null);\n collapsedDirection.value = panels.map(() => null);\n }\n // Re-derive sizes when container or panel configs change.\n sizesPx.value = computeInitialSizes();\n}\n\n/**\n * Inspect controlled `size` props — when provided, reflect them into sizesPx.\n * AntD-style: when `size` is set, it acts as a controlled value.\n */\nwatch(\n () => panelConfigs.value.map((p) => `${p.size ?? ''}`).join('|'),\n () => {\n if (containerSize.value > 0) syncFromProps();\n },\n);\n\nwatch(\n () => panelConfigs.value.length,\n () => {\n if (containerSize.value > 0) syncFromProps();\n },\n);\n//#endregion\n\n//#region ResizeObserver — track container size\nlet resizeObserver: ResizeObserver | null = null;\n\nonMounted(() => {\n if (!rootRef.value) return;\n measureContainer();\n syncFromProps();\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(() => {\n const prev = containerSize.value;\n measureContainer();\n // Re-scale sizes proportionally on container resize.\n if (prev > 0 && containerSize.value > 0 && sizesPx.value.length > 0) {\n const ratio = availableSize() / Math.max(prev - DRAGGER_PX * (sizesPx.value.length - 1), 1);\n sizesPx.value = clampAndNormalize(\n sizesPx.value.map((v) => v * ratio),\n availableSize(),\n );\n } else {\n syncFromProps();\n }\n });\n resizeObserver.observe(rootRef.value);\n }\n});\n\nonBeforeUnmount(() => {\n resizeObserver?.disconnect();\n resizeObserver = null;\n removeDragListeners();\n});\n\nfunction measureContainer() {\n if (!rootRef.value) return;\n containerSize.value = isVertical.value\n ? rootRef.value.clientHeight\n : rootRef.value.clientWidth;\n}\n//#endregion\n\n//#region Dragging\nconst dragState = ref<DragState | null>(null);\nconst lazyPreviewDelta = ref<number | null>(null);\n\nfunction getCoord(e: MouseEvent | TouchEvent): number {\n if ('touches' in e) {\n const t = e.touches[0] ?? e.changedTouches[0];\n return isVertical.value ? t.clientY : t.clientX;\n }\n return isVertical.value ? e.clientY : e.clientX;\n}\n\nfunction onDraggerPointerDown(index: number, e: MouseEvent | TouchEvent) {\n if (!isResizable(index)) return;\n e.preventDefault();\n dragState.value = {\n draggerIndex: index,\n startCoord: getCoord(e),\n startSizes: [...sizesPx.value],\n previewDelta: 0,\n };\n lazyPreviewDelta.value = __props.lazy ? 0 : null;\n emit('resizeStart', [...sizesPx.value]);\n\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragEnd);\n document.addEventListener('touchmove', onDragMove, { passive: false });\n document.addEventListener('touchend', onDragEnd);\n}\n\nfunction applyDelta(startSizes: number[], index: number, delta: number): number[] {\n const panels = panelConfigs.value;\n const avail = availableSize();\n const next = [...startSizes];\n const a = index;\n const b = index + 1;\n\n const aMin = parseLength(panels[a]?.min, avail, 0);\n const aMax = parseLength(panels[a]?.max, avail, Infinity);\n const bMin = parseLength(panels[b]?.min, avail, 0);\n const bMax = parseLength(panels[b]?.max, avail, Infinity);\n\n let newA = next[a] + delta;\n let newB = next[b] - delta;\n\n // Clamp so neither side violates its constraints.\n if (newA < aMin) {\n newB -= aMin - newA;\n newA = aMin;\n }\n if (newA > aMax) {\n newB += newA - aMax;\n newA = aMax;\n }\n if (newB < bMin) {\n newA -= bMin - newB;\n newB = bMin;\n }\n if (newB > bMax) {\n newA += newB - bMax;\n newB = bMax;\n }\n // Final clamp on `a` again in case `b` clamping pushed it out.\n newA = Math.min(Math.max(newA, aMin), aMax);\n newB = Math.min(Math.max(newB, bMin), bMax);\n next[a] = newA;\n next[b] = newB;\n return next;\n}\n\nfunction onDragMove(e: MouseEvent | TouchEvent) {\n if (!dragState.value) return;\n if ('touches' in e) e.preventDefault();\n const coord = getCoord(e);\n const delta = coord - dragState.value.startCoord;\n\n if (__props.lazy) {\n // Update preview indicator only.\n lazyPreviewDelta.value = delta;\n return;\n }\n const next = applyDelta(dragState.value.startSizes, dragState.value.draggerIndex, delta);\n sizesPx.value = next;\n emit('resize', [...next]);\n}\n\nfunction onDragEnd(e: MouseEvent | TouchEvent) {\n if (!dragState.value) return;\n const coord = 'changedTouches' in e ? getCoord(e) : getCoord(e);\n const delta = coord - dragState.value.startCoord;\n\n if (__props.lazy) {\n const next = applyDelta(dragState.value.startSizes, dragState.value.draggerIndex, delta);\n sizesPx.value = next;\n emit('resize', [...next]);\n }\n emit('resizeEnd', [...sizesPx.value]);\n dragState.value = null;\n lazyPreviewDelta.value = null;\n removeDragListeners();\n}\n\nfunction removeDragListeners() {\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('mouseup', onDragEnd);\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n}\n\nfunction isResizable(draggerIndex: number): boolean {\n const a = panelConfigs.value[draggerIndex];\n const b = panelConfigs.value[draggerIndex + 1];\n return !!(a?.resizable && b?.resizable);\n}\n\nfunction onDraggerDoubleClick(i: number) {\n emit('draggerDoubleClick', i);\n}\n//#endregion\n\n//#region Keyboard\nfunction onDraggerKeyDown(index: number, e: KeyboardEvent) {\n if (!isResizable(index)) return;\n let delta = 0;\n switch (e.key) {\n case 'ArrowLeft':\n delta = isVertical.value ? 0 : -KEY_STEP;\n break;\n case 'ArrowRight':\n delta = isVertical.value ? 0 : KEY_STEP;\n break;\n case 'ArrowUp':\n delta = isVertical.value ? -KEY_STEP : 0;\n break;\n case 'ArrowDown':\n delta = isVertical.value ? KEY_STEP : 0;\n break;\n case 'Home': {\n // collapse the panel before the dragger to its minimum.\n const avail = availableSize();\n const a = panelConfigs.value[index];\n delta = -(sizesPx.value[index] - parseLength(a?.min, avail, 0));\n break;\n }\n case 'End': {\n const avail = availableSize();\n const b = panelConfigs.value[index + 1];\n delta = sizesPx.value[index + 1] - parseLength(b?.min, avail, 0);\n break;\n }\n case 'Enter':\n case ' ':\n // Toggle: collapse the smaller adjacent panel toward the larger one.\n e.preventDefault();\n toggleCollapseAtDragger(index);\n return;\n default:\n return;\n }\n if (delta === 0) return;\n e.preventDefault();\n emit('resizeStart', [...sizesPx.value]);\n const next = applyDelta(sizesPx.value, index, delta);\n sizesPx.value = next;\n emit('resize', [...next]);\n emit('resizeEnd', [...next]);\n}\n//#endregion\n\n//#region Collapse / Expand\nfunction toggleCollapseAtDragger(index: number) {\n // Default keyboard behaviour: collapse the start side if it has more room than 0.\n const a = panelConfigs.value[index];\n const b = panelConfigs.value[index + 1];\n if (a?.collapsible) collapsePanel(index, 'start');\n else if (b?.collapsible) collapsePanel(index + 1, 'end');\n}\n\n/**\n * Collapse a panel toward the previous (`'start'`) or next (`'end'`) panel.\n * If already collapsed, restore the saved size.\n */\nfunction collapsePanel(panelIndex: number, direction: 'start' | 'end') {\n const panel = panelConfigs.value[panelIndex];\n if (!panel) return;\n const avail = availableSize();\n const sizes = [...sizesPx.value];\n\n // The neighbor that absorbs / returns the collapsed panel's space.\n // - direction='start': panel collapses toward start ⇒ space goes to panelIndex + 1\n // - direction='end': panel collapses toward end ⇒ space goes to panelIndex - 1\n const neighbor = direction === 'start' ? panelIndex + 1 : panelIndex - 1;\n\n if (collapsedFlags.value[panelIndex]) {\n // Restore: take saved size back from the same neighbor that absorbed it.\n const saved = savedSizes.value[panelIndex] ?? avail / panelConfigs.value.length;\n if (neighbor >= 0 && neighbor < sizes.length) {\n const give = Math.min(saved, sizes[neighbor]);\n sizes[panelIndex] = give;\n sizes[neighbor] -= give;\n } else {\n sizes[panelIndex] = saved;\n }\n collapsedFlags.value = collapsedFlags.value.map((v, i) => (i === panelIndex ? false : v));\n savedSizes.value = savedSizes.value.map((v, i) => (i === panelIndex ? null : v));\n collapsedDirection.value = collapsedDirection.value.map((v, i) =>\n i === panelIndex ? null : v,\n );\n } else {\n // Collapse: dump current size into the neighbor.\n savedSizes.value = savedSizes.value.map((v, i) =>\n i === panelIndex ? sizes[panelIndex] : v,\n );\n if (neighbor >= 0 && neighbor < sizes.length) {\n sizes[neighbor] += sizes[panelIndex];\n }\n sizes[panelIndex] = 0;\n collapsedFlags.value = collapsedFlags.value.map((v, i) => (i === panelIndex ? true : v));\n collapsedDirection.value = collapsedDirection.value.map((v, i) =>\n i === panelIndex ? direction : v,\n );\n }\n sizesPx.value = sizes;\n emit('resize', [...sizes]);\n emit('resizeEnd', [...sizes]);\n emit('collapse', [...collapsedFlags.value], [...sizes]);\n}\n\n/**\n * Helpers for the two collapse buttons rendered on each dragger between\n * panel `i` (prev) and panel `i + 1` (next). Mirrors AntD's logic:\n * the START (`<`) button can either collapse prev or expand a previously-\n * collapsed next; the END (`>`) button is symmetric.\n */\nfunction startBtnPanelCfg(i: number) {\n return panelConfigs.value[i]?.collapsible\n ? (panelConfigs.value[i].collapsible as BSplitterPanelCollapsible)\n : null;\n}\nfunction endBtnPanelCfg(i: number) {\n return panelConfigs.value[i + 1]?.collapsible\n ? (panelConfigs.value[i + 1].collapsible as BSplitterPanelCollapsible)\n : null;\n}\nfunction canShowStartBtn(i: number): boolean {\n const sizes = sizesPx.value;\n const prevSize = sizes[i] ?? 0;\n const nextSize = sizes[i + 1] ?? 0;\n // Mode A — collapse prev (panel i).\n const prevCfg = startBtnPanelCfg(i);\n const collapsePrev = !!prevCfg?.start && prevSize > 0 && nextSize > 0;\n // Mode B — restore next (panel i + 1) if it was collapsed via THIS dragger.\n const restoreNext =\n !!collapsedFlags.value[i + 1] &&\n collapsedDirection.value[i + 1] === 'end' &&\n prevSize > 0;\n return collapsePrev || restoreNext;\n}\nfunction canShowEndBtn(i: number): boolean {\n const sizes = sizesPx.value;\n const prevSize = sizes[i] ?? 0;\n const nextSize = sizes[i + 1] ?? 0;\n // Mode A — collapse next (panel i + 1).\n const nextCfg = endBtnPanelCfg(i);\n const collapseNext = !!nextCfg?.end && nextSize > 0 && prevSize > 0;\n // Mode B — restore prev (panel i) if it was collapsed via THIS dragger.\n const restorePrev =\n !!collapsedFlags.value[i] &&\n collapsedDirection.value[i] === 'start' &&\n nextSize > 0;\n return collapseNext || restorePrev;\n}\nfunction onClickStartBtn(i: number) {\n if (\n collapsedFlags.value[i + 1] &&\n collapsedDirection.value[i + 1] === 'end'\n ) {\n // Restore next, taking space back from prev.\n collapsePanel(i + 1, 'end');\n } else {\n collapsePanel(i, 'start');\n }\n}\nfunction onClickEndBtn(i: number) {\n if (collapsedFlags.value[i] && collapsedDirection.value[i] === 'start') {\n // Restore prev, taking space back from next.\n collapsePanel(i, 'start');\n } else {\n collapsePanel(i + 1, 'end');\n }\n}\nfunction startBtnAriaLabel(i: number): string {\n if (\n collapsedFlags.value[i + 1] &&\n collapsedDirection.value[i + 1] === 'end'\n ) {\n return `Expand panel ${i + 2}`;\n }\n return `Collapse panel ${i + 1}`;\n}\nfunction endBtnAriaLabel(i: number): string {\n if (collapsedFlags.value[i] && collapsedDirection.value[i] === 'start') {\n return `Expand panel ${i + 1}`;\n }\n return `Collapse panel ${i + 2}`;\n}\n//#endregion\n\n//#region Style helpers\nconst motion = computed(() => __props.collapsible?.motion !== false);\n\nfunction panelStyle(i: number): CSSProperties {\n const sz = sizesPx.value[i] ?? 0;\n const sizeStr = `${sz}px`;\n return isVertical.value\n ? { height: sizeStr, flex: `0 0 ${sizeStr}` }\n : { width: sizeStr, flex: `0 0 ${sizeStr}` };\n}\n\nfunction draggerAriaValueNow(i: number): number {\n const avail = availableSize();\n if (avail === 0) return 0;\n const accumulated = sizesPx.value.slice(0, i + 1).reduce((a, b) => a + b, 0);\n return Math.round((accumulated / avail) * 100);\n}\n\nconst lazyIndicatorStyle = computed<CSSProperties | undefined>(() => {\n if (!__props.lazy || !dragState.value || lazyPreviewDelta.value === null) return undefined;\n const idx = dragState.value.draggerIndex;\n const before = dragState.value.startSizes.slice(0, idx + 1).reduce((a, b) => a + b, 0);\n const offset = before + idx * DRAGGER_PX + lazyPreviewDelta.value;\n return isVertical.value ? { top: `${offset}px` } : { left: `${offset}px` };\n});\n//#endregion\n\n//#region Expose\nfunction getSizes(): number[] {\n return [...sizesPx.value];\n}\nfunction setSizes(next: number[]) {\n if (next.length !== sizesPx.value.length) return;\n sizesPx.value = clampAndNormalize(next, availableSize());\n emit('resize', [...sizesPx.value]);\n}\n__expose({ getSizes, setSizes });\n//#endregion\n\n//#region Render-time per-panel render helper\n/**\n * Returns the panel's slot content as VNodes, honoring `destroyOnHidden`.\n */\nfunction panelContent(panel: BSplitterPanelConfig, i: number): VNode[] | null {\n const collapsed = (sizesPx.value[i] ?? 0) <= 0;\n if (panel.destroyOnHidden && collapsed) return null;\n return panel.content ?? null;\n}\n//#endregion\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n ref_key: \"rootRef\",\n ref: rootRef,\n class: _normalizeClass([\"b-splitter\", {\n 'b-splitter--horizontal': !isVertical.value,\n 'b-splitter--vertical': isVertical.value,\n 'b-splitter--lazy': __props.lazy,\n 'b-splitter--motion': motion.value,\n 'b-splitter--dragging': dragState.value !== null,\n }]),\n \"data-orientation\": resolvedOrientation.value\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(panelConfigs.value, (panel, i) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: `panel-${_unref(componentUID)}-${i}`\n }, [\n _createElementVNode(\"div\", {\n id: `b-splitter-${_unref(componentUID)}-panel-${i}`,\n class: _normalizeClass([\"b-splitter__panel\", { 'b-splitter__panel--collapsed': (sizesPx.value[i] ?? 0) <= 0 }]),\n style: _normalizeStyle(panelStyle(i)),\n role: \"group\"\n }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(VNodeRenderer)), {\n nodes: panelContent(panel, i)\n }, null, 8, [\"nodes\"]))\n ], 14, _hoisted_2),\n (i < panelConfigs.value.length - 1)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"b-splitter__divider\", { 'b-splitter__divider--disabled': !isResizable(i) }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"b-splitter__dragger\", {\n 'b-splitter__dragger--disabled': !isResizable(i),\n 'b-splitter__dragger--active': dragState.value && dragState.value.draggerIndex === i,\n }]),\n role: \"separator\",\n tabindex: isResizable(i) ? 0 : -1,\n \"aria-orientation\": isVertical.value ? 'horizontal' : 'vertical',\n \"aria-controls\": `b-splitter-${_unref(componentUID)}-panel-${i} b-splitter-${_unref(componentUID)}-panel-${i + 1}`,\n \"aria-valuenow\": draggerAriaValueNow(i),\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n \"aria-disabled\": !isResizable(i) || undefined,\n \"aria-label\": `Resize panel ${i + 1}`,\n onMousedown: ($event: any) => (onDraggerPointerDown(i, $event)),\n onTouchstart: ($event: any) => (onDraggerPointerDown(i, $event)),\n onKeydown: ($event: any) => (onDraggerKeyDown(i, $event)),\n onDblclick: ($event: any) => (onDraggerDoubleClick(i))\n }, [\n _createElementVNode(\"span\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"draggerIcon\")\n ])\n ], 42, _hoisted_3),\n (canShowStartBtn(i))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n class: \"b-splitter__collapse-btn b-splitter__collapse-btn--start\",\n \"aria-label\": startBtnAriaLabel(i),\n \"aria-expanded\": \n collapsedFlags.value[i + 1] && collapsedDirection.value[i + 1] === 'end'\n ? false\n : true\n ,\n onMousedown: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\"])),\n onTouchstart: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"])),\n onClick: _withModifiers(($event: any) => (onClickStartBtn(i)), [\"stop\"])\n }, [\n _renderSlot(_ctx.$slots, \"collapseIconStart\", {}, () => [\n _cache[4] || (_cache[4] = _createElementVNode(\"svg\", {\n \"aria-hidden\": \"true\",\n class: \"b-splitter__chevron b-splitter__chevron--start\",\n viewBox: \"0 0 8 8\",\n width: \"8\",\n height: \"8\"\n }, [\n _createElementVNode(\"polyline\", {\n points: \"5,1 2,4 5,7\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.5\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n })\n ], -1))\n ])\n ], 40, _hoisted_5))\n : _createCommentVNode(\"\", true),\n (canShowEndBtn(i))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n type: \"button\",\n class: \"b-splitter__collapse-btn b-splitter__collapse-btn--end\",\n \"aria-label\": endBtnAriaLabel(i),\n \"aria-expanded\": \n collapsedFlags.value[i] && collapsedDirection.value[i] === 'start'\n ? false\n : true\n ,\n onMousedown: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"stop\"])),\n onTouchstart: _cache[3] || (_cache[3] = _withModifiers(() => {}, [\"stop\"])),\n onClick: _withModifiers(($event: any) => (onClickEndBtn(i)), [\"stop\"])\n }, [\n _renderSlot(_ctx.$slots, \"collapseIconEnd\", {}, () => [\n _cache[5] || (_cache[5] = _createElementVNode(\"svg\", {\n \"aria-hidden\": \"true\",\n class: \"b-splitter__chevron b-splitter__chevron--end\",\n viewBox: \"0 0 8 8\",\n width: \"8\",\n height: \"8\"\n }, [\n _createElementVNode(\"polyline\", {\n points: \"3,1 6,4 3,7\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.5\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n })\n ], -1))\n ])\n ], 40, _hoisted_6))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128)),\n (__props.lazy && dragState.value && lazyPreviewDelta.value !== null)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"b-splitter__lazy-indicator\",\n style: _normalizeStyle(lazyIndicatorStyle.value),\n \"aria-hidden\": \"true\"\n }, null, 4))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_1))\n}\n}\n\n})"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import e from "./design-system204.js";
2
+ /* empty css */
3
+ //#region src/components/BSplitter/BSplitter.vue
4
+ var t = e;
5
+ //#endregion
6
+ export { t as default };
7
+
8
+ //# sourceMappingURL=design-system206.js.map