@boobooking/dashboard-ui-components 0.13.0 → 0.15.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
@@ -248,101 +248,6 @@ var he = { install(e, t) {
248
248
  for (let [e, r] of t) n[e] = r;
249
249
  return n;
250
250
  }, ge = {
251
- props: {
252
- isOpen: {
253
- type: Boolean,
254
- default: !1
255
- },
256
- isTransparent: {
257
- type: Boolean,
258
- default: !0
259
- }
260
- },
261
- emits: ["update:isOpen", "escaped"],
262
- methods: {
263
- closeOverlay() {
264
- this.$emit("update:isOpen", !1), this.$emit("escaped");
265
- },
266
- handleEscape(e) {
267
- this.isOpen && (e.key === "Esc" || e.key === "Escape") && this.closeOverlay();
268
- }
269
- },
270
- mounted() {
271
- document.addEventListener("keydown", this.handleEscape);
272
- },
273
- beforeUnmount() {
274
- document.removeEventListener("keydown", this.handleEscape);
275
- }
276
- };
277
- function _e(e, t, n, r, a, o) {
278
- return x((d(), i("button", {
279
- tabindex: "-1",
280
- onClick: t[0] ||= S((...e) => o.closeOverlay && o.closeOverlay(...e), ["prevent"]),
281
- class: u(["bb:fixed bb:inset-0 bb:w-full bb:h-full bb:cursor-default bb:flex bb:items-start", {
282
- "bb:z-20": n.isOpen,
283
- "bb:bg-transparent": n.isTransparent,
284
- "bb:bg-gray-900 bb:opacity-75": !n.isTransparent
285
- }])
286
- }, null, 2)), [[y, n.isOpen]]);
287
- }
288
- //#endregion
289
- //#region src/components/Popup.vue
290
- var ve = {
291
- components: { Overlay: /* @__PURE__ */ j(ge, [["render", _e]]) },
292
- inheritAttrs: !1,
293
- emits: ["update:modelValue"],
294
- props: {
295
- modelValue: {
296
- type: Boolean,
297
- default: !1
298
- },
299
- align: {
300
- type: String,
301
- default: "left",
302
- validator: (e) => ["left", "right"].indexOf(e) !== -1
303
- }
304
- },
305
- data() {
306
- return { overlayIsOpen: this.modelValue };
307
- },
308
- watch: {
309
- modelValue: function(e) {
310
- this.overlayIsOpen = e;
311
- },
312
- overlayIsOpen(e) {
313
- this.$emit("update:modelValue", e);
314
- }
315
- },
316
- computed: {
317
- alignLeft() {
318
- return this.align === "left";
319
- },
320
- alignRight() {
321
- return this.align === "right";
322
- }
323
- }
324
- }, ye = { class: "bb-dashboard-ui bb:relative" };
325
- function be(e, n, r, o, c, u) {
326
- let f = m("overlay");
327
- return d(), i("div", ye, [s(f, {
328
- "is-open": c.overlayIsOpen,
329
- "onUpdate:isOpen": n[0] ||= (e) => c.overlayIsOpen = e
330
- }, null, 8, ["is-open"]), s(t, {
331
- "enter-active-class": "bb:transition bb:ease-out bb:duration-100",
332
- "enter-from-class": "bb:opacity-0 bb:scale-95",
333
- "enter-to-class": "bb:opacity-100 bb:scale-100",
334
- "leave-active-class": "bb:transition bb:ease-in bb:duration-75",
335
- "leave-from-class": "bb:opacity-100 bb:scale-100",
336
- "leave-to-class": "bb:opacity-0 bb:scale-95"
337
- }, {
338
- default: b(() => [x(a("div", l(e.$attrs, { class: ["bb:absolute bb:z-20", {
339
- "bb:left-0": u.alignLeft,
340
- "bb:right-0": u.alignRight
341
- }] }), [p(e.$slots, "default")], 16), [[y, r.modelValue]])]),
342
- _: 3
343
- })]);
344
- }
345
- var M = /*#__PURE__*/ j(ve, [["render", be]]), xe = {
346
251
  props: {
347
252
  withPulse: {
348
253
  type: Boolean,
@@ -363,7 +268,7 @@ var M = /*#__PURE__*/ j(ve, [["render", be]]), xe = {
363
268
  }
364
269
  }
365
270
  };
366
- function Se(e, t, n, r, o, s) {
271
+ function _e(e, t, n, r, o, s) {
367
272
  return d(), i("div", { class: u(["bb-dashboard-ui bb:flex bb:h-full bb:items-center bb:leading-none bb:text-4xl", {
368
273
  "bb:text-red-500": s.isRed,
369
274
  "bb:text-green-500": s.isGreen,
@@ -377,169 +282,8 @@ function Se(e, t, n, r, o, s) {
377
282
  r: "45"
378
283
  })], -1)]], 2);
379
284
  }
380
- var N = /*#__PURE__*/ j(xe, [["render", Se]]), Ce = {}, we = {
381
- type: "button",
382
- tabindex: "-1",
383
- class: "bb:absolute bb:right-0 bb:top-0 bb:flex bb:items-center bb:justify-center bb:bg-transparent bb:cursor-pointer bb:text-gray-300 bb:hover:text-gray-400 bb:focus:outline-hidden"
384
- };
385
- function Te(e, t, n, r, o, s) {
386
- return d(), i("button", we, [...t[0] ||= [a("svg", {
387
- class: "bb:w-6 bb:h-6 bb:stroke-current",
388
- fill: "none",
389
- viewBox: "0 0 24 24"
390
- }, [a("path", {
391
- "stroke-linecap": "round",
392
- "stroke-linejoin": "round",
393
- "stroke-width": "2",
394
- d: "M6 18L18 6M6 6l12 12"
395
- })], -1)]]);
396
- }
397
- var P = /*#__PURE__*/ j(Ce, [["render", Te]]);
398
- //#endregion
399
- //#region src/date.js
400
- function F(e) {
401
- return `${String(e.getDate()).padStart(2, "0")}.${String(e.getMonth() + 1).padStart(2, "0")}.${String(e.getFullYear()).padStart(4, "0")}`;
402
- }
403
- function I(e) {
404
- let t = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(e);
405
- if (t === null) return null;
406
- let [, n, r, i] = t.map(Number), a = /* @__PURE__ */ new Date(0);
407
- return a.setFullYear(i, r - 1, n), a.setHours(0, 0, 0, 0), a.getDate() !== n || a.getMonth() !== r - 1 || a.getFullYear() !== i ? null : a;
408
- }
409
- //#endregion
410
- //#region src/lang.js
411
- var L = {
412
- inject: A,
413
- props: { lang: {
414
- type: String,
415
- default: null,
416
- validator: (e) => e === null || w(e)
417
- } },
418
- computed: {
419
- resolvedLang() {
420
- return w(this.lang) ? this.lang : this.uiSettings.lang;
421
- },
422
- texts() {
423
- return re[this.resolvedLang];
424
- }
425
- }
426
- }, Ee = {
427
- components: {
428
- Popup: M,
429
- Eraser: P
430
- },
431
- mixins: [L],
432
- emits: ["update:modelValue", "changed"],
433
- props: {
434
- modelValue: {
435
- type: String,
436
- default: ""
437
- },
438
- withEraser: {
439
- type: Boolean,
440
- default: !0
441
- },
442
- placeholderText: {
443
- type: String,
444
- default: ""
445
- }
446
- },
447
- created() {
448
- this.picker = null, this.isUnmounted = !1;
449
- },
450
- async mounted() {
451
- let { default: e } = await import("pikaday");
452
- this.isUnmounted || (this.picker = new e({
453
- field: this.$refs.field,
454
- container: this.$refs.container,
455
- keyboardInput: !1,
456
- bound: !1,
457
- firstDay: 1,
458
- parse: (e) => I(e),
459
- toString: (e) => F(e),
460
- i18n: {
461
- previousMonth: this.texts.previousMonth,
462
- nextMonth: this.texts.nextMonth,
463
- months: this.texts.months,
464
- weekdays: this.texts.weekdays,
465
- weekdaysShort: this.texts.weekdaysShort
466
- },
467
- onSelect: (e) => {
468
- this.popupIsOpen = !1, this.$emit("update:modelValue", F(e)), this.$emit("changed");
469
- }
470
- }));
471
- },
472
- beforeUnmount() {
473
- this.isUnmounted = !0, this.picker?.destroy();
474
- },
475
- data() {
476
- return {
477
- popupIsOpen: !1,
478
- dayValue: this.modelValue ?? ""
479
- };
480
- },
481
- watch: { modelValue(e) {
482
- let t = e ?? "";
483
- this.dayValue = t, this.syncPicker(t);
484
- } },
485
- methods: {
486
- syncPicker(e) {
487
- if (this.picker === null) return;
488
- let t = I(e);
489
- if (t === null) {
490
- this.picker.clear();
491
- return;
492
- }
493
- this.picker.setDate(t, !0);
494
- },
495
- clearPicker() {
496
- this.$emit("update:modelValue", ""), this.dayValue = "", this.picker?.clear(), this.$emit("changed");
497
- }
498
- },
499
- computed: {
500
- hasValue() {
501
- return (this.modelValue ?? "").length > 0;
502
- },
503
- needsEraser() {
504
- return !this.withEraser || this.popupIsOpen ? !1 : this.hasValue;
505
- }
506
- }
507
- }, De = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, Oe = { class: "bb:relative bb:flex bb:h-full bb:cursor-pointer bb:leading-none" }, ke = { class: "bb:min-w-24 bb:w-full bb:h-full" }, Ae = [
508
- "disabled",
509
- "value",
510
- "placeholder"
511
- ], je = {
512
- ref: "container",
513
- class: "bb:flex bb:mt-1 bb:bg-white bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg"
514
- };
515
- function Me(e, t, o, c, l, f) {
516
- let p = m("eraser"), h = m("popup");
517
- return d(), i("div", De, [a("div", Oe, [a("button", {
518
- ref: "trigger",
519
- type: "button",
520
- class: u(["bb:flex bb:w-full bb:items-center bb:focus:outline-hidden", { "bb:z-20": l.popupIsOpen }]),
521
- onClick: t[0] ||= (e) => l.popupIsOpen = !l.popupIsOpen
522
- }, [a("label", ke, [a("input", {
523
- disabled: l.popupIsOpen,
524
- ref: "field",
525
- type: "text",
526
- value: l.dayValue,
527
- placeholder: o.placeholderText,
528
- 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"
529
- }, null, 8, Ae)])], 2), f.needsEraser ? (d(), n(p, {
530
- key: 0,
531
- onClick: f.clearPicker,
532
- class: "bb:z-10 bb:h-full bb:pr-2"
533
- }, null, 8, ["onClick"])) : r("", !0)]), s(h, {
534
- modelValue: l.popupIsOpen,
535
- "onUpdate:modelValue": t[1] ||= (e) => l.popupIsOpen = e
536
- }, {
537
- default: b(() => [a("div", je, null, 512)]),
538
- _: 1
539
- }, 8, ["modelValue"])]);
540
- }
541
- var R = /*#__PURE__*/ j(Ee, [["render", Me]]), Ne = {
542
- components: { Dot: N },
285
+ var ve = /*#__PURE__*/ j(ge, [["render", _e]]), ye = {
286
+ components: { Dot: ve },
543
287
  props: {
544
288
  text: {
545
289
  type: String,
@@ -554,14 +298,14 @@ var R = /*#__PURE__*/ j(Ee, [["render", Me]]), Ne = {
554
298
  default: !1
555
299
  }
556
300
  }
557
- }, Pe = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, Fe = ["textContent"];
558
- function Ie(e, t, n, r, o, c) {
301
+ }, be = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, xe = ["textContent"];
302
+ function Se(e, t, n, r, o, c) {
559
303
  let l = m("dot");
560
- return d(), i("div", Pe, [
304
+ return d(), i("div", be, [
561
305
  a("div", {
562
306
  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",
563
307
  textContent: g(n.text)
564
- }, null, 8, Fe),
308
+ }, null, 8, xe),
565
309
  x(s(l, {
566
310
  color: "red",
567
311
  "with-pulse": !0,
@@ -573,24 +317,41 @@ function Ie(e, t, n, r, o, c) {
573
317
  }, null, 512), [[y, n.isRequired]])
574
318
  ]);
575
319
  }
576
- var z = /*#__PURE__*/ j(Ne, [["render", Ie]]), Le = 10;
577
- function Re(e) {
320
+ var M = /*#__PURE__*/ j(ye, [["render", Se]]), Ce = {}, we = {
321
+ type: "button",
322
+ tabindex: "-1",
323
+ class: "bb:absolute bb:right-0 bb:top-0 bb:flex bb:items-center bb:justify-center bb:bg-transparent bb:cursor-pointer bb:text-gray-300 bb:hover:text-gray-400 bb:focus:outline-hidden"
324
+ };
325
+ function Te(e, t, n, r, o, s) {
326
+ return d(), i("button", we, [...t[0] ||= [a("svg", {
327
+ class: "bb:w-6 bb:h-6 bb:stroke-current",
328
+ fill: "none",
329
+ viewBox: "0 0 24 24"
330
+ }, [a("path", {
331
+ "stroke-linecap": "round",
332
+ "stroke-linejoin": "round",
333
+ "stroke-width": "2",
334
+ d: "M6 18L18 6M6 6l12 12"
335
+ })], -1)]]);
336
+ }
337
+ var N = /*#__PURE__*/ j(Ce, [["render", Te]]), Ee = 10;
338
+ function De(e) {
578
339
  let t = e.replace(/\D/g, "");
579
- return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, Le);
340
+ return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, Ee);
580
341
  }
581
- function B(e) {
342
+ function P(e) {
582
343
  return e === "" ? "" : `7${e}`;
583
344
  }
584
- function V(e) {
345
+ function F(e) {
585
346
  let t = e ?? "", n = t.startsWith("+") ? t.slice(1) : t;
586
347
  return n.startsWith("7") ? n.slice(1) : n;
587
348
  }
588
349
  //#endregion
589
350
  //#region src/components/RussianMobileFilter.vue
590
- var ze = 400, Be = 3, Ve = {
351
+ var Oe = 400, ke = 3, Ae = {
591
352
  components: {
592
- ElementHeader: z,
593
- Eraser: P
353
+ ElementHeader: M,
354
+ Eraser: N
594
355
  },
595
356
  emits: ["update:modelValue", "changed"],
596
357
  props: {
@@ -612,10 +373,10 @@ var ze = 400, Be = 3, Ve = {
612
373
  }
613
374
  },
614
375
  data() {
615
- return { digits: V(this.modelValue) };
376
+ return { digits: F(this.modelValue) };
616
377
  },
617
378
  created() {
618
- this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = V(this.modelValue), this.isUnmounted = !1;
379
+ this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = F(this.modelValue), this.isUnmounted = !1;
619
380
  },
620
381
  mounted() {
621
382
  this.mask = ne(this.$refs.input, {
@@ -623,21 +384,21 @@ var ze = 400, Be = 3, Ve = {
623
384
  lazy: !0,
624
385
  prepare: (e, t) => t.unmaskedValue === "" && (e === "7" || e === "8") ? "" : e
625
386
  }), this.mask.on("accept", () => {
626
- this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", B(this.digits)), this.scheduleCommit());
387
+ this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", P(this.digits)), this.scheduleCommit());
627
388
  }), this.syncFromModelValue(this.modelValue);
628
389
  },
629
390
  beforeUnmount() {
630
391
  this.isUnmounted = !0, clearTimeout(this.debounceTimer), this.mask?.destroy();
631
392
  },
632
393
  watch: { modelValue(e) {
633
- e !== B(this.digits) && this.syncFromModelValue(e);
394
+ e !== P(this.digits) && this.syncFromModelValue(e);
634
395
  } },
635
396
  methods: {
636
397
  syncFromModelValue(e) {
637
- this.writeToMask(V(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
398
+ this.writeToMask(F(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
638
399
  },
639
400
  applyUserDigits(e) {
640
- this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", B(this.digits));
401
+ this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", P(this.digits));
641
402
  },
642
403
  writeToMask(e) {
643
404
  if (this.isWritingProgrammatically = !0, e === "") this.mask.value = "";
@@ -660,7 +421,7 @@ var ze = 400, Be = 3, Ve = {
660
421
  this.isUnmounted || (this.setLazy(!0), this.digits === "" && this.writeToMask(""), this.commit());
661
422
  },
662
423
  onPaste(e) {
663
- this.applyUserDigits(Re(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
424
+ this.applyUserDigits(De(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
664
425
  },
665
426
  clear() {
666
427
  this.applyUserDigits(""), this.commit();
@@ -670,16 +431,16 @@ var ze = 400, Be = 3, Ve = {
670
431
  this.commit();
671
432
  return;
672
433
  }
673
- this.digits.length < Be || (this.debounceTimer = setTimeout(() => this.commit(), ze));
434
+ this.digits.length < ke || (this.debounceTimer = setTimeout(() => this.commit(), Oe));
674
435
  },
675
436
  commit() {
676
437
  clearTimeout(this.debounceTimer), this.digits !== this.lastCommitted && (this.lastCommitted = this.digits, this.$emit("changed"));
677
438
  }
678
439
  }
679
- }, He = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Ue = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, We = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Ge = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
680
- function Ke(e, t, n, r, o, c) {
440
+ }, je = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Me = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Ne = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Pe = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
441
+ function Fe(e, t, n, r, o, c) {
681
442
  let l = m("element-header"), u = m("eraser");
682
- return d(), i("div", He, [a("div", Ue, [s(l, {
443
+ return d(), i("div", je, [a("div", Me, [s(l, {
683
444
  text: n.header,
684
445
  "is-required": n.isRequired,
685
446
  "is-loading": n.isLoading
@@ -687,7 +448,7 @@ function Ke(e, t, n, r, o, c) {
687
448
  "text",
688
449
  "is-required",
689
450
  "is-loading"
690
- ]), a("div", We, [a("label", Ge, [a("input", {
451
+ ]), a("div", Ne, [a("label", Pe, [a("input", {
691
452
  ref: "input",
692
453
  type: "tel",
693
454
  inputmode: "tel",
@@ -703,78 +464,437 @@ function Ke(e, t, n, r, o, c) {
703
464
  class: "bb:pr-2 bb:h-full"
704
465
  }, null, 8, ["onClick"]), [[y, o.digits.length > 0]])])])])]);
705
466
  }
706
- var qe = /*#__PURE__*/ j(Ve, [["render", Ke]]), Je = {
467
+ var Ie = /*#__PURE__*/ j(Ae, [["render", Fe]]), Le = {
468
+ components: {
469
+ ElementHeader: M,
470
+ Eraser: N
471
+ },
472
+ emits: ["update:modelValue", "changed"],
473
+ props: {
474
+ modelValue: {
475
+ type: String,
476
+ default: ""
477
+ },
478
+ header: {
479
+ type: String,
480
+ required: !0
481
+ },
482
+ isRequired: {
483
+ type: Boolean,
484
+ default: !1
485
+ },
486
+ isLoading: {
487
+ type: Boolean,
488
+ default: !1
489
+ }
490
+ },
491
+ data() {
492
+ return { search: this.modelValue ?? "" };
493
+ },
494
+ computed: { inputNeedsEraser() {
495
+ return this.search.length > 0;
496
+ } },
497
+ watch: { modelValue(e) {
498
+ this.search = e ?? "";
499
+ } },
500
+ methods: {
501
+ clearInput() {
502
+ this.search = "", this.startSearch();
503
+ },
504
+ startSearch() {
505
+ this.$emit("update:modelValue", this.search), this.$emit("changed");
506
+ }
507
+ }
508
+ }, Re = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, ze = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Be = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Ve = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
509
+ function He(e, t, n, r, o, c) {
510
+ let l = m("element-header"), u = m("eraser");
511
+ return d(), i("div", Re, [a("div", ze, [s(l, {
512
+ text: n.header,
513
+ "is-required": n.isRequired,
514
+ "is-loading": n.isLoading
515
+ }, null, 8, [
516
+ "text",
517
+ "is-required",
518
+ "is-loading"
519
+ ]), a("div", Be, [a("label", Ve, [x(a("input", {
520
+ 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",
521
+ "onUpdate:modelValue": t[0] ||= (e) => o.search = e,
522
+ onInput: t[1] ||= (...e) => c.startSearch && c.startSearch(...e)
523
+ }, null, 544), [[
524
+ v,
525
+ o.search,
526
+ void 0,
527
+ { trim: !0 }
528
+ ]]), x(s(u, {
529
+ onClick: c.clearInput,
530
+ class: "bb:pr-2 bb:h-full"
531
+ }, null, 8, ["onClick"]), [[y, c.inputNeedsEraser]])])])])]);
532
+ }
533
+ var Ue = /*#__PURE__*/ j(Le, [["render", He]]), I = 4, L = 8;
534
+ function We(e) {
535
+ return typeof e?.showPopover == "function";
536
+ }
537
+ function R(e) {
538
+ return We(e) && e.matches(":popover-open");
539
+ }
540
+ function z(e, t, { maxWidth: n = null, align: r = "end", fitsBelow: i = !0, fitsRight: a = !0 } = {}) {
541
+ 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, _ = "";
542
+ if (r === "start") {
543
+ let e = p ? d : f;
544
+ _ = `${n === null ? e : Math.min(n, e)}px`;
545
+ } else n !== null && (_ = `${Math.min(n, f)}px`);
546
+ Object.assign(t.style, {
547
+ top: g ? `${o.bottom + I}px` : "auto",
548
+ bottom: g ? "auto" : `${c - o.top + I}px`,
549
+ right: p ? "auto" : `${u}px`,
550
+ left: p ? `${l}px` : "auto",
551
+ maxHeight: `${g ? m : h}px`,
552
+ maxWidth: _
553
+ });
554
+ }
555
+ function Ge(e, t, n = {}) {
556
+ let r = t.scrollHeight <= t.clientHeight + 1, i = t.scrollWidth <= t.clientWidth + 1;
557
+ r && i || z(e, t, {
558
+ ...n,
559
+ fitsBelow: r,
560
+ fitsRight: i
561
+ });
562
+ }
563
+ function Ke(e, t) {
564
+ let n = (n) => {
565
+ e.contains(n.target) || t();
566
+ };
567
+ return window.addEventListener("scroll", n, {
568
+ capture: !0,
569
+ passive: !0
570
+ }), window.addEventListener("resize", t), () => {
571
+ window.removeEventListener("scroll", n, { capture: !0 }), window.removeEventListener("resize", t);
572
+ };
573
+ }
574
+ //#endregion
575
+ //#region src/menuFocus.js
576
+ var B = "a[href], button";
577
+ function qe(e, t = () => null) {
578
+ let n = (n) => {
579
+ if (n.key !== "ArrowDown" && n.key !== "ArrowUp") return;
580
+ let r = [...e.querySelectorAll(B)];
581
+ if (r.length === 0) return;
582
+ n.preventDefault();
583
+ let i = n.key === "ArrowDown" ? 1 : -1, a = r.indexOf(document.activeElement);
584
+ a === -1 && (a = r.indexOf(t())), r[a === -1 ? i === 1 ? 0 : r.length - 1 : (a + i + r.length) % r.length].focus();
585
+ }, r = (e) => {
586
+ let t = e.target.closest(B);
587
+ t !== null && t.focus({ preventScroll: !0 });
588
+ };
589
+ return document.addEventListener("keydown", n, !0), e.addEventListener("mousemove", r), () => {
590
+ document.removeEventListener("keydown", n, !0), e.removeEventListener("mousemove", r);
591
+ };
592
+ }
593
+ //#endregion
594
+ //#region src/components/PopoverPanel.vue
595
+ var Je = {
596
+ emits: ["update:modelValue"],
597
+ props: {
598
+ modelValue: {
599
+ type: Boolean,
600
+ default: !1
601
+ },
602
+ hasContent: {
603
+ type: Boolean,
604
+ default: !0
605
+ },
606
+ align: {
607
+ type: String,
608
+ default: "end",
609
+ validator: (e) => ["start", "end"].includes(e)
610
+ },
611
+ maxWidth: {
612
+ type: Number,
613
+ default: null
614
+ },
615
+ arrows: {
616
+ type: Boolean,
617
+ default: !1
618
+ },
619
+ findSelected: {
620
+ type: Function,
621
+ default: () => null
622
+ },
623
+ closeOnClick: {
624
+ type: Boolean,
625
+ default: !1
626
+ },
627
+ panelClass: {
628
+ type: String,
629
+ default: ""
630
+ },
631
+ panelRole: {
632
+ type: String,
633
+ default: null
634
+ },
635
+ returnFocus: {
636
+ type: Boolean,
637
+ default: !1
638
+ }
639
+ },
640
+ setup() {
641
+ return {
642
+ buttonId: _(),
643
+ panelId: _()
644
+ };
645
+ },
646
+ data() {
647
+ return { panelIsOpen: this.modelValue };
648
+ },
649
+ watch: {
650
+ modelValue(e) {
651
+ this.panelIsOpen = e, this.applyPanelState();
652
+ },
653
+ hasContent: {
654
+ flush: "post",
655
+ handler(e) {
656
+ if (e) {
657
+ this.applyPanelState();
658
+ return;
659
+ }
660
+ this.stopListening(), this.panelIsOpen && (this.panelIsOpen = !1, this.$emit("update:modelValue", !1));
661
+ }
662
+ }
663
+ },
664
+ created() {
665
+ this.stopClosing = null, this.stopArrows = null, this.focusWasInside = !1;
666
+ },
667
+ mounted() {
668
+ this.applyPanelState();
669
+ },
670
+ beforeUnmount() {
671
+ this.stopListening();
672
+ },
673
+ methods: {
674
+ applyPanelState() {
675
+ let e = this.$refs.panel;
676
+ We(e) && e.isConnected && (this.panelIsOpen && !R(e) && e.showPopover(), !this.panelIsOpen && R(e) && e.hidePopover());
677
+ },
678
+ close() {
679
+ let e = this.$refs.panel;
680
+ R(e) && e.hidePopover();
681
+ },
682
+ onClick() {
683
+ this.closeOnClick && this.close();
684
+ },
685
+ onBeforeToggle(e) {
686
+ if (e.newState === "open") {
687
+ let e = document.getElementById(this.buttonId), t = {
688
+ maxWidth: this.maxWidth,
689
+ align: this.align
690
+ };
691
+ z(e, this.$refs.panel, t), requestAnimationFrame(() => {
692
+ let n = this.$refs.panel;
693
+ R(n) && Ge(e, n, t);
694
+ });
695
+ return;
696
+ }
697
+ let t = this.$refs.panel;
698
+ this.focusWasInside = t != null && t.contains(document.activeElement);
699
+ },
700
+ onToggle() {
701
+ this.stopListening();
702
+ let e = this.$refs.panel, t = R(e);
703
+ t && (this.stopClosing = Ke(e, this.close), this.arrows && (this.stopArrows = qe(e, this.findSelected))), t || this.restoreFocus(e), t !== this.panelIsOpen && (this.panelIsOpen = t, this.$emit("update:modelValue", t));
704
+ },
705
+ restoreFocus(e) {
706
+ let t = this.focusWasInside;
707
+ if (this.focusWasInside = !1, !this.returnFocus || !t) return;
708
+ let n = document.activeElement;
709
+ (n === null || n === document.body || e != null && e.contains(n)) && document.getElementById(this.buttonId)?.focus({ preventScroll: !0 });
710
+ },
711
+ stopListening() {
712
+ this.stopClosing !== null && (this.stopClosing(), this.stopClosing = null), this.stopArrows !== null && (this.stopArrows(), this.stopArrows = null);
713
+ }
714
+ }
715
+ }, Ye = {
716
+ key: 0,
717
+ class: "bb:relative"
718
+ }, Xe = [
719
+ "id",
720
+ "role",
721
+ "aria-orientation",
722
+ "aria-labelledby"
723
+ ];
724
+ function Ze(e, t, n, o, s, c) {
725
+ return n.hasContent ? (d(), i("span", Ye, [p(e.$slots, "trigger", {
726
+ id: o.buttonId,
727
+ popovertarget: o.panelId
728
+ }), a("div", {
729
+ ref: "panel",
730
+ id: o.panelId,
731
+ popover: "auto",
732
+ class: u(["bb:m-0 bb:inset-auto", n.panelClass]),
733
+ role: n.panelRole,
734
+ "aria-orientation": n.panelRole === "menu" ? "vertical" : null,
735
+ "aria-labelledby": o.buttonId,
736
+ onBeforetoggle: t[0] ||= (...e) => c.onBeforeToggle && c.onBeforeToggle(...e),
737
+ onToggle: t[1] ||= (...e) => c.onToggle && c.onToggle(...e),
738
+ onClick: t[2] ||= (...e) => c.onClick && c.onClick(...e)
739
+ }, [p(e.$slots, "default")], 42, Xe)])) : r("", !0);
740
+ }
741
+ var V = /*#__PURE__*/ j(Je, [["render", Ze]]);
742
+ //#endregion
743
+ //#region src/date.js
744
+ function H(e) {
745
+ return `${String(e.getDate()).padStart(2, "0")}.${String(e.getMonth() + 1).padStart(2, "0")}.${String(e.getFullYear()).padStart(4, "0")}`;
746
+ }
747
+ function U(e) {
748
+ let t = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(e);
749
+ if (t === null) return null;
750
+ let [, n, r, i] = t.map(Number), a = /* @__PURE__ */ new Date(0);
751
+ return a.setFullYear(i, r - 1, n), a.setHours(0, 0, 0, 0), a.getDate() !== n || a.getMonth() !== r - 1 || a.getFullYear() !== i ? null : a;
752
+ }
753
+ //#endregion
754
+ //#region src/lang.js
755
+ var W = {
756
+ inject: A,
757
+ props: { lang: {
758
+ type: String,
759
+ default: null,
760
+ validator: (e) => e === null || w(e)
761
+ } },
762
+ computed: {
763
+ resolvedLang() {
764
+ return w(this.lang) ? this.lang : this.uiSettings.lang;
765
+ },
766
+ texts() {
767
+ return re[this.resolvedLang];
768
+ }
769
+ }
770
+ }, Qe = {
707
771
  components: {
708
- ElementHeader: z,
709
- Eraser: P
772
+ PopoverPanel: V,
773
+ Eraser: N
774
+ },
775
+ mixins: [W],
776
+ emits: ["update:modelValue", "changed"],
777
+ props: {
778
+ modelValue: {
779
+ type: String,
780
+ default: ""
781
+ },
782
+ withEraser: {
783
+ type: Boolean,
784
+ default: !0
785
+ },
786
+ placeholderText: {
787
+ type: String,
788
+ default: ""
789
+ }
790
+ },
791
+ created() {
792
+ this.picker = null, this.isUnmounted = !1;
793
+ },
794
+ async mounted() {
795
+ let { default: e } = await import("pikaday");
796
+ this.isUnmounted || (this.picker = new e({
797
+ field: this.$refs.field,
798
+ container: this.$refs.container,
799
+ keyboardInput: !1,
800
+ bound: !1,
801
+ firstDay: 1,
802
+ parse: (e) => U(e),
803
+ toString: (e) => H(e),
804
+ i18n: {
805
+ previousMonth: this.texts.previousMonth,
806
+ nextMonth: this.texts.nextMonth,
807
+ months: this.texts.months,
808
+ weekdays: this.texts.weekdays,
809
+ weekdaysShort: this.texts.weekdaysShort
810
+ },
811
+ onSelect: (e) => {
812
+ this.popupIsOpen = !1, this.$emit("update:modelValue", H(e)), this.$emit("changed");
813
+ }
814
+ }));
710
815
  },
711
- emits: ["update:modelValue", "changed"],
712
- props: {
713
- modelValue: {
714
- type: String,
715
- default: ""
716
- },
717
- header: {
718
- type: String,
719
- required: !0
720
- },
721
- isRequired: {
722
- type: Boolean,
723
- default: !1
724
- },
725
- isLoading: {
726
- type: Boolean,
727
- default: !1
728
- }
816
+ beforeUnmount() {
817
+ this.isUnmounted = !0, this.picker?.destroy();
729
818
  },
730
819
  data() {
731
- return { search: this.modelValue ?? "" };
820
+ return {
821
+ popupIsOpen: !1,
822
+ dayValue: this.modelValue ?? ""
823
+ };
732
824
  },
733
- computed: { inputNeedsEraser() {
734
- return this.search.length > 0;
735
- } },
736
825
  watch: { modelValue(e) {
737
- this.search = e ?? "";
826
+ let t = e ?? "";
827
+ this.dayValue = t, this.syncPicker(t);
738
828
  } },
739
829
  methods: {
740
- clearInput() {
741
- this.search = "", this.startSearch();
830
+ syncPicker(e) {
831
+ if (this.picker === null) return;
832
+ let t = U(e);
833
+ if (t === null) {
834
+ this.picker.clear();
835
+ return;
836
+ }
837
+ this.picker.setDate(t, !0);
742
838
  },
743
- startSearch() {
744
- this.$emit("update:modelValue", this.search), this.$emit("changed");
839
+ clearPicker() {
840
+ this.$emit("update:modelValue", ""), this.dayValue = "", this.picker?.clear(), this.$emit("changed");
841
+ }
842
+ },
843
+ computed: {
844
+ hasValue() {
845
+ return (this.modelValue ?? "").length > 0;
846
+ },
847
+ needsEraser() {
848
+ return !this.withEraser || this.popupIsOpen ? !1 : this.hasValue;
745
849
  }
746
850
  }
747
- }, Ye = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Xe = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Ze = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Qe = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
748
- function $e(e, t, n, r, o, c) {
749
- let l = m("element-header"), u = m("eraser");
750
- return d(), i("div", Ye, [a("div", Xe, [s(l, {
751
- text: n.header,
752
- "is-required": n.isRequired,
753
- "is-loading": n.isLoading
754
- }, null, 8, [
755
- "text",
756
- "is-required",
757
- "is-loading"
758
- ]), a("div", Ze, [a("label", Qe, [x(a("input", {
759
- 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",
760
- "onUpdate:modelValue": t[0] ||= (e) => o.search = e,
761
- onInput: t[1] ||= (...e) => c.startSearch && c.startSearch(...e)
762
- }, null, 544), [[
763
- v,
764
- o.search,
765
- void 0,
766
- { trim: !0 }
767
- ]]), x(s(u, {
768
- onClick: c.clearInput,
769
- class: "bb:pr-2 bb:h-full"
770
- }, null, 8, ["onClick"]), [[y, c.inputNeedsEraser]])])])])]);
851
+ }, $e = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, et = { class: "bb:relative bb:flex bb:h-full" }, tt = ["id", "popovertarget"], nt = { class: "bb:min-w-24 bb:w-full bb:h-full bb:pointer-events-none" }, rt = [
852
+ "disabled",
853
+ "value",
854
+ "placeholder"
855
+ ], it = {
856
+ ref: "container",
857
+ class: "bb:flex"
858
+ };
859
+ function at(e, t, o, c, l, u) {
860
+ let f = m("popover-panel"), p = m("eraser");
861
+ return d(), i("div", $e, [a("div", et, [s(f, {
862
+ class: "bb:flex bb:w-full",
863
+ modelValue: l.popupIsOpen,
864
+ "onUpdate:modelValue": t[0] ||= (e) => l.popupIsOpen = e,
865
+ align: "start",
866
+ "panel-class": "bb:bg-white bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg"
867
+ }, {
868
+ trigger: b((e) => [a("button", {
869
+ ref: "trigger",
870
+ type: "button",
871
+ id: e.id,
872
+ popovertarget: e.popovertarget,
873
+ class: "bb:flex bb:w-full bb:items-center bb:cursor-pointer bb:leading-none bb:focus:outline-hidden"
874
+ }, [a("label", nt, [a("input", {
875
+ disabled: l.popupIsOpen,
876
+ ref: "field",
877
+ type: "text",
878
+ value: l.dayValue,
879
+ placeholder: o.placeholderText,
880
+ 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"
881
+ }, null, 8, rt)])], 8, tt)]),
882
+ default: b(() => [a("div", it, null, 512)]),
883
+ _: 1
884
+ }, 8, ["modelValue"]), u.needsEraser ? (d(), n(p, {
885
+ key: 0,
886
+ onClick: u.clearPicker,
887
+ class: "bb:z-10 bb:h-full bb:pr-2"
888
+ }, null, 8, ["onClick"])) : r("", !0)])]);
771
889
  }
772
- var et = /*#__PURE__*/ j(Je, [["render", $e]]), tt = {
890
+ //#endregion
891
+ //#region src/components/SelectDateInterval.vue
892
+ var ot = {
773
893
  components: {
774
- ElementHeader: z,
775
- PickDay: R
894
+ ElementHeader: M,
895
+ PickDay: /* @__PURE__ */ j(Qe, [["render", at]])
776
896
  },
777
- mixins: [L],
897
+ mixins: [W],
778
898
  emits: [
779
899
  "update:dateFrom",
780
900
  "update:dateTo",
@@ -822,10 +942,10 @@ var et = /*#__PURE__*/ j(Je, [["render", $e]]), tt = {
822
942
  this.$emit("update:dateTo", e), this.dateTo !== e && this.$emit("changed");
823
943
  }
824
944
  }
825
- }, nt = { class: "bb-dashboard-ui bb:flex" }, rt = { class: "bb:flex bb:border bb:border-white" }, it = { class: "bb:flex bb:flex-col bb:min-w-72 bb:w-72 bb:bg-white bb:h-full" }, at = { class: "bb:flex bb:h-full bb:divide-x bb:divide-gray-200" };
826
- function ot(e, t, n, r, o, c) {
945
+ }, st = { class: "bb-dashboard-ui bb:flex" }, ct = { class: "bb:flex bb:border bb:border-white" }, lt = { class: "bb:flex bb:flex-col bb:min-w-72 bb:w-72 bb:bg-white bb:h-full" }, ut = { class: "bb:flex bb:h-full bb:divide-x bb:divide-gray-200" };
946
+ function dt(e, t, n, r, o, c) {
827
947
  let l = m("element-header"), u = m("pick-day");
828
- return d(), i("div", nt, [a("div", rt, [a("div", it, [s(l, {
948
+ return d(), i("div", st, [a("div", ct, [a("div", lt, [s(l, {
829
949
  text: n.header,
830
950
  "is-required": n.isRequired,
831
951
  "is-loading": n.isLoading
@@ -833,7 +953,7 @@ function ot(e, t, n, r, o, c) {
833
953
  "text",
834
954
  "is-required",
835
955
  "is-loading"
836
- ]), a("div", at, [s(u, {
956
+ ]), a("div", ut, [s(u, {
837
957
  modelValue: o.userDateFrom,
838
958
  "onUpdate:modelValue": t[0] ||= (e) => o.userDateFrom = e,
839
959
  class: "bb:flex-1 bb:min-w-36 bb:pl-3",
@@ -855,10 +975,10 @@ function ot(e, t, n, r, o, c) {
855
975
  "lang"
856
976
  ])])])])]);
857
977
  }
858
- var st = /*#__PURE__*/ j(tt, [["render", ot]]), ct = {
978
+ var ft = /*#__PURE__*/ j(ot, [["render", dt]]), pt = {
859
979
  components: {
860
- Popup: M,
861
- Eraser: P
980
+ PopoverPanel: V,
981
+ Eraser: N
862
982
  },
863
983
  emits: ["update:isOpen", "erased"],
864
984
  props: {
@@ -873,45 +993,46 @@ var st = /*#__PURE__*/ j(tt, [["render", ot]]), ct = {
873
993
  hasValue: {
874
994
  type: Boolean,
875
995
  default: !0
876
- }
877
- },
878
- data() {
879
- return { popupIsOpen: this.isOpen };
880
- },
881
- watch: {
882
- isOpen(e) {
883
- this.popupIsOpen = e;
884
996
  },
885
- popupIsOpen(e) {
886
- this.$emit("update:isOpen", e);
997
+ findSelected: {
998
+ type: Function,
999
+ default: () => null
887
1000
  }
888
1001
  },
889
1002
  computed: { needsEraser() {
890
1003
  return !this.isOpen && this.hasValue;
891
1004
  } }
892
- }, lt = { class: "bb:flex bb:flex-col bb:grow bb:bg-white" }, ut = { class: "bb:relative bb:flex bb:w-full bb:h-full" }, dt = ["textContent"];
893
- function ft(e, t, o, c, l, f) {
894
- let h = m("eraser"), _ = m("popup");
895
- return d(), i("div", lt, [a("div", ut, [a("button", {
896
- type: "button",
897
- class: u(["bb:flex bb:w-full bb:h-full bb:items-center bb:focus:outline-hidden bb:cursor-pointer", { "bb:z-20": o.isOpen }]),
898
- onClick: t[0] ||= S((t) => e.$emit("update:isOpen", !o.isOpen), ["prevent"])
899
- }, [a("span", {
900
- 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",
901
- textContent: g(o.title)
902
- }, null, 8, dt)], 2), f.needsEraser ? (d(), n(h, {
903
- key: 0,
904
- onClick: t[1] ||= (t) => e.$emit("erased"),
905
- class: "bb:pr-2 bb:h-full"
906
- })) : r("", !0)]), s(_, {
907
- modelValue: l.popupIsOpen,
908
- "onUpdate:modelValue": t[2] ||= (e) => l.popupIsOpen = e
1005
+ }, mt = { class: "bb:flex bb:flex-col bb:grow bb:bg-white" }, ht = { class: "bb:relative bb:flex bb:w-full bb:h-full" }, gt = ["id", "popovertarget"], _t = ["textContent"];
1006
+ function vt(e, t, o, c, l, u) {
1007
+ let f = m("popover-panel"), h = m("eraser");
1008
+ return d(), i("div", mt, [a("div", ht, [s(f, {
1009
+ class: "bb:flex bb:w-full bb:h-full",
1010
+ "model-value": o.isOpen,
1011
+ align: "start",
1012
+ arrows: "",
1013
+ "find-selected": o.findSelected,
1014
+ "return-focus": "",
1015
+ "panel-class": "bb:bg-white bb:text-inherit bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg bb:overscroll-contain",
1016
+ "onUpdate:modelValue": t[0] ||= (t) => e.$emit("update:isOpen", t)
909
1017
  }, {
1018
+ trigger: b((e) => [a("button", {
1019
+ type: "button",
1020
+ id: e.id,
1021
+ popovertarget: e.popovertarget,
1022
+ class: "bb:flex bb:w-full bb:h-full bb:items-center bb:focus:outline-hidden bb:cursor-pointer"
1023
+ }, [a("span", {
1024
+ 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",
1025
+ textContent: g(o.title)
1026
+ }, null, 8, _t)], 8, gt)]),
910
1027
  default: b(() => [p(e.$slots, "default")]),
911
1028
  _: 3
912
- }, 8, ["modelValue"])]);
1029
+ }, 8, ["model-value", "find-selected"]), u.needsEraser ? (d(), n(h, {
1030
+ key: 0,
1031
+ onClick: t[1] ||= (t) => e.$emit("erased"),
1032
+ class: "bb:pr-2 bb:h-full"
1033
+ })) : r("", !0)])]);
913
1034
  }
914
- var pt = /*#__PURE__*/ j(ct, [["render", ft]]), mt = {
1035
+ var yt = /*#__PURE__*/ j(pt, [["render", vt]]), bt = {
915
1036
  props: {
916
1037
  isChecked: {
917
1038
  type: Boolean,
@@ -923,31 +1044,31 @@ var pt = /*#__PURE__*/ j(ct, [["render", ft]]), mt = {
923
1044
  methods: { toggle() {
924
1045
  this.$emit("clicked");
925
1046
  } }
926
- }, ht = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center" }, gt = {
1047
+ }, xt = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center" }, St = {
927
1048
  class: "bb:w-5 bb:h-5 bb:fill-current bb:text-green-300",
928
1049
  viewBox: "0 0 20 20"
929
- }, _t = ["textContent"];
930
- function vt(e, t, n, r, o, s) {
1050
+ }, Ct = ["textContent"];
1051
+ function wt(e, t, n, r, o, s) {
931
1052
  return d(), i("button", {
932
1053
  type: "button",
933
1054
  onClick: t[0] ||= S((...e) => s.toggle && s.toggle(...e), ["prevent"]),
934
- class: "bb:flex bb:w-full bb:bg-white bb:hover:bg-indigo-100 bb:cursor-pointer bb:focus:outline-hidden bb:focus:ring-3 bb:focus:z-10 bb:focus:ring-blue-500/50"
935
- }, [a("span", ht, [x((d(), i("svg", gt, [...t[1] ||= [a("path", {
1055
+ class: "bb:flex bb:w-full bb:bg-white bb:cursor-pointer bb:focus:outline-hidden bb:focus:bg-indigo-100"
1056
+ }, [a("span", xt, [x((d(), i("svg", St, [...t[1] ||= [a("path", {
936
1057
  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",
937
1058
  "clip-rule": "evenodd",
938
1059
  "fill-rule": "evenodd"
939
1060
  }, null, -1)]], 512)), [[y, n.isChecked]])]), a("span", {
940
1061
  class: "bb:flex bb:h-9 bb:justify-center bb:items-center bb:pr-6 bb:whitespace-nowrap bb:select-none",
941
1062
  textContent: g(n.name)
942
- }, null, 8, _t)]);
1063
+ }, null, 8, Ct)]);
943
1064
  }
944
1065
  //#endregion
945
1066
  //#region src/components/SelectSingle.vue
946
- var yt = {
1067
+ var Tt = {
947
1068
  components: {
948
- ElementHeader: z,
949
- DropdownButton: pt,
950
- ListElement: /* @__PURE__ */ j(mt, [["render", vt]])
1069
+ ElementHeader: M,
1070
+ DropdownButton: yt,
1071
+ ListElement: /* @__PURE__ */ j(bt, [["render", wt]])
951
1072
  },
952
1073
  emits: ["update:modelValue", "changed"],
953
1074
  props: {
@@ -975,6 +1096,9 @@ var yt = {
975
1096
  data() {
976
1097
  return { isOpen: !1 };
977
1098
  },
1099
+ watch: { hasItems(e) {
1100
+ e || (this.isOpen = !1);
1101
+ } },
978
1102
  computed: {
979
1103
  itemList() {
980
1104
  return this.items ?? [];
@@ -998,12 +1122,19 @@ var yt = {
998
1122
  },
999
1123
  clear() {
1000
1124
  this.$emit("update:modelValue", null), this.$emit("changed");
1125
+ },
1126
+ activeItemElement() {
1127
+ let e = this.itemList.indexOf(this.activeItem);
1128
+ return e === -1 ? null : this.$refs.list.querySelectorAll("button")[e];
1001
1129
  }
1002
1130
  }
1003
- }, bt = { 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" }, St = { class: "bb:flex bb:flex-col bb:py-1 bb:mt-1 bb:bg-white bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg bb:divide-y bb:divide-gray-200 bb:divide-dashed" };
1004
- function Ct(t, o, c, l, u, p) {
1131
+ }, Et = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Dt = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Ot = {
1132
+ ref: "list",
1133
+ class: "bb:flex bb:flex-col bb:py-1 bb:divide-y bb:divide-gray-200 bb:divide-dashed"
1134
+ };
1135
+ function kt(t, o, c, l, u, p) {
1005
1136
  let h = m("element-header"), g = m("list-element"), _ = m("dropdown-button");
1006
- return d(), i("div", bt, [a("div", xt, [s(h, {
1137
+ return d(), i("div", Et, [a("div", Dt, [s(h, {
1007
1138
  text: c.header,
1008
1139
  "is-required": c.isRequired,
1009
1140
  "is-loading": c.isLoading
@@ -1017,9 +1148,10 @@ function Ct(t, o, c, l, u, p) {
1017
1148
  "is-open": u.isOpen,
1018
1149
  "onUpdate:isOpen": o[0] ||= (e) => u.isOpen = e,
1019
1150
  "has-value": p.hasValue,
1151
+ "find-selected": p.activeItemElement,
1020
1152
  onErased: p.clear
1021
1153
  }, {
1022
- default: b(() => [a("div", St, [(d(!0), i(e, null, f(p.itemList, (e) => (d(), n(g, {
1154
+ default: b(() => [a("div", Ot, [(d(!0), i(e, null, f(p.itemList, (e) => (d(), n(g, {
1023
1155
  name: e.name,
1024
1156
  key: e.id,
1025
1157
  "is-checked": e.id === c.modelValue,
@@ -1028,16 +1160,17 @@ function Ct(t, o, c, l, u, p) {
1028
1160
  "name",
1029
1161
  "is-checked",
1030
1162
  "onClicked"
1031
- ]))), 128))])]),
1163
+ ]))), 128))], 512)]),
1032
1164
  _: 1
1033
1165
  }, 8, [
1034
1166
  "title",
1035
1167
  "is-open",
1036
1168
  "has-value",
1169
+ "find-selected",
1037
1170
  "onErased"
1038
1171
  ])) : r("", !0)])]);
1039
1172
  }
1040
- var wt = /*#__PURE__*/ j(yt, [["render", Ct]]), Tt = {
1173
+ var At = /*#__PURE__*/ j(Tt, [["render", kt]]), jt = {
1041
1174
  props: {
1042
1175
  text: {
1043
1176
  type: String,
@@ -1076,8 +1209,8 @@ var wt = /*#__PURE__*/ j(yt, [["render", Ct]]), Tt = {
1076
1209
  return this.color === "yellow";
1077
1210
  }
1078
1211
  }
1079
- }, Et = ["textContent"];
1080
- function Dt(e, t, n, r, a, o) {
1212
+ }, Mt = ["textContent"];
1213
+ function Nt(e, t, n, r, a, o) {
1081
1214
  return d(), i("span", {
1082
1215
  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", {
1083
1216
  "bb:bg-green-50 bb:text-gray-700": o.isGreen,
@@ -1088,9 +1221,9 @@ function Dt(e, t, n, r, a, o) {
1088
1221
  "bb:bg-yellow-100 bb:text-yellow-800": o.isYellow
1089
1222
  }]),
1090
1223
  textContent: g(n.text)
1091
- }, null, 10, Et);
1224
+ }, null, 10, Mt);
1092
1225
  }
1093
- var H = /*#__PURE__*/ j(Tt, [["render", Dt]]), Ot = {
1226
+ var G = /*#__PURE__*/ j(jt, [["render", Nt]]), Pt = {
1094
1227
  props: {
1095
1228
  messages: {
1096
1229
  type: [Object, Array],
@@ -1110,12 +1243,12 @@ var H = /*#__PURE__*/ j(Tt, [["render", Dt]]), Ot = {
1110
1243
  return this.type === "dangerous";
1111
1244
  }
1112
1245
  }
1113
- }, kt = { class: "bb:flex" }, At = { class: "bb:shrink-0" }, jt = { class: "bb:ml-3" }, Mt = ["textContent"];
1114
- function Nt(t, n, o, s, c, l) {
1246
+ }, Ft = { class: "bb:flex" }, It = { class: "bb:shrink-0" }, Lt = { class: "bb:ml-3" }, Rt = ["textContent"];
1247
+ function zt(t, n, o, s, c, l) {
1115
1248
  return l.hasErrors ? (d(), i("div", {
1116
1249
  key: 0,
1117
1250
  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"])
1118
- }, [a("div", kt, [a("div", At, [(d(), i("svg", {
1251
+ }, [a("div", Ft, [a("div", It, [(d(), i("svg", {
1119
1252
  class: u(["bb:h-5 bb:w-5", l.isDangerous ? "bb:text-red-400" : "bb:text-yellow-400"]),
1120
1253
  viewBox: "0 0 20 20",
1121
1254
  fill: "currentColor"
@@ -1123,39 +1256,21 @@ function Nt(t, n, o, s, c, l) {
1123
1256
  "fill-rule": "evenodd",
1124
1257
  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",
1125
1258
  "clip-rule": "evenodd"
1126
- }, null, -1)]], 2))]), a("div", jt, [(d(!0), i(e, null, f(o.messages, (e, t) => (d(), i("p", {
1259
+ }, null, -1)]], 2))]), a("div", Lt, [(d(!0), i(e, null, f(o.messages, (e, t) => (d(), i("p", {
1127
1260
  class: u(["bb:text-sm bb:leading-5", l.isDangerous ? "bb:text-red-700" : "bb:text-yellow-700"]),
1128
1261
  key: t,
1129
1262
  textContent: g(e)
1130
- }, null, 10, Mt))), 128))])])], 2)) : r("", !0);
1131
- }
1132
- var Pt = /*#__PURE__*/ j(Ot, [["render", Nt]]), Ft = { emits: ["clicked"] };
1133
- function It(e, t, n, r, o, s) {
1134
- return d(), i("button", {
1135
- type: "button",
1136
- tabindex: "-1",
1137
- 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-600",
1138
- onClick: t[0] ||= S((t) => e.$emit("clicked"), ["prevent"])
1139
- }, [...t[1] ||= [a("svg", {
1140
- class: "bb:w-full bb:h-full bb:stroke-current",
1141
- fill: "none",
1142
- viewBox: "0 0 24 24"
1143
- }, [a("path", {
1144
- "stroke-linecap": "round",
1145
- "stroke-linejoin": "round",
1146
- "stroke-width": "2",
1147
- d: "M6 18L18 6M6 6l12 12"
1148
- })], -1)]]);
1263
+ }, null, 10, Rt))), 128))])])], 2)) : r("", !0);
1149
1264
  }
1150
- var U = /*#__PURE__*/ j(Ft, [["render", It]]), Lt = {}, Rt = {
1265
+ var Bt = /*#__PURE__*/ j(Pt, [["render", zt]]), Vt = {}, Ht = {
1151
1266
  class: "bb:w-4 bb:h-4",
1152
1267
  fill: "none",
1153
1268
  stroke: "currentColor",
1154
1269
  viewBox: "0 0 24 24",
1155
1270
  xmlns: "http://www.w3.org/2000/svg"
1156
1271
  };
1157
- function zt(e, t, n, r, o, s) {
1158
- return d(), i("svg", Rt, [...t[0] ||= [a("path", {
1272
+ function Ut(e, t, n, r, o, s) {
1273
+ return d(), i("svg", Ht, [...t[0] ||= [a("path", {
1159
1274
  "stroke-linecap": "round",
1160
1275
  "stroke-linejoin": "round",
1161
1276
  "stroke-width": "2",
@@ -1164,9 +1279,9 @@ function zt(e, t, n, r, o, s) {
1164
1279
  }
1165
1280
  //#endregion
1166
1281
  //#region src/components/DownloadLink.vue
1167
- var Bt = {
1168
- components: { "download-icon": /* @__PURE__ */ j(Lt, [["render", zt]]) },
1169
- mixins: [L],
1282
+ var Wt = {
1283
+ components: { "download-icon": /* @__PURE__ */ j(Vt, [["render", Ut]]) },
1284
+ mixins: [W],
1170
1285
  props: {
1171
1286
  url: {
1172
1287
  type: String,
@@ -1180,16 +1295,16 @@ var Bt = {
1180
1295
  computed: { label() {
1181
1296
  return this.title ?? this.texts.download;
1182
1297
  } }
1183
- }, Vt = ["href", "title"], Ht = { class: "bb:ml-1" };
1184
- function Ut(e, t, n, r, o, c) {
1298
+ }, Gt = ["href", "title"], Kt = { class: "bb:ml-1" };
1299
+ function qt(e, t, n, r, o, c) {
1185
1300
  let l = m("download-icon");
1186
1301
  return d(), i("a", {
1187
1302
  href: n.url,
1188
1303
  title: c.label,
1189
1304
  class: "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:bg-purple-100 bb:text-purple-800 bb:hover:text-purple-600"
1190
- }, [s(l), a("span", Ht, g(c.label), 1)], 8, Vt);
1305
+ }, [s(l), a("span", Kt, g(c.label), 1)], 8, Gt);
1191
1306
  }
1192
- var Wt = /*#__PURE__*/ j(Bt, [["render", Ut]]), Gt = { props: {
1307
+ var Jt = /*#__PURE__*/ j(Wt, [["render", qt]]), Yt = { props: {
1193
1308
  isOpen: {
1194
1309
  type: Boolean,
1195
1310
  default: !1
@@ -1198,9 +1313,9 @@ var Wt = /*#__PURE__*/ j(Bt, [["render", Ut]]), Gt = { props: {
1198
1313
  type: String,
1199
1314
  required: !0
1200
1315
  }
1201
- } }, Kt = { class: "bb:flex bb:items-end bb:justify-center bb:min-h-screen bb:pt-4 bb:px-4 bb:pb-20 bb:text-center bb:sm:block bb:sm:p-0" }, qt = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, Jt = ["aria-labelledby"];
1202
- function Yt(e, n, r, o, c, l) {
1203
- 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", Kt, [
1316
+ } }, Xt = { class: "bb:flex bb:items-end bb:justify-center bb:min-h-screen bb:pt-4 bb:px-4 bb:pb-20 bb:text-center bb:sm:block bb:sm:p-0" }, Zt = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, Qt = ["aria-labelledby"];
1317
+ function $t(e, n, r, o, c, l) {
1318
+ 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", Xt, [
1204
1319
  s(t, {
1205
1320
  "enter-active-class": "bb:ease-out bb:duration-300",
1206
1321
  "enter-from-class": "bb:opacity-0",
@@ -1209,7 +1324,7 @@ function Yt(e, n, r, o, c, l) {
1209
1324
  "leave-from-class": "bb:opacity-100",
1210
1325
  "leave-to-class": "bb:opacity-0"
1211
1326
  }, {
1212
- default: b(() => [x(a("div", qt, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[y, r.isOpen]])]),
1327
+ default: b(() => [x(a("div", Zt, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[y, r.isOpen]])]),
1213
1328
  _: 1
1214
1329
  }),
1215
1330
  n[1] ||= a("span", { class: "bb:hidden bb:sm:inline-block bb:sm:align-middle bb:sm:h-screen" }, null, -1),
@@ -1226,12 +1341,12 @@ function Yt(e, n, r, o, c, l) {
1226
1341
  role: "dialog",
1227
1342
  "aria-modal": "true",
1228
1343
  "aria-labelledby": r.headingId
1229
- }, [p(e.$slots, "default")], 8, Jt), [[y, r.isOpen]])]),
1344
+ }, [p(e.$slots, "default")], 8, Qt), [[y, r.isOpen]])]),
1230
1345
  _: 3
1231
1346
  })
1232
1347
  ])], 2);
1233
1348
  }
1234
- var Xt = /*#__PURE__*/ j(Gt, [["render", Yt]]), Zt = {}, Qt = {
1349
+ var en = /*#__PURE__*/ j(Yt, [["render", $t]]), tn = {}, nn = {
1235
1350
  class: "bb:h-7 bb:w-7 bb:text-red-600",
1236
1351
  xmlns: "http://www.w3.org/2000/svg",
1237
1352
  fill: "none",
@@ -1239,35 +1354,35 @@ var Xt = /*#__PURE__*/ j(Gt, [["render", Yt]]), Zt = {}, Qt = {
1239
1354
  stroke: "currentColor",
1240
1355
  "aria-hidden": "true"
1241
1356
  };
1242
- function $t(e, t, n, r, o, s) {
1243
- return d(), i("svg", Qt, [...t[0] ||= [a("path", {
1357
+ function rn(e, t, n, r, o, s) {
1358
+ return d(), i("svg", nn, [...t[0] ||= [a("path", {
1244
1359
  "stroke-linecap": "round",
1245
1360
  "stroke-linejoin": "round",
1246
1361
  "stroke-width": "2",
1247
1362
  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"
1248
1363
  }, null, -1)]]);
1249
1364
  }
1250
- var W = /*#__PURE__*/ j(Zt, [["render", $t]]), en = {}, tn = {
1365
+ var K = /*#__PURE__*/ j(tn, [["render", rn]]), an = {}, on = {
1251
1366
  class: "bb:h-7 bb:w-7 bb:text-yellow-400",
1252
1367
  xmlns: "http://www.w3.org/2000/svg",
1253
1368
  viewBox: "0 0 20 20",
1254
1369
  fill: "currentColor",
1255
1370
  "aria-hidden": "true"
1256
1371
  };
1257
- function nn(e, t, n, r, o, s) {
1258
- return d(), i("svg", tn, [...t[0] ||= [a("path", {
1372
+ function sn(e, t, n, r, o, s) {
1373
+ return d(), i("svg", on, [...t[0] ||= [a("path", {
1259
1374
  "fill-rule": "evenodd",
1260
1375
  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",
1261
1376
  "clip-rule": "evenodd"
1262
1377
  }, null, -1)]]);
1263
1378
  }
1264
- var G = /*#__PURE__*/ j(en, [["render", nn]]), rn = {
1379
+ var q = /*#__PURE__*/ j(an, [["render", sn]]), cn = {
1265
1380
  components: {
1266
- Modal: Xt,
1267
- Dangerous: W,
1268
- Warning: G
1381
+ Modal: en,
1382
+ Dangerous: K,
1383
+ Warning: q
1269
1384
  },
1270
- mixins: [L],
1385
+ mixins: [W],
1271
1386
  emits: ["actionConfirmed", "actionCanceled"],
1272
1387
  props: {
1273
1388
  isOpen: {
@@ -1307,20 +1422,20 @@ var G = /*#__PURE__*/ j(en, [["render", nn]]), rn = {
1307
1422
  return this.type === "warning";
1308
1423
  }
1309
1424
  }
1310
- }, an = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:px-4 bb:pt-5 bb:pb-4 bb:sm:p-6 bb:sm:pb-4" }, on = { class: "bb:sm:flex bb:sm:items-start" }, sn = { class: "bb:mt-3 bb:text-center bb:sm:mt-0 bb:sm:ml-4 bb:sm:text-left" }, cn = ["id"], ln = { class: "bb:mt-2" }, un = { class: "bb:text-sm bb:text-gray-500" }, dn = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-4 bb:py-3 bb:sm:px-6 bb:sm:flex bb:sm:flex-row-reverse" };
1311
- function fn(e, t, i, o, s, c) {
1425
+ }, ln = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:px-4 bb:pt-5 bb:pb-4 bb:sm:p-6 bb:sm:pb-4" }, un = { class: "bb:sm:flex bb:sm:items-start" }, dn = { class: "bb:mt-3 bb:text-center bb:sm:mt-0 bb:sm:ml-4 bb:sm:text-left" }, fn = ["id"], pn = { class: "bb:mt-2" }, mn = { class: "bb:text-sm bb:text-gray-500" }, hn = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-4 bb:py-3 bb:sm:px-6 bb:sm:flex bb:sm:flex-row-reverse" };
1426
+ function gn(e, t, i, o, s, c) {
1312
1427
  let l = m("warning"), f = m("dangerous"), p = m("modal");
1313
1428
  return d(), n(p, {
1314
1429
  "is-open": i.isOpen,
1315
1430
  "heading-id": o.headingId
1316
1431
  }, {
1317
- default: b(() => [a("div", an, [a("div", on, [a("div", { class: u(["bb:mx-auto bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-12 bb:w-12 bb:rounded-full bb:sm:mx-0 bb:sm:h-10 bb:sm:w-10", {
1432
+ default: b(() => [a("div", ln, [a("div", un, [a("div", { class: u(["bb:mx-auto bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-12 bb:w-12 bb:rounded-full bb:sm:mx-0 bb:sm:h-10 bb:sm:w-10", {
1318
1433
  "bb:bg-red-100": c.isDangerous,
1319
1434
  "bb:bg-yellow-100": c.isWarning
1320
- }]) }, [c.isWarning ? (d(), n(l, { key: 0 })) : r("", !0), c.isDangerous ? (d(), n(f, { key: 1 })) : r("", !0)], 2), a("div", sn, [a("h3", {
1435
+ }]) }, [c.isWarning ? (d(), n(l, { key: 0 })) : r("", !0), c.isDangerous ? (d(), n(f, { key: 1 })) : r("", !0)], 2), a("div", dn, [a("h3", {
1321
1436
  class: "bb:text-lg bb:leading-6 bb:font-medium bb:text-gray-900",
1322
1437
  id: o.headingId
1323
- }, g(i.confirmationHeading), 9, cn), a("div", ln, [a("p", un, g(i.confirmationText), 1)])])])]), a("div", dn, [a("button", {
1438
+ }, g(i.confirmationHeading), 9, fn), a("div", pn, [a("p", mn, g(i.confirmationText), 1)])])])]), a("div", hn, [a("button", {
1324
1439
  type: "button",
1325
1440
  class: u(["bb:w-full 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-base bb:font-medium bb:text-white bb:focus:outline-hidden bb:focus:ring-2 bb:focus:ring-offset-2 bb:sm:ml-3 bb:sm:w-auto bb:sm:text-sm", {
1326
1441
  "bb:bg-red-600 bb:hover:bg-red-700 bb:focus:ring-red-500": c.isDangerous,
@@ -1335,175 +1450,328 @@ function fn(e, t, i, o, s, c) {
1335
1450
  _: 1
1336
1451
  }, 8, ["is-open", "heading-id"]);
1337
1452
  }
1338
- var pn = /*#__PURE__*/ j(rn, [["render", fn]]), K = 4, q = 8;
1339
- function J(e) {
1340
- return typeof e?.showPopover == "function";
1341
- }
1453
+ var _n = /*#__PURE__*/ j(cn, [["render", gn]]), J = ["yellow", "red"];
1342
1454
  function Y(e) {
1343
- return J(e) && e.matches(":popover-open");
1455
+ if (typeof e != "object" || !e || typeof e.label != "string" || e.label === "" || e.color !== void 0 && !J.includes(e.color) || e.danger !== void 0) return !1;
1456
+ let t = typeof e.href == "string" && e.href !== "" && e.onSelect === void 0, n = typeof e.onSelect == "function" && e.href === void 0;
1457
+ return t || n;
1344
1458
  }
1345
- function mn(e, t, { maxWidth: n = null } = {}) {
1346
- let r = e.getBoundingClientRect(), i = document.documentElement.clientWidth, a = document.documentElement.clientHeight, o = Math.max(q, i - r.right), s = Math.max(0, i - o - q), c = Math.max(0, a - r.bottom - K - q), l = Math.max(0, r.top - K - q), u = c >= l;
1347
- Object.assign(t.style, {
1348
- top: u ? `${r.bottom + K}px` : "auto",
1349
- bottom: u ? "auto" : `${a - r.top + K}px`,
1350
- right: `${o}px`,
1351
- left: "auto",
1352
- maxHeight: `${u ? c : l}px`
1353
- }), n !== null && (t.style.maxWidth = `${Math.min(n, s)}px`);
1354
- }
1355
- function hn(e, t) {
1356
- let n = (n) => {
1357
- e.contains(n.target) || t();
1358
- };
1359
- return window.addEventListener("scroll", n, {
1360
- capture: !0,
1361
- passive: !0
1362
- }), window.addEventListener("resize", t), () => {
1363
- window.removeEventListener("scroll", n, { capture: !0 }), window.removeEventListener("resize", t);
1459
+ function X(e) {
1460
+ return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e) : [];
1461
+ }
1462
+ function Z(e) {
1463
+ return typeof e.href == "string" && e.href !== "";
1464
+ }
1465
+ function Q(e) {
1466
+ return e.danger === void 0 && J.includes(e.color) ? e.color : null;
1467
+ }
1468
+ function vn(e) {
1469
+ return {
1470
+ data() {
1471
+ return { dangerWarned: !1 };
1472
+ },
1473
+ watch: { actions: {
1474
+ immediate: !0,
1475
+ deep: !0,
1476
+ handler(t) {
1477
+ process.env.NODE_ENV === "production" || this.dangerWarned || X(t).some((e) => e.danger !== void 0) && (this.dangerWarned = !0, console.warn(`[dashboard-ui-components] ${e}: поле danger убрано, красный пункт — color: 'red'`));
1478
+ }
1479
+ } }
1364
1480
  };
1365
1481
  }
1366
1482
  //#endregion
1367
- //#region src/components/DropdownButtonWithAction.vue
1368
- var gn = 224, _n = {
1369
- mixins: [L],
1483
+ //#region src/navigation.js
1484
+ function yn(e) {
1485
+ let t = e.currentTarget?.target ?? "";
1486
+ return !(e.defaultPrevented || e.target?.isContentEditable === !0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || t !== "" && t !== "_self" || e.button !== 0);
1487
+ }
1488
+ var $ = {
1489
+ inject: A,
1490
+ methods: { followLink(e, t) {
1491
+ let n = this.uiSettings.navigate;
1492
+ n !== null && yn(e) && (e.preventDefault(), n(t));
1493
+ } }
1494
+ }, bn = {
1495
+ components: { PopoverPanel: V },
1496
+ mixins: [$],
1370
1497
  emits: ["update:modelValue"],
1371
- props: { modelValue: {
1372
- type: Boolean,
1373
- default: !1
1374
- } },
1375
- setup() {
1376
- return {
1377
- menuButtonId: _(),
1378
- menuId: _()
1379
- };
1498
+ props: {
1499
+ actions: { default: () => [] },
1500
+ modelValue: {
1501
+ type: Boolean,
1502
+ default: !1
1503
+ }
1504
+ },
1505
+ computed: {
1506
+ actionItems() {
1507
+ return X(this.actions);
1508
+ },
1509
+ hasActions() {
1510
+ return this.actionItems.length > 0;
1511
+ }
1512
+ },
1513
+ methods: {
1514
+ color(e) {
1515
+ return Q(e);
1516
+ },
1517
+ isLink(e) {
1518
+ return Z(e);
1519
+ },
1520
+ select(e) {
1521
+ if (typeof e.onSelect == "function") return e.onSelect();
1522
+ }
1523
+ }
1524
+ }, xn = [
1525
+ "href",
1526
+ "onClick",
1527
+ "textContent"
1528
+ ], Sn = ["onClick", "textContent"];
1529
+ function Cn(t, r, a, o, s, c) {
1530
+ let l = m("popover-panel");
1531
+ return d(), n(l, {
1532
+ "model-value": a.modelValue,
1533
+ "has-content": c.hasActions,
1534
+ align: "end",
1535
+ "max-width": 224,
1536
+ arrows: "",
1537
+ "close-on-click": "",
1538
+ "panel-class": "bb:w-56 bb:rounded-md bb:shadow-lg bb:bg-white bb:ring-1 bb:ring-black/5",
1539
+ "panel-role": "menu",
1540
+ "onUpdate:modelValue": r[0] ||= (e) => t.$emit("update:modelValue", e)
1541
+ }, {
1542
+ trigger: b((e) => [p(t.$slots, "trigger", {
1543
+ id: e.id,
1544
+ popovertarget: e.popovertarget
1545
+ })]),
1546
+ default: b(() => [(d(!0), i(e, null, f(c.actionItems, (n, r) => (d(), i(e, { key: r }, [c.isLink(n) ? (d(), i("a", {
1547
+ key: 0,
1548
+ href: n.href,
1549
+ role: "menuitem",
1550
+ 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", {
1551
+ "bb:text-gray-700 bb:focus:bg-gray-100 bb:focus:text-gray-900": c.color(n) === null,
1552
+ "bb:text-yellow-800 bb:focus:bg-yellow-100": c.color(n) === "yellow",
1553
+ "bb:text-red-700 bb:focus:bg-red-50": c.color(n) === "red"
1554
+ }]),
1555
+ onClick: (e) => t.followLink(e, n.href),
1556
+ textContent: g(n.label)
1557
+ }, null, 10, xn)) : (d(), i("button", {
1558
+ key: 1,
1559
+ type: "button",
1560
+ role: "menuitem",
1561
+ 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", {
1562
+ "bb:text-gray-700 bb:focus:bg-gray-100 bb:focus:text-gray-900": c.color(n) === null,
1563
+ "bb:text-yellow-800 bb:focus:bg-yellow-100": c.color(n) === "yellow",
1564
+ "bb:text-red-700 bb:focus:bg-red-50": c.color(n) === "red"
1565
+ }]),
1566
+ onClick: (e) => c.select(n),
1567
+ textContent: g(n.label)
1568
+ }, null, 10, Sn))], 64))), 128))]),
1569
+ _: 3
1570
+ }, 8, ["model-value", "has-content"]);
1571
+ }
1572
+ var wn = /*#__PURE__*/ j(bn, [["render", Cn]]), Tn = {
1573
+ components: { PopoverMenu: wn },
1574
+ mixins: [
1575
+ W,
1576
+ $,
1577
+ vn("DropdownButtonWithAction")
1578
+ ],
1579
+ emits: ["update:modelValue"],
1580
+ props: {
1581
+ actions: {
1582
+ type: Array,
1583
+ default: () => [],
1584
+ validator: (e) => e.every(Y)
1585
+ },
1586
+ modelValue: {
1587
+ type: Boolean,
1588
+ default: !1
1589
+ }
1380
1590
  },
1381
1591
  data() {
1382
1592
  return { menuIsOpen: this.modelValue };
1383
1593
  },
1384
- watch: { modelValue(e) {
1385
- this.menuIsOpen = e, this.applyMenuState();
1386
- } },
1387
- created() {
1388
- this.stopClosing = null;
1594
+ computed: {
1595
+ items() {
1596
+ return X(this.actions);
1597
+ },
1598
+ hasActions() {
1599
+ return this.items.length > 0;
1600
+ },
1601
+ mainAction() {
1602
+ return this.items[0];
1603
+ },
1604
+ mainColor() {
1605
+ return this.hasActions ? Q(this.mainAction) : null;
1606
+ },
1607
+ menuActions() {
1608
+ return this.items.slice(1);
1609
+ },
1610
+ hasMenu() {
1611
+ return this.menuActions.length > 0;
1612
+ }
1389
1613
  },
1390
- mounted() {
1391
- this.applyMenuState();
1614
+ watch: {
1615
+ modelValue(e) {
1616
+ this.menuIsOpen = e;
1617
+ },
1618
+ hasMenu: {
1619
+ flush: "post",
1620
+ handler(e) {
1621
+ !e && !this.hasActions && this.menuIsOpen && (this.menuIsOpen = !1, this.$emit("update:modelValue", !1));
1622
+ }
1623
+ }
1392
1624
  },
1393
- beforeUnmount() {
1394
- this.stopListening();
1625
+ created() {
1626
+ process.env.NODE_ENV !== "production" && this.$slots.actions && console.warn("[dashboard-ui-components] DropdownButtonWithAction: слот actions убран, пункты меню передаются пропом actions"), process.env.NODE_ENV !== "production" && this.$slots.button && console.warn("[dashboard-ui-components] DropdownButtonWithAction: слот button убран, основная кнопка — первый пункт actions");
1395
1627
  },
1396
1628
  methods: {
1397
- applyMenuState() {
1398
- let e = this.$refs.menu;
1399
- J(e) && e.isConnected && (this.menuIsOpen && !Y(e) && e.showPopover(), !this.menuIsOpen && Y(e) && e.hidePopover());
1400
- },
1401
- close() {
1402
- let e = this.$refs.menu;
1403
- Y(e) && e.hidePopover();
1629
+ isLink(e) {
1630
+ return Z(e);
1404
1631
  },
1405
- onBeforeToggle(e) {
1406
- e.newState === "open" && mn(this.$refs.arrow, this.$refs.menu, { maxWidth: gn });
1407
- },
1408
- onToggle(e) {
1409
- this.stopListening();
1410
- let t = this.$refs.menu;
1411
- Y(t) && (this.stopClosing = hn(t, this.close));
1412
- let n = e.newState === "open";
1413
- n !== this.menuIsOpen && (this.menuIsOpen = n, this.$emit("update:modelValue", n));
1632
+ select(e) {
1633
+ if (typeof e.onSelect == "function") return e.onSelect();
1414
1634
  },
1415
- stopListening() {
1416
- this.stopClosing !== null && (this.stopClosing(), this.stopClosing = null);
1635
+ onMenuToggle(e) {
1636
+ this.menuIsOpen = e, this.$emit("update:modelValue", e);
1417
1637
  }
1418
1638
  }
1419
- }, vn = { class: "bb-dashboard-ui bb:relative bb:inline-flex bb:shadow-xs bb:rounded-md" }, yn = {
1639
+ }, En = {
1420
1640
  key: 0,
1421
- class: "bb:-ml-px bb:relative bb:block"
1422
- }, bn = ["id", "popovertarget"], xn = { class: "bb:sr-only" }, Sn = ["id", "aria-labelledby"];
1423
- function Cn(e, t, n, o, s, c) {
1424
- return d(), i("span", vn, [a("button", {
1425
- type: "button",
1426
- class: u(["bb:relative bb:inline-flex bb:items-center bb:rounded-l-md bb:border bb:border-gray-300 bb:bg-white bb:hover:bg-gray-50 bb:focus:outline-hidden", { "bb:rounded-r-md": !e.$slots.actions }])
1427
- }, [p(e.$slots, "button")], 2), e.$slots.actions ? (d(), i("span", yn, [a("button", {
1428
- ref: "arrow",
1429
- id: o.menuButtonId,
1641
+ class: "bb-dashboard-ui bb:relative bb:inline-flex bb:shadow-xs bb:rounded-md"
1642
+ }, Dn = ["href", "textContent"], On = ["textContent"], kn = ["id", "popovertarget"], An = { class: "bb:sr-only" };
1643
+ function jn(e, t, n, o, c, l) {
1644
+ let f = m("popover-menu");
1645
+ return l.hasActions ? (d(), i("span", En, [l.isLink(l.mainAction) ? (d(), i("a", {
1646
+ key: 0,
1647
+ href: l.mainAction.href,
1648
+ 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", {
1649
+ "bb:rounded-l-md": l.hasMenu,
1650
+ "bb:rounded-md": !l.hasMenu,
1651
+ "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50": l.mainColor === null,
1652
+ "bb:bg-yellow-100 bb:border-yellow-300 bb:text-yellow-800 bb:hover:bg-yellow-200": l.mainColor === "yellow",
1653
+ "bb:bg-red-50 bb:border-red-300 bb:text-red-700 bb:hover:bg-red-100": l.mainColor === "red"
1654
+ }]),
1655
+ onClick: t[0] ||= (t) => e.followLink(t, l.mainAction.href),
1656
+ textContent: g(l.mainAction.label)
1657
+ }, null, 10, Dn)) : (d(), i("button", {
1658
+ key: 1,
1430
1659
  type: "button",
1431
- popovertarget: o.menuId,
1432
- class: "bb:relative bb:inline-flex bb:items-center bb:px-2 bb:py-2 bb:rounded-r-md bb:border bb:border-gray-300 bb:bg-white bb:text-sm bb:font-medium bb:text-gray-500 bb:hover:bg-gray-50 bb:focus:z-10 bb:focus:outline-hidden bb:focus:ring-1 bb:focus:ring-indigo-500 bb:focus:border-indigo-500"
1433
- }, [a("span", xn, g(e.texts.openMenu), 1), t[3] ||= a("svg", {
1434
- class: "bb:h-5 bb:w-5",
1435
- xmlns: "http://www.w3.org/2000/svg",
1436
- viewBox: "0 0 20 20",
1437
- fill: "currentColor",
1438
- "aria-hidden": "true"
1439
- }, [a("path", {
1440
- "fill-rule": "evenodd",
1441
- 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",
1442
- "clip-rule": "evenodd"
1443
- })], -1)], 8, bn), a("div", {
1444
- ref: "menu",
1445
- id: o.menuId,
1446
- popover: "auto",
1447
- class: "bb:m-0 bb:inset-auto bb:w-56 bb:rounded-md bb:shadow-lg bb:bg-white bb:text-inherit bb:ring-1 bb:ring-black/5",
1448
- role: "menu",
1449
- "aria-orientation": "vertical",
1450
- "aria-labelledby": o.menuButtonId,
1451
- onBeforetoggle: t[0] ||= (...e) => c.onBeforeToggle && c.onBeforeToggle(...e),
1452
- onToggle: t[1] ||= (...e) => c.onToggle && c.onToggle(...e),
1453
- onClick: t[2] ||= (...e) => c.close && c.close(...e)
1454
- }, [p(e.$slots, "actions")], 40, Sn)])) : r("", !0)]);
1660
+ 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", {
1661
+ "bb:rounded-l-md": l.hasMenu,
1662
+ "bb:rounded-md": !l.hasMenu,
1663
+ "bb:bg-white bb:border-gray-300 bb:text-gray-700 bb:hover:bg-gray-50": l.mainColor === null,
1664
+ "bb:bg-yellow-100 bb:border-yellow-300 bb:text-yellow-800 bb:hover:bg-yellow-200": l.mainColor === "yellow",
1665
+ "bb:bg-red-50 bb:border-red-300 bb:text-red-700 bb:hover:bg-red-100": l.mainColor === "red"
1666
+ }]),
1667
+ onClick: t[1] ||= (e) => l.select(l.mainAction),
1668
+ textContent: g(l.mainAction.label)
1669
+ }, null, 10, On)), s(f, {
1670
+ class: "bb:-ml-px bb:flex",
1671
+ actions: l.menuActions,
1672
+ "model-value": n.modelValue,
1673
+ "onUpdate:modelValue": l.onMenuToggle
1674
+ }, {
1675
+ trigger: b((n) => [a("button", {
1676
+ type: "button",
1677
+ id: n.id,
1678
+ popovertarget: n.popovertarget,
1679
+ 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", {
1680
+ "bb:bg-white bb:border-gray-300 bb:text-gray-500 bb:hover:bg-gray-50": l.mainColor === null,
1681
+ "bb:bg-yellow-100 bb:border-yellow-300 bb:text-yellow-800 bb:hover:bg-yellow-200": l.mainColor === "yellow",
1682
+ "bb:bg-red-50 bb:border-red-300 bb:text-red-700 bb:hover:bg-red-100": l.mainColor === "red"
1683
+ }])
1684
+ }, [a("span", An, g(e.texts.openMenu), 1), t[2] ||= a("svg", {
1685
+ class: "bb:h-5 bb:w-5",
1686
+ xmlns: "http://www.w3.org/2000/svg",
1687
+ viewBox: "0 0 20 20",
1688
+ fill: "currentColor",
1689
+ "aria-hidden": "true"
1690
+ }, [a("path", {
1691
+ "fill-rule": "evenodd",
1692
+ 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",
1693
+ "clip-rule": "evenodd"
1694
+ })], -1)], 10, kn)]),
1695
+ _: 1
1696
+ }, 8, [
1697
+ "actions",
1698
+ "model-value",
1699
+ "onUpdate:modelValue"
1700
+ ])])) : r("", !0);
1701
+ }
1702
+ var Mn = /*#__PURE__*/ j(Tn, [["render", jn]]), Nn = {
1703
+ components: { PopoverMenu: wn },
1704
+ mixins: [W, vn("HamburgerMenu")],
1705
+ props: { actions: {
1706
+ type: Array,
1707
+ default: () => [],
1708
+ validator: (e) => e.every(Y)
1709
+ } }
1710
+ }, Pn = ["id", "popovertarget"], Fn = { class: "bb:sr-only" };
1711
+ function In(e, t, r, i, o, s) {
1712
+ let c = m("popover-menu");
1713
+ return d(), n(c, {
1714
+ class: "bb-dashboard-ui bb:inline-flex",
1715
+ actions: r.actions
1716
+ }, {
1717
+ trigger: b((n) => [a("button", {
1718
+ type: "button",
1719
+ id: n.id,
1720
+ popovertarget: n.popovertarget,
1721
+ 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"
1722
+ }, [a("span", Fn, g(e.texts.openMenu), 1), t[0] ||= a("svg", {
1723
+ class: "bb:h-6 bb:w-6",
1724
+ fill: "none",
1725
+ viewBox: "0 0 24 24",
1726
+ stroke: "currentColor",
1727
+ "aria-hidden": "true"
1728
+ }, [a("path", {
1729
+ "stroke-linecap": "round",
1730
+ "stroke-linejoin": "round",
1731
+ "stroke-width": "2",
1732
+ d: "M4 6h16M4 12h16M4 18h16"
1733
+ })], -1)], 8, Pn)]),
1734
+ _: 1
1735
+ }, 8, ["actions"]);
1455
1736
  }
1456
- var wn = /*#__PURE__*/ j(_n, [["render", Cn]]), Tn = {}, En = {
1737
+ var Ln = /*#__PURE__*/ j(Nn, [["render", In]]), Rn = {}, zn = {
1457
1738
  xmlns: "http://www.w3.org/2000/svg",
1458
1739
  viewBox: "0 0 20 20",
1459
1740
  fill: "currentColor",
1460
1741
  "aria-hidden": "true"
1461
1742
  };
1462
- function Dn(e, t, n, r, o, s) {
1463
- return d(), i("svg", En, [...t[0] ||= [a("path", {
1743
+ function Bn(e, t, n, r, o, s) {
1744
+ return d(), i("svg", zn, [...t[0] ||= [a("path", {
1464
1745
  "fill-rule": "evenodd",
1465
1746
  "clip-rule": "evenodd",
1466
1747
  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"
1467
1748
  }, null, -1)]]);
1468
1749
  }
1469
- var On = /*#__PURE__*/ j(Tn, [["render", Dn]]), kn = {}, An = {
1750
+ var Vn = /*#__PURE__*/ j(Rn, [["render", Bn]]), Hn = {}, Un = {
1470
1751
  xmlns: "http://www.w3.org/2000/svg",
1471
1752
  viewBox: "0 0 20 20",
1472
1753
  fill: "currentColor",
1473
1754
  "aria-hidden": "true"
1474
1755
  };
1475
- function jn(e, t, n, r, o, s) {
1476
- return d(), i("svg", An, [...t[0] ||= [a("path", {
1756
+ function Wn(e, t, n, r, o, s) {
1757
+ return d(), i("svg", Un, [...t[0] ||= [a("path", {
1477
1758
  "fill-rule": "evenodd",
1478
1759
  "clip-rule": "evenodd",
1479
1760
  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"
1480
1761
  }, null, -1)]]);
1481
1762
  }
1482
- var Mn = /*#__PURE__*/ j(kn, [["render", jn]]);
1483
- //#endregion
1484
- //#region src/navigation.js
1485
- function Nn(e) {
1486
- let t = e.currentTarget?.target ?? "";
1487
- return !(e.defaultPrevented || e.target?.isContentEditable === !0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || t !== "" && t !== "_self" || e.button !== 0);
1488
- }
1489
- var X = {
1490
- inject: A,
1491
- methods: { followLink(e, t) {
1492
- let n = this.uiSettings.navigate;
1493
- n !== null && Nn(e) && (e.preventDefault(), n(t));
1494
- } }
1495
- };
1763
+ var Gn = /*#__PURE__*/ j(Hn, [["render", Wn]]);
1496
1764
  //#endregion
1497
1765
  //#region src/components/Pagination.vue
1498
- function Z(e) {
1766
+ function Kn(e) {
1499
1767
  return typeof e == "string" && e !== "" ? e : null;
1500
1768
  }
1501
- var Pn = {
1769
+ var qn = {
1502
1770
  components: {
1503
- ArrowNarrowLeft: On,
1504
- ArrowNarrowRight: Mn
1771
+ ArrowNarrowLeft: Vn,
1772
+ ArrowNarrowRight: Gn
1505
1773
  },
1506
- mixins: [L, X],
1774
+ mixins: [W, $],
1507
1775
  props: {
1508
1776
  links: {
1509
1777
  type: Object,
@@ -1531,49 +1799,49 @@ var Pn = {
1531
1799
  return typeof this.from == "number" && typeof this.to == "number";
1532
1800
  },
1533
1801
  previousPageUrl() {
1534
- return Z(this.links?.prev);
1802
+ return Kn(this.links?.prev);
1535
1803
  },
1536
1804
  nextPageUrl() {
1537
- return Z(this.links?.next);
1805
+ return Kn(this.links?.next);
1538
1806
  }
1539
1807
  }
1540
- }, Fn = {
1808
+ }, Jn = {
1541
1809
  key: 0,
1542
1810
  class: "bb-dashboard-ui bb:px-4 bb:flex bb:items-center bb:justify-between bb:sm:px-0"
1543
- }, In = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, Ln = ["href"], Rn = {
1811
+ }, Yn = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, Xn = ["href"], Zn = {
1544
1812
  key: 0,
1545
1813
  class: "bb:hidden bb:md:-mt-px bb:md:flex bb:text-gray-400 bb:text-sm bb:leading-5"
1546
- }, zn = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Bn = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, Vn = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, Hn = ["href"];
1547
- function Un(e, t, n, c, l, u) {
1814
+ }, Qn = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, $n = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, er = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, tr = ["href"];
1815
+ function nr(e, t, n, c, l, u) {
1548
1816
  let f = m("arrow-narrow-left"), p = m("arrow-narrow-right");
1549
- return u.hasResults ? (d(), i("nav", Fn, [
1550
- a("div", In, [u.previousPageUrl === null ? r("", !0) : (d(), i("a", {
1817
+ return u.hasResults ? (d(), i("nav", Jn, [
1818
+ a("div", Yn, [u.previousPageUrl === null ? r("", !0) : (d(), i("a", {
1551
1819
  key: 0,
1552
1820
  href: u.previousPageUrl,
1553
1821
  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",
1554
1822
  onClick: t[0] ||= (t) => e.followLink(t, u.previousPageUrl)
1555
- }, [s(f, { class: "bb:mr-3 bb:h-5 bb:w-5 bb:text-gray-400" }), o(" " + g(e.texts.previousPage), 1)], 8, Ln))]),
1556
- u.hasRange ? (d(), i("div", Rn, [
1823
+ }, [s(f, { class: "bb:mr-3 bb:h-5 bb:w-5 bb:text-gray-400" }), o(" " + g(e.texts.previousPage), 1)], 8, Xn))]),
1824
+ u.hasRange ? (d(), i("div", Zn, [
1557
1825
  o(g(e.texts.resultsBefore) + " ", 1),
1558
- a("span", zn, g(u.from) + " - " + g(u.to), 1),
1826
+ a("span", Qn, g(u.from) + " - " + g(u.to), 1),
1559
1827
  o(" " + g(e.texts.resultsOf) + " ", 1),
1560
- a("span", Bn, g(u.total), 1),
1828
+ a("span", $n, g(u.total), 1),
1561
1829
  o(" " + g(e.texts.resultsAfter), 1)
1562
1830
  ])) : r("", !0),
1563
- a("div", Vn, [u.nextPageUrl === null ? r("", !0) : (d(), i("a", {
1831
+ a("div", er, [u.nextPageUrl === null ? r("", !0) : (d(), i("a", {
1564
1832
  key: 0,
1565
1833
  href: u.nextPageUrl,
1566
1834
  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",
1567
1835
  onClick: t[1] ||= (t) => e.followLink(t, u.nextPageUrl)
1568
- }, [o(g(e.texts.nextPage) + " ", 1), s(p, { class: "bb:ml-3 bb:h-5 bb:w-5 bb:text-gray-400" })], 8, Hn))])
1836
+ }, [o(g(e.texts.nextPage) + " ", 1), s(p, { class: "bb:ml-3 bb:h-5 bb:w-5 bb:text-gray-400" })], 8, tr))])
1569
1837
  ])) : r("", !0);
1570
1838
  }
1571
- var Wn = /*#__PURE__*/ j(Pn, [["render", Un]]), Gn = [
1839
+ var rr = /*#__PURE__*/ j(qn, [["render", nr]]), ir = [
1572
1840
  "left",
1573
1841
  "center",
1574
1842
  "right"
1575
- ], Kn = ["red", "green"];
1576
- function qn(e) {
1843
+ ], ar = ["red", "green"];
1844
+ function or(e) {
1577
1845
  if (typeof e != "object" || !e || typeof e.key != "string" || e.key === "") return null;
1578
1846
  let t = e.key;
1579
1847
  return {
@@ -1582,21 +1850,21 @@ function qn(e) {
1582
1850
  value: typeof e.value == "function" ? e.value : (e) => e?.[t],
1583
1851
  secondary: typeof e.secondary == "function" ? e.secondary : null,
1584
1852
  muted: e.muted === !0,
1585
- align: Gn.includes(e.align) ? e.align : "left",
1853
+ align: ir.includes(e.align) ? e.align : "left",
1586
1854
  wrap: e.wrap === !0,
1587
1855
  narrow: e.narrow === !0,
1588
1856
  visible: e.visible !== !1
1589
1857
  };
1590
1858
  }
1591
- function Q(e) {
1859
+ function sr(e) {
1592
1860
  return typeof e == "string" && e !== "" ? e : null;
1593
1861
  }
1594
- var Jn = {
1862
+ var cr = {
1595
1863
  components: {
1596
- Pagination: Wn,
1597
- SmallBadge: H
1864
+ Pagination: rr,
1865
+ SmallBadge: G
1598
1866
  },
1599
- mixins: [L],
1867
+ mixins: [W],
1600
1868
  props: {
1601
1869
  rows: {
1602
1870
  type: Array,
@@ -1641,7 +1909,7 @@ var Jn = {
1641
1909
  return Array.isArray(this.rows) ? this.rows : [];
1642
1910
  },
1643
1911
  visibleColumns() {
1644
- return (Array.isArray(this.columns) ? this.columns : []).map(qn).filter((e) => e !== null && e.visible);
1912
+ return (Array.isArray(this.columns) ? this.columns : []).map(or).filter((e) => e !== null && e.visible);
1645
1913
  },
1646
1914
  isCard() {
1647
1915
  return this.variant === "card";
@@ -1657,10 +1925,10 @@ var Jn = {
1657
1925
  },
1658
1926
  badgeText() {
1659
1927
  if (this.hasRecords) {
1660
- let e = Q(this.foundText);
1928
+ let e = sr(this.foundText);
1661
1929
  return e === null ? null : `${e}: ${this.recordCount}`;
1662
1930
  }
1663
- return Q(this.emptyText);
1931
+ return sr(this.emptyText);
1664
1932
  }
1665
1933
  },
1666
1934
  methods: {
@@ -1680,15 +1948,15 @@ var Jn = {
1680
1948
  colorOf(e) {
1681
1949
  if (typeof this.rowColor != "function") return null;
1682
1950
  let t = this.rowColor(e);
1683
- return Kn.includes(t) ? t : null;
1951
+ return ar.includes(t) ? t : null;
1684
1952
  },
1685
1953
  textOf(e, t) {
1686
1954
  let n = e(t);
1687
1955
  return n == null ? "" : String(n);
1688
1956
  }
1689
1957
  }
1690
- }, Yn = { class: "bb:min-w-full bb:divide-y bb:divide-gray-200 bb:border-collapse" }, Xn = { class: "bb:bg-gray-50" }, Zn = ["textContent"], Qn = { class: "bb:divide-y bb:divide-gray-200" }, $n = ["textContent"], er = ["textContent"];
1691
- function tr(t, o, s, c, l, h) {
1958
+ }, lr = { class: "bb:min-w-full bb:divide-y bb:divide-gray-200 bb:border-collapse" }, ur = { class: "bb:bg-gray-50" }, dr = ["textContent"], fr = { class: "bb:divide-y bb:divide-gray-200" }, pr = ["textContent"], mr = ["textContent"];
1959
+ function hr(t, o, s, c, l, h) {
1692
1960
  let _ = m("small-badge"), v = m("pagination");
1693
1961
  return d(), i("div", null, [
1694
1962
  h.hasBadgeRow() ? (d(), i("div", {
@@ -1702,7 +1970,7 @@ function tr(t, o, s, c, l, h) {
1702
1970
  h.normalizedRows.length > 0 ? (d(), i("div", {
1703
1971
  key: 1,
1704
1972
  class: u(h.isCard && h.hasBadgeRow() ? "bb:mt-4" : "")
1705
- }, [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:sm:rounded-lg"]) }, [a("table", Yn, [a("thead", null, [a("tr", Xn, [(d(!0), i(e, null, f(h.visibleColumns, (e) => (d(), i("th", {
1973
+ }, [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:sm:rounded-lg"]) }, [a("table", lr, [a("thead", null, [a("tr", ur, [(d(!0), i(e, null, f(h.visibleColumns, (e) => (d(), i("th", {
1706
1974
  key: e.key,
1707
1975
  scope: "col",
1708
1976
  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", [{
@@ -1711,7 +1979,7 @@ function tr(t, o, s, c, l, h) {
1711
1979
  "bb:text-right": e.align === "right"
1712
1980
  }, { "bb:w-px": e.narrow }]]),
1713
1981
  textContent: g(e.label)
1714
- }, null, 10, Zn))), 128))])]), a("tbody", Qn, [(d(!0), i(e, null, f(h.normalizedRows, (n, o) => (d(), i("tr", {
1982
+ }, null, 10, dr))), 128))])]), a("tbody", fr, [(d(!0), i(e, null, f(h.normalizedRows, (n, o) => (d(), i("tr", {
1715
1983
  key: h.keyOf(n, o),
1716
1984
  class: u({
1717
1985
  "bb:bg-white bb:even:bg-gray-50": h.colorOf(n) === null,
@@ -1735,11 +2003,11 @@ function tr(t, o, s, c, l, h) {
1735
2003
  }, () => [a("div", {
1736
2004
  class: u(["bb:font-medium", e.muted ? "bb:text-gray-400" : "bb:text-gray-900"]),
1737
2005
  textContent: g(h.textOf(e.value, n))
1738
- }, null, 10, $n), e.secondary !== null && h.textOf(e.secondary, n) !== "" ? (d(), i("div", {
2006
+ }, null, 10, pr), e.secondary !== null && h.textOf(e.secondary, n) !== "" ? (d(), i("div", {
1739
2007
  key: 0,
1740
2008
  class: "bb:text-gray-400",
1741
2009
  textContent: g(h.textOf(e.secondary, n))
1742
- }, null, 8, er)) : r("", !0)])], 2))), 128))], 2))), 128))])])], 2)], 2)) : r("", !0),
2010
+ }, null, 8, mr)) : r("", !0)])], 2))), 128))], 2))), 128))])])], 2)], 2)) : r("", !0),
1743
2011
  h.hasMeta ? (d(), n(v, {
1744
2012
  key: 2,
1745
2013
  meta: s.meta,
@@ -1754,8 +2022,8 @@ function tr(t, o, s, c, l, h) {
1754
2022
  ])) : r("", !0)
1755
2023
  ]);
1756
2024
  }
1757
- var nr = /*#__PURE__*/ j(Jn, [["render", tr]]), rr = {
1758
- mixins: [X],
2025
+ var gr = /*#__PURE__*/ j(cr, [["render", hr]]), _r = {
2026
+ mixins: [$],
1759
2027
  props: {
1760
2028
  url: {
1761
2029
  type: String,
@@ -1770,28 +2038,46 @@ var nr = /*#__PURE__*/ j(Jn, [["render", tr]]), rr = {
1770
2038
  default: !1
1771
2039
  }
1772
2040
  }
1773
- }, ir = ["href", "textContent"];
1774
- function ar(e, t, n, r, a, o) {
2041
+ }, vr = ["href", "textContent"];
2042
+ function yr(e, t, n, r, a, o) {
1775
2043
  return d(), i("a", {
1776
2044
  href: n.url,
1777
2045
  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"]),
1778
2046
  onClick: t[0] ||= (t) => e.followLink(t, n.url),
1779
2047
  textContent: g(n.name)
1780
- }, null, 10, ir);
2048
+ }, null, 10, vr);
2049
+ }
2050
+ var br = /*#__PURE__*/ j(_r, [["render", yr]]), xr = { emits: ["clicked"] };
2051
+ function Sr(e, t, n, r, o, s) {
2052
+ return d(), i("button", {
2053
+ type: "button",
2054
+ tabindex: "-1",
2055
+ 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-600",
2056
+ onClick: t[0] ||= S((t) => e.$emit("clicked"), ["prevent"])
2057
+ }, [...t[1] ||= [a("svg", {
2058
+ class: "bb:w-full bb:h-full bb:stroke-current",
2059
+ fill: "none",
2060
+ viewBox: "0 0 24 24"
2061
+ }, [a("path", {
2062
+ "stroke-linecap": "round",
2063
+ "stroke-linejoin": "round",
2064
+ "stroke-width": "2",
2065
+ d: "M6 18L18 6M6 6l12 12"
2066
+ })], -1)]]);
1781
2067
  }
1782
- var or = /*#__PURE__*/ j(rr, [["render", ar]]), $ = [
2068
+ var Cr = /*#__PURE__*/ j(xr, [["render", Sr]]), wr = [
1783
2069
  "xl",
1784
2070
  "4xl",
1785
2071
  "7xl"
1786
- ], sr = {
1787
- components: { Closer: U },
1788
- mixins: [L],
2072
+ ], Tr = {
2073
+ components: { Closer: Cr },
2074
+ mixins: [W],
1789
2075
  inheritAttrs: !1,
1790
2076
  props: {
1791
2077
  width: {
1792
2078
  type: String,
1793
2079
  default: "xl",
1794
- validator: (e) => $.includes(e)
2080
+ validator: (e) => wr.includes(e)
1795
2081
  },
1796
2082
  fallbackUrl: {
1797
2083
  type: String,
@@ -1807,7 +2093,7 @@ var or = /*#__PURE__*/ j(rr, [["render", ar]]), $ = [
1807
2093
  },
1808
2094
  computed: {
1809
2095
  resolvedWidth() {
1810
- return $.includes(this.width) ? this.width : "xl";
2096
+ return wr.includes(this.width) ? this.width : "xl";
1811
2097
  },
1812
2098
  windows() {
1813
2099
  return this.uiSettings.windows;
@@ -1854,7 +2140,7 @@ var or = /*#__PURE__*/ j(rr, [["render", ar]]), $ = [
1854
2140
  }
1855
2141
  }
1856
2142
  };
1857
- function cr(e, t, a, o, s, c) {
2143
+ function Er(e, t, a, o, s, c) {
1858
2144
  let f = m("closer");
1859
2145
  return d(), i("div", l({
1860
2146
  class: ["bb:box-border bb:relative bb:my-6 bb:mx-auto bb:bg-white bb:shadow-xl bb:sm:rounded-lg", [
@@ -1887,7 +2173,7 @@ function cr(e, t, a, o, s, c) {
1887
2173
  "onClicked"
1888
2174
  ])) : r("", !0)], 16);
1889
2175
  }
1890
- var lr = /*#__PURE__*/ j(sr, [["render", cr]]), ur = {}, dr = {
2176
+ var Dr = /*#__PURE__*/ j(Tr, [["render", Er]]), Or = {}, kr = {
1891
2177
  class: "bb:h-7 bb:w-7 bb:text-green-600",
1892
2178
  xmlns: "http://www.w3.org/2000/svg",
1893
2179
  fill: "none",
@@ -1896,22 +2182,22 @@ var lr = /*#__PURE__*/ j(sr, [["render", cr]]), ur = {}, dr = {
1896
2182
  stroke: "currentColor",
1897
2183
  "aria-hidden": "true"
1898
2184
  };
1899
- function fr(e, t, n, r, o, s) {
1900
- return d(), i("svg", dr, [...t[0] ||= [a("path", {
2185
+ function Ar(e, t, n, r, o, s) {
2186
+ return d(), i("svg", kr, [...t[0] ||= [a("path", {
1901
2187
  "stroke-linecap": "round",
1902
2188
  "stroke-linejoin": "round",
1903
2189
  d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
1904
2190
  }, null, -1)]]);
1905
2191
  }
1906
- var pr = /*#__PURE__*/ j(ur, [["render", fr]]), mr = {}, hr = {
2192
+ var jr = /*#__PURE__*/ j(Or, [["render", Ar]]), Mr = {}, Nr = {
1907
2193
  class: "bb:h-5 bb:w-5",
1908
2194
  xmlns: "http://www.w3.org/2000/svg",
1909
2195
  viewBox: "0 0 20 20",
1910
2196
  fill: "currentColor",
1911
2197
  "aria-hidden": "true"
1912
2198
  };
1913
- function gr(e, t, n, r, o, s) {
1914
- return d(), i("svg", hr, [...t[0] ||= [a("path", {
2199
+ function Pr(e, t, n, r, o, s) {
2200
+ return d(), i("svg", Nr, [...t[0] ||= [a("path", {
1915
2201
  "fill-rule": "evenodd",
1916
2202
  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",
1917
2203
  "clip-rule": "evenodd"
@@ -1919,14 +2205,14 @@ function gr(e, t, n, r, o, s) {
1919
2205
  }
1920
2206
  //#endregion
1921
2207
  //#region src/components/NotificationMessage.vue
1922
- var _r = {
2208
+ var Fr = {
1923
2209
  components: {
1924
- Check: pr,
1925
- Close: /* @__PURE__ */ j(mr, [["render", gr]]),
1926
- Dangerous: W,
1927
- Warning: G
2210
+ Check: jr,
2211
+ Close: /* @__PURE__ */ j(Mr, [["render", Pr]]),
2212
+ Dangerous: K,
2213
+ Warning: q
1928
2214
  },
1929
- mixins: [L],
2215
+ mixins: [W],
1930
2216
  emits: ["update:modelValue"],
1931
2217
  props: {
1932
2218
  modelValue: {
@@ -1964,8 +2250,8 @@ var _r = {
1964
2250
  return this.type === "confirmation";
1965
2251
  }
1966
2252
  }
1967
- }, vr = ["role"], yr = { class: "bb:p-4" }, br = { class: "bb:flex bb:items-start" }, xr = { class: "bb:shrink-0" }, Sr = { class: "bb:ml-3 bb:w-0 bb:flex-1 bb:pt-0.5" }, Cr = { class: "bb:text-sm bb:font-medium bb:text-gray-900" }, wr = { class: "bb:mt-1 bb:text-sm bb:text-gray-500" }, Tr = { class: "bb:ml-4 bb:shrink-0 bb:flex" }, Er = { class: "bb:sr-only" };
1968
- function Dr(e, t, o, c, l, f) {
2253
+ }, Ir = ["role"], Lr = { class: "bb:p-4" }, Rr = { class: "bb:flex bb:items-start" }, zr = { class: "bb:shrink-0" }, Br = { class: "bb:ml-3 bb:w-0 bb:flex-1 bb:pt-0.5" }, Vr = { class: "bb:text-sm bb:font-medium bb:text-gray-900" }, Hr = { class: "bb:mt-1 bb:text-sm bb:text-gray-500" }, Ur = { class: "bb:ml-4 bb:shrink-0 bb:flex" }, Wr = { class: "bb:sr-only" };
2254
+ function Gr(e, t, o, c, l, f) {
1969
2255
  let p = m("warning"), h = m("dangerous"), _ = m("check"), v = m("close");
1970
2256
  return d(), i("div", {
1971
2257
  class: "bb-dashboard-ui bb:fixed bb:inset-0 bb:flex bb:items-end bb:justify-center bb:px-4 bb:py-6 bb:pointer-events-none bb:sm:p-6 bb:sm:items-start bb:sm:justify-end",
@@ -1977,14 +2263,14 @@ function Dr(e, t, o, c, l, f) {
1977
2263
  "bb:bg-yellow-50": f.isWarning,
1978
2264
  "bb:bg-gray-50": f.isConfirmation
1979
2265
  }])
1980
- }, [a("div", yr, [a("div", br, [
1981
- a("div", xr, [
2266
+ }, [a("div", Lr, [a("div", Rr, [
2267
+ a("div", zr, [
1982
2268
  f.isWarning ? (d(), n(p, { key: 0 })) : r("", !0),
1983
2269
  f.isDangerous ? (d(), n(h, { key: 1 })) : r("", !0),
1984
2270
  f.isConfirmation ? (d(), n(_, { key: 2 })) : r("", !0)
1985
2271
  ]),
1986
- a("div", Sr, [a("p", Cr, g(o.notificationHeading), 1), a("p", wr, g(f.text), 1)]),
1987
- a("div", Tr, [a("button", {
2272
+ a("div", Br, [a("p", Vr, g(o.notificationHeading), 1), a("p", Hr, g(f.text), 1)]),
2273
+ a("div", Ur, [a("button", {
1988
2274
  type: "button",
1989
2275
  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", {
1990
2276
  "bb:bg-red-50": f.isDangerous,
@@ -1992,9 +2278,9 @@ function Dr(e, t, o, c, l, f) {
1992
2278
  "bb:bg-gray-50": f.isConfirmation
1993
2279
  }]),
1994
2280
  onClick: t[0] ||= S((t) => e.$emit("update:modelValue", ""), ["prevent"])
1995
- }, [a("span", Er, g(e.texts.close), 1), s(v)], 2)])
1996
- ])])], 2)) : r("", !0)], 8, vr);
2281
+ }, [a("span", Wr, g(e.texts.close), 1), s(v)], 2)])
2282
+ ])])], 2)) : r("", !0)], 8, Ir);
1997
2283
  }
1998
- var Or = /*#__PURE__*/ j(_r, [["render", Dr]]);
2284
+ var Kr = /*#__PURE__*/ j(Fr, [["render", Gr]]);
1999
2285
  //#endregion
2000
- export { U as Closer, pn as ConfirmationModal, nr as DataTable, N as Dot, Wt as DownloadLink, wn as DropdownButtonWithAction, Pt as ErrorMessages, or as NavigationMenuElement, Or as NotificationMessage, lr as PageCard, R as PickDay, M as Popup, qe as RussianMobileFilter, et as Search, st as SelectDateInterval, wt as SelectSingle, H as SmallBadge, he as dashboardUi };
2286
+ export { _n as ConfirmationModal, gr as DataTable, ve as Dot, Jt as DownloadLink, Mn as DropdownButtonWithAction, Bt as ErrorMessages, Ln as HamburgerMenu, br as NavigationMenuElement, Kr as NotificationMessage, Dr as PageCard, Ie as RussianMobileFilter, Ue as Search, ft as SelectDateInterval, At as SelectSingle, G as SmallBadge, he as dashboardUi };