@zealsolutions/zeal-ui 1.0.0-alpha.360 → 1.0.0-alpha.362

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.
@@ -0,0 +1,115 @@
1
+ import { ref as r, onUnmounted as M, openBlock as y, createElementBlock as L, Fragment as z, createElementVNode as m, renderSlot as B, createBlock as X, Teleport as D, withDirectives as N, normalizeStyle as $, createTextVNode as C, toDisplayString as F, normalizeClass as P, vShow as V, nextTick as Y } from "vue";
2
+ const s = r(null);
3
+ function q() {
4
+ function e(t) {
5
+ s.value && s.value !== t && s.value.hideImmediate(), s.value = t;
6
+ }
7
+ function n(t) {
8
+ s.value === t && (s.value = null);
9
+ }
10
+ return {
11
+ register: e,
12
+ unregister: n
13
+ };
14
+ }
15
+ function H({ rect: e, scrollX: n = 0, scrollY: t = 0, position: v = "top", offset: u = 20 }) {
16
+ const l = v === "bottom", c = e.left + n + e.width / 2, p = l ? e.bottom + t + u : e.top + t - u;
17
+ return {
18
+ top: `${Math.round(p)}px`,
19
+ left: `${Math.round(c)}px`,
20
+ transform: l ? "translateX(-50%)" : "translateX(-50%) translateY(-100%)",
21
+ position: "absolute",
22
+ pointerEvents: "none"
23
+ };
24
+ }
25
+ const I = { class: "px-4 py-2 text-center pointer-events-none" }, U = {
26
+ __name: "Tooltip",
27
+ props: {
28
+ text: {
29
+ type: String,
30
+ required: !0
31
+ },
32
+ position: {
33
+ type: String,
34
+ default: "top"
35
+ // 'top', 'bottom', 'left', 'right'
36
+ },
37
+ offset: {
38
+ type: Number,
39
+ default: 20
40
+ // Offset from the trigger element
41
+ }
42
+ },
43
+ setup(e) {
44
+ const n = e, { register: t, unregister: v } = q(), u = {
45
+ hideImmediate: w
46
+ }, l = r(!1);
47
+ let c = null, p = null;
48
+ const d = r(!1), b = r(null), T = r(null), g = r({ top: "0px", left: "0px" });
49
+ function h() {
50
+ const o = b.value, i = T.value;
51
+ if (!o || !i)
52
+ return;
53
+ const a = o.getBoundingClientRect(), k = window.scrollY || document.documentElement.scrollTop, S = window.scrollX || document.documentElement.scrollLeft;
54
+ g.value = H({ rect: a, scrollX: S, scrollY: k, position: n.position, offset: n.offset });
55
+ }
56
+ function f() {
57
+ clearTimeout(p), p = setTimeout(() => {
58
+ h();
59
+ }, 50);
60
+ }
61
+ function E() {
62
+ d.value || (clearTimeout(c), t(u), l.value = !0, d.value = !0, Y(() => {
63
+ setTimeout(() => {
64
+ h();
65
+ }, 0);
66
+ }), window.addEventListener("scroll", f), window.addEventListener("resize", f));
67
+ }
68
+ function x() {
69
+ l.value = !1, c = setTimeout(() => {
70
+ l.value || w();
71
+ }, 100);
72
+ }
73
+ function w() {
74
+ d.value = !1, v(u), window.removeEventListener("scroll", f), window.removeEventListener("resize", f);
75
+ }
76
+ return M(() => {
77
+ w();
78
+ }), (o, i) => (y(), L(z, null, [
79
+ m("span", {
80
+ ref_key: "triggerEl",
81
+ ref: b,
82
+ onMouseenter: E,
83
+ onMouseleave: x,
84
+ onFocus: i[0] || (i[0] = (...a) => o.showTooltip && o.showTooltip(...a)),
85
+ onBlur: i[1] || (i[1] = (...a) => o.hideTooltip && o.hideTooltip(...a)),
86
+ tabindex: "0",
87
+ class: "inline-block will-change"
88
+ }, [
89
+ B(o.$slots, "default")
90
+ ], 544),
91
+ (y(), X(D, { to: "body" }, [
92
+ N(m("div", {
93
+ class: "absolute z-50 bg-black-950 text-white font-semibold text-xs text-center rounded whitespace-nowrap pointer-events-none transition-none",
94
+ style: $(g.value),
95
+ ref_key: "tooltipEl",
96
+ ref: T,
97
+ onMouseenter: E,
98
+ onMouseleave: x
99
+ }, [
100
+ m("div", I, [
101
+ C(F(e.text) + " ", 1),
102
+ m("span", {
103
+ class: P(["absolute left-1/2 w-2 h-2 bg-black-950 rotate-45 -translate-x-1/2 pointer-events-none", e.position === "bottom" ? "-top-1" : "-bottom-1"])
104
+ }, null, 2)
105
+ ])
106
+ ], 36), [
107
+ [V, d.value]
108
+ ])
109
+ ]))
110
+ ], 64));
111
+ }
112
+ };
113
+ export {
114
+ U as _
115
+ };
@@ -1,16 +1,17 @@
1
- import { openBlock as a, createElementBlock as u, createVNode as T, createElementVNode as r, createTextVNode as j, mergeModels as te, useModel as ke, getCurrentInstance as ie, ref as k, computed as $, watch as K, nextTick as ne, onMounted as ge, onBeforeUnmount as we, createBlock as E, Teleport as Ce, withModifiers as N, withDirectives as G, vModelText as $e, createCommentVNode as v, normalizeClass as M, toDisplayString as b, Fragment as H, renderList as P, normalizeStyle as q, pushScopeId as Se, popScopeId as _e, Transition as ce, withCtx as ue, resolveDynamicComponent as de, unref as F, vShow as pe, renderSlot as V } from "vue";
1
+ import { openBlock as a, createElementBlock as u, createVNode as T, createElementVNode as r, createTextVNode as j, mergeModels as ne, useModel as ke, getCurrentInstance as ce, ref as k, computed as $, watch as K, nextTick as oe, onMounted as ge, onBeforeUnmount as we, createBlock as I, Teleport as Ce, withModifiers as N, withDirectives as G, vModelText as $e, createCommentVNode as v, normalizeClass as M, toDisplayString as b, Fragment as H, renderList as P, normalizeStyle as q, pushScopeId as Se, popScopeId as _e, Transition as ue, withCtx as F, resolveDynamicComponent as de, unref as Q, vShow as pe, renderSlot as R } from "vue";
2
2
  import Me from "../../HouseIcon-BxmNyxvv.js";
3
3
  import Te from "../../ArrowLeftIcon-Cgsy08pY.js";
4
+ import { _ as Ae } from "../../Tooltip-CQjz2EXM.js";
4
5
  import fe from "../../MagnifyingGlassIcon-ChYNIA-H.js";
5
- import { _ as Ae } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
6
+ import { _ as Ie } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
6
7
  import { o as xe } from "../../index-D9ihCfA2.js";
7
- import oe from "../../BellIcon-lK5EZXNf.js";
8
- import Ie from "../../CircleCheckIcon-CA15yXgI.js";
9
- import Ee from "../../XMarkIcon-DKJ_--uA.js";
10
- const Ne = /* @__PURE__ */ r("span", { class: "hidden whitespace-nowrap sm:inline" }, "Search", -1), He = /* @__PURE__ */ r("kbd", { class: "zui-search-kbd hidden items-center gap-px rounded border-[1px] border-proclusteal-300 dark:border-line bg-proclusteal-100 dark:bg-surface px-[5px] py-0.5 font-sans text-[11px] font-bold leading-none text-proclusteal-500 dark:text-content-muted sm:inline-flex" }, [
8
+ import ae from "../../BellIcon-lK5EZXNf.js";
9
+ import Ee from "../../CircleCheckIcon-CA15yXgI.js";
10
+ import Ne from "../../XMarkIcon-DKJ_--uA.js";
11
+ const He = /* @__PURE__ */ r("span", { class: "hidden whitespace-nowrap sm:inline" }, "Search", -1), Oe = /* @__PURE__ */ r("kbd", { class: "zui-search-kbd hidden items-center gap-px rounded border-[1px] border-proclusteal-300 dark:border-line bg-proclusteal-100 dark:bg-surface px-[5px] py-0.5 font-sans text-[11px] font-bold leading-none text-proclusteal-500 dark:text-content-muted sm:inline-flex" }, [
11
12
  /* @__PURE__ */ r("span", null, "⌘"),
12
13
  /* @__PURE__ */ j("K ")
13
- ], -1), Oe = {
14
+ ], -1), Le = {
14
15
  __name: "GlobalSearchPill",
15
16
  emits: ["click"],
16
17
  setup(e) {
@@ -22,8 +23,8 @@ const Ne = /* @__PURE__ */ r("span", { class: "hidden whitespace-nowrap sm:inlin
22
23
  onClick: o[0] || (o[0] = (y) => i.$emit("click"))
23
24
  }, [
24
25
  T(fe, { class: "!h-[15px] !w-[15px] flex-none text-proclusteal-950 dark:text-focus" }),
25
- Ne,
26
- He
26
+ He,
27
+ Oe
27
28
  ]));
28
29
  }
29
30
  }, D = {
@@ -39,15 +40,15 @@ const Ne = /* @__PURE__ */ r("span", { class: "hidden whitespace-nowrap sm:inlin
39
40
  EDS: { label: "Equipment Data", colour: "#708090", icon: '<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><rect x="8" y="2" width="8" height="4" rx="1" ry="1"/><line x1="8" y1="12" x2="16" y2="12"/><line x1="8" y1="16" x2="14" y2="16"/>' },
40
41
  TIS: { label: "Training Sheets", colour: "#4682b4", icon: '<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/>' },
41
42
  Training: { label: "Training", colour: "#3f7cac", icon: '<path d="M22 10 12 5 2 10l10 5 10-5z"/><path d="M6 12v5c0 1 2.7 3 6 3s6-2 6-3v-5"/>' }
42
- }, Le = {
43
+ }, ze = {
43
44
  colour: "#9aa4ad",
44
45
  icon: '<circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>'
45
46
  };
46
- function ze(e, i = {}) {
47
+ function De(e, i = {}) {
47
48
  const o = { ...D, ...i };
48
- return Object.prototype.hasOwnProperty.call(o, e) ? o[e] : { ...Le, label: e };
49
+ return Object.prototype.hasOwnProperty.call(o, e) ? o[e] : { ...ze, label: e };
49
50
  }
50
- function De(e) {
51
+ function je(e) {
51
52
  return (e == null ? "" : String(e)).replace(/[&<>"']/g, (i) => ({
52
53
  "&": "&amp;",
53
54
  "<": "&lt;",
@@ -76,23 +77,23 @@ function O(e) {
76
77
  }
77
78
  return o.protocol === "http:" || o.protocol === "https:" ? i : "";
78
79
  }
79
- function je(e) {
80
+ function Pe(e) {
80
81
  return String(e || "").toLowerCase().split(/\s+/).filter((i) => i.length >= 2);
81
82
  }
82
- function ae(e, i) {
83
- const o = De(e);
83
+ function re(e, i) {
84
+ const o = je(e);
84
85
  if (!i || !i.length)
85
86
  return o;
86
87
  const y = new RegExp(`(${i.map((p) => p.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})`, "ig");
87
88
  return o.replace(y, "<mark>$1</mark>");
88
89
  }
89
- const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-search-field flex items-center gap-2.5 border-b-[1px] border-proclusteal-200 dark:border-line px-4 py-3.5" }, Be = ["placeholder"], Re = {
90
+ const Ue = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Be = { class: "zui-search-field flex items-center gap-2.5 border-b-[1px] border-proclusteal-200 dark:border-line px-4 py-3.5" }, Re = ["placeholder"], Ve = {
90
91
  key: 0,
91
92
  class: "px-[18px] pb-0.5 pt-3.5 text-[15px] font-extrabold text-[#1e262c] dark:text-content"
92
- }, Ve = {
93
+ }, Ke = {
93
94
  key: 1,
94
95
  class: "border-b-[1px] border-proclusteal-200 dark:border-line px-[18px] pb-3 pt-2.5"
95
- }, Ke = ["onClick"], qe = { class: "zui-search-group sticky top-0 z-[1] border-t-[1px] border-proclusteal-200 dark:border-line bg-proclusteal-150 dark:bg-surface px-[18px] py-2 text-[12px] font-extrabold tracking-[0.3px] text-proclusteal-700 dark:text-content" }, Ge = { class: "ml-0.5 text-[#667079] dark:text-content-muted" }, Fe = ["href", "data-row-idx", "onClick", "onMouseenter"], Qe = ["innerHTML"], Ye = { class: "min-w-0 flex-1" }, Xe = ["innerHTML"], Je = ["innerHTML"], We = /* @__PURE__ */ Pe(() => /* @__PURE__ */ r("svg", {
96
+ }, qe = ["onClick"], Ge = { class: "zui-search-group sticky top-0 z-[1] border-t-[1px] border-proclusteal-200 dark:border-line bg-proclusteal-150 dark:bg-surface px-[18px] py-2 text-[12px] font-extrabold tracking-[0.3px] text-proclusteal-700 dark:text-content" }, Fe = { class: "ml-0.5 text-[#667079] dark:text-content-muted" }, Qe = ["href", "data-row-idx", "onClick", "onMouseenter"], Ye = ["innerHTML"], Xe = { class: "min-w-0 flex-1" }, Je = ["innerHTML"], We = ["innerHTML"], Ze = /* @__PURE__ */ Ue(() => /* @__PURE__ */ r("svg", {
96
97
  class: "h-4 w-4 flex-none text-[#c2cad1] dark:text-content-muted",
97
98
  viewBox: "0 0 24 24",
98
99
  fill: "none",
@@ -102,9 +103,9 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
102
103
  "stroke-linejoin": "round"
103
104
  }, [
104
105
  /* @__PURE__ */ r("polyline", { points: "9 18 15 12 9 6" })
105
- ], -1)), re = "zui-search-chip mb-2 mr-2 inline-flex cursor-pointer items-center gap-[7px] rounded-[20px] border-[1px] border-[#dde3e8] dark:border-line bg-[#f4f6f8] dark:bg-surface px-3.5 py-1.5 text-[13px] font-bold text-proclusteal-700 dark:text-content hover:border-proclusteal-950 dark:hover:border-focus", le = "!border-proclusteal-950 !bg-proclusteal-950 !text-white", R = "zui-search-state px-5 py-[26px] text-center text-[13px] font-medium text-[#667079] dark:text-content-muted", Ze = {
106
+ ], -1)), le = "zui-search-chip mb-2 mr-2 inline-flex cursor-pointer items-center gap-[7px] rounded-[20px] border-[1px] border-[#dde3e8] dark:border-line bg-[#f4f6f8] dark:bg-surface px-3.5 py-1.5 text-[13px] font-bold text-proclusteal-700 dark:text-content hover:border-proclusteal-950 dark:hover:border-focus", se = "!border-proclusteal-950 !bg-proclusteal-950 !text-white", V = "zui-search-state px-5 py-[26px] text-center text-[13px] font-medium text-[#667079] dark:text-content-muted", et = {
106
107
  __name: "GlobalSearchModal",
107
- props: /* @__PURE__ */ te({
108
+ props: /* @__PURE__ */ ne({
108
109
  searchProvider: {
109
110
  type: Function,
110
111
  required: !0
@@ -129,45 +130,45 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
129
130
  open: { type: Boolean, default: !1 },
130
131
  openModifiers: {}
131
132
  }),
132
- emits: /* @__PURE__ */ te(["navigate"], ["update:open"]),
133
+ emits: /* @__PURE__ */ ne(["navigate"], ["update:open"]),
133
134
  setup(e, { emit: i }) {
134
- const o = e, y = i, p = ke(e, "open"), x = ie(), w = k(null), _ = k(null), A = k(null), g = k(""), S = k(""), m = k([]), f = k("all"), n = k("zero"), c = k(-1);
135
- let d = null, C = 0, L = null, I = null;
136
- const Q = $(() => je(S.value)), Y = (t) => ze(t, o.types), X = $(() => {
135
+ const o = e, y = i, p = ke(e, "open"), x = ce(), w = k(null), _ = k(null), A = k(null), g = k(""), S = k(""), m = k([]), f = k("all"), n = k("zero"), c = k(-1);
136
+ let d = null, C = 0, L = null, E = null;
137
+ const Y = $(() => Pe(S.value)), X = (t) => De(t, o.types), J = $(() => {
137
138
  let t = 0;
138
139
  return m.value.filter((s) => f.value === "all" || s.type === f.value).map((s) => {
139
- const l = Y(s.type);
140
+ const l = X(s.type);
140
141
  return {
141
142
  type: s.type,
142
143
  label: l.label,
143
144
  items: s.items.map((h) => ({
144
145
  url: O(h.Url),
145
- titleHtml: ae(h.Title, Q.value),
146
- subtitleHtml: ae(h.Subtitle, Q.value),
146
+ titleHtml: re(h.Title, Y.value),
147
+ subtitleHtml: re(h.Subtitle, Y.value),
147
148
  tileColour: he(h.Colour) || l.colour,
148
149
  tileIcon: l.icon,
149
150
  flatIdx: t++
150
151
  }))
151
152
  };
152
153
  });
153
- }), J = $(() => X.value.flatMap((t) => t.items)), ye = $(() => m.value.reduce((t, s) => t + s.items.length, 0));
154
+ }), W = $(() => J.value.flatMap((t) => t.items)), ye = $(() => m.value.reduce((t, s) => t + s.items.length, 0));
154
155
  function U(t) {
155
- const s = J.value;
156
+ const s = W.value;
156
157
  if (!s.length) {
157
158
  c.value = -1;
158
159
  return;
159
160
  }
160
- c.value = Math.min(Math.max(t, 0), s.length - 1), ne(() => {
161
+ c.value = Math.min(Math.max(t, 0), s.length - 1), oe(() => {
161
162
  var h;
162
163
  const l = (h = A.value) == null ? void 0 : h.querySelector(`[data-row-idx="${c.value}"]`);
163
164
  l == null || l.scrollIntoView({ block: "nearest" });
164
165
  });
165
166
  }
166
- function W(t) {
167
+ function Z(t) {
167
168
  var s;
168
169
  f.value = t, U(0), (s = w.value) == null || s.focus();
169
170
  }
170
- function Z(t) {
171
+ function ee(t) {
171
172
  var s, l;
172
173
  t && (y("navigate", t), (l = (s = x == null ? void 0 : x.vnode) == null ? void 0 : s.props) != null && l.onNavigate || (window.location.href = t), z());
173
174
  }
@@ -197,10 +198,10 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
197
198
  }
198
199
  d = setTimeout(() => me(s), o.debounce);
199
200
  }), K(p, (t) => {
200
- t ? (L = document.activeElement, g.value = "", S.value = "", m.value = [], f.value = "all", n.value = "zero", c.value = -1, I = document.body.style.overflow, document.body.style.overflow = "hidden", ne(() => {
201
+ t ? (L = document.activeElement, g.value = "", S.value = "", m.value = [], f.value = "all", n.value = "zero", c.value = -1, E = document.body.style.overflow, document.body.style.overflow = "hidden", oe(() => {
201
202
  var s;
202
203
  return (s = w.value) == null ? void 0 : s.focus();
203
- })) : (clearTimeout(d), C++, I !== null && (document.body.style.overflow = I, I = null), L != null && L.focus && L.focus());
204
+ })) : (clearTimeout(d), C++, E !== null && (document.body.style.overflow = E, E = null), L != null && L.focus && L.focus());
204
205
  }, { immediate: !0 });
205
206
  function ve(t) {
206
207
  var s;
@@ -219,10 +220,10 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
219
220
  if (t.key === "Enter") {
220
221
  if (t.isComposing)
221
222
  return;
222
- const l = J.value;
223
+ const l = W.value;
223
224
  if (!l.length)
224
225
  return;
225
- t.preventDefault(), Z(l[c.value >= 0 ? c.value : 0].url);
226
+ t.preventDefault(), ee(l[c.value >= 0 ? c.value : 0].url);
226
227
  return;
227
228
  }
228
229
  if (t.key === "Tab") {
@@ -239,7 +240,7 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
239
240
  const s = (t.tagName || "").toLowerCase();
240
241
  return s === "input" || s === "textarea" || s === "select" || t.isContentEditable;
241
242
  }
242
- function ee(t) {
243
+ function te(t) {
243
244
  if (t.key === "Escape" && p.value) {
244
245
  t.preventDefault(), z();
245
246
  return;
@@ -251,10 +252,10 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
251
252
  t.key === "/" && !p.value && !be(document.activeElement) && (t.preventDefault(), p.value = !0);
252
253
  }
253
254
  return ge(() => {
254
- document.addEventListener("keydown", ee);
255
+ document.addEventListener("keydown", te);
255
256
  }), we(() => {
256
- document.removeEventListener("keydown", ee), clearTimeout(d), C++, I !== null && (document.body.style.overflow = I, I = null);
257
- }), (t, s) => (a(), E(Ce, { to: "body" }, [
257
+ document.removeEventListener("keydown", te), clearTimeout(d), C++, E !== null && (document.body.style.overflow = E, E = null);
258
+ }), (t, s) => (a(), I(Ce, { to: "body" }, [
258
259
  p.value ? (a(), u("div", {
259
260
  key: 0,
260
261
  class: "zui-search-overlay fixed inset-0 z-[20000] flex items-start justify-center bg-[#11181c]/45",
@@ -269,7 +270,7 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
269
270
  "aria-modal": "true",
270
271
  "aria-label": "Search"
271
272
  }, [
272
- r("div", Ue, [
273
+ r("div", Be, [
273
274
  T(fe, { class: "!h-[18px] !w-[18px] flex-none text-proclusteal-400 dark:text-content-muted" }),
274
275
  G(r("input", {
275
276
  ref_key: "inputEl",
@@ -279,7 +280,7 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
279
280
  autocomplete: "off",
280
281
  placeholder: e.placeholder,
281
282
  class: "zui-search-input flex-1 border-0 bg-[transparent] p-0 text-[16px] text-[#1e262c] dark:text-content outline-none placeholder:text-proclusteal-400 dark:placeholder:text-content-muted focus:ring-0"
282
- }, null, 8, Be), [
283
+ }, null, 8, Re), [
283
284
  [$e, g.value]
284
285
  ]),
285
286
  r("button", {
@@ -290,12 +291,12 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
290
291
  onClick: z
291
292
  }, "×")
292
293
  ]),
293
- n.value === "results" ? (a(), u("div", Re, " Search results ")) : v("", !0),
294
- n.value === "results" ? (a(), u("div", Ve, [
294
+ n.value === "results" ? (a(), u("div", Ve, " Search results ")) : v("", !0),
295
+ n.value === "results" ? (a(), u("div", Ke, [
295
296
  r("button", {
296
297
  type: "button",
297
- class: M([re, f.value === "all" ? le : ""]),
298
- onClick: s[1] || (s[1] = (l) => W("all"))
298
+ class: M([le, f.value === "all" ? se : ""]),
299
+ onClick: s[1] || (s[1] = (l) => Z("all"))
299
300
  }, [
300
301
  j(" All "),
301
302
  r("span", {
@@ -305,14 +306,14 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
305
306
  (a(!0), u(H, null, P(m.value, (l) => (a(), u("button", {
306
307
  key: l.type,
307
308
  type: "button",
308
- class: M([re, f.value === l.type ? le : ""]),
309
- onClick: (h) => W(l.type)
309
+ class: M([le, f.value === l.type ? se : ""]),
310
+ onClick: (h) => Z(l.type)
310
311
  }, [
311
- j(b(Y(l.type).label) + " ", 1),
312
+ j(b(X(l.type).label) + " ", 1),
312
313
  r("span", {
313
314
  class: M(["font-bold", f.value === l.type ? "opacity-85" : "opacity-60"])
314
315
  }, "(" + b(l.items.length) + ")", 3)
315
- ], 10, Ke))), 128))
316
+ ], 10, qe))), 128))
316
317
  ])) : v("", !0),
317
318
  r("div", {
318
319
  ref_key: "resultsEl",
@@ -321,29 +322,29 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
321
322
  }, [
322
323
  n.value === "zero" ? (a(), u("div", {
323
324
  key: 0,
324
- class: M(R)
325
+ class: M(V)
325
326
  }, " Search across SOPs, incidents, assets, people and more — you only ever see what you have access to. ")) : n.value === "hint" ? (a(), u("div", {
326
327
  key: 1,
327
- class: M(R)
328
+ class: M(V)
328
329
  }, " Keep typing… enter at least " + b(e.minChars) + " characters to search. ", 1)) : n.value === "empty" ? (a(), u("div", {
329
330
  key: 2,
330
- class: M(R)
331
+ class: M(V)
331
332
  }, " No results for “" + b(S.value) + "” — try a broader term or a code. ", 1)) : n.value === "error" ? (a(), u("div", {
332
333
  key: 3,
333
- class: M(R)
334
- }, " Search is temporarily unavailable. ")) : (a(!0), u(H, { key: 4 }, P(X.value, (l) => (a(), u("div", {
334
+ class: M(V)
335
+ }, " Search is temporarily unavailable. ")) : (a(!0), u(H, { key: 4 }, P(J.value, (l) => (a(), u("div", {
335
336
  key: l.type
336
337
  }, [
337
- r("div", qe, [
338
+ r("div", Ge, [
338
339
  j(b(l.label) + " ", 1),
339
- r("span", Ge, "(" + b(l.items.length) + ")", 1)
340
+ r("span", Fe, "(" + b(l.items.length) + ")", 1)
340
341
  ]),
341
342
  (a(!0), u(H, null, P(l.items, (h) => (a(), u("a", {
342
343
  key: h.flatIdx,
343
344
  href: h.url || null,
344
345
  class: M(["zui-search-row flex items-center gap-[13px] px-[18px] py-[11px] text-[#1e262c] dark:text-content no-underline", { "bg-proclusteal-50 dark:bg-surface-hover": h.flatIdx === c.value }]),
345
346
  "data-row-idx": h.flatIdx,
346
- onClick: N((B) => Z(h.url), ["exact", "prevent"]),
347
+ onClick: N((B) => ee(h.url), ["exact", "prevent"]),
347
348
  onMouseenter: (B) => c.value = h.flatIdx
348
349
  }, [
349
350
  r("span", {
@@ -359,27 +360,27 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
359
360
  "stroke-linecap": "round",
360
361
  "stroke-linejoin": "round",
361
362
  innerHTML: h.tileIcon
362
- }, null, 8, Qe))
363
+ }, null, 8, Ye))
363
364
  ], 4),
364
- r("span", Ye, [
365
+ r("span", Xe, [
365
366
  r("span", {
366
367
  class: "gs-marked block truncate text-[14px] font-bold",
367
368
  innerHTML: h.titleHtml
368
- }, null, 8, Xe),
369
+ }, null, 8, Je),
369
370
  r("span", {
370
371
  class: "gs-marked mt-0.5 block truncate text-[12.5px] text-[#5b6570] dark:text-content-muted",
371
372
  innerHTML: h.subtitleHtml
372
- }, null, 8, Je)
373
+ }, null, 8, We)
373
374
  ]),
374
- We
375
- ], 42, Fe))), 128))
375
+ Ze
376
+ ], 42, Qe))), 128))
376
377
  ]))), 128))
377
378
  ], 512)
378
379
  ], 512)
379
380
  ], 32)) : v("", !0)
380
381
  ]));
381
382
  }
382
- }, et = /* @__PURE__ */ Ae(Ze, [["__scopeId", "data-v-80fd510b"]]), se = {
383
+ }, tt = /* @__PURE__ */ Ie(et, [["__scopeId", "data-v-80fd510b"]]), ie = {
383
384
  "reference library": "RefLib",
384
385
  reflib: "RefLib",
385
386
  repository: "RefLib",
@@ -397,7 +398,7 @@ const Pe = (e) => (Se("data-v-80fd510b"), e = e(), _e(), e), Ue = { class: "zui-
397
398
  directory: "Contact",
398
399
  "telephone directory": "Contact"
399
400
  };
400
- function tt(e) {
401
+ function nt(e) {
401
402
  if (!e)
402
403
  return "";
403
404
  const i = String(e).trim();
@@ -408,11 +409,11 @@ function tt(e) {
408
409
  o = i;
409
410
  else {
410
411
  const y = i.toLowerCase(), p = Object.keys(D).find((x) => x.toLowerCase() === y);
411
- p ? o = p : Object.prototype.hasOwnProperty.call(se, y) && (o = se[y]);
412
+ p ? o = p : Object.prototype.hasOwnProperty.call(ie, y) && (o = ie[y]);
412
413
  }
413
414
  return !o || !Object.prototype.hasOwnProperty.call(D, o) ? "" : D[o].icon || "";
414
415
  }
415
- function nt(e) {
416
+ function ot(e) {
416
417
  if (!e)
417
418
  return "";
418
419
  if (e.dateText)
@@ -420,19 +421,19 @@ function nt(e) {
420
421
  const i = e.notifyday != null ? String(e.notifyday).replace(/^0/, "") : "", o = e.notifymonthname ? String(e.notifymonthname) : "", y = e.notifyyear != null ? String(e.notifyyear) : "";
421
422
  return [i, o, y].filter(Boolean).join(" ");
422
423
  }
423
- const ot = {
424
+ const at = {
424
425
  key: 0,
425
426
  class: "absolute -right-[3px] -top-[3px] h-2 w-2 rounded-full bg-[#dd3730] ring-2 ring-white dark:ring-surface-raised"
426
- }, at = { class: "absolute right-0 top-full z-30 mt-2 w-[400px] max-w-[90vw] origin-top-right overflow-hidden rounded-[10px] border-[1px] border-proclusteal-300 dark:border-line bg-surface-raised shadow-zeal-md" }, rt = { class: "max-h-[420px] overflow-y-auto" }, lt = {
427
+ }, rt = { class: "absolute right-0 top-full z-30 mt-2 w-[400px] max-w-[90vw] origin-top-right overflow-hidden rounded-[10px] border-[1px] border-proclusteal-300 dark:border-line bg-surface-raised shadow-zeal-md" }, lt = { class: "max-h-[420px] overflow-y-auto" }, st = {
427
428
  key: 0,
428
429
  class: "px-5 py-[26px] text-center text-[13px] font-medium text-[#667079] dark:text-content-muted"
429
- }, st = {
430
+ }, it = {
430
431
  key: 1,
431
432
  class: "px-5 py-[26px] text-center text-[13px] font-medium text-[#667079] dark:text-content-muted"
432
- }, it = ["onClick"], ct = { class: "inline-flex h-[42px] w-[42px] flex-none items-center justify-center rounded-[10px] bg-proclusteal-950 text-white" }, ut = ["innerHTML"], dt = { class: "min-w-0 flex-1" }, pt = { class: "block truncate text-[14px] font-bold text-[#1e262c] dark:text-content" }, ft = { class: "block truncate text-[12.5px] text-[#5b6570] dark:text-content-muted" }, xt = {
433
+ }, ct = ["onClick"], ut = { class: "inline-flex h-[42px] w-[42px] flex-none items-center justify-center rounded-[10px] bg-proclusteal-950 text-white" }, dt = ["innerHTML"], pt = { class: "min-w-0 flex-1" }, ft = { class: "block truncate text-[14px] font-bold text-[#1e262c] dark:text-content" }, xt = { class: "block truncate text-[12.5px] text-[#5b6570] dark:text-content-muted" }, ht = {
433
434
  key: 0,
434
435
  class: "mt-0.5 block text-[12px] text-proclusteal-500 dark:text-content-muted"
435
- }, ht = { class: "flex flex-none flex-col items-center gap-2 pt-0.5 text-proclusteal-600 dark:text-content-muted" }, yt = ["onClick"], mt = ["onClick"], vt = ["href"], bt = {
436
+ }, yt = { class: "flex flex-none flex-col items-center gap-2 pt-0.5 text-proclusteal-600 dark:text-content-muted" }, mt = ["onClick"], vt = ["onClick"], bt = ["href"], kt = {
436
437
  __name: "HeaderNotificationDropdown",
437
438
  props: {
438
439
  // The feed as /personal/GetNotifications.ashx returns it: { data: [...] }. Null means
@@ -478,13 +479,13 @@ const ot = {
478
479
  const c = g(n.VueAppTypeIcon) || g(n.AppTypeName);
479
480
  if (c)
480
481
  return { component: c, path: "" };
481
- const d = tt(n.AppTypeName);
482
- return d ? { component: null, path: d } : { component: oe, path: "" };
482
+ const d = nt(n.AppTypeName);
483
+ return d ? { component: null, path: d } : { component: ae, path: "" };
483
484
  }
484
485
  const m = $(() => w.value.map((n) => ({
485
486
  item: n,
486
487
  icon: S(n),
487
- date: nt(n),
488
+ date: ot(n),
488
489
  unread: n.ClassRead === "unread"
489
490
  })));
490
491
  function f(n) {
@@ -504,10 +505,10 @@ const ot = {
504
505
  "aria-label": "View Notifications",
505
506
  onClick: A
506
507
  }, [
507
- T(oe, { class: "!h-[21px] !w-[21px]" }),
508
- _.value ? (a(), u("span", ot)) : v("", !0)
508
+ T(ae, { class: "!h-[21px] !w-[21px]" }),
509
+ _.value ? (a(), u("span", at)) : v("", !0)
509
510
  ]),
510
- T(ce, {
511
+ T(ue, {
511
512
  "enter-active-class": "transition-all ease-out duration-75",
512
513
  "enter-from-class": "scale-95 opacity-0",
513
514
  "enter-to-class": "scale-100 opacity-100",
@@ -515,17 +516,17 @@ const ot = {
515
516
  "leave-from-class": "scale-100 opacity-100",
516
517
  "leave-to-class": "scale-95 opacity-0"
517
518
  }, {
518
- default: ue(() => [
519
- G(r("div", at, [
520
- r("div", rt, [
521
- e.notifications ? w.value.length ? v("", !0) : (a(), u("div", st, " No notifications. ")) : (a(), u("div", lt, " Loading notifications… ")),
519
+ default: F(() => [
520
+ G(r("div", rt, [
521
+ r("div", lt, [
522
+ e.notifications ? w.value.length ? v("", !0) : (a(), u("div", it, " No notifications. ")) : (a(), u("div", st, " Loading notifications… ")),
522
523
  (a(!0), u(H, null, P(m.value, (d) => (a(), u("div", {
523
524
  key: d.item.NotifyID,
524
525
  class: M(["flex cursor-pointer items-start gap-3 border-b-[1px] border-proclusteal-200 dark:border-line px-4 py-3", d.unread ? "bg-proclusteal-50 dark:bg-surface-hover" : "bg-surface-raised"]),
525
526
  onClick: (C) => f(d.item.url)
526
527
  }, [
527
- r("span", ct, [
528
- d.icon.component ? (a(), E(de(d.icon.component), {
528
+ r("span", ut, [
529
+ d.icon.component ? (a(), I(de(d.icon.component), {
529
530
  key: 0,
530
531
  class: "!h-5 !w-5"
531
532
  })) : (a(), u("svg", {
@@ -538,14 +539,14 @@ const ot = {
538
539
  "stroke-linecap": "round",
539
540
  "stroke-linejoin": "round",
540
541
  innerHTML: d.icon.path
541
- }, null, 8, ut))
542
+ }, null, 8, dt))
542
543
  ]),
543
- r("span", dt, [
544
- r("span", pt, b(d.item.notifyname), 1),
545
- r("span", ft, b(d.item.summary), 1),
546
- d.date ? (a(), u("span", xt, b(d.date), 1)) : v("", !0)
544
+ r("span", pt, [
545
+ r("span", ft, b(d.item.notifyname), 1),
546
+ r("span", xt, b(d.item.summary), 1),
547
+ d.date ? (a(), u("span", ht, b(d.date), 1)) : v("", !0)
547
548
  ]),
548
- r("span", ht, [
549
+ r("span", yt, [
549
550
  d.unread ? (a(), u("button", {
550
551
  key: 0,
551
552
  type: "button",
@@ -554,8 +555,8 @@ const ot = {
554
555
  "aria-label": "Mark notification as read",
555
556
  onClick: N((C) => n.$emit("markAsRead", d.item.NotifyID), ["stop"])
556
557
  }, [
557
- T(Ie, { class: "!h-4 !w-4" })
558
- ], 8, yt)) : v("", !0),
558
+ T(Ee, { class: "!h-4 !w-4" })
559
+ ], 8, mt)) : v("", !0),
559
560
  r("button", {
560
561
  type: "button",
561
562
  class: "hover:text-[#dd3730]",
@@ -563,16 +564,16 @@ const ot = {
563
564
  "aria-label": "Delete notification",
564
565
  onClick: N((C) => n.$emit("deleteNotification", d.item.NotifyID), ["stop"])
565
566
  }, [
566
- T(Ee, { class: "!w-3" })
567
- ], 8, mt)
567
+ T(Ne, { class: "!w-3" })
568
+ ], 8, vt)
568
569
  ])
569
- ], 10, it))), 128))
570
+ ], 10, ct))), 128))
570
571
  ]),
571
572
  r("a", {
572
- href: F(O)(e.notificationsUrl) || null,
573
+ href: Q(O)(e.notificationsUrl) || null,
573
574
  class: "block border-t-[1px] border-proclusteal-200 dark:border-line px-4 py-2.5 text-center text-[13px] font-bold text-proclusteal-700 dark:text-content no-underline hover:bg-proclusteal-50 dark:hover:bg-surface-hover hover:text-proclusteal-900 dark:hover:text-focus",
574
575
  onClick: c[0] || (c[0] = N((d) => f(e.notificationsUrl), ["exact", "prevent"]))
575
- }, " See all notifications ", 8, vt)
576
+ }, " See all notifications ", 8, bt)
576
577
  ], 512), [
577
578
  [pe, x.value]
578
579
  ])
@@ -581,13 +582,13 @@ const ot = {
581
582
  })
582
583
  ], 512));
583
584
  }
584
- }, kt = ["src"], gt = {
585
+ }, gt = ["src"], wt = {
585
586
  key: 1,
586
587
  class: "inline-flex h-[34px] w-[34px] items-center justify-center rounded-full bg-proclusteal-900 text-[13px] font-bold uppercase leading-none tracking-[0.5px] text-white"
587
- }, wt = { class: "absolute right-0 top-full z-30 mt-2 w-[260px] origin-top-right rounded-[10px] border-[1px] border-proclusteal-300 dark:border-line bg-surface-raised py-1 shadow-zeal-md" }, Ct = { class: "flex max-w-[260px] flex-col gap-0.5 whitespace-normal px-[18px] pb-2.5 pt-3" }, $t = { class: "block text-[14px] font-bold text-proclusteal-800 dark:text-content" }, St = /* @__PURE__ */ r("span", { class: "my-1.5 block h-0.5 w-8 flex-none rounded-[1px] bg-[#cdd4da] dark:bg-line-strong" }, null, -1), _t = { class: "block break-words text-[12px] leading-[1.3] text-proclusteal-600 dark:text-content-muted" }, Mt = /* @__PURE__ */ r("div", { class: "h-px bg-proclusteal-200 dark:bg-line" }, null, -1), Tt = {
588
+ }, Ct = { class: "absolute right-0 top-full z-30 mt-2 w-[260px] origin-top-right rounded-[10px] border-[1px] border-proclusteal-300 dark:border-line bg-surface-raised py-1 shadow-zeal-md" }, $t = { class: "flex max-w-[260px] flex-col gap-0.5 whitespace-normal px-[18px] pb-2.5 pt-3" }, St = { class: "block text-[14px] font-bold text-proclusteal-800 dark:text-content" }, _t = /* @__PURE__ */ r("span", { class: "my-1.5 block h-0.5 w-8 flex-none rounded-[1px] bg-[#cdd4da] dark:bg-line-strong" }, null, -1), Mt = { class: "block break-words text-[12px] leading-[1.3] text-proclusteal-600 dark:text-content-muted" }, Tt = /* @__PURE__ */ r("div", { class: "h-px bg-proclusteal-200 dark:bg-line" }, null, -1), At = {
588
589
  key: 0,
589
590
  class: "my-1 h-px bg-proclusteal-200 dark:bg-line"
590
- }, At = ["href", "onClick"], It = {
591
+ }, It = ["href", "onClick"], Et = {
591
592
  __name: "HeaderUserMenu",
592
593
  props: {
593
594
  user: {
@@ -630,9 +631,9 @@ const ot = {
630
631
  alt: "",
631
632
  class: "h-[34px] w-[34px] rounded-full object-cover",
632
633
  onError: m[0] || (m[0] = (f) => w.value = !0)
633
- }, null, 40, kt)) : (a(), u("span", gt, b(A.value), 1))
634
+ }, null, 40, gt)) : (a(), u("span", wt, b(A.value), 1))
634
635
  ]),
635
- T(ce, {
636
+ T(ue, {
636
637
  "enter-active-class": "transition-all ease-out duration-75",
637
638
  "enter-from-class": "scale-95 opacity-0",
638
639
  "enter-to-class": "scale-100 opacity-100",
@@ -640,27 +641,27 @@ const ot = {
640
641
  "leave-from-class": "scale-100 opacity-100",
641
642
  "leave-to-class": "scale-95 opacity-0"
642
643
  }, {
643
- default: ue(() => [
644
- G(r("div", wt, [
645
- r("div", Ct, [
646
- r("span", $t, b(_.value), 1),
647
- St,
648
- r("span", _t, b(e.user.orgName), 1)
644
+ default: F(() => [
645
+ G(r("div", Ct, [
646
+ r("div", $t, [
647
+ r("span", St, b(_.value), 1),
648
+ _t,
649
+ r("span", Mt, b(e.user.orgName), 1)
649
650
  ]),
650
- Mt,
651
+ Tt,
651
652
  (a(!0), u(H, null, P(e.menuItems, (f, n) => (a(), u(H, { key: n }, [
652
- f.divider ? (a(), u("div", Tt)) : (a(), u("a", {
653
+ f.divider ? (a(), u("div", At)) : (a(), u("a", {
653
654
  key: 1,
654
- href: f.href && F(O)(f.href) || null,
655
+ href: f.href && Q(O)(f.href) || null,
655
656
  class: "flex items-center gap-2.5 px-[18px] py-2 text-[13px] font-semibold text-proclusteal-700 dark:text-content no-underline hover:bg-proclusteal-50 dark:hover:bg-surface-hover hover:text-proclusteal-900 dark:hover:text-focus",
656
657
  onClick: N((c) => g(f), ["exact", "prevent"])
657
658
  }, [
658
- f.icon ? (a(), E(de(f.icon), {
659
+ f.icon ? (a(), I(de(f.icon), {
659
660
  key: 0,
660
661
  class: "!h-4 !w-4 flex-none"
661
662
  })) : v("", !0),
662
663
  r("span", null, b(f.label), 1)
663
- ], 8, At))
664
+ ], 8, It))
664
665
  ], 64))), 128))
665
666
  ], 512), [
666
667
  [pe, x.value]
@@ -670,13 +671,13 @@ const ot = {
670
671
  })
671
672
  ], 512));
672
673
  }
673
- }, Et = { class: "flex h-[70px] shrink-0 items-center justify-between border-b-[1px] border-proclusteal-300 dark:border-line bg-surface-raised px-[15px] font-sans shadow-[0_1px_3px_rgba(20,40,45,0.05)] sm:px-[25px]" }, Nt = { class: "flex min-w-0 items-center gap-[18px]" }, Ht = {
674
+ }, Nt = { class: "flex h-[70px] shrink-0 items-center justify-between border-b-[1px] border-proclusteal-300 dark:border-line bg-surface-raised px-[15px] font-sans shadow-[0_1px_3px_rgba(20,40,45,0.05)] sm:px-[25px]" }, Ht = { class: "flex min-w-0 items-center gap-[18px]" }, Ot = {
674
675
  key: 0,
675
676
  class: "hidden whitespace-nowrap text-[18px] font-semibold text-proclusteal-800 dark:text-content sm:inline"
676
- }, Ot = {
677
+ }, Lt = {
677
678
  key: 0,
678
679
  class: "font-normal text-black-800 dark:text-content-muted"
679
- }, Lt = ["href", "title", "aria-label"], zt = { class: "flex items-center gap-[18px] sm:gap-[25px]" }, Gt = {
680
+ }, zt = ["href", "aria-label"], Dt = { class: "flex items-center gap-[18px] sm:gap-[25px]" }, Qt = {
680
681
  __name: "AppHeader",
681
682
  props: {
682
683
  title: {
@@ -754,7 +755,7 @@ const ot = {
754
755
  "notifications-open"
755
756
  ],
756
757
  setup(e, { emit: i }) {
757
- const o = e, y = i, p = ie(), x = k(!1), w = $(() => !!o.notifications || o.unreadCount !== null && o.unreadCount !== void 0), _ = $(() => he(o.accentColour)), A = $(() => _.value || "#1c6f63");
758
+ const o = e, y = i, p = ce(), x = k(!1), w = $(() => !!o.notifications || o.unreadCount !== null && o.unreadCount !== void 0), _ = $(() => he(o.accentColour)), A = $(() => _.value || "#1c6f63");
758
759
  function g(n) {
759
760
  var d, C;
760
761
  if (!n)
@@ -771,12 +772,12 @@ const ot = {
771
772
  function f(n) {
772
773
  y("menu-select", n), n.href && g(n.href);
773
774
  }
774
- return (n, c) => (a(), u("header", Et, [
775
- r("div", Nt, [
776
- V(n.$slots, "logo"),
777
- e.title ? (a(), u("span", Ht, [
775
+ return (n, c) => (a(), u("header", Nt, [
776
+ r("div", Ht, [
777
+ R(n.$slots, "logo"),
778
+ e.title ? (a(), u("span", Ot, [
778
779
  j(b(e.title), 1),
779
- e.subtitle ? (a(), u("span", Ot, " " + b(e.subtitle), 1)) : v("", !0)
780
+ e.subtitle ? (a(), u("span", Lt, " " + b(e.subtitle), 1)) : v("", !0)
780
781
  ])) : v("", !0),
781
782
  _.value ? (a(), u("span", {
782
783
  key: 1,
@@ -788,16 +789,23 @@ const ot = {
788
789
  class: "flex items-center gap-7 text-proclusteal-600 dark:text-content-muted",
789
790
  style: q({ "--hdr-accent": A.value })
790
791
  }, [
791
- e.homeUrl ? (a(), u("a", {
792
+ e.homeUrl ? (a(), I(Ae, {
792
793
  key: 0,
793
- href: F(O)(e.homeUrl) || null,
794
- class: "hover:text-[var(--hdr-accent)]",
795
- title: e.homeTooltip,
796
- "aria-label": e.homeTooltip,
797
- onClick: N(S, ["exact", "prevent"])
798
- }, [
799
- T(Me, { class: "!h-[22px] !w-[22px]" })
800
- ], 8, Lt)) : v("", !0),
794
+ text: e.homeTooltip,
795
+ position: "bottom"
796
+ }, {
797
+ default: F(() => [
798
+ r("a", {
799
+ href: Q(O)(e.homeUrl) || null,
800
+ class: "hover:text-[var(--hdr-accent)]",
801
+ "aria-label": e.homeTooltip,
802
+ onClick: N(S, ["exact", "prevent"])
803
+ }, [
804
+ T(Me, { class: "!h-[22px] !w-[22px]" })
805
+ ], 8, zt)
806
+ ]),
807
+ _: 1
808
+ }, 8, ["text"])) : v("", !0),
801
809
  e.showBack ? (a(), u("button", {
802
810
  key: 1,
803
811
  type: "button",
@@ -807,17 +815,18 @@ const ot = {
807
815
  onClick: m
808
816
  }, [
809
817
  T(Te, { class: "!h-[22px] !w-[22px]" })
810
- ])) : v("", !0)
818
+ ])) : v("", !0),
819
+ R(n.$slots, "nav-extra")
811
820
  ], 4),
812
- V(n.$slots, "left")
821
+ R(n.$slots, "left")
813
822
  ]),
814
- r("div", zt, [
815
- V(n.$slots, "right"),
816
- e.searchProvider ? (a(), E(Oe, {
823
+ r("div", Dt, [
824
+ R(n.$slots, "right"),
825
+ e.searchProvider ? (a(), I(Le, {
817
826
  key: 0,
818
827
  onClick: c[0] || (c[0] = (d) => x.value = !0)
819
828
  })) : v("", !0),
820
- w.value ? (a(), E(bt, {
829
+ w.value ? (a(), I(kt, {
821
830
  key: 1,
822
831
  notifications: e.notifications,
823
832
  "unread-count": e.unreadCount,
@@ -828,14 +837,14 @@ const ot = {
828
837
  onOpen: c[3] || (c[3] = (d) => n.$emit("notifications-open")),
829
838
  onNavigate: g
830
839
  }, null, 8, ["notifications", "unread-count", "notifications-url", "icon-map"])) : v("", !0),
831
- e.user ? (a(), E(It, {
840
+ e.user ? (a(), I(Et, {
832
841
  key: 2,
833
842
  user: e.user,
834
843
  "menu-items": e.menuItems,
835
844
  onSelect: f
836
845
  }, null, 8, ["user", "menu-items"])) : v("", !0)
837
846
  ]),
838
- e.searchProvider ? (a(), E(et, {
847
+ e.searchProvider ? (a(), I(tt, {
839
848
  key: 0,
840
849
  open: x.value,
841
850
  "onUpdate:open": c[4] || (c[4] = (d) => x.value = d),
@@ -848,11 +857,11 @@ const ot = {
848
857
  }
849
858
  };
850
859
  export {
851
- Gt as AppHeader,
860
+ Qt as AppHeader,
852
861
  D as DEFAULT_SEARCH_TYPES,
853
- et as GlobalSearchModal,
854
- Oe as GlobalSearchPill,
855
- bt as HeaderNotificationDropdown,
856
- It as HeaderUserMenu,
862
+ tt as GlobalSearchModal,
863
+ Le as GlobalSearchPill,
864
+ kt as HeaderNotificationDropdown,
865
+ Et as HeaderUserMenu,
857
866
  O as safeUrl
858
867
  };
@@ -1,112 +1,6 @@
1
- import { _ as J } from "../../BaseTooltip-CcnCHpL4.js";
2
- import { ref as i, onUnmounted as z, openBlock as y, createElementBlock as D, Fragment as N, createElementVNode as a, renderSlot as Y, createBlock as $, Teleport as F, withDirectives as P, normalizeStyle as V, createTextVNode as W, toDisplayString as _, vShow as q, nextTick as C } from "vue";
3
- const l = i(null);
4
- function H() {
5
- function s(n) {
6
- l.value && l.value !== n && l.value.hideImmediate(), l.value = n;
7
- }
8
- function c(n) {
9
- l.value === n && (l.value = null);
10
- }
11
- return {
12
- register: s,
13
- unregister: c
14
- };
15
- }
16
- const I = { class: "px-4 py-2 text-center pointer-events-none" }, R = /* @__PURE__ */ a("span", { class: "fixed left-1/2 -bottom-1 w-2 h-2 bg-black-950 rotate-45 -translate-x-1/2 pointer-events-none" }, null, -1), j = {
17
- __name: "Tooltip",
18
- props: {
19
- text: {
20
- type: String,
21
- required: !0
22
- },
23
- position: {
24
- type: String,
25
- default: "top"
26
- // 'top', 'bottom', 'left', 'right'
27
- },
28
- offset: {
29
- type: Number,
30
- default: 20
31
- // Offset from the trigger element
32
- }
33
- },
34
- setup(s) {
35
- const c = s, { register: n, unregister: k } = H(), f = {
36
- hideImmediate: d
37
- }, p = i(!1);
38
- let v = null, m = null;
39
- const r = i(!1), w = i(null), T = i(null), g = i({ top: "0px", left: "0px" });
40
- function h() {
41
- const e = w.value, t = T.value;
42
- if (!e || !t)
43
- return;
44
- const o = e.getBoundingClientRect(), E = t.offsetWidth, M = window.scrollY || document.documentElement.scrollTop, S = window.scrollX || document.documentElement.scrollLeft, B = o.left + S + o.width / 2, L = o.top + M - c.offset, X = B - E / 2;
45
- g.value = {
46
- top: `${Math.round(L)}px`,
47
- left: `${Math.round(X)}px`,
48
- transform: "translateY(-100%) translateX(-50%) translateX(" + (E - 16) / 2 + "px)",
49
- // Adjust for tooltip width and padding
50
- position: "absolute",
51
- pointerEvents: "none"
52
- };
53
- }
54
- function u() {
55
- clearTimeout(m), m = setTimeout(() => {
56
- h();
57
- }, 50);
58
- }
59
- function x() {
60
- r.value || (clearTimeout(v), n(f), p.value = !0, r.value = !0, C(() => {
61
- setTimeout(() => {
62
- h();
63
- }, 0);
64
- }), window.addEventListener("scroll", u), window.addEventListener("resize", u));
65
- }
66
- function b() {
67
- p.value = !1, v = setTimeout(() => {
68
- p.value || d();
69
- }, 100);
70
- }
71
- function d() {
72
- r.value = !1, k(f), window.removeEventListener("scroll", u), window.removeEventListener("resize", u);
73
- }
74
- return z(() => {
75
- d();
76
- }), (e, t) => (y(), D(N, null, [
77
- a("span", {
78
- ref_key: "triggerEl",
79
- ref: w,
80
- onMouseenter: x,
81
- onMouseleave: b,
82
- onFocus: t[0] || (t[0] = (...o) => e.showTooltip && e.showTooltip(...o)),
83
- onBlur: t[1] || (t[1] = (...o) => e.hideTooltip && e.hideTooltip(...o)),
84
- tabindex: "0",
85
- class: "inline-block will-change"
86
- }, [
87
- Y(e.$slots, "default")
88
- ], 544),
89
- (y(), $(F, { to: "body" }, [
90
- P(a("div", {
91
- class: "absolute z-50 bg-black-950 text-white font-semibold text-xs text-center rounded whitespace-nowrap pointer-events-none transition-none",
92
- style: V(g.value),
93
- ref_key: "tooltipEl",
94
- ref: T,
95
- onMouseenter: x,
96
- onMouseleave: b
97
- }, [
98
- a("div", I, [
99
- W(_(s.text) + " ", 1),
100
- R
101
- ])
102
- ], 36), [
103
- [q, r.value]
104
- ])
105
- ]))
106
- ], 64));
107
- }
108
- };
1
+ import { _ as r } from "../../BaseTooltip-CcnCHpL4.js";
2
+ import { _ as a } from "../../Tooltip-CQjz2EXM.js";
109
3
  export {
110
- J as BaseTooltip,
111
- j as Tooltip
4
+ r as BaseTooltip,
5
+ a as Tooltip
112
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zealsolutions/zeal-ui",
3
- "version": "1.0.0-alpha.360",
3
+ "version": "1.0.0-alpha.362",
4
4
  "description": "UI library for Zeal Solutions",
5
5
  "author": "Zeal Solutions",
6
6
  "license": "ISC",