@boobooking/dashboard-ui-components 0.17.1 → 0.19.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
@@ -1,11 +1,11 @@
1
- import { Fragment as e, Transition as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, effectScope as c, mergeProps as l, normalizeClass as u, openBlock as d, renderList as f, renderSlot as p, resolveComponent as m, shallowReactive as h, toDisplayString as g, useId as _, vModelText as v, vShow as y, watch as ee, withCtx as b, withDirectives as x, withKeys as te, withModifiers as S } from "vue";
2
- import ne from "imask";
1
+ import { Fragment as e, Transition as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, effectScope as c, mergeProps as l, normalizeClass as u, normalizeStyle as d, openBlock as f, renderList as p, renderSlot as m, resolveComponent as h, shallowReactive as g, toDisplayString as _, useId as v, vModelDynamic as ee, vModelText as te, vShow as y, watch as ne, withCtx as b, withDirectives as x, withKeys as S, withModifiers as C } from "vue";
2
+ import re from "imask";
3
3
  //#region src/i18n.js
4
- var re = ["ru", "en"];
5
- function C(e) {
6
- return re.includes(e);
4
+ var ie = ["ru", "en"];
5
+ function w(e) {
6
+ return ie.includes(e);
7
7
  }
8
- var ie = {
8
+ var ae = {
9
9
  ru: {
10
10
  cancel: "Отмена",
11
11
  openMenu: "Открыть меню",
@@ -55,7 +55,10 @@ var ie = {
55
55
  clear: "Очистить",
56
56
  showText: "Показать текст",
57
57
  fullText: "Полный текст",
58
- tabs: "Закладки"
58
+ tabs: "Закладки",
59
+ selected: "Выбрано",
60
+ search: "Поиск",
61
+ nothingFound: "Ничего не найдено"
59
62
  },
60
63
  en: {
61
64
  cancel: "Cancel",
@@ -106,20 +109,23 @@ var ie = {
106
109
  clear: "Clear",
107
110
  showText: "Show text",
108
111
  fullText: "Full text",
109
- tabs: "Tabs"
112
+ tabs: "Tabs",
113
+ selected: "Selected",
114
+ search: "Search",
115
+ nothingFound: "Nothing found"
110
116
  }
111
117
  };
112
118
  //#endregion
113
119
  //#region src/windows.js
114
- function w(e, t) {
120
+ function T(e, t) {
115
121
  if (e == null || e === "") return null;
116
122
  let n = new URL(String(e), t);
117
123
  return n.pathname + n.search;
118
124
  }
119
- function ae(e) {
125
+ function oe(e) {
120
126
  return e === null ? null : e.split("?")[0];
121
127
  }
122
- function oe() {
128
+ function se() {
123
129
  return {
124
130
  windows: [],
125
131
  cards: /* @__PURE__ */ new Map(),
@@ -133,36 +139,36 @@ function oe() {
133
139
  nextId: 1
134
140
  };
135
141
  }
136
- function T(e, t) {
142
+ function E(e, t) {
137
143
  return e.windows.includes(t);
138
144
  }
139
- function se(e) {
145
+ function ce(e) {
140
146
  return e.returnAddress ?? e.fallbackAddress;
141
147
  }
142
- function ce(e) {
148
+ function le(e) {
143
149
  let t = null;
144
150
  for (let n of e.cards.values()) t = n.window;
145
151
  return t;
146
152
  }
147
- function le(e, t) {
153
+ function D(e, t) {
148
154
  let n = t;
149
- for (; n !== null && !T(e, n);) n = n.parent;
155
+ for (; n !== null && !E(e, n);) n = n.parent;
150
156
  return n;
151
157
  }
152
158
  function ue(e, t) {
153
159
  return e.transition = {
154
160
  number: e.transition.number + 1,
155
161
  fromAddress: e.shown,
156
- fromWindow: ce(e),
162
+ fromWindow: le(e),
157
163
  assigned: /* @__PURE__ */ new Map()
158
164
  }, e.shown = t, e.transition.number;
159
165
  }
160
166
  function de(e, t, n) {
161
167
  let r = e.transition, i = r.assigned.get(t);
162
- if (i !== void 0 && T(e, i)) return i;
168
+ if (i !== void 0 && E(e, i)) return i;
163
169
  let a = r.fromWindow, o = r.fromAddress;
164
- a !== null && !T(e, a) && (a = le(e, a), o = null), a !== null && se(a) === e.shown && (e.windows.splice(e.windows.indexOf(a)), a = a.parent === null ? null : le(e, a.parent), o = null);
165
- 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;
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;
166
172
  a === null ? e.windows = [] : e.windows.splice(e.windows.indexOf(a) + 1);
167
173
  let s = {
168
174
  id: e.nextId,
@@ -173,7 +179,7 @@ function de(e, t, n) {
173
179
  };
174
180
  return e.nextId += 1, e.windows.push(s), s;
175
181
  }
176
- function E(e, t, n, r) {
182
+ function O(e, t, n, r) {
177
183
  let i = de(e, n, r);
178
184
  return i.fallbackAddress = r, e.transition.assigned.set(n, i), e.cards.delete(t), e.cards.set(t, {
179
185
  key: n,
@@ -184,7 +190,7 @@ function E(e, t, n, r) {
184
190
  function fe(e, t, n, r) {
185
191
  let i = e.cards.get(t);
186
192
  return i === void 0 ? {
187
- window: E(e, t, n, r),
193
+ window: O(e, t, n, r),
188
194
  rejected: !1,
189
195
  key: n
190
196
  } : i.key === n ? (i.processed = e.transition.number, {
@@ -196,7 +202,7 @@ function fe(e, t, n, r) {
196
202
  rejected: !0,
197
203
  key: i.key
198
204
  } : (e.cards.delete(t), {
199
- window: E(e, t, n, r),
205
+ window: O(e, t, n, r),
200
206
  rejected: !1,
201
207
  key: n
202
208
  });
@@ -210,22 +216,22 @@ function me(e, t, n) {
210
216
  }
211
217
  //#endregion
212
218
  //#region src/plugin.js
213
- var D = Symbol("dashboardUi"), he = Object.freeze({
219
+ var k = Symbol("dashboardUi"), he = Object.freeze({
214
220
  lang: "ru",
215
221
  navigate: null,
216
222
  windows: null
217
- }), ge = { uiSettings: {
218
- from: D,
223
+ }), A = { uiSettings: {
224
+ from: k,
219
225
  default: () => he
220
226
  } };
221
- function _e(e, t) {
222
- let n = oe(), r = h({
227
+ function ge(e, t) {
228
+ let n = se(), r = g({
223
229
  number: 0,
224
230
  address: null
225
231
  }), i = c(!0);
226
232
  return i.run(() => {
227
- ee(t, (e) => {
228
- let t = w(e, window.location.origin);
233
+ ne(t, (e) => {
234
+ let t = T(e, window.location.origin);
229
235
  t !== null && t !== r.address && (r.number = ue(n, t), r.address = t);
230
236
  }, {
231
237
  flush: "sync",
@@ -236,21 +242,21 @@ function _e(e, t) {
236
242
  page: r
237
243
  };
238
244
  }
239
- var ve = { install(e, t) {
245
+ var _e = { install(e, t) {
240
246
  let n = t ?? {}, r = Object.hasOwn(n, "lang") ? n.lang : "ru";
241
- if (!C(r)) throw Error(`dashboardUi: неизвестный lang «${r}», допустимы: ${re.join(", ")}`);
247
+ if (!w(r)) throw Error(`dashboardUi: неизвестный lang «${r}», допустимы: ${ie.join(", ")}`);
242
248
  let i = Object.hasOwn(n, "navigate"), a = i ? n.navigate : null;
243
249
  if (i && typeof a != "function") throw Error("dashboardUi: navigate должен быть функцией (href) => …");
244
250
  let o = Object.hasOwn(n, "currentUrl"), s = o ? n.currentUrl : null;
245
251
  if (o && typeof s != "function") throw Error("dashboardUi: currentUrl должен быть функцией () => адрес страницы");
246
- let c = s !== null && typeof window < "u" ? _e(e, s) : null;
247
- e.provide(D, Object.freeze({
252
+ let c = s !== null && typeof window < "u" ? ge(e, s) : null;
253
+ e.provide(k, Object.freeze({
248
254
  lang: r,
249
255
  navigate: a,
250
256
  windows: c
251
257
  }));
252
- } }, ye = 4e4;
253
- function be(e) {
258
+ } }, ve = 4e4;
259
+ function ye(e) {
254
260
  if (typeof e != "string") return null;
255
261
  let t = /filename\*\s*=\s*UTF-8''([^;]+)/i.exec(e);
256
262
  if (t !== null) try {
@@ -261,7 +267,7 @@ function be(e) {
261
267
  let r = /filename\s*=\s*([^;"\s]+)/i.exec(e);
262
268
  return r === null ? null : r[1];
263
269
  }
264
- function xe(e) {
270
+ function be(e) {
265
271
  try {
266
272
  let t = new URL(e, window.location.href).pathname.split("/").filter((e) => e !== "");
267
273
  return t.length === 0 ? null : decodeURIComponent(t[t.length - 1]);
@@ -269,7 +275,7 @@ function xe(e) {
269
275
  return null;
270
276
  }
271
277
  }
272
- async function Se(e) {
278
+ async function xe(e) {
273
279
  let t = await fetch(e, { credentials: "same-origin" });
274
280
  if (t.redirected) throw Object.assign(/* @__PURE__ */ Error(`downloadFile: сервер перенаправил запрос ${e}`), {
275
281
  redirectUrl: t.url,
@@ -279,12 +285,12 @@ async function Se(e) {
279
285
  redirectUrl: null,
280
286
  status: t.status
281
287
  });
282
- let n = be(t.headers.get("Content-Disposition")) ?? xe(e) ?? "download", r = URL.createObjectURL(await t.blob()), i = document.createElement("a");
283
- i.href = r, i.download = n, i.style.display = "none", document.body.appendChild(i), i.click(), i.remove(), setTimeout(() => URL.revokeObjectURL(r), ye);
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);
284
290
  }
285
291
  //#endregion
286
292
  //#region src/colors.js
287
- var Ce = {
293
+ var Se = {
288
294
  gray: {
289
295
  pill: "bb:bg-gray-100 bb:text-gray-800",
290
296
  pillHover: "bb:hover:text-gray-600",
@@ -327,19 +333,19 @@ var Ce = {
327
333
  menuItem: "bb:text-purple-800 bb:focus:bg-purple-100",
328
334
  mark: "bb:text-purple-500"
329
335
  }
330
- }, we = Object.keys(Ce);
331
- function O(e) {
332
- return we.includes(e);
336
+ }, Ce = Object.keys(Se);
337
+ function j(e) {
338
+ return Ce.includes(e);
333
339
  }
334
- function Te(e, t) {
335
- return O(e) ? Ce[e][t] ?? "" : "";
340
+ function we(e, t) {
341
+ return j(e) ? Se[e][t] ?? "" : "";
336
342
  }
337
- var k = { methods: { colorClass: Te } }, A = (e, t) => {
343
+ var M = { methods: { colorClass: we } }, N = (e, t) => {
338
344
  let n = e.__vccOpts || e;
339
345
  for (let [e, r] of t) n[e] = r;
340
346
  return n;
341
- }, Ee = {
342
- mixins: [k],
347
+ }, Te = {
348
+ mixins: [M],
343
349
  props: {
344
350
  withPulse: {
345
351
  type: Boolean,
@@ -348,12 +354,12 @@ var k = { methods: { colorClass: Te } }, A = (e, t) => {
348
354
  color: {
349
355
  type: String,
350
356
  required: !0,
351
- validator: O
357
+ validator: j
352
358
  }
353
359
  }
354
360
  };
355
- function De(e, t, n, r, o, s) {
356
- return d(), 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", {
361
+ function Ee(e, t, n, r, o, s) {
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", {
357
363
  class: "bb:fill-current bb:w-2 bb:h-2",
358
364
  viewBox: "0 0 120 120"
359
365
  }, [a("circle", {
@@ -362,8 +368,8 @@ function De(e, t, n, r, o, s) {
362
368
  r: "45"
363
369
  })], -1)]], 2);
364
370
  }
365
- var Oe = /*#__PURE__*/ A(Ee, [["render", De]]), ke = {
366
- components: { Dot: Oe },
371
+ var P = /*#__PURE__*/ N(Te, [["render", Ee]]), De = {
372
+ components: { Dot: P },
367
373
  props: {
368
374
  text: {
369
375
  type: String,
@@ -378,14 +384,14 @@ var Oe = /*#__PURE__*/ A(Ee, [["render", De]]), ke = {
378
384
  default: !1
379
385
  }
380
386
  }
381
- }, Ae = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, je = ["textContent"];
382
- function Me(e, t, n, r, o, c) {
383
- let l = m("dot");
384
- return d(), i("div", Ae, [
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) {
389
+ let l = h("dot");
390
+ return f(), i("div", Oe, [
385
391
  a("div", {
386
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",
387
- textContent: g(n.text)
388
- }, null, 8, je),
393
+ textContent: _(n.text)
394
+ }, null, 8, ke),
389
395
  x(s(l, {
390
396
  color: "red",
391
397
  "with-pulse": !0,
@@ -397,26 +403,26 @@ function Me(e, t, n, r, o, c) {
397
403
  }, null, 512), [[y, n.isRequired]])
398
404
  ]);
399
405
  }
400
- var j = /*#__PURE__*/ A(ke, [["render", Me]]), M = {
401
- inject: ge,
406
+ var F = /*#__PURE__*/ N(De, [["render", Ae]]), I = {
407
+ inject: A,
402
408
  props: { lang: {
403
409
  type: String,
404
410
  default: null,
405
- validator: (e) => e === null || C(e)
411
+ validator: (e) => e === null || w(e)
406
412
  } },
407
413
  computed: {
408
414
  resolvedLang() {
409
- return C(this.lang) ? this.lang : this.uiSettings.lang;
415
+ return w(this.lang) ? this.lang : this.uiSettings.lang;
410
416
  },
411
417
  texts() {
412
- return ie[this.resolvedLang];
418
+ return ae[this.resolvedLang];
413
419
  }
414
420
  }
415
- }, Ne = [
421
+ }, je = [
416
422
  { transform: "scale(1)" },
417
423
  { transform: "scale(0.8)" },
418
424
  { transform: "scale(1)" }
419
- ], Pe = 150, Fe = {
425
+ ], Me = 150, Ne = {
420
426
  created() {
421
427
  this.isPressing = !1, this.isUnmounted = !1;
422
428
  },
@@ -424,40 +430,39 @@ var j = /*#__PURE__*/ A(ke, [["render", Me]]), M = {
424
430
  this.isUnmounted = !0;
425
431
  },
426
432
  methods: { press() {
427
- this.isPressing || (this.isPressing = !0, Ie(this.$el).then(() => {
433
+ this.isPressing || (this.isPressing = !0, Pe(this.$el).then(() => {
428
434
  this.isPressing = !1, this.isUnmounted || this.$emit("clicked");
429
435
  }));
430
436
  } }
431
437
  };
432
- function Ie(e) {
433
- if (typeof e.animate != "function" || Le()) return Promise.resolve();
438
+ function Pe(e) {
439
+ if (typeof e.animate != "function" || Fe()) return Promise.resolve();
434
440
  let t = () => {};
435
- return e.animate(Ne, {
436
- duration: Pe,
441
+ return e.animate(je, {
442
+ duration: Me,
437
443
  easing: "ease-out"
438
444
  }).finished.then(t, t);
439
445
  }
440
- function Le() {
446
+ function Fe() {
441
447
  return typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
442
448
  }
443
449
  //#endregion
444
450
  //#region src/components/CrossButton.vue
445
- var Re = {
446
- mixins: [M, Fe],
451
+ var Ie = {
452
+ mixins: [I, Ne],
447
453
  props: { size: {
448
454
  type: String,
449
455
  required: !0,
450
456
  validator: (e) => ["small", "large"].includes(e)
451
457
  } },
452
458
  emits: ["clicked"]
453
- }, ze = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
454
- function Be(e, t, n, r, s, c) {
455
- return d(), i("button", {
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) {
461
+ return f(), i("button", {
456
462
  type: "button",
457
- tabindex: "-1",
458
- class: "bb-dashboard-ui 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",
459
- onClick: t[0] ||= S((...t) => e.press && e.press(...t), ["prevent"])
460
- }, [a("span", ze, [p(e.$slots, "default", {}, () => [o(g(e.texts.clear), 1)])]), (d(), i("svg", {
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
+ 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", {
461
466
  class: u(["bb:stroke-current bb:pointer-events-none bb:cursor-default", {
462
467
  "bb:w-6 bb:h-6": n.size === "small",
463
468
  "bb:w-8 bb:h-8": n.size === "large"
@@ -470,26 +475,26 @@ function Be(e, t, n, r, s, c) {
470
475
  "stroke-linejoin": "round",
471
476
  "stroke-width": "2",
472
477
  d: "M6 18L18 6M6 6l12 12"
473
- }, null, -1)]], 2))]);
478
+ }, null, -1)]], 2))])]);
474
479
  }
475
- var N = /*#__PURE__*/ A(Re, [["render", Be]]), Ve = 10;
476
- function He(e) {
480
+ var L = /*#__PURE__*/ N(Ie, [["render", ze]]), Be = 10;
481
+ function Ve(e) {
477
482
  let t = e.replace(/\D/g, "");
478
- return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, Ve);
483
+ return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, Be);
479
484
  }
480
- function P(e) {
485
+ function R(e) {
481
486
  return e === "" ? "" : `7${e}`;
482
487
  }
483
- function F(e) {
488
+ function z(e) {
484
489
  let t = e ?? "", n = t.startsWith("+") ? t.slice(1) : t;
485
490
  return n.startsWith("7") ? n.slice(1) : n;
486
491
  }
487
492
  //#endregion
488
493
  //#region src/components/RussianMobileFilter.vue
489
- var Ue = 400, We = 3, Ge = {
494
+ var He = 400, Ue = 3, We = {
490
495
  components: {
491
- ElementHeader: j,
492
- CrossButton: N
496
+ ElementHeader: F,
497
+ CrossButton: L
493
498
  },
494
499
  emits: ["update:modelValue", "changed"],
495
500
  props: {
@@ -511,32 +516,32 @@ var Ue = 400, We = 3, Ge = {
511
516
  }
512
517
  },
513
518
  data() {
514
- return { digits: F(this.modelValue) };
519
+ return { digits: z(this.modelValue) };
515
520
  },
516
521
  created() {
517
- this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = F(this.modelValue), this.isUnmounted = !1;
522
+ this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = z(this.modelValue), this.isUnmounted = !1;
518
523
  },
519
524
  mounted() {
520
- this.mask = ne(this.$refs.input, {
525
+ this.mask = re(this.$refs.input, {
521
526
  mask: "+7 (000) 000 00 00",
522
527
  lazy: !0,
523
528
  prepare: (e, t) => t.unmaskedValue === "" && (e === "7" || e === "8") ? "" : e
524
529
  }), this.mask.on("accept", () => {
525
- this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", P(this.digits)), this.scheduleCommit());
530
+ this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", R(this.digits)), this.scheduleCommit());
526
531
  }), this.syncFromModelValue(this.modelValue);
527
532
  },
528
533
  beforeUnmount() {
529
534
  this.isUnmounted = !0, clearTimeout(this.debounceTimer), this.mask?.destroy();
530
535
  },
531
536
  watch: { modelValue(e) {
532
- e !== P(this.digits) && this.syncFromModelValue(e);
537
+ e !== R(this.digits) && this.syncFromModelValue(e);
533
538
  } },
534
539
  methods: {
535
540
  syncFromModelValue(e) {
536
- this.writeToMask(F(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
541
+ this.writeToMask(z(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
537
542
  },
538
543
  applyUserDigits(e) {
539
- this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", P(this.digits));
544
+ this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", R(this.digits));
540
545
  },
541
546
  writeToMask(e) {
542
547
  if (this.isWritingProgrammatically = !0, e === "") this.mask.value = "";
@@ -559,26 +564,30 @@ var Ue = 400, We = 3, Ge = {
559
564
  this.isUnmounted || (this.setLazy(!0), this.digits === "" && this.writeToMask(""), this.commit());
560
565
  },
561
566
  onPaste(e) {
562
- this.applyUserDigits(He(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
567
+ this.applyUserDigits(Ve(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
568
+ },
569
+ moveFocusFromEraser() {
570
+ let e = this.$refs.eraser.$el;
571
+ document.activeElement === e && e.matches(":focus-visible") && this.$refs.input.focus({ preventScroll: !0 });
563
572
  },
564
573
  clear() {
565
- this.applyUserDigits(""), this.commit();
574
+ this.moveFocusFromEraser(), this.applyUserDigits(""), this.commit();
566
575
  },
567
576
  scheduleCommit() {
568
577
  if (clearTimeout(this.debounceTimer), this.digits.length === 0) {
569
578
  this.commit();
570
579
  return;
571
580
  }
572
- this.digits.length < We || (this.debounceTimer = setTimeout(() => this.commit(), Ue));
581
+ this.digits.length < Ue || (this.debounceTimer = setTimeout(() => this.commit(), He));
573
582
  },
574
583
  commit() {
575
584
  clearTimeout(this.debounceTimer), this.digits !== this.lastCommitted && (this.lastCommitted = this.digits, this.$emit("changed"));
576
585
  }
577
586
  }
578
- }, Ke = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, qe = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Je = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Ye = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
579
- function Xe(e, t, n, r, o, c) {
580
- let l = m("element-header"), u = m("cross-button");
581
- return d(), i("div", Ke, [a("div", qe, [s(l, {
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) {
589
+ let l = h("element-header"), u = h("cross-button");
590
+ return f(), i("div", Ge, [a("div", Ke, [s(l, {
582
591
  text: n.header,
583
592
  "is-required": n.isRequired,
584
593
  "is-loading": n.isLoading
@@ -586,27 +595,28 @@ function Xe(e, t, n, r, o, c) {
586
595
  "text",
587
596
  "is-required",
588
597
  "is-loading"
589
- ]), a("div", Je, [a("label", Ye, [a("input", {
598
+ ]), a("div", qe, [a("label", Je, [a("input", {
590
599
  ref: "input",
591
600
  type: "tel",
592
601
  inputmode: "tel",
593
602
  autocomplete: "off",
594
- class: "bb:flex bb:w-phone bb:h-full bb:px-3 bb:py-2 bb:cursor-pointer bb:truncate bb:focus:outline-hidden bb:border-none",
603
+ class: "bb:flex bb:w-phone bb:h-full bb:px-3 bb:py-2 bb:cursor-pointer bb:truncate bb:focus:focus-ring bb:border-none",
595
604
  onFocus: t[0] ||= (...e) => c.onFocus && c.onFocus(...e),
596
605
  onBlur: t[1] ||= (...e) => c.onBlur && c.onBlur(...e),
597
- onKeydown: t[2] ||= te((...e) => c.commit && c.commit(...e), ["enter"]),
598
- onPaste: t[3] ||= S((...e) => c.onPaste && c.onPaste(...e), ["prevent"])
606
+ onKeydown: t[2] ||= S((...e) => c.commit && c.commit(...e), ["enter"]),
607
+ onPaste: t[3] ||= C((...e) => c.onPaste && c.onPaste(...e), ["prevent"])
599
608
  }, null, 544)]), x(s(u, {
609
+ ref: "eraser",
600
610
  size: "small",
601
- onMousedown: t[4] ||= S(() => {}, ["prevent"]),
611
+ onMousedown: t[4] ||= C(() => {}, ["prevent"]),
602
612
  onClicked: c.clear,
603
613
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
604
614
  }, null, 8, ["onClicked"]), [[y, o.digits.length > 0]])])])]);
605
615
  }
606
- var Ze = /*#__PURE__*/ A(Ge, [["render", Xe]]), Qe = {
616
+ var Xe = /*#__PURE__*/ N(We, [["render", Ye]]), Ze = {
607
617
  components: {
608
- ElementHeader: j,
609
- CrossButton: N
618
+ ElementHeader: F,
619
+ CrossButton: L
610
620
  },
611
621
  emits: ["update:modelValue", "changed"],
612
622
  props: {
@@ -637,17 +647,21 @@ var Ze = /*#__PURE__*/ A(Ge, [["render", Xe]]), Qe = {
637
647
  this.search = e ?? "";
638
648
  } },
639
649
  methods: {
650
+ moveFocusFromEraser() {
651
+ let e = this.$refs.eraser.$el;
652
+ document.activeElement === e && e.matches(":focus-visible") && this.$refs.input.focus({ preventScroll: !0 });
653
+ },
640
654
  clearInput() {
641
- this.search = "", this.startSearch();
655
+ this.moveFocusFromEraser(), this.search = "", this.startSearch();
642
656
  },
643
657
  startSearch() {
644
658
  this.$emit("update:modelValue", this.search), this.$emit("changed");
645
659
  }
646
660
  }
647
- }, $e = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, et = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, tt = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, nt = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
648
- function rt(e, t, n, r, o, c) {
649
- let l = m("element-header"), u = m("cross-button");
650
- return d(), i("div", $e, [a("div", et, [s(l, {
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) {
663
+ let l = h("element-header"), u = h("cross-button");
664
+ return f(), i("div", Qe, [a("div", $e, [s(l, {
651
665
  text: n.header,
652
666
  "is-required": n.isRequired,
653
667
  "is-loading": n.isLoading
@@ -655,52 +669,54 @@ function rt(e, t, n, r, o, c) {
655
669
  "text",
656
670
  "is-required",
657
671
  "is-loading"
658
- ]), a("div", tt, [a("label", nt, [x(a("input", {
659
- class: "bb:flex bb:w-full bb:h-full bb:px-3 bb:py-2 bb:cursor-pointer bb:truncate bb:focus:outline-hidden bb:border-none",
672
+ ]), a("div", et, [a("label", tt, [x(a("input", {
673
+ ref: "input",
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",
660
675
  "onUpdate:modelValue": t[0] ||= (e) => o.search = e,
661
676
  onInput: t[1] ||= (...e) => c.startSearch && c.startSearch(...e)
662
677
  }, null, 544), [[
663
- v,
678
+ te,
664
679
  o.search,
665
680
  void 0,
666
681
  { trim: !0 }
667
682
  ]])]), x(s(u, {
683
+ ref: "eraser",
668
684
  size: "small",
669
685
  onClicked: c.clearInput,
670
686
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
671
687
  }, null, 8, ["onClicked"]), [[y, c.inputNeedsEraser]])])])]);
672
688
  }
673
- var it = /*#__PURE__*/ A(Qe, [["render", rt]]), I = 4, L = 8;
674
- function R(e) {
689
+ var rt = /*#__PURE__*/ N(Ze, [["render", nt]]), B = 4, V = 8;
690
+ function H(e) {
675
691
  return typeof e?.showPopover == "function";
676
692
  }
677
- function z(e) {
678
- return R(e) && e.matches(":popover-open");
693
+ function U(e) {
694
+ return H(e) && e.matches(":popover-open");
679
695
  }
680
- function B(e, t, { maxWidth: n = null, align: r = "end", fitsBelow: i = !0, fitsRight: a = !0 } = {}) {
681
- let o = e.getBoundingClientRect(), s = document.documentElement.clientWidth, c = document.documentElement.clientHeight, l = Math.max(L, o.left), u = Math.max(L, s - o.right), d = Math.max(0, s - l - L), f = Math.max(0, s - u - L), p = r === "start" && (a || d >= f), m = Math.max(0, c - o.bottom - I - L), h = Math.max(0, o.top - I - L), g = i || m >= h, _ = "";
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, _ = "";
682
698
  if (r === "start") {
683
699
  let e = p ? d : f;
684
700
  _ = `${n === null ? e : Math.min(n, e)}px`;
685
701
  } else n !== null && (_ = `${Math.min(n, f)}px`);
686
702
  Object.assign(t.style, {
687
- top: g ? `${o.bottom + I}px` : "auto",
688
- bottom: g ? "auto" : `${c - o.top + I}px`,
703
+ top: g ? `${o.bottom + B}px` : "auto",
704
+ bottom: g ? "auto" : `${c - o.top + B}px`,
689
705
  right: p ? "auto" : `${u}px`,
690
706
  left: p ? `${l}px` : "auto",
691
707
  maxHeight: `${g ? m : h}px`,
692
708
  maxWidth: _
693
709
  });
694
710
  }
695
- function at(e, t, n = {}) {
711
+ function it(e, t, n = {}) {
696
712
  let r = t.scrollHeight <= t.clientHeight + 1, i = t.scrollWidth <= t.clientWidth + 1;
697
- r && i || B(e, t, {
713
+ r && i || W(e, t, {
698
714
  ...n,
699
715
  fitsBelow: r,
700
716
  fitsRight: i
701
717
  });
702
718
  }
703
- function ot(e, t) {
719
+ function at(e, t) {
704
720
  let n = (n) => {
705
721
  e.contains(n.target) || t();
706
722
  };
@@ -713,21 +729,34 @@ function ot(e, t) {
713
729
  }
714
730
  //#endregion
715
731
  //#region src/menuFocus.js
716
- var V = "a[href], button";
717
- function st(e, t = () => null) {
718
- let n = (n) => {
719
- if (n.key !== "ArrowDown" && n.key !== "ArrowUp") return;
720
- let r = [...e.querySelectorAll(V)];
721
- if (r.length === 0) return;
722
- n.preventDefault();
723
- let i = n.key === "ArrowDown" ? 1 : -1, a = r.indexOf(document.activeElement);
724
- a === -1 && (a = r.indexOf(t())), r[a === -1 ? i === 1 ? 0 : r.length - 1 : (a + i + r.length) % r.length].focus();
725
- }, r = (e) => {
726
- let t = e.target.closest(V);
727
- t !== null && t.focus({ preventScroll: !0 });
732
+ var G = "a[href], button";
733
+ function ot(e, t = () => null, n = null) {
734
+ let r = (r) => {
735
+ if (r.key !== "ArrowDown" && r.key !== "ArrowUp") return;
736
+ let i = n === null ? [...e.querySelectorAll(G)] : n();
737
+ if (i.length === 0) return;
738
+ r.preventDefault();
739
+ let a = r.key === "ArrowDown" ? 1 : -1, o = i.indexOf(document.activeElement);
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 });
728
744
  };
729
- return document.addEventListener("keydown", n, !0), e.addEventListener("mousemove", r), () => {
730
- document.removeEventListener("keydown", n, !0), e.removeEventListener("mousemove", r);
745
+ return document.addEventListener("keydown", r, !0), e.addEventListener("mousemove", i), () => {
746
+ document.removeEventListener("keydown", r, !0), e.removeEventListener("mousemove", i);
747
+ };
748
+ }
749
+ function st(e) {
750
+ let t = (t) => {
751
+ if (t.key !== "Tab" || t.ctrlKey || t.altKey || t.metaKey) return;
752
+ let n = e();
753
+ if (n.length === 0) return;
754
+ t.preventDefault();
755
+ let r = t.shiftKey ? -1 : 1, i = n.indexOf(document.activeElement);
756
+ n[i === -1 ? r === 1 ? 0 : n.length - 1 : (i + r + n.length) % n.length].focus();
757
+ };
758
+ return document.addEventListener("keydown", t, !0), () => {
759
+ document.removeEventListener("keydown", t, !0);
731
760
  };
732
761
  }
733
762
  //#endregion
@@ -760,6 +789,18 @@ var ct = {
760
789
  type: Function,
761
790
  default: () => null
762
791
  },
792
+ findStops: {
793
+ type: Function,
794
+ default: null
795
+ },
796
+ findTabStops: {
797
+ type: Function,
798
+ default: null
799
+ },
800
+ keepSize: {
801
+ type: Boolean,
802
+ default: !1
803
+ },
763
804
  closeOnClick: {
764
805
  type: Boolean,
765
806
  default: !1
@@ -787,8 +828,8 @@ var ct = {
787
828
  },
788
829
  setup() {
789
830
  return {
790
- buttonId: _(),
791
- panelId: _()
831
+ buttonId: v(),
832
+ panelId: v()
792
833
  };
793
834
  },
794
835
  data() {
@@ -810,7 +851,7 @@ var ct = {
810
851
  }
811
852
  },
812
853
  created() {
813
- this.stopClosing = null, this.stopArrows = null, this.focusWasInside = !1, this.panelShown = !1;
854
+ this.stopClosing = null, this.stopArrows = null, this.stopTab = null, this.focusWasInside = !1, this.panelShown = !1;
814
855
  },
815
856
  mounted() {
816
857
  this.applyPanelState();
@@ -821,11 +862,11 @@ var ct = {
821
862
  methods: {
822
863
  applyPanelState() {
823
864
  let e = this.$refs.panel;
824
- R(e) && e.isConnected && (this.panelIsOpen && !z(e) && e.showPopover(), !this.panelIsOpen && z(e) && e.hidePopover());
865
+ H(e) && e.isConnected && (this.panelIsOpen && !U(e) && e.showPopover(), !this.panelIsOpen && U(e) && e.hidePopover());
825
866
  },
826
867
  close() {
827
868
  let e = this.$refs.panel;
828
- z(e) && e.hidePopover();
869
+ U(e) && e.hidePopover();
829
870
  },
830
871
  reportPanelShown(e) {
831
872
  this.panelShown !== e && (this.panelShown = e, this.$emit("toggle", e));
@@ -839,9 +880,13 @@ var ct = {
839
880
  maxWidth: this.maxWidth,
840
881
  align: this.align
841
882
  };
842
- B(e, this.$refs.panel, t), requestAnimationFrame(() => {
883
+ this.$refs.panel.style.minWidth = "", this.$refs.panel.style.minHeight = "", this.$refs.panel.style.scrollbarGutter = "", W(e, this.$refs.panel, t), requestAnimationFrame(() => {
843
884
  let n = this.$refs.panel;
844
- z(n) && at(e, n, t);
885
+ if (U(n) && (it(e, n, t), this.keepSize)) {
886
+ n.scrollHeight > n.clientHeight + 1 && (n.style.scrollbarGutter = "stable");
887
+ let e = n.getBoundingClientRect();
888
+ n.style.minWidth = `${e.width}px`, n.style.top === "auto" && (n.style.minHeight = `${e.height}px`);
889
+ }
845
890
  });
846
891
  return;
847
892
  }
@@ -850,8 +895,8 @@ var ct = {
850
895
  },
851
896
  onToggle() {
852
897
  this.stopListening();
853
- let e = this.$refs.panel, t = z(e);
854
- t && (this.stopClosing = ot(e, this.close), this.arrows && (this.stopArrows = st(e, this.findSelected))), t || this.restoreFocus(e), this.reportPanelShown(t), t !== this.panelIsOpen && (this.panelIsOpen = t, this.$emit("update:modelValue", t));
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));
855
900
  },
856
901
  restoreFocus(e) {
857
902
  let t = this.focusWasInside;
@@ -860,7 +905,7 @@ var ct = {
860
905
  (n === null || n === document.body || e != null && e.contains(n)) && document.getElementById(this.buttonId)?.focus({ preventScroll: !0 });
861
906
  },
862
907
  stopListening() {
863
- this.stopClosing !== null && (this.stopClosing(), this.stopClosing = null), this.stopArrows !== null && (this.stopArrows(), this.stopArrows = null);
908
+ this.stopClosing !== null && (this.stopClosing(), this.stopClosing = null), this.stopArrows !== null && (this.stopArrows(), this.stopArrows = null), this.stopTab !== null && (this.stopTab(), this.stopTab = null);
864
909
  }
865
910
  }
866
911
  }, lt = {
@@ -875,7 +920,7 @@ var ct = {
875
920
  "tabindex"
876
921
  ];
877
922
  function dt(e, t, n, o, s, c) {
878
- return n.hasContent ? (d(), i("span", lt, [p(e.$slots, "trigger", {
923
+ return n.hasContent ? (f(), i("span", lt, [m(e.$slots, "trigger", {
879
924
  id: o.buttonId,
880
925
  popovertarget: o.panelId
881
926
  }), a("div", {
@@ -891,15 +936,15 @@ function dt(e, t, n, o, s, c) {
891
936
  onBeforetoggle: t[0] ||= (...e) => c.onBeforeToggle && c.onBeforeToggle(...e),
892
937
  onToggle: t[1] ||= (...e) => c.onToggle && c.onToggle(...e),
893
938
  onClick: t[2] ||= (...e) => c.onClick && c.onClick(...e)
894
- }, [p(e.$slots, "default")], 42, ut)])) : r("", !0);
939
+ }, [m(e.$slots, "default")], 42, ut)])) : r("", !0);
895
940
  }
896
- var H = /*#__PURE__*/ A(ct, [["render", dt]]);
941
+ var K = /*#__PURE__*/ N(ct, [["render", dt]]);
897
942
  //#endregion
898
943
  //#region src/date.js
899
- function U(e) {
944
+ function q(e) {
900
945
  return `${String(e.getDate()).padStart(2, "0")}.${String(e.getMonth() + 1).padStart(2, "0")}.${String(e.getFullYear()).padStart(4, "0")}`;
901
946
  }
902
- function W(e) {
947
+ function J(e) {
903
948
  let t = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(e);
904
949
  if (t === null) return null;
905
950
  let [, n, r, i] = t.map(Number), a = /* @__PURE__ */ new Date(0);
@@ -907,7 +952,7 @@ function W(e) {
907
952
  }
908
953
  //#endregion
909
954
  //#region src/dayFocus.js
910
- var G = ".pika-button.pika-day", ft = ".pika-button, .pika-prev, .pika-next";
955
+ var Y = ".pika-button.pika-day", ft = ".pika-button, .pika-prev, .pika-next";
911
956
  function pt(e, t = () => null) {
912
957
  let n = (n) => {
913
958
  if (n.detail !== 0) return;
@@ -935,8 +980,8 @@ function ht(e, t) {
935
980
  let r = mt[n.key];
936
981
  if (r === void 0 || gt(document.activeElement)) return;
937
982
  n.preventDefault();
938
- let i = document.activeElement?.closest(G) ?? null, a = i !== null && e.contains(i) ? vt(_t(i), r) : t.getDate() ?? yt();
939
- K(e, a) === null && t.gotoDate(a), K(e, a)?.focus();
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();
940
985
  };
941
986
  return document.addEventListener("keydown", n, !0), () => document.removeEventListener("keydown", n, !0);
942
987
  }
@@ -953,17 +998,17 @@ function yt() {
953
998
  let e = /* @__PURE__ */ new Date();
954
999
  return new Date(e.getFullYear(), e.getMonth(), e.getDate());
955
1000
  }
956
- function K(e, t) {
957
- return e.querySelector(`${G}[data-pika-year="${t.getFullYear()}"][data-pika-month="${t.getMonth()}"][data-pika-day="${t.getDate()}"]`);
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()}"]`);
958
1003
  }
959
1004
  //#endregion
960
1005
  //#region src/components/PickDay.vue
961
1006
  var bt = {
962
1007
  components: {
963
- PopoverPanel: H,
964
- CrossButton: N
1008
+ PopoverPanel: K,
1009
+ CrossButton: L
965
1010
  },
966
- mixins: [M],
1011
+ mixins: [I],
967
1012
  emits: ["update:modelValue", "changed"],
968
1013
  props: {
969
1014
  modelValue: {
@@ -990,8 +1035,8 @@ var bt = {
990
1035
  keyboardInput: !1,
991
1036
  bound: !1,
992
1037
  firstDay: 1,
993
- parse: (e) => W(e),
994
- toString: (e) => U(e),
1038
+ parse: (e) => J(e),
1039
+ toString: (e) => q(e),
995
1040
  i18n: {
996
1041
  previousMonth: this.texts.previousMonth,
997
1042
  nextMonth: this.texts.nextMonth,
@@ -1000,7 +1045,7 @@ var bt = {
1000
1045
  weekdaysShort: this.texts.weekdaysShort
1001
1046
  },
1002
1047
  onSelect: (e) => {
1003
- this.popupIsOpen = !1, this.$emit("update:modelValue", U(e)), this.$emit("changed");
1048
+ this.popupIsOpen = !1, this.$emit("update:modelValue", q(e)), this.$emit("changed");
1004
1049
  }
1005
1050
  }), this.stopPickOnClick = pt(this.$refs.container, () => this.$refs.trigger), this.syncDayFocus());
1006
1051
  },
@@ -1023,20 +1068,31 @@ var bt = {
1023
1068
  }
1024
1069
  },
1025
1070
  methods: {
1071
+ openOnKey(e) {
1072
+ e.ctrlKey || e.altKey || e.metaKey || e.isComposing || [
1073
+ "ArrowDown",
1074
+ "Enter",
1075
+ " "
1076
+ ].includes(e.key) && (e.preventDefault(), this.$refs.trigger.focus({ preventScroll: !0 }), this.popupIsOpen = !0);
1077
+ },
1026
1078
  syncDayFocus() {
1027
1079
  this.stopDayFocus?.(), this.stopDayFocus = null, this.popupIsOpen && this.picker !== null && (this.stopDayFocus = ht(this.$refs.container, this.picker));
1028
1080
  },
1029
1081
  syncPicker(e) {
1030
1082
  if (this.picker === null) return;
1031
- let t = W(e);
1083
+ let t = J(e);
1032
1084
  if (t === null) {
1033
1085
  this.picker.clear();
1034
1086
  return;
1035
1087
  }
1036
1088
  this.picker.setDate(t, !0);
1037
1089
  },
1090
+ moveFocusFromEraser() {
1091
+ let e = this.$refs.eraser.$el;
1092
+ document.activeElement === e && e.matches(":focus-visible") && this.$refs.trigger.focus({ preventScroll: !0 });
1093
+ },
1038
1094
  clearPicker() {
1039
- this.$emit("update:modelValue", ""), this.dayValue = "", this.picker?.clear(), this.$emit("changed");
1095
+ this.moveFocusFromEraser(), this.$emit("update:modelValue", ""), this.dayValue = "", this.picker?.clear(), this.$emit("changed");
1040
1096
  }
1041
1097
  },
1042
1098
  computed: {
@@ -1059,11 +1115,11 @@ var bt = {
1059
1115
  class: "bb:flex"
1060
1116
  };
1061
1117
  function Ot(e, t, o, c, l, u) {
1062
- let f = m("popover-panel"), p = m("cross-button");
1063
- return d(), i("div", xt, [a("div", St, [s(f, {
1118
+ let d = h("popover-panel"), p = h("cross-button");
1119
+ return f(), i("div", xt, [a("div", St, [s(d, {
1064
1120
  class: "bb:flex bb:w-full",
1065
1121
  modelValue: l.popupIsOpen,
1066
- "onUpdate:modelValue": t[0] ||= (e) => l.popupIsOpen = e,
1122
+ "onUpdate:modelValue": t[1] ||= (e) => l.popupIsOpen = e,
1067
1123
  align: "start",
1068
1124
  "return-focus": "",
1069
1125
  "panel-class": "bb:bg-white bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg"
@@ -1073,22 +1129,24 @@ function Ot(e, t, o, c, l, u) {
1073
1129
  type: "button",
1074
1130
  id: e.id,
1075
1131
  popovertarget: e.popovertarget,
1076
- class: "bb:absolute bb:inset-0 bb:cursor-pointer bb:focus:outline-hidden"
1132
+ class: "bb:absolute bb:inset-0 bb:cursor-pointer bb:focus-visible:focus-ring"
1077
1133
  }, [a("span", {
1078
1134
  class: "bb:sr-only bb:pointer-events-none bb:cursor-default",
1079
- textContent: g(u.triggerLabel)
1135
+ textContent: _(u.triggerLabel)
1080
1136
  }, null, 8, wt)], 8, Ct), a("label", Tt, [a("input", {
1081
1137
  disabled: l.popupIsOpen,
1082
1138
  ref: "field",
1139
+ onKeydown: t[0] ||= (...e) => u.openOnKey && u.openOnKey(...e),
1083
1140
  type: "text",
1084
1141
  value: l.dayValue,
1085
1142
  placeholder: o.placeholderText,
1086
- 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:outline-hidden"
1087
- }, null, 8, Et)])]),
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)])]),
1088
1145
  default: b(() => [a("div", Dt, null, 512)]),
1089
1146
  _: 1
1090
- }, 8, ["modelValue"]), u.needsEraser ? (d(), n(p, {
1147
+ }, 8, ["modelValue"]), u.needsEraser ? (f(), n(p, {
1091
1148
  key: 0,
1149
+ ref: "eraser",
1092
1150
  size: "small",
1093
1151
  onClicked: u.clearPicker,
1094
1152
  class: "bb:absolute bb:right-0 bb:top-0 bb:z-10 bb:h-full bb:pr-2",
@@ -1099,10 +1157,10 @@ function Ot(e, t, o, c, l, u) {
1099
1157
  //#region src/components/SelectDateInterval.vue
1100
1158
  var kt = {
1101
1159
  components: {
1102
- ElementHeader: j,
1103
- PickDay: /* @__PURE__ */ A(bt, [["render", Ot]])
1160
+ ElementHeader: F,
1161
+ PickDay: /* @__PURE__ */ N(bt, [["render", Ot]])
1104
1162
  },
1105
- mixins: [M],
1163
+ mixins: [I],
1106
1164
  emits: [
1107
1165
  "update:dateFrom",
1108
1166
  "update:dateTo",
@@ -1152,8 +1210,8 @@ var kt = {
1152
1210
  }
1153
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" };
1154
1212
  function Pt(e, t, n, r, o, c) {
1155
- let l = m("element-header"), u = m("pick-day");
1156
- return d(), i("div", At, [a("div", jt, [a("div", Mt, [s(l, {
1213
+ let l = h("element-header"), u = h("pick-day");
1214
+ return f(), i("div", At, [a("div", jt, [a("div", Mt, [s(l, {
1157
1215
  text: n.header,
1158
1216
  "is-required": n.isRequired,
1159
1217
  "is-loading": n.isLoading
@@ -1183,12 +1241,16 @@ function Pt(e, t, n, r, o, c) {
1183
1241
  "lang"
1184
1242
  ])])])])]);
1185
1243
  }
1186
- var Ft = /*#__PURE__*/ A(kt, [["render", Pt]]), It = {
1244
+ var Ft = /*#__PURE__*/ N(kt, [["render", Pt]]), It = {
1187
1245
  components: {
1188
- PopoverPanel: H,
1189
- CrossButton: N
1246
+ PopoverPanel: K,
1247
+ CrossButton: L
1190
1248
  },
1191
- emits: ["update:isOpen", "erased"],
1249
+ emits: [
1250
+ "update:isOpen",
1251
+ "erased",
1252
+ "toggle"
1253
+ ],
1192
1254
  props: {
1193
1255
  isOpen: {
1194
1256
  type: Boolean,
@@ -1205,43 +1267,76 @@ var Ft = /*#__PURE__*/ A(kt, [["render", Pt]]), It = {
1205
1267
  findSelected: {
1206
1268
  type: Function,
1207
1269
  default: () => null
1270
+ },
1271
+ findStops: {
1272
+ type: Function,
1273
+ default: null
1274
+ },
1275
+ findTabStops: {
1276
+ type: Function,
1277
+ default: null
1278
+ },
1279
+ keepSize: {
1280
+ type: Boolean,
1281
+ default: !1
1282
+ },
1283
+ lang: {
1284
+ type: String,
1285
+ default: null
1208
1286
  }
1209
1287
  },
1210
1288
  computed: { needsEraser() {
1211
1289
  return !this.isOpen && this.hasValue;
1290
+ } },
1291
+ methods: { erase() {
1292
+ let e = this.$refs.eraser.$el;
1293
+ document.activeElement === e && e.matches(":focus-visible") && this.$refs.trigger.focus({ preventScroll: !0 }), this.$emit("erased");
1212
1294
  } }
1213
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"];
1214
1296
  function Vt(e, t, o, c, l, u) {
1215
- let f = m("popover-panel"), h = m("cross-button");
1216
- return d(), i("div", Lt, [a("div", Rt, [s(f, {
1297
+ let d = h("popover-panel"), p = h("cross-button");
1298
+ return f(), i("div", Lt, [a("div", Rt, [s(d, {
1217
1299
  class: "bb:flex bb:w-full bb:h-full",
1218
1300
  "model-value": o.isOpen,
1219
1301
  align: "start",
1220
1302
  arrows: "",
1221
1303
  "find-selected": o.findSelected,
1304
+ "find-stops": o.findStops,
1305
+ "find-tab-stops": o.findTabStops,
1306
+ "keep-size": o.keepSize,
1222
1307
  "return-focus": "",
1223
1308
  "panel-class": "bb:bg-white bb:text-inherit bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg bb:overscroll-contain",
1224
- "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:isOpen", t)
1309
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:isOpen", t),
1310
+ onToggle: t[1] ||= (t) => e.$emit("toggle", t)
1225
1311
  }, {
1226
1312
  trigger: b((e) => [a("button", {
1313
+ ref: "trigger",
1227
1314
  type: "button",
1228
1315
  id: e.id,
1229
1316
  popovertarget: e.popovertarget,
1230
- class: "bb:flex bb:w-full bb:h-full bb:items-center bb:focus:outline-hidden bb:cursor-pointer"
1317
+ class: "bb:flex bb:w-full bb:h-full bb:items-center bb:focus-visible:focus-ring bb:cursor-pointer"
1231
1318
  }, [a("span", {
1232
1319
  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",
1233
- textContent: g(o.title)
1320
+ textContent: _(o.title)
1234
1321
  }, null, 8, Bt)], 8, zt)]),
1235
- default: b(() => [p(e.$slots, "default")]),
1322
+ default: b(() => [m(e.$slots, "default")]),
1236
1323
  _: 3
1237
- }, 8, ["model-value", "find-selected"]), u.needsEraser ? (d(), n(h, {
1324
+ }, 8, [
1325
+ "model-value",
1326
+ "find-selected",
1327
+ "find-stops",
1328
+ "find-tab-stops",
1329
+ "keep-size"
1330
+ ]), u.needsEraser ? (f(), n(p, {
1238
1331
  key: 0,
1332
+ ref: "eraser",
1239
1333
  size: "small",
1240
- onClicked: t[1] ||= (t) => e.$emit("erased"),
1334
+ lang: o.lang,
1335
+ onClicked: u.erase,
1241
1336
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
1242
- })) : r("", !0)])]);
1337
+ }, null, 8, ["lang", "onClicked"])) : r("", !0)])]);
1243
1338
  }
1244
- var Ht = /*#__PURE__*/ A(It, [["render", Vt]]), Ut = {
1339
+ var Ht = /*#__PURE__*/ N(It, [["render", Vt]]), Ut = {
1245
1340
  props: {
1246
1341
  isChecked: {
1247
1342
  type: Boolean,
@@ -1259,26 +1354,216 @@ var Ht = /*#__PURE__*/ A(It, [["render", Vt]]), Ut = {
1259
1354
  "aria-hidden": "true"
1260
1355
  }, Kt = ["textContent"];
1261
1356
  function qt(e, t, n, r, o, s) {
1262
- return d(), i("button", {
1357
+ return f(), i("button", {
1263
1358
  type: "button",
1264
- onClick: t[0] ||= S((...e) => s.toggle && s.toggle(...e), ["prevent"]),
1359
+ onClick: t[0] ||= C((...e) => s.toggle && s.toggle(...e), ["prevent"]),
1265
1360
  class: "bb:flex bb:w-full bb:bg-white bb:cursor-pointer bb:focus:outline-hidden bb:focus:bg-indigo-100"
1266
- }, [a("span", Wt, [x((d(), i("svg", Gt, [...t[1] ||= [a("path", {
1361
+ }, [a("span", Wt, [x((f(), i("svg", Gt, [...t[1] ||= [a("path", {
1267
1362
  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",
1268
1363
  "clip-rule": "evenodd",
1269
1364
  "fill-rule": "evenodd"
1270
1365
  }, null, -1)]], 512)), [[y, n.isChecked]])]), a("span", {
1271
1366
  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",
1272
- textContent: g(n.name)
1367
+ textContent: _(n.name)
1273
1368
  }, null, 8, Kt)]);
1274
1369
  }
1275
- //#endregion
1276
- //#region src/components/SelectSingle.vue
1277
- var Jt = {
1370
+ var Jt = /*#__PURE__*/ N(Ut, [["render", qt]]), Yt = {
1278
1371
  components: {
1279
- ElementHeader: j,
1372
+ ElementHeader: F,
1280
1373
  DropdownButton: Ht,
1281
- ListElement: /* @__PURE__ */ A(Ut, [["render", qt]])
1374
+ ListElement: Jt,
1375
+ CrossButton: L
1376
+ },
1377
+ mixins: [I],
1378
+ emits: ["update:modelValue", "changed"],
1379
+ props: {
1380
+ items: {
1381
+ type: Array,
1382
+ required: !0
1383
+ },
1384
+ modelValue: {
1385
+ type: Array,
1386
+ default: () => []
1387
+ },
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
+ withSearch: {
1401
+ type: Boolean,
1402
+ default: !1
1403
+ }
1404
+ },
1405
+ data() {
1406
+ return {
1407
+ isOpen: !1,
1408
+ query: ""
1409
+ };
1410
+ },
1411
+ watch: { hasItems(e) {
1412
+ e || (this.isOpen = !1, this.query = "");
1413
+ } },
1414
+ computed: {
1415
+ itemList() {
1416
+ return Array.isArray(this.items) ? this.items : [];
1417
+ },
1418
+ selectedIds() {
1419
+ return Array.isArray(this.modelValue) ? this.modelValue : [];
1420
+ },
1421
+ selectedItems() {
1422
+ return this.itemList.filter((e) => this.selectedIds.includes(e.id));
1423
+ },
1424
+ visibleItems() {
1425
+ let e = this.withSearch ? this.query.trim().toLowerCase() : "";
1426
+ return e === "" ? this.itemList : this.itemList.filter((t) => this.itemName(t).toLowerCase().includes(e));
1427
+ },
1428
+ hasItems() {
1429
+ return this.itemList.length > 0;
1430
+ },
1431
+ title() {
1432
+ return this.selectedItems.length === 0 ? "" : this.selectedItems.length === 1 ? this.itemName(this.selectedItems[0]) : `${this.texts.selected}: ${this.selectedItems.length}`;
1433
+ }
1434
+ },
1435
+ methods: {
1436
+ itemName(e) {
1437
+ return String(e.name ?? "");
1438
+ },
1439
+ 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");
1441
+ },
1442
+ clear() {
1443
+ this.$emit("update:modelValue", []), this.$emit("changed");
1444
+ },
1445
+ itemElements() {
1446
+ return this.$refs.list ? [...this.$refs.list.querySelectorAll(":scope > button")] : [];
1447
+ },
1448
+ firstSelectedElement() {
1449
+ let e = this.visibleItems.findIndex((e) => this.selectedIds.includes(e.id));
1450
+ return e === -1 ? null : this.itemElements()[e];
1451
+ },
1452
+ arrowsOrigin() {
1453
+ return this.firstSelectedElement() ?? this.$refs.search ?? null;
1454
+ },
1455
+ onToggle(e) {
1456
+ e && this.withSearch && this.$refs.search.focus({ preventScroll: !0 }), e || (this.query = "");
1457
+ },
1458
+ searchStops() {
1459
+ return [...this.$refs.search ? [this.$refs.search] : [], ...this.itemElements()];
1460
+ },
1461
+ tabStops() {
1462
+ let e = this.$refs.search ? [this.$refs.search] : [], t = this.$refs.search && this.query !== "" ? [this.$refs.searchEraser.$el] : [];
1463
+ return [
1464
+ ...e,
1465
+ ...t,
1466
+ ...this.itemElements()
1467
+ ];
1468
+ },
1469
+ onListKeydown(e) {
1470
+ if (!(!this.withSearch || e.ctrlKey || e.metaKey || e.altKey || e.isComposing)) {
1471
+ if (e.key === "Backspace") this.query = this.query.slice(0, -1);
1472
+ else if (e.key.length === 1 && e.key !== " ") this.query += e.key;
1473
+ else return;
1474
+ e.preventDefault(), this.$refs.search.focus({ preventScroll: !0 }), this.$nextTick(() => {
1475
+ let e = this.$refs.search.value.length;
1476
+ this.$refs.search.setSelectionRange(e, e);
1477
+ });
1478
+ }
1479
+ },
1480
+ clearQuery() {
1481
+ this.query = "", this.$refs.search.focus();
1482
+ }
1483
+ }
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 = {
1485
+ key: 0,
1486
+ 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, {
1499
+ key: 0,
1500
+ title: d.title,
1501
+ "is-open": u.isOpen,
1502
+ "onUpdate:isOpen": o[3] ||= (e) => u.isOpen = e,
1503
+ "has-value": d.selectedItems.length > 0,
1504
+ "find-selected": d.arrowsOrigin,
1505
+ "find-stops": d.searchStops,
1506
+ "find-tab-stops": d.tabStops,
1507
+ "keep-size": c.withSearch,
1508
+ lang: t.lang,
1509
+ onErased: d.clear,
1510
+ onToggle: d.onToggle
1511
+ }, {
1512
+ default: b(() => [c.withSearch ? (f(), i("div", Qt, [a("div", $t, [x(a("input", {
1513
+ ref: "search",
1514
+ type: "text",
1515
+ autocomplete: "off",
1516
+ "onUpdate:modelValue": o[0] ||= (e) => u.query = e,
1517
+ placeholder: t.texts.search,
1518
+ "aria-label": t.texts.search,
1519
+ 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
+ onKeydown: o[1] ||= S(C(() => {}, ["prevent"]), ["enter"])
1521
+ }, null, 40, en), [[te, u.query]]), x(s(g, {
1522
+ ref: "searchEraser",
1523
+ size: "small",
1524
+ lang: t.lang,
1525
+ onClicked: d.clearQuery,
1526
+ class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
1527
+ }, null, 8, ["lang", "onClicked"]), [[y, u.query !== ""]])])])) : r("", !0), d.visibleItems.length > 0 ? (f(), i("div", {
1528
+ key: 1,
1529
+ ref: "list",
1530
+ class: "bb:flex bb:flex-col bb:py-1 bb:divide-y bb:divide-gray-200 bb:divide-dashed",
1531
+ onKeydown: o[2] ||= (...e) => d.onListKeydown && d.onListKeydown(...e)
1532
+ }, [(f(!0), i(e, null, p(d.visibleItems, (e) => (f(), n(v, {
1533
+ name: d.itemName(e),
1534
+ key: e.id,
1535
+ "is-checked": d.selectedIds.includes(e.id),
1536
+ "aria-pressed": d.selectedIds.includes(e.id),
1537
+ onClicked: (t) => d.itemClicked(e)
1538
+ }, null, 8, [
1539
+ "name",
1540
+ "is-checked",
1541
+ "aria-pressed",
1542
+ "onClicked"
1543
+ ]))), 128))], 544)) : (f(), i("div", {
1544
+ key: 2,
1545
+ class: "bb:px-3 bb:py-2 bb:text-sm bb:text-gray-500 bb:text-center",
1546
+ textContent: _(t.texts.nothingFound)
1547
+ }, null, 8, tn))]),
1548
+ _: 1
1549
+ }, 8, [
1550
+ "title",
1551
+ "is-open",
1552
+ "has-value",
1553
+ "find-selected",
1554
+ "find-stops",
1555
+ "find-tab-stops",
1556
+ "keep-size",
1557
+ "lang",
1558
+ "onErased",
1559
+ "onToggle"
1560
+ ])) : r("", !0)])]);
1561
+ }
1562
+ var rn = /*#__PURE__*/ N(Yt, [["render", nn]]), an = {
1563
+ components: {
1564
+ ElementHeader: F,
1565
+ DropdownButton: Ht,
1566
+ ListElement: Jt
1282
1567
  },
1283
1568
  emits: ["update:modelValue", "changed"],
1284
1569
  props: {
@@ -1336,15 +1621,18 @@ var Jt = {
1336
1621
  activeItemElement() {
1337
1622
  let e = this.itemList.indexOf(this.activeItem);
1338
1623
  return e === -1 ? null : this.$refs.list.querySelectorAll("button")[e];
1624
+ },
1625
+ itemStops() {
1626
+ return this.$refs.list ? [...this.$refs.list.querySelectorAll(":scope > button")] : [];
1339
1627
  }
1340
1628
  }
1341
- }, Yt = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Xt = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Zt = {
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 = {
1342
1630
  ref: "list",
1343
1631
  class: "bb:flex bb:flex-col bb:py-1 bb:divide-y bb:divide-gray-200 bb:divide-dashed"
1344
1632
  };
1345
- function Qt(t, o, c, l, u, p) {
1346
- let h = m("element-header"), g = m("list-element"), _ = m("dropdown-button");
1347
- return d(), i("div", Yt, [a("div", Xt, [s(h, {
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, {
1348
1636
  text: c.header,
1349
1637
  "is-required": c.isRequired,
1350
1638
  "is-loading": c.isLoading
@@ -1352,20 +1640,21 @@ function Qt(t, o, c, l, u, p) {
1352
1640
  "text",
1353
1641
  "is-required",
1354
1642
  "is-loading"
1355
- ]), p.hasItems ? (d(), n(_, {
1643
+ ]), d.hasItems ? (f(), n(_, {
1356
1644
  key: 0,
1357
- title: p.activeItemName,
1645
+ title: d.activeItemName,
1358
1646
  "is-open": u.isOpen,
1359
1647
  "onUpdate:isOpen": o[0] ||= (e) => u.isOpen = e,
1360
- "has-value": p.hasValue,
1361
- "find-selected": p.activeItemElement,
1362
- onErased: p.clear
1648
+ "has-value": d.hasValue,
1649
+ "find-selected": d.activeItemElement,
1650
+ "find-tab-stops": d.itemStops,
1651
+ onErased: d.clear
1363
1652
  }, {
1364
- default: b(() => [a("div", Zt, [(d(!0), i(e, null, f(p.itemList, (e) => (d(), n(g, {
1653
+ default: b(() => [a("div", cn, [(f(!0), i(e, null, p(d.itemList, (e) => (f(), n(g, {
1365
1654
  name: e.name,
1366
1655
  key: e.id,
1367
1656
  "is-checked": e.id === c.modelValue,
1368
- onClicked: (t) => p.itemClicked(e)
1657
+ onClicked: (t) => d.itemClicked(e)
1369
1658
  }, null, 8, [
1370
1659
  "name",
1371
1660
  "is-checked",
@@ -1377,11 +1666,12 @@ function Qt(t, o, c, l, u, p) {
1377
1666
  "is-open",
1378
1667
  "has-value",
1379
1668
  "find-selected",
1669
+ "find-tab-stops",
1380
1670
  "onErased"
1381
1671
  ])) : r("", !0)])]);
1382
1672
  }
1383
- var $t = /*#__PURE__*/ A(Jt, [["render", Qt]]), en = {
1384
- mixins: [k],
1673
+ var un = /*#__PURE__*/ N(an, [["render", ln]]), dn = {
1674
+ mixins: [M],
1385
1675
  props: {
1386
1676
  text: {
1387
1677
  type: String,
@@ -1390,17 +1680,17 @@ var $t = /*#__PURE__*/ A(Jt, [["render", Qt]]), en = {
1390
1680
  color: {
1391
1681
  type: String,
1392
1682
  required: !0,
1393
- validator: O
1683
+ validator: j
1394
1684
  }
1395
1685
  }
1396
- }, tn = ["textContent"];
1397
- function nn(e, t, n, r, a, o) {
1398
- return d(), i("span", {
1686
+ }, fn = ["textContent"];
1687
+ function pn(e, t, n, r, a, o) {
1688
+ return f(), i("span", {
1399
1689
  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")]),
1400
- textContent: g(n.text)
1401
- }, null, 10, tn);
1690
+ textContent: _(n.text)
1691
+ }, null, 10, fn);
1402
1692
  }
1403
- var q = /*#__PURE__*/ A(en, [["render", nn]]), rn = {
1693
+ var mn = /*#__PURE__*/ N(dn, [["render", pn]]), hn = {
1404
1694
  props: {
1405
1695
  messages: {
1406
1696
  type: [Object, Array],
@@ -1420,12 +1710,12 @@ var q = /*#__PURE__*/ A(en, [["render", nn]]), rn = {
1420
1710
  return this.type === "dangerous";
1421
1711
  }
1422
1712
  }
1423
- }, an = { class: "bb:flex" }, on = { class: "bb:shrink-0" }, sn = { class: "bb:ml-3" }, cn = ["textContent"];
1424
- function ln(t, n, o, s, c, l) {
1425
- return l.hasErrors ? (d(), i("div", {
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) {
1715
+ return l.hasErrors ? (f(), i("div", {
1426
1716
  key: 0,
1427
1717
  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"])
1428
- }, [a("div", an, [a("div", on, [(d(), i("svg", {
1718
+ }, [a("div", gn, [a("div", _n, [(f(), i("svg", {
1429
1719
  class: u(["bb:h-5 bb:w-5", l.isDangerous ? "bb:text-red-400" : "bb:text-yellow-400"]),
1430
1720
  viewBox: "0 0 20 20",
1431
1721
  fill: "currentColor"
@@ -1433,13 +1723,90 @@ function ln(t, n, o, s, c, l) {
1433
1723
  "fill-rule": "evenodd",
1434
1724
  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",
1435
1725
  "clip-rule": "evenodd"
1436
- }, null, -1)]], 2))]), a("div", sn, [(d(!0), i(e, null, f(o.messages, (e, t) => (d(), i("p", {
1726
+ }, null, -1)]], 2))]), a("div", vn, [(f(!0), i(e, null, p(o.messages, (e, t) => (f(), i("p", {
1437
1727
  class: u(["bb:text-sm bb:leading-5", l.isDangerous ? "bb:text-red-700" : "bb:text-yellow-700"]),
1438
1728
  key: t,
1439
- textContent: g(e)
1440
- }, null, 10, cn))), 128))])])], 2)) : r("", !0);
1441
- }
1442
- var un = /*#__PURE__*/ A(rn, [["render", ln]]), dn = {}, fn = {
1729
+ textContent: _(e)
1730
+ }, null, 10, yn))), 128))])])], 2)) : r("", !0);
1731
+ }
1732
+ var xn = /*#__PURE__*/ N(hn, [["render", bn]]), Sn = [
1733
+ "text",
1734
+ "email",
1735
+ "password",
1736
+ "tel",
1737
+ "url",
1738
+ "search"
1739
+ ], Cn = {
1740
+ components: { Dot: P },
1741
+ inheritAttrs: !1,
1742
+ props: {
1743
+ modelValue: {
1744
+ type: String,
1745
+ default: ""
1746
+ },
1747
+ label: {
1748
+ type: String,
1749
+ required: !0
1750
+ },
1751
+ type: {
1752
+ type: String,
1753
+ default: "text",
1754
+ validator: (e) => Sn.includes(e)
1755
+ },
1756
+ isRequired: {
1757
+ type: Boolean,
1758
+ default: !1
1759
+ }
1760
+ },
1761
+ emits: ["update:modelValue"],
1762
+ setup() {
1763
+ return { generatedId: v() };
1764
+ },
1765
+ computed: {
1766
+ value: {
1767
+ get() {
1768
+ return this.modelValue ?? "";
1769
+ },
1770
+ set(e) {
1771
+ this.$emit("update:modelValue", e);
1772
+ }
1773
+ },
1774
+ inputType() {
1775
+ return Sn.includes(this.type) ? this.type : "text";
1776
+ }
1777
+ },
1778
+ methods: {
1779
+ inputId() {
1780
+ return this.$attrs.id ?? this.generatedId;
1781
+ },
1782
+ inputAttrs() {
1783
+ return Object.fromEntries(Object.entries(this.$attrs).filter(([e]) => ![
1784
+ "class",
1785
+ "style",
1786
+ "id"
1787
+ ].includes(e)));
1788
+ }
1789
+ }
1790
+ }, wn = { class: "bb:flex bb:items-center" }, Tn = ["for", "textContent"], En = ["id", "type"];
1791
+ function Dn(e, t, n, r, o, c) {
1792
+ let p = h("dot");
1793
+ return f(), i("div", {
1794
+ class: u(["bb-dashboard-ui", e.$attrs.class]),
1795
+ style: d(e.$attrs.style)
1796
+ }, [a("div", wn, [a("label", {
1797
+ for: c.inputId(),
1798
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
1799
+ textContent: _(n.label)
1800
+ }, null, 8, Tn), x(s(p, {
1801
+ color: "red",
1802
+ class: "bb:ml-2"
1803
+ }, null, 512), [[y, n.isRequired]])]), x(a("input", l({ "onUpdate:modelValue": t[0] ||= (e) => c.value = e }, { ...c.inputAttrs() }, {
1804
+ id: c.inputId(),
1805
+ type: c.inputType,
1806
+ 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);
1808
+ }
1809
+ var On = /*#__PURE__*/ N(Cn, [["render", Dn]]), kn = {}, An = {
1443
1810
  class: "bb:w-4 bb:h-4",
1444
1811
  fill: "none",
1445
1812
  stroke: "currentColor",
@@ -1449,8 +1816,8 @@ var un = /*#__PURE__*/ A(rn, [["render", ln]]), dn = {}, fn = {
1449
1816
  xmlns: "http://www.w3.org/2000/svg",
1450
1817
  "aria-hidden": "true"
1451
1818
  };
1452
- function pn(e, t, n, r, o, s) {
1453
- return d(), i("svg", fn, [...t[0] ||= [
1819
+ function jn(e, t, n, r, o, s) {
1820
+ return f(), i("svg", An, [...t[0] ||= [
1454
1821
  a("circle", {
1455
1822
  cx: "12",
1456
1823
  cy: "12",
@@ -1472,7 +1839,7 @@ function pn(e, t, n, r, o, s) {
1472
1839
  }, null, -1)
1473
1840
  ]]);
1474
1841
  }
1475
- var mn = /*#__PURE__*/ A(dn, [["render", pn]]), hn = {}, gn = {
1842
+ var Mn = /*#__PURE__*/ N(kn, [["render", jn]]), Nn = {}, Pn = {
1476
1843
  class: "bb:w-4 bb:h-4",
1477
1844
  fill: "none",
1478
1845
  stroke: "currentColor",
@@ -1480,15 +1847,15 @@ var mn = /*#__PURE__*/ A(dn, [["render", pn]]), hn = {}, gn = {
1480
1847
  xmlns: "http://www.w3.org/2000/svg",
1481
1848
  "aria-hidden": "true"
1482
1849
  };
1483
- function _n(e, t, n, r, o, s) {
1484
- return d(), i("svg", gn, [...t[0] ||= [a("path", {
1850
+ function Fn(e, t, n, r, o, s) {
1851
+ return f(), i("svg", Pn, [...t[0] ||= [a("path", {
1485
1852
  "stroke-linecap": "round",
1486
1853
  "stroke-linejoin": "round",
1487
1854
  "stroke-width": "2",
1488
1855
  d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"
1489
1856
  }, null, -1)]]);
1490
1857
  }
1491
- var vn = /*#__PURE__*/ A(hn, [["render", _n]]), yn = {}, bn = {
1858
+ var In = /*#__PURE__*/ N(Nn, [["render", Fn]]), Ln = {}, Rn = {
1492
1859
  class: "bb:w-4 bb:h-4",
1493
1860
  fill: "none",
1494
1861
  stroke: "currentColor",
@@ -1496,21 +1863,21 @@ var vn = /*#__PURE__*/ A(hn, [["render", _n]]), yn = {}, bn = {
1496
1863
  xmlns: "http://www.w3.org/2000/svg",
1497
1864
  "aria-hidden": "true"
1498
1865
  };
1499
- function xn(e, t, n, r, o, s) {
1500
- return d(), i("svg", bn, [...t[0] ||= [a("path", {
1866
+ function zn(e, t, n, r, o, s) {
1867
+ return f(), i("svg", Rn, [...t[0] ||= [a("path", {
1501
1868
  "stroke-linecap": "round",
1502
1869
  "stroke-linejoin": "round",
1503
1870
  "stroke-width": "2",
1504
1871
  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"
1505
1872
  }, null, -1)]]);
1506
1873
  }
1507
- var Sn = /*#__PURE__*/ A(yn, [["render", xn]]), Cn = ["download", "refresh"], wn = {
1874
+ var Bn = /*#__PURE__*/ N(Ln, [["render", zn]]), Vn = ["download", "refresh"], Hn = {
1508
1875
  components: {
1509
- "clock-icon": mn,
1510
- "download-icon": vn,
1511
- "refresh-icon": Sn
1876
+ "clock-icon": Mn,
1877
+ "download-icon": In,
1878
+ "refresh-icon": Bn
1512
1879
  },
1513
- mixins: [k],
1880
+ mixins: [M],
1514
1881
  emits: ["click"],
1515
1882
  props: {
1516
1883
  title: {
@@ -1520,12 +1887,12 @@ var Sn = /*#__PURE__*/ A(yn, [["render", xn]]), Cn = ["download", "refresh"], wn
1520
1887
  icon: {
1521
1888
  type: String,
1522
1889
  required: !0,
1523
- validator: (e) => Cn.includes(e)
1890
+ validator: (e) => Vn.includes(e)
1524
1891
  },
1525
1892
  color: {
1526
1893
  type: String,
1527
1894
  default: "purple",
1528
- validator: O
1895
+ validator: j
1529
1896
  },
1530
1897
  isLoading: {
1531
1898
  type: Boolean,
@@ -1540,16 +1907,16 @@ var Sn = /*#__PURE__*/ A(yn, [["render", xn]]), Cn = ["download", "refresh"], wn
1540
1907
  let e = this.isLoading && typeof this.loadingText == "string" && this.loadingText !== "" ? this.loadingText : this.title;
1541
1908
  return typeof e == "string" ? e : "";
1542
1909
  } }
1543
- }, Tn = [
1910
+ }, Un = [
1544
1911
  "title",
1545
1912
  "disabled",
1546
1913
  "aria-busy"
1547
- ], En = ["textContent"];
1548
- function Dn(e, t, o, s, c, l) {
1549
- let f = m("clock-icon"), p = m("download-icon"), h = m("refresh-icon");
1550
- return d(), i("button", {
1914
+ ], Wn = ["textContent"];
1915
+ function Gn(e, t, o, s, c, l) {
1916
+ let d = h("clock-icon"), p = h("download-icon"), m = h("refresh-icon");
1917
+ return f(), i("button", {
1551
1918
  type: "button",
1552
- class: u(["bb-dashboard-ui bb:inline-flex bb:items-center bb:px-3 bb:py-1.5 bb:rounded-full bb:text-xs bb:font-medium bb:leading-none bb:select-none bb:whitespace-nowrap", [
1919
+ class: u(["bb-dashboard-ui bb:inline-flex bb:items-center bb:px-3 bb:py-1.5 bb:rounded-full bb:text-xs bb:font-medium bb:leading-none bb:select-none bb:whitespace-nowrap bb:focus-visible:focus-ring", [
1553
1920
  e.colorClass(o.color, "pill"),
1554
1921
  o.isLoading ? "bb:opacity-60 bb:cursor-not-allowed" : "bb:cursor-pointer",
1555
1922
  o.isLoading ? "" : e.colorClass(o.color, "pillHover")
@@ -1558,31 +1925,31 @@ function Dn(e, t, o, s, c, l) {
1558
1925
  disabled: o.isLoading,
1559
1926
  "aria-busy": o.isLoading ? "true" : null,
1560
1927
  onClick: t[0] ||= (t) => e.$emit("click")
1561
- }, [o.isLoading ? (d(), n(f, {
1928
+ }, [o.isLoading ? (f(), n(d, {
1562
1929
  key: 0,
1563
1930
  class: "bb:pointer-events-none bb:cursor-default"
1564
- })) : o.icon === "download" ? (d(), n(p, {
1931
+ })) : o.icon === "download" ? (f(), n(p, {
1565
1932
  key: 1,
1566
1933
  class: "bb:pointer-events-none bb:cursor-default"
1567
- })) : o.icon === "refresh" ? (d(), n(h, {
1934
+ })) : o.icon === "refresh" ? (f(), n(m, {
1568
1935
  key: 2,
1569
1936
  class: "bb:pointer-events-none bb:cursor-default"
1570
1937
  })) : r("", !0), a("span", {
1571
1938
  class: "bb:ml-1 bb:pointer-events-none bb:cursor-default",
1572
- textContent: g(l.label)
1573
- }, null, 8, En)], 10, Tn);
1939
+ textContent: _(l.label)
1940
+ }, null, 8, Wn)], 10, Un);
1574
1941
  }
1575
- var On = /*#__PURE__*/ A(wn, [["render", Dn]]), J = "a[href], button:not(:disabled)";
1576
- function kn(e, t) {
1942
+ var Kn = /*#__PURE__*/ N(Hn, [["render", Gn]]), qn = "a[href], button:not(:disabled)";
1943
+ function Jn(e, t) {
1577
1944
  let n = document.activeElement;
1578
- (e.querySelector("[data-dialog-focus]") ?? e.querySelector(J))?.focus();
1945
+ (e.querySelector("[data-dialog-focus]") ?? e.querySelector(qn))?.focus();
1579
1946
  let r = (n) => {
1580
1947
  if (n.key === "Escape") {
1581
1948
  t();
1582
1949
  return;
1583
1950
  }
1584
1951
  if (n.key !== "Tab") return;
1585
- let r = [...e.querySelectorAll(J)];
1952
+ let r = [...e.querySelectorAll(qn)];
1586
1953
  if (r.length === 0) return;
1587
1954
  n.preventDefault();
1588
1955
  let i = n.shiftKey ? -1 : 1, a = r.indexOf(document.activeElement);
@@ -1599,7 +1966,7 @@ function kn(e, t) {
1599
1966
  }
1600
1967
  //#endregion
1601
1968
  //#region src/components/Modal.vue
1602
- var An = {
1969
+ var Yn = {
1603
1970
  emits: ["escape"],
1604
1971
  props: {
1605
1972
  isOpen: {
@@ -1633,16 +2000,16 @@ var An = {
1633
2000
  methods: {
1634
2001
  holdFocus() {
1635
2002
  this.focusFrame === null && this.releaseHeldFocus === null && (this.focusFrame = requestAnimationFrame(() => {
1636
- this.focusFrame = null, this.releaseHeldFocus = kn(this.$refs.panel, () => this.$emit("escape"));
2003
+ this.focusFrame = null, this.releaseHeldFocus = Jn(this.$refs.panel, () => this.$emit("escape"));
1637
2004
  }));
1638
2005
  },
1639
2006
  releaseFocus() {
1640
2007
  this.focusFrame !== null && (cancelAnimationFrame(this.focusFrame), this.focusFrame = null), this.releaseHeldFocus !== null && (this.releaseHeldFocus(), this.releaseHeldFocus = null);
1641
2008
  }
1642
2009
  }
1643
- }, jn = { class: "bb:min-h-screen bb:text-center" }, Mn = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, Nn = ["aria-labelledby"];
1644
- function Pn(e, n, r, o, c, l) {
1645
- return d(), 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", jn, [
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, [
1646
2013
  s(t, {
1647
2014
  "enter-active-class": "bb:ease-out bb:duration-300",
1648
2015
  "enter-from-class": "bb:opacity-0",
@@ -1651,7 +2018,7 @@ function Pn(e, n, r, o, c, l) {
1651
2018
  "leave-from-class": "bb:opacity-100",
1652
2019
  "leave-to-class": "bb:opacity-0"
1653
2020
  }, {
1654
- default: b(() => [x(a("div", Mn, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[y, r.isOpen]])]),
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]])]),
1655
2022
  _: 1
1656
2023
  }),
1657
2024
  n[1] ||= a("span", { class: "bb:inline-block bb:align-middle bb:h-screen" }, null, -1),
@@ -1669,12 +2036,12 @@ function Pn(e, n, r, o, c, l) {
1669
2036
  role: "dialog",
1670
2037
  "aria-modal": "true",
1671
2038
  "aria-labelledby": r.headingId
1672
- }, [p(e.$slots, "default")], 8, Nn), [[y, r.isOpen]])]),
2039
+ }, [m(e.$slots, "default")], 8, Qn), [[y, r.isOpen]])]),
1673
2040
  _: 3
1674
2041
  })
1675
2042
  ])], 2);
1676
2043
  }
1677
- var Fn = /*#__PURE__*/ A(An, [["render", Pn]]), In = {}, Ln = {
2044
+ var er = /*#__PURE__*/ N(Yn, [["render", $n]]), tr = {}, nr = {
1678
2045
  class: "bb:h-7 bb:w-7 bb:text-red-600",
1679
2046
  xmlns: "http://www.w3.org/2000/svg",
1680
2047
  fill: "none",
@@ -1682,35 +2049,35 @@ var Fn = /*#__PURE__*/ A(An, [["render", Pn]]), In = {}, Ln = {
1682
2049
  stroke: "currentColor",
1683
2050
  "aria-hidden": "true"
1684
2051
  };
1685
- function Rn(e, t, n, r, o, s) {
1686
- return d(), i("svg", Ln, [...t[0] ||= [a("path", {
2052
+ function rr(e, t, n, r, o, s) {
2053
+ return f(), i("svg", nr, [...t[0] ||= [a("path", {
1687
2054
  "stroke-linecap": "round",
1688
2055
  "stroke-linejoin": "round",
1689
2056
  "stroke-width": "2",
1690
2057
  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"
1691
2058
  }, null, -1)]]);
1692
2059
  }
1693
- var Y = /*#__PURE__*/ A(In, [["render", Rn]]), zn = {}, Bn = {
2060
+ var ir = /*#__PURE__*/ N(tr, [["render", rr]]), ar = {}, or = {
1694
2061
  class: "bb:h-7 bb:w-7 bb:text-yellow-400",
1695
2062
  xmlns: "http://www.w3.org/2000/svg",
1696
2063
  viewBox: "0 0 20 20",
1697
2064
  fill: "currentColor",
1698
2065
  "aria-hidden": "true"
1699
2066
  };
1700
- function Vn(e, t, n, r, o, s) {
1701
- return d(), i("svg", Bn, [...t[0] ||= [a("path", {
2067
+ function sr(e, t, n, r, o, s) {
2068
+ return f(), i("svg", or, [...t[0] ||= [a("path", {
1702
2069
  "fill-rule": "evenodd",
1703
2070
  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",
1704
2071
  "clip-rule": "evenodd"
1705
2072
  }, null, -1)]]);
1706
2073
  }
1707
- var Hn = /*#__PURE__*/ A(zn, [["render", Vn]]), Un = {
2074
+ var cr = /*#__PURE__*/ N(ar, [["render", sr]]), lr = {
1708
2075
  components: {
1709
- Modal: Fn,
1710
- Dangerous: Y,
1711
- Warning: Hn
2076
+ Modal: er,
2077
+ Dangerous: ir,
2078
+ Warning: cr
1712
2079
  },
1713
- mixins: [M],
2080
+ mixins: [I],
1714
2081
  emits: ["actionConfirmed", "actionCanceled"],
1715
2082
  props: {
1716
2083
  isOpen: {
@@ -1740,7 +2107,7 @@ var Hn = /*#__PURE__*/ A(zn, [["render", Vn]]), Un = {
1740
2107
  }
1741
2108
  },
1742
2109
  setup() {
1743
- return { headingId: _() };
2110
+ return { headingId: v() };
1744
2111
  },
1745
2112
  computed: {
1746
2113
  isDangerous() {
@@ -1750,68 +2117,68 @@ var Hn = /*#__PURE__*/ A(zn, [["render", Vn]]), Un = {
1750
2117
  return this.type === "warning";
1751
2118
  }
1752
2119
  }
1753
- }, Wn = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:p-6 bb:pb-4" }, Gn = { class: "bb:flex bb:items-start" }, Kn = { class: "bb:ml-4 bb:text-left" }, qn = ["id"], Jn = { class: "bb:mt-2" }, Yn = { class: "bb:text-sm bb:text-gray-500" }, Xn = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-6 bb:py-3 bb:flex bb:flex-row-reverse" };
1754
- function Zn(e, t, i, o, s, c) {
1755
- let l = m("warning"), f = m("dangerous"), p = m("modal");
1756
- return d(), n(p, {
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) {
2122
+ let l = h("warning"), d = h("dangerous"), p = h("modal");
2123
+ return f(), n(p, {
1757
2124
  "is-open": i.isOpen,
1758
2125
  "heading-id": o.headingId,
1759
2126
  onEscape: t[2] ||= (t) => e.$emit("actionCanceled")
1760
2127
  }, {
1761
- default: b(() => [a("div", Wn, [a("div", Gn, [a("div", { class: u(["bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-10 bb:w-10 bb:rounded-full", {
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", {
1762
2129
  "bb:bg-red-100": c.isDangerous,
1763
2130
  "bb:bg-yellow-100": c.isWarning
1764
- }]) }, [c.isWarning ? (d(), n(l, { key: 0 })) : r("", !0), c.isDangerous ? (d(), n(f, { key: 1 })) : r("", !0)], 2), a("div", Kn, [a("h3", {
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", {
1765
2132
  class: "bb:text-lg bb:leading-6 bb:font-medium bb:text-gray-900",
1766
2133
  id: o.headingId
1767
- }, g(i.confirmationHeading), 9, qn), a("div", Jn, [a("p", Yn, g(i.confirmationText), 1)])])])]), a("div", Xn, [a("button", {
2134
+ }, _(i.confirmationHeading), 9, pr), a("div", mr, [a("p", hr, _(i.confirmationText), 1)])])])]), a("div", gr, [a("button", {
1768
2135
  type: "button",
1769
- 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:outline-hidden bb:focus:ring-2 bb:focus:ring-offset-2 bb:ml-3", {
1770
- "bb:bg-red-600 bb:hover:bg-red-700 bb:focus:ring-red-500": c.isDangerous,
1771
- "bb:bg-yellow-400 bb:hover:bg-yellow-500 bb:focus:ring-yellow-300": c.isWarning
2136
+ 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
+ "bb:bg-red-600 bb:hover:bg-red-700": c.isDangerous,
2138
+ "bb:bg-yellow-400 bb:hover:bg-yellow-500": c.isWarning
1772
2139
  }]),
1773
- onClick: t[0] ||= S((t) => e.$emit("actionConfirmed"), ["prevent"])
1774
- }, g(i.actionButtonText), 3), a("button", {
2140
+ onClick: t[0] ||= C((t) => e.$emit("actionConfirmed"), ["prevent"])
2141
+ }, _(i.actionButtonText), 3), a("button", {
1775
2142
  type: "button",
1776
- class: "bb:inline-flex bb:justify-center bb:rounded-md bb:border bb:border-gray-300 bb:shadow-xs bb:px-4 bb:py-2 bb:bg-white bb:text-sm bb:font-medium bb:text-gray-700 bb:hover:bg-gray-50 bb:focus:outline-hidden bb:focus:ring-2 bb:focus:ring-offset-2 bb:focus:ring-indigo-500 bb:ml-3",
2143
+ class: "bb:inline-flex bb:justify-center bb:rounded-md bb:border bb:border-gray-300 bb:shadow-xs bb:px-4 bb:py-2 bb:bg-white bb:text-sm bb:font-medium bb:text-gray-700 bb:hover:bg-gray-50 bb:focus:focus-ring bb:ml-3",
1777
2144
  "data-dialog-focus": "",
1778
- onClick: t[1] ||= S((t) => e.$emit("actionCanceled"), ["prevent"])
1779
- }, g(i.cancelButtonText ?? e.texts.cancel), 1)])]),
2145
+ onClick: t[1] ||= C((t) => e.$emit("actionCanceled"), ["prevent"])
2146
+ }, _(i.cancelButtonText ?? e.texts.cancel), 1)])]),
1780
2147
  _: 1
1781
2148
  }, 8, ["is-open", "heading-id"]);
1782
2149
  }
1783
- var Qn = /*#__PURE__*/ A(Un, [["render", Zn]]);
2150
+ var vr = /*#__PURE__*/ N(lr, [["render", _r]]);
1784
2151
  //#endregion
1785
2152
  //#region src/menuItems.js
1786
- function $n(e) {
1787
- if (typeof e != "object" || !e || typeof e.label != "string" || e.label === "" || e.color !== void 0 && !O(e.color)) return !1;
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;
1788
2155
  let t = typeof e.href == "string" && e.href !== "" && e.onSelect === void 0, n = typeof e.onSelect == "function" && e.href === void 0;
1789
2156
  return t || n;
1790
2157
  }
1791
- function er(e) {
2158
+ function br(e) {
1792
2159
  return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e) : [];
1793
2160
  }
1794
- function tr(e) {
2161
+ function xr(e) {
1795
2162
  return typeof e.href == "string" && e.href !== "";
1796
2163
  }
1797
- function nr(e) {
1798
- return O(e.color) ? e.color : null;
2164
+ function Sr(e) {
2165
+ return j(e.color) ? e.color : null;
1799
2166
  }
1800
2167
  //#endregion
1801
2168
  //#region src/navigation.js
1802
- function rr(e) {
2169
+ function Cr(e) {
1803
2170
  let t = e.currentTarget?.target ?? "";
1804
2171
  return !(e.defaultPrevented || e.target?.isContentEditable === !0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || t !== "" && t !== "_self" || e.button !== 0);
1805
2172
  }
1806
- var X = {
1807
- inject: ge,
2173
+ var Z = {
2174
+ inject: A,
1808
2175
  methods: { followLink(e, t) {
1809
2176
  let n = this.uiSettings.navigate;
1810
- n !== null && rr(e) && (e.preventDefault(), n(t));
2177
+ n !== null && Cr(e) && (e.preventDefault(), n(t));
1811
2178
  } }
1812
- }, ir = {
1813
- components: { PopoverPanel: H },
1814
- mixins: [X, k],
2179
+ }, wr = {
2180
+ components: { PopoverPanel: K },
2181
+ mixins: [Z, M],
1815
2182
  emits: ["update:modelValue"],
1816
2183
  props: {
1817
2184
  actions: { default: () => [] },
@@ -1822,7 +2189,7 @@ var X = {
1822
2189
  },
1823
2190
  computed: {
1824
2191
  actionItems() {
1825
- return er(this.actions);
2192
+ return br(this.actions);
1826
2193
  },
1827
2194
  hasActions() {
1828
2195
  return this.actionItems.length > 0;
@@ -1830,23 +2197,23 @@ var X = {
1830
2197
  },
1831
2198
  methods: {
1832
2199
  color(e) {
1833
- return nr(e);
2200
+ return Sr(e);
1834
2201
  },
1835
2202
  isLink(e) {
1836
- return tr(e);
2203
+ return xr(e);
1837
2204
  },
1838
2205
  select(e) {
1839
2206
  if (typeof e.onSelect == "function") return e.onSelect();
1840
2207
  }
1841
2208
  }
1842
- }, ar = [
2209
+ }, Tr = [
1843
2210
  "href",
1844
2211
  "onClick",
1845
2212
  "textContent"
1846
- ], or = ["onClick", "textContent"];
1847
- function sr(t, r, a, o, s, c) {
1848
- let l = m("popover-panel");
1849
- return d(), n(l, {
2213
+ ], Er = ["onClick", "textContent"];
2214
+ function Dr(t, r, a, o, s, c) {
2215
+ let l = h("popover-panel");
2216
+ return f(), n(l, {
1850
2217
  "model-value": a.modelValue,
1851
2218
  "has-content": c.hasActions,
1852
2219
  align: "end",
@@ -1857,41 +2224,41 @@ function sr(t, r, a, o, s, c) {
1857
2224
  "panel-role": "menu",
1858
2225
  "onUpdate:modelValue": r[0] ||= (e) => t.$emit("update:modelValue", e)
1859
2226
  }, {
1860
- trigger: b((e) => [p(t.$slots, "trigger", {
2227
+ trigger: b((e) => [m(t.$slots, "trigger", {
1861
2228
  id: e.id,
1862
2229
  popovertarget: e.popovertarget
1863
2230
  })]),
1864
- default: b(() => [(d(!0), i(e, null, f(c.actionItems, (n, r) => (d(), i(e, { key: r }, [c.isLink(n) ? (d(), i("a", {
2231
+ default: b(() => [(f(!0), i(e, null, p(c.actionItems, (n, r) => (f(), i(e, { key: r }, [c.isLink(n) ? (f(), i("a", {
1865
2232
  key: 0,
1866
2233
  href: n.href,
1867
2234
  role: "menuitem",
1868
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")]),
1869
2236
  onClick: (e) => t.followLink(e, n.href),
1870
- textContent: g(n.label)
1871
- }, null, 10, ar)) : (d(), i("button", {
2237
+ textContent: _(n.label)
2238
+ }, null, 10, Tr)) : (f(), i("button", {
1872
2239
  key: 1,
1873
2240
  type: "button",
1874
2241
  role: "menuitem",
1875
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")]),
1876
2243
  onClick: (e) => c.select(n),
1877
- textContent: g(n.label)
1878
- }, null, 10, or))], 64))), 128))]),
2244
+ textContent: _(n.label)
2245
+ }, null, 10, Er))], 64))), 128))]),
1879
2246
  _: 3
1880
2247
  }, 8, ["model-value", "has-content"]);
1881
2248
  }
1882
- var cr = /*#__PURE__*/ A(ir, [["render", sr]]), lr = {
1883
- components: { PopoverMenu: cr },
2249
+ var Or = /*#__PURE__*/ N(wr, [["render", Dr]]), kr = {
2250
+ components: { PopoverMenu: Or },
1884
2251
  mixins: [
1885
- M,
1886
- X,
1887
- k
2252
+ I,
2253
+ Z,
2254
+ M
1888
2255
  ],
1889
2256
  emits: ["update:modelValue"],
1890
2257
  props: {
1891
2258
  actions: {
1892
2259
  type: Array,
1893
2260
  default: () => [],
1894
- validator: (e) => e.every($n)
2261
+ validator: (e) => e.every(yr)
1895
2262
  },
1896
2263
  modelValue: {
1897
2264
  type: Boolean,
@@ -1903,7 +2270,7 @@ var cr = /*#__PURE__*/ A(ir, [["render", sr]]), lr = {
1903
2270
  },
1904
2271
  computed: {
1905
2272
  items() {
1906
- return er(this.actions);
2273
+ return br(this.actions);
1907
2274
  },
1908
2275
  hasActions() {
1909
2276
  return this.items.length > 0;
@@ -1912,7 +2279,7 @@ var cr = /*#__PURE__*/ A(ir, [["render", sr]]), lr = {
1912
2279
  return this.items[0];
1913
2280
  },
1914
2281
  mainColor() {
1915
- return this.hasActions ? nr(this.mainAction) : null;
2282
+ return this.hasActions ? Sr(this.mainAction) : null;
1916
2283
  },
1917
2284
  menuActions() {
1918
2285
  return this.items.slice(1);
@@ -1934,7 +2301,7 @@ var cr = /*#__PURE__*/ A(ir, [["render", sr]]), lr = {
1934
2301
  },
1935
2302
  methods: {
1936
2303
  isLink(e) {
1937
- return tr(e);
2304
+ return xr(e);
1938
2305
  },
1939
2306
  select(e) {
1940
2307
  if (typeof e.onSelect == "function") return e.onSelect();
@@ -1943,31 +2310,31 @@ var cr = /*#__PURE__*/ A(ir, [["render", sr]]), lr = {
1943
2310
  this.menuIsOpen = e, this.$emit("update:modelValue", e);
1944
2311
  }
1945
2312
  }
1946
- }, ur = {
2313
+ }, Ar = {
1947
2314
  key: 0,
1948
2315
  class: "bb-dashboard-ui bb:relative bb:inline-flex bb:shadow-xs bb:rounded-md"
1949
- }, dr = ["href", "textContent"], fr = ["textContent"], pr = ["id", "popovertarget"], mr = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
1950
- function hr(e, t, n, o, c, l) {
1951
- let f = m("popover-menu");
1952
- return l.hasActions ? (d(), i("span", ur, [l.isLink(l.mainAction) ? (d(), i("a", {
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) {
2318
+ let d = h("popover-menu");
2319
+ return l.hasActions ? (f(), i("span", Ar, [l.isLink(l.mainAction) ? (f(), i("a", {
1953
2320
  key: 0,
1954
2321
  href: l.mainAction.href,
1955
- 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:outline-hidden bb:focus:ring-1 bb:focus:ring-indigo-500 bb:focus:border-indigo-500", [{
2322
+ 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", [{
1956
2323
  "bb:rounded-l-md": l.hasMenu,
1957
2324
  "bb:rounded-md": !l.hasMenu
1958
2325
  }, l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")]]),
1959
2326
  onClick: t[0] ||= (t) => e.followLink(t, l.mainAction.href),
1960
- textContent: g(l.mainAction.label)
1961
- }, null, 10, dr)) : (d(), i("button", {
2327
+ textContent: _(l.mainAction.label)
2328
+ }, null, 10, jr)) : (f(), i("button", {
1962
2329
  key: 1,
1963
2330
  type: "button",
1964
- 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:outline-hidden bb:focus:ring-1 bb:focus:ring-indigo-500 bb:focus:border-indigo-500", [{
2331
+ 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", [{
1965
2332
  "bb:rounded-l-md": l.hasMenu,
1966
2333
  "bb:rounded-md": !l.hasMenu
1967
2334
  }, l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")]]),
1968
2335
  onClick: t[1] ||= (e) => l.select(l.mainAction),
1969
- textContent: g(l.mainAction.label)
1970
- }, null, 10, fr)), s(f, {
2336
+ textContent: _(l.mainAction.label)
2337
+ }, null, 10, Mr)), s(d, {
1971
2338
  class: "bb:-ml-px bb:flex",
1972
2339
  actions: l.menuActions,
1973
2340
  "model-value": n.modelValue,
@@ -1977,8 +2344,8 @@ function hr(e, t, n, o, c, l) {
1977
2344
  type: "button",
1978
2345
  id: n.id,
1979
2346
  popovertarget: n.popovertarget,
1980
- 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:outline-hidden bb:focus:ring-1 bb:focus:ring-indigo-500 bb:focus:border-indigo-500", l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-500 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")])
1981
- }, [a("span", mr, g(e.texts.openMenu), 1), t[2] ||= a("svg", {
2347
+ 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", {
1982
2349
  class: "bb:h-5 bb:w-5 bb:pointer-events-none bb:cursor-default",
1983
2350
  xmlns: "http://www.w3.org/2000/svg",
1984
2351
  viewBox: "0 0 20 20",
@@ -1988,7 +2355,7 @@ function hr(e, t, n, o, c, l) {
1988
2355
  "fill-rule": "evenodd",
1989
2356
  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",
1990
2357
  "clip-rule": "evenodd"
1991
- })], -1)], 10, pr)]),
2358
+ })], -1)], 10, Nr)]),
1992
2359
  _: 1
1993
2360
  }, 8, [
1994
2361
  "actions",
@@ -1996,18 +2363,18 @@ function hr(e, t, n, o, c, l) {
1996
2363
  "onUpdate:modelValue"
1997
2364
  ])])) : r("", !0);
1998
2365
  }
1999
- var gr = /*#__PURE__*/ A(lr, [["render", hr]]), _r = {
2000
- components: { PopoverMenu: cr },
2001
- mixins: [M],
2366
+ var Ir = /*#__PURE__*/ N(kr, [["render", Fr]]), Lr = {
2367
+ components: { PopoverMenu: Or },
2368
+ mixins: [I],
2002
2369
  props: { actions: {
2003
2370
  type: Array,
2004
2371
  default: () => [],
2005
- validator: (e) => e.every($n)
2372
+ validator: (e) => e.every(yr)
2006
2373
  } }
2007
- }, vr = ["id", "popovertarget"], yr = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2008
- function br(e, t, r, i, o, s) {
2009
- let c = m("popover-menu");
2010
- return d(), n(c, {
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) {
2376
+ let c = h("popover-menu");
2377
+ return f(), n(c, {
2011
2378
  class: "bb-dashboard-ui bb:inline-flex",
2012
2379
  actions: r.actions
2013
2380
  }, {
@@ -2016,7 +2383,7 @@ function br(e, t, r, i, o, s) {
2016
2383
  id: n.id,
2017
2384
  popovertarget: n.popovertarget,
2018
2385
  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"
2019
- }, [a("span", yr, g(e.texts.openMenu), 1), t[0] ||= a("svg", {
2386
+ }, [a("span", zr, _(e.texts.openMenu), 1), t[0] ||= a("svg", {
2020
2387
  class: "bb:h-6 bb:w-6 bb:pointer-events-none bb:cursor-default",
2021
2388
  fill: "none",
2022
2389
  viewBox: "0 0 24 24",
@@ -2027,48 +2394,48 @@ function br(e, t, r, i, o, s) {
2027
2394
  "stroke-linejoin": "round",
2028
2395
  "stroke-width": "2",
2029
2396
  d: "M4 6h16M4 12h16M4 18h16"
2030
- })], -1)], 8, vr)]),
2397
+ })], -1)], 8, Rr)]),
2031
2398
  _: 1
2032
2399
  }, 8, ["actions"]);
2033
2400
  }
2034
- var xr = /*#__PURE__*/ A(_r, [["render", br]]), Sr = {}, Cr = {
2401
+ var Vr = /*#__PURE__*/ N(Lr, [["render", Br]]), Hr = {}, Ur = {
2035
2402
  xmlns: "http://www.w3.org/2000/svg",
2036
2403
  viewBox: "0 0 20 20",
2037
2404
  fill: "currentColor",
2038
2405
  "aria-hidden": "true"
2039
2406
  };
2040
- function wr(e, t, n, r, o, s) {
2041
- return d(), i("svg", Cr, [...t[0] ||= [a("path", {
2407
+ function Wr(e, t, n, r, o, s) {
2408
+ return f(), i("svg", Ur, [...t[0] ||= [a("path", {
2042
2409
  "fill-rule": "evenodd",
2043
2410
  "clip-rule": "evenodd",
2044
2411
  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"
2045
2412
  }, null, -1)]]);
2046
2413
  }
2047
- var Tr = /*#__PURE__*/ A(Sr, [["render", wr]]), Er = {}, Dr = {
2414
+ var Gr = /*#__PURE__*/ N(Hr, [["render", Wr]]), Kr = {}, qr = {
2048
2415
  xmlns: "http://www.w3.org/2000/svg",
2049
2416
  viewBox: "0 0 20 20",
2050
2417
  fill: "currentColor",
2051
2418
  "aria-hidden": "true"
2052
2419
  };
2053
- function Or(e, t, n, r, o, s) {
2054
- return d(), i("svg", Dr, [...t[0] ||= [a("path", {
2420
+ function Jr(e, t, n, r, o, s) {
2421
+ return f(), i("svg", qr, [...t[0] ||= [a("path", {
2055
2422
  "fill-rule": "evenodd",
2056
2423
  "clip-rule": "evenodd",
2057
2424
  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"
2058
2425
  }, null, -1)]]);
2059
2426
  }
2060
- var kr = /*#__PURE__*/ A(Er, [["render", Or]]);
2427
+ var Yr = /*#__PURE__*/ N(Kr, [["render", Jr]]);
2061
2428
  //#endregion
2062
2429
  //#region src/components/Pagination.vue
2063
- function Z(e) {
2430
+ function Xr(e) {
2064
2431
  return typeof e == "string" && e !== "" ? e : null;
2065
2432
  }
2066
- var Ar = {
2433
+ var Zr = {
2067
2434
  components: {
2068
- ArrowNarrowLeft: Tr,
2069
- ArrowNarrowRight: kr
2435
+ ArrowNarrowLeft: Gr,
2436
+ ArrowNarrowRight: Yr
2070
2437
  },
2071
- mixins: [M, X],
2438
+ mixins: [I, Z],
2072
2439
  props: {
2073
2440
  links: {
2074
2441
  type: Object,
@@ -2096,49 +2463,49 @@ var Ar = {
2096
2463
  return typeof this.from == "number" && typeof this.to == "number";
2097
2464
  },
2098
2465
  previousPageUrl() {
2099
- return Z(this.links?.prev);
2466
+ return Xr(this.links?.prev);
2100
2467
  },
2101
2468
  nextPageUrl() {
2102
- return Z(this.links?.next);
2469
+ return Xr(this.links?.next);
2103
2470
  }
2104
2471
  }
2105
- }, jr = {
2472
+ }, Qr = {
2106
2473
  key: 0,
2107
2474
  class: "bb-dashboard-ui bb:flex bb:items-center bb:justify-between"
2108
- }, Mr = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, Nr = ["href"], Pr = {
2475
+ }, $r = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, ei = ["href"], ti = {
2109
2476
  key: 0,
2110
2477
  class: "bb:-mt-px bb:flex bb:text-gray-400 bb:text-sm bb:leading-5"
2111
- }, Fr = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Ir = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Lr = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, Rr = ["href"];
2112
- function zr(e, t, n, c, l, u) {
2113
- let f = m("arrow-narrow-left"), p = m("arrow-narrow-right");
2114
- return u.hasResults ? (d(), i("nav", jr, [
2115
- a("div", Mr, [u.previousPageUrl === null ? r("", !0) : (d(), i("a", {
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) {
2480
+ 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", {
2116
2483
  key: 0,
2117
2484
  href: u.previousPageUrl,
2118
- 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",
2485
+ 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",
2119
2486
  onClick: t[0] ||= (t) => e.followLink(t, u.previousPageUrl)
2120
- }, [s(f, { class: "bb:mr-3 bb:h-5 bb:w-5 bb:text-gray-400 bb:pointer-events-none bb:cursor-default" }), o(" " + g(e.texts.previousPage), 1)], 8, Nr))]),
2121
- u.hasRange ? (d(), i("div", Pr, [
2122
- o(g(e.texts.resultsBefore) + " ", 1),
2123
- a("span", Fr, g(u.from) + " - " + g(u.to), 1),
2124
- o(" " + g(e.texts.resultsOf) + " ", 1),
2125
- a("span", Ir, g(u.total), 1),
2126
- o(" " + g(e.texts.resultsAfter), 1)
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, [
2489
+ o(_(e.texts.resultsBefore) + " ", 1),
2490
+ a("span", ni, _(u.from) + " - " + _(u.to), 1),
2491
+ o(" " + _(e.texts.resultsOf) + " ", 1),
2492
+ a("span", ri, _(u.total), 1),
2493
+ o(" " + _(e.texts.resultsAfter), 1)
2127
2494
  ])) : r("", !0),
2128
- a("div", Lr, [u.nextPageUrl === null ? r("", !0) : (d(), i("a", {
2495
+ a("div", ii, [u.nextPageUrl === null ? r("", !0) : (f(), i("a", {
2129
2496
  key: 0,
2130
2497
  href: u.nextPageUrl,
2131
- 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",
2498
+ 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",
2132
2499
  onClick: t[1] ||= (t) => e.followLink(t, u.nextPageUrl)
2133
- }, [o(g(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, Rr))])
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))])
2134
2501
  ])) : r("", !0);
2135
2502
  }
2136
- var Br = /*#__PURE__*/ A(Ar, [["render", zr]]), Vr = [
2503
+ var si = /*#__PURE__*/ N(Zr, [["render", oi]]), ci = [
2137
2504
  "left",
2138
2505
  "center",
2139
2506
  "right"
2140
2507
  ];
2141
- function Hr(e) {
2508
+ function li(e) {
2142
2509
  if (typeof e != "object" || !e || typeof e.key != "string" || e.key === "") return null;
2143
2510
  let t = e.key;
2144
2511
  return {
@@ -2147,21 +2514,21 @@ function Hr(e) {
2147
2514
  value: typeof e.value == "function" ? e.value : (e) => e?.[t],
2148
2515
  secondary: typeof e.secondary == "function" ? e.secondary : null,
2149
2516
  muted: e.muted === !0,
2150
- align: Vr.includes(e.align) ? e.align : "left",
2517
+ align: ci.includes(e.align) ? e.align : "left",
2151
2518
  wrap: e.wrap === !0,
2152
2519
  narrow: e.narrow === !0,
2153
2520
  visible: e.visible !== !1
2154
2521
  };
2155
2522
  }
2156
- function Ur(e) {
2523
+ function ui(e) {
2157
2524
  return typeof e == "string" && e !== "" ? e : null;
2158
2525
  }
2159
- var Wr = {
2526
+ var di = {
2160
2527
  components: {
2161
- Pagination: Br,
2162
- InfoPill: q
2528
+ Pagination: si,
2529
+ InfoPill: mn
2163
2530
  },
2164
- mixins: [M, k],
2531
+ mixins: [I, M],
2165
2532
  props: {
2166
2533
  rows: {
2167
2534
  type: Array,
@@ -2206,7 +2573,7 @@ var Wr = {
2206
2573
  return Array.isArray(this.rows) ? this.rows : [];
2207
2574
  },
2208
2575
  visibleColumns() {
2209
- return (Array.isArray(this.columns) ? this.columns : []).map(Hr).filter((e) => e !== null && e.visible);
2576
+ return (Array.isArray(this.columns) ? this.columns : []).map(li).filter((e) => e !== null && e.visible);
2210
2577
  },
2211
2578
  rowStripes() {
2212
2579
  return this.normalizedRows.map((e) => this.stripeOf(e));
@@ -2225,10 +2592,10 @@ var Wr = {
2225
2592
  },
2226
2593
  badgeText() {
2227
2594
  if (this.hasRecords) {
2228
- let e = Ur(this.foundText);
2595
+ let e = ui(this.foundText);
2229
2596
  return e === null ? null : `${e}: ${this.recordCount}`;
2230
2597
  }
2231
- return Ur(this.emptyText);
2598
+ return ui(this.emptyText);
2232
2599
  }
2233
2600
  },
2234
2601
  methods: {
@@ -2248,29 +2615,29 @@ var Wr = {
2248
2615
  stripeOf(e) {
2249
2616
  if (typeof this.rowStripe != "function") return null;
2250
2617
  let t = this.rowStripe(e);
2251
- return O(t) ? t : null;
2618
+ return j(t) ? t : null;
2252
2619
  },
2253
2620
  textOf(e, t) {
2254
2621
  let n = e(t);
2255
2622
  return n == null ? "" : String(n);
2256
2623
  }
2257
2624
  }
2258
- }, Gr = { class: "bb:min-w-full bb:divide-y bb:divide-gray-200 bb:border-collapse" }, Kr = { class: "bb:bg-gray-50" }, qr = ["textContent"], Jr = { class: "bb:divide-y bb:divide-gray-200" }, Yr = ["textContent"], Xr = ["textContent"];
2259
- function Zr(t, o, s, c, l, h) {
2260
- let _ = m("info-pill"), v = m("pagination");
2261
- return d(), i("div", null, [
2262
- h.hasBadgeRow() ? (d(), i("div", {
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) {
2627
+ let g = h("info-pill"), v = h("pagination");
2628
+ return f(), i("div", null, [
2629
+ d.hasBadgeRow() ? (f(), i("div", {
2263
2630
  key: 0,
2264
- class: u(["bb:flex bb:justify-center bb:items-center bb:space-x-2", h.isCard ? "" : "bb:my-4"])
2265
- }, [h.badgeText === null ? r("", !0) : (d(), n(_, {
2631
+ class: u(["bb:flex bb:justify-center bb:items-center bb:space-x-2", d.isCard ? "" : "bb:my-4"])
2632
+ }, [d.badgeText === null ? r("", !0) : (f(), n(g, {
2266
2633
  key: 0,
2267
- text: h.badgeText,
2634
+ text: d.badgeText,
2268
2635
  color: "indigo"
2269
- }, null, 8, ["text"])), h.hasRecords ? p(t.$slots, "results-actions", {}, void 0, void 0, 1) : r("", !0)], 2)) : r("", !0),
2270
- h.normalizedRows.length > 0 ? (d(), i("div", {
2636
+ }, null, 8, ["text"])), d.hasRecords ? m(t.$slots, "results-actions", {}, void 0, void 0, 1) : r("", !0)], 2)) : r("", !0),
2637
+ d.normalizedRows.length > 0 ? (f(), i("div", {
2271
2638
  key: 1,
2272
- class: u(h.isCard && h.hasBadgeRow() ? "bb:mt-4" : "")
2273
- }, [a("div", { class: u(["bb:overflow-x-auto", h.isCard ? "bb:border-t bb:border-gray-200" : "bb:shadow-sm bb:border-b bb:border-gray-200 bb:rounded-lg"]) }, [a("table", Gr, [a("thead", null, [a("tr", Kr, [(d(!0), i(e, null, f(h.visibleColumns, (e) => (d(), i("th", {
2639
+ 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", {
2274
2641
  key: e.key,
2275
2642
  scope: "col",
2276
2643
  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", [{
@@ -2278,11 +2645,11 @@ function Zr(t, o, s, c, l, h) {
2278
2645
  "bb:text-center": e.align === "center",
2279
2646
  "bb:text-right": e.align === "right"
2280
2647
  }, { "bb:w-px": e.narrow }]]),
2281
- textContent: g(e.label)
2282
- }, null, 10, qr))), 128))])]), a("tbody", Jr, [(d(!0), i(e, null, f(h.normalizedRows, (n, o) => (d(), i("tr", {
2283
- key: h.keyOf(n, o),
2648
+ textContent: _(e.label)
2649
+ }, null, 10, mi))), 128))])]), a("tbody", hi, [(f(!0), i(e, null, p(d.normalizedRows, (n, o) => (f(), i("tr", {
2650
+ key: d.keyOf(n, o),
2284
2651
  class: "bb:bg-white bb:even:bg-gray-50"
2285
- }, [(d(!0), i(e, null, f(h.visibleColumns, (e, s) => (d(), i("td", {
2652
+ }, [(f(!0), i(e, null, p(d.visibleColumns, (e, s) => (f(), i("td", {
2286
2653
  key: e.key,
2287
2654
  class: u(["bb:px-6 bb:py-4 bb:align-top bb:relative bb:text-sm bb:leading-5", [
2288
2655
  { "bb:whitespace-nowrap": !e.wrap },
@@ -2293,27 +2660,27 @@ function Zr(t, o, s, c, l, h) {
2293
2660
  },
2294
2661
  { "bb:w-px": e.narrow }
2295
2662
  ]])
2296
- }, [s === 0 && h.rowStripes[o] !== null ? (d(), i("span", {
2663
+ }, [s === 0 && d.rowStripes[o] !== null ? (f(), i("span", {
2297
2664
  key: 0,
2298
- class: u(["bb:absolute bb:left-0 bb:inset-y-0 bb:w-1 bb:bg-current", t.colorClass(h.rowStripes[o], "mark")]),
2665
+ class: u(["bb:absolute bb:left-0 bb:inset-y-0 bb:w-1 bb:bg-current", t.colorClass(d.rowStripes[o], "mark")]),
2299
2666
  "aria-hidden": "true"
2300
- }, null, 2)) : r("", !0), p(t.$slots, `cell-${e.key}`, {
2667
+ }, null, 2)) : r("", !0), m(t.$slots, `cell-${e.key}`, {
2301
2668
  row: n,
2302
2669
  index: o
2303
2670
  }, () => [a("div", {
2304
2671
  class: u(["bb:font-medium", e.muted ? "bb:text-gray-400" : "bb:text-gray-900"]),
2305
- textContent: g(h.textOf(e.value, n))
2306
- }, null, 10, Yr), e.secondary !== null && h.textOf(e.secondary, n) !== "" ? (d(), i("div", {
2672
+ textContent: _(d.textOf(e.value, n))
2673
+ }, null, 10, gi), e.secondary !== null && d.textOf(e.secondary, n) !== "" ? (f(), i("div", {
2307
2674
  key: 0,
2308
2675
  class: "bb:text-gray-400",
2309
- textContent: g(h.textOf(e.secondary, n))
2310
- }, null, 8, Xr)) : r("", !0)])], 2))), 128))]))), 128))])])], 2)], 2)) : r("", !0),
2311
- h.hasMeta ? (d(), n(v, {
2676
+ textContent: _(d.textOf(e.secondary, n))
2677
+ }, null, 8, _i)) : r("", !0)])], 2))), 128))]))), 128))])])], 2)], 2)) : r("", !0),
2678
+ d.hasMeta ? (f(), n(v, {
2312
2679
  key: 2,
2313
2680
  meta: s.meta,
2314
2681
  links: s.links ?? {},
2315
2682
  lang: t.lang,
2316
- class: u(h.isCard ? "bb:mt-4" : "bb:mt-6")
2683
+ class: u(d.isCard ? "bb:mt-4" : "bb:mt-6")
2317
2684
  }, null, 8, [
2318
2685
  "meta",
2319
2686
  "links",
@@ -2322,8 +2689,8 @@ function Zr(t, o, s, c, l, h) {
2322
2689
  ])) : r("", !0)
2323
2690
  ]);
2324
2691
  }
2325
- var Qr = /*#__PURE__*/ A(Wr, [["render", Zr]]), $r = {
2326
- mixins: [X],
2692
+ var yi = /*#__PURE__*/ N(di, [["render", vi]]), bi = {
2693
+ mixins: [Z],
2327
2694
  props: {
2328
2695
  url: {
2329
2696
  type: String,
@@ -2338,17 +2705,17 @@ var Qr = /*#__PURE__*/ A(Wr, [["render", Zr]]), $r = {
2338
2705
  default: !1
2339
2706
  }
2340
2707
  }
2341
- }, ei = ["href", "textContent"];
2342
- function ti(e, t, n, r, a, o) {
2343
- return d(), i("a", {
2708
+ }, xi = ["href", "textContent"];
2709
+ function Si(e, t, n, r, a, o) {
2710
+ return f(), i("a", {
2344
2711
  href: n.url,
2345
2712
  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"]),
2346
2713
  onClick: t[0] ||= (t) => e.followLink(t, n.url),
2347
- textContent: g(n.name)
2348
- }, null, 10, ei);
2714
+ textContent: _(n.name)
2715
+ }, null, 10, xi);
2349
2716
  }
2350
- var ni = /*#__PURE__*/ A($r, [["render", ti]]), ri = {
2351
- mixins: [M, X],
2717
+ var Ci = /*#__PURE__*/ N(bi, [["render", Si]]), wi = {
2718
+ mixins: [I, Z],
2352
2719
  props: {
2353
2720
  tabs: {
2354
2721
  type: Array,
@@ -2362,38 +2729,38 @@ var ni = /*#__PURE__*/ A($r, [["render", ti]]), ri = {
2362
2729
  computed: { tabList() {
2363
2730
  return Array.isArray(this.tabs) ? this.tabs.filter((e) => typeof e == "object" && !!e) : [];
2364
2731
  } }
2365
- }, ii = ["aria-label"], ai = [
2732
+ }, Ti = ["aria-label"], Ei = [
2366
2733
  "href",
2367
2734
  "aria-current",
2368
2735
  "onClick",
2369
2736
  "textContent"
2370
2737
  ];
2371
- function oi(t, n, r, a, o, s) {
2372
- return d(), i("nav", {
2738
+ function Di(t, n, r, a, o, s) {
2739
+ return f(), i("nav", {
2373
2740
  class: "bb-dashboard-ui bb:flex bb:space-x-4",
2374
2741
  "aria-label": t.texts.tabs
2375
- }, [(d(!0), i(e, null, f(s.tabList, (e) => (d(), i("a", {
2742
+ }, [(f(!0), i(e, null, p(s.tabList, (e) => (f(), i("a", {
2376
2743
  key: e.key,
2377
2744
  href: e.url,
2378
2745
  "aria-current": e.key === r.activeKey ? "page" : null,
2379
- class: u(["bb:px-3 bb:py-2 bb:font-medium bb:text-sm bb:rounded-md", e.key === r.activeKey ? "bb:bg-indigo-100 bb:text-gray-700" : "bb:text-gray-500 bb:hover:text-gray-700"]),
2746
+ 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"]),
2380
2747
  onClick: (n) => t.followLink(n, e.url),
2381
- textContent: g(e.name)
2382
- }, null, 10, ai))), 128))], 8, ii);
2748
+ textContent: _(e.name)
2749
+ }, null, 10, Ei))), 128))], 8, Ti);
2383
2750
  }
2384
- var si = /*#__PURE__*/ A(ri, [["render", oi]]), ci = [
2751
+ var Oi = /*#__PURE__*/ N(wi, [["render", Di]]), ki = [
2385
2752
  "xl",
2386
2753
  "4xl",
2387
2754
  "7xl"
2388
- ], li = {
2389
- components: { CrossButton: N },
2390
- mixins: [M],
2755
+ ], Ai = {
2756
+ components: { CrossButton: L },
2757
+ mixins: [I],
2391
2758
  inheritAttrs: !1,
2392
2759
  props: {
2393
2760
  width: {
2394
2761
  type: String,
2395
2762
  default: "xl",
2396
- validator: (e) => ci.includes(e)
2763
+ validator: (e) => ki.includes(e)
2397
2764
  },
2398
2765
  fallbackUrl: {
2399
2766
  type: String,
@@ -2409,13 +2776,13 @@ var si = /*#__PURE__*/ A(ri, [["render", oi]]), ci = [
2409
2776
  },
2410
2777
  computed: {
2411
2778
  resolvedWidth() {
2412
- return ci.includes(this.width) ? this.width : "xl";
2779
+ return ki.includes(this.width) ? this.width : "xl";
2413
2780
  },
2414
2781
  windows() {
2415
2782
  return this.uiSettings.windows;
2416
2783
  },
2417
2784
  resolvedKey() {
2418
- return this.windowKey !== null && this.windowKey !== "" ? this.windowKey : this.windows === null ? null : ae(this.windows.page.address);
2785
+ return this.windowKey !== null && this.windowKey !== "" ? this.windowKey : this.windows === null ? null : oe(this.windows.page.address);
2419
2786
  },
2420
2787
  target() {
2421
2788
  return this.returnAddress === null ? this.fallbackUrl === null || this.fallbackUrl === "" ? null : this.fallbackUrl : this.returnAddress;
@@ -2428,14 +2795,14 @@ var si = /*#__PURE__*/ A(ri, [["render", oi]]), ci = [
2428
2795
  this.windows !== null && me(this.windows.state, this, this.fallbackAddress());
2429
2796
  } },
2430
2797
  mounted() {
2431
- 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" }));
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" }));
2432
2799
  },
2433
2800
  beforeUnmount() {
2434
2801
  this.windows !== null && pe(this.windows.state, this);
2435
2802
  },
2436
2803
  methods: {
2437
2804
  fallbackAddress() {
2438
- return w(this.fallbackUrl, window.location.origin);
2805
+ return T(this.fallbackUrl, window.location.origin);
2439
2806
  },
2440
2807
  forwardedAttrs() {
2441
2808
  return Object.fromEntries(Object.entries(this.$attrs).filter(([e]) => e.startsWith("data-") || e.startsWith("aria-")));
@@ -2456,39 +2823,38 @@ var si = /*#__PURE__*/ A(ri, [["render", oi]]), ci = [
2456
2823
  }
2457
2824
  }
2458
2825
  };
2459
- function ui(e, t, a, s, c, f) {
2460
- let h = m("cross-button");
2461
- return d(), i("div", l({
2826
+ function ji(e, t, a, s, c, d) {
2827
+ let p = h("cross-button");
2828
+ return f(), i("div", l({
2462
2829
  class: ["bb:box-border bb:relative bb:my-6 bb:mx-auto bb:bg-white bb:shadow-xl bb:rounded-lg", [
2463
2830
  {
2464
- "bb:max-w-xl": f.resolvedWidth === "xl",
2465
- "bb:max-w-4xl": f.resolvedWidth === "4xl",
2466
- "bb:max-w-7xl": f.resolvedWidth === "7xl"
2831
+ "bb:max-w-xl": d.resolvedWidth === "xl",
2832
+ "bb:max-w-4xl": d.resolvedWidth === "4xl",
2833
+ "bb:max-w-7xl": d.resolvedWidth === "7xl"
2467
2834
  },
2468
- f.canClose ? {
2469
- "bb:[--bb-closer-space:3.5rem] bb:md:[--bb-closer-space:0px]": f.resolvedWidth === "xl",
2470
- "bb:[--bb-closer-space:3.5rem] bb:lg:[--bb-closer-space:0px]": f.resolvedWidth === "4xl",
2471
- "bb:[--bb-closer-space:3.5rem] bb:2xl:[--bb-closer-space:0px]": f.resolvedWidth === "7xl"
2835
+ d.canClose ? {
2836
+ "bb:[--bb-closer-space:3.5rem] bb:md:[--bb-closer-space:0px]": d.resolvedWidth === "xl",
2837
+ "bb:[--bb-closer-space:3.5rem] bb:lg:[--bb-closer-space:0px]": d.resolvedWidth === "4xl",
2838
+ "bb:[--bb-closer-space:3.5rem] bb:2xl:[--bb-closer-space:0px]": d.resolvedWidth === "7xl"
2472
2839
  } : "bb:[--bb-closer-space:0px]",
2473
2840
  e.$attrs.class
2474
2841
  ]],
2475
2842
  style: e.$attrs.style
2476
- }, { ...f.forwardedAttrs() }), [p(e.$slots, "default", { close: f.close }), f.canClose ? (d(), n(h, {
2843
+ }, { ...d.forwardedAttrs() }), [m(e.$slots, "default", { close: d.close }), d.canClose ? (f(), n(p, {
2477
2844
  key: 0,
2478
2845
  size: "large",
2479
- class: u(["bb:absolute bb:top-0 bb:right-0 bb:mt-6 bb:mr-4 bb:w-8 bb:h-8 bb:rounded-md bb:focus-visible:ring-2 bb:focus-visible:ring-indigo-500", {
2480
- "bb:md:right-auto bb:md:left-full bb:md:mr-0 bb:md:ml-4": f.resolvedWidth === "xl",
2481
- "bb:lg:right-auto bb:lg:left-full bb:lg:mr-0 bb:lg:ml-4": f.resolvedWidth === "4xl",
2482
- "bb:2xl:right-auto bb:2xl:left-full bb:2xl:mr-0 bb:2xl:ml-4": f.resolvedWidth === "7xl"
2846
+ class: u(["bb:absolute bb:top-0 bb:right-0 bb:mt-6 bb:mr-4 bb:w-8 bb:h-8", {
2847
+ "bb:md:right-auto bb:md:left-full bb:md:mr-0 bb:md:ml-4": d.resolvedWidth === "xl",
2848
+ "bb:lg:right-auto bb:lg:left-full bb:lg:mr-0 bb:lg:ml-4": d.resolvedWidth === "4xl",
2849
+ "bb:2xl:right-auto bb:2xl:left-full bb:2xl:mr-0 bb:2xl:ml-4": d.resolvedWidth === "7xl"
2483
2850
  }]),
2484
- tabindex: "0",
2485
- onClicked: f.close
2851
+ onClicked: d.close
2486
2852
  }, {
2487
- default: b(() => [o(g(e.texts.back), 1)]),
2853
+ default: b(() => [o(_(e.texts.back), 1)]),
2488
2854
  _: 1
2489
2855
  }, 8, ["class", "onClicked"])) : r("", !0)], 16);
2490
2856
  }
2491
- var di = /*#__PURE__*/ A(li, [["render", ui]]), fi = {}, pi = {
2857
+ var Mi = /*#__PURE__*/ N(Ai, [["render", ji]]), Ni = {}, Pi = {
2492
2858
  class: "bb:h-7 bb:w-7 bb:text-green-600",
2493
2859
  xmlns: "http://www.w3.org/2000/svg",
2494
2860
  fill: "none",
@@ -2497,22 +2863,22 @@ var di = /*#__PURE__*/ A(li, [["render", ui]]), fi = {}, pi = {
2497
2863
  stroke: "currentColor",
2498
2864
  "aria-hidden": "true"
2499
2865
  };
2500
- function mi(e, t, n, r, o, s) {
2501
- return d(), i("svg", pi, [...t[0] ||= [a("path", {
2866
+ function Fi(e, t, n, r, o, s) {
2867
+ return f(), i("svg", Pi, [...t[0] ||= [a("path", {
2502
2868
  "stroke-linecap": "round",
2503
2869
  "stroke-linejoin": "round",
2504
2870
  d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
2505
2871
  }, null, -1)]]);
2506
2872
  }
2507
- var hi = /*#__PURE__*/ A(fi, [["render", mi]]), gi = {}, _i = {
2873
+ var Ii = /*#__PURE__*/ N(Ni, [["render", Fi]]), Li = {}, Ri = {
2508
2874
  class: "bb:h-5 bb:w-5",
2509
2875
  xmlns: "http://www.w3.org/2000/svg",
2510
2876
  viewBox: "0 0 20 20",
2511
2877
  fill: "currentColor",
2512
2878
  "aria-hidden": "true"
2513
2879
  };
2514
- function vi(e, t, n, r, o, s) {
2515
- return d(), i("svg", _i, [...t[0] ||= [a("path", {
2880
+ function zi(e, t, n, r, o, s) {
2881
+ return f(), i("svg", Ri, [...t[0] ||= [a("path", {
2516
2882
  "fill-rule": "evenodd",
2517
2883
  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",
2518
2884
  "clip-rule": "evenodd"
@@ -2520,14 +2886,14 @@ function vi(e, t, n, r, o, s) {
2520
2886
  }
2521
2887
  //#endregion
2522
2888
  //#region src/components/NotificationMessage.vue
2523
- var yi = {
2889
+ var Bi = {
2524
2890
  components: {
2525
- Check: hi,
2526
- Close: /* @__PURE__ */ A(gi, [["render", vi]]),
2527
- Dangerous: Y,
2528
- Warning: Hn
2891
+ Check: Ii,
2892
+ Close: /* @__PURE__ */ N(Li, [["render", zi]]),
2893
+ Dangerous: ir,
2894
+ Warning: cr
2529
2895
  },
2530
- mixins: [M],
2896
+ mixins: [I],
2531
2897
  emits: ["update:modelValue"],
2532
2898
  props: {
2533
2899
  modelValue: {
@@ -2565,38 +2931,38 @@ var yi = {
2565
2931
  return this.type === "confirmation";
2566
2932
  }
2567
2933
  }
2568
- }, bi = ["role"], xi = { class: "bb:p-4" }, Si = { class: "bb:flex bb:items-start" }, Ci = { class: "bb:shrink-0" }, wi = { class: "bb:ml-3 bb:w-0 bb:flex-1 bb:pt-0.5" }, Ti = { class: "bb:text-sm bb:font-medium bb:text-gray-900" }, Ei = { class: "bb:mt-1 bb:text-sm bb:text-gray-500" }, Di = { class: "bb:ml-4 bb:shrink-0 bb:flex" }, Oi = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2569
- function ki(e, t, o, c, l, f) {
2570
- let p = m("warning"), h = m("dangerous"), _ = m("check"), v = m("close");
2571
- return d(), i("div", {
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) {
2936
+ let p = h("warning"), m = h("dangerous"), g = h("check"), v = h("close");
2937
+ return f(), i("div", {
2572
2938
  class: "bb-dashboard-ui bb:fixed bb:inset-0 bb:flex bb:items-start bb:justify-end bb:p-6 bb:pointer-events-none",
2573
- role: f.isDangerous ? "alert" : "status"
2574
- }, [f.hasMessage ? (d(), i("div", {
2939
+ role: d.isDangerous ? "alert" : "status"
2940
+ }, [d.hasMessage ? (f(), i("div", {
2575
2941
  key: 0,
2576
2942
  class: u(["bb:max-w-sm bb:w-full bb:shadow-lg bb:rounded-lg bb:pointer-events-auto bb:ring-1 bb:ring-black/5 bb:overflow-hidden", {
2577
- "bb:bg-red-50": f.isDangerous,
2578
- "bb:bg-yellow-50": f.isWarning,
2579
- "bb:bg-gray-50": f.isConfirmation
2943
+ "bb:bg-red-50": d.isDangerous,
2944
+ "bb:bg-yellow-50": d.isWarning,
2945
+ "bb:bg-gray-50": d.isConfirmation
2580
2946
  }])
2581
- }, [a("div", xi, [a("div", Si, [
2582
- a("div", Ci, [
2583
- f.isWarning ? (d(), n(p, { key: 0 })) : r("", !0),
2584
- f.isDangerous ? (d(), n(h, { key: 1 })) : r("", !0),
2585
- f.isConfirmation ? (d(), n(_, { key: 2 })) : r("", !0)
2947
+ }, [a("div", Hi, [a("div", Ui, [
2948
+ a("div", Wi, [
2949
+ d.isWarning ? (f(), n(p, { key: 0 })) : r("", !0),
2950
+ d.isDangerous ? (f(), n(m, { key: 1 })) : r("", !0),
2951
+ d.isConfirmation ? (f(), n(g, { key: 2 })) : r("", !0)
2586
2952
  ]),
2587
- a("div", wi, [a("p", Ti, g(o.notificationHeading), 1), a("p", Ei, g(f.text), 1)]),
2588
- a("div", Di, [a("button", {
2953
+ a("div", Gi, [a("p", Ki, _(o.notificationHeading), 1), a("p", qi, _(d.text), 1)]),
2954
+ a("div", Ji, [a("button", {
2589
2955
  type: "button",
2590
- class: u(["bb:rounded-md bb:inline-flex bb:text-gray-400 bb:hover:text-gray-500 bb:focus:outline-hidden bb:focus:ring-2 bb:focus:ring-offset-2 bb:focus:ring-indigo-500", {
2591
- "bb:bg-red-50": f.isDangerous,
2592
- "bb:bg-yellow-50": f.isWarning,
2593
- "bb:bg-gray-50": f.isConfirmation
2956
+ class: u(["bb:rounded-md bb:inline-flex bb:text-gray-400 bb:hover:text-gray-500 bb:focus:focus-ring", {
2957
+ "bb:bg-red-50": d.isDangerous,
2958
+ "bb:bg-yellow-50": d.isWarning,
2959
+ "bb:bg-gray-50": d.isConfirmation
2594
2960
  }]),
2595
- onClick: t[0] ||= S((t) => e.$emit("update:modelValue", ""), ["prevent"])
2596
- }, [a("span", Oi, g(e.texts.close), 1), s(v, { class: "bb:pointer-events-none bb:cursor-default" })], 2)])
2597
- ])])], 2)) : r("", !0)], 8, bi);
2961
+ 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);
2598
2964
  }
2599
- var Ai = /*#__PURE__*/ A(yi, [["render", ki]]), ji = {}, Mi = {
2965
+ var Zi = /*#__PURE__*/ N(Bi, [["render", Xi]]), Qi = {}, $i = {
2600
2966
  class: "bb:h-5 bb:w-5",
2601
2967
  xmlns: "http://www.w3.org/2000/svg",
2602
2968
  fill: "none",
@@ -2605,8 +2971,8 @@ var Ai = /*#__PURE__*/ A(yi, [["render", ki]]), ji = {}, Mi = {
2605
2971
  "stroke-width": "2",
2606
2972
  "aria-hidden": "true"
2607
2973
  };
2608
- function Ni(e, t, n, r, o, s) {
2609
- return d(), i("svg", Mi, [...t[0] ||= [a("path", {
2974
+ function ea(e, t, n, r, o, s) {
2975
+ return f(), i("svg", $i, [...t[0] ||= [a("path", {
2610
2976
  "stroke-linecap": "round",
2611
2977
  "stroke-linejoin": "round",
2612
2978
  d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
@@ -2616,12 +2982,12 @@ function Ni(e, t, n, r, o, s) {
2616
2982
  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"
2617
2983
  }, null, -1)]]);
2618
2984
  }
2619
- var Pi = /*#__PURE__*/ A(ji, [["render", Ni]]), Q = 0, $ = null, Fi = {
2985
+ var ta = /*#__PURE__*/ N(Qi, [["render", ea]]), Q = 0, $ = null, na = {
2620
2986
  components: {
2621
- PopoverPanel: H,
2622
- Eye: Pi
2987
+ PopoverPanel: K,
2988
+ Eye: ta
2623
2989
  },
2624
- mixins: [M],
2990
+ mixins: [I],
2625
2991
  emits: ["update:modelValue"],
2626
2992
  props: {
2627
2993
  text: {
@@ -2664,10 +3030,10 @@ var Pi = /*#__PURE__*/ A(ji, [["render", Ni]]), Q = 0, $ = null, Fi = {
2664
3030
  this.holdsPageSelectionLock && (this.holdsPageSelectionLock = !1, --Q, Q === 0 && (Object.assign(document.documentElement.style, $), $ = null));
2665
3031
  }
2666
3032
  }
2667
- }, Ii = ["id", "popovertarget"], Li = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2668
- function Ri(e, t, r, i, c, l) {
2669
- let u = m("eye"), f = m("popover-panel");
2670
- return d(), n(f, {
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) {
3035
+ let u = h("eye"), d = h("popover-panel");
3036
+ return f(), n(d, {
2671
3037
  class: "bb-dashboard-ui bb:inline-flex",
2672
3038
  "has-content": !l.isEmpty,
2673
3039
  "model-value": r.modelValue,
@@ -2676,7 +3042,7 @@ function Ri(e, t, r, i, c, l) {
2676
3042
  "panel-role": "region",
2677
3043
  "panel-label": e.texts.fullText,
2678
3044
  "panel-focusable": "",
2679
- "panel-class": "bb:p-3 bb:rounded-md bb:border bb:border-gray-200 bb:bg-white bb:shadow-lg bb:text-left bb:text-sm bb:leading-5 bb:text-gray-700 bb:whitespace-normal bb:break-words bb:overscroll-contain bb:select-text bb:focus:outline-hidden bb:focus-visible:ring-2 bb:focus-visible:ring-indigo-500",
3045
+ "panel-class": "bb:p-3 bb:rounded-md bb:border bb:border-gray-200 bb:bg-white bb:shadow-lg bb:text-left bb:text-sm bb:leading-5 bb:text-gray-700 bb:whitespace-normal bb:break-words bb:overscroll-contain bb:select-text bb:focus-visible:focus-ring",
2680
3046
  "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:modelValue", t),
2681
3047
  onToggle: l.onPanelToggle
2682
3048
  }, {
@@ -2684,9 +3050,9 @@ function Ri(e, t, r, i, c, l) {
2684
3050
  type: "button",
2685
3051
  id: t.id,
2686
3052
  popovertarget: t.popovertarget,
2687
- class: "bb:relative bb:text-gray-400 bb:hover:text-gray-600 bb:rounded-md bb:focus:outline-hidden bb:focus-visible:ring-2 bb:focus-visible:ring-indigo-500"
2688
- }, [a("span", Li, g(e.texts.showText), 1), s(u, { class: "bb:pointer-events-none bb:cursor-default" })], 8, Ii)]),
2689
- default: b(() => [o(g(l.normalizedText), 1)]),
3053
+ 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)]),
3055
+ default: b(() => [o(_(l.normalizedText), 1)]),
2690
3056
  _: 1
2691
3057
  }, 8, [
2692
3058
  "has-content",
@@ -2695,6 +3061,6 @@ function Ri(e, t, r, i, c, l) {
2695
3061
  "onToggle"
2696
3062
  ]);
2697
3063
  }
2698
- var zi = /*#__PURE__*/ A(Fi, [["render", Ri]]);
3064
+ var oa = /*#__PURE__*/ N(na, [["render", aa]]);
2699
3065
  //#endregion
2700
- export { On as ActionPill, Qn as ConfirmationModal, Qr as DataTable, Oe as Dot, gr as DropdownButtonWithAction, un as ErrorMessages, xr as HamburgerMenu, q as InfoPill, ni as NavigationMenuElement, Ai as NotificationMessage, di as PageCard, si as PageTabs, Ze as RussianMobileFilter, it as Search, Ft as SelectDateInterval, $t as SelectSingle, zi as TextPopover, ve as dashboardUi, Se as downloadFile };
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 };