@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,27 +1,22 @@
|
|
|
1
|
-
import { defineComponent as J, ref as E, computed as
|
|
1
|
+
import { defineComponent as J, useId as Q, ref as E, computed as k, watch as X, nextTick as Y, onBeforeUnmount as Z, openBlock as n, createElementBlock as t, toDisplayString as h, createCommentVNode as c, createElementVNode as l, renderSlot as f, Fragment as p, renderList as _, normalizeClass as T, createVNode as v, Transition as x, withCtx as ee } from "vue";
|
|
2
2
|
import y from "../PaIcon/PaIcon.vue.js";
|
|
3
|
-
import
|
|
4
|
-
const
|
|
3
|
+
import ae from "../PaSearchBar/PaSearchBar.vue.js";
|
|
4
|
+
const ne = ["href"], te = { class: "pa-header-desktop__secondary" }, le = { class: "pa-header-desktop__secondary-content" }, se = {
|
|
5
5
|
key: 0,
|
|
6
6
|
class: "pa-header-desktop__utility-links"
|
|
7
|
-
},
|
|
7
|
+
}, oe = { class: "pa-header-desktop__secondary-right" }, re = ["aria-label"], ie = ["aria-pressed", "onClick"], ue = {
|
|
8
8
|
key: 1,
|
|
9
9
|
class: "pa-header-desktop__utility-icons"
|
|
10
|
-
},
|
|
10
|
+
}, de = {
|
|
11
11
|
key: 2,
|
|
12
12
|
class: "pa-header-desktop__user"
|
|
13
|
-
},
|
|
13
|
+
}, ce = ["href"], he = { class: "pa-header-desktop__login-cta-label" }, fe = { class: "pa-header-desktop__primary" }, pe = { class: "pa-header-desktop__primary-content" }, ve = {
|
|
14
14
|
key: 0,
|
|
15
15
|
class: "pa-header-desktop__search"
|
|
16
|
-
},
|
|
16
|
+
}, ge = ["aria-label"], ke = ["href", "aria-current", "onClick"], me = ["aria-expanded", "id", "onClick"], _e = { class: "pa-header-desktop__mega-menu-inner" }, ye = { class: "pa-header-desktop__mega-column pa-header-desktop__mega-column--left" }, be = { class: "pa-header-desktop__mega-links" }, Le = ["href"], we = ["href"], $e = { class: "pa-header-desktop__mega-column pa-header-desktop__mega-column--center" }, Ce = {
|
|
17
17
|
key: 0,
|
|
18
18
|
class: "pa-header-desktop__mega-links"
|
|
19
|
-
},
|
|
20
|
-
let ze = 0;
|
|
21
|
-
function Ie() {
|
|
22
|
-
return ++ze;
|
|
23
|
-
}
|
|
24
|
-
const Re = /* @__PURE__ */ J({
|
|
19
|
+
}, Ee = ["href"], Oe = { class: "pa-header-desktop__mega-column pa-header-desktop__mega-column--right" }, Be = { class: "pa-header-desktop__mega-column-header" }, Ne = { class: "pa-header-desktop__mega-column-heading" }, De = { class: "pa-header-desktop__mega-links" }, ze = ["href"], Me = /* @__PURE__ */ J({
|
|
25
20
|
__name: "PaHeaderDesktop",
|
|
26
21
|
props: {
|
|
27
22
|
loggedIn: { type: Boolean, default: !1 },
|
|
@@ -43,13 +38,13 @@ const Re = /* @__PURE__ */ J({
|
|
|
43
38
|
},
|
|
44
39
|
emits: ["update:menuOpen", "search", "language-change", "navigate"],
|
|
45
40
|
setup(s, { emit: M }) {
|
|
46
|
-
const u = s, b = M, O = `pa-header-desktop-mega-${
|
|
41
|
+
const u = s, b = M, O = `pa-header-desktop-mega-${Q()}`, D = `${O}-trigger`, z = E(null), d = k(
|
|
47
42
|
() => u.menuOpen !== void 0 ? u.menuOpen : z.value
|
|
48
43
|
);
|
|
49
44
|
function L(a) {
|
|
50
45
|
u.menuOpen === void 0 && (z.value = a), b("update:menuOpen", a);
|
|
51
46
|
}
|
|
52
|
-
const w =
|
|
47
|
+
const w = k(() => d.value ? u.mainNav.find((a) => a.label === d.value) ?? null : null), i = k(() => {
|
|
53
48
|
if (!w.value || !w.value.children) return [void 0, void 0, void 0];
|
|
54
49
|
const a = w.value.children;
|
|
55
50
|
return [a[0], a[1], a[2]];
|
|
@@ -57,7 +52,7 @@ const Re = /* @__PURE__ */ J({
|
|
|
57
52
|
function V(a, r) {
|
|
58
53
|
B.value[a] = r ?? null;
|
|
59
54
|
}
|
|
60
|
-
let
|
|
55
|
+
let N = null, $ = !1, C = !1;
|
|
61
56
|
function I(a) {
|
|
62
57
|
a.key === "Escape" && d.value && (a.preventDefault(), L(null));
|
|
63
58
|
}
|
|
@@ -74,11 +69,11 @@ const Re = /* @__PURE__ */ J({
|
|
|
74
69
|
function S() {
|
|
75
70
|
typeof window > "u" || ($ && (window.removeEventListener("keydown", I), $ = !1), C && (document.removeEventListener("mousedown", P), C = !1));
|
|
76
71
|
}
|
|
77
|
-
|
|
72
|
+
X(
|
|
78
73
|
d,
|
|
79
74
|
async (a, r) => {
|
|
80
75
|
if (a && !r) {
|
|
81
|
-
if (typeof document < "u" && (
|
|
76
|
+
if (typeof document < "u" && (N = document.activeElement), H(), await Y(), m.value) {
|
|
82
77
|
const e = m.value.querySelector(
|
|
83
78
|
"a, button:not([disabled])"
|
|
84
79
|
);
|
|
@@ -86,22 +81,22 @@ const Re = /* @__PURE__ */ J({
|
|
|
86
81
|
}
|
|
87
82
|
} else if (!a && r) {
|
|
88
83
|
S();
|
|
89
|
-
const e =
|
|
90
|
-
e && typeof document < "u" && document.contains(e) && e.focus({ preventScroll: !0 }),
|
|
84
|
+
const e = N ?? B.value[r] ?? null;
|
|
85
|
+
e && typeof document < "u" && document.contains(e) && e.focus({ preventScroll: !0 }), N = null;
|
|
91
86
|
}
|
|
92
87
|
},
|
|
93
88
|
{ flush: "post", immediate: !0 }
|
|
94
|
-
),
|
|
89
|
+
), Z(() => {
|
|
95
90
|
S();
|
|
96
91
|
});
|
|
97
92
|
function j(a) {
|
|
98
93
|
d.value === a.label ? L(null) : L(a.label);
|
|
99
94
|
}
|
|
100
|
-
const A =
|
|
101
|
-
function
|
|
95
|
+
const A = k(() => u.skipLink !== !1), F = k(() => typeof u.skipLink == "object" && u.skipLink !== null ? u.skipLink.label ?? "Vai al contenuto" : "Vai al contenuto"), G = k(() => typeof u.skipLink == "object" && u.skipLink !== null ? u.skipLink.target ?? "#main" : "#main");
|
|
96
|
+
function q(a) {
|
|
102
97
|
return !!(a.children && a.children.length > 0);
|
|
103
98
|
}
|
|
104
|
-
function
|
|
99
|
+
function K(a, r) {
|
|
105
100
|
let e = !1;
|
|
106
101
|
const o = {
|
|
107
102
|
language: r,
|
|
@@ -113,7 +108,7 @@ const Re = /* @__PURE__ */ J({
|
|
|
113
108
|
};
|
|
114
109
|
b("language-change", o), !e && r.href && typeof window < "u" && window.location.assign(r.href);
|
|
115
110
|
}
|
|
116
|
-
function
|
|
111
|
+
function U(a, r) {
|
|
117
112
|
let e = !1;
|
|
118
113
|
const o = {
|
|
119
114
|
item: r,
|
|
@@ -138,13 +133,13 @@ const Re = /* @__PURE__ */ J({
|
|
|
138
133
|
key: 0,
|
|
139
134
|
class: "pa-header-desktop__skip",
|
|
140
135
|
href: G.value
|
|
141
|
-
}, h(F.value), 9,
|
|
142
|
-
l("div",
|
|
143
|
-
l("div",
|
|
144
|
-
a.$slots["utility-links"] ? (n(), t("div",
|
|
136
|
+
}, h(F.value), 9, ne)) : c("", !0),
|
|
137
|
+
l("div", te, [
|
|
138
|
+
l("div", le, [
|
|
139
|
+
a.$slots["utility-links"] ? (n(), t("div", se, [
|
|
145
140
|
f(a.$slots, "utility-links", {}, void 0, !0)
|
|
146
141
|
])) : c("", !0),
|
|
147
|
-
l("div",
|
|
142
|
+
l("div", oe, [
|
|
148
143
|
a.$slots.language || s.languages.length > 0 ? (n(), t("div", {
|
|
149
144
|
key: 0,
|
|
150
145
|
class: "pa-header-desktop__language",
|
|
@@ -159,14 +154,14 @@ const Re = /* @__PURE__ */ J({
|
|
|
159
154
|
"pa-header-desktop__language-pill--active": e.code === s.currentLanguage
|
|
160
155
|
}]),
|
|
161
156
|
"aria-pressed": e.code === s.currentLanguage,
|
|
162
|
-
onClick: (o) =>
|
|
163
|
-
}, h(e.label), 11,
|
|
157
|
+
onClick: (o) => K(o, e)
|
|
158
|
+
}, h(e.label), 11, ie))), 128))
|
|
164
159
|
], !0)
|
|
165
|
-
], 8,
|
|
166
|
-
a.$slots["utility-icons"] ? (n(), t("div",
|
|
160
|
+
], 8, re)) : c("", !0),
|
|
161
|
+
a.$slots["utility-icons"] ? (n(), t("div", ue, [
|
|
167
162
|
f(a.$slots, "utility-icons", {}, void 0, !0)
|
|
168
163
|
])) : c("", !0),
|
|
169
|
-
s.loggedIn ? (n(), t("div",
|
|
164
|
+
s.loggedIn ? (n(), t("div", de, [
|
|
170
165
|
f(a.$slots, "user", {}, () => [
|
|
171
166
|
v(y, {
|
|
172
167
|
name: "user-fill",
|
|
@@ -178,20 +173,20 @@ const Re = /* @__PURE__ */ J({
|
|
|
178
173
|
class: "pa-header-desktop__login-cta",
|
|
179
174
|
href: s.loginHref
|
|
180
175
|
}, [
|
|
181
|
-
l("span",
|
|
176
|
+
l("span", he, h(s.loginLabel), 1),
|
|
182
177
|
v(y, {
|
|
183
178
|
name: "user",
|
|
184
179
|
size: "sm"
|
|
185
180
|
})
|
|
186
|
-
], 8,
|
|
181
|
+
], 8, ce))
|
|
187
182
|
])
|
|
188
183
|
])
|
|
189
184
|
]),
|
|
190
|
-
l("div",
|
|
191
|
-
l("div",
|
|
192
|
-
s.searchEnabled || a.$slots.search ? (n(), t("div",
|
|
185
|
+
l("div", fe, [
|
|
186
|
+
l("div", pe, [
|
|
187
|
+
s.searchEnabled || a.$slots.search ? (n(), t("div", ve, [
|
|
193
188
|
f(a.$slots, "search", {}, () => [
|
|
194
|
-
v(
|
|
189
|
+
v(ae, {
|
|
195
190
|
placeholder: s.searchPlaceholder,
|
|
196
191
|
"search-label": s.searchButtonLabel,
|
|
197
192
|
options: s.searchOptions,
|
|
@@ -208,10 +203,10 @@ const Re = /* @__PURE__ */ J({
|
|
|
208
203
|
(n(!0), t(p, null, _(s.mainNav, (e, o) => (n(), t(p, {
|
|
209
204
|
key: `nav-${o}-${e.label}`
|
|
210
205
|
}, [
|
|
211
|
-
|
|
206
|
+
q(e) ? (n(), t("button", {
|
|
212
207
|
key: 1,
|
|
213
208
|
ref_for: !0,
|
|
214
|
-
ref: (
|
|
209
|
+
ref: (g) => V(e.label, g),
|
|
215
210
|
type: "button",
|
|
216
211
|
class: T(["pa-header-desktop__nav-trigger", {
|
|
217
212
|
"pa-header-desktop__nav-trigger--open": d.value === e.label
|
|
@@ -219,26 +214,26 @@ const Re = /* @__PURE__ */ J({
|
|
|
219
214
|
"aria-expanded": d.value === e.label,
|
|
220
215
|
"aria-haspopup": !0,
|
|
221
216
|
"aria-controls": O,
|
|
222
|
-
id: d.value === e.label ?
|
|
223
|
-
onClick: (
|
|
217
|
+
id: d.value === e.label ? D : void 0,
|
|
218
|
+
onClick: (g) => j(e)
|
|
224
219
|
}, [
|
|
225
220
|
l("span", null, h(e.label), 1),
|
|
226
221
|
v(y, {
|
|
227
222
|
name: "caret-down",
|
|
228
223
|
size: "sm"
|
|
229
224
|
})
|
|
230
|
-
], 10,
|
|
225
|
+
], 10, me)) : (n(), t("a", {
|
|
231
226
|
key: 0,
|
|
232
227
|
class: "pa-header-desktop__nav-link",
|
|
233
228
|
href: e.href,
|
|
234
229
|
"aria-current": e.href !== void 0 && e.href === s.currentHref ? "page" : void 0,
|
|
235
|
-
onClick: (
|
|
230
|
+
onClick: (g) => U(g, e)
|
|
236
231
|
}, h(e.label), 9, ke))
|
|
237
232
|
], 64))), 128))
|
|
238
|
-
], 8,
|
|
233
|
+
], 8, ge)) : c("", !0)
|
|
239
234
|
]),
|
|
240
|
-
v(
|
|
241
|
-
default:
|
|
235
|
+
v(x, { name: "pa-mega-menu" }, {
|
|
236
|
+
default: ee(() => [
|
|
242
237
|
d.value && w.value ? (n(), t("div", {
|
|
243
238
|
key: 0,
|
|
244
239
|
id: O,
|
|
@@ -246,22 +241,22 @@ const Re = /* @__PURE__ */ J({
|
|
|
246
241
|
ref: m,
|
|
247
242
|
class: "pa-header-desktop__mega-menu",
|
|
248
243
|
role: "region",
|
|
249
|
-
"aria-labelledby":
|
|
244
|
+
"aria-labelledby": D
|
|
250
245
|
}, [
|
|
251
|
-
l("div",
|
|
252
|
-
l("div",
|
|
246
|
+
l("div", _e, [
|
|
247
|
+
l("div", ye, [
|
|
253
248
|
f(a.$slots, "mega-column-0", {
|
|
254
249
|
column: i.value[0]
|
|
255
250
|
}, () => [
|
|
256
251
|
i.value[0] ? (n(), t(p, { key: 0 }, [
|
|
257
|
-
l("ul",
|
|
252
|
+
l("ul", be, [
|
|
258
253
|
(n(!0), t(p, null, _(i.value[0].children ?? [], (e, o) => (n(), t("li", {
|
|
259
254
|
key: `m0-${o}-${e.label}`
|
|
260
255
|
}, [
|
|
261
256
|
l("a", {
|
|
262
257
|
class: "pa-header-desktop__mega-link",
|
|
263
258
|
href: e.href
|
|
264
|
-
}, h(e.label), 9,
|
|
259
|
+
}, h(e.label), 9, Le)
|
|
265
260
|
]))), 128))
|
|
266
261
|
]),
|
|
267
262
|
i.value[0].href ? (n(), t("a", {
|
|
@@ -274,48 +269,48 @@ const Re = /* @__PURE__ */ J({
|
|
|
274
269
|
name: "arrow-right",
|
|
275
270
|
size: "sm"
|
|
276
271
|
})
|
|
277
|
-
], 8,
|
|
272
|
+
], 8, we)) : c("", !0)
|
|
278
273
|
], 64)) : c("", !0)
|
|
279
274
|
], !0)
|
|
280
275
|
]),
|
|
281
|
-
l("div",
|
|
276
|
+
l("div", $e, [
|
|
282
277
|
f(a.$slots, "mega-column-1", {
|
|
283
278
|
column: i.value[1]
|
|
284
279
|
}, () => [
|
|
285
|
-
i.value[1] ? (n(), t("ul",
|
|
280
|
+
i.value[1] ? (n(), t("ul", Ce, [
|
|
286
281
|
(n(!0), t(p, null, _(i.value[1].children ?? [], (e, o) => (n(), t("li", {
|
|
287
282
|
key: `m1-${o}-${e.label}`
|
|
288
283
|
}, [
|
|
289
284
|
l("a", {
|
|
290
285
|
class: "pa-header-desktop__mega-link",
|
|
291
286
|
href: e.href
|
|
292
|
-
}, h(e.label), 9,
|
|
287
|
+
}, h(e.label), 9, Ee)
|
|
293
288
|
]))), 128))
|
|
294
289
|
])) : c("", !0)
|
|
295
290
|
], !0)
|
|
296
291
|
]),
|
|
297
|
-
l("div",
|
|
292
|
+
l("div", Oe, [
|
|
298
293
|
f(a.$slots, "mega-column-2", {
|
|
299
294
|
column: i.value[2]
|
|
300
295
|
}, () => {
|
|
301
296
|
var e;
|
|
302
297
|
return [
|
|
303
298
|
i.value[2] ? (n(), t(p, { key: 0 }, [
|
|
304
|
-
l("div",
|
|
299
|
+
l("div", Be, [
|
|
305
300
|
v(y, {
|
|
306
301
|
name: ((e = i.value[2].tools) == null ? void 0 : e.icon) ?? "wrench",
|
|
307
302
|
size: "md"
|
|
308
303
|
}, null, 8, ["name"]),
|
|
309
|
-
l("h3",
|
|
304
|
+
l("h3", Ne, h(i.value[2].label), 1)
|
|
310
305
|
]),
|
|
311
306
|
l("ul", De, [
|
|
312
|
-
(n(!0), t(p, null, _(i.value[2].children ?? [], (o,
|
|
313
|
-
key: `m2-${
|
|
307
|
+
(n(!0), t(p, null, _(i.value[2].children ?? [], (o, g) => (n(), t("li", {
|
|
308
|
+
key: `m2-${g}-${o.label}`
|
|
314
309
|
}, [
|
|
315
310
|
l("a", {
|
|
316
311
|
class: "pa-header-desktop__mega-link",
|
|
317
312
|
href: o.href
|
|
318
|
-
}, h(o.label), 9,
|
|
313
|
+
}, h(o.label), 9, ze)
|
|
319
314
|
]))), 128))
|
|
320
315
|
])
|
|
321
316
|
], 64)) : c("", !0)
|
|
@@ -332,6 +327,6 @@ const Re = /* @__PURE__ */ J({
|
|
|
332
327
|
}
|
|
333
328
|
});
|
|
334
329
|
export {
|
|
335
|
-
|
|
330
|
+
Me as default
|
|
336
331
|
};
|
|
337
332
|
//# sourceMappingURL=PaHeaderDesktop.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaHeaderDesktop.vue2.js","sources":["../../../src/components/PaHeaderDesktop/PaHeaderDesktop.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'\nimport type { PaSearchBarOption } from '../PaSearchBar/PaSearchBar.vue'\n\nexport type {\n PaHeaderLink,\n PaHeaderTools,\n PaHeaderNavItem,\n PaHeaderLanguage,\n PaHeaderSkipLinkConfig,\n PaHeaderNavigateEventPayload,\n PaHeaderLanguageChangeEventPayload,\n}\n\nlet desktopUid = 0\nfunction nextDesktopId() {\n return ++desktopUid\n}\n\nexport interface PaHeaderDesktopProps {\n loggedIn?: boolean\n mainNav?: PaHeaderNavItem[]\n languages?: PaHeaderLanguage[]\n currentLanguage?: string\n currentHref?: string\n menuOpen?: string | null\n searchEnabled?: boolean\n searchPlaceholder?: string\n searchButtonLabel?: string\n searchOptions?: PaSearchBarOption[]\n searchValue?: string\n loginLabel?: string\n loginHref?: string\n mainNavLabel?: string\n languageGroupLabel?: string\n skipLink?: boolean | PaHeaderSkipLinkConfig\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, ref, watch } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\nimport PaSearchBar from '../PaSearchBar/PaSearchBar.vue'\n\nconst props = withDefaults(defineProps<PaHeaderDesktopProps>(), {\n loggedIn: false,\n mainNav: () => [],\n languages: () => [],\n currentLanguage: undefined,\n currentHref: undefined,\n menuOpen: undefined,\n searchEnabled: true,\n searchPlaceholder: 'Cerca',\n searchButtonLabel: 'Ricerca',\n searchOptions: () => [],\n searchValue: undefined,\n loginLabel: 'Accedi',\n loginHref: '/login',\n mainNavLabel: 'Navigazione principale',\n languageGroupLabel: 'Seleziona la lingua',\n skipLink: true,\n})\n\nconst emit = defineEmits<{\n 'update:menuOpen': [string | null]\n search: [value: string]\n 'language-change': [PaHeaderLanguageChangeEventPayload]\n navigate: [PaHeaderNavigateEventPayload]\n}>()\n\ndefineSlots<{\n 'utility-links'?: () => unknown\n 'utility-icons'?: () => unknown\n language?: () => unknown\n user?: () => unknown\n search?: () => unknown\n 'mega-column-0'?: (scope: { column?: PaHeaderNavItem }) => unknown\n 'mega-column-1'?: (scope: { column?: PaHeaderNavItem }) => unknown\n 'mega-column-2'?: (scope: { column?: PaHeaderNavItem }) => unknown\n}>()\n\nconst componentId = nextDesktopId()\nconst megaMenuId = `pa-header-desktop-mega-${componentId}`\nconst megaMenuTriggerId = `${megaMenuId}-trigger`\n\n// Controlled / uncontrolled menuOpen — same pattern as PaHeaderMobile but with\n// `string | null` (the open trigger's label).\nconst internalMenuOpen = ref<string | null>(null)\nconst openTrigger = computed(() =>\n props.menuOpen !== undefined ? props.menuOpen : internalMenuOpen.value,\n)\n\nfunction setMenuOpen(next: string | null) {\n if (props.menuOpen === undefined) {\n internalMenuOpen.value = next\n }\n emit('update:menuOpen', next)\n}\n\nconst openItem = computed<PaHeaderNavItem | null>(() => {\n if (!openTrigger.value) return null\n return props.mainNav.find((item) => item.label === openTrigger.value) ?? null\n})\n\nconst megaColumns = computed<Array<PaHeaderNavItem | undefined>>(() => {\n if (!openItem.value || !openItem.value.children) return [undefined, undefined, undefined]\n const children = openItem.value.children\n return [children[0], children[1], children[2]]\n})\n\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst megaMenuRef = ref<HTMLElement | null>(null)\nconst triggerRefs = ref<Record<string, HTMLButtonElement | null>>({})\n\nfunction setTriggerRef(label: string, el: unknown) {\n triggerRefs.value[label] = (el as HTMLButtonElement | null) ?? null\n}\n\nlet previouslyFocusedElement: HTMLElement | null = null\nlet escListenerAttached = false\nlet outsideClickListenerAttached = false\n\nfunction onWindowKeydownEsc(event: KeyboardEvent) {\n if (event.key === 'Escape' && openTrigger.value) {\n event.preventDefault()\n setMenuOpen(null)\n }\n}\n\nfunction onDocumentMousedown(event: MouseEvent) {\n if (!openTrigger.value) return\n const target = event.target as Node | null\n if (!target) return\n if (megaMenuRef.value && megaMenuRef.value.contains(target)) return\n const trigger = triggerRefs.value[openTrigger.value]\n if (trigger && trigger.contains(target)) return\n setMenuOpen(null)\n}\n\nfunction attachDismissListeners() {\n if (typeof window === 'undefined') return\n if (!escListenerAttached) {\n window.addEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = true\n }\n if (!outsideClickListenerAttached) {\n document.addEventListener('mousedown', onDocumentMousedown)\n outsideClickListenerAttached = true\n }\n}\n\nfunction detachDismissListeners() {\n if (typeof window === 'undefined') return\n if (escListenerAttached) {\n window.removeEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = false\n }\n if (outsideClickListenerAttached) {\n document.removeEventListener('mousedown', onDocumentMousedown)\n outsideClickListenerAttached = false\n }\n}\n\nwatch(\n openTrigger,\n async (next, prev) => {\n if (next && !prev) {\n if (typeof document !== 'undefined') {\n previouslyFocusedElement = document.activeElement as HTMLElement | null\n }\n attachDismissListeners()\n await nextTick()\n if (megaMenuRef.value) {\n const focusable = megaMenuRef.value.querySelector<HTMLElement>(\n 'a, button:not([disabled])',\n )\n if (focusable) focusable.focus({ preventScroll: true })\n }\n } else if (!next && prev) {\n detachDismissListeners()\n const restoreTo =\n previouslyFocusedElement ?? triggerRefs.value[prev] ?? null\n if (\n restoreTo &&\n typeof document !== 'undefined' &&\n document.contains(restoreTo)\n ) {\n restoreTo.focus({ preventScroll: true })\n }\n previouslyFocusedElement = null\n }\n },\n { flush: 'post', immediate: true },\n)\n\nonBeforeUnmount(() => {\n detachDismissListeners()\n})\n\nfunction onTriggerClick(item: PaHeaderNavItem) {\n if (openTrigger.value === item.label) {\n setMenuOpen(null)\n } else {\n setMenuOpen(item.label)\n }\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\nfunction hasChildren(item: PaHeaderNavItem): boolean {\n return Boolean(item.children && item.children.length > 0)\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 handleLeafClick(event: MouseEvent, item: PaHeaderNavItem) {\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) {\n event.preventDefault()\n }\n}\n\nfunction onSearch(value: string) {\n emit('search', value)\n}\n</script>\n\n<template>\n <header ref=\"wrapperRef\"\n class=\"pa-header-desktop\"\n role=\"banner\">\n <a v-if=\"skipLinkEnabled\"\n class=\"pa-header-desktop__skip\"\n :href=\"skipLinkTarget\">\n {{ skipLinkLabel }}\n </a>\n\n <div class=\"pa-header-desktop__secondary\">\n <div class=\"pa-header-desktop__secondary-content\">\n <div v-if=\"$slots['utility-links']\"\n class=\"pa-header-desktop__utility-links\">\n <slot name=\"utility-links\" />\n </div>\n\n <div class=\"pa-header-desktop__secondary-right\">\n <div v-if=\"$slots.language || languages.length > 0\"\n class=\"pa-header-desktop__language\"\n role=\"group\"\n :aria-label=\"languageGroupLabel\">\n <slot name=\"language\">\n <button v-for=\"lang in languages\"\n :key=\"lang.code\"\n type=\"button\"\n class=\"pa-header-desktop__language-pill\"\n :class=\"{\n 'pa-header-desktop__language-pill--active':\n lang.code === currentLanguage,\n }\"\n :aria-pressed=\"lang.code === currentLanguage\"\n @click=\"(event) => handleLanguageClick(event, lang)\">\n {{ lang.label }}\n </button>\n </slot>\n </div>\n\n <div v-if=\"$slots['utility-icons']\"\n class=\"pa-header-desktop__utility-icons\">\n <slot name=\"utility-icons\" />\n </div>\n\n <template v-if=\"loggedIn\">\n <div class=\"pa-header-desktop__user\">\n <slot name=\"user\">\n <PaIcon name=\"user-fill\"\n size=\"sm\" />\n </slot>\n </div>\n </template>\n <template v-else>\n <a class=\"pa-header-desktop__login-cta\"\n :href=\"loginHref\">\n <span class=\"pa-header-desktop__login-cta-label\">{{ loginLabel }}</span>\n <PaIcon name=\"user\"\n size=\"sm\" />\n </a>\n </template>\n </div>\n </div>\n </div>\n\n <div class=\"pa-header-desktop__primary\">\n <div class=\"pa-header-desktop__primary-content\">\n <div v-if=\"searchEnabled || $slots.search\"\n class=\"pa-header-desktop__search\">\n <slot name=\"search\">\n <PaSearchBar :placeholder=\"searchPlaceholder\"\n :search-label=\"searchButtonLabel\"\n :options=\"searchOptions\"\n :value=\"searchValue ?? ''\"\n @search=\"onSearch\" />\n </slot>\n </div>\n\n <nav v-if=\"mainNav.length > 0\"\n class=\"pa-header-desktop__main-nav\"\n :aria-label=\"mainNavLabel\">\n <template v-for=\"(item, idx) in mainNav\"\n :key=\"`nav-${idx}-${item.label}`\">\n <a v-if=\"!hasChildren(item)\"\n class=\"pa-header-desktop__nav-link\"\n :href=\"item.href\"\n :aria-current=\"item.href !== undefined && item.href === currentHref ? 'page' : undefined\"\n @click=\"(event) => handleLeafClick(event, item)\">\n {{ item.label }}\n </a>\n <button v-else\n :ref=\"(el) => setTriggerRef(item.label, el)\"\n type=\"button\"\n class=\"pa-header-desktop__nav-trigger\"\n :class=\"{\n 'pa-header-desktop__nav-trigger--open':\n openTrigger === item.label,\n }\"\n :aria-expanded=\"openTrigger === item.label\"\n :aria-haspopup=\"true\"\n :aria-controls=\"megaMenuId\"\n :id=\"openTrigger === item.label ? megaMenuTriggerId : undefined\"\n @click=\"onTriggerClick(item)\">\n <span>{{ item.label }}</span>\n <PaIcon name=\"caret-down\"\n size=\"sm\" />\n </button>\n </template>\n </nav>\n </div>\n\n <Transition name=\"pa-mega-menu\">\n <div v-if=\"openTrigger && openItem\"\n :id=\"megaMenuId\"\n ref=\"megaMenuRef\"\n class=\"pa-header-desktop__mega-menu\"\n role=\"region\"\n :aria-labelledby=\"megaMenuTriggerId\">\n <div class=\"pa-header-desktop__mega-menu-inner\">\n <div class=\"pa-header-desktop__mega-column pa-header-desktop__mega-column--left\">\n <slot name=\"mega-column-0\"\n :column=\"megaColumns[0]\">\n <template v-if=\"megaColumns[0]\">\n <ul class=\"pa-header-desktop__mega-links\">\n <li v-for=\"(link, idx) in megaColumns[0].children ?? []\"\n :key=\"`m0-${idx}-${link.label}`\">\n <a class=\"pa-header-desktop__mega-link\"\n :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n <a v-if=\"megaColumns[0].href\"\n class=\"pa-header-desktop__mega-action\"\n :href=\"megaColumns[0].href\">\n <span>Esplora {{ megaColumns[0].label }}</span>\n <PaIcon name=\"arrow-right\"\n size=\"sm\" />\n </a>\n </template>\n </slot>\n </div>\n\n <div class=\"pa-header-desktop__mega-column pa-header-desktop__mega-column--center\">\n <slot name=\"mega-column-1\"\n :column=\"megaColumns[1]\">\n <template v-if=\"megaColumns[1]\">\n <ul class=\"pa-header-desktop__mega-links\">\n <li v-for=\"(link, idx) in megaColumns[1].children ?? []\"\n :key=\"`m1-${idx}-${link.label}`\">\n <a class=\"pa-header-desktop__mega-link\"\n :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n </template>\n </slot>\n </div>\n\n <div class=\"pa-header-desktop__mega-column pa-header-desktop__mega-column--right\">\n <slot name=\"mega-column-2\"\n :column=\"megaColumns[2]\">\n <template v-if=\"megaColumns[2]\">\n <div class=\"pa-header-desktop__mega-column-header\">\n <PaIcon :name=\"megaColumns[2].tools?.icon ?? 'wrench'\"\n size=\"md\" />\n <h3 class=\"pa-header-desktop__mega-column-heading\">\n {{ megaColumns[2].label }}\n </h3>\n </div>\n <ul class=\"pa-header-desktop__mega-links\">\n <li v-for=\"(link, idx) in megaColumns[2].children ?? []\"\n :key=\"`m2-${idx}-${link.label}`\">\n <a class=\"pa-header-desktop__mega-link\"\n :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n </template>\n </slot>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n </header>\n</template>\n\n<style scoped>\n.pa-header-desktop {\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-desktop__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-desktop__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/* Top secondary row */\n\n.pa-header-desktop__secondary {\n height: 48px;\n background: #ffffff;\n border-bottom: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\n}\n\n.pa-header-desktop__secondary-content {\n max-width: 1172px;\n margin: 0 auto;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--pa-space-md);\n}\n\n.pa-header-desktop__utility-links {\n display: flex;\n align-items: center;\n gap: var(--pa-space-md);\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-desktop__utility-links :deep(a) {\n color: var(--pa-color-neutral-gray);\n text-decoration: none;\n}\n\n.pa-header-desktop__utility-links :deep(a:hover) {\n text-decoration: underline;\n}\n\n.pa-header-desktop__utility-links :deep(a:focus-visible) {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n.pa-header-desktop__secondary-right {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.pa-header-desktop__language {\n display: flex;\n align-items: stretch;\n height: 100%;\n}\n\n.pa-header-desktop__language-pill {\n height: 48px;\n min-width: 48px;\n padding: 0 12px;\n background: transparent;\n border: 0;\n font-family: inherit;\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n cursor: pointer;\n border-bottom: 4px solid transparent;\n}\n\n.pa-header-desktop__language-pill--active {\n color: #000000;\n border-bottom-color: #000000;\n}\n\n.pa-header-desktop__language-pill:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-desktop__utility-icons {\n display: flex;\n align-items: stretch;\n height: 100%;\n}\n\n.pa-header-desktop__utility-icons :deep(button),\n.pa-header-desktop__utility-icons :deep(a) {\n width: 48px;\n height: 48px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: var(--pa-color-bg-primary-light-40);\n border: 0;\n padding: 0;\n cursor: pointer;\n color: var(--pa-color-neutral-gray);\n text-decoration: none;\n}\n\n.pa-header-desktop__utility-icons :deep(button:focus-visible),\n.pa-header-desktop__utility-icons :deep(a:focus-visible) {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-desktop__login-cta {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-sm);\n padding: 12px var(--pa-space-md);\n background: var(--pa-color-bg-primary-light-40);\n border-radius: 4px;\n text-decoration: none;\n color: var(--pa-color-primary);\n}\n\n.pa-header-desktop__login-cta-label {\n font-weight: 700;\n font-size: 16px;\n line-height: 24px;\n text-decoration: underline;\n color: var(--pa-color-primary);\n}\n\n.pa-header-desktop__login-cta:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-desktop__user {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--pa-space-md);\n height: 48px;\n color: var(--pa-color-primary);\n}\n\n/* Primary row */\n\n.pa-header-desktop__primary {\n position: relative;\n background: #ffffff;\n padding: var(--pa-space-sm) 0;\n}\n\n.pa-header-desktop__primary-content {\n max-width: 1172px;\n margin: 0 auto;\n padding: 0 var(--pa-space-md);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-desktop__search {\n width: 100%;\n max-width: 970px;\n}\n\n.pa-header-desktop__main-nav {\n display: flex;\n gap: var(--pa-space-md);\n align-items: center;\n justify-content: center;\n}\n\n.pa-header-desktop__nav-link,\n.pa-header-desktop__nav-trigger {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding: 4px var(--pa-space-xs);\n background: transparent;\n border: 0;\n border-radius: 4px;\n font-family: inherit;\n font-size: var(--pa-font-h6-size);\n line-height: var(--pa-font-h6-line-height);\n font-weight: var(--pa-font-h6-weight);\n color: var(--pa-color-neutral-gray);\n text-decoration: none;\n border-bottom: 4px solid transparent;\n cursor: pointer;\n}\n\n.pa-header-desktop__nav-link:hover,\n.pa-header-desktop__nav-link[aria-current='page'],\n.pa-header-desktop__nav-trigger:hover:not([disabled]) {\n border-bottom-color: var(--pa-color-text-dark-blue);\n}\n\n.pa-header-desktop__nav-link:focus-visible,\n.pa-header-desktop__nav-trigger:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-desktop__nav-trigger[disabled] {\n cursor: default;\n}\n\n.pa-header-desktop__nav-trigger--open {\n border-bottom-color: var(--pa-color-text-dark-blue);\n}\n\n/* Mega menu overlay */\n\n.pa-header-desktop__mega-menu {\n position: absolute;\n left: 0;\n right: 0;\n top: 100%;\n z-index: 50;\n background: #ffffff;\n border-radius: 4px;\n box-shadow: var(--pa-shadow-elevation-01, 0 0 16px 0 #e3e5e8);\n}\n\n.pa-header-desktop__mega-menu-inner {\n max-width: 1172px;\n margin: 0 auto;\n padding: 32px var(--pa-space-md);\n display: flex;\n gap: var(--pa-space-md);\n}\n\n.pa-header-desktop__mega-column {\n flex: 1 1 0;\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-md);\n padding: 0 var(--pa-space-md);\n}\n\n.pa-header-desktop__mega-column--right {\n background: var(--pa-color-bg-primary-light-40);\n padding: 32px var(--pa-space-md);\n border-radius: 4px;\n}\n\n.pa-header-desktop__mega-column-header {\n display: flex;\n align-items: center;\n gap: 10px;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-desktop__mega-column-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-desktop__mega-links {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-desktop__mega-link {\n display: inline-block;\n font-size: 16px;\n line-height: 24px;\n font-weight: 700;\n color: var(--pa-color-primary);\n text-decoration: underline;\n border-radius: 4px;\n}\n\n.pa-header-desktop__mega-link:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-desktop__mega-action {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding-top: var(--pa-space-sm);\n border-top: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\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-desktop__mega-action:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n/* Mega menu transition (150 ms; honors reduced-motion) */\n\n.pa-mega-menu-enter-active,\n.pa-mega-menu-leave-active {\n transition:\n opacity 150ms ease,\n transform 150ms ease;\n}\n\n.pa-mega-menu-enter-from,\n.pa-mega-menu-leave-to {\n opacity: 0;\n transform: translateY(-4px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n\n .pa-mega-menu-enter-active,\n .pa-mega-menu-leave-active {\n transition-duration: 0ms;\n }\n\n .pa-mega-menu-enter-from,\n .pa-mega-menu-leave-to {\n transform: none;\n }\n}\n</style>\n"],"names":["desktopUid","nextDesktopId","props","__props","emit","__emit","megaMenuId","megaMenuTriggerId","internalMenuOpen","ref","openTrigger","computed","setMenuOpen","next","openItem","item","megaColumns","children","wrapperRef","megaMenuRef","triggerRefs","setTriggerRef","label","el","previouslyFocusedElement","escListenerAttached","outsideClickListenerAttached","onWindowKeydownEsc","event","onDocumentMousedown","target","trigger","attachDismissListeners","detachDismissListeners","watch","prev","nextTick","focusable","restoreTo","onBeforeUnmount","onTriggerClick","skipLinkEnabled","skipLinkLabel","skipLinkTarget","hasChildren","handleLanguageClick","language","prevented","payload","handleLeafClick","onSearch","value","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","$slots","_openBlock","_hoisted_4","_renderSlot","_ctx","_hoisted_5","_Fragment","_renderList","lang","_toDisplayString","_hoisted_7","_hoisted_8","_hoisted_9","_createVNode","PaIcon","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","PaSearchBar","idx","$event","_hoisted_16","_Transition","_hoisted_18","_hoisted_19","_hoisted_20","link","_hoisted_21","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_a","_hoisted_28","_hoisted_29","_hoisted_30"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaHeaderDesktop.vue2.js","sources":["../../../src/components/PaHeaderDesktop/PaHeaderDesktop.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'\nimport type { PaSearchBarOption } from '../PaSearchBar/PaSearchBar.vue'\n\nexport type {\n PaHeaderLink,\n PaHeaderTools,\n PaHeaderNavItem,\n PaHeaderLanguage,\n PaHeaderSkipLinkConfig,\n PaHeaderNavigateEventPayload,\n PaHeaderLanguageChangeEventPayload,\n}\n\nexport interface PaHeaderDesktopProps {\n loggedIn?: boolean\n mainNav?: PaHeaderNavItem[]\n languages?: PaHeaderLanguage[]\n currentLanguage?: string\n currentHref?: string\n menuOpen?: string | null\n searchEnabled?: boolean\n searchPlaceholder?: string\n searchButtonLabel?: string\n searchOptions?: PaSearchBarOption[]\n searchValue?: string\n loginLabel?: string\n loginHref?: string\n mainNavLabel?: string\n languageGroupLabel?: string\n skipLink?: boolean | PaHeaderSkipLinkConfig\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, ref, useId, watch } from 'vue'\nimport PaIcon from '../PaIcon/PaIcon.vue'\nimport PaSearchBar from '../PaSearchBar/PaSearchBar.vue'\n\nconst props = withDefaults(defineProps<PaHeaderDesktopProps>(), {\n loggedIn: false,\n mainNav: () => [],\n languages: () => [],\n currentLanguage: undefined,\n currentHref: undefined,\n menuOpen: undefined,\n searchEnabled: true,\n searchPlaceholder: 'Cerca',\n searchButtonLabel: 'Ricerca',\n searchOptions: () => [],\n searchValue: undefined,\n loginLabel: 'Accedi',\n loginHref: '/login',\n mainNavLabel: 'Navigazione principale',\n languageGroupLabel: 'Seleziona la lingua',\n skipLink: true,\n})\n\nconst emit = defineEmits<{\n 'update:menuOpen': [string | null]\n search: [value: string]\n 'language-change': [PaHeaderLanguageChangeEventPayload]\n navigate: [PaHeaderNavigateEventPayload]\n}>()\n\ndefineSlots<{\n 'utility-links'?: () => unknown\n 'utility-icons'?: () => unknown\n language?: () => unknown\n user?: () => unknown\n search?: () => unknown\n 'mega-column-0'?: (scope: { column?: PaHeaderNavItem }) => unknown\n 'mega-column-1'?: (scope: { column?: PaHeaderNavItem }) => unknown\n 'mega-column-2'?: (scope: { column?: PaHeaderNavItem }) => unknown\n}>()\n\nconst componentId = useId()\nconst megaMenuId = `pa-header-desktop-mega-${componentId}`\nconst megaMenuTriggerId = `${megaMenuId}-trigger`\n\n// Controlled / uncontrolled menuOpen — same pattern as PaHeaderMobile but with\n// `string | null` (the open trigger's label).\nconst internalMenuOpen = ref<string | null>(null)\nconst openTrigger = computed(() =>\n props.menuOpen !== undefined ? props.menuOpen : internalMenuOpen.value,\n)\n\nfunction setMenuOpen(next: string | null) {\n if (props.menuOpen === undefined) {\n internalMenuOpen.value = next\n }\n emit('update:menuOpen', next)\n}\n\nconst openItem = computed<PaHeaderNavItem | null>(() => {\n if (!openTrigger.value) return null\n return props.mainNav.find((item) => item.label === openTrigger.value) ?? null\n})\n\nconst megaColumns = computed<Array<PaHeaderNavItem | undefined>>(() => {\n if (!openItem.value || !openItem.value.children) return [undefined, undefined, undefined]\n const children = openItem.value.children\n return [children[0], children[1], children[2]]\n})\n\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst megaMenuRef = ref<HTMLElement | null>(null)\nconst triggerRefs = ref<Record<string, HTMLButtonElement | null>>({})\n\nfunction setTriggerRef(label: string, el: unknown) {\n triggerRefs.value[label] = (el as HTMLButtonElement | null) ?? null\n}\n\nlet previouslyFocusedElement: HTMLElement | null = null\nlet escListenerAttached = false\nlet outsideClickListenerAttached = false\n\nfunction onWindowKeydownEsc(event: KeyboardEvent) {\n if (event.key === 'Escape' && openTrigger.value) {\n event.preventDefault()\n setMenuOpen(null)\n }\n}\n\nfunction onDocumentMousedown(event: MouseEvent) {\n if (!openTrigger.value) return\n const target = event.target as Node | null\n if (!target) return\n if (megaMenuRef.value && megaMenuRef.value.contains(target)) return\n const trigger = triggerRefs.value[openTrigger.value]\n if (trigger && trigger.contains(target)) return\n setMenuOpen(null)\n}\n\nfunction attachDismissListeners() {\n if (typeof window === 'undefined') return\n if (!escListenerAttached) {\n window.addEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = true\n }\n if (!outsideClickListenerAttached) {\n document.addEventListener('mousedown', onDocumentMousedown)\n outsideClickListenerAttached = true\n }\n}\n\nfunction detachDismissListeners() {\n if (typeof window === 'undefined') return\n if (escListenerAttached) {\n window.removeEventListener('keydown', onWindowKeydownEsc)\n escListenerAttached = false\n }\n if (outsideClickListenerAttached) {\n document.removeEventListener('mousedown', onDocumentMousedown)\n outsideClickListenerAttached = false\n }\n}\n\nwatch(\n openTrigger,\n async (next, prev) => {\n if (next && !prev) {\n if (typeof document !== 'undefined') {\n previouslyFocusedElement = document.activeElement as HTMLElement | null\n }\n attachDismissListeners()\n await nextTick()\n if (megaMenuRef.value) {\n const focusable = megaMenuRef.value.querySelector<HTMLElement>(\n 'a, button:not([disabled])',\n )\n if (focusable) focusable.focus({ preventScroll: true })\n }\n } else if (!next && prev) {\n detachDismissListeners()\n const restoreTo =\n previouslyFocusedElement ?? triggerRefs.value[prev] ?? null\n if (\n restoreTo &&\n typeof document !== 'undefined' &&\n document.contains(restoreTo)\n ) {\n restoreTo.focus({ preventScroll: true })\n }\n previouslyFocusedElement = null\n }\n },\n { flush: 'post', immediate: true },\n)\n\nonBeforeUnmount(() => {\n detachDismissListeners()\n})\n\nfunction onTriggerClick(item: PaHeaderNavItem) {\n if (openTrigger.value === item.label) {\n setMenuOpen(null)\n } else {\n setMenuOpen(item.label)\n }\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\nfunction hasChildren(item: PaHeaderNavItem): boolean {\n return Boolean(item.children && item.children.length > 0)\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 handleLeafClick(event: MouseEvent, item: PaHeaderNavItem) {\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) {\n event.preventDefault()\n }\n}\n\nfunction onSearch(value: string) {\n emit('search', value)\n}\n</script>\n\n<template>\n <header ref=\"wrapperRef\"\n class=\"pa-header-desktop\"\n role=\"banner\">\n <a v-if=\"skipLinkEnabled\"\n class=\"pa-header-desktop__skip\"\n :href=\"skipLinkTarget\">\n {{ skipLinkLabel }}\n </a>\n\n <div class=\"pa-header-desktop__secondary\">\n <div class=\"pa-header-desktop__secondary-content\">\n <div v-if=\"$slots['utility-links']\"\n class=\"pa-header-desktop__utility-links\">\n <slot name=\"utility-links\" />\n </div>\n\n <div class=\"pa-header-desktop__secondary-right\">\n <div v-if=\"$slots.language || languages.length > 0\"\n class=\"pa-header-desktop__language\"\n role=\"group\"\n :aria-label=\"languageGroupLabel\">\n <slot name=\"language\">\n <button v-for=\"lang in languages\"\n :key=\"lang.code\"\n type=\"button\"\n class=\"pa-header-desktop__language-pill\"\n :class=\"{\n 'pa-header-desktop__language-pill--active':\n lang.code === currentLanguage,\n }\"\n :aria-pressed=\"lang.code === currentLanguage\"\n @click=\"(event) => handleLanguageClick(event, lang)\">\n {{ lang.label }}\n </button>\n </slot>\n </div>\n\n <div v-if=\"$slots['utility-icons']\"\n class=\"pa-header-desktop__utility-icons\">\n <slot name=\"utility-icons\" />\n </div>\n\n <template v-if=\"loggedIn\">\n <div class=\"pa-header-desktop__user\">\n <slot name=\"user\">\n <PaIcon name=\"user-fill\"\n size=\"sm\" />\n </slot>\n </div>\n </template>\n <template v-else>\n <a class=\"pa-header-desktop__login-cta\"\n :href=\"loginHref\">\n <span class=\"pa-header-desktop__login-cta-label\">{{ loginLabel }}</span>\n <PaIcon name=\"user\"\n size=\"sm\" />\n </a>\n </template>\n </div>\n </div>\n </div>\n\n <div class=\"pa-header-desktop__primary\">\n <div class=\"pa-header-desktop__primary-content\">\n <div v-if=\"searchEnabled || $slots.search\"\n class=\"pa-header-desktop__search\">\n <slot name=\"search\">\n <PaSearchBar :placeholder=\"searchPlaceholder\"\n :search-label=\"searchButtonLabel\"\n :options=\"searchOptions\"\n :value=\"searchValue ?? ''\"\n @search=\"onSearch\" />\n </slot>\n </div>\n\n <nav v-if=\"mainNav.length > 0\"\n class=\"pa-header-desktop__main-nav\"\n :aria-label=\"mainNavLabel\">\n <template v-for=\"(item, idx) in mainNav\"\n :key=\"`nav-${idx}-${item.label}`\">\n <a v-if=\"!hasChildren(item)\"\n class=\"pa-header-desktop__nav-link\"\n :href=\"item.href\"\n :aria-current=\"item.href !== undefined && item.href === currentHref ? 'page' : undefined\"\n @click=\"(event) => handleLeafClick(event, item)\">\n {{ item.label }}\n </a>\n <button v-else\n :ref=\"(el) => setTriggerRef(item.label, el)\"\n type=\"button\"\n class=\"pa-header-desktop__nav-trigger\"\n :class=\"{\n 'pa-header-desktop__nav-trigger--open':\n openTrigger === item.label,\n }\"\n :aria-expanded=\"openTrigger === item.label\"\n :aria-haspopup=\"true\"\n :aria-controls=\"megaMenuId\"\n :id=\"openTrigger === item.label ? megaMenuTriggerId : undefined\"\n @click=\"onTriggerClick(item)\">\n <span>{{ item.label }}</span>\n <PaIcon name=\"caret-down\"\n size=\"sm\" />\n </button>\n </template>\n </nav>\n </div>\n\n <Transition name=\"pa-mega-menu\">\n <div v-if=\"openTrigger && openItem\"\n :id=\"megaMenuId\"\n ref=\"megaMenuRef\"\n class=\"pa-header-desktop__mega-menu\"\n role=\"region\"\n :aria-labelledby=\"megaMenuTriggerId\">\n <div class=\"pa-header-desktop__mega-menu-inner\">\n <div class=\"pa-header-desktop__mega-column pa-header-desktop__mega-column--left\">\n <slot name=\"mega-column-0\"\n :column=\"megaColumns[0]\">\n <template v-if=\"megaColumns[0]\">\n <ul class=\"pa-header-desktop__mega-links\">\n <li v-for=\"(link, idx) in megaColumns[0].children ?? []\"\n :key=\"`m0-${idx}-${link.label}`\">\n <a class=\"pa-header-desktop__mega-link\"\n :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n <a v-if=\"megaColumns[0].href\"\n class=\"pa-header-desktop__mega-action\"\n :href=\"megaColumns[0].href\">\n <span>Esplora {{ megaColumns[0].label }}</span>\n <PaIcon name=\"arrow-right\"\n size=\"sm\" />\n </a>\n </template>\n </slot>\n </div>\n\n <div class=\"pa-header-desktop__mega-column pa-header-desktop__mega-column--center\">\n <slot name=\"mega-column-1\"\n :column=\"megaColumns[1]\">\n <template v-if=\"megaColumns[1]\">\n <ul class=\"pa-header-desktop__mega-links\">\n <li v-for=\"(link, idx) in megaColumns[1].children ?? []\"\n :key=\"`m1-${idx}-${link.label}`\">\n <a class=\"pa-header-desktop__mega-link\"\n :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n </template>\n </slot>\n </div>\n\n <div class=\"pa-header-desktop__mega-column pa-header-desktop__mega-column--right\">\n <slot name=\"mega-column-2\"\n :column=\"megaColumns[2]\">\n <template v-if=\"megaColumns[2]\">\n <div class=\"pa-header-desktop__mega-column-header\">\n <PaIcon :name=\"megaColumns[2].tools?.icon ?? 'wrench'\"\n size=\"md\" />\n <h3 class=\"pa-header-desktop__mega-column-heading\">\n {{ megaColumns[2].label }}\n </h3>\n </div>\n <ul class=\"pa-header-desktop__mega-links\">\n <li v-for=\"(link, idx) in megaColumns[2].children ?? []\"\n :key=\"`m2-${idx}-${link.label}`\">\n <a class=\"pa-header-desktop__mega-link\"\n :href=\"link.href\">{{ link.label }}</a>\n </li>\n </ul>\n </template>\n </slot>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n </header>\n</template>\n\n<style scoped>\n.pa-header-desktop {\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-desktop__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-desktop__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/* Top secondary row */\n\n.pa-header-desktop__secondary {\n height: 48px;\n background: #ffffff;\n border-bottom: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\n}\n\n.pa-header-desktop__secondary-content {\n max-width: 1172px;\n margin: 0 auto;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--pa-space-md);\n}\n\n.pa-header-desktop__utility-links {\n display: flex;\n align-items: center;\n gap: var(--pa-space-md);\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-desktop__utility-links :deep(a) {\n color: var(--pa-color-neutral-gray);\n text-decoration: none;\n}\n\n.pa-header-desktop__utility-links :deep(a:hover) {\n text-decoration: underline;\n}\n\n.pa-header-desktop__utility-links :deep(a:focus-visible) {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n.pa-header-desktop__secondary-right {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.pa-header-desktop__language {\n display: flex;\n align-items: stretch;\n height: 100%;\n}\n\n.pa-header-desktop__language-pill {\n height: 48px;\n min-width: 48px;\n padding: 0 12px;\n background: transparent;\n border: 0;\n font-family: inherit;\n font-size: 16px;\n line-height: 20px;\n color: var(--pa-color-neutral-gray);\n cursor: pointer;\n border-bottom: 4px solid transparent;\n}\n\n.pa-header-desktop__language-pill--active {\n color: #000000;\n border-bottom-color: #000000;\n}\n\n.pa-header-desktop__language-pill:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-desktop__utility-icons {\n display: flex;\n align-items: stretch;\n height: 100%;\n}\n\n.pa-header-desktop__utility-icons :deep(button),\n.pa-header-desktop__utility-icons :deep(a) {\n width: 48px;\n height: 48px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: var(--pa-color-bg-primary-light-40);\n border: 0;\n padding: 0;\n cursor: pointer;\n color: var(--pa-color-neutral-gray);\n text-decoration: none;\n}\n\n.pa-header-desktop__utility-icons :deep(button:focus-visible),\n.pa-header-desktop__utility-icons :deep(a:focus-visible) {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: -2px;\n}\n\n.pa-header-desktop__login-cta {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-sm);\n padding: 12px var(--pa-space-md);\n background: var(--pa-color-bg-primary-light-40);\n border-radius: 4px;\n text-decoration: none;\n color: var(--pa-color-primary);\n}\n\n.pa-header-desktop__login-cta-label {\n font-weight: 700;\n font-size: 16px;\n line-height: 24px;\n text-decoration: underline;\n color: var(--pa-color-primary);\n}\n\n.pa-header-desktop__login-cta:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-desktop__user {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--pa-space-md);\n height: 48px;\n color: var(--pa-color-primary);\n}\n\n/* Primary row */\n\n.pa-header-desktop__primary {\n position: relative;\n background: #ffffff;\n padding: var(--pa-space-sm) 0;\n}\n\n.pa-header-desktop__primary-content {\n max-width: 1172px;\n margin: 0 auto;\n padding: 0 var(--pa-space-md);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-desktop__search {\n width: 100%;\n max-width: 970px;\n}\n\n.pa-header-desktop__main-nav {\n display: flex;\n gap: var(--pa-space-md);\n align-items: center;\n justify-content: center;\n}\n\n.pa-header-desktop__nav-link,\n.pa-header-desktop__nav-trigger {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding: 4px var(--pa-space-xs);\n background: transparent;\n border: 0;\n border-radius: 4px;\n font-family: inherit;\n font-size: var(--pa-font-h6-size);\n line-height: var(--pa-font-h6-line-height);\n font-weight: var(--pa-font-h6-weight);\n color: var(--pa-color-neutral-gray);\n text-decoration: none;\n border-bottom: 4px solid transparent;\n cursor: pointer;\n}\n\n.pa-header-desktop__nav-link:hover,\n.pa-header-desktop__nav-link[aria-current='page'],\n.pa-header-desktop__nav-trigger:hover:not([disabled]) {\n border-bottom-color: var(--pa-color-text-dark-blue);\n}\n\n.pa-header-desktop__nav-link:focus-visible,\n.pa-header-desktop__nav-trigger:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-desktop__nav-trigger[disabled] {\n cursor: default;\n}\n\n.pa-header-desktop__nav-trigger--open {\n border-bottom-color: var(--pa-color-text-dark-blue);\n}\n\n/* Mega menu overlay */\n\n.pa-header-desktop__mega-menu {\n position: absolute;\n left: 0;\n right: 0;\n top: 100%;\n z-index: 50;\n background: #ffffff;\n border-radius: 4px;\n box-shadow: var(--pa-shadow-elevation-01, 0 0 16px 0 #e3e5e8);\n}\n\n.pa-header-desktop__mega-menu-inner {\n max-width: 1172px;\n margin: 0 auto;\n padding: 32px var(--pa-space-md);\n display: flex;\n gap: var(--pa-space-md);\n}\n\n.pa-header-desktop__mega-column {\n flex: 1 1 0;\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-md);\n padding: 0 var(--pa-space-md);\n}\n\n.pa-header-desktop__mega-column--right {\n background: var(--pa-color-bg-primary-light-40);\n padding: 32px var(--pa-space-md);\n border-radius: 4px;\n}\n\n.pa-header-desktop__mega-column-header {\n display: flex;\n align-items: center;\n gap: 10px;\n color: var(--pa-color-neutral-gray);\n}\n\n.pa-header-desktop__mega-column-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-desktop__mega-links {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--pa-space-sm);\n}\n\n.pa-header-desktop__mega-link {\n display: inline-block;\n font-size: 16px;\n line-height: 24px;\n font-weight: 700;\n color: var(--pa-color-primary);\n text-decoration: underline;\n border-radius: 4px;\n}\n\n.pa-header-desktop__mega-link:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n}\n\n.pa-header-desktop__mega-action {\n display: inline-flex;\n align-items: center;\n gap: var(--pa-space-xs);\n padding-top: var(--pa-space-sm);\n border-top: var(--pa-border-xs) solid var(--pa-color-bg-primary-light-50);\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-desktop__mega-action:focus-visible {\n outline: var(--pa-border-sm) solid var(--pa-color-accent);\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n/* Mega menu transition (150 ms; honors reduced-motion) */\n\n.pa-mega-menu-enter-active,\n.pa-mega-menu-leave-active {\n transition:\n opacity 150ms ease,\n transform 150ms ease;\n}\n\n.pa-mega-menu-enter-from,\n.pa-mega-menu-leave-to {\n opacity: 0;\n transform: translateY(-4px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n\n .pa-mega-menu-enter-active,\n .pa-mega-menu-leave-active {\n transition-duration: 0ms;\n }\n\n .pa-mega-menu-enter-from,\n .pa-mega-menu-leave-to {\n transform: none;\n }\n}\n</style>\n"],"names":["props","__props","emit","__emit","megaMenuId","useId","megaMenuTriggerId","internalMenuOpen","ref","openTrigger","computed","setMenuOpen","next","openItem","item","megaColumns","children","wrapperRef","megaMenuRef","triggerRefs","setTriggerRef","label","el","previouslyFocusedElement","escListenerAttached","outsideClickListenerAttached","onWindowKeydownEsc","event","onDocumentMousedown","target","trigger","attachDismissListeners","detachDismissListeners","watch","prev","nextTick","focusable","restoreTo","onBeforeUnmount","onTriggerClick","skipLinkEnabled","skipLinkLabel","skipLinkTarget","hasChildren","handleLanguageClick","language","prevented","payload","handleLeafClick","onSearch","value","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","$slots","_openBlock","_hoisted_4","_renderSlot","_ctx","_hoisted_5","_Fragment","_renderList","lang","_toDisplayString","_hoisted_7","_hoisted_8","_hoisted_9","_createVNode","PaIcon","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","PaSearchBar","idx","$event","_hoisted_16","_Transition","_hoisted_18","_hoisted_19","_hoisted_20","link","_hoisted_21","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_a","_hoisted_28","_hoisted_29","_hoisted_30"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import o from "./PaHeaderMobile.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import e from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const
|
|
4
|
+
const f = /* @__PURE__ */ e(o, [["__scopeId", "data-v-9e69f052"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
f as default
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=PaHeaderMobile.vue.js.map
|