@semplice-studio/pa-design-system 0.1.1 → 0.3.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/README.md +85 -128
- package/dist/components/PaAccordion/PaAccordion.vue.d.ts +0 -1
- package/dist/components/PaAccordion/PaAccordion.vue.js +3 -5
- package/dist/components/PaAccordion/PaAccordion.vue.js.map +1 -1
- package/dist/components/PaAccordion/PaAccordion.vue2.js +24 -30
- package/dist/components/PaAccordion/PaAccordion.vue2.js.map +1 -1
- package/dist/components/PaBanner/PaBanner.vue.js +6 -6
- package/dist/components/PaBanner/PaBanner.vue2.js +26 -28
- package/dist/components/PaBanner/PaBanner.vue2.js.map +1 -1
- package/dist/components/PaCard/PaCard.vue.d.ts +17 -14
- package/dist/components/PaCard/PaCard.vue.js +2 -2
- package/dist/components/PaCard/PaCard.vue2.js +37 -42
- package/dist/components/PaCard/PaCard.vue2.js.map +1 -1
- package/dist/components/PaCheckbox/PaCheckbox.vue.d.ts +5 -6
- package/dist/components/PaCheckbox/PaCheckbox.vue.js +2 -4
- package/dist/components/PaCheckbox/PaCheckbox.vue.js.map +1 -1
- package/dist/components/PaCheckbox/PaCheckbox.vue2.js +20 -26
- package/dist/components/PaCheckbox/PaCheckbox.vue2.js.map +1 -1
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.d.ts +5 -6
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js +2 -4
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js.map +1 -1
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js +25 -31
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js.map +1 -1
- package/dist/components/PaDatePicker/PaDatePicker.vue.d.ts +13 -26
- package/dist/components/PaDatePicker/PaDatePicker.vue.js +4 -6
- package/dist/components/PaDatePicker/PaDatePicker.vue.js.map +1 -1
- package/dist/components/PaDatePicker/PaDatePicker.vue2.js +53 -59
- package/dist/components/PaDatePicker/PaDatePicker.vue2.js.map +1 -1
- package/dist/components/PaDrawer/PaDrawer.vue.js +2 -2
- package/dist/components/PaDrawer/PaDrawer.vue2.js +37 -41
- package/dist/components/PaDrawer/PaDrawer.vue2.js.map +1 -1
- package/dist/components/PaFileUpload/PaFileUpload.vue.d.ts +0 -1
- package/dist/components/PaFileUpload/PaFileUpload.vue.js +3 -5
- package/dist/components/PaFileUpload/PaFileUpload.vue.js.map +1 -1
- package/dist/components/PaFileUpload/PaFileUpload.vue2.js +22 -28
- package/dist/components/PaFileUpload/PaFileUpload.vue2.js.map +1 -1
- package/dist/components/PaFooter/PaFooter.vue.js +1 -1
- package/dist/components/PaFooter/PaFooter.vue2.js +43 -48
- package/dist/components/PaFooter/PaFooter.vue2.js.map +1 -1
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.js +1 -1
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js +61 -66
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js.map +1 -1
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.js +2 -2
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js +69 -74
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js.map +1 -1
- package/dist/components/PaHero/PaHero.vue.d.ts +15 -12
- package/dist/components/PaHero/PaHero.vue.js +2 -2
- package/dist/components/PaHero/PaHero.vue2.js +36 -41
- package/dist/components/PaHero/PaHero.vue2.js.map +1 -1
- package/dist/components/PaInput/PaInput.vue.d.ts +15 -13
- package/dist/components/PaInput/PaInput.vue.js +4 -6
- package/dist/components/PaInput/PaInput.vue.js.map +1 -1
- package/dist/components/PaInput/PaInput.vue2.js +27 -33
- package/dist/components/PaInput/PaInput.vue2.js.map +1 -1
- package/dist/components/PaModal/PaModal.vue.d.ts +14 -11
- package/dist/components/PaModal/PaModal.vue.js +3 -3
- package/dist/components/PaModal/PaModal.vue2.js +41 -46
- package/dist/components/PaModal/PaModal.vue2.js.map +1 -1
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.d.ts +13 -26
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.js +2 -4
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.js.map +1 -1
- package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js +64 -70
- package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js.map +1 -1
- package/dist/components/PaPagination/PaPagination.vue.js +2 -2
- package/dist/components/PaPagination/PaPagination.vue2.js +41 -46
- package/dist/components/PaPagination/PaPagination.vue2.js.map +1 -1
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.d.ts +5 -6
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.js +2 -4
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.js.map +1 -1
- package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js +22 -28
- package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js.map +1 -1
- package/dist/components/PaRangePicker/PaRangePicker.vue.d.ts +0 -1
- package/dist/components/PaRangePicker/PaRangePicker.vue.js +4 -6
- package/dist/components/PaRangePicker/PaRangePicker.vue.js.map +1 -1
- package/dist/components/PaRangePicker/PaRangePicker.vue2.js +76 -82
- package/dist/components/PaRangePicker/PaRangePicker.vue2.js.map +1 -1
- package/dist/components/PaSearchBar/PaSearchBar.vue.d.ts +0 -1
- package/dist/components/PaSearchBar/PaSearchBar.vue.js +3 -5
- package/dist/components/PaSearchBar/PaSearchBar.vue.js.map +1 -1
- package/dist/components/PaSearchBar/PaSearchBar.vue2.js +55 -61
- package/dist/components/PaSearchBar/PaSearchBar.vue2.js.map +1 -1
- package/dist/components/PaSelect/PaSelect.vue.d.ts +5 -6
- package/dist/components/PaSelect/PaSelect.vue.js +4 -6
- package/dist/components/PaSelect/PaSelect.vue.js.map +1 -1
- package/dist/components/PaSelect/PaSelect.vue2.js +25 -31
- package/dist/components/PaSelect/PaSelect.vue2.js.map +1 -1
- package/dist/components/PaTabs/PaTabs.vue.js +1 -1
- package/dist/components/PaTabs/PaTabs.vue2.js +17 -19
- package/dist/components/PaTabs/PaTabs.vue2.js.map +1 -1
- package/dist/components/PaTextarea/PaTextarea.vue.d.ts +5 -6
- package/dist/components/PaTextarea/PaTextarea.vue.js +4 -6
- package/dist/components/PaTextarea/PaTextarea.vue.js.map +1 -1
- package/dist/components/PaTextarea/PaTextarea.vue2.js +16 -22
- package/dist/components/PaTextarea/PaTextarea.vue2.js.map +1 -1
- package/dist/components/PaTimePicker/PaTimePicker.vue.d.ts +0 -1
- package/dist/components/PaTimePicker/PaTimePicker.vue.js +2 -4
- package/dist/components/PaTimePicker/PaTimePicker.vue.js.map +1 -1
- package/dist/components/PaTimePicker/PaTimePicker.vue2.js +44 -50
- package/dist/components/PaTimePicker/PaTimePicker.vue2.js.map +1 -1
- package/dist/components/PaTitleBar/PaTitleBar.vue.d.ts +12 -9
- package/dist/components/PaTitleBar/PaTitleBar.vue.js +2 -2
- package/dist/components/PaTitleBar/PaTitleBar.vue2.js +34 -39
- package/dist/components/PaTitleBar/PaTitleBar.vue2.js.map +1 -1
- package/dist/components/PaToggle/PaToggle.vue.d.ts +0 -1
- package/dist/components/PaToggle/PaToggle.vue.js +2 -4
- package/dist/components/PaToggle/PaToggle.vue.js.map +1 -1
- package/dist/components/PaToggle/PaToggle.vue2.js +20 -26
- package/dist/components/PaToggle/PaToggle.vue2.js.map +1 -1
- package/dist/components/PaYearPicker/PaYearPicker.vue.d.ts +13 -26
- package/dist/components/PaYearPicker/PaYearPicker.vue.js +4 -6
- package/dist/components/PaYearPicker/PaYearPicker.vue.js.map +1 -1
- package/dist/components/PaYearPicker/PaYearPicker.vue2.js +70 -76
- package/dist/components/PaYearPicker/PaYearPicker.vue2.js.map +1 -1
- package/dist/style.css +1 -1
- package/docs/design-system.md +590 -0
- package/docs/layouts.md +297 -0
- package/docs/page-composition-examples.md +286 -0
- package/docs/public-surface.md +68 -0
- package/package.json +8 -4
|
@@ -1,41 +1,36 @@
|
|
|
1
|
-
import { defineComponent as se, ref as w, computed as h, watch as
|
|
1
|
+
import { defineComponent as se, useId as re, ref as w, computed as h, watch as ue, nextTick as de, onBeforeUnmount as ce, openBlock as t, createElementBlock as o, toDisplayString as b, createCommentVNode as d, createElementVNode as l, createVNode as _, renderSlot as C, createBlock as E, Teleport as be, normalizeClass as z, Fragment as y, renderList as O } from "vue";
|
|
2
2
|
import p from "../PaIcon/PaIcon.vue.js";
|
|
3
|
-
const
|
|
3
|
+
const pe = {
|
|
4
4
|
class: "pa-header-mobile",
|
|
5
5
|
role: "banner"
|
|
6
|
-
},
|
|
6
|
+
}, he = ["href"], me = { class: "pa-header-mobile__bar" }, fe = ["aria-expanded", "aria-label"], _e = { class: "pa-header-mobile__logo" }, ve = { class: "pa-header-mobile__actions" }, ge = ["aria-label"], ye = ["aria-label"], ke = ["aria-label"], Le = { class: "pa-header-mobile__panel-scroll" }, we = {
|
|
7
7
|
key: 0,
|
|
8
8
|
class: "pa-header-mobile__group pa-header-mobile__group--primary"
|
|
9
|
-
},
|
|
9
|
+
}, Ce = ["onClick"], Ee = { class: "pa-header-mobile__tile-label" }, Oe = {
|
|
10
10
|
key: 1,
|
|
11
11
|
class: "pa-header-mobile__group pa-header-mobile__group--secondary"
|
|
12
|
-
},
|
|
12
|
+
}, Ae = ["onClick"], Te = { class: "pa-header-mobile__tile-label" }, $e = ["aria-label"], ze = ["aria-pressed", "onClick"], Se = ["aria-label"], xe = { class: "pa-header-mobile__back-label" }, Be = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "pa-header-mobile__drill-children"
|
|
15
|
-
},
|
|
15
|
+
}, Fe = ["onClick"], Ie = { class: "pa-header-mobile__tile-label" }, Me = {
|
|
16
16
|
key: 1,
|
|
17
17
|
class: "pa-header-mobile__tools-wrap"
|
|
18
|
-
},
|
|
18
|
+
}, De = { class: "pa-header-mobile__tools-header" }, Ne = { class: "pa-header-mobile__tools-header-left" }, Re = { class: "pa-header-mobile__tools-heading" }, Pe = ["aria-expanded", "aria-label"], Ve = {
|
|
19
19
|
key: 0,
|
|
20
20
|
class: "pa-header-mobile__tools-toggle-text"
|
|
21
|
-
},
|
|
21
|
+
}, Ke = {
|
|
22
22
|
key: 0,
|
|
23
23
|
class: "pa-header-mobile__tools-body"
|
|
24
|
-
},
|
|
24
|
+
}, We = {
|
|
25
25
|
key: 0,
|
|
26
26
|
class: "pa-header-mobile__tools-text"
|
|
27
|
-
},
|
|
27
|
+
}, je = {
|
|
28
28
|
key: 1,
|
|
29
29
|
class: "pa-header-mobile__tools-links"
|
|
30
|
-
},
|
|
30
|
+
}, Ue = ["href"], Ge = ["href"], qe = {
|
|
31
31
|
key: 2,
|
|
32
32
|
class: "pa-header-mobile__section-link-wrap"
|
|
33
|
-
},
|
|
34
|
-
let ea = 0;
|
|
35
|
-
function aa() {
|
|
36
|
-
return ++ea;
|
|
37
|
-
}
|
|
38
|
-
const na = /* @__PURE__ */ se({
|
|
33
|
+
}, He = ["href"], Je = { class: "pa-header-mobile__bar pa-header-mobile__bar--in-panel" }, Qe = ["aria-label"], Xe = { class: "pa-header-mobile__logo" }, Ye = { class: "pa-header-mobile__actions" }, Ze = ["aria-label"], ea = ["aria-label"], oa = /* @__PURE__ */ se({
|
|
39
34
|
__name: "PaHeaderMobile",
|
|
40
35
|
props: {
|
|
41
36
|
loggedIn: { type: Boolean, default: !1 },
|
|
@@ -60,7 +55,7 @@ const na = /* @__PURE__ */ se({
|
|
|
60
55
|
},
|
|
61
56
|
emits: ["update:menuOpen", "search-click", "user-click", "navigate", "language-change"],
|
|
62
57
|
setup(i, { emit: G }) {
|
|
63
|
-
const u = i, k = G, S = `pa-header-mobile-panel-${
|
|
58
|
+
const u = i, k = G, S = `pa-header-mobile-panel-${re()}`, B = w(!1), g = h(
|
|
64
59
|
() => u.menuOpen !== void 0 ? u.menuOpen : B.value
|
|
65
60
|
);
|
|
66
61
|
function F(e) {
|
|
@@ -157,11 +152,11 @@ const na = /* @__PURE__ */ se({
|
|
|
157
152
|
function K() {
|
|
158
153
|
!$ || typeof window > "u" || (window.removeEventListener("keydown", P), $ = !1);
|
|
159
154
|
}
|
|
160
|
-
|
|
155
|
+
ue(
|
|
161
156
|
g,
|
|
162
157
|
async (e) => {
|
|
163
158
|
if (e) {
|
|
164
|
-
if (typeof document < "u" && (L = document.activeElement), u.teleportTarget !== !1 && ne(), ie(), await
|
|
159
|
+
if (typeof document < "u" && (L = document.activeElement), u.teleportTarget !== !1 && ne(), ie(), await de(), f.value) {
|
|
165
160
|
const n = R(f.value);
|
|
166
161
|
n.length > 0 ? n[0].focus({ preventScroll: !0 }) : f.value.focus({ preventScroll: !0 });
|
|
167
162
|
}
|
|
@@ -169,25 +164,25 @@ const na = /* @__PURE__ */ se({
|
|
|
169
164
|
K(), V(), v.value = [], m.value = !1, L && typeof document < "u" && document.contains(L) && L.focus({ preventScroll: !0 }), L = null;
|
|
170
165
|
},
|
|
171
166
|
{ flush: "post", immediate: !0 }
|
|
172
|
-
),
|
|
167
|
+
), ce(() => {
|
|
173
168
|
K(), V();
|
|
174
169
|
});
|
|
175
|
-
function
|
|
170
|
+
function W() {
|
|
176
171
|
F(!g.value);
|
|
177
172
|
}
|
|
178
|
-
function
|
|
173
|
+
function j(e) {
|
|
179
174
|
k("search-click", e);
|
|
180
175
|
}
|
|
181
|
-
function
|
|
176
|
+
function U(e) {
|
|
182
177
|
k("user-click", e);
|
|
183
178
|
}
|
|
184
|
-
return (e, n) => (t(), o("header",
|
|
179
|
+
return (e, n) => (t(), o("header", pe, [
|
|
185
180
|
q.value ? (t(), o("a", {
|
|
186
181
|
key: 0,
|
|
187
182
|
class: "pa-header-mobile__skip",
|
|
188
183
|
href: J.value
|
|
189
|
-
}, b(H.value), 9,
|
|
190
|
-
l("div",
|
|
184
|
+
}, b(H.value), 9, he)) : d("", !0),
|
|
185
|
+
l("div", me, [
|
|
191
186
|
l("button", {
|
|
192
187
|
ref_key: "menuToggleRef",
|
|
193
188
|
ref: le,
|
|
@@ -196,14 +191,14 @@ const na = /* @__PURE__ */ se({
|
|
|
196
191
|
"aria-expanded": g.value,
|
|
197
192
|
"aria-controls": S,
|
|
198
193
|
"aria-label": Q.value,
|
|
199
|
-
onClick:
|
|
194
|
+
onClick: W
|
|
200
195
|
}, [
|
|
201
196
|
_(p, {
|
|
202
197
|
name: g.value ? "x" : "list",
|
|
203
198
|
size: "md"
|
|
204
199
|
}, null, 8, ["name"])
|
|
205
|
-
], 8,
|
|
206
|
-
l("div",
|
|
200
|
+
], 8, fe),
|
|
201
|
+
l("div", _e, [
|
|
207
202
|
C(e.$slots, "logo", {}, () => [
|
|
208
203
|
n[0] || (n[0] = l("span", {
|
|
209
204
|
class: "pa-header-mobile__logo-placeholder",
|
|
@@ -212,23 +207,23 @@ const na = /* @__PURE__ */ se({
|
|
|
212
207
|
], !0)
|
|
213
208
|
]),
|
|
214
209
|
C(e.$slots, "actions", {}, () => [
|
|
215
|
-
l("div",
|
|
210
|
+
l("div", ve, [
|
|
216
211
|
l("button", {
|
|
217
212
|
type: "button",
|
|
218
213
|
class: "pa-header-mobile__action",
|
|
219
214
|
"aria-label": i.searchActionLabel,
|
|
220
|
-
onClick:
|
|
215
|
+
onClick: j
|
|
221
216
|
}, [
|
|
222
217
|
_(p, {
|
|
223
218
|
name: "magnifying-glass",
|
|
224
219
|
size: "md"
|
|
225
220
|
})
|
|
226
|
-
], 8,
|
|
221
|
+
], 8, ge),
|
|
227
222
|
l("button", {
|
|
228
223
|
type: "button",
|
|
229
224
|
class: "pa-header-mobile__action pa-header-mobile__action--user",
|
|
230
225
|
"aria-label": I.value,
|
|
231
|
-
onClick:
|
|
226
|
+
onClick: U
|
|
232
227
|
}, [
|
|
233
228
|
C(e.$slots, "user", {}, () => [
|
|
234
229
|
_(p, {
|
|
@@ -236,11 +231,11 @@ const na = /* @__PURE__ */ se({
|
|
|
236
231
|
size: "md"
|
|
237
232
|
}, null, 8, ["name"])
|
|
238
233
|
], !0)
|
|
239
|
-
], 8,
|
|
234
|
+
], 8, ye)
|
|
240
235
|
])
|
|
241
236
|
], !0)
|
|
242
237
|
]),
|
|
243
|
-
(t(), E(
|
|
238
|
+
(t(), E(be, {
|
|
244
239
|
to: i.teleportTarget === !1 ? void 0 : i.teleportTarget,
|
|
245
240
|
disabled: i.teleportTarget === !1
|
|
246
241
|
}, [
|
|
@@ -256,7 +251,7 @@ const na = /* @__PURE__ */ se({
|
|
|
256
251
|
"aria-label": i.panelLabel,
|
|
257
252
|
onKeydown: oe
|
|
258
253
|
}, [
|
|
259
|
-
l("div",
|
|
254
|
+
l("div", Le, [
|
|
260
255
|
X.value ? (t(), o("div", {
|
|
261
256
|
key: 1,
|
|
262
257
|
class: z(["pa-header-mobile__drill", `pa-header-mobile__drill--${s.value.tier}`])
|
|
@@ -271,9 +266,9 @@ const na = /* @__PURE__ */ se({
|
|
|
271
266
|
name: "caret-left",
|
|
272
267
|
size: "sm"
|
|
273
268
|
}),
|
|
274
|
-
l("span",
|
|
275
|
-
], 8,
|
|
276
|
-
s.value.item.children && s.value.item.children.length > 0 ? (t(), o("ul",
|
|
269
|
+
l("span", xe, b(s.value.item.label), 1)
|
|
270
|
+
], 8, Se),
|
|
271
|
+
s.value.item.children && s.value.item.children.length > 0 ? (t(), o("ul", Be, [
|
|
277
272
|
(t(!0), o(y, null, O(s.value.item.children, (a, r) => (t(), o("li", {
|
|
278
273
|
key: `c-${r}-${a.label}`,
|
|
279
274
|
class: "pa-header-mobile__tile-wrap"
|
|
@@ -283,26 +278,26 @@ const na = /* @__PURE__ */ se({
|
|
|
283
278
|
class: "pa-header-mobile__tile",
|
|
284
279
|
onClick: (c) => x(c, a, s.value.tier)
|
|
285
280
|
}, [
|
|
286
|
-
l("span",
|
|
281
|
+
l("span", Ie, b(a.label), 1),
|
|
287
282
|
A(a) ? (t(), E(p, {
|
|
288
283
|
key: 0,
|
|
289
284
|
name: "caret-right",
|
|
290
285
|
size: "sm"
|
|
291
286
|
})) : d("", !0)
|
|
292
|
-
], 8,
|
|
287
|
+
], 8, Fe)
|
|
293
288
|
]))), 128))
|
|
294
289
|
])) : d("", !0),
|
|
295
|
-
s.value.tier === "primary" && s.value.item.tools ? (t(), o("div",
|
|
290
|
+
s.value.tier === "primary" && s.value.item.tools ? (t(), o("div", Me, [
|
|
296
291
|
l("div", {
|
|
297
292
|
class: z(["pa-header-mobile__tools", { "pa-header-mobile__tools--open": m.value }])
|
|
298
293
|
}, [
|
|
299
|
-
l("div",
|
|
300
|
-
l("div",
|
|
294
|
+
l("div", De, [
|
|
295
|
+
l("div", Ne, [
|
|
301
296
|
_(p, {
|
|
302
297
|
name: s.value.item.tools.icon,
|
|
303
298
|
size: "md"
|
|
304
299
|
}, null, 8, ["name"]),
|
|
305
|
-
l("h3",
|
|
300
|
+
l("h3", Re, b(s.value.item.tools.heading), 1)
|
|
306
301
|
]),
|
|
307
302
|
l("button", {
|
|
308
303
|
type: "button",
|
|
@@ -315,12 +310,12 @@ const na = /* @__PURE__ */ se({
|
|
|
315
310
|
key: 1,
|
|
316
311
|
name: "caret-up",
|
|
317
312
|
size: "sm"
|
|
318
|
-
})) : (t(), o("span",
|
|
319
|
-
], 8,
|
|
313
|
+
})) : (t(), o("span", Ve, b(i.toolsOpenLabel), 1))
|
|
314
|
+
], 8, Pe)
|
|
320
315
|
]),
|
|
321
|
-
m.value ? (t(), o("div",
|
|
322
|
-
s.value.item.tools.body ? (t(), o("p",
|
|
323
|
-
s.value.item.tools.links && s.value.item.tools.links.length > 0 ? (t(), o("ul",
|
|
316
|
+
m.value ? (t(), o("div", Ke, [
|
|
317
|
+
s.value.item.tools.body ? (t(), o("p", We, b(s.value.item.tools.body), 1)) : d("", !0),
|
|
318
|
+
s.value.item.tools.links && s.value.item.tools.links.length > 0 ? (t(), o("ul", je, [
|
|
324
319
|
(t(!0), o(y, null, O(s.value.item.tools.links, (a, r) => (t(), o("li", {
|
|
325
320
|
key: `tl-${r}-${a.label}`,
|
|
326
321
|
class: "pa-header-mobile__tools-link-item"
|
|
@@ -332,18 +327,18 @@ const na = /* @__PURE__ */ se({
|
|
|
332
327
|
l("a", {
|
|
333
328
|
class: "pa-header-mobile__tools-link",
|
|
334
329
|
href: a.href
|
|
335
|
-
}, b(a.label), 9,
|
|
330
|
+
}, b(a.label), 9, Ue)
|
|
336
331
|
]))), 128))
|
|
337
332
|
])) : d("", !0),
|
|
338
333
|
s.value.item.tools.cta ? (t(), o("a", {
|
|
339
334
|
key: 2,
|
|
340
335
|
class: "pa-header-mobile__tools-cta",
|
|
341
336
|
href: s.value.item.tools.cta.href
|
|
342
|
-
}, b(s.value.item.tools.cta.label), 9,
|
|
337
|
+
}, b(s.value.item.tools.cta.label), 9, Ge)) : d("", !0)
|
|
343
338
|
])) : d("", !0)
|
|
344
339
|
], 2)
|
|
345
340
|
])) : d("", !0),
|
|
346
|
-
s.value.item.href ? (t(), o("div",
|
|
341
|
+
s.value.item.href ? (t(), o("div", qe, [
|
|
347
342
|
l("a", {
|
|
348
343
|
class: "pa-header-mobile__section-link",
|
|
349
344
|
href: s.value.item.href
|
|
@@ -353,10 +348,10 @@ const na = /* @__PURE__ */ se({
|
|
|
353
348
|
name: "arrow-right",
|
|
354
349
|
size: "sm"
|
|
355
350
|
})
|
|
356
|
-
], 8,
|
|
351
|
+
], 8, He)
|
|
357
352
|
])) : d("", !0)
|
|
358
353
|
], 2)) : (t(), o(y, { key: 0 }, [
|
|
359
|
-
i.primaryNav.length > 0 ? (t(), o("ul",
|
|
354
|
+
i.primaryNav.length > 0 ? (t(), o("ul", we, [
|
|
360
355
|
(t(!0), o(y, null, O(i.primaryNav, (a, r) => (t(), o("li", {
|
|
361
356
|
key: `p-${r}-${a.label}`,
|
|
362
357
|
class: "pa-header-mobile__tile-wrap"
|
|
@@ -366,16 +361,16 @@ const na = /* @__PURE__ */ se({
|
|
|
366
361
|
class: "pa-header-mobile__tile",
|
|
367
362
|
onClick: (c) => x(c, a, "primary")
|
|
368
363
|
}, [
|
|
369
|
-
l("span",
|
|
364
|
+
l("span", Ee, b(a.label), 1),
|
|
370
365
|
A(a) ? (t(), E(p, {
|
|
371
366
|
key: 0,
|
|
372
367
|
name: "caret-right",
|
|
373
368
|
size: "sm"
|
|
374
369
|
})) : d("", !0)
|
|
375
|
-
], 8,
|
|
370
|
+
], 8, Ce)
|
|
376
371
|
]))), 128))
|
|
377
372
|
])) : d("", !0),
|
|
378
|
-
i.secondaryNav.length > 0 ? (t(), o("ul",
|
|
373
|
+
i.secondaryNav.length > 0 ? (t(), o("ul", Oe, [
|
|
379
374
|
(t(!0), o(y, null, O(i.secondaryNav, (a, r) => (t(), o("li", {
|
|
380
375
|
key: `s-${r}-${a.label}`,
|
|
381
376
|
class: "pa-header-mobile__tile-wrap"
|
|
@@ -385,13 +380,13 @@ const na = /* @__PURE__ */ se({
|
|
|
385
380
|
class: "pa-header-mobile__tile",
|
|
386
381
|
onClick: (c) => x(c, a, "secondary")
|
|
387
382
|
}, [
|
|
388
|
-
l("span",
|
|
383
|
+
l("span", Te, b(a.label), 1),
|
|
389
384
|
A(a) ? (t(), E(p, {
|
|
390
385
|
key: 0,
|
|
391
386
|
name: "caret-right",
|
|
392
387
|
size: "sm"
|
|
393
388
|
})) : d("", !0)
|
|
394
|
-
], 8,
|
|
389
|
+
], 8, Ae)
|
|
395
390
|
]))), 128))
|
|
396
391
|
])) : d("", !0),
|
|
397
392
|
i.languages.length > 0 ? (t(), o("div", {
|
|
@@ -408,25 +403,25 @@ const na = /* @__PURE__ */ se({
|
|
|
408
403
|
}]),
|
|
409
404
|
"aria-pressed": a.code === i.currentLanguage,
|
|
410
405
|
onClick: (r) => ee(r, a)
|
|
411
|
-
}, b(a.label), 11,
|
|
412
|
-
], 8,
|
|
406
|
+
}, b(a.label), 11, ze))), 128))
|
|
407
|
+
], 8, $e)) : d("", !0)
|
|
413
408
|
], 64))
|
|
414
409
|
]),
|
|
415
|
-
l("div",
|
|
410
|
+
l("div", Je, [
|
|
416
411
|
l("button", {
|
|
417
412
|
type: "button",
|
|
418
413
|
class: "pa-header-mobile__menu-toggle",
|
|
419
414
|
"aria-expanded": !0,
|
|
420
415
|
"aria-controls": S,
|
|
421
416
|
"aria-label": i.closeMenuLabel,
|
|
422
|
-
onClick:
|
|
417
|
+
onClick: W
|
|
423
418
|
}, [
|
|
424
419
|
_(p, {
|
|
425
420
|
name: "x",
|
|
426
421
|
size: "md"
|
|
427
422
|
})
|
|
428
|
-
], 8,
|
|
429
|
-
l("div",
|
|
423
|
+
], 8, Qe),
|
|
424
|
+
l("div", Xe, [
|
|
430
425
|
C(e.$slots, "logo", {}, () => [
|
|
431
426
|
n[2] || (n[2] = l("span", {
|
|
432
427
|
class: "pa-header-mobile__logo-placeholder",
|
|
@@ -434,23 +429,23 @@ const na = /* @__PURE__ */ se({
|
|
|
434
429
|
}, null, -1))
|
|
435
430
|
], !0)
|
|
436
431
|
]),
|
|
437
|
-
l("div",
|
|
432
|
+
l("div", Ye, [
|
|
438
433
|
l("button", {
|
|
439
434
|
type: "button",
|
|
440
435
|
class: "pa-header-mobile__action",
|
|
441
436
|
"aria-label": i.searchActionLabel,
|
|
442
|
-
onClick:
|
|
437
|
+
onClick: j
|
|
443
438
|
}, [
|
|
444
439
|
_(p, {
|
|
445
440
|
name: "magnifying-glass",
|
|
446
441
|
size: "md"
|
|
447
442
|
})
|
|
448
|
-
], 8,
|
|
443
|
+
], 8, Ze),
|
|
449
444
|
l("button", {
|
|
450
445
|
type: "button",
|
|
451
446
|
class: "pa-header-mobile__action pa-header-mobile__action--user",
|
|
452
447
|
"aria-label": I.value,
|
|
453
|
-
onClick:
|
|
448
|
+
onClick: U
|
|
454
449
|
}, [
|
|
455
450
|
C(e.$slots, "user", {}, () => [
|
|
456
451
|
_(p, {
|
|
@@ -458,15 +453,15 @@ const na = /* @__PURE__ */ se({
|
|
|
458
453
|
size: "md"
|
|
459
454
|
}, null, 8, ["name"])
|
|
460
455
|
], !0)
|
|
461
|
-
], 8,
|
|
456
|
+
], 8, ea)
|
|
462
457
|
])
|
|
463
458
|
])
|
|
464
|
-
], 42,
|
|
459
|
+
], 42, ke)) : d("", !0)
|
|
465
460
|
], 8, ["to", "disabled"]))
|
|
466
461
|
]));
|
|
467
462
|
}
|
|
468
463
|
});
|
|
469
464
|
export {
|
|
470
|
-
|
|
465
|
+
oa as default
|
|
471
466
|
};
|
|
472
467
|
//# sourceMappingURL=PaHeaderMobile.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaHeaderMobile.vue2.js","sources":["../../../src/components/PaHeaderMobile/PaHeaderMobile.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n PaHeaderLink,\n PaHeaderTools,\n PaHeaderNavItem,\n PaHeaderLanguage,\n PaHeaderSkipLinkConfig,\n PaHeaderNavigateEventPayload,\n PaHeaderLanguageChangeEventPayload,\n} from '../PaHeaderShared/types'\n\nexport type {\n PaHeaderLink,\n PaHeaderTools,\n PaHeaderNavItem,\n PaHeaderLanguage,\n PaHeaderSkipLinkConfig,\n PaHeaderNavigateEventPayload,\n PaHeaderLanguageChangeEventPayload,\n}\n\nlet mobileUid = 0\nfunction nextMobileId() {\n return ++mobileUid\n}\n\nexport interface PaHeaderMobileProps {\n loggedIn?: boolean\n primaryNav?: PaHeaderNavItem[]\n secondaryNav?: PaHeaderNavItem[]\n languages?: PaHeaderLanguage[]\n currentLanguage?: string\n menuOpen?: boolean\n skipLink?: boolean | PaHeaderSkipLinkConfig\n /**\n * Target for the menu panel's <Teleport>. Defaults to `'body'`.\n * Pass `false` to disable Teleport (panel renders inline as a child of the\n * <header> wrapper, useful for Histoire stories or constrained previews).\n */\n teleportTarget?: string | HTMLElement | false\n panelLabel?: string\n openMenuLabel?: string\n closeMenuLabel?: string\n searchActionLabel?: string\n userActionLabelLoggedOut?: string\n userActionLabelLoggedIn?: string\n languageGroupLabel?: string\n backLabel?: string\n toolsOpenLabel?: string\n toolsCloseLabel?: string\n exploreLabel?: string\n}\n\ninterface DrillEntry {\n item: PaHeaderNavItem\n tier: 'primary' | 'secondary'\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, ref, watch } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(defineProps<PaHeaderMobileProps>(), {\n loggedIn: false,\n primaryNav: () => [],\n secondaryNav: () => [],\n languages: () => [],\n currentLanguage: undefined,\n menuOpen: undefined,\n skipLink: true,\n teleportTarget: 'body',\n panelLabel: 'Menu principale',\n openMenuLabel: 'Apri menu',\n closeMenuLabel: 'Chiudi menu',\n searchActionLabel: 'Cerca',\n userActionLabelLoggedOut: 'Accedi',\n userActionLabelLoggedIn: 'Area personale',\n languageGroupLabel: 'Seleziona la lingua',\n backLabel: 'Indietro',\n toolsOpenLabel: 'Apri',\n toolsCloseLabel: 'Chiudi',\n exploreLabel: 'Esplora',\n})\n\nconst emit = defineEmits<{\n 'update:menuOpen': [boolean]\n 'search-click': [MouseEvent]\n 'user-click': [MouseEvent]\n navigate: [PaHeaderNavigateEventPayload]\n 'language-change': [PaHeaderLanguageChangeEventPayload]\n}>()\n\ndefineSlots<{\n logo?: () => unknown\n actions?: () => unknown\n user?: () => unknown\n}>()\n\nconst componentId = nextMobileId()\nconst panelId = `pa-header-mobile-panel-${componentId}`\n\nconst internalMenuOpen = ref(false)\nconst isMenuOpen = computed(() =>\n props.menuOpen !== undefined ? props.menuOpen : internalMenuOpen.value,\n)\n\nfunction setMenuOpen(next: boolean) {\n if (props.menuOpen === undefined) {\n internalMenuOpen.value = next\n }\n emit('update:menuOpen', next)\n}\n\nconst skipLinkEnabled = computed(() => props.skipLink !== false)\nconst skipLinkLabel = computed(() => {\n if (typeof props.skipLink === 'object' && props.skipLink !== null) {\n return props.skipLink.label ?? 'Vai al contenuto'\n }\n return 'Vai al contenuto'\n})\nconst skipLinkTarget = computed(() => {\n if (typeof props.skipLink === 'object' && props.skipLink !== null) {\n return props.skipLink.target ?? '#main'\n }\n return '#main'\n})\n\nconst menuToggleLabel = computed(() =>\n isMenuOpen.value ? props.closeMenuLabel : props.openMenuLabel,\n)\nconst userActionLabel = computed(() =>\n props.loggedIn ? props.userActionLabelLoggedIn : props.userActionLabelLoggedOut,\n)\nconst userIconName = computed(() => (props.loggedIn ? 'user-fill' : 'user'))\n\nconst drillStack = ref<DrillEntry[]>([])\nconst toolsOpen = ref(false)\n\nconst currentDrill = computed<DrillEntry | null>(() =>\n drillStack.value.length > 0\n ? drillStack.value[drillStack.value.length - 1]!\n : null,\n)\nconst currentLevel = computed<'primary' | 'secondary'>(() =>\n currentDrill.value ? 'secondary-level' as never : 'primary',\n)\nconst isSecondaryLevel = computed(() => drillStack.value.length > 0)\n\nconst secondaryBg = computed(() =>\n currentDrill.value?.tier === 'secondary' ? '#F2F6FC' : '#FFFFFF',\n)\n\nfunction hasChildren(item: PaHeaderNavItem): boolean {\n return Boolean(item.children && item.children.length > 0)\n}\n\nfunction tileIndicatesDrill(item: PaHeaderNavItem): boolean {\n return hasChildren(item) || Boolean(item.tools)\n}\n\nfunction handleTileClick(event: MouseEvent, item: PaHeaderNavItem, tier: 'primary' | 'secondary') {\n if (tileIndicatesDrill(item)) {\n drillStack.value.push({ item, tier })\n toolsOpen.value = false\n return\n }\n // Leaf: emit navigate\n let prevented = false\n const payload: PaHeaderNavigateEventPayload = {\n item,\n originalEvent: event,\n preventDefault: () => {\n prevented = true\n payload.defaultPrevented = true\n },\n defaultPrevented: false,\n }\n emit('navigate', payload)\n if (!prevented && item.href && typeof window !== 'undefined') {\n window.location.assign(item.href)\n }\n}\n\nfunction popDrill() {\n drillStack.value.pop()\n toolsOpen.value = false\n}\n\nfunction handleLanguageClick(event: MouseEvent, language: PaHeaderLanguage) {\n let prevented = false\n const payload: PaHeaderLanguageChangeEventPayload = {\n language,\n originalEvent: event,\n preventDefault: () => {\n prevented = true\n payload.defaultPrevented = true\n },\n defaultPrevented: false,\n }\n emit('language-change', payload)\n if (!prevented && language.href && typeof window !== 'undefined') {\n window.location.assign(language.href)\n }\n}\n\nfunction toggleTools() {\n toolsOpen.value = !toolsOpen.value\n}\n\n// --- Body scroll lock + Esc + focus management (panel) ---\n\nconst panelRef = ref<HTMLElement | null>(null)\nconst menuToggleRef = ref<HTMLButtonElement | null>(null)\n\nlet previouslyFocusedElement: HTMLElement | null = null\nlet originalBodyOverflow = ''\nlet originalBodyPaddingRight = ''\nlet scrollLockActive = false\nlet escListenerAttached = false\n\nconst FOCUSABLE_SELECTOR =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\nfunction getFocusable(root: HTMLElement): HTMLElement[] {\n return Array.from(root.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR))\n}\n\nfunction onPanelKeydown(event: KeyboardEvent) {\n if (event.key !== 'Tab' || !panelRef.value) return\n const focusable = getFocusable(panelRef.value)\n if (focusable.length === 0) {\n event.preventDefault()\n panelRef.value.focus()\n return\n }\n const first = focusable[0]!\n const last = focusable[focusable.length - 1]!\n const active = document.activeElement as HTMLElement | null\n if (event.shiftKey) {\n if (active === first || !panelRef.value.contains(active)) {\n event.preventDefault()\n last.focus()\n }\n } else {\n if (active === last || !panelRef.value.contains(active)) {\n event.preventDefault()\n first.focus()\n }\n }\n}\n\nfunction onWindowKeydownEsc(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n setMenuOpen(false)\n }\n}\n\nfunction lockScroll() {\n if (scrollLockActive || typeof document === 'undefined') return\n originalBodyOverflow = document.body.style.overflow\n originalBodyPaddingRight = document.body.style.paddingRight\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n document.body.style.overflow = 'hidden'\n if (scrollbarWidth > 0) {\n document.body.style.paddingRight = `${scrollbarWidth}px`\n }\n scrollLockActive = true\n}\n\nfunction unlockScroll() {\n if (!scrollLockActive || typeof document === 'undefined') return\n document.body.style.overflow = originalBodyOverflow\n document.body.style.paddingRight = originalBodyPaddingRight\n scrollLockActive = false\n}\n\nfunction attachEsc() {\n if (escListenerAttached || typeof window === 'undefined') return\n window.addEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = true\n}\n\nfunction detachEsc() {\n if (!escListenerAttached || typeof window === 'undefined') return\n window.removeEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = false\n}\n\nwatch(\n isMenuOpen,\n async (next) => {\n if (next) {\n if (typeof document !== 'undefined') {\n previouslyFocusedElement = document.activeElement as HTMLElement | null\n }\n if (props.teleportTarget !== false) {\n lockScroll()\n }\n attachEsc()\n await nextTick()\n if (panelRef.value) {\n const focusable = getFocusable(panelRef.value)\n if (focusable.length > 0) {\n focusable[0]!.focus({ preventScroll: true })\n } else {\n panelRef.value.focus({ preventScroll: true })\n }\n }\n } else {\n detachEsc()\n unlockScroll()\n drillStack.value = []\n toolsOpen.value = false\n if (\n previouslyFocusedElement &&\n typeof document !== 'undefined' &&\n document.contains(previouslyFocusedElement)\n ) {\n previouslyFocusedElement.focus({ preventScroll: true })\n }\n previouslyFocusedElement = null\n }\n },\n { flush: 'post', immediate: true },\n)\n\nonBeforeUnmount(() => {\n detachEsc()\n unlockScroll()\n})\n\nfunction onMenuToggle() {\n setMenuOpen(!isMenuOpen.value)\n}\n\nfunction onSearchClick(event: MouseEvent) {\n emit('search-click', event)\n}\n\nfunction onUserClick(event: MouseEvent) {\n emit('user-click', event)\n}\n</script>\n\n<template>\n <header class=\"pa-header-mobile\" role=\"banner\">\n <a\n v-if=\"skipLinkEnabled\"\n class=\"pa-header-mobile__skip\"\n :href=\"skipLinkTarget\"\n >\n {{ skipLinkLabel }}\n </a>\n\n <div class=\"pa-header-mobile__bar\">\n <button\n ref=\"menuToggleRef\"\n type=\"button\"\n class=\"pa-header-mobile__menu-toggle\"\n :aria-expanded=\"isMenuOpen\"\n :aria-controls=\"panelId\"\n :aria-label=\"menuToggleLabel\"\n @click=\"onMenuToggle\"\n >\n <PaIcon :name=\"isMenuOpen ? 'x' : 'list'\" size=\"md\" />\n </button>\n\n <div class=\"pa-header-mobile__logo\">\n <slot name=\"logo\">\n <span\n class=\"pa-header-mobile__logo-placeholder\"\n aria-hidden=\"true\"\n />\n </slot>\n </div>\n\n <slot name=\"actions\">\n <div class=\"pa-header-mobile__actions\">\n <button\n type=\"button\"\n class=\"pa-header-mobile__action\"\n :aria-label=\"searchActionLabel\"\n @click=\"onSearchClick\"\n >\n <PaIcon name=\"magnifying-glass\" size=\"md\" />\n </button>\n <button\n type=\"button\"\n class=\"pa-header-mobile__action pa-header-mobile__action--user\"\n :aria-label=\"userActionLabel\"\n @click=\"onUserClick\"\n >\n <slot name=\"user\">\n <PaIcon :name=\"userIconName\" size=\"md\" />\n </slot>\n </button>\n </div>\n </slot>\n </div>\n\n <Teleport :to=\"teleportTarget === false ? undefined : teleportTarget\" :disabled=\"teleportTarget === false\">\n <div\n v-if=\"isMenuOpen\"\n :id=\"panelId\"\n ref=\"panelRef\"\n class=\"pa-header-mobile__panel\"\n :class=\"{ 'pa-header-mobile__panel--inline': teleportTarget === false }\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n :aria-label=\"panelLabel\"\n @keydown=\"onPanelKeydown\"\n >\n <div class=\"pa-header-mobile__panel-scroll\">\n <!-- Primary level -->\n <template v-if=\"!isSecondaryLevel\">\n <ul\n v-if=\"primaryNav.length > 0\"\n class=\"pa-header-mobile__group pa-header-mobile__group--primary\"\n >\n <li\n v-for=\"(item, idx) in primaryNav\"\n :key=\"`p-${idx}-${item.label}`\"\n class=\"pa-header-mobile__tile-wrap\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__tile\"\n @click=\"(event) => handleTileClick(event, item, 'primary')\"\n >\n <span class=\"pa-header-mobile__tile-label\">{{ item.label }}</span>\n <PaIcon\n v-if=\"tileIndicatesDrill(item)\"\n name=\"caret-right\"\n size=\"sm\"\n />\n </button>\n </li>\n </ul>\n\n <ul\n v-if=\"secondaryNav.length > 0\"\n class=\"pa-header-mobile__group pa-header-mobile__group--secondary\"\n >\n <li\n v-for=\"(item, idx) in secondaryNav\"\n :key=\"`s-${idx}-${item.label}`\"\n class=\"pa-header-mobile__tile-wrap\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__tile\"\n @click=\"(event) => handleTileClick(event, item, 'secondary')\"\n >\n <span class=\"pa-header-mobile__tile-label\">{{ item.label }}</span>\n <PaIcon\n v-if=\"tileIndicatesDrill(item)\"\n name=\"caret-right\"\n size=\"sm\"\n />\n </button>\n </li>\n </ul>\n\n <div\n v-if=\"languages.length > 0\"\n class=\"pa-header-mobile__language\"\n role=\"group\"\n :aria-label=\"languageGroupLabel\"\n >\n <button\n v-for=\"lang in languages\"\n :key=\"lang.code\"\n type=\"button\"\n class=\"pa-header-mobile__language-pill\"\n :class=\"{\n 'pa-header-mobile__language-pill--active':\n lang.code === currentLanguage,\n }\"\n :aria-pressed=\"lang.code === currentLanguage\"\n @click=\"(event) => handleLanguageClick(event, lang)\"\n >\n {{ lang.label }}\n </button>\n </div>\n </template>\n\n <!-- Secondary level -->\n <template v-else>\n <div\n class=\"pa-header-mobile__drill\"\n :class=\"`pa-header-mobile__drill--${currentDrill!.tier}`\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__back\"\n :aria-label=\"backLabel\"\n @click=\"popDrill\"\n >\n <PaIcon name=\"caret-left\" size=\"sm\" />\n <span class=\"pa-header-mobile__back-label\">{{ currentDrill!.item.label }}</span>\n </button>\n\n <ul\n v-if=\"currentDrill!.item.children && currentDrill!.item.children.length > 0\"\n class=\"pa-header-mobile__drill-children\"\n >\n <li\n v-for=\"(child, idx) in currentDrill!.item.children\"\n :key=\"`c-${idx}-${child.label}`\"\n class=\"pa-header-mobile__tile-wrap\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__tile\"\n @click=\"(event) => handleTileClick(event, child, currentDrill!.tier)\"\n >\n <span class=\"pa-header-mobile__tile-label\">{{ child.label }}</span>\n <PaIcon\n v-if=\"tileIndicatesDrill(child)\"\n name=\"caret-right\"\n size=\"sm\"\n />\n </button>\n </li>\n </ul>\n\n <div\n v-if=\"currentDrill!.tier === 'primary' && currentDrill!.item.tools\"\n class=\"pa-header-mobile__tools-wrap\"\n >\n <div\n class=\"pa-header-mobile__tools\"\n :class=\"{ 'pa-header-mobile__tools--open': toolsOpen }\"\n >\n <div class=\"pa-header-mobile__tools-header\">\n <div class=\"pa-header-mobile__tools-header-left\">\n <PaIcon :name=\"currentDrill!.item.tools.icon\" size=\"md\" />\n <h3 class=\"pa-header-mobile__tools-heading\">\n {{ currentDrill!.item.tools.heading }}\n </h3>\n </div>\n <button\n type=\"button\"\n class=\"pa-header-mobile__tools-toggle\"\n :aria-expanded=\"toolsOpen\"\n :aria-label=\"toolsOpen ? toolsCloseLabel : toolsOpenLabel\"\n @click=\"toggleTools\"\n >\n <span v-if=\"!toolsOpen\" class=\"pa-header-mobile__tools-toggle-text\">{{ toolsOpenLabel }}</span>\n <PaIcon v-else name=\"caret-up\" size=\"sm\" />\n </button>\n </div>\n\n <div v-if=\"toolsOpen\" class=\"pa-header-mobile__tools-body\">\n <p\n v-if=\"currentDrill!.item.tools.body\"\n class=\"pa-header-mobile__tools-text\"\n >{{ currentDrill!.item.tools.body }}</p>\n\n <ul\n v-if=\"currentDrill!.item.tools.links && currentDrill!.item.tools.links.length > 0\"\n class=\"pa-header-mobile__tools-links\"\n >\n <li\n v-for=\"(link, idx) in currentDrill!.item.tools.links\"\n :key=\"`tl-${idx}-${link.label}`\"\n class=\"pa-header-mobile__tools-link-item\"\n >\n <span class=\"pa-header-mobile__tools-bullet\" aria-hidden=\"true\" />\n <a class=\"pa-header-mobile__tools-link\" :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n\n <a\n v-if=\"currentDrill!.item.tools.cta\"\n class=\"pa-header-mobile__tools-cta\"\n :href=\"currentDrill!.item.tools.cta.href\"\n >{{ currentDrill!.item.tools.cta.label }}</a>\n </div>\n </div>\n </div>\n\n <div\n v-if=\"currentDrill!.item.href\"\n class=\"pa-header-mobile__section-link-wrap\"\n >\n <a class=\"pa-header-mobile__section-link\" :href=\"currentDrill!.item.href\">\n <span>{{ exploreLabel }} {{ currentDrill!.item.label }}</span>\n <PaIcon name=\"arrow-right\" size=\"sm\" />\n </a>\n </div>\n </div>\n </template>\n </div>\n\n <!-- Bar at panel bottom (Open state) -->\n <div class=\"pa-header-mobile__bar pa-header-mobile__bar--in-panel\">\n <button\n type=\"button\"\n class=\"pa-header-mobile__menu-toggle\"\n :aria-expanded=\"true\"\n :aria-controls=\"panelId\"\n :aria-label=\"closeMenuLabel\"\n @click=\"onMenuToggle\"\n >\n <PaIcon name=\"x\" size=\"md\" />\n </button>\n\n <div class=\"pa-header-mobile__logo\">\n <slot name=\"logo\">\n <span class=\"pa-header-mobile__logo-placeholder\" aria-hidden=\"true\" />\n </slot>\n </div>\n\n <div class=\"pa-header-mobile__actions\">\n <button\n type=\"button\"\n class=\"pa-header-mobile__action\"\n :aria-label=\"searchActionLabel\"\n @click=\"onSearchClick\"\n >\n <PaIcon name=\"magnifying-glass\" size=\"md\" />\n </button>\n <button\n type=\"button\"\n class=\"pa-header-mobile__action pa-header-mobile__action--user\"\n :aria-label=\"userActionLabel\"\n @click=\"onUserClick\"\n >\n <slot name=\"user\">\n <PaIcon :name=\"userIconName\" size=\"md\" />\n </slot>\n </button>\n </div>\n </div>\n </div>\n </Teleport>\n </header>\n</template>\n\n<style scoped>\n.pa-header-mobile {\n position: relative;\n width: 100%;\n background: #ffffff;\n font-family: var(--pa-font-family-base, 'Inter', sans-serif);\n}\n\n.pa-header-mobile__skip {\n position: absolute;\n left: -9999px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n background: #ffffff;\n color: var(--pa-color-text-dark-blue);\n padding: var(--pa-space-xs) var(--pa-space-sm);\n border-radius: var(--pa-radius-smooth);\n text-decoration: none;\n font-size: var(--pa-font-label-sm-size);\n font-weight: var(--pa-font-label-sm-weight);\n line-height: var(--pa-font-label-sm-line-height);\n z-index: 9999;\n}\n\n.pa-header-mobile__skip:focus-visible {\n position: fixed;\n left: var(--pa-space-xs);\n top: var(--pa-space-xs);\n width: auto;\n height: auto;\n overflow: visible;\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n box-shadow: 0 0 16px 0 #e3e5e8;\n}\n\n.pa-header-mobile__bar {\n position: relative;\n height: 60px;\n width: 100%;\n background: #ffffff;\n container-type: inline-size;\n}\n\n.pa-header-mobile__bar--in-panel {\n flex-shrink: 0;\n border-top: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\n}\n\n.pa-header-mobile__menu-toggle,\n.pa-header-mobile__action {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: 0;\n background: var(--pa-color-bg-primary-light-40);\n color: var(--pa-color-neutral-gray);\n cursor: pointer;\n}\n\n.pa-header-mobile__menu-toggle {\n left: 0;\n}\n\n.pa-header-mobile__menu-toggle:focus-visible,\n.pa-header-mobile__action:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-mobile__logo {\n position: absolute;\n left: 68px;\n top: 10px;\n height: 40px;\n display: flex;\n align-items: center;\n max-width: calc(100% - 68px - 112px);\n}\n\n.pa-header-mobile__logo-placeholder {\n display: block;\n width: 70.133px;\n height: 40px;\n background: var(--pa-color-primary);\n}\n\n.pa-header-mobile__actions {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: row;\n}\n\n.pa-header-mobile__action {\n position: static;\n flex-shrink: 0;\n}\n\n/* Panel */\n\n.pa-header-mobile__panel {\n position: fixed;\n inset: 0;\n z-index: 1000;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n font-family: var(--pa-font-family-base, 'Inter', sans-serif);\n}\n\n/* Inline variant: panel constrained to its parent (typically `.pa-header-mobile`\n * expanded by the consumer to viewport-like dimensions). Used in Histoire so the\n * panel doesn't take over the docs UI. */\n.pa-header-mobile__panel--inline {\n position: absolute;\n inset: 0;\n z-index: 1;\n min-height: 0;\n}\n\n.pa-header-mobile__panel:focus {\n outline: none;\n}\n\n.pa-header-mobile__panel-scroll {\n flex: 1 1 auto;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n/* Groups (Primary level) */\n\n.pa-header-mobile__group {\n list-style: none;\n margin: 0;\n padding: var(--pa-space-sm) 0;\n display: flex;\n flex-direction: column;\n}\n\n.pa-header-mobile__group--primary {\n background: #ffffff;\n}\n\n.pa-header-mobile__group--secondary {\n background: var(--pa-color-bg-primary-light-40);\n}\n\n.pa-header-mobile__tile-wrap {\n list-style: none;\n}\n\n.pa-header-mobile__tile {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--pa-space-sm);\n padding: var(--pa-space-sm) var(--pa-space-md);\n background: transparent;\n border: 0;\n border-bottom: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\n cursor: pointer;\n text-align: left;\n font-family: inherit;\n}\n\n.pa-header-mobile__tile-label {\n flex: 1 1 0;\n font-size: var(--pa-font-label-sm-size);\n font-weight: var(--pa-font-label-sm-weight);\n line-height: var(--pa-font-label-sm-line-height);\n color: var(--pa-color-text-dark-blue);\n}\n\n.pa-header-mobile__tile:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n/* Language switcher */\n\n.pa-header-mobile__language {\n background: var(--pa-color-bg-primary-light-40);\n display: flex;\n justify-content: center;\n gap: var(--pa-space-sm);\n padding: var(--pa-space-xs) 0;\n}\n\n.pa-header-mobile__language-pill {\n background: transparent;\n border: 0;\n padding: 4px 8px 0 8px;\n font-family: inherit;\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n border-bottom: 4px solid transparent;\n cursor: pointer;\n border-radius: 4px 4px 0 0;\n}\n\n.pa-header-mobile__language-pill--active {\n color: #000000;\n border-bottom-color: #000000;\n}\n\n.pa-header-mobile__language-pill:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n/* Drill (Secondary level) */\n\n.pa-header-mobile__drill {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n}\n\n.pa-header-mobile__drill--primary {\n background: #ffffff;\n}\n\n.pa-header-mobile__drill--secondary {\n background: var(--pa-color-bg-primary-light-40);\n}\n\n.pa-header-mobile__back {\n display: flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding: var(--pa-space-md) var(--pa-space-md) 18px;\n background: transparent;\n border: 0;\n font-family: inherit;\n cursor: pointer;\n text-align: left;\n}\n\n.pa-header-mobile__back-label {\n font-size: 20px;\n line-height: 30px;\n font-weight: 600;\n color: var(--pa-color-text-dark-blue);\n}\n\n.pa-header-mobile__back:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-mobile__drill-children {\n list-style: none;\n margin: 0;\n padding: 0 var(--pa-space-md) var(--pa-space-md);\n display: flex;\n flex-direction: column;\n}\n\n.pa-header-mobile__drill-children .pa-header-mobile__tile {\n padding-left: 0;\n padding-right: 0;\n}\n\n/* Tools card */\n\n.pa-header-mobile__tools-wrap {\n padding: 0 36px;\n}\n\n.pa-header-mobile__tools {\n background: var(--pa-color-bg-primary-light-40);\n border-radius: 4px;\n padding: var(--pa-space-md);\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-mobile__tools-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-mobile__tools-header-left {\n display: flex;\n align-items: center;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-mobile__tools-heading {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n letter-spacing: -0.5px;\n font-weight: 700;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-mobile__tools-toggle {\n background: transparent;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n padding: 0;\n font-family: inherit;\n}\n\n.pa-header-mobile__tools-toggle-text {\n font-size: 16px;\n line-height: 24px;\n font-weight: 700;\n color: var(--pa-color-primary);\n text-decoration: underline;\n}\n\n.pa-header-mobile__tools-toggle:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-mobile__tools-body {\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-sm);\n padding-top: 28px;\n}\n\n.pa-header-mobile__tools-text {\n margin: 0;\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-mobile__tools-links {\n list-style: none;\n margin: 0;\n padding: 0 var(--pa-space-xs);\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-xs);\n}\n\n.pa-header-mobile__tools-link-item {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.pa-header-mobile__tools-bullet {\n width: 8px;\n height: 8px;\n background: var(--pa-color-bg-primary-light-50);\n margin-top: 8px;\n flex-shrink: 0;\n}\n\n.pa-header-mobile__tools-link {\n flex: 1 1 0;\n font-size: 16px;\n line-height: 24px;\n font-weight: 700;\n color: var(--pa-color-text-dark-blue);\n text-decoration: underline;\n}\n\n.pa-header-mobile__tools-link:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-mobile__tools-cta {\n margin-top: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px 48px;\n background: var(--pa-color-primary);\n color: #ffffff;\n border-radius: var(--pa-radius-smooth);\n text-decoration: none;\n font-size: 16px;\n line-height: 20px;\n font-weight: 600;\n}\n\n.pa-header-mobile__tools-cta:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n/* Section link footer */\n\n.pa-header-mobile__section-link-wrap {\n padding: 0 36px;\n margin-top: var(--pa-space-sm);\n}\n\n.pa-header-mobile__section-link {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding: var(--pa-space-sm) 4px;\n font-size: 16px;\n line-height: 20px;\n font-weight: 600;\n color: var(--pa-color-text-dark-blue);\n text-decoration: none;\n border-radius: 4px;\n}\n\n.pa-header-mobile__section-link:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n</style>\n"],"names":["mobileUid","nextMobileId","props","__props","emit","__emit","panelId","internalMenuOpen","ref","isMenuOpen","computed","setMenuOpen","next","skipLinkEnabled","skipLinkLabel","skipLinkTarget","menuToggleLabel","userActionLabel","userIconName","drillStack","toolsOpen","currentDrill","isSecondaryLevel","_a","hasChildren","item","tileIndicatesDrill","handleTileClick","event","tier","prevented","payload","popDrill","handleLanguageClick","language","toggleTools","panelRef","menuToggleRef","previouslyFocusedElement","originalBodyOverflow","originalBodyPaddingRight","scrollLockActive","escListenerAttached","FOCUSABLE_SELECTOR","getFocusable","root","onPanelKeydown","focusable","first","last","active","onWindowKeydownEsc","lockScroll","scrollbarWidth","unlockScroll","attachEsc","detachEsc","watch","nextTick","onBeforeUnmount","onMenuToggle","onSearchClick","onUserClick","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_createElementVNode","_hoisted_3","_createVNode","PaIcon","_hoisted_5","_renderSlot","_ctx","_hoisted_6","_createBlock","_Teleport","_normalizeClass","_hoisted_10","_hoisted_20","_toDisplayString","_hoisted_21","_Fragment","_renderList","child","idx","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","link","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_16","lang","_hoisted_18","_hoisted_37","_hoisted_39","_hoisted_40"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaHeaderMobile.vue2.js","sources":["../../../src/components/PaHeaderMobile/PaHeaderMobile.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n PaHeaderLink,\n PaHeaderTools,\n PaHeaderNavItem,\n PaHeaderLanguage,\n PaHeaderSkipLinkConfig,\n PaHeaderNavigateEventPayload,\n PaHeaderLanguageChangeEventPayload,\n} from '../PaHeaderShared/types'\n\nexport type {\n PaHeaderLink,\n PaHeaderTools,\n PaHeaderNavItem,\n PaHeaderLanguage,\n PaHeaderSkipLinkConfig,\n PaHeaderNavigateEventPayload,\n PaHeaderLanguageChangeEventPayload,\n}\n\nexport interface PaHeaderMobileProps {\n loggedIn?: boolean\n primaryNav?: PaHeaderNavItem[]\n secondaryNav?: PaHeaderNavItem[]\n languages?: PaHeaderLanguage[]\n currentLanguage?: string\n menuOpen?: boolean\n skipLink?: boolean | PaHeaderSkipLinkConfig\n /**\n * Target for the menu panel's <Teleport>. Defaults to `'body'`.\n * Pass `false` to disable Teleport (panel renders inline as a child of the\n * <header> wrapper, useful for Histoire stories or constrained previews).\n */\n teleportTarget?: string | HTMLElement | false\n panelLabel?: string\n openMenuLabel?: string\n closeMenuLabel?: string\n searchActionLabel?: string\n userActionLabelLoggedOut?: string\n userActionLabelLoggedIn?: string\n languageGroupLabel?: string\n backLabel?: string\n toolsOpenLabel?: string\n toolsCloseLabel?: string\n exploreLabel?: string\n}\n\ninterface DrillEntry {\n item: PaHeaderNavItem\n tier: 'primary' | 'secondary'\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, ref, useId, watch } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(defineProps<PaHeaderMobileProps>(), {\n loggedIn: false,\n primaryNav: () => [],\n secondaryNav: () => [],\n languages: () => [],\n currentLanguage: undefined,\n menuOpen: undefined,\n skipLink: true,\n teleportTarget: 'body',\n panelLabel: 'Menu principale',\n openMenuLabel: 'Apri menu',\n closeMenuLabel: 'Chiudi menu',\n searchActionLabel: 'Cerca',\n userActionLabelLoggedOut: 'Accedi',\n userActionLabelLoggedIn: 'Area personale',\n languageGroupLabel: 'Seleziona la lingua',\n backLabel: 'Indietro',\n toolsOpenLabel: 'Apri',\n toolsCloseLabel: 'Chiudi',\n exploreLabel: 'Esplora',\n})\n\nconst emit = defineEmits<{\n 'update:menuOpen': [boolean]\n 'search-click': [MouseEvent]\n 'user-click': [MouseEvent]\n navigate: [PaHeaderNavigateEventPayload]\n 'language-change': [PaHeaderLanguageChangeEventPayload]\n}>()\n\ndefineSlots<{\n logo?: () => unknown\n actions?: () => unknown\n user?: () => unknown\n}>()\n\nconst componentId = useId()\nconst panelId = `pa-header-mobile-panel-${componentId}`\n\nconst internalMenuOpen = ref(false)\nconst isMenuOpen = computed(() =>\n props.menuOpen !== undefined ? props.menuOpen : internalMenuOpen.value,\n)\n\nfunction setMenuOpen(next: boolean) {\n if (props.menuOpen === undefined) {\n internalMenuOpen.value = next\n }\n emit('update:menuOpen', next)\n}\n\nconst skipLinkEnabled = computed(() => props.skipLink !== false)\nconst skipLinkLabel = computed(() => {\n if (typeof props.skipLink === 'object' && props.skipLink !== null) {\n return props.skipLink.label ?? 'Vai al contenuto'\n }\n return 'Vai al contenuto'\n})\nconst skipLinkTarget = computed(() => {\n if (typeof props.skipLink === 'object' && props.skipLink !== null) {\n return props.skipLink.target ?? '#main'\n }\n return '#main'\n})\n\nconst menuToggleLabel = computed(() =>\n isMenuOpen.value ? props.closeMenuLabel : props.openMenuLabel,\n)\nconst userActionLabel = computed(() =>\n props.loggedIn ? props.userActionLabelLoggedIn : props.userActionLabelLoggedOut,\n)\nconst userIconName = computed(() => (props.loggedIn ? 'user-fill' : 'user'))\n\nconst drillStack = ref<DrillEntry[]>([])\nconst toolsOpen = ref(false)\n\nconst currentDrill = computed<DrillEntry | null>(() =>\n drillStack.value.length > 0\n ? drillStack.value[drillStack.value.length - 1]!\n : null,\n)\nconst currentLevel = computed<'primary' | 'secondary'>(() =>\n currentDrill.value ? 'secondary-level' as never : 'primary',\n)\nconst isSecondaryLevel = computed(() => drillStack.value.length > 0)\n\nconst secondaryBg = computed(() =>\n currentDrill.value?.tier === 'secondary' ? '#F2F6FC' : '#FFFFFF',\n)\n\nfunction hasChildren(item: PaHeaderNavItem): boolean {\n return Boolean(item.children && item.children.length > 0)\n}\n\nfunction tileIndicatesDrill(item: PaHeaderNavItem): boolean {\n return hasChildren(item) || Boolean(item.tools)\n}\n\nfunction handleTileClick(event: MouseEvent, item: PaHeaderNavItem, tier: 'primary' | 'secondary') {\n if (tileIndicatesDrill(item)) {\n drillStack.value.push({ item, tier })\n toolsOpen.value = false\n return\n }\n // Leaf: emit navigate\n let prevented = false\n const payload: PaHeaderNavigateEventPayload = {\n item,\n originalEvent: event,\n preventDefault: () => {\n prevented = true\n payload.defaultPrevented = true\n },\n defaultPrevented: false,\n }\n emit('navigate', payload)\n if (!prevented && item.href && typeof window !== 'undefined') {\n window.location.assign(item.href)\n }\n}\n\nfunction popDrill() {\n drillStack.value.pop()\n toolsOpen.value = false\n}\n\nfunction handleLanguageClick(event: MouseEvent, language: PaHeaderLanguage) {\n let prevented = false\n const payload: PaHeaderLanguageChangeEventPayload = {\n language,\n originalEvent: event,\n preventDefault: () => {\n prevented = true\n payload.defaultPrevented = true\n },\n defaultPrevented: false,\n }\n emit('language-change', payload)\n if (!prevented && language.href && typeof window !== 'undefined') {\n window.location.assign(language.href)\n }\n}\n\nfunction toggleTools() {\n toolsOpen.value = !toolsOpen.value\n}\n\n// --- Body scroll lock + Esc + focus management (panel) ---\n\nconst panelRef = ref<HTMLElement | null>(null)\nconst menuToggleRef = ref<HTMLButtonElement | null>(null)\n\nlet previouslyFocusedElement: HTMLElement | null = null\nlet originalBodyOverflow = ''\nlet originalBodyPaddingRight = ''\nlet scrollLockActive = false\nlet escListenerAttached = false\n\nconst FOCUSABLE_SELECTOR =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\nfunction getFocusable(root: HTMLElement): HTMLElement[] {\n return Array.from(root.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR))\n}\n\nfunction onPanelKeydown(event: KeyboardEvent) {\n if (event.key !== 'Tab' || !panelRef.value) return\n const focusable = getFocusable(panelRef.value)\n if (focusable.length === 0) {\n event.preventDefault()\n panelRef.value.focus()\n return\n }\n const first = focusable[0]!\n const last = focusable[focusable.length - 1]!\n const active = document.activeElement as HTMLElement | null\n if (event.shiftKey) {\n if (active === first || !panelRef.value.contains(active)) {\n event.preventDefault()\n last.focus()\n }\n } else {\n if (active === last || !panelRef.value.contains(active)) {\n event.preventDefault()\n first.focus()\n }\n }\n}\n\nfunction onWindowKeydownEsc(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n setMenuOpen(false)\n }\n}\n\nfunction lockScroll() {\n if (scrollLockActive || typeof document === 'undefined') return\n originalBodyOverflow = document.body.style.overflow\n originalBodyPaddingRight = document.body.style.paddingRight\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n document.body.style.overflow = 'hidden'\n if (scrollbarWidth > 0) {\n document.body.style.paddingRight = `${scrollbarWidth}px`\n }\n scrollLockActive = true\n}\n\nfunction unlockScroll() {\n if (!scrollLockActive || typeof document === 'undefined') return\n document.body.style.overflow = originalBodyOverflow\n document.body.style.paddingRight = originalBodyPaddingRight\n scrollLockActive = false\n}\n\nfunction attachEsc() {\n if (escListenerAttached || typeof window === 'undefined') return\n window.addEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = true\n}\n\nfunction detachEsc() {\n if (!escListenerAttached || typeof window === 'undefined') return\n window.removeEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = false\n}\n\nwatch(\n isMenuOpen,\n async (next) => {\n if (next) {\n if (typeof document !== 'undefined') {\n previouslyFocusedElement = document.activeElement as HTMLElement | null\n }\n if (props.teleportTarget !== false) {\n lockScroll()\n }\n attachEsc()\n await nextTick()\n if (panelRef.value) {\n const focusable = getFocusable(panelRef.value)\n if (focusable.length > 0) {\n focusable[0]!.focus({ preventScroll: true })\n } else {\n panelRef.value.focus({ preventScroll: true })\n }\n }\n } else {\n detachEsc()\n unlockScroll()\n drillStack.value = []\n toolsOpen.value = false\n if (\n previouslyFocusedElement &&\n typeof document !== 'undefined' &&\n document.contains(previouslyFocusedElement)\n ) {\n previouslyFocusedElement.focus({ preventScroll: true })\n }\n previouslyFocusedElement = null\n }\n },\n { flush: 'post', immediate: true },\n)\n\nonBeforeUnmount(() => {\n detachEsc()\n unlockScroll()\n})\n\nfunction onMenuToggle() {\n setMenuOpen(!isMenuOpen.value)\n}\n\nfunction onSearchClick(event: MouseEvent) {\n emit('search-click', event)\n}\n\nfunction onUserClick(event: MouseEvent) {\n emit('user-click', event)\n}\n</script>\n\n<template>\n <header class=\"pa-header-mobile\" role=\"banner\">\n <a\n v-if=\"skipLinkEnabled\"\n class=\"pa-header-mobile__skip\"\n :href=\"skipLinkTarget\"\n >\n {{ skipLinkLabel }}\n </a>\n\n <div class=\"pa-header-mobile__bar\">\n <button\n ref=\"menuToggleRef\"\n type=\"button\"\n class=\"pa-header-mobile__menu-toggle\"\n :aria-expanded=\"isMenuOpen\"\n :aria-controls=\"panelId\"\n :aria-label=\"menuToggleLabel\"\n @click=\"onMenuToggle\"\n >\n <PaIcon :name=\"isMenuOpen ? 'x' : 'list'\" size=\"md\" />\n </button>\n\n <div class=\"pa-header-mobile__logo\">\n <slot name=\"logo\">\n <span\n class=\"pa-header-mobile__logo-placeholder\"\n aria-hidden=\"true\"\n />\n </slot>\n </div>\n\n <slot name=\"actions\">\n <div class=\"pa-header-mobile__actions\">\n <button\n type=\"button\"\n class=\"pa-header-mobile__action\"\n :aria-label=\"searchActionLabel\"\n @click=\"onSearchClick\"\n >\n <PaIcon name=\"magnifying-glass\" size=\"md\" />\n </button>\n <button\n type=\"button\"\n class=\"pa-header-mobile__action pa-header-mobile__action--user\"\n :aria-label=\"userActionLabel\"\n @click=\"onUserClick\"\n >\n <slot name=\"user\">\n <PaIcon :name=\"userIconName\" size=\"md\" />\n </slot>\n </button>\n </div>\n </slot>\n </div>\n\n <Teleport :to=\"teleportTarget === false ? undefined : teleportTarget\" :disabled=\"teleportTarget === false\">\n <div\n v-if=\"isMenuOpen\"\n :id=\"panelId\"\n ref=\"panelRef\"\n class=\"pa-header-mobile__panel\"\n :class=\"{ 'pa-header-mobile__panel--inline': teleportTarget === false }\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n :aria-label=\"panelLabel\"\n @keydown=\"onPanelKeydown\"\n >\n <div class=\"pa-header-mobile__panel-scroll\">\n <!-- Primary level -->\n <template v-if=\"!isSecondaryLevel\">\n <ul\n v-if=\"primaryNav.length > 0\"\n class=\"pa-header-mobile__group pa-header-mobile__group--primary\"\n >\n <li\n v-for=\"(item, idx) in primaryNav\"\n :key=\"`p-${idx}-${item.label}`\"\n class=\"pa-header-mobile__tile-wrap\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__tile\"\n @click=\"(event) => handleTileClick(event, item, 'primary')\"\n >\n <span class=\"pa-header-mobile__tile-label\">{{ item.label }}</span>\n <PaIcon\n v-if=\"tileIndicatesDrill(item)\"\n name=\"caret-right\"\n size=\"sm\"\n />\n </button>\n </li>\n </ul>\n\n <ul\n v-if=\"secondaryNav.length > 0\"\n class=\"pa-header-mobile__group pa-header-mobile__group--secondary\"\n >\n <li\n v-for=\"(item, idx) in secondaryNav\"\n :key=\"`s-${idx}-${item.label}`\"\n class=\"pa-header-mobile__tile-wrap\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__tile\"\n @click=\"(event) => handleTileClick(event, item, 'secondary')\"\n >\n <span class=\"pa-header-mobile__tile-label\">{{ item.label }}</span>\n <PaIcon\n v-if=\"tileIndicatesDrill(item)\"\n name=\"caret-right\"\n size=\"sm\"\n />\n </button>\n </li>\n </ul>\n\n <div\n v-if=\"languages.length > 0\"\n class=\"pa-header-mobile__language\"\n role=\"group\"\n :aria-label=\"languageGroupLabel\"\n >\n <button\n v-for=\"lang in languages\"\n :key=\"lang.code\"\n type=\"button\"\n class=\"pa-header-mobile__language-pill\"\n :class=\"{\n 'pa-header-mobile__language-pill--active':\n lang.code === currentLanguage,\n }\"\n :aria-pressed=\"lang.code === currentLanguage\"\n @click=\"(event) => handleLanguageClick(event, lang)\"\n >\n {{ lang.label }}\n </button>\n </div>\n </template>\n\n <!-- Secondary level -->\n <template v-else>\n <div\n class=\"pa-header-mobile__drill\"\n :class=\"`pa-header-mobile__drill--${currentDrill!.tier}`\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__back\"\n :aria-label=\"backLabel\"\n @click=\"popDrill\"\n >\n <PaIcon name=\"caret-left\" size=\"sm\" />\n <span class=\"pa-header-mobile__back-label\">{{ currentDrill!.item.label }}</span>\n </button>\n\n <ul\n v-if=\"currentDrill!.item.children && currentDrill!.item.children.length > 0\"\n class=\"pa-header-mobile__drill-children\"\n >\n <li\n v-for=\"(child, idx) in currentDrill!.item.children\"\n :key=\"`c-${idx}-${child.label}`\"\n class=\"pa-header-mobile__tile-wrap\"\n >\n <button\n type=\"button\"\n class=\"pa-header-mobile__tile\"\n @click=\"(event) => handleTileClick(event, child, currentDrill!.tier)\"\n >\n <span class=\"pa-header-mobile__tile-label\">{{ child.label }}</span>\n <PaIcon\n v-if=\"tileIndicatesDrill(child)\"\n name=\"caret-right\"\n size=\"sm\"\n />\n </button>\n </li>\n </ul>\n\n <div\n v-if=\"currentDrill!.tier === 'primary' && currentDrill!.item.tools\"\n class=\"pa-header-mobile__tools-wrap\"\n >\n <div\n class=\"pa-header-mobile__tools\"\n :class=\"{ 'pa-header-mobile__tools--open': toolsOpen }\"\n >\n <div class=\"pa-header-mobile__tools-header\">\n <div class=\"pa-header-mobile__tools-header-left\">\n <PaIcon :name=\"currentDrill!.item.tools.icon\" size=\"md\" />\n <h3 class=\"pa-header-mobile__tools-heading\">\n {{ currentDrill!.item.tools.heading }}\n </h3>\n </div>\n <button\n type=\"button\"\n class=\"pa-header-mobile__tools-toggle\"\n :aria-expanded=\"toolsOpen\"\n :aria-label=\"toolsOpen ? toolsCloseLabel : toolsOpenLabel\"\n @click=\"toggleTools\"\n >\n <span v-if=\"!toolsOpen\" class=\"pa-header-mobile__tools-toggle-text\">{{ toolsOpenLabel }}</span>\n <PaIcon v-else name=\"caret-up\" size=\"sm\" />\n </button>\n </div>\n\n <div v-if=\"toolsOpen\" class=\"pa-header-mobile__tools-body\">\n <p\n v-if=\"currentDrill!.item.tools.body\"\n class=\"pa-header-mobile__tools-text\"\n >{{ currentDrill!.item.tools.body }}</p>\n\n <ul\n v-if=\"currentDrill!.item.tools.links && currentDrill!.item.tools.links.length > 0\"\n class=\"pa-header-mobile__tools-links\"\n >\n <li\n v-for=\"(link, idx) in currentDrill!.item.tools.links\"\n :key=\"`tl-${idx}-${link.label}`\"\n class=\"pa-header-mobile__tools-link-item\"\n >\n <span class=\"pa-header-mobile__tools-bullet\" aria-hidden=\"true\" />\n <a class=\"pa-header-mobile__tools-link\" :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n\n <a\n v-if=\"currentDrill!.item.tools.cta\"\n class=\"pa-header-mobile__tools-cta\"\n :href=\"currentDrill!.item.tools.cta.href\"\n >{{ currentDrill!.item.tools.cta.label }}</a>\n </div>\n </div>\n </div>\n\n <div\n v-if=\"currentDrill!.item.href\"\n class=\"pa-header-mobile__section-link-wrap\"\n >\n <a class=\"pa-header-mobile__section-link\" :href=\"currentDrill!.item.href\">\n <span>{{ exploreLabel }} {{ currentDrill!.item.label }}</span>\n <PaIcon name=\"arrow-right\" size=\"sm\" />\n </a>\n </div>\n </div>\n </template>\n </div>\n\n <!-- Bar at panel bottom (Open state) -->\n <div class=\"pa-header-mobile__bar pa-header-mobile__bar--in-panel\">\n <button\n type=\"button\"\n class=\"pa-header-mobile__menu-toggle\"\n :aria-expanded=\"true\"\n :aria-controls=\"panelId\"\n :aria-label=\"closeMenuLabel\"\n @click=\"onMenuToggle\"\n >\n <PaIcon name=\"x\" size=\"md\" />\n </button>\n\n <div class=\"pa-header-mobile__logo\">\n <slot name=\"logo\">\n <span class=\"pa-header-mobile__logo-placeholder\" aria-hidden=\"true\" />\n </slot>\n </div>\n\n <div class=\"pa-header-mobile__actions\">\n <button\n type=\"button\"\n class=\"pa-header-mobile__action\"\n :aria-label=\"searchActionLabel\"\n @click=\"onSearchClick\"\n >\n <PaIcon name=\"magnifying-glass\" size=\"md\" />\n </button>\n <button\n type=\"button\"\n class=\"pa-header-mobile__action pa-header-mobile__action--user\"\n :aria-label=\"userActionLabel\"\n @click=\"onUserClick\"\n >\n <slot name=\"user\">\n <PaIcon :name=\"userIconName\" size=\"md\" />\n </slot>\n </button>\n </div>\n </div>\n </div>\n </Teleport>\n </header>\n</template>\n\n<style scoped>\n.pa-header-mobile {\n position: relative;\n width: 100%;\n background: #ffffff;\n font-family: var(--pa-font-family-base, 'Inter', sans-serif);\n}\n\n.pa-header-mobile__skip {\n position: absolute;\n left: -9999px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n background: #ffffff;\n color: var(--pa-color-text-dark-blue);\n padding: var(--pa-space-xs) var(--pa-space-sm);\n border-radius: var(--pa-radius-smooth);\n text-decoration: none;\n font-size: var(--pa-font-label-sm-size);\n font-weight: var(--pa-font-label-sm-weight);\n line-height: var(--pa-font-label-sm-line-height);\n z-index: 9999;\n}\n\n.pa-header-mobile__skip:focus-visible {\n position: fixed;\n left: var(--pa-space-xs);\n top: var(--pa-space-xs);\n width: auto;\n height: auto;\n overflow: visible;\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n box-shadow: 0 0 16px 0 #e3e5e8;\n}\n\n.pa-header-mobile__bar {\n position: relative;\n height: 60px;\n width: 100%;\n background: #ffffff;\n container-type: inline-size;\n}\n\n.pa-header-mobile__bar--in-panel {\n flex-shrink: 0;\n border-top: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\n}\n\n.pa-header-mobile__menu-toggle,\n.pa-header-mobile__action {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: 0;\n background: var(--pa-color-bg-primary-light-40);\n color: var(--pa-color-neutral-gray);\n cursor: pointer;\n}\n\n.pa-header-mobile__menu-toggle {\n left: 0;\n}\n\n.pa-header-mobile__menu-toggle:focus-visible,\n.pa-header-mobile__action:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-mobile__logo {\n position: absolute;\n left: 68px;\n top: 10px;\n height: 40px;\n display: flex;\n align-items: center;\n max-width: calc(100% - 68px - 112px);\n}\n\n.pa-header-mobile__logo-placeholder {\n display: block;\n width: 70.133px;\n height: 40px;\n background: var(--pa-color-primary);\n}\n\n.pa-header-mobile__actions {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: row;\n}\n\n.pa-header-mobile__action {\n position: static;\n flex-shrink: 0;\n}\n\n/* Panel */\n\n.pa-header-mobile__panel {\n position: fixed;\n inset: 0;\n z-index: 1000;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n font-family: var(--pa-font-family-base, 'Inter', sans-serif);\n}\n\n/* Inline variant: panel constrained to its parent (typically `.pa-header-mobile`\n * expanded by the consumer to viewport-like dimensions). Used in Histoire so the\n * panel doesn't take over the docs UI. */\n.pa-header-mobile__panel--inline {\n position: absolute;\n inset: 0;\n z-index: 1;\n min-height: 0;\n}\n\n.pa-header-mobile__panel:focus {\n outline: none;\n}\n\n.pa-header-mobile__panel-scroll {\n flex: 1 1 auto;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n/* Groups (Primary level) */\n\n.pa-header-mobile__group {\n list-style: none;\n margin: 0;\n padding: var(--pa-space-sm) 0;\n display: flex;\n flex-direction: column;\n}\n\n.pa-header-mobile__group--primary {\n background: #ffffff;\n}\n\n.pa-header-mobile__group--secondary {\n background: var(--pa-color-bg-primary-light-40);\n}\n\n.pa-header-mobile__tile-wrap {\n list-style: none;\n}\n\n.pa-header-mobile__tile {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--pa-space-sm);\n padding: var(--pa-space-sm) var(--pa-space-md);\n background: transparent;\n border: 0;\n border-bottom: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\n cursor: pointer;\n text-align: left;\n font-family: inherit;\n}\n\n.pa-header-mobile__tile-label {\n flex: 1 1 0;\n font-size: var(--pa-font-label-sm-size);\n font-weight: var(--pa-font-label-sm-weight);\n line-height: var(--pa-font-label-sm-line-height);\n color: var(--pa-color-text-dark-blue);\n}\n\n.pa-header-mobile__tile:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n/* Language switcher */\n\n.pa-header-mobile__language {\n background: var(--pa-color-bg-primary-light-40);\n display: flex;\n justify-content: center;\n gap: var(--pa-space-sm);\n padding: var(--pa-space-xs) 0;\n}\n\n.pa-header-mobile__language-pill {\n background: transparent;\n border: 0;\n padding: 4px 8px 0 8px;\n font-family: inherit;\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n border-bottom: 4px solid transparent;\n cursor: pointer;\n border-radius: 4px 4px 0 0;\n}\n\n.pa-header-mobile__language-pill--active {\n color: #000000;\n border-bottom-color: #000000;\n}\n\n.pa-header-mobile__language-pill:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n/* Drill (Secondary level) */\n\n.pa-header-mobile__drill {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n}\n\n.pa-header-mobile__drill--primary {\n background: #ffffff;\n}\n\n.pa-header-mobile__drill--secondary {\n background: var(--pa-color-bg-primary-light-40);\n}\n\n.pa-header-mobile__back {\n display: flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding: var(--pa-space-md) var(--pa-space-md) 18px;\n background: transparent;\n border: 0;\n font-family: inherit;\n cursor: pointer;\n text-align: left;\n}\n\n.pa-header-mobile__back-label {\n font-size: 20px;\n line-height: 30px;\n font-weight: 600;\n color: var(--pa-color-text-dark-blue);\n}\n\n.pa-header-mobile__back:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-mobile__drill-children {\n list-style: none;\n margin: 0;\n padding: 0 var(--pa-space-md) var(--pa-space-md);\n display: flex;\n flex-direction: column;\n}\n\n.pa-header-mobile__drill-children .pa-header-mobile__tile {\n padding-left: 0;\n padding-right: 0;\n}\n\n/* Tools card */\n\n.pa-header-mobile__tools-wrap {\n padding: 0 36px;\n}\n\n.pa-header-mobile__tools {\n background: var(--pa-color-bg-primary-light-40);\n border-radius: 4px;\n padding: var(--pa-space-md);\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-mobile__tools-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-mobile__tools-header-left {\n display: flex;\n align-items: center;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-mobile__tools-heading {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n letter-spacing: -0.5px;\n font-weight: 700;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-mobile__tools-toggle {\n background: transparent;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n padding: 0;\n font-family: inherit;\n}\n\n.pa-header-mobile__tools-toggle-text {\n font-size: 16px;\n line-height: 24px;\n font-weight: 700;\n color: var(--pa-color-primary);\n text-decoration: underline;\n}\n\n.pa-header-mobile__tools-toggle:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-mobile__tools-body {\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-sm);\n padding-top: 28px;\n}\n\n.pa-header-mobile__tools-text {\n margin: 0;\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-mobile__tools-links {\n list-style: none;\n margin: 0;\n padding: 0 var(--pa-space-xs);\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-xs);\n}\n\n.pa-header-mobile__tools-link-item {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.pa-header-mobile__tools-bullet {\n width: 8px;\n height: 8px;\n background: var(--pa-color-bg-primary-light-50);\n margin-top: 8px;\n flex-shrink: 0;\n}\n\n.pa-header-mobile__tools-link {\n flex: 1 1 0;\n font-size: 16px;\n line-height: 24px;\n font-weight: 700;\n color: var(--pa-color-text-dark-blue);\n text-decoration: underline;\n}\n\n.pa-header-mobile__tools-link:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-mobile__tools-cta {\n margin-top: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px 48px;\n background: var(--pa-color-primary);\n color: #ffffff;\n border-radius: var(--pa-radius-smooth);\n text-decoration: none;\n font-size: 16px;\n line-height: 20px;\n font-weight: 600;\n}\n\n.pa-header-mobile__tools-cta:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n/* Section link footer */\n\n.pa-header-mobile__section-link-wrap {\n padding: 0 36px;\n margin-top: var(--pa-space-sm);\n}\n\n.pa-header-mobile__section-link {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding: var(--pa-space-sm) 4px;\n font-size: 16px;\n line-height: 20px;\n font-weight: 600;\n color: var(--pa-color-text-dark-blue);\n text-decoration: none;\n border-radius: 4px;\n}\n\n.pa-header-mobile__section-link:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n</style>\n"],"names":["props","__props","emit","__emit","panelId","useId","internalMenuOpen","ref","isMenuOpen","computed","setMenuOpen","next","skipLinkEnabled","skipLinkLabel","skipLinkTarget","menuToggleLabel","userActionLabel","userIconName","drillStack","toolsOpen","currentDrill","isSecondaryLevel","_a","hasChildren","item","tileIndicatesDrill","handleTileClick","event","tier","prevented","payload","popDrill","handleLanguageClick","language","toggleTools","panelRef","menuToggleRef","previouslyFocusedElement","originalBodyOverflow","originalBodyPaddingRight","scrollLockActive","escListenerAttached","FOCUSABLE_SELECTOR","getFocusable","root","onPanelKeydown","focusable","first","last","active","onWindowKeydownEsc","lockScroll","scrollbarWidth","unlockScroll","attachEsc","detachEsc","watch","nextTick","onBeforeUnmount","onMenuToggle","onSearchClick","onUserClick","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_createElementVNode","_hoisted_3","_createVNode","PaIcon","_hoisted_5","_renderSlot","_ctx","_hoisted_6","_createBlock","_Teleport","_normalizeClass","_hoisted_10","_hoisted_20","_toDisplayString","_hoisted_21","_Fragment","_renderList","child","idx","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","link","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_16","lang","_hoisted_18","_hoisted_37","_hoisted_39","_hoisted_40"],"mappings":"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"}
|