@boobooking/dashboard-ui-components 0.19.1 → 0.21.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.
package/dist/index.js CHANGED
@@ -117,15 +117,15 @@ var ae = {
117
117
  };
118
118
  //#endregion
119
119
  //#region src/windows.js
120
- function T(e, t) {
120
+ function oe(e, t) {
121
121
  if (e == null || e === "") return null;
122
122
  let n = new URL(String(e), t);
123
123
  return n.pathname + n.search;
124
124
  }
125
- function oe(e) {
125
+ function se(e) {
126
126
  return e === null ? null : e.split("?")[0];
127
127
  }
128
- function se() {
128
+ function ce() {
129
129
  return {
130
130
  windows: [],
131
131
  cards: /* @__PURE__ */ new Map(),
@@ -139,36 +139,36 @@ function se() {
139
139
  nextId: 1
140
140
  };
141
141
  }
142
- function E(e, t) {
142
+ function T(e, t) {
143
143
  return e.windows.includes(t);
144
144
  }
145
- function ce(e) {
145
+ function le(e) {
146
146
  return e.returnAddress ?? e.fallbackAddress;
147
147
  }
148
- function le(e) {
148
+ function ue(e) {
149
149
  let t = null;
150
150
  for (let n of e.cards.values()) t = n.window;
151
151
  return t;
152
152
  }
153
- function D(e, t) {
153
+ function de(e, t) {
154
154
  let n = t;
155
- for (; n !== null && !E(e, n);) n = n.parent;
155
+ for (; n !== null && !T(e, n);) n = n.parent;
156
156
  return n;
157
157
  }
158
- function ue(e, t) {
158
+ function fe(e, t) {
159
159
  return e.transition = {
160
160
  number: e.transition.number + 1,
161
161
  fromAddress: e.shown,
162
- fromWindow: le(e),
162
+ fromWindow: ue(e),
163
163
  assigned: /* @__PURE__ */ new Map()
164
164
  }, e.shown = t, e.transition.number;
165
165
  }
166
- function de(e, t, n) {
166
+ function pe(e, t, n) {
167
167
  let r = e.transition, i = r.assigned.get(t);
168
- if (i !== void 0 && E(e, i)) return i;
168
+ if (i !== void 0 && T(e, i)) return i;
169
169
  let a = r.fromWindow, o = r.fromAddress;
170
- a !== null && !E(e, a) && (a = D(e, a), o = null), a !== null && ce(a) === e.shown && (e.windows.splice(e.windows.indexOf(a)), a = a.parent === null ? null : D(e, a.parent), o = null);
171
- for (let n = a; n !== null; n = n.parent) if (n.key === t && E(e, n)) return e.windows.splice(e.windows.indexOf(n) + 1), n;
170
+ a !== null && !T(e, a) && (a = de(e, a), o = null), a !== null && le(a) === e.shown && (e.windows.splice(e.windows.indexOf(a)), a = a.parent === null ? null : de(e, a.parent), o = null);
171
+ for (let n = a; n !== null; n = n.parent) if (n.key === t && T(e, n)) return e.windows.splice(e.windows.indexOf(n) + 1), n;
172
172
  a === null ? e.windows = [] : e.windows.splice(e.windows.indexOf(a) + 1);
173
173
  let s = {
174
174
  id: e.nextId,
@@ -179,18 +179,18 @@ function de(e, t, n) {
179
179
  };
180
180
  return e.nextId += 1, e.windows.push(s), s;
181
181
  }
182
- function O(e, t, n, r) {
183
- let i = de(e, n, r);
182
+ function E(e, t, n, r) {
183
+ let i = pe(e, n, r);
184
184
  return i.fallbackAddress = r, e.transition.assigned.set(n, i), e.cards.delete(t), e.cards.set(t, {
185
185
  key: n,
186
186
  window: i,
187
187
  processed: e.transition.number
188
188
  }), i;
189
189
  }
190
- function fe(e, t, n, r) {
190
+ function me(e, t, n, r) {
191
191
  let i = e.cards.get(t);
192
192
  return i === void 0 ? {
193
- window: O(e, t, n, r),
193
+ window: E(e, t, n, r),
194
194
  rejected: !1,
195
195
  key: n
196
196
  } : i.key === n ? (i.processed = e.transition.number, {
@@ -202,37 +202,37 @@ function fe(e, t, n, r) {
202
202
  rejected: !0,
203
203
  key: i.key
204
204
  } : (e.cards.delete(t), {
205
- window: O(e, t, n, r),
205
+ window: E(e, t, n, r),
206
206
  rejected: !1,
207
207
  key: n
208
208
  });
209
209
  }
210
- function pe(e, t) {
210
+ function he(e, t) {
211
211
  e.cards.delete(t);
212
212
  }
213
- function me(e, t, n) {
213
+ function ge(e, t, n) {
214
214
  let r = e.cards.get(t);
215
215
  r !== void 0 && (r.window.fallbackAddress = n);
216
216
  }
217
217
  //#endregion
218
218
  //#region src/plugin.js
219
- var k = Symbol("dashboardUi"), he = Object.freeze({
219
+ var _e = Symbol("dashboardUi"), ve = Object.freeze({
220
220
  lang: "ru",
221
221
  navigate: null,
222
222
  windows: null
223
- }), A = { uiSettings: {
224
- from: k,
225
- default: () => he
223
+ }), ye = { uiSettings: {
224
+ from: _e,
225
+ default: () => ve
226
226
  } };
227
- function ge(e, t) {
228
- let n = se(), r = g({
227
+ function be(e, t) {
228
+ let n = ce(), r = g({
229
229
  number: 0,
230
230
  address: null
231
231
  }), i = c(!0);
232
232
  return i.run(() => {
233
233
  ne(t, (e) => {
234
- let t = T(e, window.location.origin);
235
- t !== null && t !== r.address && (r.number = ue(n, t), r.address = t);
234
+ let t = oe(e, window.location.origin);
235
+ t !== null && t !== r.address && (r.number = fe(n, t), r.address = t);
236
236
  }, {
237
237
  flush: "sync",
238
238
  immediate: !0
@@ -242,21 +242,21 @@ function ge(e, t) {
242
242
  page: r
243
243
  };
244
244
  }
245
- var _e = { install(e, t) {
245
+ var xe = { install(e, t) {
246
246
  let n = t ?? {}, r = Object.hasOwn(n, "lang") ? n.lang : "ru";
247
247
  if (!w(r)) throw Error(`dashboardUi: неизвестный lang «${r}», допустимы: ${ie.join(", ")}`);
248
248
  let i = Object.hasOwn(n, "navigate"), a = i ? n.navigate : null;
249
249
  if (i && typeof a != "function") throw Error("dashboardUi: navigate должен быть функцией (href) => …");
250
250
  let o = Object.hasOwn(n, "currentUrl"), s = o ? n.currentUrl : null;
251
251
  if (o && typeof s != "function") throw Error("dashboardUi: currentUrl должен быть функцией () => адрес страницы");
252
- let c = s !== null && typeof window < "u" ? ge(e, s) : null;
253
- e.provide(k, Object.freeze({
252
+ let c = s !== null && typeof window < "u" ? be(e, s) : null;
253
+ e.provide(_e, Object.freeze({
254
254
  lang: r,
255
255
  navigate: a,
256
256
  windows: c
257
257
  }));
258
- } }, ve = 4e4;
259
- function ye(e) {
258
+ } }, Se = 4e4;
259
+ function Ce(e) {
260
260
  if (typeof e != "string") return null;
261
261
  let t = /filename\*\s*=\s*UTF-8''([^;]+)/i.exec(e);
262
262
  if (t !== null) try {
@@ -267,7 +267,7 @@ function ye(e) {
267
267
  let r = /filename\s*=\s*([^;"\s]+)/i.exec(e);
268
268
  return r === null ? null : r[1];
269
269
  }
270
- function be(e) {
270
+ function we(e) {
271
271
  try {
272
272
  let t = new URL(e, window.location.href).pathname.split("/").filter((e) => e !== "");
273
273
  return t.length === 0 ? null : decodeURIComponent(t[t.length - 1]);
@@ -275,7 +275,7 @@ function be(e) {
275
275
  return null;
276
276
  }
277
277
  }
278
- async function xe(e) {
278
+ async function Te(e) {
279
279
  let t = await fetch(e, { credentials: "same-origin" });
280
280
  if (t.redirected) throw Object.assign(/* @__PURE__ */ Error(`downloadFile: сервер перенаправил запрос ${e}`), {
281
281
  redirectUrl: t.url,
@@ -285,67 +285,67 @@ async function xe(e) {
285
285
  redirectUrl: null,
286
286
  status: t.status
287
287
  });
288
- let n = ye(t.headers.get("Content-Disposition")) ?? be(e) ?? "download", r = URL.createObjectURL(await t.blob()), i = document.createElement("a");
289
- i.href = r, i.download = n, i.style.display = "none", document.body.appendChild(i), i.click(), i.remove(), setTimeout(() => URL.revokeObjectURL(r), ve);
288
+ let n = Ce(t.headers.get("Content-Disposition")) ?? we(e) ?? "download", r = URL.createObjectURL(await t.blob()), i = document.createElement("a");
289
+ i.href = r, i.download = n, i.style.display = "none", document.body.appendChild(i), i.click(), i.remove(), setTimeout(() => URL.revokeObjectURL(r), Se);
290
290
  }
291
291
  //#endregion
292
292
  //#region src/colors.js
293
- var Se = {
293
+ var D = {
294
294
  gray: {
295
295
  pill: "bb:bg-gray-100 bb:text-gray-800",
296
296
  pillHover: "bb:hover:text-gray-600",
297
297
  button: "bb:bg-gray-100 bb:border-gray-300 bb:text-gray-800 bb:hover:bg-gray-200",
298
- menuItem: "bb:text-gray-800 bb:focus:bg-gray-100",
298
+ menuItem: "bb:bg-gray-100 bb:text-gray-800 bb:hover:bg-gray-200 bb:focus:bg-gray-200",
299
299
  mark: "bb:text-gray-500"
300
300
  },
301
301
  green: {
302
302
  pill: "bb:bg-green-100 bb:text-green-800",
303
303
  pillHover: "bb:hover:text-green-600",
304
304
  button: "bb:bg-green-100 bb:border-green-300 bb:text-green-800 bb:hover:bg-green-200",
305
- menuItem: "bb:text-green-800 bb:focus:bg-green-100",
305
+ menuItem: "bb:bg-green-100 bb:text-green-800 bb:hover:bg-green-200 bb:focus:bg-green-200",
306
306
  mark: "bb:text-green-500"
307
307
  },
308
308
  yellow: {
309
309
  pill: "bb:bg-yellow-100 bb:text-yellow-800",
310
310
  pillHover: "bb:hover:text-yellow-600",
311
311
  button: "bb:bg-yellow-100 bb:border-yellow-300 bb:text-yellow-800 bb:hover:bg-yellow-200",
312
- menuItem: "bb:text-yellow-800 bb:focus:bg-yellow-100",
312
+ menuItem: "bb:bg-yellow-100 bb:text-yellow-800 bb:hover:bg-yellow-200 bb:focus:bg-yellow-200",
313
313
  mark: "bb:text-yellow-500"
314
314
  },
315
315
  red: {
316
316
  pill: "bb:bg-red-100 bb:text-red-800",
317
317
  pillHover: "bb:hover:text-red-600",
318
318
  button: "bb:bg-red-100 bb:border-red-300 bb:text-red-800 bb:hover:bg-red-200",
319
- menuItem: "bb:text-red-800 bb:focus:bg-red-100",
319
+ menuItem: "bb:bg-red-100 bb:text-red-800 bb:hover:bg-red-200 bb:focus:bg-red-200",
320
320
  mark: "bb:text-red-500"
321
321
  },
322
322
  indigo: {
323
323
  pill: "bb:bg-indigo-100 bb:text-indigo-800",
324
324
  pillHover: "bb:hover:text-indigo-600",
325
325
  button: "bb:bg-indigo-100 bb:border-indigo-300 bb:text-indigo-800 bb:hover:bg-indigo-200",
326
- menuItem: "bb:text-indigo-800 bb:focus:bg-indigo-100",
326
+ menuItem: "bb:bg-indigo-100 bb:text-indigo-800 bb:hover:bg-indigo-200 bb:focus:bg-indigo-200",
327
327
  mark: "bb:text-indigo-500"
328
328
  },
329
329
  purple: {
330
330
  pill: "bb:bg-purple-100 bb:text-purple-800",
331
331
  pillHover: "bb:hover:text-purple-600",
332
332
  button: "bb:bg-purple-100 bb:border-purple-300 bb:text-purple-800 bb:hover:bg-purple-200",
333
- menuItem: "bb:text-purple-800 bb:focus:bg-purple-100",
333
+ menuItem: "bb:bg-purple-100 bb:text-purple-800 bb:hover:bg-purple-200 bb:focus:bg-purple-200",
334
334
  mark: "bb:text-purple-500"
335
335
  }
336
- }, Ce = Object.keys(Se);
337
- function j(e) {
338
- return Ce.includes(e);
336
+ }, Ee = Object.keys(D);
337
+ function O(e) {
338
+ return Ee.includes(e);
339
339
  }
340
- function we(e, t) {
341
- return j(e) ? Se[e][t] ?? "" : "";
340
+ function De(e, t) {
341
+ return O(e) ? D[e][t] ?? "" : "";
342
342
  }
343
- var M = { methods: { colorClass: we } }, N = (e, t) => {
343
+ var k = { methods: { colorClass: De } }, A = (e, t) => {
344
344
  let n = e.__vccOpts || e;
345
345
  for (let [e, r] of t) n[e] = r;
346
346
  return n;
347
- }, Te = {
348
- mixins: [M],
347
+ }, Oe = {
348
+ mixins: [k],
349
349
  props: {
350
350
  withPulse: {
351
351
  type: Boolean,
@@ -354,11 +354,11 @@ var M = { methods: { colorClass: we } }, N = (e, t) => {
354
354
  color: {
355
355
  type: String,
356
356
  required: !0,
357
- validator: j
357
+ validator: O
358
358
  }
359
359
  }
360
360
  };
361
- function Ee(e, t, n, r, o, s) {
361
+ function ke(e, t, n, r, o, s) {
362
362
  return f(), i("div", { class: u(["bb-dashboard-ui bb:flex bb:h-full bb:items-center bb:leading-none bb:text-4xl", [e.colorClass(n.color, "mark"), { "bb:animate-pulse": n.withPulse }]]) }, [...t[0] ||= [a("svg", {
363
363
  class: "bb:fill-current bb:w-2 bb:h-2",
364
364
  viewBox: "0 0 120 120"
@@ -368,8 +368,8 @@ function Ee(e, t, n, r, o, s) {
368
368
  r: "45"
369
369
  })], -1)]], 2);
370
370
  }
371
- var P = /*#__PURE__*/ N(Te, [["render", Ee]]), De = {
372
- components: { Dot: P },
371
+ var j = /*#__PURE__*/ A(Oe, [["render", ke]]), Ae = {
372
+ components: { Dot: j },
373
373
  props: {
374
374
  text: {
375
375
  type: String,
@@ -384,14 +384,14 @@ var P = /*#__PURE__*/ N(Te, [["render", Ee]]), De = {
384
384
  default: !1
385
385
  }
386
386
  }
387
- }, Oe = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, ke = ["textContent"];
388
- function Ae(e, t, n, r, o, c) {
387
+ }, je = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, Me = ["textContent"];
388
+ function Ne(e, t, n, r, o, c) {
389
389
  let l = h("dot");
390
- return f(), i("div", Oe, [
390
+ return f(), i("div", je, [
391
391
  a("div", {
392
392
  class: "bb:flex bb:flex-1 bb:h-full bb:items-center bb:text-xs bb:text-gray-500 bb:whitespace-nowrap bb:truncate bb:leading-tight bb:select-none",
393
393
  textContent: _(n.text)
394
- }, null, 8, ke),
394
+ }, null, 8, Me),
395
395
  x(s(l, {
396
396
  color: "red",
397
397
  "with-pulse": !0,
@@ -403,8 +403,8 @@ function Ae(e, t, n, r, o, c) {
403
403
  }, null, 512), [[y, n.isRequired]])
404
404
  ]);
405
405
  }
406
- var F = /*#__PURE__*/ N(De, [["render", Ae]]), I = {
407
- inject: A,
406
+ var M = /*#__PURE__*/ A(Ae, [["render", Ne]]), N = {
407
+ inject: ye,
408
408
  props: { lang: {
409
409
  type: String,
410
410
  default: null,
@@ -418,11 +418,11 @@ var F = /*#__PURE__*/ N(De, [["render", Ae]]), I = {
418
418
  return ae[this.resolvedLang];
419
419
  }
420
420
  }
421
- }, je = [
421
+ }, Pe = [
422
422
  { transform: "scale(1)" },
423
423
  { transform: "scale(0.8)" },
424
424
  { transform: "scale(1)" }
425
- ], Me = 150, Ne = {
425
+ ], Fe = 150, Ie = {
426
426
  created() {
427
427
  this.isPressing = !1, this.isUnmounted = !1;
428
428
  },
@@ -430,39 +430,39 @@ var F = /*#__PURE__*/ N(De, [["render", Ae]]), I = {
430
430
  this.isUnmounted = !0;
431
431
  },
432
432
  methods: { press() {
433
- this.isPressing || (this.isPressing = !0, Pe(this.$el).then(() => {
433
+ this.isPressing || (this.isPressing = !0, Le(this.$el).then(() => {
434
434
  this.isPressing = !1, this.isUnmounted || this.$emit("clicked");
435
435
  }));
436
436
  } }
437
437
  };
438
- function Pe(e) {
439
- if (typeof e.animate != "function" || Fe()) return Promise.resolve();
438
+ function Le(e) {
439
+ if (typeof e.animate != "function" || Re()) return Promise.resolve();
440
440
  let t = () => {};
441
- return e.animate(je, {
442
- duration: Me,
441
+ return e.animate(Pe, {
442
+ duration: Fe,
443
443
  easing: "ease-out"
444
444
  }).finished.then(t, t);
445
445
  }
446
- function Fe() {
446
+ function Re() {
447
447
  return typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
448
448
  }
449
449
  //#endregion
450
450
  //#region src/components/CrossButton.vue
451
- var Ie = {
452
- mixins: [I, Ne],
451
+ var ze = {
452
+ mixins: [N, Ie],
453
453
  props: { size: {
454
454
  type: String,
455
455
  required: !0,
456
456
  validator: (e) => ["small", "large"].includes(e)
457
457
  } },
458
458
  emits: ["clicked"]
459
- }, Le = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" }, Re = { class: "bb:flex bb:rounded-md bb:group-focus-visible:focus-ring bb:pointer-events-none bb:cursor-default" };
460
- function ze(e, t, n, r, s, c) {
459
+ }, Be = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" }, Ve = { class: "bb:flex bb:rounded-md bb:group-focus-visible:focus-ring bb:pointer-events-none bb:cursor-default" };
460
+ function He(e, t, n, r, s, c) {
461
461
  return f(), i("button", {
462
462
  type: "button",
463
463
  class: "bb-dashboard-ui bb:group bb:flex bb:items-center bb:justify-center bb:bg-transparent bb:cursor-pointer bb:text-gray-400 bb:focus:outline-hidden bb:hover:text-gray-500",
464
464
  onClick: t[0] ||= C((...t) => e.press && e.press(...t), ["prevent"])
465
- }, [a("span", Le, [m(e.$slots, "default", {}, () => [o(_(e.texts.clear), 1)])]), a("span", Re, [(f(), i("svg", {
465
+ }, [a("span", Be, [m(e.$slots, "default", {}, () => [o(_(e.texts.clear), 1)])]), a("span", Ve, [(f(), i("svg", {
466
466
  class: u(["bb:stroke-current bb:pointer-events-none bb:cursor-default", {
467
467
  "bb:w-6 bb:h-6": n.size === "small",
468
468
  "bb:w-8 bb:h-8": n.size === "large"
@@ -477,24 +477,24 @@ function ze(e, t, n, r, s, c) {
477
477
  d: "M6 18L18 6M6 6l12 12"
478
478
  }, null, -1)]], 2))])]);
479
479
  }
480
- var L = /*#__PURE__*/ N(Ie, [["render", ze]]), Be = 10;
481
- function Ve(e) {
480
+ var P = /*#__PURE__*/ A(ze, [["render", He]]), Ue = 10;
481
+ function We(e) {
482
482
  let t = e.replace(/\D/g, "");
483
- return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, Be);
483
+ return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, Ue);
484
484
  }
485
- function R(e) {
485
+ function F(e) {
486
486
  return e === "" ? "" : `7${e}`;
487
487
  }
488
- function z(e) {
488
+ function I(e) {
489
489
  let t = e ?? "", n = t.startsWith("+") ? t.slice(1) : t;
490
490
  return n.startsWith("7") ? n.slice(1) : n;
491
491
  }
492
492
  //#endregion
493
493
  //#region src/components/RussianMobileFilter.vue
494
- var He = 400, Ue = 3, We = {
494
+ var Ge = 400, Ke = 3, qe = {
495
495
  components: {
496
- ElementHeader: F,
497
- CrossButton: L
496
+ ElementHeader: M,
497
+ CrossButton: P
498
498
  },
499
499
  emits: ["update:modelValue", "changed"],
500
500
  props: {
@@ -516,10 +516,10 @@ var He = 400, Ue = 3, We = {
516
516
  }
517
517
  },
518
518
  data() {
519
- return { digits: z(this.modelValue) };
519
+ return { digits: I(this.modelValue) };
520
520
  },
521
521
  created() {
522
- this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = z(this.modelValue), this.isUnmounted = !1;
522
+ this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = I(this.modelValue), this.isUnmounted = !1;
523
523
  },
524
524
  mounted() {
525
525
  this.mask = re(this.$refs.input, {
@@ -527,21 +527,21 @@ var He = 400, Ue = 3, We = {
527
527
  lazy: !0,
528
528
  prepare: (e, t) => t.unmaskedValue === "" && (e === "7" || e === "8") ? "" : e
529
529
  }), this.mask.on("accept", () => {
530
- this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", R(this.digits)), this.scheduleCommit());
530
+ this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", F(this.digits)), this.scheduleCommit());
531
531
  }), this.syncFromModelValue(this.modelValue);
532
532
  },
533
533
  beforeUnmount() {
534
534
  this.isUnmounted = !0, clearTimeout(this.debounceTimer), this.mask?.destroy();
535
535
  },
536
536
  watch: { modelValue(e) {
537
- e !== R(this.digits) && this.syncFromModelValue(e);
537
+ e !== F(this.digits) && this.syncFromModelValue(e);
538
538
  } },
539
539
  methods: {
540
540
  syncFromModelValue(e) {
541
- this.writeToMask(z(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
541
+ this.writeToMask(I(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
542
542
  },
543
543
  applyUserDigits(e) {
544
- this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", R(this.digits));
544
+ this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", F(this.digits));
545
545
  },
546
546
  writeToMask(e) {
547
547
  if (this.isWritingProgrammatically = !0, e === "") this.mask.value = "";
@@ -564,7 +564,7 @@ var He = 400, Ue = 3, We = {
564
564
  this.isUnmounted || (this.setLazy(!0), this.digits === "" && this.writeToMask(""), this.commit());
565
565
  },
566
566
  onPaste(e) {
567
- this.applyUserDigits(Ve(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
567
+ this.applyUserDigits(We(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
568
568
  },
569
569
  moveFocusFromEraser() {
570
570
  let e = this.$refs.eraser.$el;
@@ -578,16 +578,16 @@ var He = 400, Ue = 3, We = {
578
578
  this.commit();
579
579
  return;
580
580
  }
581
- this.digits.length < Ue || (this.debounceTimer = setTimeout(() => this.commit(), He));
581
+ this.digits.length < Ke || (this.debounceTimer = setTimeout(() => this.commit(), Ge));
582
582
  },
583
583
  commit() {
584
584
  clearTimeout(this.debounceTimer), this.digits !== this.lastCommitted && (this.lastCommitted = this.digits, this.$emit("changed"));
585
585
  }
586
586
  }
587
- }, Ge = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Ke = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, qe = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Je = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
588
- function Ye(e, t, n, r, o, c) {
587
+ }, Je = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Ye = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Xe = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Ze = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
588
+ function Qe(e, t, n, r, o, c) {
589
589
  let l = h("element-header"), u = h("cross-button");
590
- return f(), i("div", Ge, [a("div", Ke, [s(l, {
590
+ return f(), i("div", Je, [a("div", Ye, [s(l, {
591
591
  text: n.header,
592
592
  "is-required": n.isRequired,
593
593
  "is-loading": n.isLoading
@@ -595,7 +595,7 @@ function Ye(e, t, n, r, o, c) {
595
595
  "text",
596
596
  "is-required",
597
597
  "is-loading"
598
- ]), a("div", qe, [a("label", Je, [a("input", {
598
+ ]), a("div", Xe, [a("label", Ze, [a("input", {
599
599
  ref: "input",
600
600
  type: "tel",
601
601
  inputmode: "tel",
@@ -613,10 +613,10 @@ function Ye(e, t, n, r, o, c) {
613
613
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
614
614
  }, null, 8, ["onClicked"]), [[y, o.digits.length > 0]])])])]);
615
615
  }
616
- var Xe = /*#__PURE__*/ N(We, [["render", Ye]]), Ze = {
616
+ var $e = /*#__PURE__*/ A(qe, [["render", Qe]]), et = {
617
617
  components: {
618
- ElementHeader: F,
619
- CrossButton: L
618
+ ElementHeader: M,
619
+ CrossButton: P
620
620
  },
621
621
  emits: ["update:modelValue", "changed"],
622
622
  props: {
@@ -658,10 +658,10 @@ var Xe = /*#__PURE__*/ N(We, [["render", Ye]]), Ze = {
658
658
  this.$emit("update:modelValue", this.search), this.$emit("changed");
659
659
  }
660
660
  }
661
- }, Qe = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, $e = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, et = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, tt = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
662
- function nt(e, t, n, r, o, c) {
661
+ }, tt = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, nt = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, rt = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, it = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
662
+ function at(e, t, n, r, o, c) {
663
663
  let l = h("element-header"), u = h("cross-button");
664
- return f(), i("div", Qe, [a("div", $e, [s(l, {
664
+ return f(), i("div", tt, [a("div", nt, [s(l, {
665
665
  text: n.header,
666
666
  "is-required": n.isRequired,
667
667
  "is-loading": n.isLoading
@@ -669,7 +669,7 @@ function nt(e, t, n, r, o, c) {
669
669
  "text",
670
670
  "is-required",
671
671
  "is-loading"
672
- ]), a("div", et, [a("label", tt, [x(a("input", {
672
+ ]), a("div", rt, [a("label", it, [x(a("input", {
673
673
  ref: "input",
674
674
  class: "bb:flex bb:w-full bb:h-full bb:px-3 bb:py-2 bb:cursor-pointer bb:truncate bb:focus:focus-ring bb:border-none",
675
675
  "onUpdate:modelValue": t[0] ||= (e) => o.search = e,
@@ -686,37 +686,37 @@ function nt(e, t, n, r, o, c) {
686
686
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
687
687
  }, null, 8, ["onClicked"]), [[y, c.inputNeedsEraser]])])])]);
688
688
  }
689
- var rt = /*#__PURE__*/ N(Ze, [["render", nt]]), B = 4, V = 8;
690
- function H(e) {
689
+ var ot = /*#__PURE__*/ A(et, [["render", at]]), L = 4, R = 8;
690
+ function st(e) {
691
691
  return typeof e?.showPopover == "function";
692
692
  }
693
- function U(e) {
694
- return H(e) && e.matches(":popover-open");
693
+ function z(e) {
694
+ return st(e) && e.matches(":popover-open");
695
695
  }
696
- function W(e, t, { maxWidth: n = null, align: r = "end", fitsBelow: i = !0, fitsRight: a = !0 } = {}) {
697
- let o = e.getBoundingClientRect(), s = document.documentElement.clientWidth, c = document.documentElement.clientHeight, l = Math.max(V, o.left), u = Math.max(V, s - o.right), d = Math.max(0, s - l - V), f = Math.max(0, s - u - V), p = r === "start" && (a || d >= f), m = Math.max(0, c - o.bottom - B - V), h = Math.max(0, o.top - B - V), g = i || m >= h, _ = "";
696
+ function ct(e, t, { maxWidth: n = null, align: r = "end", fitsBelow: i = !0, fitsRight: a = !0 } = {}) {
697
+ let o = e.getBoundingClientRect(), s = document.documentElement.clientWidth, c = document.documentElement.clientHeight, l = Math.max(R, o.left), u = Math.max(R, s - o.right), d = Math.max(0, s - l - R), f = Math.max(0, s - u - R), p = r === "start" && (a || d >= f), m = Math.max(0, c - o.bottom - L - R), h = Math.max(0, o.top - L - R), g = i || m >= h, _ = "";
698
698
  if (r === "start") {
699
699
  let e = p ? d : f;
700
700
  _ = `${n === null ? e : Math.min(n, e)}px`;
701
701
  } else n !== null && (_ = `${Math.min(n, f)}px`);
702
702
  Object.assign(t.style, {
703
- top: g ? `${o.bottom + B}px` : "auto",
704
- bottom: g ? "auto" : `${c - o.top + B}px`,
703
+ top: g ? `${o.bottom + L}px` : "auto",
704
+ bottom: g ? "auto" : `${c - o.top + L}px`,
705
705
  right: p ? "auto" : `${u}px`,
706
706
  left: p ? `${l}px` : "auto",
707
707
  maxHeight: `${g ? m : h}px`,
708
708
  maxWidth: _
709
709
  });
710
710
  }
711
- function it(e, t, n = {}) {
711
+ function lt(e, t, n = {}) {
712
712
  let r = t.scrollHeight <= t.clientHeight + 1, i = t.scrollWidth <= t.clientWidth + 1;
713
- r && i || W(e, t, {
713
+ r && i || ct(e, t, {
714
714
  ...n,
715
715
  fitsBelow: r,
716
716
  fitsRight: i
717
717
  });
718
718
  }
719
- function at(e, t) {
719
+ function ut(e, t) {
720
720
  let n = (n) => {
721
721
  e.contains(n.target) || t();
722
722
  };
@@ -729,24 +729,21 @@ function at(e, t) {
729
729
  }
730
730
  //#endregion
731
731
  //#region src/menuFocus.js
732
- var G = "a[href], button";
733
- function ot(e, t = () => null, n = null) {
732
+ var dt = "a[href], button";
733
+ function ft(e, t = () => null, n = null) {
734
734
  let r = (r) => {
735
735
  if (r.key !== "ArrowDown" && r.key !== "ArrowUp") return;
736
- let i = n === null ? [...e.querySelectorAll(G)] : n();
736
+ let i = n === null ? [...e.querySelectorAll(dt)] : n();
737
737
  if (i.length === 0) return;
738
738
  r.preventDefault();
739
739
  let a = r.key === "ArrowDown" ? 1 : -1, o = i.indexOf(document.activeElement);
740
740
  o === -1 && (o = i.indexOf(t())), i[o === -1 ? a === 1 ? 0 : i.length - 1 : (o + a + i.length) % i.length].focus();
741
- }, i = (e) => {
742
- let t = e.target.closest(G);
743
- t !== null && (n === null || n().includes(t)) && t.focus({ preventScroll: !0 });
744
741
  };
745
- return document.addEventListener("keydown", r, !0), e.addEventListener("mousemove", i), () => {
746
- document.removeEventListener("keydown", r, !0), e.removeEventListener("mousemove", i);
742
+ return document.addEventListener("keydown", r, !0), () => {
743
+ document.removeEventListener("keydown", r, !0);
747
744
  };
748
745
  }
749
- function st(e) {
746
+ function pt(e) {
750
747
  let t = (t) => {
751
748
  if (t.key !== "Tab" || t.ctrlKey || t.altKey || t.metaKey) return;
752
749
  let n = e();
@@ -761,7 +758,7 @@ function st(e) {
761
758
  }
762
759
  //#endregion
763
760
  //#region src/components/PopoverPanel.vue
764
- var ct = {
761
+ var mt = {
765
762
  emits: ["update:modelValue", "toggle"],
766
763
  props: {
767
764
  modelValue: {
@@ -862,17 +859,17 @@ var ct = {
862
859
  methods: {
863
860
  applyPanelState() {
864
861
  let e = this.$refs.panel;
865
- H(e) && e.isConnected && (this.panelIsOpen && !U(e) && e.showPopover(), !this.panelIsOpen && U(e) && e.hidePopover());
862
+ st(e) && e.isConnected && (this.panelIsOpen && !z(e) && e.showPopover(), !this.panelIsOpen && z(e) && e.hidePopover());
866
863
  },
867
864
  close() {
868
865
  let e = this.$refs.panel;
869
- U(e) && e.hidePopover();
866
+ z(e) && e.hidePopover();
870
867
  },
871
868
  reportPanelShown(e) {
872
869
  this.panelShown !== e && (this.panelShown = e, this.$emit("toggle", e));
873
870
  },
874
871
  onClick() {
875
- this.closeOnClick && this.close();
872
+ this.closeOnClick && (this.close(), this.restoreFocus(this.$refs.panel));
876
873
  },
877
874
  onBeforeToggle(e) {
878
875
  if (e.newState === "open") {
@@ -880,9 +877,9 @@ var ct = {
880
877
  maxWidth: this.maxWidth,
881
878
  align: this.align
882
879
  };
883
- this.$refs.panel.style.minWidth = "", this.$refs.panel.style.minHeight = "", this.$refs.panel.style.scrollbarGutter = "", W(e, this.$refs.panel, t), requestAnimationFrame(() => {
880
+ this.$refs.panel.style.minWidth = "", this.$refs.panel.style.minHeight = "", this.$refs.panel.style.scrollbarGutter = "", ct(e, this.$refs.panel, t), requestAnimationFrame(() => {
884
881
  let n = this.$refs.panel;
885
- if (U(n) && (it(e, n, t), this.keepSize)) {
882
+ if (z(n) && (lt(e, n, t), this.keepSize)) {
886
883
  n.scrollHeight > n.clientHeight + 1 && (n.style.scrollbarGutter = "stable");
887
884
  let e = n.getBoundingClientRect();
888
885
  n.style.minWidth = `${e.width}px`, n.style.top === "auto" && (n.style.minHeight = `${e.height}px`);
@@ -895,8 +892,8 @@ var ct = {
895
892
  },
896
893
  onToggle() {
897
894
  this.stopListening();
898
- let e = this.$refs.panel, t = U(e);
899
- t && (this.stopClosing = at(e, this.close), this.arrows && (this.stopArrows = ot(e, this.findSelected, this.findStops)), this.findTabStops !== null && (this.stopTab = st(this.findTabStops))), t || this.restoreFocus(e), this.reportPanelShown(t), t !== this.panelIsOpen && (this.panelIsOpen = t, this.$emit("update:modelValue", t));
895
+ let e = this.$refs.panel, t = z(e);
896
+ t && (this.stopClosing = ut(e, this.close), this.arrows && (this.stopArrows = ft(e, this.findSelected, this.findStops)), this.findTabStops !== null && (this.stopTab = pt(this.findTabStops))), t || this.restoreFocus(e), this.reportPanelShown(t), t !== this.panelIsOpen && (this.panelIsOpen = t, this.$emit("update:modelValue", t));
900
897
  },
901
898
  restoreFocus(e) {
902
899
  let t = this.focusWasInside;
@@ -908,10 +905,10 @@ var ct = {
908
905
  this.stopClosing !== null && (this.stopClosing(), this.stopClosing = null), this.stopArrows !== null && (this.stopArrows(), this.stopArrows = null), this.stopTab !== null && (this.stopTab(), this.stopTab = null);
909
906
  }
910
907
  }
911
- }, lt = {
908
+ }, ht = {
912
909
  key: 0,
913
910
  class: "bb:relative"
914
- }, ut = [
911
+ }, gt = [
915
912
  "id",
916
913
  "role",
917
914
  "aria-orientation",
@@ -919,8 +916,8 @@ var ct = {
919
916
  "aria-label",
920
917
  "tabindex"
921
918
  ];
922
- function dt(e, t, n, o, s, c) {
923
- return n.hasContent ? (f(), i("span", lt, [m(e.$slots, "trigger", {
919
+ function _t(e, t, n, o, s, c) {
920
+ return n.hasContent ? (f(), i("span", ht, [m(e.$slots, "trigger", {
924
921
  id: o.buttonId,
925
922
  popovertarget: o.panelId
926
923
  }), a("div", {
@@ -936,15 +933,15 @@ function dt(e, t, n, o, s, c) {
936
933
  onBeforetoggle: t[0] ||= (...e) => c.onBeforeToggle && c.onBeforeToggle(...e),
937
934
  onToggle: t[1] ||= (...e) => c.onToggle && c.onToggle(...e),
938
935
  onClick: t[2] ||= (...e) => c.onClick && c.onClick(...e)
939
- }, [m(e.$slots, "default")], 42, ut)])) : r("", !0);
936
+ }, [m(e.$slots, "default")], 42, gt)])) : r("", !0);
940
937
  }
941
- var K = /*#__PURE__*/ N(ct, [["render", dt]]);
938
+ var B = /*#__PURE__*/ A(mt, [["render", _t]]);
942
939
  //#endregion
943
940
  //#region src/date.js
944
- function q(e) {
941
+ function V(e) {
945
942
  return `${String(e.getDate()).padStart(2, "0")}.${String(e.getMonth() + 1).padStart(2, "0")}.${String(e.getFullYear()).padStart(4, "0")}`;
946
943
  }
947
- function J(e) {
944
+ function H(e) {
948
945
  let t = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(e);
949
946
  if (t === null) return null;
950
947
  let [, n, r, i] = t.map(Number), a = /* @__PURE__ */ new Date(0);
@@ -952,11 +949,11 @@ function J(e) {
952
949
  }
953
950
  //#endregion
954
951
  //#region src/dayFocus.js
955
- var Y = ".pika-button.pika-day", ft = ".pika-button, .pika-prev, .pika-next";
956
- function pt(e, t = () => null) {
952
+ var U = ".pika-button.pika-day", vt = ".pika-button, .pika-prev, .pika-next";
953
+ function yt(e, t = () => null) {
957
954
  let n = (n) => {
958
955
  if (n.detail !== 0) return;
959
- let r = n.target.closest(ft);
956
+ let r = n.target.closest(vt);
960
957
  r !== null && e.contains(r) && setTimeout(() => {
961
958
  let n = document.activeElement === r;
962
959
  if (r.dispatchEvent(new MouseEvent("mousedown", {
@@ -969,46 +966,46 @@ function pt(e, t = () => null) {
969
966
  };
970
967
  return e.addEventListener("click", n), () => e.removeEventListener("click", n);
971
968
  }
972
- var mt = {
969
+ var bt = {
973
970
  ArrowLeft: -1,
974
971
  ArrowRight: 1,
975
972
  ArrowUp: -7,
976
973
  ArrowDown: 7
977
974
  };
978
- function ht(e, t) {
975
+ function xt(e, t) {
979
976
  let n = (n) => {
980
- let r = mt[n.key];
981
- if (r === void 0 || gt(document.activeElement)) return;
977
+ let r = bt[n.key];
978
+ if (r === void 0 || St(document.activeElement)) return;
982
979
  n.preventDefault();
983
- let i = document.activeElement?.closest(Y) ?? null, a = i !== null && e.contains(i) ? vt(_t(i), r) : t.getDate() ?? yt();
984
- X(e, a) === null && t.gotoDate(a), X(e, a)?.focus();
980
+ let i = document.activeElement?.closest(U) ?? null, a = i !== null && e.contains(i) ? wt(Ct(i), r) : t.getDate() ?? Tt();
981
+ W(e, a) === null && t.gotoDate(a), W(e, a)?.focus();
985
982
  };
986
983
  return document.addEventListener("keydown", n, !0), () => document.removeEventListener("keydown", n, !0);
987
984
  }
988
- function gt(e) {
985
+ function St(e) {
989
986
  return e !== null && e.matches("input, select, textarea, [contenteditable]");
990
987
  }
991
- function _t(e) {
988
+ function Ct(e) {
992
989
  return new Date(e.dataset.pikaYear, e.dataset.pikaMonth, e.dataset.pikaDay);
993
990
  }
994
- function vt(e, t) {
991
+ function wt(e, t) {
995
992
  return new Date(e.getFullYear(), e.getMonth(), e.getDate() + t);
996
993
  }
997
- function yt() {
994
+ function Tt() {
998
995
  let e = /* @__PURE__ */ new Date();
999
996
  return new Date(e.getFullYear(), e.getMonth(), e.getDate());
1000
997
  }
1001
- function X(e, t) {
1002
- return e.querySelector(`${Y}[data-pika-year="${t.getFullYear()}"][data-pika-month="${t.getMonth()}"][data-pika-day="${t.getDate()}"]`);
998
+ function W(e, t) {
999
+ return e.querySelector(`${U}[data-pika-year="${t.getFullYear()}"][data-pika-month="${t.getMonth()}"][data-pika-day="${t.getDate()}"]`);
1003
1000
  }
1004
1001
  //#endregion
1005
- //#region src/components/PickDay.vue
1006
- var bt = {
1002
+ //#region src/components/SelectDate.vue
1003
+ var Et = {
1007
1004
  components: {
1008
- PopoverPanel: K,
1009
- CrossButton: L
1005
+ PopoverPanel: B,
1006
+ CrossButton: P
1010
1007
  },
1011
- mixins: [I],
1008
+ mixins: [N],
1012
1009
  emits: ["update:modelValue", "changed"],
1013
1010
  props: {
1014
1011
  modelValue: {
@@ -1022,6 +1019,10 @@ var bt = {
1022
1019
  placeholderText: {
1023
1020
  type: String,
1024
1021
  default: ""
1022
+ },
1023
+ labelledBy: {
1024
+ type: String,
1025
+ default: null
1025
1026
  }
1026
1027
  },
1027
1028
  created() {
@@ -1035,8 +1036,8 @@ var bt = {
1035
1036
  keyboardInput: !1,
1036
1037
  bound: !1,
1037
1038
  firstDay: 1,
1038
- parse: (e) => J(e),
1039
- toString: (e) => q(e),
1039
+ parse: (e) => H(e),
1040
+ toString: (e) => V(e),
1040
1041
  i18n: {
1041
1042
  previousMonth: this.texts.previousMonth,
1042
1043
  nextMonth: this.texts.nextMonth,
@@ -1045,9 +1046,9 @@ var bt = {
1045
1046
  weekdaysShort: this.texts.weekdaysShort
1046
1047
  },
1047
1048
  onSelect: (e) => {
1048
- this.popupIsOpen = !1, this.$emit("update:modelValue", q(e)), this.$emit("changed");
1049
+ this.popupIsOpen = !1, this.$emit("update:modelValue", V(e)), this.$emit("changed");
1049
1050
  }
1050
- }), this.stopPickOnClick = pt(this.$refs.container, () => this.$refs.trigger), this.syncDayFocus());
1051
+ }), this.stopPickOnClick = yt(this.$refs.container, () => this.$refs.trigger), this.syncDayFocus());
1051
1052
  },
1052
1053
  beforeUnmount() {
1053
1054
  this.isUnmounted = !0, this.stopPickOnClick?.(), this.stopDayFocus?.(), this.picker?.destroy();
@@ -1076,11 +1077,11 @@ var bt = {
1076
1077
  ].includes(e.key) && (e.preventDefault(), this.$refs.trigger.focus({ preventScroll: !0 }), this.popupIsOpen = !0);
1077
1078
  },
1078
1079
  syncDayFocus() {
1079
- this.stopDayFocus?.(), this.stopDayFocus = null, this.popupIsOpen && this.picker !== null && (this.stopDayFocus = ht(this.$refs.container, this.picker));
1080
+ this.stopDayFocus?.(), this.stopDayFocus = null, this.popupIsOpen && this.picker !== null && (this.stopDayFocus = xt(this.$refs.container, this.picker));
1080
1081
  },
1081
1082
  syncPicker(e) {
1082
1083
  if (this.picker === null) return;
1083
- let t = J(e);
1084
+ let t = H(e);
1084
1085
  if (t === null) {
1085
1086
  this.picker.clear();
1086
1087
  return;
@@ -1106,17 +1107,22 @@ var bt = {
1106
1107
  return !this.withEraser || this.popupIsOpen ? !1 : this.hasValue;
1107
1108
  }
1108
1109
  }
1109
- }, xt = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, St = { class: "bb:relative bb:flex bb:h-full" }, Ct = ["id", "popovertarget"], wt = ["textContent"], Tt = { class: "bb:flex bb:w-full bb:items-center bb:leading-none bb:min-w-24 bb:pointer-events-none" }, Et = [
1110
+ }, Dt = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, Ot = { class: "bb:relative bb:flex bb:h-full" }, kt = [
1111
+ "id",
1112
+ "popovertarget",
1113
+ "aria-labelledby"
1114
+ ], At = ["textContent"], jt = { class: "bb:flex bb:w-full bb:items-center bb:leading-none bb:min-w-24 bb:pointer-events-none" }, Mt = [
1110
1115
  "disabled",
1111
1116
  "value",
1112
- "placeholder"
1113
- ], Dt = {
1117
+ "placeholder",
1118
+ "aria-labelledby"
1119
+ ], Nt = {
1114
1120
  ref: "container",
1115
1121
  class: "bb:flex"
1116
1122
  };
1117
- function Ot(e, t, o, c, l, u) {
1123
+ function Pt(e, t, o, c, l, u) {
1118
1124
  let d = h("popover-panel"), p = h("cross-button");
1119
- return f(), i("div", xt, [a("div", St, [s(d, {
1125
+ return f(), i("div", Dt, [a("div", Ot, [s(d, {
1120
1126
  class: "bb:flex bb:w-full",
1121
1127
  modelValue: l.popupIsOpen,
1122
1128
  "onUpdate:modelValue": t[1] ||= (e) => l.popupIsOpen = e,
@@ -1129,20 +1135,22 @@ function Ot(e, t, o, c, l, u) {
1129
1135
  type: "button",
1130
1136
  id: e.id,
1131
1137
  popovertarget: e.popovertarget,
1132
- class: "bb:absolute bb:inset-0 bb:cursor-pointer bb:focus-visible:focus-ring"
1138
+ "aria-labelledby": o.labelledBy ? o.labelledBy + " " + e.id : null,
1139
+ class: "bb:absolute bb:inset-0 bb:cursor-pointer bb:focus-visible:focus-ring bb:rounded-[var(--bb-field-radius,0)]"
1133
1140
  }, [a("span", {
1134
1141
  class: "bb:sr-only bb:pointer-events-none bb:cursor-default",
1135
1142
  textContent: _(u.triggerLabel)
1136
- }, null, 8, wt)], 8, Ct), a("label", Tt, [a("input", {
1143
+ }, null, 8, At)], 8, kt), a("label", jt, [a("input", {
1137
1144
  disabled: l.popupIsOpen,
1138
1145
  ref: "field",
1139
1146
  onKeydown: t[0] ||= (...e) => u.openOnKey && u.openOnKey(...e),
1140
1147
  type: "text",
1141
1148
  value: l.dayValue,
1142
1149
  placeholder: o.placeholderText,
1143
- class: "bb:w-full bb:h-full bb:py-2 bb:pr-3 bb:leading-none bb:border bb:border-transparent bb:whitespace-nowrap bb:bg-transparent bb:placeholder:text-sm bb:placeholder-gray-300 bb:cursor-pointer bb:focus:focus-ring"
1144
- }, null, 40, Et)])]),
1145
- default: b(() => [a("div", Dt, null, 512)]),
1150
+ "aria-labelledby": o.labelledBy || null,
1151
+ class: "bb:w-full bb:h-full bb:py-2 bb:pl-3 bb:pr-3 bb:leading-none bb:border bb:border-transparent bb:whitespace-nowrap bb:bg-transparent bb:placeholder:text-sm bb:placeholder-gray-300 bb:cursor-pointer bb:focus:focus-ring bb:rounded-[var(--bb-field-radius,0)]"
1152
+ }, null, 40, Mt)])]),
1153
+ default: b(() => [a("div", Nt, null, 512)]),
1146
1154
  _: 1
1147
1155
  }, 8, ["modelValue"]), u.needsEraser ? (f(), n(p, {
1148
1156
  key: 0,
@@ -1153,25 +1161,14 @@ function Ot(e, t, o, c, l, u) {
1153
1161
  lang: e.resolvedLang
1154
1162
  }, null, 8, ["onClicked", "lang"])) : r("", !0)])]);
1155
1163
  }
1156
- //#endregion
1157
- //#region src/components/SelectDateInterval.vue
1158
- var kt = {
1164
+ var G = /*#__PURE__*/ A(Et, [["render", Pt]]), Ft = {
1159
1165
  components: {
1160
- ElementHeader: F,
1161
- PickDay: /* @__PURE__ */ N(bt, [["render", Ot]])
1166
+ ElementHeader: M,
1167
+ SelectDate: G
1162
1168
  },
1163
- mixins: [I],
1164
- emits: [
1165
- "update:dateFrom",
1166
- "update:dateTo",
1167
- "changed"
1168
- ],
1169
+ emits: ["update:modelValue", "changed"],
1169
1170
  props: {
1170
- dateFrom: {
1171
- type: String,
1172
- default: ""
1173
- },
1174
- dateTo: {
1171
+ modelValue: {
1175
1172
  type: String,
1176
1173
  default: ""
1177
1174
  },
@@ -1186,6 +1183,97 @@ var kt = {
1186
1183
  isLoading: {
1187
1184
  type: Boolean,
1188
1185
  default: !1
1186
+ },
1187
+ lang: {
1188
+ type: String,
1189
+ default: null
1190
+ }
1191
+ }
1192
+ }, It = { class: "bb-dashboard-ui bb:flex bb:w-fit bb:h-18 bb:border bb:border-gray-200" }, Lt = { class: "bb:flex bb:border bb:border-white" }, Rt = { class: "bb:flex bb:flex-col bb:w-36 bb:bg-white bb:h-full" };
1193
+ function zt(e, t, n, r, o, c) {
1194
+ let l = h("element-header"), u = h("select-date");
1195
+ return f(), i("div", It, [a("div", Lt, [a("div", Rt, [s(l, {
1196
+ text: n.header ?? "",
1197
+ "is-required": n.isRequired,
1198
+ "is-loading": n.isLoading
1199
+ }, null, 8, [
1200
+ "text",
1201
+ "is-required",
1202
+ "is-loading"
1203
+ ]), s(u, {
1204
+ class: "bb:flex-1",
1205
+ "model-value": n.modelValue,
1206
+ lang: n.lang,
1207
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:modelValue", t),
1208
+ onChanged: t[1] ||= (t) => e.$emit("changed")
1209
+ }, null, 8, ["model-value", "lang"])])])]);
1210
+ }
1211
+ var Bt = /*#__PURE__*/ A(Ft, [["render", zt]]), Vt = {
1212
+ components: {
1213
+ Dot: j,
1214
+ SelectDate: G
1215
+ },
1216
+ emits: ["update:modelValue", "changed"],
1217
+ props: {
1218
+ modelValue: {
1219
+ type: String,
1220
+ default: ""
1221
+ },
1222
+ label: {
1223
+ type: String,
1224
+ required: !0
1225
+ },
1226
+ isRequired: {
1227
+ type: Boolean,
1228
+ default: !1
1229
+ },
1230
+ lang: {
1231
+ type: String,
1232
+ default: null
1233
+ }
1234
+ },
1235
+ setup() {
1236
+ return { labelId: v() };
1237
+ }
1238
+ }, Ht = { class: "bb-dashboard-ui" }, Ut = { class: "bb:flex bb:items-center" }, Wt = ["id", "textContent"], Gt = { class: "bb:mt-1 bb:flex bb:h-9.5 bb:w-full bb:rounded-md bb:border bb:border-gray-300 bb:bg-white bb:shadow-xs bb:text-sm bb:[--bb-field-radius:0.375rem]" };
1239
+ function Kt(e, t, n, r, o, c) {
1240
+ let l = h("dot"), u = h("select-date");
1241
+ return f(), i("div", Ht, [a("div", Ut, [a("span", {
1242
+ id: r.labelId,
1243
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
1244
+ textContent: _(n.label ?? "")
1245
+ }, null, 8, Wt), x(s(l, {
1246
+ color: "red",
1247
+ class: "bb:ml-2"
1248
+ }, null, 512), [[y, n.isRequired]])]), a("div", Gt, [s(u, {
1249
+ class: "bb:flex-1",
1250
+ "model-value": n.modelValue,
1251
+ "labelled-by": r.labelId,
1252
+ lang: n.lang,
1253
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:modelValue", t),
1254
+ onChanged: t[1] ||= (t) => e.$emit("changed")
1255
+ }, null, 8, [
1256
+ "model-value",
1257
+ "labelled-by",
1258
+ "lang"
1259
+ ])])]);
1260
+ }
1261
+ var qt = /*#__PURE__*/ A(Vt, [["render", Kt]]), Jt = {
1262
+ inheritAttrs: !1,
1263
+ mixins: [N],
1264
+ emits: [
1265
+ "update:dateFrom",
1266
+ "update:dateTo",
1267
+ "changed"
1268
+ ],
1269
+ props: {
1270
+ dateFrom: {
1271
+ type: String,
1272
+ default: ""
1273
+ },
1274
+ dateTo: {
1275
+ type: String,
1276
+ default: ""
1189
1277
  }
1190
1278
  },
1191
1279
  data() {
@@ -1194,6 +1282,26 @@ var kt = {
1194
1282
  userDateTo: this.dateTo
1195
1283
  };
1196
1284
  },
1285
+ computed: {
1286
+ from() {
1287
+ return {
1288
+ value: this.userDateFrom,
1289
+ update: (e) => {
1290
+ this.userDateFrom = e;
1291
+ },
1292
+ placeholder: this.texts.dateFrom
1293
+ };
1294
+ },
1295
+ to() {
1296
+ return {
1297
+ value: this.userDateTo,
1298
+ update: (e) => {
1299
+ this.userDateTo = e;
1300
+ },
1301
+ placeholder: this.texts.dateTo
1302
+ };
1303
+ }
1304
+ },
1197
1305
  watch: {
1198
1306
  dateFrom(e) {
1199
1307
  this.userDateFrom = e;
@@ -1208,43 +1316,191 @@ var kt = {
1208
1316
  this.$emit("update:dateTo", e), this.dateTo !== e && this.$emit("changed");
1209
1317
  }
1210
1318
  }
1211
- }, At = { class: "bb-dashboard-ui bb:flex" }, jt = { class: "bb:flex bb:border bb:border-white" }, Mt = { class: "bb:flex bb:flex-col bb:min-w-72 bb:w-72 bb:bg-white bb:h-full" }, Nt = { class: "bb:flex bb:h-full bb:divide-x bb:divide-gray-200" };
1212
- function Pt(e, t, n, r, o, c) {
1213
- let l = h("element-header"), u = h("pick-day");
1214
- return f(), i("div", At, [a("div", jt, [a("div", Mt, [s(l, {
1215
- text: n.header,
1319
+ };
1320
+ function Yt(e, t, n, r, i, a) {
1321
+ return m(e.$slots, "default", {
1322
+ from: a.from,
1323
+ to: a.to
1324
+ });
1325
+ }
1326
+ var K = /*#__PURE__*/ A(Jt, [["render", Yt]]), Xt = {
1327
+ components: {
1328
+ ElementHeader: M,
1329
+ SelectDate: G,
1330
+ SelectDateInterval: K
1331
+ },
1332
+ emits: [
1333
+ "update:dateFrom",
1334
+ "update:dateTo",
1335
+ "changed"
1336
+ ],
1337
+ props: {
1338
+ dateFrom: {
1339
+ type: String,
1340
+ default: ""
1341
+ },
1342
+ dateTo: {
1343
+ type: String,
1344
+ default: ""
1345
+ },
1346
+ header: {
1347
+ type: String,
1348
+ required: !0
1349
+ },
1350
+ isRequired: {
1351
+ type: Boolean,
1352
+ default: !1
1353
+ },
1354
+ isLoading: {
1355
+ type: Boolean,
1356
+ default: !1
1357
+ },
1358
+ lang: {
1359
+ type: String,
1360
+ default: null
1361
+ }
1362
+ }
1363
+ }, Zt = { class: "bb-dashboard-ui bb:flex bb:w-fit bb:h-18 bb:border bb:border-gray-200" }, Qt = { class: "bb:flex bb:border bb:border-white" }, $t = { class: "bb:flex bb:flex-col bb:min-w-72 bb:w-72 bb:bg-white bb:h-full" }, en = { class: "bb:flex bb:h-full bb:divide-x bb:divide-gray-200" };
1364
+ function tn(e, t, n, r, o, c) {
1365
+ let l = h("element-header"), u = h("select-date"), d = h("select-date-interval");
1366
+ return f(), i("div", Zt, [a("div", Qt, [a("div", $t, [s(l, {
1367
+ text: n.header ?? "",
1216
1368
  "is-required": n.isRequired,
1217
1369
  "is-loading": n.isLoading
1218
1370
  }, null, 8, [
1219
1371
  "text",
1220
1372
  "is-required",
1221
1373
  "is-loading"
1222
- ]), a("div", Nt, [s(u, {
1223
- modelValue: o.userDateFrom,
1224
- "onUpdate:modelValue": t[0] ||= (e) => o.userDateFrom = e,
1225
- class: "bb:flex-1 bb:min-w-36 bb:pl-3",
1226
- "placeholder-text": e.texts.dateFrom,
1227
- lang: e.resolvedLang
1228
- }, null, 8, [
1229
- "modelValue",
1230
- "placeholder-text",
1374
+ ]), s(d, {
1375
+ "date-from": n.dateFrom,
1376
+ "date-to": n.dateTo,
1377
+ lang: n.lang,
1378
+ "onUpdate:dateFrom": t[0] ||= (t) => e.$emit("update:dateFrom", t),
1379
+ "onUpdate:dateTo": t[1] ||= (t) => e.$emit("update:dateTo", t),
1380
+ onChanged: t[2] ||= (t) => e.$emit("changed")
1381
+ }, {
1382
+ default: b(({ from: e, to: t }) => [a("div", en, [s(u, {
1383
+ class: "bb:flex-1 bb:min-w-36",
1384
+ "model-value": e.value,
1385
+ "placeholder-text": e.placeholder,
1386
+ lang: n.lang,
1387
+ "onUpdate:modelValue": e.update
1388
+ }, null, 8, [
1389
+ "model-value",
1390
+ "placeholder-text",
1391
+ "lang",
1392
+ "onUpdate:modelValue"
1393
+ ]), s(u, {
1394
+ class: "bb:flex-1 bb:min-w-36",
1395
+ "model-value": t.value,
1396
+ "placeholder-text": t.placeholder,
1397
+ lang: n.lang,
1398
+ "onUpdate:modelValue": t.update
1399
+ }, null, 8, [
1400
+ "model-value",
1401
+ "placeholder-text",
1402
+ "lang",
1403
+ "onUpdate:modelValue"
1404
+ ])])]),
1405
+ _: 1
1406
+ }, 8, [
1407
+ "date-from",
1408
+ "date-to",
1231
1409
  "lang"
1232
- ]), s(u, {
1233
- modelValue: o.userDateTo,
1234
- "onUpdate:modelValue": t[1] ||= (e) => o.userDateTo = e,
1235
- class: "bb:flex-1 bb:min-w-36 bb:pl-3",
1236
- "placeholder-text": e.texts.dateTo,
1237
- lang: e.resolvedLang
1238
- }, null, 8, [
1239
- "modelValue",
1240
- "placeholder-text",
1410
+ ])])])]);
1411
+ }
1412
+ var nn = /*#__PURE__*/ A(Xt, [["render", tn]]), rn = {
1413
+ components: {
1414
+ Dot: j,
1415
+ SelectDate: G,
1416
+ SelectDateInterval: K
1417
+ },
1418
+ emits: [
1419
+ "update:dateFrom",
1420
+ "update:dateTo",
1421
+ "changed"
1422
+ ],
1423
+ props: {
1424
+ dateFrom: {
1425
+ type: String,
1426
+ default: ""
1427
+ },
1428
+ dateTo: {
1429
+ type: String,
1430
+ default: ""
1431
+ },
1432
+ label: {
1433
+ type: String,
1434
+ required: !0
1435
+ },
1436
+ isRequired: {
1437
+ type: Boolean,
1438
+ default: !1
1439
+ },
1440
+ lang: {
1441
+ type: String,
1442
+ default: null
1443
+ }
1444
+ },
1445
+ setup() {
1446
+ return { labelId: v() };
1447
+ }
1448
+ }, an = { class: "bb-dashboard-ui" }, on = { class: "bb:flex bb:items-center" }, sn = ["id", "textContent"], cn = ["aria-labelledby"], ln = { class: "bb:flex bb:h-9.5 bb:w-full bb:rounded-md bb:border bb:border-gray-300 bb:bg-white bb:shadow-xs bb:text-sm bb:[--bb-field-radius:0.375rem]" }, un = { class: "bb:flex bb:h-9.5 bb:w-full bb:rounded-md bb:border bb:border-gray-300 bb:bg-white bb:shadow-xs bb:text-sm bb:[--bb-field-radius:0.375rem]" };
1449
+ function dn(e, t, n, r, o, c) {
1450
+ let l = h("dot"), u = h("select-date"), d = h("select-date-interval");
1451
+ return f(), i("div", an, [a("div", on, [a("span", {
1452
+ id: r.labelId,
1453
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
1454
+ textContent: _(n.label ?? "")
1455
+ }, null, 8, sn), x(s(l, {
1456
+ color: "red",
1457
+ class: "bb:ml-2"
1458
+ }, null, 512), [[y, n.isRequired]])]), a("div", {
1459
+ class: "bb:mt-1 bb:grid bb:grid-cols-2 bb:gap-3",
1460
+ role: "group",
1461
+ "aria-labelledby": r.labelId
1462
+ }, [s(d, {
1463
+ "date-from": n.dateFrom,
1464
+ "date-to": n.dateTo,
1465
+ lang: n.lang,
1466
+ "onUpdate:dateFrom": t[0] ||= (t) => e.$emit("update:dateFrom", t),
1467
+ "onUpdate:dateTo": t[1] ||= (t) => e.$emit("update:dateTo", t),
1468
+ onChanged: t[2] ||= (t) => e.$emit("changed")
1469
+ }, {
1470
+ default: b(({ from: e, to: t }) => [a("div", ln, [s(u, {
1471
+ class: "bb:flex-1",
1472
+ "model-value": e.value,
1473
+ "placeholder-text": e.placeholder,
1474
+ lang: n.lang,
1475
+ "onUpdate:modelValue": e.update
1476
+ }, null, 8, [
1477
+ "model-value",
1478
+ "placeholder-text",
1479
+ "lang",
1480
+ "onUpdate:modelValue"
1481
+ ])]), a("div", un, [s(u, {
1482
+ class: "bb:flex-1",
1483
+ "model-value": t.value,
1484
+ "placeholder-text": t.placeholder,
1485
+ lang: n.lang,
1486
+ "onUpdate:modelValue": t.update
1487
+ }, null, 8, [
1488
+ "model-value",
1489
+ "placeholder-text",
1490
+ "lang",
1491
+ "onUpdate:modelValue"
1492
+ ])])]),
1493
+ _: 1
1494
+ }, 8, [
1495
+ "date-from",
1496
+ "date-to",
1241
1497
  "lang"
1242
- ])])])])]);
1498
+ ])], 8, cn)]);
1243
1499
  }
1244
- var Ft = /*#__PURE__*/ N(kt, [["render", Pt]]), It = {
1500
+ var fn = /*#__PURE__*/ A(rn, [["render", dn]]), pn = {
1245
1501
  components: {
1246
- PopoverPanel: K,
1247
- CrossButton: L
1502
+ PopoverPanel: B,
1503
+ CrossButton: P
1248
1504
  },
1249
1505
  emits: [
1250
1506
  "update:isOpen",
@@ -1283,6 +1539,10 @@ var Ft = /*#__PURE__*/ N(kt, [["render", Pt]]), It = {
1283
1539
  lang: {
1284
1540
  type: String,
1285
1541
  default: null
1542
+ },
1543
+ labelledBy: {
1544
+ type: String,
1545
+ default: null
1286
1546
  }
1287
1547
  },
1288
1548
  computed: { needsEraser() {
@@ -1292,10 +1552,14 @@ var Ft = /*#__PURE__*/ N(kt, [["render", Pt]]), It = {
1292
1552
  let e = this.$refs.eraser.$el;
1293
1553
  document.activeElement === e && e.matches(":focus-visible") && this.$refs.trigger.focus({ preventScroll: !0 }), this.$emit("erased");
1294
1554
  } }
1295
- }, Lt = { class: "bb:flex bb:flex-col bb:grow bb:bg-white" }, Rt = { class: "bb:relative bb:flex bb:w-full bb:h-full" }, zt = ["id", "popovertarget"], Bt = ["textContent"];
1296
- function Vt(e, t, o, c, l, u) {
1555
+ }, mn = { class: "bb:flex bb:flex-col bb:grow" }, hn = { class: "bb:relative bb:flex bb:w-full bb:h-full" }, gn = [
1556
+ "id",
1557
+ "popovertarget",
1558
+ "aria-labelledby"
1559
+ ], _n = ["textContent"];
1560
+ function vn(e, t, o, c, l, u) {
1297
1561
  let d = h("popover-panel"), p = h("cross-button");
1298
- return f(), i("div", Lt, [a("div", Rt, [s(d, {
1562
+ return f(), i("div", mn, [a("div", hn, [s(d, {
1299
1563
  class: "bb:flex bb:w-full bb:h-full",
1300
1564
  "model-value": o.isOpen,
1301
1565
  align: "start",
@@ -1314,11 +1578,12 @@ function Vt(e, t, o, c, l, u) {
1314
1578
  type: "button",
1315
1579
  id: e.id,
1316
1580
  popovertarget: e.popovertarget,
1317
- class: "bb:flex bb:w-full bb:h-full bb:items-center bb:focus-visible:focus-ring bb:cursor-pointer"
1581
+ "aria-labelledby": o.labelledBy ? o.labelledBy + " " + e.id : null,
1582
+ class: "bb:flex bb:w-full bb:h-full bb:items-center bb:focus-visible:focus-ring bb:cursor-pointer bb:rounded-[var(--bb-field-radius,0)]"
1318
1583
  }, [a("span", {
1319
1584
  class: "bb:flex bb:w-full bb:h-full bb:pl-3 bb:pr-12 bb:py-2 bb:items-center bb:whitespace-nowrap bb:leading-none bb:pointer-events-none bb:cursor-default",
1320
1585
  textContent: _(o.title)
1321
- }, null, 8, Bt)], 8, zt)]),
1586
+ }, null, 8, _n)], 8, gn)]),
1322
1587
  default: b(() => [m(e.$slots, "default")]),
1323
1588
  _: 3
1324
1589
  }, 8, [
@@ -1336,7 +1601,7 @@ function Vt(e, t, o, c, l, u) {
1336
1601
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
1337
1602
  }, null, 8, ["lang", "onClicked"])) : r("", !0)])]);
1338
1603
  }
1339
- var Ht = /*#__PURE__*/ N(It, [["render", Vt]]), Ut = {
1604
+ var q = /*#__PURE__*/ A(pn, [["render", vn]]), yn = {
1340
1605
  props: {
1341
1606
  isChecked: {
1342
1607
  type: Boolean,
@@ -1348,33 +1613,32 @@ var Ht = /*#__PURE__*/ N(It, [["render", Vt]]), Ut = {
1348
1613
  methods: { toggle() {
1349
1614
  this.$emit("clicked");
1350
1615
  } }
1351
- }, Wt = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center bb:pointer-events-none bb:cursor-default" }, Gt = {
1616
+ }, bn = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center bb:pointer-events-none bb:cursor-default" }, xn = {
1352
1617
  class: "bb:w-5 bb:h-5 bb:fill-current bb:text-green-300",
1353
1618
  viewBox: "0 0 20 20",
1354
1619
  "aria-hidden": "true"
1355
- }, Kt = ["textContent"];
1356
- function qt(e, t, n, r, o, s) {
1620
+ }, Sn = ["textContent"];
1621
+ function Cn(e, t, n, r, o, s) {
1357
1622
  return f(), i("button", {
1358
1623
  type: "button",
1359
1624
  onClick: t[0] ||= C((...e) => s.toggle && s.toggle(...e), ["prevent"]),
1360
- class: "bb:flex bb:w-full bb:bg-white bb:cursor-pointer bb:focus:outline-hidden bb:focus:bg-indigo-100"
1361
- }, [a("span", Wt, [x((f(), i("svg", Gt, [...t[1] ||= [a("path", {
1625
+ class: "bb:flex bb:w-full bb:bg-white bb:cursor-pointer bb:focus:outline-hidden bb:hover:bg-indigo-100 bb:focus:bg-indigo-100"
1626
+ }, [a("span", bn, [x((f(), i("svg", xn, [...t[1] ||= [a("path", {
1362
1627
  d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
1363
1628
  "clip-rule": "evenodd",
1364
1629
  "fill-rule": "evenodd"
1365
1630
  }, null, -1)]], 512)), [[y, n.isChecked]])]), a("span", {
1366
1631
  class: "bb:flex bb:h-9 bb:justify-center bb:items-center bb:pr-6 bb:whitespace-nowrap bb:select-none bb:pointer-events-none bb:cursor-default",
1367
1632
  textContent: _(n.name)
1368
- }, null, 8, Kt)]);
1633
+ }, null, 8, Sn)]);
1369
1634
  }
1370
- var Jt = /*#__PURE__*/ N(Ut, [["render", qt]]), Yt = {
1635
+ var wn = /*#__PURE__*/ A(yn, [["render", Cn]]), Tn = {
1371
1636
  components: {
1372
- ElementHeader: F,
1373
- DropdownButton: Ht,
1374
- ListElement: Jt,
1375
- CrossButton: L
1637
+ DropdownButton: q,
1638
+ ListElement: wn,
1639
+ CrossButton: P
1376
1640
  },
1377
- mixins: [I],
1641
+ mixins: [N],
1378
1642
  emits: ["update:modelValue", "changed"],
1379
1643
  props: {
1380
1644
  items: {
@@ -1385,21 +1649,13 @@ var Jt = /*#__PURE__*/ N(Ut, [["render", qt]]), Yt = {
1385
1649
  type: Array,
1386
1650
  default: () => []
1387
1651
  },
1388
- header: {
1389
- type: String,
1390
- required: !0
1391
- },
1392
- isRequired: {
1393
- type: Boolean,
1394
- default: !1
1395
- },
1396
- isLoading: {
1397
- type: Boolean,
1398
- default: !1
1399
- },
1400
1652
  withSearch: {
1401
1653
  type: Boolean,
1402
1654
  default: !1
1655
+ },
1656
+ labelledBy: {
1657
+ type: String,
1658
+ default: null
1403
1659
  }
1404
1660
  },
1405
1661
  data() {
@@ -1437,7 +1693,7 @@ var Jt = /*#__PURE__*/ N(Ut, [["render", qt]]), Yt = {
1437
1693
  return String(e.name ?? "");
1438
1694
  },
1439
1695
  itemClicked(e) {
1440
- this.itemElements()[this.visibleItems.indexOf(e)].focus({ preventScroll: !0 }), this.isOpen = !1, this.$emit("update:modelValue", this.selectedIds.includes(e.id) ? this.selectedIds.filter((t) => t !== e.id) : [...this.selectedIds, e.id]), this.$emit("changed");
1696
+ this.itemElements()[this.visibleItems.indexOf(e)]?.focus({ preventScroll: !0 }), this.isOpen = !1, this.$emit("update:modelValue", this.selectedIds.includes(e.id) ? this.selectedIds.filter((t) => t !== e.id) : [...this.selectedIds, e.id]), this.$emit("changed");
1441
1697
  },
1442
1698
  clear() {
1443
1699
  this.$emit("update:modelValue", []), this.$emit("changed");
@@ -1481,26 +1737,19 @@ var Jt = /*#__PURE__*/ N(Ut, [["render", qt]]), Yt = {
1481
1737
  this.query = "", this.$refs.search.focus();
1482
1738
  }
1483
1739
  }
1484
- }, Xt = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Zt = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Qt = {
1740
+ }, En = { class: "bb-dashboard-ui bb:flex bb:flex-col bb:grow" }, Dn = {
1485
1741
  key: 0,
1486
1742
  class: "bb:sticky bb:top-0 bb:min-w-56 bb:px-2 bb:py-2 bb:bg-white bb:border-b bb:border-gray-200"
1487
- }, $t = { class: "bb:relative" }, en = ["placeholder", "aria-label"], tn = ["textContent"];
1488
- function nn(t, o, c, l, u, d) {
1489
- let m = h("element-header"), g = h("cross-button"), v = h("list-element"), ee = h("dropdown-button");
1490
- return f(), i("div", Xt, [a("div", Zt, [s(m, {
1491
- text: c.header,
1492
- "is-required": c.isRequired,
1493
- "is-loading": c.isLoading
1494
- }, null, 8, [
1495
- "text",
1496
- "is-required",
1497
- "is-loading"
1498
- ]), d.hasItems ? (f(), n(ee, {
1743
+ }, On = { class: "bb:relative" }, kn = ["placeholder", "aria-label"], An = ["textContent"];
1744
+ function jn(t, o, c, l, u, d) {
1745
+ let m = h("cross-button"), g = h("list-element"), v = h("dropdown-button");
1746
+ return f(), i("div", En, [d.hasItems ? (f(), n(v, {
1499
1747
  key: 0,
1500
1748
  title: d.title,
1501
1749
  "is-open": u.isOpen,
1502
1750
  "onUpdate:isOpen": o[3] ||= (e) => u.isOpen = e,
1503
1751
  "has-value": d.selectedItems.length > 0,
1752
+ "labelled-by": c.labelledBy,
1504
1753
  "find-selected": d.arrowsOrigin,
1505
1754
  "find-stops": d.searchStops,
1506
1755
  "find-tab-stops": d.tabStops,
@@ -1509,7 +1758,7 @@ function nn(t, o, c, l, u, d) {
1509
1758
  onErased: d.clear,
1510
1759
  onToggle: d.onToggle
1511
1760
  }, {
1512
- default: b(() => [c.withSearch ? (f(), i("div", Qt, [a("div", $t, [x(a("input", {
1761
+ default: b(() => [c.withSearch ? (f(), i("div", Dn, [a("div", On, [x(a("input", {
1513
1762
  ref: "search",
1514
1763
  type: "text",
1515
1764
  autocomplete: "off",
@@ -1518,7 +1767,7 @@ function nn(t, o, c, l, u, d) {
1518
1767
  "aria-label": t.texts.search,
1519
1768
  class: "bb:w-full bb:pl-3 bb:pr-9 bb:py-2 bb:text-sm bb:bg-white bb:border bb:border-gray-300 bb:rounded-md bb:focus:focus-ring",
1520
1769
  onKeydown: o[1] ||= S(C(() => {}, ["prevent"]), ["enter"])
1521
- }, null, 40, en), [[te, u.query]]), x(s(g, {
1770
+ }, null, 40, kn), [[te, u.query]]), x(s(m, {
1522
1771
  ref: "searchEraser",
1523
1772
  size: "small",
1524
1773
  lang: t.lang,
@@ -1529,7 +1778,7 @@ function nn(t, o, c, l, u, d) {
1529
1778
  ref: "list",
1530
1779
  class: "bb:flex bb:flex-col bb:py-1 bb:divide-y bb:divide-gray-200 bb:divide-dashed",
1531
1780
  onKeydown: o[2] ||= (...e) => d.onListKeydown && d.onListKeydown(...e)
1532
- }, [(f(!0), i(e, null, p(d.visibleItems, (e) => (f(), n(v, {
1781
+ }, [(f(!0), i(e, null, p(d.visibleItems, (e) => (f(), n(g, {
1533
1782
  name: d.itemName(e),
1534
1783
  key: e.id,
1535
1784
  "is-checked": d.selectedIds.includes(e.id),
@@ -1544,12 +1793,13 @@ function nn(t, o, c, l, u, d) {
1544
1793
  key: 2,
1545
1794
  class: "bb:px-3 bb:py-2 bb:text-sm bb:text-gray-500 bb:text-center",
1546
1795
  textContent: _(t.texts.nothingFound)
1547
- }, null, 8, tn))]),
1796
+ }, null, 8, An))]),
1548
1797
  _: 1
1549
1798
  }, 8, [
1550
1799
  "title",
1551
1800
  "is-open",
1552
1801
  "has-value",
1802
+ "labelled-by",
1553
1803
  "find-selected",
1554
1804
  "find-stops",
1555
1805
  "find-tab-stops",
@@ -1557,13 +1807,12 @@ function nn(t, o, c, l, u, d) {
1557
1807
  "lang",
1558
1808
  "onErased",
1559
1809
  "onToggle"
1560
- ])) : r("", !0)])]);
1810
+ ])) : r("", !0)]);
1561
1811
  }
1562
- var rn = /*#__PURE__*/ N(Yt, [["render", nn]]), an = {
1812
+ var Mn = /*#__PURE__*/ A(Tn, [["render", jn]]), Nn = {
1563
1813
  components: {
1564
- ElementHeader: F,
1565
- DropdownButton: Ht,
1566
- ListElement: Jt
1814
+ ElementHeader: M,
1815
+ SelectMultiple: Mn
1567
1816
  },
1568
1817
  emits: ["update:modelValue", "changed"],
1569
1818
  props: {
@@ -1572,8 +1821,8 @@ var rn = /*#__PURE__*/ N(Yt, [["render", nn]]), an = {
1572
1821
  required: !0
1573
1822
  },
1574
1823
  modelValue: {
1575
- type: [String, Number],
1576
- default: null
1824
+ type: Array,
1825
+ default: () => []
1577
1826
  },
1578
1827
  header: {
1579
1828
  type: String,
@@ -1586,6 +1835,237 @@ var rn = /*#__PURE__*/ N(Yt, [["render", nn]]), an = {
1586
1835
  isLoading: {
1587
1836
  type: Boolean,
1588
1837
  default: !1
1838
+ },
1839
+ withSearch: {
1840
+ type: Boolean,
1841
+ default: !1
1842
+ },
1843
+ lang: {
1844
+ type: String,
1845
+ default: null
1846
+ }
1847
+ }
1848
+ }, Pn = { class: "bb-dashboard-ui bb:flex bb:flex-none bb:w-fit bb:h-18 bb:border bb:border-gray-200" }, Fn = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" };
1849
+ function In(e, t, n, r, o, c) {
1850
+ let l = h("element-header"), u = h("select-multiple");
1851
+ return f(), i("div", Pn, [a("div", Fn, [s(l, {
1852
+ text: n.header ?? "",
1853
+ "is-required": n.isRequired,
1854
+ "is-loading": n.isLoading
1855
+ }, null, 8, [
1856
+ "text",
1857
+ "is-required",
1858
+ "is-loading"
1859
+ ]), s(u, {
1860
+ items: n.items,
1861
+ "model-value": n.modelValue,
1862
+ "with-search": n.withSearch,
1863
+ lang: n.lang,
1864
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:modelValue", t),
1865
+ onChanged: t[1] ||= (t) => e.$emit("changed")
1866
+ }, null, 8, [
1867
+ "items",
1868
+ "model-value",
1869
+ "with-search",
1870
+ "lang"
1871
+ ])])]);
1872
+ }
1873
+ var Ln = /*#__PURE__*/ A(Nn, [["render", In]]), Rn = {
1874
+ components: {
1875
+ Dot: j,
1876
+ SelectMultiple: Mn
1877
+ },
1878
+ emits: ["update:modelValue", "changed"],
1879
+ props: {
1880
+ items: {
1881
+ type: Array,
1882
+ required: !0
1883
+ },
1884
+ modelValue: {
1885
+ type: Array,
1886
+ default: () => []
1887
+ },
1888
+ label: {
1889
+ type: String,
1890
+ required: !0
1891
+ },
1892
+ isRequired: {
1893
+ type: Boolean,
1894
+ default: !1
1895
+ },
1896
+ withSearch: {
1897
+ type: Boolean,
1898
+ default: !1
1899
+ },
1900
+ lang: {
1901
+ type: String,
1902
+ default: null
1903
+ }
1904
+ },
1905
+ setup() {
1906
+ return { labelId: v() };
1907
+ }
1908
+ }, zn = { class: "bb-dashboard-ui" }, Bn = { class: "bb:flex bb:items-center" }, Vn = ["id", "textContent"], Hn = { class: "bb:mt-1 bb:h-9.5 bb:w-full bb:rounded-md bb:[--bb-field-radius:0.375rem] bb:border bb:border-gray-300 bb:bg-white bb:shadow-xs bb:text-sm bb:flex bb:flex-col" };
1909
+ function Un(e, t, n, r, o, c) {
1910
+ let l = h("dot"), u = h("select-multiple");
1911
+ return f(), i("div", zn, [a("div", Bn, [a("span", {
1912
+ id: r.labelId,
1913
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
1914
+ textContent: _(n.label ?? "")
1915
+ }, null, 8, Vn), x(s(l, {
1916
+ color: "red",
1917
+ class: "bb:ml-2"
1918
+ }, null, 512), [[y, n.isRequired]])]), a("div", Hn, [s(u, {
1919
+ items: n.items,
1920
+ "model-value": n.modelValue,
1921
+ "with-search": n.withSearch,
1922
+ lang: n.lang,
1923
+ "labelled-by": r.labelId,
1924
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:modelValue", t),
1925
+ onChanged: t[1] ||= (t) => e.$emit("changed")
1926
+ }, null, 8, [
1927
+ "items",
1928
+ "model-value",
1929
+ "with-search",
1930
+ "lang",
1931
+ "labelled-by"
1932
+ ])])]);
1933
+ }
1934
+ var Wn = /*#__PURE__*/ A(Rn, [["render", Un]]);
1935
+ function J(e) {
1936
+ return Number.isInteger(e) && e >= 1;
1937
+ }
1938
+ function Y(e) {
1939
+ return J(e) ? e : 2;
1940
+ }
1941
+ function Gn(e) {
1942
+ return { gridTemplateColumns: `repeat(${e}, minmax(0, 1fr))` };
1943
+ }
1944
+ function Kn(e, t) {
1945
+ let n = Math.floor(e / t), r = e % t, i = [];
1946
+ for (let e = 0; e < t; e++) {
1947
+ let t = e < r ? n + 1 : n;
1948
+ for (let n = 1; n <= t; n++) i.push({
1949
+ gridColumn: e + 1,
1950
+ gridRow: n
1951
+ });
1952
+ }
1953
+ return i;
1954
+ }
1955
+ //#endregion
1956
+ //#region src/components/SelectMultipleList.vue
1957
+ var qn = {
1958
+ components: { Dot: j },
1959
+ emits: ["update:modelValue", "changed"],
1960
+ props: {
1961
+ items: {
1962
+ type: Array,
1963
+ required: !0
1964
+ },
1965
+ modelValue: {
1966
+ type: Array,
1967
+ default: () => []
1968
+ },
1969
+ label: {
1970
+ type: String,
1971
+ required: !0
1972
+ },
1973
+ isRequired: {
1974
+ type: Boolean,
1975
+ default: !1
1976
+ },
1977
+ columns: {
1978
+ type: Number,
1979
+ default: 2,
1980
+ validator: J
1981
+ }
1982
+ },
1983
+ setup() {
1984
+ return { labelId: v() };
1985
+ },
1986
+ computed: {
1987
+ itemList() {
1988
+ return Array.isArray(this.items) ? this.items.filter((e) => typeof e == "object" && !!e) : [];
1989
+ },
1990
+ selectedIds() {
1991
+ return Array.isArray(this.modelValue) ? this.modelValue : [];
1992
+ },
1993
+ gridStyle() {
1994
+ return Gn(Y(this.columns));
1995
+ },
1996
+ itemStyles() {
1997
+ return Kn(this.itemList.length, Y(this.columns));
1998
+ }
1999
+ },
2000
+ methods: {
2001
+ isChecked(e) {
2002
+ return this.selectedIds.includes(e.id);
2003
+ },
2004
+ itemName(e) {
2005
+ return String(e.name ?? "");
2006
+ },
2007
+ async toggle(e) {
2008
+ this.$emit("update:modelValue", this.isChecked(e) ? this.selectedIds.filter((t) => t !== e.id) : [...this.selectedIds, e.id]), this.$emit("changed"), await this.$nextTick(), this.syncChecked();
2009
+ },
2010
+ syncChecked() {
2011
+ this.$el.querySelectorAll("input").forEach((e, t) => {
2012
+ e.checked = this.isChecked(this.itemList[t]);
2013
+ });
2014
+ }
2015
+ }
2016
+ }, Jn = { class: "bb-dashboard-ui" }, Yn = { class: "bb:flex bb:items-center" }, Xn = ["id", "textContent"], Zn = ["aria-labelledby"], Qn = { class: "bb:relative bb:flex bb:shrink-0" }, $n = ["checked", "onChange"], er = {
2017
+ key: 0,
2018
+ class: "bb:pointer-events-none bb:absolute bb:inset-0 bb:size-4 bb:fill-white bb:forced-colors:hidden",
2019
+ viewBox: "0 0 16 16",
2020
+ "aria-hidden": "true"
2021
+ }, tr = ["textContent"];
2022
+ function nr(t, n, o, c, l, m) {
2023
+ let g = h("dot");
2024
+ return f(), i("div", Jn, [a("div", Yn, [a("span", {
2025
+ id: c.labelId,
2026
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
2027
+ textContent: _(o.label ?? "")
2028
+ }, null, 8, Xn), x(s(g, {
2029
+ color: "red",
2030
+ class: "bb:ml-2"
2031
+ }, null, 512), [[y, o.isRequired]])]), m.itemList.length > 0 ? (f(), i("div", {
2032
+ key: 0,
2033
+ role: "group",
2034
+ "aria-labelledby": c.labelId,
2035
+ class: "bb:mt-1 bb:grid bb:gap-x-4 bb:gap-y-2",
2036
+ style: d(m.gridStyle)
2037
+ }, [(f(!0), i(e, null, p(m.itemList, (e, t) => (f(), i("label", {
2038
+ key: t,
2039
+ style: d(m.itemStyles[t]),
2040
+ class: "bb:flex bb:items-center"
2041
+ }, [a("span", Qn, [a("input", {
2042
+ type: "checkbox",
2043
+ checked: m.isChecked(e),
2044
+ class: u(["bb:size-4 bb:rounded bb:border bb:bg-none bb:focus-visible:focus-ring bb:forced-colors:appearance-auto", m.isChecked(e) ? "bb:border-indigo-600 bb:bg-indigo-600" : "bb:border-gray-300 bb:bg-white"]),
2045
+ onChange: (t) => m.toggle(e)
2046
+ }, null, 42, $n), m.isChecked(e) ? (f(), i("svg", er, [...n[0] ||= [a("path", { d: "M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z" }, null, -1)]])) : r("", !0)]), a("span", {
2047
+ class: "bb:ml-3 bb:text-sm bb:font-medium bb:text-gray-700",
2048
+ textContent: _(m.itemName(e))
2049
+ }, null, 8, tr)], 4))), 128))], 12, Zn)) : r("", !0)]);
2050
+ }
2051
+ var rr = /*#__PURE__*/ A(qn, [["render", nr]]), ir = {
2052
+ components: {
2053
+ DropdownButton: q,
2054
+ ListElement: wn
2055
+ },
2056
+ emits: ["update:modelValue", "changed"],
2057
+ props: {
2058
+ items: {
2059
+ type: Array,
2060
+ required: !0
2061
+ },
2062
+ modelValue: {
2063
+ type: [String, Number],
2064
+ default: null
2065
+ },
2066
+ labelledBy: {
2067
+ type: String,
2068
+ default: null
1589
2069
  }
1590
2070
  },
1591
2071
  data() {
@@ -1613,7 +2093,7 @@ var rn = /*#__PURE__*/ N(Yt, [["render", nn]]), an = {
1613
2093
  },
1614
2094
  methods: {
1615
2095
  itemClicked(e) {
1616
- this.isOpen = !1, this.$emit("update:modelValue", e.id === this.modelValue ? null : e.id), this.$emit("changed");
2096
+ this.$refs.list.querySelectorAll("button")[this.itemList.indexOf(e)]?.focus({ preventScroll: !0 }), this.isOpen = !1, this.$emit("update:modelValue", e.id === this.modelValue ? null : e.id), this.$emit("changed");
1617
2097
  },
1618
2098
  clear() {
1619
2099
  this.$emit("update:modelValue", null), this.$emit("changed");
@@ -1626,35 +2106,28 @@ var rn = /*#__PURE__*/ N(Yt, [["render", nn]]), an = {
1626
2106
  return this.$refs.list ? [...this.$refs.list.querySelectorAll(":scope > button")] : [];
1627
2107
  }
1628
2108
  }
1629
- }, on = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, sn = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, cn = {
2109
+ }, ar = { class: "bb-dashboard-ui bb:flex bb:flex-col bb:grow" }, or = {
1630
2110
  ref: "list",
1631
2111
  class: "bb:flex bb:flex-col bb:py-1 bb:divide-y bb:divide-gray-200 bb:divide-dashed"
1632
2112
  };
1633
- function ln(t, o, c, l, u, d) {
1634
- let m = h("element-header"), g = h("list-element"), _ = h("dropdown-button");
1635
- return f(), i("div", on, [a("div", sn, [s(m, {
1636
- text: c.header,
1637
- "is-required": c.isRequired,
1638
- "is-loading": c.isLoading
1639
- }, null, 8, [
1640
- "text",
1641
- "is-required",
1642
- "is-loading"
1643
- ]), d.hasItems ? (f(), n(_, {
2113
+ function sr(t, o, s, c, l, u) {
2114
+ let d = h("list-element"), m = h("dropdown-button");
2115
+ return f(), i("div", ar, [u.hasItems ? (f(), n(m, {
1644
2116
  key: 0,
1645
- title: d.activeItemName,
1646
- "is-open": u.isOpen,
1647
- "onUpdate:isOpen": o[0] ||= (e) => u.isOpen = e,
1648
- "has-value": d.hasValue,
1649
- "find-selected": d.activeItemElement,
1650
- "find-tab-stops": d.itemStops,
1651
- onErased: d.clear
2117
+ title: u.activeItemName,
2118
+ "is-open": l.isOpen,
2119
+ "onUpdate:isOpen": o[0] ||= (e) => l.isOpen = e,
2120
+ "has-value": u.hasValue,
2121
+ "labelled-by": s.labelledBy,
2122
+ "find-selected": u.activeItemElement,
2123
+ "find-tab-stops": u.itemStops,
2124
+ onErased: u.clear
1652
2125
  }, {
1653
- default: b(() => [a("div", cn, [(f(!0), i(e, null, p(d.itemList, (e) => (f(), n(g, {
2126
+ default: b(() => [a("div", or, [(f(!0), i(e, null, p(u.itemList, (e) => (f(), n(d, {
1654
2127
  name: e.name,
1655
2128
  key: e.id,
1656
- "is-checked": e.id === c.modelValue,
1657
- onClicked: (t) => d.itemClicked(e)
2129
+ "is-checked": e.id === s.modelValue,
2130
+ onClicked: (t) => u.itemClicked(e)
1658
2131
  }, null, 8, [
1659
2132
  "name",
1660
2133
  "is-checked",
@@ -1665,13 +2138,214 @@ function ln(t, o, c, l, u, d) {
1665
2138
  "title",
1666
2139
  "is-open",
1667
2140
  "has-value",
2141
+ "labelled-by",
1668
2142
  "find-selected",
1669
2143
  "find-tab-stops",
1670
2144
  "onErased"
1671
- ])) : r("", !0)])]);
2145
+ ])) : r("", !0)]);
2146
+ }
2147
+ var cr = /*#__PURE__*/ A(ir, [["render", sr]]), lr = {
2148
+ components: {
2149
+ ElementHeader: M,
2150
+ SelectSingle: cr
2151
+ },
2152
+ emits: ["update:modelValue", "changed"],
2153
+ props: {
2154
+ items: {
2155
+ type: Array,
2156
+ required: !0
2157
+ },
2158
+ modelValue: {
2159
+ type: [String, Number],
2160
+ default: null
2161
+ },
2162
+ header: {
2163
+ type: String,
2164
+ required: !0
2165
+ },
2166
+ isRequired: {
2167
+ type: Boolean,
2168
+ default: !1
2169
+ },
2170
+ isLoading: {
2171
+ type: Boolean,
2172
+ default: !1
2173
+ }
2174
+ }
2175
+ }, ur = { class: "bb-dashboard-ui bb:flex bb:flex-none bb:w-fit bb:h-18 bb:border bb:border-gray-200" }, dr = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" };
2176
+ function fr(e, t, n, r, o, c) {
2177
+ let l = h("element-header"), u = h("select-single");
2178
+ return f(), i("div", ur, [a("div", dr, [s(l, {
2179
+ text: n.header ?? "",
2180
+ "is-required": n.isRequired,
2181
+ "is-loading": n.isLoading
2182
+ }, null, 8, [
2183
+ "text",
2184
+ "is-required",
2185
+ "is-loading"
2186
+ ]), s(u, {
2187
+ items: n.items,
2188
+ "model-value": n.modelValue,
2189
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:modelValue", t),
2190
+ onChanged: t[1] ||= (t) => e.$emit("changed")
2191
+ }, null, 8, ["items", "model-value"])])]);
2192
+ }
2193
+ var pr = /*#__PURE__*/ A(lr, [["render", fr]]), mr = {
2194
+ components: {
2195
+ Dot: j,
2196
+ SelectSingle: cr
2197
+ },
2198
+ emits: ["update:modelValue", "changed"],
2199
+ props: {
2200
+ items: {
2201
+ type: Array,
2202
+ required: !0
2203
+ },
2204
+ modelValue: {
2205
+ type: [String, Number],
2206
+ default: null
2207
+ },
2208
+ label: {
2209
+ type: String,
2210
+ required: !0
2211
+ },
2212
+ isRequired: {
2213
+ type: Boolean,
2214
+ default: !1
2215
+ }
2216
+ },
2217
+ setup() {
2218
+ return { labelId: v() };
2219
+ }
2220
+ }, hr = { class: "bb-dashboard-ui" }, gr = { class: "bb:flex bb:items-center" }, _r = ["id", "textContent"], vr = { class: "bb:mt-1 bb:h-9.5 bb:w-full bb:rounded-md bb:[--bb-field-radius:0.375rem] bb:border bb:border-gray-300 bb:bg-white bb:shadow-xs bb:text-sm bb:flex bb:flex-col" };
2221
+ function yr(e, t, n, r, o, c) {
2222
+ let l = h("dot"), u = h("select-single");
2223
+ return f(), i("div", hr, [a("div", gr, [a("span", {
2224
+ id: r.labelId,
2225
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
2226
+ textContent: _(n.label ?? "")
2227
+ }, null, 8, _r), x(s(l, {
2228
+ color: "red",
2229
+ class: "bb:ml-2"
2230
+ }, null, 512), [[y, n.isRequired]])]), a("div", vr, [s(u, {
2231
+ items: n.items,
2232
+ "model-value": n.modelValue,
2233
+ "labelled-by": r.labelId,
2234
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:modelValue", t),
2235
+ onChanged: t[1] ||= (t) => e.$emit("changed")
2236
+ }, null, 8, [
2237
+ "items",
2238
+ "model-value",
2239
+ "labelled-by"
2240
+ ])])]);
1672
2241
  }
1673
- var un = /*#__PURE__*/ N(an, [["render", ln]]), dn = {
1674
- mixins: [M],
2242
+ var br = /*#__PURE__*/ A(mr, [["render", yr]]), xr = {
2243
+ components: { Dot: j },
2244
+ emits: ["update:modelValue", "changed"],
2245
+ props: {
2246
+ items: {
2247
+ type: Array,
2248
+ required: !0
2249
+ },
2250
+ modelValue: {
2251
+ type: [
2252
+ String,
2253
+ Number,
2254
+ Boolean
2255
+ ],
2256
+ default: null
2257
+ },
2258
+ label: {
2259
+ type: String,
2260
+ required: !0
2261
+ },
2262
+ isRequired: {
2263
+ type: Boolean,
2264
+ default: !1
2265
+ },
2266
+ columns: {
2267
+ type: Number,
2268
+ default: 2,
2269
+ validator: J
2270
+ }
2271
+ },
2272
+ setup() {
2273
+ return {
2274
+ labelId: v(),
2275
+ groupName: v()
2276
+ };
2277
+ },
2278
+ computed: {
2279
+ itemList() {
2280
+ return Array.isArray(this.items) ? this.items.filter((e) => typeof e == "object" && !!e) : [];
2281
+ },
2282
+ gridStyle() {
2283
+ return Gn(Y(this.columns));
2284
+ },
2285
+ itemStyles() {
2286
+ return Kn(this.itemList.length, Y(this.columns));
2287
+ }
2288
+ },
2289
+ methods: {
2290
+ isSelected(e) {
2291
+ return e.id === this.modelValue;
2292
+ },
2293
+ itemName(e) {
2294
+ return String(e.name ?? "");
2295
+ },
2296
+ async select(e) {
2297
+ this.$emit("update:modelValue", e.id), this.$emit("changed"), await this.$nextTick(), this.syncChecked();
2298
+ },
2299
+ syncChecked() {
2300
+ this.$el.querySelectorAll("input").forEach((e, t) => {
2301
+ e.checked = this.isSelected(this.itemList[t]);
2302
+ });
2303
+ }
2304
+ }
2305
+ }, Sr = { class: "bb-dashboard-ui" }, Cr = { class: "bb:flex bb:items-center" }, wr = ["id", "textContent"], Tr = ["aria-labelledby"], Er = [
2306
+ "name",
2307
+ "checked",
2308
+ "onChange"
2309
+ ], Dr = {
2310
+ key: 0,
2311
+ class: "bb:size-2 bb:rounded-full bb:bg-indigo-600 bb:forced-colors:bg-[CanvasText]"
2312
+ }, Or = ["textContent"];
2313
+ function kr(t, n, o, c, l, m) {
2314
+ let g = h("dot");
2315
+ return f(), i("div", Sr, [a("div", Cr, [a("span", {
2316
+ id: c.labelId,
2317
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
2318
+ textContent: _(o.label ?? "")
2319
+ }, null, 8, wr), x(s(g, {
2320
+ color: "red",
2321
+ class: "bb:ml-2"
2322
+ }, null, 512), [[y, o.isRequired]])]), m.itemList.length > 0 ? (f(), i("div", {
2323
+ key: 0,
2324
+ role: "radiogroup",
2325
+ "aria-labelledby": c.labelId,
2326
+ class: "bb:mt-2 bb:grid bb:gap-3",
2327
+ style: d(m.gridStyle)
2328
+ }, [(f(!0), i(e, null, p(m.itemList, (e, t) => (f(), i("label", {
2329
+ key: t,
2330
+ style: d(m.itemStyles[t]),
2331
+ class: u(["bb:relative bb:flex bb:items-start bb:p-3 bb:border bb:rounded-md bb:cursor-pointer bb:select-none bb:transition-[background-color,border-color] bb:has-focus-visible:focus-ring", m.isSelected(e) ? "bb:border-indigo-500 bb:bg-indigo-50" : "bb:border-gray-300 bb:bg-white bb:hover:bg-gray-50"])
2332
+ }, [
2333
+ a("input", {
2334
+ type: "radio",
2335
+ name: c.groupName,
2336
+ checked: m.isSelected(e),
2337
+ class: "bb:absolute bb:inset-0 bb:size-full bb:cursor-pointer bb:bg-none bb:opacity-0",
2338
+ onChange: (t) => m.select(e)
2339
+ }, null, 40, Er),
2340
+ a("span", { class: u(["bb:pointer-events-none bb:cursor-default bb:shrink-0 bb:mt-0.5 bb:size-4 bb:rounded-full bb:border-2 bb:flex bb:items-center bb:justify-center", m.isSelected(e) ? "bb:border-indigo-600 bb:forced-colors:border-[Highlight]" : "bb:border-gray-400"]) }, [m.isSelected(e) ? (f(), i("span", Dr)) : r("", !0)], 2),
2341
+ a("span", {
2342
+ class: "bb:pointer-events-none bb:cursor-default bb:ml-3 bb:text-sm bb:font-medium bb:text-gray-700",
2343
+ textContent: _(m.itemName(e))
2344
+ }, null, 8, Or)
2345
+ ], 6))), 128))], 12, Tr)) : r("", !0)]);
2346
+ }
2347
+ var Ar = /*#__PURE__*/ A(xr, [["render", kr]]), jr = {
2348
+ mixins: [k],
1675
2349
  props: {
1676
2350
  text: {
1677
2351
  type: String,
@@ -1680,17 +2354,17 @@ var un = /*#__PURE__*/ N(an, [["render", ln]]), dn = {
1680
2354
  color: {
1681
2355
  type: String,
1682
2356
  required: !0,
1683
- validator: j
2357
+ validator: O
1684
2358
  }
1685
2359
  }
1686
- }, fn = ["textContent"];
1687
- function pn(e, t, n, r, a, o) {
2360
+ }, Mr = ["textContent"];
2361
+ function Nr(e, t, n, r, a, o) {
1688
2362
  return f(), i("span", {
1689
2363
  class: u(["bb-dashboard-ui bb:inline-flex bb:items-center bb:px-3 bb:py-2 bb:rounded-full bb:text-xs bb:font-medium bb:leading-none bb:select-none bb:whitespace-nowrap", e.colorClass(n.color, "pill")]),
1690
2364
  textContent: _(n.text)
1691
- }, null, 10, fn);
2365
+ }, null, 10, Mr);
1692
2366
  }
1693
- var mn = /*#__PURE__*/ N(dn, [["render", pn]]), hn = {
2367
+ var Pr = /*#__PURE__*/ A(jr, [["render", Nr]]), Fr = {
1694
2368
  props: {
1695
2369
  messages: {
1696
2370
  type: [Object, Array],
@@ -1710,12 +2384,12 @@ var mn = /*#__PURE__*/ N(dn, [["render", pn]]), hn = {
1710
2384
  return this.type === "dangerous";
1711
2385
  }
1712
2386
  }
1713
- }, gn = { class: "bb:flex" }, _n = { class: "bb:shrink-0" }, vn = { class: "bb:ml-3" }, yn = ["textContent"];
1714
- function bn(t, n, o, s, c, l) {
2387
+ }, Ir = { class: "bb:flex" }, Lr = { class: "bb:shrink-0" }, Rr = { class: "bb:ml-3" }, zr = ["textContent"];
2388
+ function Br(t, n, o, s, c, l) {
1715
2389
  return l.hasErrors ? (f(), i("div", {
1716
2390
  key: 0,
1717
2391
  class: u(["bb-dashboard-ui bb:border-l-4 bb:p-4", l.isDangerous ? "bb:bg-red-50 bb:border-red-400" : "bb:bg-yellow-50 bb:border-yellow-400"])
1718
- }, [a("div", gn, [a("div", _n, [(f(), i("svg", {
2392
+ }, [a("div", Ir, [a("div", Lr, [(f(), i("svg", {
1719
2393
  class: u(["bb:h-5 bb:w-5", l.isDangerous ? "bb:text-red-400" : "bb:text-yellow-400"]),
1720
2394
  viewBox: "0 0 20 20",
1721
2395
  fill: "currentColor"
@@ -1723,21 +2397,21 @@ function bn(t, n, o, s, c, l) {
1723
2397
  "fill-rule": "evenodd",
1724
2398
  d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
1725
2399
  "clip-rule": "evenodd"
1726
- }, null, -1)]], 2))]), a("div", vn, [(f(!0), i(e, null, p(o.messages, (e, t) => (f(), i("p", {
2400
+ }, null, -1)]], 2))]), a("div", Rr, [(f(!0), i(e, null, p(o.messages, (e, t) => (f(), i("p", {
1727
2401
  class: u(["bb:text-sm bb:leading-5", l.isDangerous ? "bb:text-red-700" : "bb:text-yellow-700"]),
1728
2402
  key: t,
1729
2403
  textContent: _(e)
1730
- }, null, 10, yn))), 128))])])], 2)) : r("", !0);
2404
+ }, null, 10, zr))), 128))])])], 2)) : r("", !0);
1731
2405
  }
1732
- var xn = /*#__PURE__*/ N(hn, [["render", bn]]), Sn = [
2406
+ var Vr = /*#__PURE__*/ A(Fr, [["render", Br]]), Hr = [
1733
2407
  "text",
1734
2408
  "email",
1735
2409
  "password",
1736
2410
  "tel",
1737
2411
  "url",
1738
2412
  "search"
1739
- ], Cn = {
1740
- components: { Dot: P },
2413
+ ], Ur = {
2414
+ components: { Dot: j },
1741
2415
  inheritAttrs: !1,
1742
2416
  props: {
1743
2417
  modelValue: {
@@ -1751,7 +2425,7 @@ var xn = /*#__PURE__*/ N(hn, [["render", bn]]), Sn = [
1751
2425
  type: {
1752
2426
  type: String,
1753
2427
  default: "text",
1754
- validator: (e) => Sn.includes(e)
2428
+ validator: (e) => Hr.includes(e)
1755
2429
  },
1756
2430
  isRequired: {
1757
2431
  type: Boolean,
@@ -1772,7 +2446,7 @@ var xn = /*#__PURE__*/ N(hn, [["render", bn]]), Sn = [
1772
2446
  }
1773
2447
  },
1774
2448
  inputType() {
1775
- return Sn.includes(this.type) ? this.type : "text";
2449
+ return Hr.includes(this.type) ? this.type : "text";
1776
2450
  }
1777
2451
  },
1778
2452
  methods: {
@@ -1787,26 +2461,26 @@ var xn = /*#__PURE__*/ N(hn, [["render", bn]]), Sn = [
1787
2461
  ].includes(e)));
1788
2462
  }
1789
2463
  }
1790
- }, wn = { class: "bb:flex bb:items-center" }, Tn = ["for", "textContent"], En = ["id", "type"];
1791
- function Dn(e, t, n, r, o, c) {
2464
+ }, Wr = { class: "bb:flex bb:items-center" }, Gr = ["for", "textContent"], Kr = ["id", "type"];
2465
+ function qr(e, t, n, r, o, c) {
1792
2466
  let p = h("dot");
1793
2467
  return f(), i("div", {
1794
2468
  class: u(["bb-dashboard-ui", e.$attrs.class]),
1795
2469
  style: d(e.$attrs.style)
1796
- }, [a("div", wn, [a("label", {
2470
+ }, [a("div", Wr, [a("label", {
1797
2471
  for: c.inputId(),
1798
2472
  class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
1799
2473
  textContent: _(n.label)
1800
- }, null, 8, Tn), x(s(p, {
2474
+ }, null, 8, Gr), x(s(p, {
1801
2475
  color: "red",
1802
2476
  class: "bb:ml-2"
1803
2477
  }, null, 512), [[y, n.isRequired]])]), x(a("input", l({ "onUpdate:modelValue": t[0] ||= (e) => c.value = e }, { ...c.inputAttrs() }, {
1804
2478
  id: c.inputId(),
1805
2479
  type: c.inputType,
1806
2480
  class: "bb:mt-1 bb:block bb:w-full bb:rounded-md bb:border bb:border-gray-300 bb:bg-white bb:px-3 bb:py-2 bb:text-sm bb:leading-5 bb:shadow-xs bb:focus:focus-ring"
1807
- }), null, 16, En), [[ee, c.value]])], 6);
2481
+ }), null, 16, Kr), [[ee, c.value]])], 6);
1808
2482
  }
1809
- var On = /*#__PURE__*/ N(Cn, [["render", Dn]]), kn = {}, An = {
2483
+ var Jr = /*#__PURE__*/ A(Ur, [["render", qr]]), Yr = {}, Xr = {
1810
2484
  class: "bb:w-4 bb:h-4",
1811
2485
  fill: "none",
1812
2486
  stroke: "currentColor",
@@ -1816,8 +2490,8 @@ var On = /*#__PURE__*/ N(Cn, [["render", Dn]]), kn = {}, An = {
1816
2490
  xmlns: "http://www.w3.org/2000/svg",
1817
2491
  "aria-hidden": "true"
1818
2492
  };
1819
- function jn(e, t, n, r, o, s) {
1820
- return f(), i("svg", An, [...t[0] ||= [
2493
+ function Zr(e, t, n, r, o, s) {
2494
+ return f(), i("svg", Xr, [...t[0] ||= [
1821
2495
  a("circle", {
1822
2496
  cx: "12",
1823
2497
  cy: "12",
@@ -1839,7 +2513,7 @@ function jn(e, t, n, r, o, s) {
1839
2513
  }, null, -1)
1840
2514
  ]]);
1841
2515
  }
1842
- var Mn = /*#__PURE__*/ N(kn, [["render", jn]]), Nn = {}, Pn = {
2516
+ var Qr = /*#__PURE__*/ A(Yr, [["render", Zr]]), $r = {}, ei = {
1843
2517
  class: "bb:w-4 bb:h-4",
1844
2518
  fill: "none",
1845
2519
  stroke: "currentColor",
@@ -1847,15 +2521,15 @@ var Mn = /*#__PURE__*/ N(kn, [["render", jn]]), Nn = {}, Pn = {
1847
2521
  xmlns: "http://www.w3.org/2000/svg",
1848
2522
  "aria-hidden": "true"
1849
2523
  };
1850
- function Fn(e, t, n, r, o, s) {
1851
- return f(), i("svg", Pn, [...t[0] ||= [a("path", {
2524
+ function ti(e, t, n, r, o, s) {
2525
+ return f(), i("svg", ei, [...t[0] ||= [a("path", {
1852
2526
  "stroke-linecap": "round",
1853
2527
  "stroke-linejoin": "round",
1854
2528
  "stroke-width": "2",
1855
2529
  d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"
1856
2530
  }, null, -1)]]);
1857
2531
  }
1858
- var In = /*#__PURE__*/ N(Nn, [["render", Fn]]), Ln = {}, Rn = {
2532
+ var ni = /*#__PURE__*/ A($r, [["render", ti]]), ri = {}, ii = {
1859
2533
  class: "bb:w-4 bb:h-4",
1860
2534
  fill: "none",
1861
2535
  stroke: "currentColor",
@@ -1863,21 +2537,21 @@ var In = /*#__PURE__*/ N(Nn, [["render", Fn]]), Ln = {}, Rn = {
1863
2537
  xmlns: "http://www.w3.org/2000/svg",
1864
2538
  "aria-hidden": "true"
1865
2539
  };
1866
- function zn(e, t, n, r, o, s) {
1867
- return f(), i("svg", Rn, [...t[0] ||= [a("path", {
2540
+ function ai(e, t, n, r, o, s) {
2541
+ return f(), i("svg", ii, [...t[0] ||= [a("path", {
1868
2542
  "stroke-linecap": "round",
1869
2543
  "stroke-linejoin": "round",
1870
2544
  "stroke-width": "2",
1871
2545
  d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
1872
2546
  }, null, -1)]]);
1873
2547
  }
1874
- var Bn = /*#__PURE__*/ N(Ln, [["render", zn]]), Vn = ["download", "refresh"], Hn = {
2548
+ var oi = /*#__PURE__*/ A(ri, [["render", ai]]), si = ["download", "refresh"], ci = {
1875
2549
  components: {
1876
- "clock-icon": Mn,
1877
- "download-icon": In,
1878
- "refresh-icon": Bn
2550
+ "clock-icon": Qr,
2551
+ "download-icon": ni,
2552
+ "refresh-icon": oi
1879
2553
  },
1880
- mixins: [M],
2554
+ mixins: [k],
1881
2555
  emits: ["click"],
1882
2556
  props: {
1883
2557
  title: {
@@ -1887,12 +2561,12 @@ var Bn = /*#__PURE__*/ N(Ln, [["render", zn]]), Vn = ["download", "refresh"], Hn
1887
2561
  icon: {
1888
2562
  type: String,
1889
2563
  required: !0,
1890
- validator: (e) => Vn.includes(e)
2564
+ validator: (e) => si.includes(e)
1891
2565
  },
1892
2566
  color: {
1893
2567
  type: String,
1894
2568
  default: "purple",
1895
- validator: j
2569
+ validator: O
1896
2570
  },
1897
2571
  isLoading: {
1898
2572
  type: Boolean,
@@ -1907,12 +2581,12 @@ var Bn = /*#__PURE__*/ N(Ln, [["render", zn]]), Vn = ["download", "refresh"], Hn
1907
2581
  let e = this.isLoading && typeof this.loadingText == "string" && this.loadingText !== "" ? this.loadingText : this.title;
1908
2582
  return typeof e == "string" ? e : "";
1909
2583
  } }
1910
- }, Un = [
2584
+ }, li = [
1911
2585
  "title",
1912
2586
  "disabled",
1913
2587
  "aria-busy"
1914
- ], Wn = ["textContent"];
1915
- function Gn(e, t, o, s, c, l) {
2588
+ ], ui = ["textContent"];
2589
+ function di(e, t, o, s, c, l) {
1916
2590
  let d = h("clock-icon"), p = h("download-icon"), m = h("refresh-icon");
1917
2591
  return f(), i("button", {
1918
2592
  type: "button",
@@ -1937,19 +2611,19 @@ function Gn(e, t, o, s, c, l) {
1937
2611
  })) : r("", !0), a("span", {
1938
2612
  class: "bb:ml-1 bb:pointer-events-none bb:cursor-default",
1939
2613
  textContent: _(l.label)
1940
- }, null, 8, Wn)], 10, Un);
2614
+ }, null, 8, ui)], 10, li);
1941
2615
  }
1942
- var Kn = /*#__PURE__*/ N(Hn, [["render", Gn]]), qn = "a[href], button:not(:disabled)";
1943
- function Jn(e, t) {
2616
+ var fi = /*#__PURE__*/ A(ci, [["render", di]]), pi = "a[href], button:not(:disabled)";
2617
+ function mi(e, t) {
1944
2618
  let n = document.activeElement;
1945
- (e.querySelector("[data-dialog-focus]") ?? e.querySelector(qn))?.focus();
2619
+ (e.querySelector("[data-dialog-focus]") ?? e.querySelector(pi))?.focus();
1946
2620
  let r = (n) => {
1947
2621
  if (n.key === "Escape") {
1948
2622
  t();
1949
2623
  return;
1950
2624
  }
1951
2625
  if (n.key !== "Tab") return;
1952
- let r = [...e.querySelectorAll(qn)];
2626
+ let r = [...e.querySelectorAll(pi)];
1953
2627
  if (r.length === 0) return;
1954
2628
  n.preventDefault();
1955
2629
  let i = n.shiftKey ? -1 : 1, a = r.indexOf(document.activeElement);
@@ -1966,7 +2640,7 @@ function Jn(e, t) {
1966
2640
  }
1967
2641
  //#endregion
1968
2642
  //#region src/components/Modal.vue
1969
- var Yn = {
2643
+ var hi = {
1970
2644
  emits: ["escape"],
1971
2645
  props: {
1972
2646
  isOpen: {
@@ -2000,16 +2674,16 @@ var Yn = {
2000
2674
  methods: {
2001
2675
  holdFocus() {
2002
2676
  this.focusFrame === null && this.releaseHeldFocus === null && (this.focusFrame = requestAnimationFrame(() => {
2003
- this.focusFrame = null, this.releaseHeldFocus = Jn(this.$refs.panel, () => this.$emit("escape"));
2677
+ this.focusFrame = null, this.releaseHeldFocus = mi(this.$refs.panel, () => this.$emit("escape"));
2004
2678
  }));
2005
2679
  },
2006
2680
  releaseFocus() {
2007
2681
  this.focusFrame !== null && (cancelAnimationFrame(this.focusFrame), this.focusFrame = null), this.releaseHeldFocus !== null && (this.releaseHeldFocus(), this.releaseHeldFocus = null);
2008
2682
  }
2009
2683
  }
2010
- }, Xn = { class: "bb:min-h-screen bb:text-center" }, Zn = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, Qn = ["aria-labelledby"];
2011
- function $n(e, n, r, o, c, l) {
2012
- return f(), i("div", { class: u(["bb-dashboard-ui bb:fixed bb:inset-0 bb:overflow-y-auto bb:z-20", { "bb:pointer-events-none": !r.isOpen }]) }, [a("div", Xn, [
2684
+ }, gi = { class: "bb:min-h-screen bb:text-center" }, _i = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, vi = ["aria-labelledby"];
2685
+ function yi(e, n, r, o, c, l) {
2686
+ return f(), i("div", { class: u(["bb-dashboard-ui bb:fixed bb:inset-0 bb:overflow-y-auto bb:z-20", { "bb:pointer-events-none": !r.isOpen }]) }, [a("div", gi, [
2013
2687
  s(t, {
2014
2688
  "enter-active-class": "bb:ease-out bb:duration-300",
2015
2689
  "enter-from-class": "bb:opacity-0",
@@ -2018,7 +2692,7 @@ function $n(e, n, r, o, c, l) {
2018
2692
  "leave-from-class": "bb:opacity-100",
2019
2693
  "leave-to-class": "bb:opacity-0"
2020
2694
  }, {
2021
- default: b(() => [x(a("div", Zn, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[y, r.isOpen]])]),
2695
+ default: b(() => [x(a("div", _i, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[y, r.isOpen]])]),
2022
2696
  _: 1
2023
2697
  }),
2024
2698
  n[1] ||= a("span", { class: "bb:inline-block bb:align-middle bb:h-screen" }, null, -1),
@@ -2036,12 +2710,12 @@ function $n(e, n, r, o, c, l) {
2036
2710
  role: "dialog",
2037
2711
  "aria-modal": "true",
2038
2712
  "aria-labelledby": r.headingId
2039
- }, [m(e.$slots, "default")], 8, Qn), [[y, r.isOpen]])]),
2713
+ }, [m(e.$slots, "default")], 8, vi), [[y, r.isOpen]])]),
2040
2714
  _: 3
2041
2715
  })
2042
2716
  ])], 2);
2043
2717
  }
2044
- var er = /*#__PURE__*/ N(Yn, [["render", $n]]), tr = {}, nr = {
2718
+ var bi = /*#__PURE__*/ A(hi, [["render", yi]]), xi = {}, Si = {
2045
2719
  class: "bb:h-7 bb:w-7 bb:text-red-600",
2046
2720
  xmlns: "http://www.w3.org/2000/svg",
2047
2721
  fill: "none",
@@ -2049,35 +2723,35 @@ var er = /*#__PURE__*/ N(Yn, [["render", $n]]), tr = {}, nr = {
2049
2723
  stroke: "currentColor",
2050
2724
  "aria-hidden": "true"
2051
2725
  };
2052
- function rr(e, t, n, r, o, s) {
2053
- return f(), i("svg", nr, [...t[0] ||= [a("path", {
2726
+ function Ci(e, t, n, r, o, s) {
2727
+ return f(), i("svg", Si, [...t[0] ||= [a("path", {
2054
2728
  "stroke-linecap": "round",
2055
2729
  "stroke-linejoin": "round",
2056
2730
  "stroke-width": "2",
2057
2731
  d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
2058
2732
  }, null, -1)]]);
2059
2733
  }
2060
- var ir = /*#__PURE__*/ N(tr, [["render", rr]]), ar = {}, or = {
2734
+ var wi = /*#__PURE__*/ A(xi, [["render", Ci]]), Ti = {}, Ei = {
2061
2735
  class: "bb:h-7 bb:w-7 bb:text-yellow-400",
2062
2736
  xmlns: "http://www.w3.org/2000/svg",
2063
2737
  viewBox: "0 0 20 20",
2064
2738
  fill: "currentColor",
2065
2739
  "aria-hidden": "true"
2066
2740
  };
2067
- function sr(e, t, n, r, o, s) {
2068
- return f(), i("svg", or, [...t[0] ||= [a("path", {
2741
+ function Di(e, t, n, r, o, s) {
2742
+ return f(), i("svg", Ei, [...t[0] ||= [a("path", {
2069
2743
  "fill-rule": "evenodd",
2070
2744
  d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
2071
2745
  "clip-rule": "evenodd"
2072
2746
  }, null, -1)]]);
2073
2747
  }
2074
- var cr = /*#__PURE__*/ N(ar, [["render", sr]]), lr = {
2748
+ var Oi = /*#__PURE__*/ A(Ti, [["render", Di]]), ki = {
2075
2749
  components: {
2076
- Modal: er,
2077
- Dangerous: ir,
2078
- Warning: cr
2750
+ Modal: bi,
2751
+ Dangerous: wi,
2752
+ Warning: Oi
2079
2753
  },
2080
- mixins: [I],
2754
+ mixins: [N],
2081
2755
  emits: ["actionConfirmed", "actionCanceled"],
2082
2756
  props: {
2083
2757
  isOpen: {
@@ -2117,21 +2791,21 @@ var cr = /*#__PURE__*/ N(ar, [["render", sr]]), lr = {
2117
2791
  return this.type === "warning";
2118
2792
  }
2119
2793
  }
2120
- }, ur = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:p-6 bb:pb-4" }, dr = { class: "bb:flex bb:items-start" }, fr = { class: "bb:ml-4 bb:text-left" }, pr = ["id"], mr = { class: "bb:mt-2" }, hr = { class: "bb:text-sm bb:text-gray-500" }, gr = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-6 bb:py-3 bb:flex bb:flex-row-reverse" };
2121
- function _r(e, t, i, o, s, c) {
2794
+ }, Ai = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:p-6 bb:pb-4" }, ji = { class: "bb:flex bb:items-start" }, Mi = { class: "bb:ml-4 bb:text-left" }, Ni = ["id"], Pi = { class: "bb:mt-2" }, Fi = { class: "bb:text-sm bb:text-gray-500" }, Ii = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-6 bb:py-3 bb:flex bb:flex-row-reverse" };
2795
+ function Li(e, t, i, o, s, c) {
2122
2796
  let l = h("warning"), d = h("dangerous"), p = h("modal");
2123
2797
  return f(), n(p, {
2124
2798
  "is-open": i.isOpen,
2125
2799
  "heading-id": o.headingId,
2126
2800
  onEscape: t[2] ||= (t) => e.$emit("actionCanceled")
2127
2801
  }, {
2128
- default: b(() => [a("div", ur, [a("div", dr, [a("div", { class: u(["bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-10 bb:w-10 bb:rounded-full", {
2802
+ default: b(() => [a("div", Ai, [a("div", ji, [a("div", { class: u(["bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-10 bb:w-10 bb:rounded-full", {
2129
2803
  "bb:bg-red-100": c.isDangerous,
2130
2804
  "bb:bg-yellow-100": c.isWarning
2131
- }]) }, [c.isWarning ? (f(), n(l, { key: 0 })) : r("", !0), c.isDangerous ? (f(), n(d, { key: 1 })) : r("", !0)], 2), a("div", fr, [a("h3", {
2805
+ }]) }, [c.isWarning ? (f(), n(l, { key: 0 })) : r("", !0), c.isDangerous ? (f(), n(d, { key: 1 })) : r("", !0)], 2), a("div", Mi, [a("h3", {
2132
2806
  class: "bb:text-lg bb:leading-6 bb:font-medium bb:text-gray-900",
2133
2807
  id: o.headingId
2134
- }, _(i.confirmationHeading), 9, pr), a("div", mr, [a("p", hr, _(i.confirmationText), 1)])])])]), a("div", gr, [a("button", {
2808
+ }, _(i.confirmationHeading), 9, Ni), a("div", Pi, [a("p", Fi, _(i.confirmationText), 1)])])])]), a("div", Ii, [a("button", {
2135
2809
  type: "button",
2136
2810
  class: u(["bb:inline-flex bb:justify-center bb:rounded-md bb:border bb:border-transparent bb:shadow-xs bb:px-4 bb:py-2 bb:text-sm bb:font-medium bb:text-white bb:focus:focus-ring bb:ml-3", {
2137
2811
  "bb:bg-red-600 bb:hover:bg-red-700": c.isDangerous,
@@ -2147,38 +2821,38 @@ function _r(e, t, i, o, s, c) {
2147
2821
  _: 1
2148
2822
  }, 8, ["is-open", "heading-id"]);
2149
2823
  }
2150
- var vr = /*#__PURE__*/ N(lr, [["render", _r]]);
2824
+ var Ri = /*#__PURE__*/ A(ki, [["render", Li]]);
2151
2825
  //#endregion
2152
2826
  //#region src/menuItems.js
2153
- function yr(e) {
2154
- if (typeof e != "object" || !e || typeof e.label != "string" || e.label === "" || e.color !== void 0 && !j(e.color)) return !1;
2827
+ function zi(e) {
2828
+ if (typeof e != "object" || !e || typeof e.label != "string" || e.label === "" || e.color !== void 0 && !O(e.color)) return !1;
2155
2829
  let t = typeof e.href == "string" && e.href !== "" && e.onSelect === void 0, n = typeof e.onSelect == "function" && e.href === void 0;
2156
2830
  return t || n;
2157
2831
  }
2158
- function br(e) {
2832
+ function Bi(e) {
2159
2833
  return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e) : [];
2160
2834
  }
2161
- function xr(e) {
2835
+ function Vi(e) {
2162
2836
  return typeof e.href == "string" && e.href !== "";
2163
2837
  }
2164
- function Sr(e) {
2165
- return j(e.color) ? e.color : null;
2838
+ function X(e) {
2839
+ return O(e.color) ? e.color : null;
2166
2840
  }
2167
2841
  //#endregion
2168
2842
  //#region src/navigation.js
2169
- function Cr(e) {
2843
+ function Hi(e) {
2170
2844
  let t = e.currentTarget?.target ?? "";
2171
2845
  return !(e.defaultPrevented || e.target?.isContentEditable === !0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || t !== "" && t !== "_self" || e.button !== 0);
2172
2846
  }
2173
2847
  var Z = {
2174
- inject: A,
2848
+ inject: ye,
2175
2849
  methods: { followLink(e, t) {
2176
2850
  let n = this.uiSettings.navigate;
2177
- n !== null && Cr(e) && (e.preventDefault(), n(t));
2851
+ n !== null && Hi(e) && (e.preventDefault(), n(t));
2178
2852
  } }
2179
- }, wr = {
2180
- components: { PopoverPanel: K },
2181
- mixins: [Z, M],
2853
+ }, Ui = {
2854
+ components: { PopoverPanel: B },
2855
+ mixins: [Z, k],
2182
2856
  emits: ["update:modelValue"],
2183
2857
  props: {
2184
2858
  actions: { default: () => [] },
@@ -2189,7 +2863,7 @@ var Z = {
2189
2863
  },
2190
2864
  computed: {
2191
2865
  actionItems() {
2192
- return br(this.actions);
2866
+ return Bi(this.actions);
2193
2867
  },
2194
2868
  hasActions() {
2195
2869
  return this.actionItems.length > 0;
@@ -2197,21 +2871,24 @@ var Z = {
2197
2871
  },
2198
2872
  methods: {
2199
2873
  color(e) {
2200
- return Sr(e);
2874
+ return X(e);
2201
2875
  },
2202
2876
  isLink(e) {
2203
- return xr(e);
2877
+ return Vi(e);
2204
2878
  },
2205
- select(e) {
2206
- if (typeof e.onSelect == "function") return e.onSelect();
2879
+ linkClicked(e, t) {
2880
+ e.currentTarget.focus({ preventScroll: !0 }), this.followLink(e, t);
2881
+ },
2882
+ select(e, t) {
2883
+ if (t.currentTarget.focus({ preventScroll: !0 }), typeof e.onSelect == "function") return e.onSelect();
2207
2884
  }
2208
2885
  }
2209
- }, Tr = [
2886
+ }, Wi = [
2210
2887
  "href",
2211
2888
  "onClick",
2212
2889
  "textContent"
2213
- ], Er = ["onClick", "textContent"];
2214
- function Dr(t, r, a, o, s, c) {
2890
+ ], Gi = ["onClick", "textContent"];
2891
+ function Ki(t, r, a, o, s, c) {
2215
2892
  let l = h("popover-panel");
2216
2893
  return f(), n(l, {
2217
2894
  "model-value": a.modelValue,
@@ -2220,6 +2897,7 @@ function Dr(t, r, a, o, s, c) {
2220
2897
  "max-width": 224,
2221
2898
  arrows: "",
2222
2899
  "close-on-click": "",
2900
+ "return-focus": "",
2223
2901
  "panel-class": "bb:w-56 bb:rounded-md bb:shadow-lg bb:bg-white bb:ring-1 bb:ring-black/5",
2224
2902
  "panel-role": "menu",
2225
2903
  "onUpdate:modelValue": r[0] ||= (e) => t.$emit("update:modelValue", e)
@@ -2232,33 +2910,33 @@ function Dr(t, r, a, o, s, c) {
2232
2910
  key: 0,
2233
2911
  href: n.href,
2234
2912
  role: "menuitem",
2235
- class: u(["bb:block bb:w-full bb:px-4 bb:py-2 bb:text-sm bb:text-left bb:cursor-pointer bb:focus:outline-hidden", c.color(n) === null ? "bb:text-gray-700 bb:focus:bg-gray-100 bb:focus:text-gray-900" : t.colorClass(c.color(n), "menuItem")]),
2236
- onClick: (e) => t.followLink(e, n.href),
2913
+ class: u(["bb:block bb:w-full bb:px-4 bb:py-2 bb:text-sm bb:text-left bb:cursor-pointer bb:focus:outline-hidden", c.color(n) === null ? "bb:text-gray-700 bb:hover:bg-gray-100 bb:hover:text-gray-900 bb:focus:bg-gray-100 bb:focus:text-gray-900" : t.colorClass(c.color(n), "menuItem")]),
2914
+ onClick: (e) => c.linkClicked(e, n.href),
2237
2915
  textContent: _(n.label)
2238
- }, null, 10, Tr)) : (f(), i("button", {
2916
+ }, null, 10, Wi)) : (f(), i("button", {
2239
2917
  key: 1,
2240
2918
  type: "button",
2241
2919
  role: "menuitem",
2242
- class: u(["bb:block bb:w-full bb:px-4 bb:py-2 bb:text-sm bb:text-left bb:cursor-pointer bb:focus:outline-hidden", c.color(n) === null ? "bb:text-gray-700 bb:focus:bg-gray-100 bb:focus:text-gray-900" : t.colorClass(c.color(n), "menuItem")]),
2243
- onClick: (e) => c.select(n),
2920
+ class: u(["bb:block bb:w-full bb:px-4 bb:py-2 bb:text-sm bb:text-left bb:cursor-pointer bb:focus:outline-hidden", c.color(n) === null ? "bb:text-gray-700 bb:hover:bg-gray-100 bb:hover:text-gray-900 bb:focus:bg-gray-100 bb:focus:text-gray-900" : t.colorClass(c.color(n), "menuItem")]),
2921
+ onClick: (e) => c.select(n, e),
2244
2922
  textContent: _(n.label)
2245
- }, null, 10, Er))], 64))), 128))]),
2923
+ }, null, 10, Gi))], 64))), 128))]),
2246
2924
  _: 3
2247
2925
  }, 8, ["model-value", "has-content"]);
2248
2926
  }
2249
- var Or = /*#__PURE__*/ N(wr, [["render", Dr]]), kr = {
2250
- components: { PopoverMenu: Or },
2927
+ var qi = /*#__PURE__*/ A(Ui, [["render", Ki]]), Ji = {
2928
+ components: { PopoverMenu: qi },
2251
2929
  mixins: [
2252
- I,
2930
+ N,
2253
2931
  Z,
2254
- M
2932
+ k
2255
2933
  ],
2256
2934
  emits: ["update:modelValue"],
2257
2935
  props: {
2258
2936
  actions: {
2259
2937
  type: Array,
2260
2938
  default: () => [],
2261
- validator: (e) => e.every(yr)
2939
+ validator: (e) => e.every(zi)
2262
2940
  },
2263
2941
  modelValue: {
2264
2942
  type: Boolean,
@@ -2270,7 +2948,7 @@ var Or = /*#__PURE__*/ N(wr, [["render", Dr]]), kr = {
2270
2948
  },
2271
2949
  computed: {
2272
2950
  items() {
2273
- return br(this.actions);
2951
+ return Bi(this.actions);
2274
2952
  },
2275
2953
  hasActions() {
2276
2954
  return this.items.length > 0;
@@ -2279,7 +2957,7 @@ var Or = /*#__PURE__*/ N(wr, [["render", Dr]]), kr = {
2279
2957
  return this.items[0];
2280
2958
  },
2281
2959
  mainColor() {
2282
- return this.hasActions ? Sr(this.mainAction) : null;
2960
+ return this.hasActions ? X(this.mainAction) : null;
2283
2961
  },
2284
2962
  menuActions() {
2285
2963
  return this.items.slice(1);
@@ -2301,7 +2979,7 @@ var Or = /*#__PURE__*/ N(wr, [["render", Dr]]), kr = {
2301
2979
  },
2302
2980
  methods: {
2303
2981
  isLink(e) {
2304
- return xr(e);
2982
+ return Vi(e);
2305
2983
  },
2306
2984
  select(e) {
2307
2985
  if (typeof e.onSelect == "function") return e.onSelect();
@@ -2310,13 +2988,13 @@ var Or = /*#__PURE__*/ N(wr, [["render", Dr]]), kr = {
2310
2988
  this.menuIsOpen = e, this.$emit("update:modelValue", e);
2311
2989
  }
2312
2990
  }
2313
- }, Ar = {
2991
+ }, Yi = {
2314
2992
  key: 0,
2315
2993
  class: "bb-dashboard-ui bb:relative bb:inline-flex bb:shadow-xs bb:rounded-md"
2316
- }, jr = ["href", "textContent"], Mr = ["textContent"], Nr = ["id", "popovertarget"], Pr = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2317
- function Fr(e, t, n, o, c, l) {
2994
+ }, Xi = ["href", "textContent"], Zi = ["textContent"], Qi = ["id", "popovertarget"], $i = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2995
+ function ea(e, t, n, o, c, l) {
2318
2996
  let d = h("popover-menu");
2319
- return l.hasActions ? (f(), i("span", Ar, [l.isLink(l.mainAction) ? (f(), i("a", {
2997
+ return l.hasActions ? (f(), i("span", Yi, [l.isLink(l.mainAction) ? (f(), i("a", {
2320
2998
  key: 0,
2321
2999
  href: l.mainAction.href,
2322
3000
  class: u(["bb:relative bb:inline-flex bb:items-center bb:px-4 bb:py-2 bb:border bb:text-sm bb:font-medium bb:cursor-pointer bb:focus:z-10 bb:focus:focus-ring", [{
@@ -2325,7 +3003,7 @@ function Fr(e, t, n, o, c, l) {
2325
3003
  }, l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")]]),
2326
3004
  onClick: t[0] ||= (t) => e.followLink(t, l.mainAction.href),
2327
3005
  textContent: _(l.mainAction.label)
2328
- }, null, 10, jr)) : (f(), i("button", {
3006
+ }, null, 10, Xi)) : (f(), i("button", {
2329
3007
  key: 1,
2330
3008
  type: "button",
2331
3009
  class: u(["bb:relative bb:inline-flex bb:items-center bb:px-4 bb:py-2 bb:border bb:text-sm bb:font-medium bb:cursor-pointer bb:focus:z-10 bb:focus:focus-ring", [{
@@ -2334,7 +3012,7 @@ function Fr(e, t, n, o, c, l) {
2334
3012
  }, l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")]]),
2335
3013
  onClick: t[1] ||= (e) => l.select(l.mainAction),
2336
3014
  textContent: _(l.mainAction.label)
2337
- }, null, 10, Mr)), s(d, {
3015
+ }, null, 10, Zi)), s(d, {
2338
3016
  class: "bb:-ml-px bb:flex",
2339
3017
  actions: l.menuActions,
2340
3018
  "model-value": n.modelValue,
@@ -2345,7 +3023,7 @@ function Fr(e, t, n, o, c, l) {
2345
3023
  id: n.id,
2346
3024
  popovertarget: n.popovertarget,
2347
3025
  class: u(["bb:relative bb:inline-flex bb:items-center bb:px-2 bb:py-2 bb:rounded-r-md bb:border bb:text-sm bb:font-medium bb:focus:z-10 bb:focus:focus-ring", l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-500 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")])
2348
- }, [a("span", Pr, _(e.texts.openMenu), 1), t[2] ||= a("svg", {
3026
+ }, [a("span", $i, _(e.texts.openMenu), 1), t[2] ||= a("svg", {
2349
3027
  class: "bb:h-5 bb:w-5 bb:pointer-events-none bb:cursor-default",
2350
3028
  xmlns: "http://www.w3.org/2000/svg",
2351
3029
  viewBox: "0 0 20 20",
@@ -2355,7 +3033,7 @@ function Fr(e, t, n, o, c, l) {
2355
3033
  "fill-rule": "evenodd",
2356
3034
  d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z",
2357
3035
  "clip-rule": "evenodd"
2358
- })], -1)], 10, Nr)]),
3036
+ })], -1)], 10, Qi)]),
2359
3037
  _: 1
2360
3038
  }, 8, [
2361
3039
  "actions",
@@ -2363,16 +3041,16 @@ function Fr(e, t, n, o, c, l) {
2363
3041
  "onUpdate:modelValue"
2364
3042
  ])])) : r("", !0);
2365
3043
  }
2366
- var Ir = /*#__PURE__*/ N(kr, [["render", Fr]]), Lr = {
2367
- components: { PopoverMenu: Or },
2368
- mixins: [I],
3044
+ var ta = /*#__PURE__*/ A(Ji, [["render", ea]]), na = {
3045
+ components: { PopoverMenu: qi },
3046
+ mixins: [N],
2369
3047
  props: { actions: {
2370
3048
  type: Array,
2371
3049
  default: () => [],
2372
- validator: (e) => e.every(yr)
3050
+ validator: (e) => e.every(zi)
2373
3051
  } }
2374
- }, Rr = ["id", "popovertarget"], zr = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2375
- function Br(e, t, r, i, o, s) {
3052
+ }, ra = ["id", "popovertarget"], ia = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
3053
+ function aa(e, t, r, i, o, s) {
2376
3054
  let c = h("popover-menu");
2377
3055
  return f(), n(c, {
2378
3056
  class: "bb-dashboard-ui bb:inline-flex",
@@ -2383,7 +3061,7 @@ function Br(e, t, r, i, o, s) {
2383
3061
  id: n.id,
2384
3062
  popovertarget: n.popovertarget,
2385
3063
  class: "bb:relative bb:inline-flex bb:items-center bb:justify-center bb:p-2 bb:rounded-md bb:text-gray-400 bb:hover:text-gray-500 bb:hover:bg-gray-100 bb:focus:outline-hidden bb:focus:bg-gray-100 bb:focus:text-gray-500 bb:transition bb:duration-150 bb:ease-in-out"
2386
- }, [a("span", zr, _(e.texts.openMenu), 1), t[0] ||= a("svg", {
3064
+ }, [a("span", ia, _(e.texts.openMenu), 1), t[0] ||= a("svg", {
2387
3065
  class: "bb:h-6 bb:w-6 bb:pointer-events-none bb:cursor-default",
2388
3066
  fill: "none",
2389
3067
  viewBox: "0 0 24 24",
@@ -2394,48 +3072,48 @@ function Br(e, t, r, i, o, s) {
2394
3072
  "stroke-linejoin": "round",
2395
3073
  "stroke-width": "2",
2396
3074
  d: "M4 6h16M4 12h16M4 18h16"
2397
- })], -1)], 8, Rr)]),
3075
+ })], -1)], 8, ra)]),
2398
3076
  _: 1
2399
3077
  }, 8, ["actions"]);
2400
3078
  }
2401
- var Vr = /*#__PURE__*/ N(Lr, [["render", Br]]), Hr = {}, Ur = {
3079
+ var oa = /*#__PURE__*/ A(na, [["render", aa]]), sa = {}, ca = {
2402
3080
  xmlns: "http://www.w3.org/2000/svg",
2403
3081
  viewBox: "0 0 20 20",
2404
3082
  fill: "currentColor",
2405
3083
  "aria-hidden": "true"
2406
3084
  };
2407
- function Wr(e, t, n, r, o, s) {
2408
- return f(), i("svg", Ur, [...t[0] ||= [a("path", {
3085
+ function la(e, t, n, r, o, s) {
3086
+ return f(), i("svg", ca, [...t[0] ||= [a("path", {
2409
3087
  "fill-rule": "evenodd",
2410
3088
  "clip-rule": "evenodd",
2411
3089
  d: "M7.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l2.293 2.293a1 1 0 010 1.414z"
2412
3090
  }, null, -1)]]);
2413
3091
  }
2414
- var Gr = /*#__PURE__*/ N(Hr, [["render", Wr]]), Kr = {}, qr = {
3092
+ var ua = /*#__PURE__*/ A(sa, [["render", la]]), da = {}, fa = {
2415
3093
  xmlns: "http://www.w3.org/2000/svg",
2416
3094
  viewBox: "0 0 20 20",
2417
3095
  fill: "currentColor",
2418
3096
  "aria-hidden": "true"
2419
3097
  };
2420
- function Jr(e, t, n, r, o, s) {
2421
- return f(), i("svg", qr, [...t[0] ||= [a("path", {
3098
+ function pa(e, t, n, r, o, s) {
3099
+ return f(), i("svg", fa, [...t[0] ||= [a("path", {
2422
3100
  "fill-rule": "evenodd",
2423
3101
  "clip-rule": "evenodd",
2424
3102
  d: "M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z"
2425
3103
  }, null, -1)]]);
2426
3104
  }
2427
- var Yr = /*#__PURE__*/ N(Kr, [["render", Jr]]);
3105
+ var ma = /*#__PURE__*/ A(da, [["render", pa]]);
2428
3106
  //#endregion
2429
3107
  //#region src/components/Pagination.vue
2430
- function Xr(e) {
3108
+ function ha(e) {
2431
3109
  return typeof e == "string" && e !== "" ? e : null;
2432
3110
  }
2433
- var Zr = {
3111
+ var ga = {
2434
3112
  components: {
2435
- ArrowNarrowLeft: Gr,
2436
- ArrowNarrowRight: Yr
3113
+ ArrowNarrowLeft: ua,
3114
+ ArrowNarrowRight: ma
2437
3115
  },
2438
- mixins: [I, Z],
3116
+ mixins: [N, Z],
2439
3117
  props: {
2440
3118
  links: {
2441
3119
  type: Object,
@@ -2463,49 +3141,49 @@ var Zr = {
2463
3141
  return typeof this.from == "number" && typeof this.to == "number";
2464
3142
  },
2465
3143
  previousPageUrl() {
2466
- return Xr(this.links?.prev);
3144
+ return ha(this.links?.prev);
2467
3145
  },
2468
3146
  nextPageUrl() {
2469
- return Xr(this.links?.next);
3147
+ return ha(this.links?.next);
2470
3148
  }
2471
3149
  }
2472
- }, Qr = {
3150
+ }, _a = {
2473
3151
  key: 0,
2474
3152
  class: "bb-dashboard-ui bb:flex bb:items-center bb:justify-between"
2475
- }, $r = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, ei = ["href"], ti = {
3153
+ }, va = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, ya = ["href"], ba = {
2476
3154
  key: 0,
2477
3155
  class: "bb:-mt-px bb:flex bb:text-gray-400 bb:text-sm bb:leading-5"
2478
- }, ni = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, ri = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, ii = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, ai = ["href"];
2479
- function oi(e, t, n, c, l, u) {
3156
+ }, xa = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Sa = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Ca = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, wa = ["href"];
3157
+ function Ta(e, t, n, c, l, u) {
2480
3158
  let d = h("arrow-narrow-left"), p = h("arrow-narrow-right");
2481
- return u.hasResults ? (f(), i("nav", Qr, [
2482
- a("div", $r, [u.previousPageUrl === null ? r("", !0) : (f(), i("a", {
3159
+ return u.hasResults ? (f(), i("nav", _a, [
3160
+ a("div", va, [u.previousPageUrl === null ? r("", !0) : (f(), i("a", {
2483
3161
  key: 0,
2484
3162
  href: u.previousPageUrl,
2485
3163
  class: "bb:border-t-2 bb:border-transparent bb:pt-4 bb:pr-1 bb:inline-flex bb:items-center bb:text-sm bb:font-medium bb:text-gray-500 bb:hover:text-gray-700 bb:hover:border-indigo-700 bb:focus-visible:focus-ring",
2486
3164
  onClick: t[0] ||= (t) => e.followLink(t, u.previousPageUrl)
2487
- }, [s(d, { class: "bb:mr-3 bb:h-5 bb:w-5 bb:text-gray-400 bb:pointer-events-none bb:cursor-default" }), o(" " + _(e.texts.previousPage), 1)], 8, ei))]),
2488
- u.hasRange ? (f(), i("div", ti, [
3165
+ }, [s(d, { class: "bb:mr-3 bb:h-5 bb:w-5 bb:text-gray-400 bb:pointer-events-none bb:cursor-default" }), o(" " + _(e.texts.previousPage), 1)], 8, ya))]),
3166
+ u.hasRange ? (f(), i("div", ba, [
2489
3167
  o(_(e.texts.resultsBefore) + " ", 1),
2490
- a("span", ni, _(u.from) + " - " + _(u.to), 1),
3168
+ a("span", xa, _(u.from) + " - " + _(u.to), 1),
2491
3169
  o(" " + _(e.texts.resultsOf) + " ", 1),
2492
- a("span", ri, _(u.total), 1),
3170
+ a("span", Sa, _(u.total), 1),
2493
3171
  o(" " + _(e.texts.resultsAfter), 1)
2494
3172
  ])) : r("", !0),
2495
- a("div", ii, [u.nextPageUrl === null ? r("", !0) : (f(), i("a", {
3173
+ a("div", Ca, [u.nextPageUrl === null ? r("", !0) : (f(), i("a", {
2496
3174
  key: 0,
2497
3175
  href: u.nextPageUrl,
2498
3176
  class: "bb:border-t-2 bb:border-transparent bb:pt-4 bb:pl-1 bb:inline-flex bb:items-center bb:text-sm bb:font-medium bb:text-gray-500 bb:hover:text-gray-700 bb:hover:border-indigo-700 bb:focus-visible:focus-ring",
2499
3177
  onClick: t[1] ||= (t) => e.followLink(t, u.nextPageUrl)
2500
- }, [o(_(e.texts.nextPage) + " ", 1), s(p, { class: "bb:ml-3 bb:h-5 bb:w-5 bb:text-gray-400 bb:pointer-events-none bb:cursor-default" })], 8, ai))])
3178
+ }, [o(_(e.texts.nextPage) + " ", 1), s(p, { class: "bb:ml-3 bb:h-5 bb:w-5 bb:text-gray-400 bb:pointer-events-none bb:cursor-default" })], 8, wa))])
2501
3179
  ])) : r("", !0);
2502
3180
  }
2503
- var si = /*#__PURE__*/ N(Zr, [["render", oi]]), ci = [
3181
+ var Ea = /*#__PURE__*/ A(ga, [["render", Ta]]), Da = [
2504
3182
  "left",
2505
3183
  "center",
2506
3184
  "right"
2507
3185
  ];
2508
- function li(e) {
3186
+ function Oa(e) {
2509
3187
  if (typeof e != "object" || !e || typeof e.key != "string" || e.key === "") return null;
2510
3188
  let t = e.key;
2511
3189
  return {
@@ -2514,21 +3192,21 @@ function li(e) {
2514
3192
  value: typeof e.value == "function" ? e.value : (e) => e?.[t],
2515
3193
  secondary: typeof e.secondary == "function" ? e.secondary : null,
2516
3194
  muted: e.muted === !0,
2517
- align: ci.includes(e.align) ? e.align : "left",
3195
+ align: Da.includes(e.align) ? e.align : "left",
2518
3196
  wrap: e.wrap === !0,
2519
3197
  narrow: e.narrow === !0,
2520
3198
  visible: e.visible !== !1
2521
3199
  };
2522
3200
  }
2523
- function ui(e) {
3201
+ function ka(e) {
2524
3202
  return typeof e == "string" && e !== "" ? e : null;
2525
3203
  }
2526
- var di = {
3204
+ var Aa = {
2527
3205
  components: {
2528
- Pagination: si,
2529
- InfoPill: mn
3206
+ Pagination: Ea,
3207
+ InfoPill: Pr
2530
3208
  },
2531
- mixins: [I, M],
3209
+ mixins: [N, k],
2532
3210
  props: {
2533
3211
  rows: {
2534
3212
  type: Array,
@@ -2573,7 +3251,7 @@ var di = {
2573
3251
  return Array.isArray(this.rows) ? this.rows : [];
2574
3252
  },
2575
3253
  visibleColumns() {
2576
- return (Array.isArray(this.columns) ? this.columns : []).map(li).filter((e) => e !== null && e.visible);
3254
+ return (Array.isArray(this.columns) ? this.columns : []).map(Oa).filter((e) => e !== null && e.visible);
2577
3255
  },
2578
3256
  rowStripes() {
2579
3257
  return this.normalizedRows.map((e) => this.stripeOf(e));
@@ -2592,10 +3270,10 @@ var di = {
2592
3270
  },
2593
3271
  badgeText() {
2594
3272
  if (this.hasRecords) {
2595
- let e = ui(this.foundText);
3273
+ let e = ka(this.foundText);
2596
3274
  return e === null ? null : `${e}: ${this.recordCount}`;
2597
3275
  }
2598
- return ui(this.emptyText);
3276
+ return ka(this.emptyText);
2599
3277
  }
2600
3278
  },
2601
3279
  methods: {
@@ -2615,15 +3293,15 @@ var di = {
2615
3293
  stripeOf(e) {
2616
3294
  if (typeof this.rowStripe != "function") return null;
2617
3295
  let t = this.rowStripe(e);
2618
- return j(t) ? t : null;
3296
+ return O(t) ? t : null;
2619
3297
  },
2620
3298
  textOf(e, t) {
2621
3299
  let n = e(t);
2622
3300
  return n == null ? "" : String(n);
2623
3301
  }
2624
3302
  }
2625
- }, fi = { class: "bb:min-w-full bb:divide-y bb:divide-gray-200 bb:border-collapse" }, pi = { class: "bb:bg-gray-50" }, mi = ["textContent"], hi = { class: "bb:divide-y bb:divide-gray-200" }, gi = ["textContent"], _i = ["textContent"];
2626
- function vi(t, o, s, c, l, d) {
3303
+ }, ja = { class: "bb:min-w-full bb:divide-y bb:divide-gray-200 bb:border-collapse" }, Ma = { class: "bb:bg-gray-50" }, Na = ["textContent"], Pa = { class: "bb:divide-y bb:divide-gray-200" }, Fa = ["textContent"], Ia = ["textContent"];
3304
+ function La(t, o, s, c, l, d) {
2627
3305
  let g = h("info-pill"), v = h("pagination");
2628
3306
  return f(), i("div", null, [
2629
3307
  d.hasBadgeRow() ? (f(), i("div", {
@@ -2637,7 +3315,7 @@ function vi(t, o, s, c, l, d) {
2637
3315
  d.normalizedRows.length > 0 ? (f(), i("div", {
2638
3316
  key: 1,
2639
3317
  class: u(d.isCard && d.hasBadgeRow() ? "bb:mt-4" : "")
2640
- }, [a("div", { class: u(["bb:overflow-x-auto", d.isCard ? "bb:border-t bb:border-gray-200" : "bb:shadow-sm bb:border-b bb:border-gray-200 bb:rounded-lg"]) }, [a("table", fi, [a("thead", null, [a("tr", pi, [(f(!0), i(e, null, p(d.visibleColumns, (e) => (f(), i("th", {
3318
+ }, [a("div", { class: u(["bb:overflow-x-auto", d.isCard ? "bb:border-t bb:border-gray-200" : "bb:shadow-sm bb:border-b bb:border-gray-200 bb:rounded-lg"]) }, [a("table", ja, [a("thead", null, [a("tr", Ma, [(f(!0), i(e, null, p(d.visibleColumns, (e) => (f(), i("th", {
2641
3319
  key: e.key,
2642
3320
  scope: "col",
2643
3321
  class: u(["bb:px-6 bb:py-3 bb:text-xs bb:leading-4 bb:font-medium bb:text-gray-500 bb:uppercase bb:tracking-wider bb:whitespace-nowrap", [{
@@ -2646,7 +3324,7 @@ function vi(t, o, s, c, l, d) {
2646
3324
  "bb:text-right": e.align === "right"
2647
3325
  }, { "bb:w-px": e.narrow }]]),
2648
3326
  textContent: _(e.label)
2649
- }, null, 10, mi))), 128))])]), a("tbody", hi, [(f(!0), i(e, null, p(d.normalizedRows, (n, o) => (f(), i("tr", {
3327
+ }, null, 10, Na))), 128))])]), a("tbody", Pa, [(f(!0), i(e, null, p(d.normalizedRows, (n, o) => (f(), i("tr", {
2650
3328
  key: d.keyOf(n, o),
2651
3329
  class: "bb:bg-white bb:even:bg-gray-50"
2652
3330
  }, [(f(!0), i(e, null, p(d.visibleColumns, (e, s) => (f(), i("td", {
@@ -2670,11 +3348,11 @@ function vi(t, o, s, c, l, d) {
2670
3348
  }, () => [a("div", {
2671
3349
  class: u(["bb:font-medium", e.muted ? "bb:text-gray-400" : "bb:text-gray-900"]),
2672
3350
  textContent: _(d.textOf(e.value, n))
2673
- }, null, 10, gi), e.secondary !== null && d.textOf(e.secondary, n) !== "" ? (f(), i("div", {
3351
+ }, null, 10, Fa), e.secondary !== null && d.textOf(e.secondary, n) !== "" ? (f(), i("div", {
2674
3352
  key: 0,
2675
3353
  class: "bb:text-gray-400",
2676
3354
  textContent: _(d.textOf(e.secondary, n))
2677
- }, null, 8, _i)) : r("", !0)])], 2))), 128))]))), 128))])])], 2)], 2)) : r("", !0),
3355
+ }, null, 8, Ia)) : r("", !0)])], 2))), 128))]))), 128))])])], 2)], 2)) : r("", !0),
2678
3356
  d.hasMeta ? (f(), n(v, {
2679
3357
  key: 2,
2680
3358
  meta: s.meta,
@@ -2689,7 +3367,7 @@ function vi(t, o, s, c, l, d) {
2689
3367
  ])) : r("", !0)
2690
3368
  ]);
2691
3369
  }
2692
- var yi = /*#__PURE__*/ N(di, [["render", vi]]), bi = {
3370
+ var Ra = /*#__PURE__*/ A(Aa, [["render", La]]), za = {
2693
3371
  mixins: [Z],
2694
3372
  props: {
2695
3373
  url: {
@@ -2705,17 +3383,17 @@ var yi = /*#__PURE__*/ N(di, [["render", vi]]), bi = {
2705
3383
  default: !1
2706
3384
  }
2707
3385
  }
2708
- }, xi = ["href", "textContent"];
2709
- function Si(e, t, n, r, a, o) {
3386
+ }, Ba = ["href", "textContent"];
3387
+ function Va(e, t, n, r, a, o) {
2710
3388
  return f(), i("a", {
2711
3389
  href: n.url,
2712
3390
  class: u([n.isActive ? "bb:border-indigo-400 bb:text-gray-600 bb:focus:border-indigo-700" : "bb:border-transparent bb:text-gray-500 bb:hover:text-gray-600 bb:hover:border-gray-300 bb:focus:text-gray-700 bb:focus:border-gray-300", "bb-dashboard-ui bb:inline-flex bb:items-center bb:px-1 bb:pt-1 bb:border-b-2 bb:text-sm bb:font-medium bb:leading-5 bb:focus:outline-hidden bb:transition bb:duration-150 bb:ease-in-out"]),
2713
3391
  onClick: t[0] ||= (t) => e.followLink(t, n.url),
2714
3392
  textContent: _(n.name)
2715
- }, null, 10, xi);
3393
+ }, null, 10, Ba);
2716
3394
  }
2717
- var Ci = /*#__PURE__*/ N(bi, [["render", Si]]), wi = {
2718
- mixins: [I, Z],
3395
+ var Ha = /*#__PURE__*/ A(za, [["render", Va]]), Ua = {
3396
+ mixins: [N, Z],
2719
3397
  props: {
2720
3398
  tabs: {
2721
3399
  type: Array,
@@ -2729,13 +3407,13 @@ var Ci = /*#__PURE__*/ N(bi, [["render", Si]]), wi = {
2729
3407
  computed: { tabList() {
2730
3408
  return Array.isArray(this.tabs) ? this.tabs.filter((e) => typeof e == "object" && !!e) : [];
2731
3409
  } }
2732
- }, Ti = ["aria-label"], Ei = [
3410
+ }, Wa = ["aria-label"], Ga = [
2733
3411
  "href",
2734
3412
  "aria-current",
2735
3413
  "onClick",
2736
3414
  "textContent"
2737
3415
  ];
2738
- function Di(t, n, r, a, o, s) {
3416
+ function Ka(t, n, r, a, o, s) {
2739
3417
  return f(), i("nav", {
2740
3418
  class: "bb-dashboard-ui bb:flex bb:space-x-4",
2741
3419
  "aria-label": t.texts.tabs
@@ -2746,21 +3424,21 @@ function Di(t, n, r, a, o, s) {
2746
3424
  class: u(["bb:px-3 bb:py-2 bb:font-medium bb:text-sm bb:rounded-md bb:focus-visible:focus-ring", e.key === r.activeKey ? "bb:bg-indigo-100 bb:text-gray-700" : "bb:text-gray-500 bb:hover:text-gray-700"]),
2747
3425
  onClick: (n) => t.followLink(n, e.url),
2748
3426
  textContent: _(e.name)
2749
- }, null, 10, Ei))), 128))], 8, Ti);
3427
+ }, null, 10, Ga))), 128))], 8, Wa);
2750
3428
  }
2751
- var Oi = /*#__PURE__*/ N(wi, [["render", Di]]), ki = [
3429
+ var qa = /*#__PURE__*/ A(Ua, [["render", Ka]]), Ja = [
2752
3430
  "xl",
2753
3431
  "4xl",
2754
3432
  "7xl"
2755
- ], Ai = {
2756
- components: { CrossButton: L },
2757
- mixins: [I],
3433
+ ], Ya = {
3434
+ components: { CrossButton: P },
3435
+ mixins: [N],
2758
3436
  inheritAttrs: !1,
2759
3437
  props: {
2760
3438
  width: {
2761
3439
  type: String,
2762
3440
  default: "xl",
2763
- validator: (e) => ki.includes(e)
3441
+ validator: (e) => Ja.includes(e)
2764
3442
  },
2765
3443
  fallbackUrl: {
2766
3444
  type: String,
@@ -2776,13 +3454,13 @@ var Oi = /*#__PURE__*/ N(wi, [["render", Di]]), ki = [
2776
3454
  },
2777
3455
  computed: {
2778
3456
  resolvedWidth() {
2779
- return ki.includes(this.width) ? this.width : "xl";
3457
+ return Ja.includes(this.width) ? this.width : "xl";
2780
3458
  },
2781
3459
  windows() {
2782
3460
  return this.uiSettings.windows;
2783
3461
  },
2784
3462
  resolvedKey() {
2785
- return this.windowKey !== null && this.windowKey !== "" ? this.windowKey : this.windows === null ? null : oe(this.windows.page.address);
3463
+ return this.windowKey !== null && this.windowKey !== "" ? this.windowKey : this.windows === null ? null : se(this.windows.page.address);
2786
3464
  },
2787
3465
  target() {
2788
3466
  return this.returnAddress === null ? this.fallbackUrl === null || this.fallbackUrl === "" ? null : this.fallbackUrl : this.returnAddress;
@@ -2792,23 +3470,23 @@ var Oi = /*#__PURE__*/ N(wi, [["render", Di]]), ki = [
2792
3470
  }
2793
3471
  },
2794
3472
  watch: { fallbackUrl() {
2795
- this.windows !== null && me(this.windows.state, this, this.fallbackAddress());
3473
+ this.windows !== null && ge(this.windows.state, this, this.fallbackAddress());
2796
3474
  } },
2797
3475
  mounted() {
2798
- this.windows !== null && (this.returnAddress = O(this.windows.state, this, this.resolvedKey, this.fallbackAddress()).returnAddress, this.$watch(() => [this.windows.page.number, this.resolvedKey], () => this.syncWindow(), { flush: "post" }));
3476
+ this.windows !== null && (this.returnAddress = E(this.windows.state, this, this.resolvedKey, this.fallbackAddress()).returnAddress, this.$watch(() => [this.windows.page.number, this.resolvedKey], () => this.syncWindow(), { flush: "post" }));
2799
3477
  },
2800
3478
  beforeUnmount() {
2801
- this.windows !== null && pe(this.windows.state, this);
3479
+ this.windows !== null && he(this.windows.state, this);
2802
3480
  },
2803
3481
  methods: {
2804
3482
  fallbackAddress() {
2805
- return T(this.fallbackUrl, window.location.origin);
3483
+ return oe(this.fallbackUrl, window.location.origin);
2806
3484
  },
2807
3485
  forwardedAttrs() {
2808
3486
  return Object.fromEntries(Object.entries(this.$attrs).filter(([e]) => e.startsWith("data-") || e.startsWith("aria-")));
2809
3487
  },
2810
3488
  syncWindow() {
2811
- let e = fe(this.windows.state, this, this.resolvedKey, this.fallbackAddress());
3489
+ let e = me(this.windows.state, this, this.resolvedKey, this.fallbackAddress());
2812
3490
  e.rejected && console.warn(`PageCard: ключ окна сменился на «${this.resolvedKey}» без смены страницы — карточка остаётся в окне «${e.key}»`), this.returnAddress = e.window.returnAddress;
2813
3491
  },
2814
3492
  close() {
@@ -2823,7 +3501,7 @@ var Oi = /*#__PURE__*/ N(wi, [["render", Di]]), ki = [
2823
3501
  }
2824
3502
  }
2825
3503
  };
2826
- function ji(e, t, a, s, c, d) {
3504
+ function Xa(e, t, a, s, c, d) {
2827
3505
  let p = h("cross-button");
2828
3506
  return f(), i("div", l({
2829
3507
  class: ["bb:box-border bb:relative bb:my-6 bb:mx-auto bb:bg-white bb:shadow-xl bb:rounded-lg", [
@@ -2854,7 +3532,7 @@ function ji(e, t, a, s, c, d) {
2854
3532
  _: 1
2855
3533
  }, 8, ["class", "onClicked"])) : r("", !0)], 16);
2856
3534
  }
2857
- var Mi = /*#__PURE__*/ N(Ai, [["render", ji]]), Ni = {}, Pi = {
3535
+ var Za = /*#__PURE__*/ A(Ya, [["render", Xa]]), Qa = {}, $a = {
2858
3536
  class: "bb:h-7 bb:w-7 bb:text-green-600",
2859
3537
  xmlns: "http://www.w3.org/2000/svg",
2860
3538
  fill: "none",
@@ -2863,22 +3541,22 @@ var Mi = /*#__PURE__*/ N(Ai, [["render", ji]]), Ni = {}, Pi = {
2863
3541
  stroke: "currentColor",
2864
3542
  "aria-hidden": "true"
2865
3543
  };
2866
- function Fi(e, t, n, r, o, s) {
2867
- return f(), i("svg", Pi, [...t[0] ||= [a("path", {
3544
+ function eo(e, t, n, r, o, s) {
3545
+ return f(), i("svg", $a, [...t[0] ||= [a("path", {
2868
3546
  "stroke-linecap": "round",
2869
3547
  "stroke-linejoin": "round",
2870
3548
  d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
2871
3549
  }, null, -1)]]);
2872
3550
  }
2873
- var Ii = /*#__PURE__*/ N(Ni, [["render", Fi]]), Li = {}, Ri = {
3551
+ var to = /*#__PURE__*/ A(Qa, [["render", eo]]), no = {}, ro = {
2874
3552
  class: "bb:h-5 bb:w-5",
2875
3553
  xmlns: "http://www.w3.org/2000/svg",
2876
3554
  viewBox: "0 0 20 20",
2877
3555
  fill: "currentColor",
2878
3556
  "aria-hidden": "true"
2879
3557
  };
2880
- function zi(e, t, n, r, o, s) {
2881
- return f(), i("svg", Ri, [...t[0] ||= [a("path", {
3558
+ function io(e, t, n, r, o, s) {
3559
+ return f(), i("svg", ro, [...t[0] ||= [a("path", {
2882
3560
  "fill-rule": "evenodd",
2883
3561
  d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
2884
3562
  "clip-rule": "evenodd"
@@ -2886,14 +3564,14 @@ function zi(e, t, n, r, o, s) {
2886
3564
  }
2887
3565
  //#endregion
2888
3566
  //#region src/components/NotificationMessage.vue
2889
- var Bi = {
3567
+ var ao = {
2890
3568
  components: {
2891
- Check: Ii,
2892
- Close: /* @__PURE__ */ N(Li, [["render", zi]]),
2893
- Dangerous: ir,
2894
- Warning: cr
3569
+ Check: to,
3570
+ Close: /* @__PURE__ */ A(no, [["render", io]]),
3571
+ Dangerous: wi,
3572
+ Warning: Oi
2895
3573
  },
2896
- mixins: [I],
3574
+ mixins: [N],
2897
3575
  emits: ["update:modelValue"],
2898
3576
  props: {
2899
3577
  modelValue: {
@@ -2931,8 +3609,8 @@ var Bi = {
2931
3609
  return this.type === "confirmation";
2932
3610
  }
2933
3611
  }
2934
- }, Vi = ["role"], Hi = { class: "bb:p-4" }, Ui = { class: "bb:flex bb:items-start" }, Wi = { class: "bb:shrink-0" }, Gi = { class: "bb:ml-3 bb:w-0 bb:flex-1 bb:pt-0.5" }, Ki = { class: "bb:text-sm bb:font-medium bb:text-gray-900" }, qi = { class: "bb:mt-1 bb:text-sm bb:text-gray-500" }, Ji = { class: "bb:ml-4 bb:shrink-0 bb:flex" }, Yi = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2935
- function Xi(e, t, o, c, l, d) {
3612
+ }, oo = ["role"], so = { class: "bb:p-4" }, co = { class: "bb:flex bb:items-start" }, lo = { class: "bb:shrink-0" }, uo = { class: "bb:ml-3 bb:w-0 bb:flex-1 bb:pt-0.5" }, fo = { class: "bb:text-sm bb:font-medium bb:text-gray-900" }, po = { class: "bb:mt-1 bb:text-sm bb:text-gray-500" }, mo = { class: "bb:ml-4 bb:shrink-0 bb:flex" }, ho = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
3613
+ function go(e, t, o, c, l, d) {
2936
3614
  let p = h("warning"), m = h("dangerous"), g = h("check"), v = h("close");
2937
3615
  return f(), i("div", {
2938
3616
  class: "bb-dashboard-ui bb:fixed bb:inset-0 bb:flex bb:items-start bb:justify-end bb:p-6 bb:pointer-events-none",
@@ -2944,14 +3622,14 @@ function Xi(e, t, o, c, l, d) {
2944
3622
  "bb:bg-yellow-50": d.isWarning,
2945
3623
  "bb:bg-gray-50": d.isConfirmation
2946
3624
  }])
2947
- }, [a("div", Hi, [a("div", Ui, [
2948
- a("div", Wi, [
3625
+ }, [a("div", so, [a("div", co, [
3626
+ a("div", lo, [
2949
3627
  d.isWarning ? (f(), n(p, { key: 0 })) : r("", !0),
2950
3628
  d.isDangerous ? (f(), n(m, { key: 1 })) : r("", !0),
2951
3629
  d.isConfirmation ? (f(), n(g, { key: 2 })) : r("", !0)
2952
3630
  ]),
2953
- a("div", Gi, [a("p", Ki, _(o.notificationHeading), 1), a("p", qi, _(d.text), 1)]),
2954
- a("div", Ji, [a("button", {
3631
+ a("div", uo, [a("p", fo, _(o.notificationHeading), 1), a("p", po, _(d.text), 1)]),
3632
+ a("div", mo, [a("button", {
2955
3633
  type: "button",
2956
3634
  class: u(["bb:rounded-md bb:inline-flex bb:text-gray-400 bb:hover:text-gray-500 bb:focus:focus-ring", {
2957
3635
  "bb:bg-red-50": d.isDangerous,
@@ -2959,10 +3637,10 @@ function Xi(e, t, o, c, l, d) {
2959
3637
  "bb:bg-gray-50": d.isConfirmation
2960
3638
  }]),
2961
3639
  onClick: t[0] ||= C((t) => e.$emit("update:modelValue", ""), ["prevent"])
2962
- }, [a("span", Yi, _(e.texts.close), 1), s(v, { class: "bb:pointer-events-none bb:cursor-default" })], 2)])
2963
- ])])], 2)) : r("", !0)], 8, Vi);
3640
+ }, [a("span", ho, _(e.texts.close), 1), s(v, { class: "bb:pointer-events-none bb:cursor-default" })], 2)])
3641
+ ])])], 2)) : r("", !0)], 8, oo);
2964
3642
  }
2965
- var Zi = /*#__PURE__*/ N(Bi, [["render", Xi]]), Qi = {}, $i = {
3643
+ var _o = /*#__PURE__*/ A(ao, [["render", go]]), vo = {}, yo = {
2966
3644
  class: "bb:h-5 bb:w-5",
2967
3645
  xmlns: "http://www.w3.org/2000/svg",
2968
3646
  fill: "none",
@@ -2971,8 +3649,8 @@ var Zi = /*#__PURE__*/ N(Bi, [["render", Xi]]), Qi = {}, $i = {
2971
3649
  "stroke-width": "2",
2972
3650
  "aria-hidden": "true"
2973
3651
  };
2974
- function ea(e, t, n, r, o, s) {
2975
- return f(), i("svg", $i, [...t[0] ||= [a("path", {
3652
+ function bo(e, t, n, r, o, s) {
3653
+ return f(), i("svg", yo, [...t[0] ||= [a("path", {
2976
3654
  "stroke-linecap": "round",
2977
3655
  "stroke-linejoin": "round",
2978
3656
  d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
@@ -2982,12 +3660,12 @@ function ea(e, t, n, r, o, s) {
2982
3660
  d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
2983
3661
  }, null, -1)]]);
2984
3662
  }
2985
- var ta = /*#__PURE__*/ N(Qi, [["render", ea]]), Q = 0, $ = null, na = {
3663
+ var xo = /*#__PURE__*/ A(vo, [["render", bo]]), Q = 0, $ = null, So = {
2986
3664
  components: {
2987
- PopoverPanel: K,
2988
- Eye: ta
3665
+ PopoverPanel: B,
3666
+ Eye: xo
2989
3667
  },
2990
- mixins: [I],
3668
+ mixins: [N],
2991
3669
  emits: ["update:modelValue"],
2992
3670
  props: {
2993
3671
  text: {
@@ -3030,8 +3708,8 @@ var ta = /*#__PURE__*/ N(Qi, [["render", ea]]), Q = 0, $ = null, na = {
3030
3708
  this.holdsPageSelectionLock && (this.holdsPageSelectionLock = !1, --Q, Q === 0 && (Object.assign(document.documentElement.style, $), $ = null));
3031
3709
  }
3032
3710
  }
3033
- }, ra = ["id", "popovertarget"], ia = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
3034
- function aa(e, t, r, i, c, l) {
3711
+ }, Co = ["id", "popovertarget"], wo = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
3712
+ function To(e, t, r, i, c, l) {
3035
3713
  let u = h("eye"), d = h("popover-panel");
3036
3714
  return f(), n(d, {
3037
3715
  class: "bb-dashboard-ui bb:inline-flex",
@@ -3051,7 +3729,7 @@ function aa(e, t, r, i, c, l) {
3051
3729
  id: t.id,
3052
3730
  popovertarget: t.popovertarget,
3053
3731
  class: "bb:relative bb:inline-flex bb:items-center bb:justify-center bb:self-center bb:text-gray-400 bb:hover:text-gray-600 bb:rounded-md bb:focus-visible:focus-ring"
3054
- }, [a("span", ia, _(e.texts.showText), 1), s(u, { class: "bb:pointer-events-none bb:cursor-default" })], 8, ra)]),
3732
+ }, [a("span", wo, _(e.texts.showText), 1), s(u, { class: "bb:pointer-events-none bb:cursor-default" })], 8, Co)]),
3055
3733
  default: b(() => [o(_(l.normalizedText), 1)]),
3056
3734
  _: 1
3057
3735
  }, 8, [
@@ -3061,6 +3739,6 @@ function aa(e, t, r, i, c, l) {
3061
3739
  "onToggle"
3062
3740
  ]);
3063
3741
  }
3064
- var oa = /*#__PURE__*/ N(na, [["render", aa]]);
3742
+ var Eo = /*#__PURE__*/ A(So, [["render", To]]);
3065
3743
  //#endregion
3066
- export { Kn as ActionPill, vr as ConfirmationModal, yi as DataTable, P as Dot, Ir as DropdownButtonWithAction, xn as ErrorMessages, On as FormInput, Vr as HamburgerMenu, mn as InfoPill, Ci as NavigationMenuElement, Zi as NotificationMessage, Mi as PageCard, Oi as PageTabs, Xe as RussianMobileFilter, rt as Search, Ft as SelectDateInterval, rn as SelectMultiple, un as SelectSingle, oa as TextPopover, _e as dashboardUi, xe as downloadFile };
3744
+ export { fi as ActionPill, Ri as ConfirmationModal, Ra as DataTable, j as Dot, ta as DropdownButtonWithAction, Vr as ErrorMessages, Jr as FormInput, oa as HamburgerMenu, Pr as InfoPill, Ha as NavigationMenuElement, _o as NotificationMessage, Za as PageCard, qa as PageTabs, $e as RussianMobileFilter, ot as Search, Bt as SelectDateFilter, qt as SelectDateForm, nn as SelectDateIntervalFilter, fn as SelectDateIntervalForm, Ln as SelectMultipleFilter, Wn as SelectMultipleForm, rr as SelectMultipleList, Ar as SelectSingleCards, pr as SelectSingleFilter, br as SelectSingleForm, Eo as TextPopover, xe as dashboardUi, Te as downloadFile };