@profitliga/ui 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/components/v2/AlertDialog/AlertDialog.css +1 -1
  2. package/dist/components/v2/AlertDialog/AlertDialog.vue.js +2 -2
  3. package/dist/components/v2/AlertDialog/AlertDialog.vue2.js +52 -51
  4. package/dist/components/v2/BottomSheet/BottomSheet.css +1 -1
  5. package/dist/components/v2/BottomSheet/BottomSheet.vue.js +2 -2
  6. package/dist/components/v2/BottomSheet/BottomSheet.vue2.js +31 -29
  7. package/dist/components/v2/Button/Button.css +1 -1
  8. package/dist/components/v2/Button/Button.vue.js +2 -2
  9. package/dist/components/v2/Combobox/Combobox.css +1 -1
  10. package/dist/components/v2/Combobox/Combobox.types.d.ts +10 -2
  11. package/dist/components/v2/Combobox/Combobox.vue.js +1 -1
  12. package/dist/components/v2/Combobox/Combobox.vue2.js +118 -120
  13. package/dist/components/v2/Dialog/Dialog.css +1 -1
  14. package/dist/components/v2/Dialog/Dialog.vue.js +1 -1
  15. package/dist/components/v2/Dialog/Dialog.vue2.js +74 -72
  16. package/dist/components/v2/Drawer/Drawer.css +1 -1
  17. package/dist/components/v2/Drawer/Drawer.vue.js +1 -1
  18. package/dist/components/v2/Drawer/Drawer.vue2.js +44 -42
  19. package/dist/components/v2/Popover/Popover.css +1 -1
  20. package/dist/components/v2/Popover/Popover.types.d.ts +13 -0
  21. package/dist/components/v2/Popover/Popover.vue.d.ts +1 -0
  22. package/dist/components/v2/Popover/Popover.vue.js +2 -2
  23. package/dist/components/v2/Popover/Popover.vue2.js +34 -33
  24. package/dist/components/v2/Schedule/Schedule.css +1 -1
  25. package/dist/components/v2/Schedule/Schedule.vue.js +3 -3
  26. package/dist/components/v2/Schedule/Schedule.vue2.js +5 -4
  27. package/dist/components/v2/shared/useLayerZIndex.util.d.ts +10 -0
  28. package/dist/components/v2/shared/useLayerZIndex.util.js +25 -13
  29. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
- import { defineComponent as se, useModel as ae, useId as le, computed as g, useTemplateRef as F, reactive as K, ref as re, watch as de, onBeforeUnmount as fe, openBlock as h, createElementBlock as T, Fragment as ue, mergeProps as z, unref as c, renderSlot as S, createCommentVNode as A, createBlock as W, withCtx as U, createElementVNode as G, mergeModels as Z, nextTick as ce } from "vue";
1
+ import { defineComponent as se, useModel as ae, useId as le, computed as m, useTemplateRef as W, reactive as F, ref as re, watch as de, onBeforeUnmount as fe, openBlock as h, createElementBlock as T, Fragment as ue, mergeProps as z, unref as c, renderSlot as S, createCommentVNode as A, createBlock as K, withCtx as U, createElementVNode as G, mergeModels as Z, nextTick as ce } from "vue";
2
2
  import { onClickOutside as pe } from "../../../utils/onClickOutside.util.js";
3
- import { useFocusTrap as me } from "../../../utils/useFocusTrap.util.js";
3
+ import { useFocusTrap as ge } from "../../../utils/useFocusTrap.util.js";
4
4
  import ve from "../BottomSheet/BottomSheet.vue.js";
5
5
  import { ANIMATION_DURATION_MS as j } from "../shared/animation.const.js";
6
- import ge from "../shared/Portal.vue.js";
6
+ import me from "../shared/Portal.vue.js";
7
7
  import { useDelayedVisibility as he } from "../shared/useDelayedVisibility.util.js";
8
8
  import { useIsMobile as we } from "../shared/useIsMobile.util.js";
9
9
  import { useTestId as be } from "../shared/useTestId.util.js";
@@ -25,6 +25,7 @@ const Oe = { class: "popover-mobile" }, xe = ["role", "aria-label", "aria-labell
25
25
  labelledBy: { default: void 0 },
26
26
  triggerHasPopup: { default: "dialog" },
27
27
  triggerControls: { default: void 0 },
28
+ triggerWidth: { default: "full" },
28
29
  trapFocus: { type: Boolean, default: !0 },
29
30
  testId: { default: void 0 }
30
31
  }, {
@@ -32,14 +33,14 @@ const Oe = { class: "popover-mobile" }, xe = ["role", "aria-label", "aria-labell
32
33
  openModifiers: {}
33
34
  }),
34
35
  emits: /* @__PURE__ */ Z(["escapeKeyDown", "pointerDownOutside"], ["update:open"]),
35
- setup(a, { emit: q }) {
36
- const e = a, w = q, r = ae(a, "open"), H = we(e.breakpointMobile), E = `popover-content-${le()}`, I = be(() => e.testId), J = g(
36
+ setup(s, { emit: q }) {
37
+ const e = s, w = q, r = ae(s, "open"), H = we(e.breakpointMobile), E = `popover-content-${le()}`, I = be(() => e.testId), J = m(
37
38
  () => e.label || e.labelledBy ? "dialog" : void 0
38
39
  );
39
40
  function Q() {
40
41
  r.value = !r.value;
41
42
  }
42
- const X = g(() => ({
43
+ const X = m(() => ({
43
44
  "aria-haspopup": e.triggerHasPopup,
44
45
  "aria-expanded": r.value,
45
46
  "aria-controls": r.value ? E : void 0
@@ -47,25 +48,25 @@ const Oe = { class: "popover-mobile" }, xe = ["role", "aria-label", "aria-labell
47
48
  function N() {
48
49
  r.value = !1;
49
50
  }
50
- const Y = g(() => r.value && !H.value), b = F("triggerRef"), m = F("contentRef"), R = me(() => m.value);
51
+ const Y = m(() => r.value && !H.value), b = W("triggerRef"), g = W("contentRef"), R = ge(() => g.value);
51
52
  ye({
52
53
  host: () => b.value,
53
54
  isOpen: () => r.value,
54
55
  contentId: () => e.triggerControls ?? E,
55
56
  hasPopup: () => e.triggerHasPopup
56
57
  });
57
- const l = K({
58
+ const l = F({
58
59
  top: 0,
59
60
  left: 0,
60
61
  side: e.side
61
- }), y = K({ x: 0, y: 0 }), B = re(!1);
62
+ }), y = F({ x: 0, y: 0 }), B = re(!1);
62
63
  function _() {
63
- const o = b.value, s = m.value;
64
- if (!o || !s) return;
65
- const t = o.getBoundingClientRect(), n = s.getBoundingClientRect(), x = window.innerWidth, V = window.innerHeight, D = V - t.bottom, $ = t.top, C = t.left, L = x - t.right;
64
+ const o = b.value, a = g.value;
65
+ if (!o || !a) return;
66
+ const t = o.getBoundingClientRect(), n = a.getBoundingClientRect(), x = window.innerWidth, V = window.innerHeight, $ = V - t.bottom, D = t.top, C = t.left, L = x - t.right;
66
67
  let i = e.side;
67
68
  const M = i === "top" || i === "bottom" ? n.height : n.width;
68
- i === "bottom" && D < M + e.sideOffset && $ > D ? i = "top" : i === "top" && $ < M + e.sideOffset && D > $ ? i = "bottom" : i === "right" && L < M + e.sideOffset && C > L ? i = "left" : i === "left" && C < M + e.sideOffset && L > C && (i = "right");
69
+ i === "bottom" && $ < M + e.sideOffset && D > $ ? i = "top" : i === "top" && D < M + e.sideOffset && $ > D ? i = "bottom" : i === "right" && L < M + e.sideOffset && C > L ? i = "left" : i === "left" && C < M + e.sideOffset && L > C && (i = "right");
69
70
  let f, u;
70
71
  i === "bottom" || i === "top" ? (f = i === "bottom" ? t.bottom + e.sideOffset : t.top - n.height - e.sideOffset, e.align === "start" ? u = t.left + e.alignOffset : e.align === "end" ? u = t.right - n.width - e.alignOffset : u = t.left + t.width / 2 - n.width / 2 + e.alignOffset) : (u = i === "right" ? t.right + e.sideOffset : t.left - n.width - e.sideOffset, e.align === "start" ? f = t.top + e.alignOffset : e.align === "end" ? f = t.bottom - n.height - e.alignOffset : f = t.top + t.height / 2 - n.height / 2 + e.alignOffset), u = Math.min(
71
72
  Math.max(u, p),
@@ -81,19 +82,19 @@ const Oe = { class: "popover-mobile" }, xe = ["role", "aria-label", "aria-labell
81
82
  )
82
83
  ), l.top = f, l.left = u, l.side = i, y.x = t.left + t.width / 2, y.y = t.top + t.height / 2, B.value = !0;
83
84
  }
84
- const ee = g(() => ({
85
+ const ee = m(() => ({
85
86
  top: `${l.top}px`,
86
87
  left: `${l.left}px`,
87
88
  width: `${e.width}px`,
88
89
  visibility: B.value ? void 0 : "hidden",
89
90
  ...e.zIndex !== "auto" ? { zIndex: e.zIndex } : {}
90
- })), te = g(() => {
91
+ })), te = m(() => {
91
92
  if (l.side === "top" || l.side === "bottom") {
92
93
  const n = Math.max(12, e.width - 12 - k), x = y.x - l.left - k / 2;
93
94
  return { left: `${Math.min(Math.max(x, 12), n)}px` };
94
95
  }
95
- const o = m.value?.offsetHeight ?? 0, s = Math.max(12, o - 12 - k), t = y.y - l.top - k / 2;
96
- return { top: `${Math.min(Math.max(t, 12), s)}px` };
96
+ const o = g.value?.offsetHeight ?? 0, a = Math.max(12, o - 12 - k), t = y.y - l.top - k / 2;
97
+ return { top: `${Math.min(Math.max(t, 12), a)}px` };
97
98
  });
98
99
  function d() {
99
100
  ce(_);
@@ -117,31 +118,31 @@ const Oe = { class: "popover-mobile" }, xe = ["role", "aria-label", "aria-labell
117
118
  }
118
119
  );
119
120
  let O, v;
120
- return de(m, (o) => {
121
+ return de(g, (o) => {
121
122
  O?.(), v?.disconnect(), o ? (O = pe(o, oe, {
122
123
  ignore: [b]
123
124
  }), v = new ResizeObserver(d), v.observe(o)) : (O = void 0, v = void 0);
124
125
  }), fe(() => {
125
126
  O?.(), v?.disconnect(), document.removeEventListener("keydown", P), window.removeEventListener("resize", d), window.removeEventListener("scroll", d, !0), R.deactivate();
126
- }), (o, s) => (h(), T(ue, null, [
127
+ }), (o, a) => (h(), T(ue, null, [
127
128
  o.$slots.trigger ? (h(), T("span", z({
128
129
  key: 0,
129
130
  ref_key: "triggerRef",
130
131
  ref: b,
131
- class: "popover-trigger"
132
+ class: ["popover-trigger", `popover-trigger--${s.triggerWidth}`]
132
133
  }, c(I)("trigger"), { onClick: Q }), [
133
134
  S(o.$slots, "trigger", { props: X.value }, void 0, !0)
134
135
  ], 16)) : A("", !0),
135
- c(H) ? (h(), W(c(ve), {
136
+ c(H) ? (h(), K(c(ve), {
136
137
  key: 1,
137
138
  open: r.value,
138
- "onUpdate:open": s[0] || (s[0] = (t) => r.value = t),
139
- "disable-outside-pointer-events": a.disableOutsidePointerEvents,
140
- label: a.label,
141
- "labelled-by": a.labelledBy,
142
- "test-id": a.testId,
143
- onEscapeKeyDown: s[1] || (s[1] = (t) => w("escapeKeyDown", t)),
144
- onPointerDownOutside: s[2] || (s[2] = (t) => w("pointerDownOutside", t))
139
+ "onUpdate:open": a[0] || (a[0] = (t) => r.value = t),
140
+ "disable-outside-pointer-events": s.disableOutsidePointerEvents,
141
+ label: s.label,
142
+ "labelled-by": s.labelledBy,
143
+ "test-id": s.testId,
144
+ onEscapeKeyDown: a[1] || (a[1] = (t) => w("escapeKeyDown", t)),
145
+ onPointerDownOutside: a[2] || (a[2] = (t) => w("pointerDownOutside", t))
145
146
  }, {
146
147
  default: U(() => [
147
148
  G("div", Oe, [
@@ -149,20 +150,20 @@ const Oe = { class: "popover-mobile" }, xe = ["role", "aria-label", "aria-labell
149
150
  ])
150
151
  ]),
151
152
  _: 3
152
- }, 8, ["open", "disable-outside-pointer-events", "label", "labelled-by", "test-id"])) : c(ie) ? (h(), W(ge, { key: 2 }, {
153
+ }, 8, ["open", "disable-outside-pointer-events", "label", "labelled-by", "test-id"])) : c(ie) ? (h(), K(me, { key: 2 }, {
153
154
  default: U(() => [
154
155
  G("div", z({
155
156
  id: E,
156
157
  ref_key: "contentRef",
157
- ref: m,
158
+ ref: g,
158
159
  role: J.value,
159
- "aria-label": a.labelledBy ? void 0 : a.label,
160
- "aria-labelledby": a.labelledBy,
160
+ "aria-label": s.labelledBy ? void 0 : s.label,
161
+ "aria-labelledby": s.labelledBy,
161
162
  "data-state": c(ne),
162
163
  class: "popover-content",
163
164
  style: ee.value
164
165
  }, { ...o.$attrs, ...c(I)("content") }), [
165
- a.arrow ? (h(), T("div", z({
166
+ s.arrow ? (h(), T("div", z({
166
167
  key: 0,
167
168
  class: ["popover-arrow", `popover-arrow--${l.side}`],
168
169
  style: te.value
@@ -1 +1 @@
1
- .schedule-field[data-v-c5e69a0e]{max-width:100%;height:var(--input-height);background-color:var(--theme-neutral-0);border:1px solid var(--input-border-color);padding:var(--input-padding);cursor:pointer;border-radius:8px;justify-content:flex-start;align-items:center;gap:4px;display:flex;overflow:hidden}.schedule-field[data-v-c5e69a0e]:hover{border-color:var(--input-border-color-hover)}.schedule-field__main[data-v-c5e69a0e]{min-width:0;height:100%;font:inherit;text-align:left;cursor:inherit;background:0 0;border:none;flex:auto;justify-content:flex-start;align-items:center;gap:4px;padding:0;display:flex}.schedule-field__main[data-v-c5e69a0e]:focus-visible{outline:2px solid var(--theme-primary-500);outline-offset:-2px}.schedule-field__main[data-v-c5e69a0e]:disabled{cursor:not-allowed}.schedule-field--open[data-v-c5e69a0e]{border-color:var(--input-border-color-focus)}.schedule-field--disabled[data-v-c5e69a0e]{cursor:not-allowed;opacity:.6}.schedule-field--small[data-v-c5e69a0e]{height:var(--input-height-small)}.schedule-field--large[data-v-c5e69a0e]{height:var(--input-height-large)}.schedule-field__icon[data-v-c5e69a0e]{color:var(--theme-neutral-icon-caption);flex:none}.schedule-field__placeholder[data-v-c5e69a0e],.schedule-field__value[data-v-c5e69a0e]{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:var(--input-font-size);overflow:hidden}.schedule-field__placeholder[data-v-c5e69a0e]{color:var(--input-color-placeholder)}.schedule-field__value[data-v-c5e69a0e]{color:var(--theme-neutral-text-body)}.schedule-field__clear[data-v-c5e69a0e]{width:16px;height:16px;color:var(--color-neutral-text-caption);cursor:pointer;background:0 0;border:none;flex:none;margin-left:auto;padding:0}.schedule-field__clear[data-v-c5e69a0e]:focus-visible{outline:2px solid var(--theme-primary-500);outline-offset:2px}.schedule-field__clear svg[data-v-c5e69a0e]{width:100%;height:100%}.schedule-field__clear[data-v-c5e69a0e]:hover{color:var(--color-error-500)}.schedule-panel[data-v-c5e69a0e]{flex-direction:column;gap:20px;padding:24px;display:flex}.schedule-panel--mobile[data-v-c5e69a0e]{gap:16px;padding:0 16px 16px}.schedule-panel__header[data-v-c5e69a0e]{justify-content:space-between;align-items:center;gap:8px;display:flex}.schedule-panel__title[data-v-c5e69a0e]{color:var(--theme-neutral-text-title);font-size:1.125rem;font-weight:500;line-height:1.5}.schedule-panel__close[data-v-c5e69a0e]{width:24px;height:24px;color:var(--theme-neutral-text-title);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.schedule-panel__close[data-v-c5e69a0e]:focus-visible{outline:2px solid var(--theme-primary-500);outline-offset:2px}.schedule-panel__rows[data-v-c5e69a0e]{flex-direction:column;gap:12px;display:flex}.schedule-row[data-v-c5e69a0e]{align-items:center;gap:12px;display:flex}.schedule-row__day[data-v-c5e69a0e]{cursor:pointer;flex:0 0 120px;align-items:center;gap:8px;min-width:0;display:flex;position:relative}.schedule-row__checkbox[data-v-c5e69a0e]{opacity:0;cursor:pointer;width:20px;height:20px;margin:0;position:absolute}.schedule-row__checkbox:checked+.schedule-row__box[data-v-c5e69a0e]{background-color:var(--theme-primary-500);border-color:var(--theme-primary-500);color:var(--theme-neutral-icon-negative)}.schedule-row__checkbox:checked+.schedule-row__box svg[data-v-c5e69a0e]{opacity:1}.schedule-row__checkbox:hover+.schedule-row__box[data-v-c5e69a0e]{border-color:var(--input-border-color-hover)}.schedule-row__checkbox:focus-visible+.schedule-row__box[data-v-c5e69a0e]{outline:2px solid var(--theme-primary-500);outline-offset:2px}.schedule-row__box[data-v-c5e69a0e]{background-color:var(--theme-neutral-0);border:1px solid var(--theme-neutral-border-default);width:20px;height:20px;transition:background-color var(--animation-duration-fast) ease, border-color var(--animation-duration-fast) ease;border-radius:5px;flex:none;justify-content:center;align-items:center;display:flex}.schedule-row__box svg[data-v-c5e69a0e]{opacity:0;transition:opacity var(--animation-duration-fast) ease}.schedule-row__label[data-v-c5e69a0e]{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--theme-neutral-text-subtitle);font-size:.75rem;line-height:1rem;overflow:hidden}.schedule-row__times[data-v-c5e69a0e]{flex:auto;align-items:center;gap:6px;min-width:0;display:flex}.schedule-row__preposition[data-v-c5e69a0e]{color:var(--theme-neutral-text-body);flex:none;font-size:.75rem;line-height:1rem}
1
+ .schedule-field[data-v-7ca326fb]{max-width:100%;height:var(--input-height);background-color:var(--theme-neutral-0);border:1px solid var(--input-border-color);padding:var(--input-padding);cursor:pointer;border-radius:8px;justify-content:flex-start;align-items:center;gap:4px;display:flex;overflow:hidden}.schedule-field[data-v-7ca326fb]:hover{border-color:var(--input-border-color-hover)}.schedule-field__main[data-v-7ca326fb]{min-width:0;height:100%;font:inherit;text-align:left;cursor:inherit;background:0 0;border:none;flex:auto;justify-content:flex-start;align-items:center;gap:4px;padding:0;display:flex}.schedule-field__main[data-v-7ca326fb]:focus-visible{outline:2px solid var(--theme-primary-500);outline-offset:-2px}.schedule-field__main[data-v-7ca326fb]:disabled{cursor:not-allowed}.schedule-field--open[data-v-7ca326fb]{border-color:var(--input-border-color-focus)}.schedule-field--disabled[data-v-7ca326fb]{cursor:not-allowed;opacity:.6}.schedule-field--small[data-v-7ca326fb]{height:var(--input-height-small)}.schedule-field--large[data-v-7ca326fb]{height:var(--input-height-large)}.schedule-field__icon[data-v-7ca326fb]{color:var(--theme-neutral-icon-caption);flex:none}.schedule-field__placeholder[data-v-7ca326fb],.schedule-field__value[data-v-7ca326fb]{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:var(--input-font-size);overflow:hidden}.schedule-field__placeholder[data-v-7ca326fb]{color:var(--input-color-placeholder)}.schedule-field__value[data-v-7ca326fb]{color:var(--theme-neutral-text-body)}.schedule-field__clear[data-v-7ca326fb]{width:16px;height:16px;color:var(--color-neutral-text-caption);cursor:pointer;background:0 0;border:none;flex:none;margin-left:auto;padding:0}.schedule-field__clear[data-v-7ca326fb]:focus-visible{outline:2px solid var(--theme-primary-500);outline-offset:2px}.schedule-field__clear svg[data-v-7ca326fb]{width:100%;height:100%}.schedule-field__clear[data-v-7ca326fb]:hover{color:var(--color-error-500)}.schedule-panel[data-v-7ca326fb]{flex-direction:column;gap:20px;padding:24px;display:flex}.schedule-panel--mobile[data-v-7ca326fb]{gap:16px;padding:0 16px 16px}.schedule-panel__header[data-v-7ca326fb]{justify-content:space-between;align-items:center;gap:8px;display:flex}.schedule-panel__title[data-v-7ca326fb]{color:var(--theme-neutral-text-title);font-size:1.125rem;font-weight:500;line-height:1.5}.schedule-panel__close[data-v-7ca326fb]{width:24px;height:24px;color:var(--theme-neutral-text-title);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.schedule-panel__close[data-v-7ca326fb]:focus-visible{outline:2px solid var(--theme-primary-500);outline-offset:2px}.schedule-panel__rows[data-v-7ca326fb]{flex-direction:column;gap:12px;display:flex}.schedule-row[data-v-7ca326fb]{align-items:center;gap:12px;display:flex}.schedule-row__day[data-v-7ca326fb]{cursor:pointer;flex:0 0 120px;align-items:center;gap:8px;min-width:0;display:flex;position:relative}.schedule-row__checkbox[data-v-7ca326fb]{opacity:0;cursor:pointer;width:20px;height:20px;margin:0;position:absolute}.schedule-row__checkbox:checked+.schedule-row__box[data-v-7ca326fb]{background-color:var(--theme-primary-500);border-color:var(--theme-primary-500);color:var(--theme-neutral-icon-negative)}.schedule-row__checkbox:checked+.schedule-row__box svg[data-v-7ca326fb]{opacity:1}.schedule-row__checkbox:hover+.schedule-row__box[data-v-7ca326fb]{border-color:var(--input-border-color-hover)}.schedule-row__checkbox:focus-visible+.schedule-row__box[data-v-7ca326fb]{outline:2px solid var(--theme-primary-500);outline-offset:2px}.schedule-row__box[data-v-7ca326fb]{background-color:var(--theme-neutral-0);border:1px solid var(--theme-neutral-border-default);width:20px;height:20px;transition:background-color var(--animation-duration-fast) ease, border-color var(--animation-duration-fast) ease;border-radius:5px;flex:none;justify-content:center;align-items:center;display:flex}.schedule-row__box svg[data-v-7ca326fb]{opacity:0;transition:opacity var(--animation-duration-fast) ease}.schedule-row__label[data-v-7ca326fb]{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--theme-neutral-text-subtitle);font-size:.75rem;line-height:1rem;overflow:hidden}.schedule-row__times[data-v-7ca326fb]{flex:auto;align-items:center;gap:6px;min-width:0;display:flex}.schedule-row__preposition[data-v-7ca326fb]{color:var(--theme-neutral-text-body);flex:none;font-size:.75rem;line-height:1rem}
@@ -1,8 +1,8 @@
1
1
  import './Schedule.css';
2
2
  import o from "./Schedule.vue2.js";
3
3
  /* empty css */
4
- import e from "../../../_virtual/_plugin-vue_export-helper.js";
5
- const c = /* @__PURE__ */ e(o, [["__scopeId", "data-v-c5e69a0e"]]);
4
+ import t from "../../../_virtual/_plugin-vue_export-helper.js";
5
+ const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-7ca326fb"]]);
6
6
  export {
7
- c as default
7
+ e as default
8
8
  };
@@ -39,8 +39,8 @@ const ce = ["disabled", "aria-label"], fe = {
39
39
  modelModifiers: {}
40
40
  }),
41
41
  emits: /* @__PURE__ */ B(["apply"], ["update:modelValue"]),
42
- setup(n, { emit: z }) {
43
- const d = n, F = z, p = X(n, "modelValue"), c = ue(() => d.testId), S = `schedule-title-${q()}`, b = M(!1), V = ie(d.breakpointMobile), $ = y(() => d.labels?.title ?? "Расписание"), g = y(() => d.labels?.from ?? "с"), N = y(() => d.labels?.to ?? "до"), O = y(
42
+ setup(n, { emit: g }) {
43
+ const d = n, z = g, p = X(n, "modelValue"), c = ue(() => d.testId), S = `schedule-title-${q()}`, b = M(!1), V = ie(d.breakpointMobile), $ = y(() => d.labels?.title ?? "Расписание"), F = y(() => d.labels?.from ?? "с"), N = y(() => d.labels?.to ?? "до"), O = y(
44
44
  () => d.width === "full" ? "100%" : `${d.width}px`
45
45
  );
46
46
  function C(t) {
@@ -106,7 +106,7 @@ const ce = ["disabled", "aria-label"], fe = {
106
106
  a.active && (t[e] = { from: a.from, to: a.to });
107
107
  }
108
108
  const s = Object.keys(t).length > 0 ? t : null;
109
- p.value = s, F("apply", s), b.value = !1;
109
+ p.value = s, z("apply", s), b.value = !1;
110
110
  }
111
111
  function j() {
112
112
  p.value = null, u.value = C(null);
@@ -118,6 +118,7 @@ const ce = ["disabled", "aria-label"], fe = {
118
118
  align: "start",
119
119
  arrow: !1,
120
120
  width: Ce,
121
+ "trigger-width": "content",
121
122
  "breakpoint-mobile": n.breakpointMobile,
122
123
  label: l(V) ? void 0 : $.value,
123
124
  "labelled-by": l(V) ? S : void 0,
@@ -201,7 +202,7 @@ const ce = ["disabled", "aria-label"], fe = {
201
202
  i("span", we, h(n.dayLabels?.[e] ?? l(E)[e]), 1)
202
203
  ]),
203
204
  i("div", ke, [
204
- i("span", Le, h(g.value), 1),
205
+ i("span", Le, h(F.value), 1),
205
206
  v(I, f({
206
207
  modelValue: u.value[e].from,
207
208
  "onUpdate:modelValue": (a) => u.value[e].from = a,
@@ -17,5 +17,15 @@ export interface UseLayerZIndexReturn {
17
17
  zIndex: Ref<number | undefined>;
18
18
  acquire: () => void;
19
19
  release: () => void;
20
+ /** Элемент контента слоя — источник для чужого `elementsAbove()`. */
21
+ registerElement: (el: HTMLElement | null) => void;
22
+ /**
23
+ * DOM-элементы слоёв, открытых позже текущего (значит, лежащих выше по
24
+ * z-index) — например, ConfirmDialog поверх BottomSheet. Передавать в
25
+ * `onClickOutside` как `ignore`: клик по вложенному слою не должен
26
+ * считаться «кликом вне» текущего — иначе закрытие вложенного окна
27
+ * утаскивало бы за собой и родителя.
28
+ */
29
+ elementsAbove: () => HTMLElement[];
20
30
  }
21
31
  export declare function useLayerZIndex(): UseLayerZIndexReturn;
@@ -1,18 +1,30 @@
1
- import { ref as u, onBeforeUnmount as a } from "vue";
2
- const i = 1e3, f = 10;
3
- let n = 0, o = 0;
4
- function l() {
5
- const e = u();
6
- function r() {
7
- e.value === void 0 && (n++, o++, e.value = i + o * f);
1
+ import { ref as a, onBeforeUnmount as d } from "vue";
2
+ const v = 1e3, x = 10;
3
+ let i = 0, u = 0;
4
+ const o = [];
5
+ function m() {
6
+ const t = a();
7
+ let e;
8
+ function f() {
9
+ t.value === void 0 && (i++, u++, t.value = v + u * x, e = { zIndex: t.value, el: null }, o.push(e));
8
10
  }
9
- function t() {
10
- e.value !== void 0 && (e.value = void 0, n = Math.max(0, n - 1), n === 0 && (o = 0));
11
+ function l() {
12
+ if (t.value !== void 0 && (t.value = void 0, i = Math.max(0, i - 1), i === 0 && (u = 0), e)) {
13
+ const n = o.indexOf(e);
14
+ n !== -1 && o.splice(n, 1), e = void 0;
15
+ }
11
16
  }
12
- return a(t), { zIndex: e, acquire: r, release: t };
17
+ function s(n) {
18
+ e && (e.el = n);
19
+ }
20
+ function c() {
21
+ const n = e;
22
+ return n ? o.filter((r) => r !== n && r.zIndex > n.zIndex).map((r) => r.el).filter((r) => r !== null) : [];
23
+ }
24
+ return d(l), { zIndex: t, acquire: f, release: l, registerElement: s, elementsAbove: c };
13
25
  }
14
26
  export {
15
- i as LAYER_BASE_Z_INDEX,
16
- f as LAYER_Z_INDEX_STEP,
17
- l as useLayerZIndex
27
+ v as LAYER_BASE_Z_INDEX,
28
+ x as LAYER_Z_INDEX_STEP,
29
+ m as useLayerZIndex
18
30
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profitliga/ui",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "author": "Profit League<dev@pr-lg.ru>",
5
5
  "license": "MIT",
6
6
  "description": "Vue 3 UI component library with TypeScript and SCSS",