@boobooking/dashboard-ui-components 0.17.0 → 0.18.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 re, withModifiers as S } from "vue";
2
+ import ie from "imask";
3
3
  //#region src/i18n.js
4
- var re = ["ru", "en"];
5
- function C(e) {
6
- return re.includes(e);
4
+ var C = ["ru", "en"];
5
+ function w(e) {
6
+ return C.includes(e);
7
7
  }
8
- var ie = {
8
+ var ae = {
9
9
  ru: {
10
10
  cancel: "Отмена",
11
11
  openMenu: "Открыть меню",
@@ -111,15 +111,15 @@ var ie = {
111
111
  };
112
112
  //#endregion
113
113
  //#region src/windows.js
114
- function w(e, t) {
114
+ function oe(e, t) {
115
115
  if (e == null || e === "") return null;
116
116
  let n = new URL(String(e), t);
117
117
  return n.pathname + n.search;
118
118
  }
119
- function ae(e) {
119
+ function se(e) {
120
120
  return e === null ? null : e.split("?")[0];
121
121
  }
122
- function oe() {
122
+ function ce() {
123
123
  return {
124
124
  windows: [],
125
125
  cards: /* @__PURE__ */ new Map(),
@@ -136,32 +136,32 @@ function oe() {
136
136
  function T(e, t) {
137
137
  return e.windows.includes(t);
138
138
  }
139
- function se(e) {
139
+ function le(e) {
140
140
  return e.returnAddress ?? e.fallbackAddress;
141
141
  }
142
- function ce(e) {
142
+ function ue(e) {
143
143
  let t = null;
144
144
  for (let n of e.cards.values()) t = n.window;
145
145
  return t;
146
146
  }
147
- function le(e, t) {
147
+ function de(e, t) {
148
148
  let n = t;
149
149
  for (; n !== null && !T(e, n);) n = n.parent;
150
150
  return n;
151
151
  }
152
- function ue(e, t) {
152
+ function fe(e, t) {
153
153
  return e.transition = {
154
154
  number: e.transition.number + 1,
155
155
  fromAddress: e.shown,
156
- fromWindow: ce(e),
156
+ fromWindow: ue(e),
157
157
  assigned: /* @__PURE__ */ new Map()
158
158
  }, e.shown = t, e.transition.number;
159
159
  }
160
- function de(e, t, n) {
160
+ function pe(e, t, n) {
161
161
  let r = e.transition, i = r.assigned.get(t);
162
162
  if (i !== void 0 && T(e, i)) return i;
163
163
  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);
164
+ a !== null && !T(e, a) && (a = de(e, a), o = null), a !== null && le(a) === e.shown && (e.windows.splice(e.windows.indexOf(a)), a = a.parent === null ? null : de(e, a.parent), o = null);
165
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;
166
166
  a === null ? e.windows = [] : e.windows.splice(e.windows.indexOf(a) + 1);
167
167
  let s = {
@@ -174,14 +174,14 @@ function de(e, t, n) {
174
174
  return e.nextId += 1, e.windows.push(s), s;
175
175
  }
176
176
  function E(e, t, n, r) {
177
- let i = de(e, n, r);
177
+ let i = pe(e, n, r);
178
178
  return i.fallbackAddress = r, e.transition.assigned.set(n, i), e.cards.delete(t), e.cards.set(t, {
179
179
  key: n,
180
180
  window: i,
181
181
  processed: e.transition.number
182
182
  }), i;
183
183
  }
184
- function fe(e, t, n, r) {
184
+ function me(e, t, n, r) {
185
185
  let i = e.cards.get(t);
186
186
  return i === void 0 ? {
187
187
  window: E(e, t, n, r),
@@ -201,32 +201,32 @@ function fe(e, t, n, r) {
201
201
  key: n
202
202
  });
203
203
  }
204
- function pe(e, t) {
204
+ function he(e, t) {
205
205
  e.cards.delete(t);
206
206
  }
207
- function me(e, t, n) {
207
+ function ge(e, t, n) {
208
208
  let r = e.cards.get(t);
209
209
  r !== void 0 && (r.window.fallbackAddress = n);
210
210
  }
211
211
  //#endregion
212
212
  //#region src/plugin.js
213
- var D = Symbol("dashboardUi"), he = Object.freeze({
213
+ var _e = Symbol("dashboardUi"), ve = Object.freeze({
214
214
  lang: "ru",
215
215
  navigate: null,
216
216
  windows: null
217
- }), ge = { uiSettings: {
218
- from: D,
219
- default: () => he
217
+ }), D = { uiSettings: {
218
+ from: _e,
219
+ default: () => ve
220
220
  } };
221
- function _e(e, t) {
222
- let n = oe(), r = h({
221
+ function ye(e, t) {
222
+ let n = ce(), r = g({
223
223
  number: 0,
224
224
  address: null
225
225
  }), i = c(!0);
226
226
  return i.run(() => {
227
- ee(t, (e) => {
228
- let t = w(e, window.location.origin);
229
- t !== null && t !== r.address && (r.number = ue(n, t), r.address = t);
227
+ ne(t, (e) => {
228
+ let t = oe(e, window.location.origin);
229
+ t !== null && t !== r.address && (r.number = fe(n, t), r.address = t);
230
230
  }, {
231
231
  flush: "sync",
232
232
  immediate: !0
@@ -236,21 +236,21 @@ function _e(e, t) {
236
236
  page: r
237
237
  };
238
238
  }
239
- var ve = { install(e, t) {
239
+ var be = { install(e, t) {
240
240
  let n = t ?? {}, r = Object.hasOwn(n, "lang") ? n.lang : "ru";
241
- if (!C(r)) throw Error(`dashboardUi: неизвестный lang «${r}», допустимы: ${re.join(", ")}`);
241
+ if (!w(r)) throw Error(`dashboardUi: неизвестный lang «${r}», допустимы: ${C.join(", ")}`);
242
242
  let i = Object.hasOwn(n, "navigate"), a = i ? n.navigate : null;
243
243
  if (i && typeof a != "function") throw Error("dashboardUi: navigate должен быть функцией (href) => …");
244
244
  let o = Object.hasOwn(n, "currentUrl"), s = o ? n.currentUrl : null;
245
245
  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({
246
+ let c = s !== null && typeof window < "u" ? ye(e, s) : null;
247
+ e.provide(_e, Object.freeze({
248
248
  lang: r,
249
249
  navigate: a,
250
250
  windows: c
251
251
  }));
252
- } }, ye = 4e4;
253
- function be(e) {
252
+ } }, xe = 4e4;
253
+ function Se(e) {
254
254
  if (typeof e != "string") return null;
255
255
  let t = /filename\*\s*=\s*UTF-8''([^;]+)/i.exec(e);
256
256
  if (t !== null) try {
@@ -261,7 +261,7 @@ function be(e) {
261
261
  let r = /filename\s*=\s*([^;"\s]+)/i.exec(e);
262
262
  return r === null ? null : r[1];
263
263
  }
264
- function xe(e) {
264
+ function Ce(e) {
265
265
  try {
266
266
  let t = new URL(e, window.location.href).pathname.split("/").filter((e) => e !== "");
267
267
  return t.length === 0 ? null : decodeURIComponent(t[t.length - 1]);
@@ -269,7 +269,7 @@ function xe(e) {
269
269
  return null;
270
270
  }
271
271
  }
272
- async function Se(e) {
272
+ async function we(e) {
273
273
  let t = await fetch(e, { credentials: "same-origin" });
274
274
  if (t.redirected) throw Object.assign(/* @__PURE__ */ Error(`downloadFile: сервер перенаправил запрос ${e}`), {
275
275
  redirectUrl: t.url,
@@ -279,12 +279,12 @@ async function Se(e) {
279
279
  redirectUrl: null,
280
280
  status: t.status
281
281
  });
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);
282
+ let n = Se(t.headers.get("Content-Disposition")) ?? Ce(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), xe);
284
284
  }
285
285
  //#endregion
286
286
  //#region src/colors.js
287
- var Ce = {
287
+ var Te = {
288
288
  gray: {
289
289
  pill: "bb:bg-gray-100 bb:text-gray-800",
290
290
  pillHover: "bb:hover:text-gray-600",
@@ -327,18 +327,18 @@ var Ce = {
327
327
  menuItem: "bb:text-purple-800 bb:focus:bg-purple-100",
328
328
  mark: "bb:text-purple-500"
329
329
  }
330
- }, we = Object.keys(Ce);
330
+ }, Ee = Object.keys(Te);
331
331
  function O(e) {
332
- return we.includes(e);
332
+ return Ee.includes(e);
333
333
  }
334
- function Te(e, t) {
335
- return O(e) ? Ce[e][t] ?? "" : "";
334
+ function De(e, t) {
335
+ return O(e) ? Te[e][t] ?? "" : "";
336
336
  }
337
- var k = { methods: { colorClass: Te } }, A = (e, t) => {
337
+ var k = { methods: { colorClass: De } }, A = (e, t) => {
338
338
  let n = e.__vccOpts || e;
339
339
  for (let [e, r] of t) n[e] = r;
340
340
  return n;
341
- }, Ee = {
341
+ }, Oe = {
342
342
  mixins: [k],
343
343
  props: {
344
344
  withPulse: {
@@ -352,8 +352,8 @@ var k = { methods: { colorClass: Te } }, A = (e, t) => {
352
352
  }
353
353
  }
354
354
  };
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", {
355
+ function ke(e, t, n, r, o, s) {
356
+ 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
357
  class: "bb:fill-current bb:w-2 bb:h-2",
358
358
  viewBox: "0 0 120 120"
359
359
  }, [a("circle", {
@@ -362,8 +362,8 @@ function De(e, t, n, r, o, s) {
362
362
  r: "45"
363
363
  })], -1)]], 2);
364
364
  }
365
- var Oe = /*#__PURE__*/ A(Ee, [["render", De]]), ke = {
366
- components: { Dot: Oe },
365
+ var j = /*#__PURE__*/ A(Oe, [["render", ke]]), Ae = {
366
+ components: { Dot: j },
367
367
  props: {
368
368
  text: {
369
369
  type: String,
@@ -378,14 +378,14 @@ var Oe = /*#__PURE__*/ A(Ee, [["render", De]]), ke = {
378
378
  default: !1
379
379
  }
380
380
  }
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, [
381
+ }, je = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, Me = ["textContent"];
382
+ function Ne(e, t, n, r, o, c) {
383
+ let l = h("dot");
384
+ return f(), i("div", je, [
385
385
  a("div", {
386
386
  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),
387
+ textContent: _(n.text)
388
+ }, null, 8, Me),
389
389
  x(s(l, {
390
390
  color: "red",
391
391
  "with-pulse": !0,
@@ -397,26 +397,26 @@ function Me(e, t, n, r, o, c) {
397
397
  }, null, 512), [[y, n.isRequired]])
398
398
  ]);
399
399
  }
400
- var j = /*#__PURE__*/ A(ke, [["render", Me]]), M = {
401
- inject: ge,
400
+ var M = /*#__PURE__*/ A(Ae, [["render", Ne]]), N = {
401
+ inject: D,
402
402
  props: { lang: {
403
403
  type: String,
404
404
  default: null,
405
- validator: (e) => e === null || C(e)
405
+ validator: (e) => e === null || w(e)
406
406
  } },
407
407
  computed: {
408
408
  resolvedLang() {
409
- return C(this.lang) ? this.lang : this.uiSettings.lang;
409
+ return w(this.lang) ? this.lang : this.uiSettings.lang;
410
410
  },
411
411
  texts() {
412
- return ie[this.resolvedLang];
412
+ return ae[this.resolvedLang];
413
413
  }
414
414
  }
415
- }, Ne = [
415
+ }, Pe = [
416
416
  { transform: "scale(1)" },
417
417
  { transform: "scale(0.8)" },
418
418
  { transform: "scale(1)" }
419
- ], Pe = 150, Fe = {
419
+ ], Fe = 150, Ie = {
420
420
  created() {
421
421
  this.isPressing = !1, this.isUnmounted = !1;
422
422
  },
@@ -424,40 +424,40 @@ var j = /*#__PURE__*/ A(ke, [["render", Me]]), M = {
424
424
  this.isUnmounted = !0;
425
425
  },
426
426
  methods: { press() {
427
- this.isPressing || (this.isPressing = !0, Ie(this.$el).then(() => {
427
+ this.isPressing || (this.isPressing = !0, Le(this.$el).then(() => {
428
428
  this.isPressing = !1, this.isUnmounted || this.$emit("clicked");
429
429
  }));
430
430
  } }
431
431
  };
432
- function Ie(e) {
433
- if (typeof e.animate != "function" || Le()) return Promise.resolve();
432
+ function Le(e) {
433
+ if (typeof e.animate != "function" || Re()) return Promise.resolve();
434
434
  let t = () => {};
435
- return e.animate(Ne, {
436
- duration: Pe,
435
+ return e.animate(Pe, {
436
+ duration: Fe,
437
437
  easing: "ease-out"
438
438
  }).finished.then(t, t);
439
439
  }
440
- function Le() {
440
+ function Re() {
441
441
  return typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
442
442
  }
443
443
  //#endregion
444
444
  //#region src/components/CrossButton.vue
445
- var Re = {
446
- mixins: [M, Fe],
445
+ var ze = {
446
+ mixins: [N, Ie],
447
447
  props: { size: {
448
448
  type: String,
449
449
  required: !0,
450
450
  validator: (e) => ["small", "large"].includes(e)
451
451
  } },
452
452
  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", {
453
+ }, Be = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
454
+ function Ve(e, t, n, r, s, c) {
455
+ return f(), i("button", {
456
456
  type: "button",
457
457
  tabindex: "-1",
458
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
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", {
460
+ }, [a("span", Be, [m(e.$slots, "default", {}, () => [o(_(e.texts.clear), 1)])]), (f(), i("svg", {
461
461
  class: u(["bb:stroke-current bb:pointer-events-none bb:cursor-default", {
462
462
  "bb:w-6 bb:h-6": n.size === "small",
463
463
  "bb:w-8 bb:h-8": n.size === "large"
@@ -472,24 +472,24 @@ function Be(e, t, n, r, s, c) {
472
472
  d: "M6 18L18 6M6 6l12 12"
473
473
  }, null, -1)]], 2))]);
474
474
  }
475
- var N = /*#__PURE__*/ A(Re, [["render", Be]]), Ve = 10;
476
- function He(e) {
475
+ var P = /*#__PURE__*/ A(ze, [["render", Ve]]), He = 10;
476
+ function Ue(e) {
477
477
  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);
478
+ return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, He);
479
479
  }
480
- function P(e) {
480
+ function F(e) {
481
481
  return e === "" ? "" : `7${e}`;
482
482
  }
483
- function F(e) {
483
+ function I(e) {
484
484
  let t = e ?? "", n = t.startsWith("+") ? t.slice(1) : t;
485
485
  return n.startsWith("7") ? n.slice(1) : n;
486
486
  }
487
487
  //#endregion
488
488
  //#region src/components/RussianMobileFilter.vue
489
- var Ue = 400, We = 3, Ge = {
489
+ var We = 400, Ge = 3, Ke = {
490
490
  components: {
491
- ElementHeader: j,
492
- CrossButton: N
491
+ ElementHeader: M,
492
+ CrossButton: P
493
493
  },
494
494
  emits: ["update:modelValue", "changed"],
495
495
  props: {
@@ -511,32 +511,32 @@ var Ue = 400, We = 3, Ge = {
511
511
  }
512
512
  },
513
513
  data() {
514
- return { digits: F(this.modelValue) };
514
+ return { digits: I(this.modelValue) };
515
515
  },
516
516
  created() {
517
- this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = F(this.modelValue), this.isUnmounted = !1;
517
+ this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = I(this.modelValue), this.isUnmounted = !1;
518
518
  },
519
519
  mounted() {
520
- this.mask = ne(this.$refs.input, {
520
+ this.mask = ie(this.$refs.input, {
521
521
  mask: "+7 (000) 000 00 00",
522
522
  lazy: !0,
523
523
  prepare: (e, t) => t.unmaskedValue === "" && (e === "7" || e === "8") ? "" : e
524
524
  }), this.mask.on("accept", () => {
525
- this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", P(this.digits)), this.scheduleCommit());
525
+ this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", F(this.digits)), this.scheduleCommit());
526
526
  }), this.syncFromModelValue(this.modelValue);
527
527
  },
528
528
  beforeUnmount() {
529
529
  this.isUnmounted = !0, clearTimeout(this.debounceTimer), this.mask?.destroy();
530
530
  },
531
531
  watch: { modelValue(e) {
532
- e !== P(this.digits) && this.syncFromModelValue(e);
532
+ e !== F(this.digits) && this.syncFromModelValue(e);
533
533
  } },
534
534
  methods: {
535
535
  syncFromModelValue(e) {
536
- this.writeToMask(F(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
536
+ this.writeToMask(I(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
537
537
  },
538
538
  applyUserDigits(e) {
539
- this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", P(this.digits));
539
+ this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", F(this.digits));
540
540
  },
541
541
  writeToMask(e) {
542
542
  if (this.isWritingProgrammatically = !0, e === "") this.mask.value = "";
@@ -559,7 +559,7 @@ var Ue = 400, We = 3, Ge = {
559
559
  this.isUnmounted || (this.setLazy(!0), this.digits === "" && this.writeToMask(""), this.commit());
560
560
  },
561
561
  onPaste(e) {
562
- this.applyUserDigits(He(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
562
+ this.applyUserDigits(Ue(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
563
563
  },
564
564
  clear() {
565
565
  this.applyUserDigits(""), this.commit();
@@ -569,16 +569,16 @@ var Ue = 400, We = 3, Ge = {
569
569
  this.commit();
570
570
  return;
571
571
  }
572
- this.digits.length < We || (this.debounceTimer = setTimeout(() => this.commit(), Ue));
572
+ this.digits.length < Ge || (this.debounceTimer = setTimeout(() => this.commit(), We));
573
573
  },
574
574
  commit() {
575
575
  clearTimeout(this.debounceTimer), this.digits !== this.lastCommitted && (this.lastCommitted = this.digits, this.$emit("changed"));
576
576
  }
577
577
  }
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, {
578
+ }, qe = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Je = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Ye = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Xe = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
579
+ function Ze(e, t, n, r, o, c) {
580
+ let l = h("element-header"), u = h("cross-button");
581
+ return f(), i("div", qe, [a("div", Je, [s(l, {
582
582
  text: n.header,
583
583
  "is-required": n.isRequired,
584
584
  "is-loading": n.isLoading
@@ -586,7 +586,7 @@ function Xe(e, t, n, r, o, c) {
586
586
  "text",
587
587
  "is-required",
588
588
  "is-loading"
589
- ]), a("div", Je, [a("label", Ye, [a("input", {
589
+ ]), a("div", Ye, [a("label", Xe, [a("input", {
590
590
  ref: "input",
591
591
  type: "tel",
592
592
  inputmode: "tel",
@@ -594,7 +594,7 @@ function Xe(e, t, n, r, o, c) {
594
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",
595
595
  onFocus: t[0] ||= (...e) => c.onFocus && c.onFocus(...e),
596
596
  onBlur: t[1] ||= (...e) => c.onBlur && c.onBlur(...e),
597
- onKeydown: t[2] ||= te((...e) => c.commit && c.commit(...e), ["enter"]),
597
+ onKeydown: t[2] ||= re((...e) => c.commit && c.commit(...e), ["enter"]),
598
598
  onPaste: t[3] ||= S((...e) => c.onPaste && c.onPaste(...e), ["prevent"])
599
599
  }, null, 544)]), x(s(u, {
600
600
  size: "small",
@@ -603,10 +603,10 @@ function Xe(e, t, n, r, o, c) {
603
603
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
604
604
  }, null, 8, ["onClicked"]), [[y, o.digits.length > 0]])])])]);
605
605
  }
606
- var Ze = /*#__PURE__*/ A(Ge, [["render", Xe]]), Qe = {
606
+ var Qe = /*#__PURE__*/ A(Ke, [["render", Ze]]), $e = {
607
607
  components: {
608
- ElementHeader: j,
609
- CrossButton: N
608
+ ElementHeader: M,
609
+ CrossButton: P
610
610
  },
611
611
  emits: ["update:modelValue", "changed"],
612
612
  props: {
@@ -644,10 +644,10 @@ var Ze = /*#__PURE__*/ A(Ge, [["render", Xe]]), Qe = {
644
644
  this.$emit("update:modelValue", this.search), this.$emit("changed");
645
645
  }
646
646
  }
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, {
647
+ }, et = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, tt = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, nt = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, rt = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
648
+ function it(e, t, n, r, o, c) {
649
+ let l = h("element-header"), u = h("cross-button");
650
+ return f(), i("div", et, [a("div", tt, [s(l, {
651
651
  text: n.header,
652
652
  "is-required": n.isRequired,
653
653
  "is-loading": n.isLoading
@@ -655,12 +655,12 @@ function rt(e, t, n, r, o, c) {
655
655
  "text",
656
656
  "is-required",
657
657
  "is-loading"
658
- ]), a("div", tt, [a("label", nt, [x(a("input", {
658
+ ]), a("div", nt, [a("label", rt, [x(a("input", {
659
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",
660
660
  "onUpdate:modelValue": t[0] ||= (e) => o.search = e,
661
661
  onInput: t[1] ||= (...e) => c.startSearch && c.startSearch(...e)
662
662
  }, null, 544), [[
663
- v,
663
+ te,
664
664
  o.search,
665
665
  void 0,
666
666
  { trim: !0 }
@@ -670,29 +670,29 @@ function rt(e, t, n, r, o, c) {
670
670
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
671
671
  }, null, 8, ["onClicked"]), [[y, c.inputNeedsEraser]])])])]);
672
672
  }
673
- var it = /*#__PURE__*/ A(Qe, [["render", rt]]), I = 4, L = 8;
674
- function R(e) {
673
+ var at = /*#__PURE__*/ A($e, [["render", it]]), L = 4, R = 8;
674
+ function ot(e) {
675
675
  return typeof e?.showPopover == "function";
676
676
  }
677
677
  function z(e) {
678
- return R(e) && e.matches(":popover-open");
678
+ return ot(e) && e.matches(":popover-open");
679
679
  }
680
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, _ = "";
681
+ let o = e.getBoundingClientRect(), s = document.documentElement.clientWidth, c = document.documentElement.clientHeight, l = Math.max(R, o.left), u = Math.max(R, s - o.right), d = Math.max(0, s - l - R), f = Math.max(0, s - u - R), p = r === "start" && (a || d >= f), m = Math.max(0, c - o.bottom - L - R), h = Math.max(0, o.top - L - R), g = i || m >= h, _ = "";
682
682
  if (r === "start") {
683
683
  let e = p ? d : f;
684
684
  _ = `${n === null ? e : Math.min(n, e)}px`;
685
685
  } else n !== null && (_ = `${Math.min(n, f)}px`);
686
686
  Object.assign(t.style, {
687
- top: g ? `${o.bottom + I}px` : "auto",
688
- bottom: g ? "auto" : `${c - o.top + I}px`,
687
+ top: g ? `${o.bottom + L}px` : "auto",
688
+ bottom: g ? "auto" : `${c - o.top + L}px`,
689
689
  right: p ? "auto" : `${u}px`,
690
690
  left: p ? `${l}px` : "auto",
691
691
  maxHeight: `${g ? m : h}px`,
692
692
  maxWidth: _
693
693
  });
694
694
  }
695
- function at(e, t, n = {}) {
695
+ function st(e, t, n = {}) {
696
696
  let r = t.scrollHeight <= t.clientHeight + 1, i = t.scrollWidth <= t.clientWidth + 1;
697
697
  r && i || B(e, t, {
698
698
  ...n,
@@ -700,7 +700,7 @@ function at(e, t, n = {}) {
700
700
  fitsRight: i
701
701
  });
702
702
  }
703
- function ot(e, t) {
703
+ function ct(e, t) {
704
704
  let n = (n) => {
705
705
  e.contains(n.target) || t();
706
706
  };
@@ -714,7 +714,7 @@ function ot(e, t) {
714
714
  //#endregion
715
715
  //#region src/menuFocus.js
716
716
  var V = "a[href], button";
717
- function st(e, t = () => null) {
717
+ function lt(e, t = () => null) {
718
718
  let n = (n) => {
719
719
  if (n.key !== "ArrowDown" && n.key !== "ArrowUp") return;
720
720
  let r = [...e.querySelectorAll(V)];
@@ -732,7 +732,7 @@ function st(e, t = () => null) {
732
732
  }
733
733
  //#endregion
734
734
  //#region src/components/PopoverPanel.vue
735
- var ct = {
735
+ var ut = {
736
736
  emits: ["update:modelValue", "toggle"],
737
737
  props: {
738
738
  modelValue: {
@@ -787,8 +787,8 @@ var ct = {
787
787
  },
788
788
  setup() {
789
789
  return {
790
- buttonId: _(),
791
- panelId: _()
790
+ buttonId: v(),
791
+ panelId: v()
792
792
  };
793
793
  },
794
794
  data() {
@@ -821,7 +821,7 @@ var ct = {
821
821
  methods: {
822
822
  applyPanelState() {
823
823
  let e = this.$refs.panel;
824
- R(e) && e.isConnected && (this.panelIsOpen && !z(e) && e.showPopover(), !this.panelIsOpen && z(e) && e.hidePopover());
824
+ ot(e) && e.isConnected && (this.panelIsOpen && !z(e) && e.showPopover(), !this.panelIsOpen && z(e) && e.hidePopover());
825
825
  },
826
826
  close() {
827
827
  let e = this.$refs.panel;
@@ -841,7 +841,7 @@ var ct = {
841
841
  };
842
842
  B(e, this.$refs.panel, t), requestAnimationFrame(() => {
843
843
  let n = this.$refs.panel;
844
- z(n) && at(e, n, t);
844
+ z(n) && st(e, n, t);
845
845
  });
846
846
  return;
847
847
  }
@@ -851,7 +851,7 @@ var ct = {
851
851
  onToggle() {
852
852
  this.stopListening();
853
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));
854
+ t && (this.stopClosing = ct(e, this.close), this.arrows && (this.stopArrows = lt(e, this.findSelected))), t || this.restoreFocus(e), this.reportPanelShown(t), t !== this.panelIsOpen && (this.panelIsOpen = t, this.$emit("update:modelValue", t));
855
855
  },
856
856
  restoreFocus(e) {
857
857
  let t = this.focusWasInside;
@@ -863,10 +863,10 @@ var ct = {
863
863
  this.stopClosing !== null && (this.stopClosing(), this.stopClosing = null), this.stopArrows !== null && (this.stopArrows(), this.stopArrows = null);
864
864
  }
865
865
  }
866
- }, lt = {
866
+ }, dt = {
867
867
  key: 0,
868
868
  class: "bb:relative"
869
- }, ut = [
869
+ }, ft = [
870
870
  "id",
871
871
  "role",
872
872
  "aria-orientation",
@@ -874,8 +874,8 @@ var ct = {
874
874
  "aria-label",
875
875
  "tabindex"
876
876
  ];
877
- function dt(e, t, n, o, s, c) {
878
- return n.hasContent ? (d(), i("span", lt, [p(e.$slots, "trigger", {
877
+ function pt(e, t, n, o, s, c) {
878
+ return n.hasContent ? (f(), i("span", dt, [m(e.$slots, "trigger", {
879
879
  id: o.buttonId,
880
880
  popovertarget: o.panelId
881
881
  }), a("div", {
@@ -891,9 +891,9 @@ function dt(e, t, n, o, s, c) {
891
891
  onBeforetoggle: t[0] ||= (...e) => c.onBeforeToggle && c.onBeforeToggle(...e),
892
892
  onToggle: t[1] ||= (...e) => c.onToggle && c.onToggle(...e),
893
893
  onClick: t[2] ||= (...e) => c.onClick && c.onClick(...e)
894
- }, [p(e.$slots, "default")], 42, ut)])) : r("", !0);
894
+ }, [m(e.$slots, "default")], 42, ft)])) : r("", !0);
895
895
  }
896
- var H = /*#__PURE__*/ A(ct, [["render", dt]]);
896
+ var H = /*#__PURE__*/ A(ut, [["render", pt]]);
897
897
  //#endregion
898
898
  //#region src/date.js
899
899
  function U(e) {
@@ -907,11 +907,11 @@ function W(e) {
907
907
  }
908
908
  //#endregion
909
909
  //#region src/dayFocus.js
910
- var G = ".pika-button.pika-day", ft = ".pika-button, .pika-prev, .pika-next";
911
- function pt(e, t = () => null) {
910
+ var G = ".pika-button.pika-day", mt = ".pika-button, .pika-prev, .pika-next";
911
+ function ht(e, t = () => null) {
912
912
  let n = (n) => {
913
913
  if (n.detail !== 0) return;
914
- let r = n.target.closest(ft);
914
+ let r = n.target.closest(mt);
915
915
  r !== null && e.contains(r) && setTimeout(() => {
916
916
  let n = document.activeElement === r;
917
917
  if (r.dispatchEvent(new MouseEvent("mousedown", {
@@ -924,32 +924,32 @@ function pt(e, t = () => null) {
924
924
  };
925
925
  return e.addEventListener("click", n), () => e.removeEventListener("click", n);
926
926
  }
927
- var mt = {
927
+ var gt = {
928
928
  ArrowLeft: -1,
929
929
  ArrowRight: 1,
930
930
  ArrowUp: -7,
931
931
  ArrowDown: 7
932
932
  };
933
- function ht(e, t) {
933
+ function _t(e, t) {
934
934
  let n = (n) => {
935
- let r = mt[n.key];
936
- if (r === void 0 || gt(document.activeElement)) return;
935
+ let r = gt[n.key];
936
+ if (r === void 0 || vt(document.activeElement)) return;
937
937
  n.preventDefault();
938
- let i = document.activeElement?.closest(G) ?? null, a = i !== null && e.contains(i) ? vt(_t(i), r) : t.getDate() ?? yt();
938
+ let i = document.activeElement?.closest(G) ?? null, a = i !== null && e.contains(i) ? bt(yt(i), r) : t.getDate() ?? xt();
939
939
  K(e, a) === null && t.gotoDate(a), K(e, a)?.focus();
940
940
  };
941
941
  return document.addEventListener("keydown", n, !0), () => document.removeEventListener("keydown", n, !0);
942
942
  }
943
- function gt(e) {
943
+ function vt(e) {
944
944
  return e !== null && e.matches("input, select, textarea, [contenteditable]");
945
945
  }
946
- function _t(e) {
946
+ function yt(e) {
947
947
  return new Date(e.dataset.pikaYear, e.dataset.pikaMonth, e.dataset.pikaDay);
948
948
  }
949
- function vt(e, t) {
949
+ function bt(e, t) {
950
950
  return new Date(e.getFullYear(), e.getMonth(), e.getDate() + t);
951
951
  }
952
- function yt() {
952
+ function xt() {
953
953
  let e = /* @__PURE__ */ new Date();
954
954
  return new Date(e.getFullYear(), e.getMonth(), e.getDate());
955
955
  }
@@ -958,12 +958,12 @@ function K(e, t) {
958
958
  }
959
959
  //#endregion
960
960
  //#region src/components/PickDay.vue
961
- var bt = {
961
+ var St = {
962
962
  components: {
963
963
  PopoverPanel: H,
964
- CrossButton: N
964
+ CrossButton: P
965
965
  },
966
- mixins: [M],
966
+ mixins: [N],
967
967
  emits: ["update:modelValue", "changed"],
968
968
  props: {
969
969
  modelValue: {
@@ -1002,7 +1002,7 @@ var bt = {
1002
1002
  onSelect: (e) => {
1003
1003
  this.popupIsOpen = !1, this.$emit("update:modelValue", U(e)), this.$emit("changed");
1004
1004
  }
1005
- }), this.stopPickOnClick = pt(this.$refs.container, () => this.$refs.trigger), this.syncDayFocus());
1005
+ }), this.stopPickOnClick = ht(this.$refs.container, () => this.$refs.trigger), this.syncDayFocus());
1006
1006
  },
1007
1007
  beforeUnmount() {
1008
1008
  this.isUnmounted = !0, this.stopPickOnClick?.(), this.stopDayFocus?.(), this.picker?.destroy();
@@ -1024,7 +1024,7 @@ var bt = {
1024
1024
  },
1025
1025
  methods: {
1026
1026
  syncDayFocus() {
1027
- this.stopDayFocus?.(), this.stopDayFocus = null, this.popupIsOpen && this.picker !== null && (this.stopDayFocus = ht(this.$refs.container, this.picker));
1027
+ this.stopDayFocus?.(), this.stopDayFocus = null, this.popupIsOpen && this.picker !== null && (this.stopDayFocus = _t(this.$refs.container, this.picker));
1028
1028
  },
1029
1029
  syncPicker(e) {
1030
1030
  if (this.picker === null) return;
@@ -1050,17 +1050,17 @@ var bt = {
1050
1050
  return !this.withEraser || this.popupIsOpen ? !1 : this.hasValue;
1051
1051
  }
1052
1052
  }
1053
- }, xt = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, St = { class: "bb:relative bb:flex bb:h-full" }, Ct = ["id", "popovertarget"], wt = ["textContent"], Tt = { class: "bb:flex bb:w-full bb:items-center bb:leading-none bb:min-w-24 bb:pointer-events-none" }, Et = [
1053
+ }, Ct = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, wt = { class: "bb:relative bb:flex bb:h-full" }, Tt = ["id", "popovertarget"], Et = ["textContent"], Dt = { class: "bb:flex bb:w-full bb:items-center bb:leading-none bb:min-w-24 bb:pointer-events-none" }, Ot = [
1054
1054
  "disabled",
1055
1055
  "value",
1056
1056
  "placeholder"
1057
- ], Dt = {
1057
+ ], kt = {
1058
1058
  ref: "container",
1059
1059
  class: "bb:flex"
1060
1060
  };
1061
- 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, {
1061
+ function At(e, t, o, c, l, u) {
1062
+ let d = h("popover-panel"), p = h("cross-button");
1063
+ return f(), i("div", Ct, [a("div", wt, [s(d, {
1064
1064
  class: "bb:flex bb:w-full",
1065
1065
  modelValue: l.popupIsOpen,
1066
1066
  "onUpdate:modelValue": t[0] ||= (e) => l.popupIsOpen = e,
@@ -1076,18 +1076,18 @@ function Ot(e, t, o, c, l, u) {
1076
1076
  class: "bb:absolute bb:inset-0 bb:cursor-pointer bb:focus:outline-hidden"
1077
1077
  }, [a("span", {
1078
1078
  class: "bb:sr-only bb:pointer-events-none bb:cursor-default",
1079
- textContent: g(u.triggerLabel)
1080
- }, null, 8, wt)], 8, Ct), a("label", Tt, [a("input", {
1079
+ textContent: _(u.triggerLabel)
1080
+ }, null, 8, Et)], 8, Tt), a("label", Dt, [a("input", {
1081
1081
  disabled: l.popupIsOpen,
1082
1082
  ref: "field",
1083
1083
  type: "text",
1084
1084
  value: l.dayValue,
1085
1085
  placeholder: o.placeholderText,
1086
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)])]),
1088
- default: b(() => [a("div", Dt, null, 512)]),
1087
+ }, null, 8, Ot)])]),
1088
+ default: b(() => [a("div", kt, null, 512)]),
1089
1089
  _: 1
1090
- }, 8, ["modelValue"]), u.needsEraser ? (d(), n(p, {
1090
+ }, 8, ["modelValue"]), u.needsEraser ? (f(), n(p, {
1091
1091
  key: 0,
1092
1092
  size: "small",
1093
1093
  onClicked: u.clearPicker,
@@ -1097,12 +1097,12 @@ function Ot(e, t, o, c, l, u) {
1097
1097
  }
1098
1098
  //#endregion
1099
1099
  //#region src/components/SelectDateInterval.vue
1100
- var kt = {
1100
+ var jt = {
1101
1101
  components: {
1102
- ElementHeader: j,
1103
- PickDay: /* @__PURE__ */ A(bt, [["render", Ot]])
1102
+ ElementHeader: M,
1103
+ PickDay: /* @__PURE__ */ A(St, [["render", At]])
1104
1104
  },
1105
- mixins: [M],
1105
+ mixins: [N],
1106
1106
  emits: [
1107
1107
  "update:dateFrom",
1108
1108
  "update:dateTo",
@@ -1150,10 +1150,10 @@ var kt = {
1150
1150
  this.$emit("update:dateTo", e), this.dateTo !== e && this.$emit("changed");
1151
1151
  }
1152
1152
  }
1153
- }, 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
- 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, {
1153
+ }, Mt = { class: "bb-dashboard-ui bb:flex" }, Nt = { class: "bb:flex bb:border bb:border-white" }, Pt = { class: "bb:flex bb:flex-col bb:min-w-72 bb:w-72 bb:bg-white bb:h-full" }, Ft = { class: "bb:flex bb:h-full bb:divide-x bb:divide-gray-200" };
1154
+ function It(e, t, n, r, o, c) {
1155
+ let l = h("element-header"), u = h("pick-day");
1156
+ return f(), i("div", Mt, [a("div", Nt, [a("div", Pt, [s(l, {
1157
1157
  text: n.header,
1158
1158
  "is-required": n.isRequired,
1159
1159
  "is-loading": n.isLoading
@@ -1161,7 +1161,7 @@ function Pt(e, t, n, r, o, c) {
1161
1161
  "text",
1162
1162
  "is-required",
1163
1163
  "is-loading"
1164
- ]), a("div", Nt, [s(u, {
1164
+ ]), a("div", Ft, [s(u, {
1165
1165
  modelValue: o.userDateFrom,
1166
1166
  "onUpdate:modelValue": t[0] ||= (e) => o.userDateFrom = e,
1167
1167
  class: "bb:flex-1 bb:min-w-36 bb:pl-3",
@@ -1183,10 +1183,10 @@ function Pt(e, t, n, r, o, c) {
1183
1183
  "lang"
1184
1184
  ])])])])]);
1185
1185
  }
1186
- var Ft = /*#__PURE__*/ A(kt, [["render", Pt]]), It = {
1186
+ var Lt = /*#__PURE__*/ A(jt, [["render", It]]), Rt = {
1187
1187
  components: {
1188
1188
  PopoverPanel: H,
1189
- CrossButton: N
1189
+ CrossButton: P
1190
1190
  },
1191
1191
  emits: ["update:isOpen", "erased"],
1192
1192
  props: {
@@ -1210,10 +1210,10 @@ var Ft = /*#__PURE__*/ A(kt, [["render", Pt]]), It = {
1210
1210
  computed: { needsEraser() {
1211
1211
  return !this.isOpen && this.hasValue;
1212
1212
  } }
1213
- }, 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
- 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, {
1213
+ }, zt = { class: "bb:flex bb:flex-col bb:grow bb:bg-white" }, Bt = { class: "bb:relative bb:flex bb:w-full bb:h-full" }, Vt = ["id", "popovertarget"], Ht = ["textContent"];
1214
+ function Ut(e, t, o, c, l, u) {
1215
+ let d = h("popover-panel"), p = h("cross-button");
1216
+ return f(), i("div", zt, [a("div", Bt, [s(d, {
1217
1217
  class: "bb:flex bb:w-full bb:h-full",
1218
1218
  "model-value": o.isOpen,
1219
1219
  align: "start",
@@ -1230,18 +1230,18 @@ function Vt(e, t, o, c, l, u) {
1230
1230
  class: "bb:flex bb:w-full bb:h-full bb:items-center bb:focus:outline-hidden bb:cursor-pointer"
1231
1231
  }, [a("span", {
1232
1232
  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)
1234
- }, null, 8, Bt)], 8, zt)]),
1235
- default: b(() => [p(e.$slots, "default")]),
1233
+ textContent: _(o.title)
1234
+ }, null, 8, Ht)], 8, Vt)]),
1235
+ default: b(() => [m(e.$slots, "default")]),
1236
1236
  _: 3
1237
- }, 8, ["model-value", "find-selected"]), u.needsEraser ? (d(), n(h, {
1237
+ }, 8, ["model-value", "find-selected"]), u.needsEraser ? (f(), n(p, {
1238
1238
  key: 0,
1239
1239
  size: "small",
1240
1240
  onClicked: t[1] ||= (t) => e.$emit("erased"),
1241
1241
  class: "bb:absolute bb:right-0 bb:top-0 bb:pr-2 bb:h-full"
1242
1242
  })) : r("", !0)])]);
1243
1243
  }
1244
- var Ht = /*#__PURE__*/ A(It, [["render", Vt]]), Ut = {
1244
+ var Wt = /*#__PURE__*/ A(Rt, [["render", Ut]]), Gt = {
1245
1245
  props: {
1246
1246
  isChecked: {
1247
1247
  type: Boolean,
@@ -1253,32 +1253,32 @@ var Ht = /*#__PURE__*/ A(It, [["render", Vt]]), Ut = {
1253
1253
  methods: { toggle() {
1254
1254
  this.$emit("clicked");
1255
1255
  } }
1256
- }, Wt = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center bb:pointer-events-none bb:cursor-default" }, Gt = {
1256
+ }, Kt = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center bb:pointer-events-none bb:cursor-default" }, qt = {
1257
1257
  class: "bb:w-5 bb:h-5 bb:fill-current bb:text-green-300",
1258
1258
  viewBox: "0 0 20 20",
1259
1259
  "aria-hidden": "true"
1260
- }, Kt = ["textContent"];
1261
- function qt(e, t, n, r, o, s) {
1262
- return d(), i("button", {
1260
+ }, Jt = ["textContent"];
1261
+ function Yt(e, t, n, r, o, s) {
1262
+ return f(), i("button", {
1263
1263
  type: "button",
1264
1264
  onClick: t[0] ||= S((...e) => s.toggle && s.toggle(...e), ["prevent"]),
1265
1265
  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", {
1266
+ }, [a("span", Kt, [x((f(), i("svg", qt, [...t[1] ||= [a("path", {
1267
1267
  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
1268
  "clip-rule": "evenodd",
1269
1269
  "fill-rule": "evenodd"
1270
1270
  }, null, -1)]], 512)), [[y, n.isChecked]])]), a("span", {
1271
1271
  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)
1273
- }, null, 8, Kt)]);
1272
+ textContent: _(n.name)
1273
+ }, null, 8, Jt)]);
1274
1274
  }
1275
1275
  //#endregion
1276
1276
  //#region src/components/SelectSingle.vue
1277
- var Jt = {
1277
+ var Xt = {
1278
1278
  components: {
1279
- ElementHeader: j,
1280
- DropdownButton: Ht,
1281
- ListElement: /* @__PURE__ */ A(Ut, [["render", qt]])
1279
+ ElementHeader: M,
1280
+ DropdownButton: Wt,
1281
+ ListElement: /* @__PURE__ */ A(Gt, [["render", Yt]])
1282
1282
  },
1283
1283
  emits: ["update:modelValue", "changed"],
1284
1284
  props: {
@@ -1338,13 +1338,13 @@ var Jt = {
1338
1338
  return e === -1 ? null : this.$refs.list.querySelectorAll("button")[e];
1339
1339
  }
1340
1340
  }
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 = {
1341
+ }, Zt = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Qt = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, $t = {
1342
1342
  ref: "list",
1343
1343
  class: "bb:flex bb:flex-col bb:py-1 bb:divide-y bb:divide-gray-200 bb:divide-dashed"
1344
1344
  };
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, {
1345
+ function en(t, o, c, l, u, d) {
1346
+ let m = h("element-header"), g = h("list-element"), _ = h("dropdown-button");
1347
+ return f(), i("div", Zt, [a("div", Qt, [s(m, {
1348
1348
  text: c.header,
1349
1349
  "is-required": c.isRequired,
1350
1350
  "is-loading": c.isLoading
@@ -1352,20 +1352,20 @@ function Qt(t, o, c, l, u, p) {
1352
1352
  "text",
1353
1353
  "is-required",
1354
1354
  "is-loading"
1355
- ]), p.hasItems ? (d(), n(_, {
1355
+ ]), d.hasItems ? (f(), n(_, {
1356
1356
  key: 0,
1357
- title: p.activeItemName,
1357
+ title: d.activeItemName,
1358
1358
  "is-open": u.isOpen,
1359
1359
  "onUpdate:isOpen": o[0] ||= (e) => u.isOpen = e,
1360
- "has-value": p.hasValue,
1361
- "find-selected": p.activeItemElement,
1362
- onErased: p.clear
1360
+ "has-value": d.hasValue,
1361
+ "find-selected": d.activeItemElement,
1362
+ onErased: d.clear
1363
1363
  }, {
1364
- default: b(() => [a("div", Zt, [(d(!0), i(e, null, f(p.itemList, (e) => (d(), n(g, {
1364
+ default: b(() => [a("div", $t, [(f(!0), i(e, null, p(d.itemList, (e) => (f(), n(g, {
1365
1365
  name: e.name,
1366
1366
  key: e.id,
1367
1367
  "is-checked": e.id === c.modelValue,
1368
- onClicked: (t) => p.itemClicked(e)
1368
+ onClicked: (t) => d.itemClicked(e)
1369
1369
  }, null, 8, [
1370
1370
  "name",
1371
1371
  "is-checked",
@@ -1380,7 +1380,7 @@ function Qt(t, o, c, l, u, p) {
1380
1380
  "onErased"
1381
1381
  ])) : r("", !0)])]);
1382
1382
  }
1383
- var $t = /*#__PURE__*/ A(Jt, [["render", Qt]]), en = {
1383
+ var tn = /*#__PURE__*/ A(Xt, [["render", en]]), nn = {
1384
1384
  mixins: [k],
1385
1385
  props: {
1386
1386
  text: {
@@ -1393,14 +1393,14 @@ var $t = /*#__PURE__*/ A(Jt, [["render", Qt]]), en = {
1393
1393
  validator: O
1394
1394
  }
1395
1395
  }
1396
- }, tn = ["textContent"];
1397
- function nn(e, t, n, r, a, o) {
1398
- return d(), i("span", {
1396
+ }, rn = ["textContent"];
1397
+ function an(e, t, n, r, a, o) {
1398
+ return f(), i("span", {
1399
1399
  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);
1400
+ textContent: _(n.text)
1401
+ }, null, 10, rn);
1402
1402
  }
1403
- var q = /*#__PURE__*/ A(en, [["render", nn]]), rn = {
1403
+ var q = /*#__PURE__*/ A(nn, [["render", an]]), on = {
1404
1404
  props: {
1405
1405
  messages: {
1406
1406
  type: [Object, Array],
@@ -1420,12 +1420,12 @@ var q = /*#__PURE__*/ A(en, [["render", nn]]), rn = {
1420
1420
  return this.type === "dangerous";
1421
1421
  }
1422
1422
  }
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", {
1423
+ }, sn = { class: "bb:flex" }, cn = { class: "bb:shrink-0" }, ln = { class: "bb:ml-3" }, un = ["textContent"];
1424
+ function dn(t, n, o, s, c, l) {
1425
+ return l.hasErrors ? (f(), i("div", {
1426
1426
  key: 0,
1427
1427
  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", {
1428
+ }, [a("div", sn, [a("div", cn, [(f(), i("svg", {
1429
1429
  class: u(["bb:h-5 bb:w-5", l.isDangerous ? "bb:text-red-400" : "bb:text-yellow-400"]),
1430
1430
  viewBox: "0 0 20 20",
1431
1431
  fill: "currentColor"
@@ -1433,13 +1433,90 @@ function ln(t, n, o, s, c, l) {
1433
1433
  "fill-rule": "evenodd",
1434
1434
  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
1435
  "clip-rule": "evenodd"
1436
- }, null, -1)]], 2))]), a("div", sn, [(d(!0), i(e, null, f(o.messages, (e, t) => (d(), i("p", {
1436
+ }, null, -1)]], 2))]), a("div", ln, [(f(!0), i(e, null, p(o.messages, (e, t) => (f(), i("p", {
1437
1437
  class: u(["bb:text-sm bb:leading-5", l.isDangerous ? "bb:text-red-700" : "bb:text-yellow-700"]),
1438
1438
  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 = {
1439
+ textContent: _(e)
1440
+ }, null, 10, un))), 128))])])], 2)) : r("", !0);
1441
+ }
1442
+ var fn = /*#__PURE__*/ A(on, [["render", dn]]), J = [
1443
+ "text",
1444
+ "email",
1445
+ "password",
1446
+ "tel",
1447
+ "url",
1448
+ "search"
1449
+ ], pn = {
1450
+ components: { Dot: j },
1451
+ inheritAttrs: !1,
1452
+ props: {
1453
+ modelValue: {
1454
+ type: String,
1455
+ default: ""
1456
+ },
1457
+ label: {
1458
+ type: String,
1459
+ required: !0
1460
+ },
1461
+ type: {
1462
+ type: String,
1463
+ default: "text",
1464
+ validator: (e) => J.includes(e)
1465
+ },
1466
+ isRequired: {
1467
+ type: Boolean,
1468
+ default: !1
1469
+ }
1470
+ },
1471
+ emits: ["update:modelValue"],
1472
+ setup() {
1473
+ return { generatedId: v() };
1474
+ },
1475
+ computed: {
1476
+ value: {
1477
+ get() {
1478
+ return this.modelValue ?? "";
1479
+ },
1480
+ set(e) {
1481
+ this.$emit("update:modelValue", e);
1482
+ }
1483
+ },
1484
+ inputType() {
1485
+ return J.includes(this.type) ? this.type : "text";
1486
+ }
1487
+ },
1488
+ methods: {
1489
+ inputId() {
1490
+ return this.$attrs.id ?? this.generatedId;
1491
+ },
1492
+ inputAttrs() {
1493
+ return Object.fromEntries(Object.entries(this.$attrs).filter(([e]) => ![
1494
+ "class",
1495
+ "style",
1496
+ "id"
1497
+ ].includes(e)));
1498
+ }
1499
+ }
1500
+ }, mn = { class: "bb:flex bb:items-center" }, hn = ["for", "textContent"], gn = ["id", "type"];
1501
+ function _n(e, t, n, r, o, c) {
1502
+ let p = h("dot");
1503
+ return f(), i("div", {
1504
+ class: u(["bb-dashboard-ui", e.$attrs.class]),
1505
+ style: d(e.$attrs.style)
1506
+ }, [a("div", mn, [a("label", {
1507
+ for: c.inputId(),
1508
+ class: "bb:block bb:text-sm bb:font-medium bb:leading-5 bb:text-gray-700",
1509
+ textContent: _(n.label)
1510
+ }, null, 8, hn), x(s(p, {
1511
+ color: "red",
1512
+ class: "bb:ml-2"
1513
+ }, null, 512), [[y, n.isRequired]])]), x(a("input", l({ "onUpdate:modelValue": t[0] ||= (e) => c.value = e }, { ...c.inputAttrs() }, {
1514
+ id: c.inputId(),
1515
+ type: c.inputType,
1516
+ 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:border-blue-300 bb:focus:ring-3 bb:focus:ring-blue-200/50 bb:focus:outline-hidden"
1517
+ }), null, 16, gn), [[ee, c.value]])], 6);
1518
+ }
1519
+ var vn = /*#__PURE__*/ A(pn, [["render", _n]]), yn = {}, bn = {
1443
1520
  class: "bb:w-4 bb:h-4",
1444
1521
  fill: "none",
1445
1522
  stroke: "currentColor",
@@ -1449,8 +1526,8 @@ var un = /*#__PURE__*/ A(rn, [["render", ln]]), dn = {}, fn = {
1449
1526
  xmlns: "http://www.w3.org/2000/svg",
1450
1527
  "aria-hidden": "true"
1451
1528
  };
1452
- function pn(e, t, n, r, o, s) {
1453
- return d(), i("svg", fn, [...t[0] ||= [
1529
+ function xn(e, t, n, r, o, s) {
1530
+ return f(), i("svg", bn, [...t[0] ||= [
1454
1531
  a("circle", {
1455
1532
  cx: "12",
1456
1533
  cy: "12",
@@ -1472,7 +1549,7 @@ function pn(e, t, n, r, o, s) {
1472
1549
  }, null, -1)
1473
1550
  ]]);
1474
1551
  }
1475
- var mn = /*#__PURE__*/ A(dn, [["render", pn]]), hn = {}, gn = {
1552
+ var Sn = /*#__PURE__*/ A(yn, [["render", xn]]), Cn = {}, wn = {
1476
1553
  class: "bb:w-4 bb:h-4",
1477
1554
  fill: "none",
1478
1555
  stroke: "currentColor",
@@ -1480,15 +1557,15 @@ var mn = /*#__PURE__*/ A(dn, [["render", pn]]), hn = {}, gn = {
1480
1557
  xmlns: "http://www.w3.org/2000/svg",
1481
1558
  "aria-hidden": "true"
1482
1559
  };
1483
- function _n(e, t, n, r, o, s) {
1484
- return d(), i("svg", gn, [...t[0] ||= [a("path", {
1560
+ function Tn(e, t, n, r, o, s) {
1561
+ return f(), i("svg", wn, [...t[0] ||= [a("path", {
1485
1562
  "stroke-linecap": "round",
1486
1563
  "stroke-linejoin": "round",
1487
1564
  "stroke-width": "2",
1488
1565
  d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"
1489
1566
  }, null, -1)]]);
1490
1567
  }
1491
- var vn = /*#__PURE__*/ A(hn, [["render", _n]]), yn = {}, bn = {
1568
+ var En = /*#__PURE__*/ A(Cn, [["render", Tn]]), Dn = {}, On = {
1492
1569
  class: "bb:w-4 bb:h-4",
1493
1570
  fill: "none",
1494
1571
  stroke: "currentColor",
@@ -1496,19 +1573,19 @@ var vn = /*#__PURE__*/ A(hn, [["render", _n]]), yn = {}, bn = {
1496
1573
  xmlns: "http://www.w3.org/2000/svg",
1497
1574
  "aria-hidden": "true"
1498
1575
  };
1499
- function xn(e, t, n, r, o, s) {
1500
- return d(), i("svg", bn, [...t[0] ||= [a("path", {
1576
+ function kn(e, t, n, r, o, s) {
1577
+ return f(), i("svg", On, [...t[0] ||= [a("path", {
1501
1578
  "stroke-linecap": "round",
1502
1579
  "stroke-linejoin": "round",
1503
1580
  "stroke-width": "2",
1504
1581
  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
1582
  }, null, -1)]]);
1506
1583
  }
1507
- var Sn = /*#__PURE__*/ A(yn, [["render", xn]]), Cn = ["download", "refresh"], wn = {
1584
+ var An = /*#__PURE__*/ A(Dn, [["render", kn]]), jn = ["download", "refresh"], Mn = {
1508
1585
  components: {
1509
- "clock-icon": mn,
1510
- "download-icon": vn,
1511
- "refresh-icon": Sn
1586
+ "clock-icon": Sn,
1587
+ "download-icon": En,
1588
+ "refresh-icon": An
1512
1589
  },
1513
1590
  mixins: [k],
1514
1591
  emits: ["click"],
@@ -1520,7 +1597,7 @@ var Sn = /*#__PURE__*/ A(yn, [["render", xn]]), Cn = ["download", "refresh"], wn
1520
1597
  icon: {
1521
1598
  type: String,
1522
1599
  required: !0,
1523
- validator: (e) => Cn.includes(e)
1600
+ validator: (e) => jn.includes(e)
1524
1601
  },
1525
1602
  color: {
1526
1603
  type: String,
@@ -1540,14 +1617,14 @@ var Sn = /*#__PURE__*/ A(yn, [["render", xn]]), Cn = ["download", "refresh"], wn
1540
1617
  let e = this.isLoading && typeof this.loadingText == "string" && this.loadingText !== "" ? this.loadingText : this.title;
1541
1618
  return typeof e == "string" ? e : "";
1542
1619
  } }
1543
- }, Tn = [
1620
+ }, Nn = [
1544
1621
  "title",
1545
1622
  "disabled",
1546
1623
  "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", {
1624
+ ], Pn = ["textContent"];
1625
+ function Fn(e, t, o, s, c, l) {
1626
+ let d = h("clock-icon"), p = h("download-icon"), m = h("refresh-icon");
1627
+ return f(), i("button", {
1551
1628
  type: "button",
1552
1629
  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", [
1553
1630
  e.colorClass(o.color, "pill"),
@@ -1558,32 +1635,91 @@ function Dn(e, t, o, s, c, l) {
1558
1635
  disabled: o.isLoading,
1559
1636
  "aria-busy": o.isLoading ? "true" : null,
1560
1637
  onClick: t[0] ||= (t) => e.$emit("click")
1561
- }, [o.isLoading ? (d(), n(f, {
1638
+ }, [o.isLoading ? (f(), n(d, {
1562
1639
  key: 0,
1563
1640
  class: "bb:pointer-events-none bb:cursor-default"
1564
- })) : o.icon === "download" ? (d(), n(p, {
1641
+ })) : o.icon === "download" ? (f(), n(p, {
1565
1642
  key: 1,
1566
1643
  class: "bb:pointer-events-none bb:cursor-default"
1567
- })) : o.icon === "refresh" ? (d(), n(h, {
1644
+ })) : o.icon === "refresh" ? (f(), n(m, {
1568
1645
  key: 2,
1569
1646
  class: "bb:pointer-events-none bb:cursor-default"
1570
1647
  })) : r("", !0), a("span", {
1571
1648
  class: "bb:ml-1 bb:pointer-events-none bb:cursor-default",
1572
- textContent: g(l.label)
1573
- }, null, 8, En)], 10, Tn);
1649
+ textContent: _(l.label)
1650
+ }, null, 8, Pn)], 10, Nn);
1651
+ }
1652
+ var In = /*#__PURE__*/ A(Mn, [["render", Fn]]), Y = "a[href], button:not(:disabled)";
1653
+ function Ln(e, t) {
1654
+ let n = document.activeElement;
1655
+ (e.querySelector("[data-dialog-focus]") ?? e.querySelector(Y))?.focus();
1656
+ let r = (n) => {
1657
+ if (n.key === "Escape") {
1658
+ t();
1659
+ return;
1660
+ }
1661
+ if (n.key !== "Tab") return;
1662
+ let r = [...e.querySelectorAll(Y)];
1663
+ if (r.length === 0) return;
1664
+ n.preventDefault();
1665
+ let i = n.shiftKey ? -1 : 1, a = r.indexOf(document.activeElement);
1666
+ r[a === -1 ? i === 1 ? 0 : r.length - 1 : (a + i + r.length) % r.length].focus();
1667
+ };
1668
+ document.addEventListener("keydown", r, !0);
1669
+ let i = !1;
1670
+ return () => {
1671
+ if (i) return;
1672
+ i = !0, document.removeEventListener("keydown", r, !0);
1673
+ let t = document.activeElement, a = t === null || t === document.body || e.contains(t), o = n !== null && n !== document.body && n.isConnected;
1674
+ a && o ? n.focus({ preventScroll: !0 }) : e.contains(t) && t.blur();
1675
+ };
1574
1676
  }
1575
- var On = /*#__PURE__*/ A(wn, [["render", Dn]]), kn = { props: {
1576
- isOpen: {
1577
- type: Boolean,
1578
- default: !1
1677
+ //#endregion
1678
+ //#region src/components/Modal.vue
1679
+ var Rn = {
1680
+ emits: ["escape"],
1681
+ props: {
1682
+ isOpen: {
1683
+ type: Boolean,
1684
+ default: !1
1685
+ },
1686
+ headingId: {
1687
+ type: String,
1688
+ required: !0
1689
+ }
1579
1690
  },
1580
- headingId: {
1581
- type: String,
1582
- required: !0
1691
+ watch: { isOpen: {
1692
+ flush: "post",
1693
+ handler(e) {
1694
+ if (e) {
1695
+ this.holdFocus();
1696
+ return;
1697
+ }
1698
+ this.releaseFocus();
1699
+ }
1700
+ } },
1701
+ created() {
1702
+ this.focusFrame = null, this.releaseHeldFocus = null;
1703
+ },
1704
+ mounted() {
1705
+ this.isOpen && this.holdFocus();
1706
+ },
1707
+ beforeUnmount() {
1708
+ this.releaseFocus();
1709
+ },
1710
+ methods: {
1711
+ holdFocus() {
1712
+ this.focusFrame === null && this.releaseHeldFocus === null && (this.focusFrame = requestAnimationFrame(() => {
1713
+ this.focusFrame = null, this.releaseHeldFocus = Ln(this.$refs.panel, () => this.$emit("escape"));
1714
+ }));
1715
+ },
1716
+ releaseFocus() {
1717
+ this.focusFrame !== null && (cancelAnimationFrame(this.focusFrame), this.focusFrame = null), this.releaseHeldFocus !== null && (this.releaseHeldFocus(), this.releaseHeldFocus = null);
1718
+ }
1583
1719
  }
1584
- } }, An = { class: "bb:min-h-screen bb:text-center" }, jn = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, Mn = ["aria-labelledby"];
1585
- function Nn(e, n, r, o, c, l) {
1586
- 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", An, [
1720
+ }, zn = { class: "bb:min-h-screen bb:text-center" }, Bn = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, Vn = ["aria-labelledby"];
1721
+ function Hn(e, n, r, o, c, l) {
1722
+ 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", zn, [
1587
1723
  s(t, {
1588
1724
  "enter-active-class": "bb:ease-out bb:duration-300",
1589
1725
  "enter-from-class": "bb:opacity-0",
@@ -1592,7 +1728,7 @@ function Nn(e, n, r, o, c, l) {
1592
1728
  "leave-from-class": "bb:opacity-100",
1593
1729
  "leave-to-class": "bb:opacity-0"
1594
1730
  }, {
1595
- default: b(() => [x(a("div", jn, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[y, r.isOpen]])]),
1731
+ default: b(() => [x(a("div", Bn, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[y, r.isOpen]])]),
1596
1732
  _: 1
1597
1733
  }),
1598
1734
  n[1] ||= a("span", { class: "bb:inline-block bb:align-middle bb:h-screen" }, null, -1),
@@ -1605,16 +1741,17 @@ function Nn(e, n, r, o, c, l) {
1605
1741
  "leave-to-class": "bb:opacity-0 bb:scale-95"
1606
1742
  }, {
1607
1743
  default: b(() => [x(a("div", {
1744
+ ref: "panel",
1608
1745
  class: "bb:relative bb:inline-block bb:align-middle bb:my-8 bb:max-w-lg bb:w-full bb:bg-white bb:rounded-lg bb:text-left bb:overflow-visible bb:shadow-xl bb:transition-all",
1609
1746
  role: "dialog",
1610
1747
  "aria-modal": "true",
1611
1748
  "aria-labelledby": r.headingId
1612
- }, [p(e.$slots, "default")], 8, Mn), [[y, r.isOpen]])]),
1749
+ }, [m(e.$slots, "default")], 8, Vn), [[y, r.isOpen]])]),
1613
1750
  _: 3
1614
1751
  })
1615
1752
  ])], 2);
1616
1753
  }
1617
- var Pn = /*#__PURE__*/ A(kn, [["render", Nn]]), Fn = {}, In = {
1754
+ var Un = /*#__PURE__*/ A(Rn, [["render", Hn]]), Wn = {}, Gn = {
1618
1755
  class: "bb:h-7 bb:w-7 bb:text-red-600",
1619
1756
  xmlns: "http://www.w3.org/2000/svg",
1620
1757
  fill: "none",
@@ -1622,35 +1759,35 @@ var Pn = /*#__PURE__*/ A(kn, [["render", Nn]]), Fn = {}, In = {
1622
1759
  stroke: "currentColor",
1623
1760
  "aria-hidden": "true"
1624
1761
  };
1625
- function Ln(e, t, n, r, o, s) {
1626
- return d(), i("svg", In, [...t[0] ||= [a("path", {
1762
+ function Kn(e, t, n, r, o, s) {
1763
+ return f(), i("svg", Gn, [...t[0] ||= [a("path", {
1627
1764
  "stroke-linecap": "round",
1628
1765
  "stroke-linejoin": "round",
1629
1766
  "stroke-width": "2",
1630
1767
  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"
1631
1768
  }, null, -1)]]);
1632
1769
  }
1633
- var J = /*#__PURE__*/ A(Fn, [["render", Ln]]), Rn = {}, zn = {
1770
+ var qn = /*#__PURE__*/ A(Wn, [["render", Kn]]), Jn = {}, Yn = {
1634
1771
  class: "bb:h-7 bb:w-7 bb:text-yellow-400",
1635
1772
  xmlns: "http://www.w3.org/2000/svg",
1636
1773
  viewBox: "0 0 20 20",
1637
1774
  fill: "currentColor",
1638
1775
  "aria-hidden": "true"
1639
1776
  };
1640
- function Bn(e, t, n, r, o, s) {
1641
- return d(), i("svg", zn, [...t[0] ||= [a("path", {
1777
+ function Xn(e, t, n, r, o, s) {
1778
+ return f(), i("svg", Yn, [...t[0] ||= [a("path", {
1642
1779
  "fill-rule": "evenodd",
1643
1780
  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",
1644
1781
  "clip-rule": "evenodd"
1645
1782
  }, null, -1)]]);
1646
1783
  }
1647
- var Y = /*#__PURE__*/ A(Rn, [["render", Bn]]), Vn = {
1784
+ var Zn = /*#__PURE__*/ A(Jn, [["render", Xn]]), Qn = {
1648
1785
  components: {
1649
- Modal: Pn,
1650
- Dangerous: J,
1651
- Warning: Y
1786
+ Modal: Un,
1787
+ Dangerous: qn,
1788
+ Warning: Zn
1652
1789
  },
1653
- mixins: [M],
1790
+ mixins: [N],
1654
1791
  emits: ["actionConfirmed", "actionCanceled"],
1655
1792
  props: {
1656
1793
  isOpen: {
@@ -1680,7 +1817,7 @@ var Y = /*#__PURE__*/ A(Rn, [["render", Bn]]), Vn = {
1680
1817
  }
1681
1818
  },
1682
1819
  setup() {
1683
- return { headingId: _() };
1820
+ return { headingId: v() };
1684
1821
  },
1685
1822
  computed: {
1686
1823
  isDangerous() {
@@ -1690,64 +1827,66 @@ var Y = /*#__PURE__*/ A(Rn, [["render", Bn]]), Vn = {
1690
1827
  return this.type === "warning";
1691
1828
  }
1692
1829
  }
1693
- }, Hn = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:p-6 bb:pb-4" }, Un = { class: "bb:flex bb:items-start" }, Wn = { class: "bb:ml-4 bb:text-left" }, Gn = ["id"], Kn = { class: "bb:mt-2" }, qn = { class: "bb:text-sm bb:text-gray-500" }, Jn = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-6 bb:py-3 bb:flex bb:flex-row-reverse" };
1694
- function Yn(e, t, i, o, s, c) {
1695
- let l = m("warning"), f = m("dangerous"), p = m("modal");
1696
- return d(), n(p, {
1830
+ }, $n = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:p-6 bb:pb-4" }, er = { class: "bb:flex bb:items-start" }, tr = { class: "bb:ml-4 bb:text-left" }, nr = ["id"], rr = { class: "bb:mt-2" }, ir = { class: "bb:text-sm bb:text-gray-500" }, ar = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-6 bb:py-3 bb:flex bb:flex-row-reverse" };
1831
+ function or(e, t, i, o, s, c) {
1832
+ let l = h("warning"), d = h("dangerous"), p = h("modal");
1833
+ return f(), n(p, {
1697
1834
  "is-open": i.isOpen,
1698
- "heading-id": o.headingId
1835
+ "heading-id": o.headingId,
1836
+ onEscape: t[2] ||= (t) => e.$emit("actionCanceled")
1699
1837
  }, {
1700
- default: b(() => [a("div", Hn, [a("div", Un, [a("div", { class: u(["bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-10 bb:w-10 bb:rounded-full", {
1838
+ default: b(() => [a("div", $n, [a("div", er, [a("div", { class: u(["bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-10 bb:w-10 bb:rounded-full", {
1701
1839
  "bb:bg-red-100": c.isDangerous,
1702
1840
  "bb:bg-yellow-100": c.isWarning
1703
- }]) }, [c.isWarning ? (d(), n(l, { key: 0 })) : r("", !0), c.isDangerous ? (d(), n(f, { key: 1 })) : r("", !0)], 2), a("div", Wn, [a("h3", {
1841
+ }]) }, [c.isWarning ? (f(), n(l, { key: 0 })) : r("", !0), c.isDangerous ? (f(), n(d, { key: 1 })) : r("", !0)], 2), a("div", tr, [a("h3", {
1704
1842
  class: "bb:text-lg bb:leading-6 bb:font-medium bb:text-gray-900",
1705
1843
  id: o.headingId
1706
- }, g(i.confirmationHeading), 9, Gn), a("div", Kn, [a("p", qn, g(i.confirmationText), 1)])])])]), a("div", Jn, [a("button", {
1844
+ }, _(i.confirmationHeading), 9, nr), a("div", rr, [a("p", ir, _(i.confirmationText), 1)])])])]), a("div", ar, [a("button", {
1707
1845
  type: "button",
1708
1846
  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", {
1709
1847
  "bb:bg-red-600 bb:hover:bg-red-700 bb:focus:ring-red-500": c.isDangerous,
1710
1848
  "bb:bg-yellow-400 bb:hover:bg-yellow-500 bb:focus:ring-yellow-300": c.isWarning
1711
1849
  }]),
1712
1850
  onClick: t[0] ||= S((t) => e.$emit("actionConfirmed"), ["prevent"])
1713
- }, g(i.actionButtonText), 3), a("button", {
1851
+ }, _(i.actionButtonText), 3), a("button", {
1714
1852
  type: "button",
1715
1853
  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",
1854
+ "data-dialog-focus": "",
1716
1855
  onClick: t[1] ||= S((t) => e.$emit("actionCanceled"), ["prevent"])
1717
- }, g(i.cancelButtonText ?? e.texts.cancel), 1)])]),
1856
+ }, _(i.cancelButtonText ?? e.texts.cancel), 1)])]),
1718
1857
  _: 1
1719
1858
  }, 8, ["is-open", "heading-id"]);
1720
1859
  }
1721
- var Xn = /*#__PURE__*/ A(Vn, [["render", Yn]]);
1860
+ var sr = /*#__PURE__*/ A(Qn, [["render", or]]);
1722
1861
  //#endregion
1723
1862
  //#region src/menuItems.js
1724
- function Zn(e) {
1863
+ function cr(e) {
1725
1864
  if (typeof e != "object" || !e || typeof e.label != "string" || e.label === "" || e.color !== void 0 && !O(e.color)) return !1;
1726
1865
  let t = typeof e.href == "string" && e.href !== "" && e.onSelect === void 0, n = typeof e.onSelect == "function" && e.href === void 0;
1727
1866
  return t || n;
1728
1867
  }
1729
- function Qn(e) {
1868
+ function lr(e) {
1730
1869
  return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e) : [];
1731
1870
  }
1732
- function $n(e) {
1871
+ function ur(e) {
1733
1872
  return typeof e.href == "string" && e.href !== "";
1734
1873
  }
1735
- function er(e) {
1874
+ function dr(e) {
1736
1875
  return O(e.color) ? e.color : null;
1737
1876
  }
1738
1877
  //#endregion
1739
1878
  //#region src/navigation.js
1740
- function tr(e) {
1879
+ function fr(e) {
1741
1880
  let t = e.currentTarget?.target ?? "";
1742
1881
  return !(e.defaultPrevented || e.target?.isContentEditable === !0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || t !== "" && t !== "_self" || e.button !== 0);
1743
1882
  }
1744
1883
  var X = {
1745
- inject: ge,
1884
+ inject: D,
1746
1885
  methods: { followLink(e, t) {
1747
1886
  let n = this.uiSettings.navigate;
1748
- n !== null && tr(e) && (e.preventDefault(), n(t));
1887
+ n !== null && fr(e) && (e.preventDefault(), n(t));
1749
1888
  } }
1750
- }, nr = {
1889
+ }, pr = {
1751
1890
  components: { PopoverPanel: H },
1752
1891
  mixins: [X, k],
1753
1892
  emits: ["update:modelValue"],
@@ -1760,7 +1899,7 @@ var X = {
1760
1899
  },
1761
1900
  computed: {
1762
1901
  actionItems() {
1763
- return Qn(this.actions);
1902
+ return lr(this.actions);
1764
1903
  },
1765
1904
  hasActions() {
1766
1905
  return this.actionItems.length > 0;
@@ -1768,23 +1907,23 @@ var X = {
1768
1907
  },
1769
1908
  methods: {
1770
1909
  color(e) {
1771
- return er(e);
1910
+ return dr(e);
1772
1911
  },
1773
1912
  isLink(e) {
1774
- return $n(e);
1913
+ return ur(e);
1775
1914
  },
1776
1915
  select(e) {
1777
1916
  if (typeof e.onSelect == "function") return e.onSelect();
1778
1917
  }
1779
1918
  }
1780
- }, rr = [
1919
+ }, mr = [
1781
1920
  "href",
1782
1921
  "onClick",
1783
1922
  "textContent"
1784
- ], ir = ["onClick", "textContent"];
1785
- function ar(t, r, a, o, s, c) {
1786
- let l = m("popover-panel");
1787
- return d(), n(l, {
1923
+ ], hr = ["onClick", "textContent"];
1924
+ function gr(t, r, a, o, s, c) {
1925
+ let l = h("popover-panel");
1926
+ return f(), n(l, {
1788
1927
  "model-value": a.modelValue,
1789
1928
  "has-content": c.hasActions,
1790
1929
  align: "end",
@@ -1795,32 +1934,32 @@ function ar(t, r, a, o, s, c) {
1795
1934
  "panel-role": "menu",
1796
1935
  "onUpdate:modelValue": r[0] ||= (e) => t.$emit("update:modelValue", e)
1797
1936
  }, {
1798
- trigger: b((e) => [p(t.$slots, "trigger", {
1937
+ trigger: b((e) => [m(t.$slots, "trigger", {
1799
1938
  id: e.id,
1800
1939
  popovertarget: e.popovertarget
1801
1940
  })]),
1802
- default: b(() => [(d(!0), i(e, null, f(c.actionItems, (n, r) => (d(), i(e, { key: r }, [c.isLink(n) ? (d(), i("a", {
1941
+ default: b(() => [(f(!0), i(e, null, p(c.actionItems, (n, r) => (f(), i(e, { key: r }, [c.isLink(n) ? (f(), i("a", {
1803
1942
  key: 0,
1804
1943
  href: n.href,
1805
1944
  role: "menuitem",
1806
1945
  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")]),
1807
1946
  onClick: (e) => t.followLink(e, n.href),
1808
- textContent: g(n.label)
1809
- }, null, 10, rr)) : (d(), i("button", {
1947
+ textContent: _(n.label)
1948
+ }, null, 10, mr)) : (f(), i("button", {
1810
1949
  key: 1,
1811
1950
  type: "button",
1812
1951
  role: "menuitem",
1813
1952
  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")]),
1814
1953
  onClick: (e) => c.select(n),
1815
- textContent: g(n.label)
1816
- }, null, 10, ir))], 64))), 128))]),
1954
+ textContent: _(n.label)
1955
+ }, null, 10, hr))], 64))), 128))]),
1817
1956
  _: 3
1818
1957
  }, 8, ["model-value", "has-content"]);
1819
1958
  }
1820
- var or = /*#__PURE__*/ A(nr, [["render", ar]]), sr = {
1821
- components: { PopoverMenu: or },
1959
+ var Z = /*#__PURE__*/ A(pr, [["render", gr]]), _r = {
1960
+ components: { PopoverMenu: Z },
1822
1961
  mixins: [
1823
- M,
1962
+ N,
1824
1963
  X,
1825
1964
  k
1826
1965
  ],
@@ -1829,7 +1968,7 @@ var or = /*#__PURE__*/ A(nr, [["render", ar]]), sr = {
1829
1968
  actions: {
1830
1969
  type: Array,
1831
1970
  default: () => [],
1832
- validator: (e) => e.every(Zn)
1971
+ validator: (e) => e.every(cr)
1833
1972
  },
1834
1973
  modelValue: {
1835
1974
  type: Boolean,
@@ -1841,7 +1980,7 @@ var or = /*#__PURE__*/ A(nr, [["render", ar]]), sr = {
1841
1980
  },
1842
1981
  computed: {
1843
1982
  items() {
1844
- return Qn(this.actions);
1983
+ return lr(this.actions);
1845
1984
  },
1846
1985
  hasActions() {
1847
1986
  return this.items.length > 0;
@@ -1850,7 +1989,7 @@ var or = /*#__PURE__*/ A(nr, [["render", ar]]), sr = {
1850
1989
  return this.items[0];
1851
1990
  },
1852
1991
  mainColor() {
1853
- return this.hasActions ? er(this.mainAction) : null;
1992
+ return this.hasActions ? dr(this.mainAction) : null;
1854
1993
  },
1855
1994
  menuActions() {
1856
1995
  return this.items.slice(1);
@@ -1872,7 +2011,7 @@ var or = /*#__PURE__*/ A(nr, [["render", ar]]), sr = {
1872
2011
  },
1873
2012
  methods: {
1874
2013
  isLink(e) {
1875
- return $n(e);
2014
+ return ur(e);
1876
2015
  },
1877
2016
  select(e) {
1878
2017
  if (typeof e.onSelect == "function") return e.onSelect();
@@ -1881,13 +2020,13 @@ var or = /*#__PURE__*/ A(nr, [["render", ar]]), sr = {
1881
2020
  this.menuIsOpen = e, this.$emit("update:modelValue", e);
1882
2021
  }
1883
2022
  }
1884
- }, cr = {
2023
+ }, vr = {
1885
2024
  key: 0,
1886
2025
  class: "bb-dashboard-ui bb:relative bb:inline-flex bb:shadow-xs bb:rounded-md"
1887
- }, lr = ["href", "textContent"], ur = ["textContent"], dr = ["id", "popovertarget"], fr = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
1888
- function pr(e, t, n, o, c, l) {
1889
- let f = m("popover-menu");
1890
- return l.hasActions ? (d(), i("span", cr, [l.isLink(l.mainAction) ? (d(), i("a", {
2026
+ }, yr = ["href", "textContent"], br = ["textContent"], xr = ["id", "popovertarget"], Sr = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2027
+ function Cr(e, t, n, o, c, l) {
2028
+ let d = h("popover-menu");
2029
+ return l.hasActions ? (f(), i("span", vr, [l.isLink(l.mainAction) ? (f(), i("a", {
1891
2030
  key: 0,
1892
2031
  href: l.mainAction.href,
1893
2032
  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", [{
@@ -1895,8 +2034,8 @@ function pr(e, t, n, o, c, l) {
1895
2034
  "bb:rounded-md": !l.hasMenu
1896
2035
  }, l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")]]),
1897
2036
  onClick: t[0] ||= (t) => e.followLink(t, l.mainAction.href),
1898
- textContent: g(l.mainAction.label)
1899
- }, null, 10, lr)) : (d(), i("button", {
2037
+ textContent: _(l.mainAction.label)
2038
+ }, null, 10, yr)) : (f(), i("button", {
1900
2039
  key: 1,
1901
2040
  type: "button",
1902
2041
  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", [{
@@ -1904,8 +2043,8 @@ function pr(e, t, n, o, c, l) {
1904
2043
  "bb:rounded-md": !l.hasMenu
1905
2044
  }, l.mainColor === null ? "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50" : e.colorClass(l.mainColor, "button")]]),
1906
2045
  onClick: t[1] ||= (e) => l.select(l.mainAction),
1907
- textContent: g(l.mainAction.label)
1908
- }, null, 10, ur)), s(f, {
2046
+ textContent: _(l.mainAction.label)
2047
+ }, null, 10, br)), s(d, {
1909
2048
  class: "bb:-ml-px bb:flex",
1910
2049
  actions: l.menuActions,
1911
2050
  "model-value": n.modelValue,
@@ -1916,7 +2055,7 @@ function pr(e, t, n, o, c, l) {
1916
2055
  id: n.id,
1917
2056
  popovertarget: n.popovertarget,
1918
2057
  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")])
1919
- }, [a("span", fr, g(e.texts.openMenu), 1), t[2] ||= a("svg", {
2058
+ }, [a("span", Sr, _(e.texts.openMenu), 1), t[2] ||= a("svg", {
1920
2059
  class: "bb:h-5 bb:w-5 bb:pointer-events-none bb:cursor-default",
1921
2060
  xmlns: "http://www.w3.org/2000/svg",
1922
2061
  viewBox: "0 0 20 20",
@@ -1926,7 +2065,7 @@ function pr(e, t, n, o, c, l) {
1926
2065
  "fill-rule": "evenodd",
1927
2066
  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",
1928
2067
  "clip-rule": "evenodd"
1929
- })], -1)], 10, dr)]),
2068
+ })], -1)], 10, xr)]),
1930
2069
  _: 1
1931
2070
  }, 8, [
1932
2071
  "actions",
@@ -1934,18 +2073,18 @@ function pr(e, t, n, o, c, l) {
1934
2073
  "onUpdate:modelValue"
1935
2074
  ])])) : r("", !0);
1936
2075
  }
1937
- var mr = /*#__PURE__*/ A(sr, [["render", pr]]), hr = {
1938
- components: { PopoverMenu: or },
1939
- mixins: [M],
2076
+ var wr = /*#__PURE__*/ A(_r, [["render", Cr]]), Tr = {
2077
+ components: { PopoverMenu: Z },
2078
+ mixins: [N],
1940
2079
  props: { actions: {
1941
2080
  type: Array,
1942
2081
  default: () => [],
1943
- validator: (e) => e.every(Zn)
2082
+ validator: (e) => e.every(cr)
1944
2083
  } }
1945
- }, gr = ["id", "popovertarget"], _r = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
1946
- function vr(e, t, r, i, o, s) {
1947
- let c = m("popover-menu");
1948
- return d(), n(c, {
2084
+ }, Er = ["id", "popovertarget"], Dr = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2085
+ function Or(e, t, r, i, o, s) {
2086
+ let c = h("popover-menu");
2087
+ return f(), n(c, {
1949
2088
  class: "bb-dashboard-ui bb:inline-flex",
1950
2089
  actions: r.actions
1951
2090
  }, {
@@ -1954,7 +2093,7 @@ function vr(e, t, r, i, o, s) {
1954
2093
  id: n.id,
1955
2094
  popovertarget: n.popovertarget,
1956
2095
  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"
1957
- }, [a("span", _r, g(e.texts.openMenu), 1), t[0] ||= a("svg", {
2096
+ }, [a("span", Dr, _(e.texts.openMenu), 1), t[0] ||= a("svg", {
1958
2097
  class: "bb:h-6 bb:w-6 bb:pointer-events-none bb:cursor-default",
1959
2098
  fill: "none",
1960
2099
  viewBox: "0 0 24 24",
@@ -1965,48 +2104,48 @@ function vr(e, t, r, i, o, s) {
1965
2104
  "stroke-linejoin": "round",
1966
2105
  "stroke-width": "2",
1967
2106
  d: "M4 6h16M4 12h16M4 18h16"
1968
- })], -1)], 8, gr)]),
2107
+ })], -1)], 8, Er)]),
1969
2108
  _: 1
1970
2109
  }, 8, ["actions"]);
1971
2110
  }
1972
- var yr = /*#__PURE__*/ A(hr, [["render", vr]]), br = {}, xr = {
2111
+ var kr = /*#__PURE__*/ A(Tr, [["render", Or]]), Ar = {}, jr = {
1973
2112
  xmlns: "http://www.w3.org/2000/svg",
1974
2113
  viewBox: "0 0 20 20",
1975
2114
  fill: "currentColor",
1976
2115
  "aria-hidden": "true"
1977
2116
  };
1978
- function Sr(e, t, n, r, o, s) {
1979
- return d(), i("svg", xr, [...t[0] ||= [a("path", {
2117
+ function Mr(e, t, n, r, o, s) {
2118
+ return f(), i("svg", jr, [...t[0] ||= [a("path", {
1980
2119
  "fill-rule": "evenodd",
1981
2120
  "clip-rule": "evenodd",
1982
2121
  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"
1983
2122
  }, null, -1)]]);
1984
2123
  }
1985
- var Cr = /*#__PURE__*/ A(br, [["render", Sr]]), wr = {}, Tr = {
2124
+ var Nr = /*#__PURE__*/ A(Ar, [["render", Mr]]), Pr = {}, Fr = {
1986
2125
  xmlns: "http://www.w3.org/2000/svg",
1987
2126
  viewBox: "0 0 20 20",
1988
2127
  fill: "currentColor",
1989
2128
  "aria-hidden": "true"
1990
2129
  };
1991
- function Er(e, t, n, r, o, s) {
1992
- return d(), i("svg", Tr, [...t[0] ||= [a("path", {
2130
+ function Ir(e, t, n, r, o, s) {
2131
+ return f(), i("svg", Fr, [...t[0] ||= [a("path", {
1993
2132
  "fill-rule": "evenodd",
1994
2133
  "clip-rule": "evenodd",
1995
2134
  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"
1996
2135
  }, null, -1)]]);
1997
2136
  }
1998
- var Dr = /*#__PURE__*/ A(wr, [["render", Er]]);
2137
+ var Lr = /*#__PURE__*/ A(Pr, [["render", Ir]]);
1999
2138
  //#endregion
2000
2139
  //#region src/components/Pagination.vue
2001
- function Or(e) {
2140
+ function Rr(e) {
2002
2141
  return typeof e == "string" && e !== "" ? e : null;
2003
2142
  }
2004
- var kr = {
2143
+ var zr = {
2005
2144
  components: {
2006
- ArrowNarrowLeft: Cr,
2007
- ArrowNarrowRight: Dr
2145
+ ArrowNarrowLeft: Nr,
2146
+ ArrowNarrowRight: Lr
2008
2147
  },
2009
- mixins: [M, X],
2148
+ mixins: [N, X],
2010
2149
  props: {
2011
2150
  links: {
2012
2151
  type: Object,
@@ -2034,49 +2173,49 @@ var kr = {
2034
2173
  return typeof this.from == "number" && typeof this.to == "number";
2035
2174
  },
2036
2175
  previousPageUrl() {
2037
- return Or(this.links?.prev);
2176
+ return Rr(this.links?.prev);
2038
2177
  },
2039
2178
  nextPageUrl() {
2040
- return Or(this.links?.next);
2179
+ return Rr(this.links?.next);
2041
2180
  }
2042
2181
  }
2043
- }, Ar = {
2182
+ }, Br = {
2044
2183
  key: 0,
2045
2184
  class: "bb-dashboard-ui bb:flex bb:items-center bb:justify-between"
2046
- }, jr = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, Mr = ["href"], Nr = {
2185
+ }, Vr = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, Hr = ["href"], Ur = {
2047
2186
  key: 0,
2048
2187
  class: "bb:-mt-px bb:flex bb:text-gray-400 bb:text-sm bb:leading-5"
2049
- }, Pr = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Fr = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Ir = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, Lr = ["href"];
2050
- function Rr(e, t, n, c, l, u) {
2051
- let f = m("arrow-narrow-left"), p = m("arrow-narrow-right");
2052
- return u.hasResults ? (d(), i("nav", Ar, [
2053
- a("div", jr, [u.previousPageUrl === null ? r("", !0) : (d(), i("a", {
2188
+ }, Wr = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Gr = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Kr = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, qr = ["href"];
2189
+ function Jr(e, t, n, c, l, u) {
2190
+ let d = h("arrow-narrow-left"), p = h("arrow-narrow-right");
2191
+ return u.hasResults ? (f(), i("nav", Br, [
2192
+ a("div", Vr, [u.previousPageUrl === null ? r("", !0) : (f(), i("a", {
2054
2193
  key: 0,
2055
2194
  href: u.previousPageUrl,
2056
2195
  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",
2057
2196
  onClick: t[0] ||= (t) => e.followLink(t, u.previousPageUrl)
2058
- }, [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, Mr))]),
2059
- u.hasRange ? (d(), i("div", Nr, [
2060
- o(g(e.texts.resultsBefore) + " ", 1),
2061
- a("span", Pr, g(u.from) + " - " + g(u.to), 1),
2062
- o(" " + g(e.texts.resultsOf) + " ", 1),
2063
- a("span", Fr, g(u.total), 1),
2064
- o(" " + g(e.texts.resultsAfter), 1)
2197
+ }, [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, Hr))]),
2198
+ u.hasRange ? (f(), i("div", Ur, [
2199
+ o(_(e.texts.resultsBefore) + " ", 1),
2200
+ a("span", Wr, _(u.from) + " - " + _(u.to), 1),
2201
+ o(" " + _(e.texts.resultsOf) + " ", 1),
2202
+ a("span", Gr, _(u.total), 1),
2203
+ o(" " + _(e.texts.resultsAfter), 1)
2065
2204
  ])) : r("", !0),
2066
- a("div", Ir, [u.nextPageUrl === null ? r("", !0) : (d(), i("a", {
2205
+ a("div", Kr, [u.nextPageUrl === null ? r("", !0) : (f(), i("a", {
2067
2206
  key: 0,
2068
2207
  href: u.nextPageUrl,
2069
2208
  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",
2070
2209
  onClick: t[1] ||= (t) => e.followLink(t, u.nextPageUrl)
2071
- }, [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, Lr))])
2210
+ }, [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, qr))])
2072
2211
  ])) : r("", !0);
2073
2212
  }
2074
- var zr = /*#__PURE__*/ A(kr, [["render", Rr]]), Br = [
2213
+ var Yr = /*#__PURE__*/ A(zr, [["render", Jr]]), Xr = [
2075
2214
  "left",
2076
2215
  "center",
2077
2216
  "right"
2078
2217
  ];
2079
- function Vr(e) {
2218
+ function Zr(e) {
2080
2219
  if (typeof e != "object" || !e || typeof e.key != "string" || e.key === "") return null;
2081
2220
  let t = e.key;
2082
2221
  return {
@@ -2085,21 +2224,21 @@ function Vr(e) {
2085
2224
  value: typeof e.value == "function" ? e.value : (e) => e?.[t],
2086
2225
  secondary: typeof e.secondary == "function" ? e.secondary : null,
2087
2226
  muted: e.muted === !0,
2088
- align: Br.includes(e.align) ? e.align : "left",
2227
+ align: Xr.includes(e.align) ? e.align : "left",
2089
2228
  wrap: e.wrap === !0,
2090
2229
  narrow: e.narrow === !0,
2091
2230
  visible: e.visible !== !1
2092
2231
  };
2093
2232
  }
2094
- function Z(e) {
2233
+ function Qr(e) {
2095
2234
  return typeof e == "string" && e !== "" ? e : null;
2096
2235
  }
2097
- var Hr = {
2236
+ var $r = {
2098
2237
  components: {
2099
- Pagination: zr,
2238
+ Pagination: Yr,
2100
2239
  InfoPill: q
2101
2240
  },
2102
- mixins: [M, k],
2241
+ mixins: [N, k],
2103
2242
  props: {
2104
2243
  rows: {
2105
2244
  type: Array,
@@ -2144,7 +2283,7 @@ var Hr = {
2144
2283
  return Array.isArray(this.rows) ? this.rows : [];
2145
2284
  },
2146
2285
  visibleColumns() {
2147
- return (Array.isArray(this.columns) ? this.columns : []).map(Vr).filter((e) => e !== null && e.visible);
2286
+ return (Array.isArray(this.columns) ? this.columns : []).map(Zr).filter((e) => e !== null && e.visible);
2148
2287
  },
2149
2288
  rowStripes() {
2150
2289
  return this.normalizedRows.map((e) => this.stripeOf(e));
@@ -2163,10 +2302,10 @@ var Hr = {
2163
2302
  },
2164
2303
  badgeText() {
2165
2304
  if (this.hasRecords) {
2166
- let e = Z(this.foundText);
2305
+ let e = Qr(this.foundText);
2167
2306
  return e === null ? null : `${e}: ${this.recordCount}`;
2168
2307
  }
2169
- return Z(this.emptyText);
2308
+ return Qr(this.emptyText);
2170
2309
  }
2171
2310
  },
2172
2311
  methods: {
@@ -2193,22 +2332,22 @@ var Hr = {
2193
2332
  return n == null ? "" : String(n);
2194
2333
  }
2195
2334
  }
2196
- }, Ur = { class: "bb:min-w-full bb:divide-y bb:divide-gray-200 bb:border-collapse" }, Wr = { class: "bb:bg-gray-50" }, Gr = ["textContent"], Kr = { class: "bb:divide-y bb:divide-gray-200" }, qr = ["textContent"], Jr = ["textContent"];
2197
- function Yr(t, o, s, c, l, h) {
2198
- let _ = m("info-pill"), v = m("pagination");
2199
- return d(), i("div", null, [
2200
- h.hasBadgeRow() ? (d(), i("div", {
2335
+ }, ei = { class: "bb:min-w-full bb:divide-y bb:divide-gray-200 bb:border-collapse" }, ti = { class: "bb:bg-gray-50" }, ni = ["textContent"], ri = { class: "bb:divide-y bb:divide-gray-200" }, ii = ["textContent"], ai = ["textContent"];
2336
+ function oi(t, o, s, c, l, d) {
2337
+ let g = h("info-pill"), v = h("pagination");
2338
+ return f(), i("div", null, [
2339
+ d.hasBadgeRow() ? (f(), i("div", {
2201
2340
  key: 0,
2202
- class: u(["bb:flex bb:justify-center bb:items-center bb:space-x-2", h.isCard ? "" : "bb:my-4"])
2203
- }, [h.badgeText === null ? r("", !0) : (d(), n(_, {
2341
+ class: u(["bb:flex bb:justify-center bb:items-center bb:space-x-2", d.isCard ? "" : "bb:my-4"])
2342
+ }, [d.badgeText === null ? r("", !0) : (f(), n(g, {
2204
2343
  key: 0,
2205
- text: h.badgeText,
2344
+ text: d.badgeText,
2206
2345
  color: "indigo"
2207
- }, null, 8, ["text"])), h.hasRecords ? p(t.$slots, "results-actions", {}, void 0, void 0, 1) : r("", !0)], 2)) : r("", !0),
2208
- h.normalizedRows.length > 0 ? (d(), i("div", {
2346
+ }, null, 8, ["text"])), d.hasRecords ? m(t.$slots, "results-actions", {}, void 0, void 0, 1) : r("", !0)], 2)) : r("", !0),
2347
+ d.normalizedRows.length > 0 ? (f(), i("div", {
2209
2348
  key: 1,
2210
- class: u(h.isCard && h.hasBadgeRow() ? "bb:mt-4" : "")
2211
- }, [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", Ur, [a("thead", null, [a("tr", Wr, [(d(!0), i(e, null, f(h.visibleColumns, (e) => (d(), i("th", {
2349
+ class: u(d.isCard && d.hasBadgeRow() ? "bb:mt-4" : "")
2350
+ }, [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", ei, [a("thead", null, [a("tr", ti, [(f(!0), i(e, null, p(d.visibleColumns, (e) => (f(), i("th", {
2212
2351
  key: e.key,
2213
2352
  scope: "col",
2214
2353
  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", [{
@@ -2216,11 +2355,11 @@ function Yr(t, o, s, c, l, h) {
2216
2355
  "bb:text-center": e.align === "center",
2217
2356
  "bb:text-right": e.align === "right"
2218
2357
  }, { "bb:w-px": e.narrow }]]),
2219
- textContent: g(e.label)
2220
- }, null, 10, Gr))), 128))])]), a("tbody", Kr, [(d(!0), i(e, null, f(h.normalizedRows, (n, o) => (d(), i("tr", {
2221
- key: h.keyOf(n, o),
2358
+ textContent: _(e.label)
2359
+ }, null, 10, ni))), 128))])]), a("tbody", ri, [(f(!0), i(e, null, p(d.normalizedRows, (n, o) => (f(), i("tr", {
2360
+ key: d.keyOf(n, o),
2222
2361
  class: "bb:bg-white bb:even:bg-gray-50"
2223
- }, [(d(!0), i(e, null, f(h.visibleColumns, (e, s) => (d(), i("td", {
2362
+ }, [(f(!0), i(e, null, p(d.visibleColumns, (e, s) => (f(), i("td", {
2224
2363
  key: e.key,
2225
2364
  class: u(["bb:px-6 bb:py-4 bb:align-top bb:relative bb:text-sm bb:leading-5", [
2226
2365
  { "bb:whitespace-nowrap": !e.wrap },
@@ -2231,27 +2370,27 @@ function Yr(t, o, s, c, l, h) {
2231
2370
  },
2232
2371
  { "bb:w-px": e.narrow }
2233
2372
  ]])
2234
- }, [s === 0 && h.rowStripes[o] !== null ? (d(), i("span", {
2373
+ }, [s === 0 && d.rowStripes[o] !== null ? (f(), i("span", {
2235
2374
  key: 0,
2236
- class: u(["bb:absolute bb:left-0 bb:inset-y-0 bb:w-1 bb:bg-current", t.colorClass(h.rowStripes[o], "mark")]),
2375
+ class: u(["bb:absolute bb:left-0 bb:inset-y-0 bb:w-1 bb:bg-current", t.colorClass(d.rowStripes[o], "mark")]),
2237
2376
  "aria-hidden": "true"
2238
- }, null, 2)) : r("", !0), p(t.$slots, `cell-${e.key}`, {
2377
+ }, null, 2)) : r("", !0), m(t.$slots, `cell-${e.key}`, {
2239
2378
  row: n,
2240
2379
  index: o
2241
2380
  }, () => [a("div", {
2242
2381
  class: u(["bb:font-medium", e.muted ? "bb:text-gray-400" : "bb:text-gray-900"]),
2243
- textContent: g(h.textOf(e.value, n))
2244
- }, null, 10, qr), e.secondary !== null && h.textOf(e.secondary, n) !== "" ? (d(), i("div", {
2382
+ textContent: _(d.textOf(e.value, n))
2383
+ }, null, 10, ii), e.secondary !== null && d.textOf(e.secondary, n) !== "" ? (f(), i("div", {
2245
2384
  key: 0,
2246
2385
  class: "bb:text-gray-400",
2247
- textContent: g(h.textOf(e.secondary, n))
2248
- }, null, 8, Jr)) : r("", !0)])], 2))), 128))]))), 128))])])], 2)], 2)) : r("", !0),
2249
- h.hasMeta ? (d(), n(v, {
2386
+ textContent: _(d.textOf(e.secondary, n))
2387
+ }, null, 8, ai)) : r("", !0)])], 2))), 128))]))), 128))])])], 2)], 2)) : r("", !0),
2388
+ d.hasMeta ? (f(), n(v, {
2250
2389
  key: 2,
2251
2390
  meta: s.meta,
2252
2391
  links: s.links ?? {},
2253
2392
  lang: t.lang,
2254
- class: u(h.isCard ? "bb:mt-4" : "bb:mt-6")
2393
+ class: u(d.isCard ? "bb:mt-4" : "bb:mt-6")
2255
2394
  }, null, 8, [
2256
2395
  "meta",
2257
2396
  "links",
@@ -2260,7 +2399,7 @@ function Yr(t, o, s, c, l, h) {
2260
2399
  ])) : r("", !0)
2261
2400
  ]);
2262
2401
  }
2263
- var Xr = /*#__PURE__*/ A(Hr, [["render", Yr]]), Zr = {
2402
+ var si = /*#__PURE__*/ A($r, [["render", oi]]), ci = {
2264
2403
  mixins: [X],
2265
2404
  props: {
2266
2405
  url: {
@@ -2276,17 +2415,17 @@ var Xr = /*#__PURE__*/ A(Hr, [["render", Yr]]), Zr = {
2276
2415
  default: !1
2277
2416
  }
2278
2417
  }
2279
- }, Qr = ["href", "textContent"];
2280
- function $r(e, t, n, r, a, o) {
2281
- return d(), i("a", {
2418
+ }, li = ["href", "textContent"];
2419
+ function ui(e, t, n, r, a, o) {
2420
+ return f(), i("a", {
2282
2421
  href: n.url,
2283
2422
  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"]),
2284
2423
  onClick: t[0] ||= (t) => e.followLink(t, n.url),
2285
- textContent: g(n.name)
2286
- }, null, 10, Qr);
2424
+ textContent: _(n.name)
2425
+ }, null, 10, li);
2287
2426
  }
2288
- var ei = /*#__PURE__*/ A(Zr, [["render", $r]]), ti = {
2289
- mixins: [M, X],
2427
+ var di = /*#__PURE__*/ A(ci, [["render", ui]]), fi = {
2428
+ mixins: [N, X],
2290
2429
  props: {
2291
2430
  tabs: {
2292
2431
  type: Array,
@@ -2300,38 +2439,38 @@ var ei = /*#__PURE__*/ A(Zr, [["render", $r]]), ti = {
2300
2439
  computed: { tabList() {
2301
2440
  return Array.isArray(this.tabs) ? this.tabs.filter((e) => typeof e == "object" && !!e) : [];
2302
2441
  } }
2303
- }, ni = ["aria-label"], ri = [
2442
+ }, pi = ["aria-label"], mi = [
2304
2443
  "href",
2305
2444
  "aria-current",
2306
2445
  "onClick",
2307
2446
  "textContent"
2308
2447
  ];
2309
- function ii(t, n, r, a, o, s) {
2310
- return d(), i("nav", {
2448
+ function hi(t, n, r, a, o, s) {
2449
+ return f(), i("nav", {
2311
2450
  class: "bb-dashboard-ui bb:flex bb:space-x-4",
2312
2451
  "aria-label": t.texts.tabs
2313
- }, [(d(!0), i(e, null, f(s.tabList, (e) => (d(), i("a", {
2452
+ }, [(f(!0), i(e, null, p(s.tabList, (e) => (f(), i("a", {
2314
2453
  key: e.key,
2315
2454
  href: e.url,
2316
2455
  "aria-current": e.key === r.activeKey ? "page" : null,
2317
2456
  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"]),
2318
2457
  onClick: (n) => t.followLink(n, e.url),
2319
- textContent: g(e.name)
2320
- }, null, 10, ri))), 128))], 8, ni);
2458
+ textContent: _(e.name)
2459
+ }, null, 10, mi))), 128))], 8, pi);
2321
2460
  }
2322
- var ai = /*#__PURE__*/ A(ti, [["render", ii]]), oi = [
2461
+ var gi = /*#__PURE__*/ A(fi, [["render", hi]]), _i = [
2323
2462
  "xl",
2324
2463
  "4xl",
2325
2464
  "7xl"
2326
- ], si = {
2327
- components: { CrossButton: N },
2328
- mixins: [M],
2465
+ ], vi = {
2466
+ components: { CrossButton: P },
2467
+ mixins: [N],
2329
2468
  inheritAttrs: !1,
2330
2469
  props: {
2331
2470
  width: {
2332
2471
  type: String,
2333
2472
  default: "xl",
2334
- validator: (e) => oi.includes(e)
2473
+ validator: (e) => _i.includes(e)
2335
2474
  },
2336
2475
  fallbackUrl: {
2337
2476
  type: String,
@@ -2347,13 +2486,13 @@ var ai = /*#__PURE__*/ A(ti, [["render", ii]]), oi = [
2347
2486
  },
2348
2487
  computed: {
2349
2488
  resolvedWidth() {
2350
- return oi.includes(this.width) ? this.width : "xl";
2489
+ return _i.includes(this.width) ? this.width : "xl";
2351
2490
  },
2352
2491
  windows() {
2353
2492
  return this.uiSettings.windows;
2354
2493
  },
2355
2494
  resolvedKey() {
2356
- return this.windowKey !== null && this.windowKey !== "" ? this.windowKey : this.windows === null ? null : ae(this.windows.page.address);
2495
+ return this.windowKey !== null && this.windowKey !== "" ? this.windowKey : this.windows === null ? null : se(this.windows.page.address);
2357
2496
  },
2358
2497
  target() {
2359
2498
  return this.returnAddress === null ? this.fallbackUrl === null || this.fallbackUrl === "" ? null : this.fallbackUrl : this.returnAddress;
@@ -2363,23 +2502,23 @@ var ai = /*#__PURE__*/ A(ti, [["render", ii]]), oi = [
2363
2502
  }
2364
2503
  },
2365
2504
  watch: { fallbackUrl() {
2366
- this.windows !== null && me(this.windows.state, this, this.fallbackAddress());
2505
+ this.windows !== null && ge(this.windows.state, this, this.fallbackAddress());
2367
2506
  } },
2368
2507
  mounted() {
2369
2508
  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" }));
2370
2509
  },
2371
2510
  beforeUnmount() {
2372
- this.windows !== null && pe(this.windows.state, this);
2511
+ this.windows !== null && he(this.windows.state, this);
2373
2512
  },
2374
2513
  methods: {
2375
2514
  fallbackAddress() {
2376
- return w(this.fallbackUrl, window.location.origin);
2515
+ return oe(this.fallbackUrl, window.location.origin);
2377
2516
  },
2378
2517
  forwardedAttrs() {
2379
2518
  return Object.fromEntries(Object.entries(this.$attrs).filter(([e]) => e.startsWith("data-") || e.startsWith("aria-")));
2380
2519
  },
2381
2520
  syncWindow() {
2382
- let e = fe(this.windows.state, this, this.resolvedKey, this.fallbackAddress());
2521
+ let e = me(this.windows.state, this, this.resolvedKey, this.fallbackAddress());
2383
2522
  e.rejected && console.warn(`PageCard: ключ окна сменился на «${this.resolvedKey}» без смены страницы — карточка остаётся в окне «${e.key}»`), this.returnAddress = e.window.returnAddress;
2384
2523
  },
2385
2524
  close() {
@@ -2394,39 +2533,39 @@ var ai = /*#__PURE__*/ A(ti, [["render", ii]]), oi = [
2394
2533
  }
2395
2534
  }
2396
2535
  };
2397
- function ci(e, t, a, s, c, f) {
2398
- let h = m("cross-button");
2399
- return d(), i("div", l({
2536
+ function yi(e, t, a, s, c, d) {
2537
+ let p = h("cross-button");
2538
+ return f(), i("div", l({
2400
2539
  class: ["bb:box-border bb:relative bb:my-6 bb:mx-auto bb:bg-white bb:shadow-xl bb:rounded-lg", [
2401
2540
  {
2402
- "bb:max-w-xl": f.resolvedWidth === "xl",
2403
- "bb:max-w-4xl": f.resolvedWidth === "4xl",
2404
- "bb:max-w-7xl": f.resolvedWidth === "7xl"
2541
+ "bb:max-w-xl": d.resolvedWidth === "xl",
2542
+ "bb:max-w-4xl": d.resolvedWidth === "4xl",
2543
+ "bb:max-w-7xl": d.resolvedWidth === "7xl"
2405
2544
  },
2406
- f.canClose ? {
2407
- "bb:[--bb-closer-space:3.5rem] bb:md:[--bb-closer-space:0px]": f.resolvedWidth === "xl",
2408
- "bb:[--bb-closer-space:3.5rem] bb:lg:[--bb-closer-space:0px]": f.resolvedWidth === "4xl",
2409
- "bb:[--bb-closer-space:3.5rem] bb:2xl:[--bb-closer-space:0px]": f.resolvedWidth === "7xl"
2545
+ d.canClose ? {
2546
+ "bb:[--bb-closer-space:3.5rem] bb:md:[--bb-closer-space:0px]": d.resolvedWidth === "xl",
2547
+ "bb:[--bb-closer-space:3.5rem] bb:lg:[--bb-closer-space:0px]": d.resolvedWidth === "4xl",
2548
+ "bb:[--bb-closer-space:3.5rem] bb:2xl:[--bb-closer-space:0px]": d.resolvedWidth === "7xl"
2410
2549
  } : "bb:[--bb-closer-space:0px]",
2411
2550
  e.$attrs.class
2412
2551
  ]],
2413
2552
  style: e.$attrs.style
2414
- }, { ...f.forwardedAttrs() }), [p(e.$slots, "default", { close: f.close }), f.canClose ? (d(), n(h, {
2553
+ }, { ...d.forwardedAttrs() }), [m(e.$slots, "default", { close: d.close }), d.canClose ? (f(), n(p, {
2415
2554
  key: 0,
2416
2555
  size: "large",
2417
2556
  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", {
2418
- "bb:md:right-auto bb:md:left-full bb:md:mr-0 bb:md:ml-4": f.resolvedWidth === "xl",
2419
- "bb:lg:right-auto bb:lg:left-full bb:lg:mr-0 bb:lg:ml-4": f.resolvedWidth === "4xl",
2420
- "bb:2xl:right-auto bb:2xl:left-full bb:2xl:mr-0 bb:2xl:ml-4": f.resolvedWidth === "7xl"
2557
+ "bb:md:right-auto bb:md:left-full bb:md:mr-0 bb:md:ml-4": d.resolvedWidth === "xl",
2558
+ "bb:lg:right-auto bb:lg:left-full bb:lg:mr-0 bb:lg:ml-4": d.resolvedWidth === "4xl",
2559
+ "bb:2xl:right-auto bb:2xl:left-full bb:2xl:mr-0 bb:2xl:ml-4": d.resolvedWidth === "7xl"
2421
2560
  }]),
2422
2561
  tabindex: "0",
2423
- onClicked: f.close
2562
+ onClicked: d.close
2424
2563
  }, {
2425
- default: b(() => [o(g(e.texts.back), 1)]),
2564
+ default: b(() => [o(_(e.texts.back), 1)]),
2426
2565
  _: 1
2427
2566
  }, 8, ["class", "onClicked"])) : r("", !0)], 16);
2428
2567
  }
2429
- var li = /*#__PURE__*/ A(si, [["render", ci]]), ui = {}, di = {
2568
+ var bi = /*#__PURE__*/ A(vi, [["render", yi]]), xi = {}, Si = {
2430
2569
  class: "bb:h-7 bb:w-7 bb:text-green-600",
2431
2570
  xmlns: "http://www.w3.org/2000/svg",
2432
2571
  fill: "none",
@@ -2435,22 +2574,22 @@ var li = /*#__PURE__*/ A(si, [["render", ci]]), ui = {}, di = {
2435
2574
  stroke: "currentColor",
2436
2575
  "aria-hidden": "true"
2437
2576
  };
2438
- function fi(e, t, n, r, o, s) {
2439
- return d(), i("svg", di, [...t[0] ||= [a("path", {
2577
+ function Ci(e, t, n, r, o, s) {
2578
+ return f(), i("svg", Si, [...t[0] ||= [a("path", {
2440
2579
  "stroke-linecap": "round",
2441
2580
  "stroke-linejoin": "round",
2442
2581
  d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
2443
2582
  }, null, -1)]]);
2444
2583
  }
2445
- var pi = /*#__PURE__*/ A(ui, [["render", fi]]), mi = {}, hi = {
2584
+ var wi = /*#__PURE__*/ A(xi, [["render", Ci]]), Ti = {}, Ei = {
2446
2585
  class: "bb:h-5 bb:w-5",
2447
2586
  xmlns: "http://www.w3.org/2000/svg",
2448
2587
  viewBox: "0 0 20 20",
2449
2588
  fill: "currentColor",
2450
2589
  "aria-hidden": "true"
2451
2590
  };
2452
- function gi(e, t, n, r, o, s) {
2453
- return d(), i("svg", hi, [...t[0] ||= [a("path", {
2591
+ function Di(e, t, n, r, o, s) {
2592
+ return f(), i("svg", Ei, [...t[0] ||= [a("path", {
2454
2593
  "fill-rule": "evenodd",
2455
2594
  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",
2456
2595
  "clip-rule": "evenodd"
@@ -2458,14 +2597,14 @@ function gi(e, t, n, r, o, s) {
2458
2597
  }
2459
2598
  //#endregion
2460
2599
  //#region src/components/NotificationMessage.vue
2461
- var _i = {
2600
+ var Oi = {
2462
2601
  components: {
2463
- Check: pi,
2464
- Close: /* @__PURE__ */ A(mi, [["render", gi]]),
2465
- Dangerous: J,
2466
- Warning: Y
2602
+ Check: wi,
2603
+ Close: /* @__PURE__ */ A(Ti, [["render", Di]]),
2604
+ Dangerous: qn,
2605
+ Warning: Zn
2467
2606
  },
2468
- mixins: [M],
2607
+ mixins: [N],
2469
2608
  emits: ["update:modelValue"],
2470
2609
  props: {
2471
2610
  modelValue: {
@@ -2503,38 +2642,38 @@ var _i = {
2503
2642
  return this.type === "confirmation";
2504
2643
  }
2505
2644
  }
2506
- }, vi = ["role"], yi = { class: "bb:p-4" }, bi = { class: "bb:flex bb:items-start" }, xi = { class: "bb:shrink-0" }, Si = { class: "bb:ml-3 bb:w-0 bb:flex-1 bb:pt-0.5" }, Ci = { class: "bb:text-sm bb:font-medium bb:text-gray-900" }, wi = { class: "bb:mt-1 bb:text-sm bb:text-gray-500" }, Ti = { class: "bb:ml-4 bb:shrink-0 bb:flex" }, Ei = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2507
- function Di(e, t, o, c, l, f) {
2508
- let p = m("warning"), h = m("dangerous"), _ = m("check"), v = m("close");
2509
- return d(), i("div", {
2645
+ }, ki = ["role"], Ai = { class: "bb:p-4" }, ji = { class: "bb:flex bb:items-start" }, Mi = { class: "bb:shrink-0" }, Ni = { class: "bb:ml-3 bb:w-0 bb:flex-1 bb:pt-0.5" }, Pi = { class: "bb:text-sm bb:font-medium bb:text-gray-900" }, Fi = { class: "bb:mt-1 bb:text-sm bb:text-gray-500" }, Ii = { class: "bb:ml-4 bb:shrink-0 bb:flex" }, Li = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2646
+ function Ri(e, t, o, c, l, d) {
2647
+ let p = h("warning"), m = h("dangerous"), g = h("check"), v = h("close");
2648
+ return f(), i("div", {
2510
2649
  class: "bb-dashboard-ui bb:fixed bb:inset-0 bb:flex bb:items-start bb:justify-end bb:p-6 bb:pointer-events-none",
2511
- role: f.isDangerous ? "alert" : "status"
2512
- }, [f.hasMessage ? (d(), i("div", {
2650
+ role: d.isDangerous ? "alert" : "status"
2651
+ }, [d.hasMessage ? (f(), i("div", {
2513
2652
  key: 0,
2514
2653
  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", {
2515
- "bb:bg-red-50": f.isDangerous,
2516
- "bb:bg-yellow-50": f.isWarning,
2517
- "bb:bg-gray-50": f.isConfirmation
2654
+ "bb:bg-red-50": d.isDangerous,
2655
+ "bb:bg-yellow-50": d.isWarning,
2656
+ "bb:bg-gray-50": d.isConfirmation
2518
2657
  }])
2519
- }, [a("div", yi, [a("div", bi, [
2520
- a("div", xi, [
2521
- f.isWarning ? (d(), n(p, { key: 0 })) : r("", !0),
2522
- f.isDangerous ? (d(), n(h, { key: 1 })) : r("", !0),
2523
- f.isConfirmation ? (d(), n(_, { key: 2 })) : r("", !0)
2658
+ }, [a("div", Ai, [a("div", ji, [
2659
+ a("div", Mi, [
2660
+ d.isWarning ? (f(), n(p, { key: 0 })) : r("", !0),
2661
+ d.isDangerous ? (f(), n(m, { key: 1 })) : r("", !0),
2662
+ d.isConfirmation ? (f(), n(g, { key: 2 })) : r("", !0)
2524
2663
  ]),
2525
- a("div", Si, [a("p", Ci, g(o.notificationHeading), 1), a("p", wi, g(f.text), 1)]),
2526
- a("div", Ti, [a("button", {
2664
+ a("div", Ni, [a("p", Pi, _(o.notificationHeading), 1), a("p", Fi, _(d.text), 1)]),
2665
+ a("div", Ii, [a("button", {
2527
2666
  type: "button",
2528
2667
  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", {
2529
- "bb:bg-red-50": f.isDangerous,
2530
- "bb:bg-yellow-50": f.isWarning,
2531
- "bb:bg-gray-50": f.isConfirmation
2668
+ "bb:bg-red-50": d.isDangerous,
2669
+ "bb:bg-yellow-50": d.isWarning,
2670
+ "bb:bg-gray-50": d.isConfirmation
2532
2671
  }]),
2533
2672
  onClick: t[0] ||= S((t) => e.$emit("update:modelValue", ""), ["prevent"])
2534
- }, [a("span", Ei, g(e.texts.close), 1), s(v, { class: "bb:pointer-events-none bb:cursor-default" })], 2)])
2535
- ])])], 2)) : r("", !0)], 8, vi);
2673
+ }, [a("span", Li, _(e.texts.close), 1), s(v, { class: "bb:pointer-events-none bb:cursor-default" })], 2)])
2674
+ ])])], 2)) : r("", !0)], 8, ki);
2536
2675
  }
2537
- var Oi = /*#__PURE__*/ A(_i, [["render", Di]]), ki = {}, Ai = {
2676
+ var zi = /*#__PURE__*/ A(Oi, [["render", Ri]]), Bi = {}, Vi = {
2538
2677
  class: "bb:h-5 bb:w-5",
2539
2678
  xmlns: "http://www.w3.org/2000/svg",
2540
2679
  fill: "none",
@@ -2543,8 +2682,8 @@ var Oi = /*#__PURE__*/ A(_i, [["render", Di]]), ki = {}, Ai = {
2543
2682
  "stroke-width": "2",
2544
2683
  "aria-hidden": "true"
2545
2684
  };
2546
- function ji(e, t, n, r, o, s) {
2547
- return d(), i("svg", Ai, [...t[0] ||= [a("path", {
2685
+ function Hi(e, t, n, r, o, s) {
2686
+ return f(), i("svg", Vi, [...t[0] ||= [a("path", {
2548
2687
  "stroke-linecap": "round",
2549
2688
  "stroke-linejoin": "round",
2550
2689
  d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
@@ -2554,12 +2693,12 @@ function ji(e, t, n, r, o, s) {
2554
2693
  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"
2555
2694
  }, null, -1)]]);
2556
2695
  }
2557
- var Mi = /*#__PURE__*/ A(ki, [["render", ji]]), Q = 0, $ = null, Ni = {
2696
+ var Ui = /*#__PURE__*/ A(Bi, [["render", Hi]]), Q = 0, $ = null, Wi = {
2558
2697
  components: {
2559
2698
  PopoverPanel: H,
2560
- Eye: Mi
2699
+ Eye: Ui
2561
2700
  },
2562
- mixins: [M],
2701
+ mixins: [N],
2563
2702
  emits: ["update:modelValue"],
2564
2703
  props: {
2565
2704
  text: {
@@ -2602,10 +2741,10 @@ var Mi = /*#__PURE__*/ A(ki, [["render", ji]]), Q = 0, $ = null, Ni = {
2602
2741
  this.holdsPageSelectionLock && (this.holdsPageSelectionLock = !1, --Q, Q === 0 && (Object.assign(document.documentElement.style, $), $ = null));
2603
2742
  }
2604
2743
  }
2605
- }, Pi = ["id", "popovertarget"], Fi = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2606
- function Ii(e, t, r, i, c, l) {
2607
- let u = m("eye"), f = m("popover-panel");
2608
- return d(), n(f, {
2744
+ }, Gi = ["id", "popovertarget"], Ki = { class: "bb:sr-only bb:pointer-events-none bb:cursor-default" };
2745
+ function qi(e, t, r, i, c, l) {
2746
+ let u = h("eye"), d = h("popover-panel");
2747
+ return f(), n(d, {
2609
2748
  class: "bb-dashboard-ui bb:inline-flex",
2610
2749
  "has-content": !l.isEmpty,
2611
2750
  "model-value": r.modelValue,
@@ -2623,8 +2762,8 @@ function Ii(e, t, r, i, c, l) {
2623
2762
  id: t.id,
2624
2763
  popovertarget: t.popovertarget,
2625
2764
  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"
2626
- }, [a("span", Fi, g(e.texts.showText), 1), s(u, { class: "bb:pointer-events-none bb:cursor-default" })], 8, Pi)]),
2627
- default: b(() => [o(g(l.normalizedText), 1)]),
2765
+ }, [a("span", Ki, _(e.texts.showText), 1), s(u, { class: "bb:pointer-events-none bb:cursor-default" })], 8, Gi)]),
2766
+ default: b(() => [o(_(l.normalizedText), 1)]),
2628
2767
  _: 1
2629
2768
  }, 8, [
2630
2769
  "has-content",
@@ -2633,6 +2772,6 @@ function Ii(e, t, r, i, c, l) {
2633
2772
  "onToggle"
2634
2773
  ]);
2635
2774
  }
2636
- var Li = /*#__PURE__*/ A(Ni, [["render", Ii]]);
2775
+ var Ji = /*#__PURE__*/ A(Wi, [["render", qi]]);
2637
2776
  //#endregion
2638
- export { On as ActionPill, Xn as ConfirmationModal, Xr as DataTable, Oe as Dot, mr as DropdownButtonWithAction, un as ErrorMessages, yr as HamburgerMenu, q as InfoPill, ei as NavigationMenuElement, Oi as NotificationMessage, li as PageCard, ai as PageTabs, Ze as RussianMobileFilter, it as Search, Ft as SelectDateInterval, $t as SelectSingle, Li as TextPopover, ve as dashboardUi, Se as downloadFile };
2777
+ export { In as ActionPill, sr as ConfirmationModal, si as DataTable, j as Dot, wr as DropdownButtonWithAction, fn as ErrorMessages, vn as FormInput, kr as HamburgerMenu, q as InfoPill, di as NavigationMenuElement, zi as NotificationMessage, bi as PageCard, gi as PageTabs, Qe as RussianMobileFilter, at as Search, Lt as SelectDateInterval, tn as SelectSingle, Ji as TextPopover, be as dashboardUi, we as downloadFile };