@kiva/kv-components 6.40.0 → 6.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/index.js +60 -58
  2. package/dist/utils/arrayUtils.js +8 -0
  3. package/dist/utils/comparators.js +28 -0
  4. package/dist/utils/event.js +7 -0
  5. package/dist/utils/loanSearch/queryParamUtils.js +13 -0
  6. package/dist/utils/markMatches.js +12 -0
  7. package/dist/utils/paramCase.js +6 -0
  8. package/dist/utils/searchEngine.js +56 -0
  9. package/dist/utils/siteSearch.js +112 -0
  10. package/dist/vue/KvContentfulImg.js +1 -1
  11. package/dist/vue/KvIconBag.js +41 -0
  12. package/dist/vue/KvLogo.js +18 -0
  13. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.css +1 -0
  14. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.js +176 -0
  15. package/dist/vue/KvWwwHeader/KvHeaderLogo.js +18 -0
  16. package/dist/vue/KvWwwHeader/KvHeaderMenuLink.js +12 -0
  17. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.js +73 -0
  18. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu.js +90 -0
  19. package/dist/vue/KvWwwHeader/KvHeaderSearchBar.js +72 -0
  20. package/dist/vue/KvWwwHeader/KvHeaderSearchSuggestions.css +1 -0
  21. package/dist/vue/KvWwwHeader/KvHeaderSearchSuggestions.js +57 -0
  22. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.css +1 -0
  23. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.js +257 -0
  24. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.css +1 -0
  25. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.js +263 -0
  26. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu.js +155 -0
  27. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.css +1 -0
  28. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.js +38 -0
  29. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList.js +32 -0
  30. package/dist/vue/KvWwwHeader.css +1 -0
  31. package/dist/vue/KvWwwHeader.js +203 -0
  32. package/package.json +2 -2
@@ -0,0 +1,263 @@
1
+ import { mdiArrowRight as N, mdiChevronLeft as T } from "@mdi/js";
2
+ import { ref as L, computed as k, resolveComponent as u, resolveDirective as R, openBlock as n, createElementBlock as s, createElementVNode as t, normalizeStyle as A, createVNode as w, withCtx as K, Fragment as c, renderList as h, withDirectives as d, createTextVNode as m, toDisplayString as x, createCommentVNode as C, normalizeClass as O } from "vue";
3
+ import I from "../../KvLoadingPlaceholder.js";
4
+ import M from "../../KvGrid.js";
5
+ import B from "../../KvMaterialIcon.js";
6
+ import V from "./KvLendMenuCountryList.js";
7
+ import D from "./KvLendMenuSearchList.js";
8
+ import "./KvLendMegaMenu.css";
9
+ import F from "../../../_virtual/_plugin-vue_export-helper.js";
10
+ const z = {
11
+ components: {
12
+ KvGrid: M,
13
+ KvLendMenuCountryList: V,
14
+ KvLendMenuSearchList: D,
15
+ KvLoadingPlaceholder: I,
16
+ KvMaterialIcon: B
17
+ },
18
+ props: {
19
+ categories: {
20
+ type: Array,
21
+ default: () => []
22
+ },
23
+ favorites: {
24
+ type: Number,
25
+ default: 0
26
+ },
27
+ isRegionsLoading: {
28
+ type: Boolean,
29
+ default: !0
30
+ },
31
+ isChannelsLoading: {
32
+ type: Boolean,
33
+ default: !0
34
+ },
35
+ userId: {
36
+ type: Number,
37
+ default: null
38
+ },
39
+ regions: {
40
+ type: Array,
41
+ default: () => []
42
+ },
43
+ searches: {
44
+ type: Array,
45
+ default: () => []
46
+ }
47
+ },
48
+ setup(p) {
49
+ const e = L(null), i = L(""), l = k(() => i.value !== ""), y = (a) => i.value === a, b = (a) => {
50
+ i.value = a;
51
+ }, v = k(() => {
52
+ var r;
53
+ const a = { width: "150%" };
54
+ if (l.value) {
55
+ const o = ((r = e.value) == null ? void 0 : r.clientWidth) ?? 0;
56
+ a.transform = `translateX(${o * -1}px)`;
57
+ }
58
+ return a;
59
+ }), f = k(() => p.regions.filter((a) => y(a.name))), _ = k(() => p.searches.length > 0);
60
+ return {
61
+ mdiArrowRight: N,
62
+ mdiChevronLeft: T,
63
+ categoriesSection: e,
64
+ openedSection: i,
65
+ sectionOpen: l,
66
+ isOpenSection: y,
67
+ openSection: b,
68
+ onClose: () => {
69
+ i.value = "";
70
+ },
71
+ openRegions: f,
72
+ computedStyle: v,
73
+ hasSearches: _,
74
+ savedSearchesTitle: "Saved searches"
75
+ };
76
+ }
77
+ }, E = { class: "lend-mega-menu tw-overflow-hidden tw-pb-3 lg:tw-pt-3" }, W = {
78
+ ref: "categoriesSection",
79
+ class: "tw-col-span-7"
80
+ }, G = { class: "tw-flex tw-gap-4 tw-whitespace-nowrap" }, P = { class: "tw-columns-2 tw-gap-4 tw-font-book" }, X = ["href"], j = { class: "tw-font-book" }, q = { class: "link-item" }, H = {
81
+ href: "/lend-by-category/recommended-by-lenders",
82
+ class: "mega-menu-link"
83
+ }, J = { class: "link-item" }, Q = {
84
+ href: "/categories",
85
+ class: "mega-menu-link"
86
+ }, U = { class: "link-item" }, Y = {
87
+ class: "mega-menu-link",
88
+ href: "/lend"
89
+ }, Z = { key: 0 }, $ = { class: "tw-font-book" }, ee = ["href"], te = {
90
+ key: 1,
91
+ class: "tw-text-secondary tw-py-1 tw-inline-block"
92
+ }, ne = ["aria-pressed"], se = {
93
+ key: 1,
94
+ class: "tw-text-secondary tw-py-1 tw-inline-block"
95
+ }, oe = {
96
+ href: "/lend/countries-not-lent",
97
+ class: "tw-text-primary tw-text-left hover:tw-text-action-highlight tw-py-1 tw-inline-block"
98
+ }, le = { class: "tw-col-span-2" }, ie = { class: "tw-col-span-8 tw-flex tw-flex-col" }, ae = { class: "tw-flex tw-whitespace-nowrap tw-h-full" }, re = { class: "tw-font-book" }, ce = ["aria-pressed", "onClick"];
99
+ function de(p, e, i, l, y, b) {
100
+ const v = u("kv-loading-placeholder"), f = u("kv-material-icon"), _ = u("kv-lend-menu-search-list"), S = u("kv-lend-menu-country-list"), a = u("kv-grid"), r = R("kv-track-event");
101
+ return n(), s("div", E, [
102
+ t("div", {
103
+ style: A(l.computedStyle),
104
+ class: "tw-transition tw-duration-1000 tw-ease-in-out"
105
+ }, [
106
+ w(a, { style: { "grid-template-columns": "repeat(18, minmax(0, 1fr))" } }, {
107
+ default: K(() => [
108
+ t("div", W, [
109
+ e[10] || (e[10] = t("h2", { class: "menu-heading tw-mb-2" }, " Categories ", -1)),
110
+ t("div", G, [
111
+ t("ul", P, [
112
+ i.isChannelsLoading ? (n(), s(c, { key: 0 }, h(14, (o) => t("li", {
113
+ key: o,
114
+ class: "link-item"
115
+ }, [
116
+ w(v, {
117
+ class: "tw-inline-block tw-align-middle",
118
+ style: { height: "1.25rem" }
119
+ }),
120
+ e[2] || (e[2] = t("span", { class: "tw-py-1 tw-inline-block" }, " ", -1))
121
+ ])), 64)) : (n(!0), s(c, { key: 1 }, h(i.categories, (o, g) => (n(), s("li", {
122
+ key: g,
123
+ class: "link-item"
124
+ }, [
125
+ d((n(), s("a", {
126
+ href: o.url,
127
+ class: "tw-text-primary tw-text-left hover:tw-text-action-highlight tw-py-1 tw-inline-block"
128
+ }, [
129
+ m(x(o.name), 1)
130
+ ], 8, X)), [
131
+ [r, ["TopNav", "click-Lend-Category", o.name, g + 1]]
132
+ ])
133
+ ]))), 128))
134
+ ]),
135
+ t("div", null, [
136
+ t("ul", j, [
137
+ t("li", q, [
138
+ d((n(), s("a", H, e[3] || (e[3] = [
139
+ m(" Recommended by lenders ")
140
+ ]))), [
141
+ [r, ["TopNav", "click-Lend-Recommended-by-lenders"]]
142
+ ])
143
+ ]),
144
+ t("li", J, [
145
+ d((n(), s("a", Q, e[4] || (e[4] = [
146
+ m(" All categories ")
147
+ ]))), [
148
+ [r, ["TopNav", "click-Lend-All_Categories"]]
149
+ ])
150
+ ]),
151
+ t("li", U, [
152
+ d((n(), s("a", Y, e[5] || (e[5] = [
153
+ m(" All loans ")
154
+ ]))), [
155
+ [r, ["TopNav", "click-Lend-All_Loans"]]
156
+ ])
157
+ ])
158
+ ]),
159
+ i.userId ? (n(), s("div", Z, [
160
+ e[8] || (e[8] = t("span", { class: "tw-inline-block tw-py-1" }, " ", -1)),
161
+ e[9] || (e[9] = t("h2", { class: "menu-heading tw-my-1" }, " My Kiva ", -1)),
162
+ t("ul", $, [
163
+ t("li", null, [
164
+ i.favorites > 0 ? d((n(), s("a", {
165
+ key: 0,
166
+ href: `/lend?lenderFavorite=${i.userId}`,
167
+ class: "tw-text-primary tw-text-left hover:tw-text-action-highlight tw-py-1 tw-inline-block"
168
+ }, e[6] || (e[6] = [
169
+ m(" Saved loans ")
170
+ ]), 8, ee)), [
171
+ [r, ["TopNav", "click-Lend-Favorites"]]
172
+ ]) : (n(), s("span", te, " Saved loans "))
173
+ ]),
174
+ t("li", null, [
175
+ l.hasSearches ? (n(), s("button", {
176
+ key: 0,
177
+ "aria-pressed": l.isOpenSection(l.savedSearchesTitle) ? "true" : "false",
178
+ class: "tw-text-primary tw-text-left tw-py-1 tw-inline-block hover:tw-text-action-highlight hover:tw-underline",
179
+ onClick: e[0] || (e[0] = (o) => l.openSection(l.savedSearchesTitle))
180
+ }, x(l.savedSearchesTitle), 9, ne)) : (n(), s("span", se, " Saved searches "))
181
+ ]),
182
+ t("li", null, [
183
+ d((n(), s("a", oe, e[7] || (e[7] = [
184
+ m(" Countries I haven't lent to ")
185
+ ]))), [
186
+ [r, ["TopNav", "click-Lend-Countries_Not_Lent"]]
187
+ ])
188
+ ])
189
+ ])
190
+ ])) : C("", !0)
191
+ ])
192
+ ])
193
+ ], 512),
194
+ t("div", le, [
195
+ l.sectionOpen ? (n(), s("button", {
196
+ key: 0,
197
+ class: "tw-flex",
198
+ onClick: e[1] || (e[1] = (o) => l.openedSection = "")
199
+ }, [
200
+ w(f, {
201
+ class: "tw-flex-shrink-0 tw-w-3 tw-h-3",
202
+ icon: l.mdiChevronLeft
203
+ }, null, 8, ["icon"]),
204
+ e[11] || (e[11] = t("span", { class: "tw-text-base" }, " Back ", -1))
205
+ ])) : C("", !0)
206
+ ]),
207
+ t("div", ie, [
208
+ l.isOpenSection(l.savedSearchesTitle) ? (n(), s(c, { key: 0 }, [
209
+ e[12] || (e[12] = t("h2", { class: "menu-heading tw-mb-2" }, " Saved Searches ", -1)),
210
+ w(_, {
211
+ class: "search-list tw-h-full",
212
+ searches: i.searches
213
+ }, null, 8, ["searches"])
214
+ ], 64)) : (n(), s(c, { key: 1 }, [
215
+ e[14] || (e[14] = t("h2", { class: "menu-heading tw-mb-2" }, " Regions ", -1)),
216
+ t("div", ae, [
217
+ t("ul", re, [
218
+ i.isRegionsLoading ? (n(), s(c, { key: 0 }, h(8, (o) => t("li", {
219
+ key: o,
220
+ class: "link-item"
221
+ }, [
222
+ w(v, {
223
+ class: "tw-inline-block tw-align-middle",
224
+ style: { height: "1.25rem" }
225
+ }),
226
+ e[13] || (e[13] = t("span", { class: "tw-py-1 tw-inline-block" }, " ", -1))
227
+ ])), 64)) : (n(!0), s(c, { key: 1 }, h(i.regions, (o) => (n(), s("li", {
228
+ key: o.name,
229
+ class: "link-item tw-mr-4"
230
+ }, [
231
+ d((n(), s("button", {
232
+ "aria-pressed": l.isOpenSection(o.name) ? "true" : "false",
233
+ class: O(["tw-text-primary tw-text-left tw-py-1 hover:tw-text-action-highlight hover:tw-underline", { "tw-text-action": l.isOpenSection(o.name) }]),
234
+ onClick: (g) => l.openSection(o.name)
235
+ }, [
236
+ m(x(o.name), 1)
237
+ ], 10, ce)), [
238
+ [r, ["TopNav", "click-Lend-Region", o.name]]
239
+ ])
240
+ ]))), 128))
241
+ ]),
242
+ (n(!0), s(c, null, h(l.openRegions, (o) => (n(), s("div", {
243
+ key: o.name,
244
+ class: "tw-h-full"
245
+ }, [
246
+ w(S, {
247
+ countries: o.countries,
248
+ class: "region-list tw-h-full"
249
+ }, null, 8, ["countries"])
250
+ ]))), 128))
251
+ ])
252
+ ], 64))
253
+ ])
254
+ ]),
255
+ _: 1
256
+ })
257
+ ], 4)
258
+ ]);
259
+ }
260
+ const _e = /* @__PURE__ */ F(z, [["render", de], ["__scopeId", "data-v-28ab9362"]]);
261
+ export {
262
+ _e as default
263
+ };
@@ -0,0 +1,155 @@
1
+ import { gql as v } from "@apollo/client/core";
2
+ import { toRefs as S, ref as a, computed as f, onMounted as x, resolveComponent as L, openBlock as A, createElementBlock as O, createVNode as I } from "vue";
3
+ import R from "./KvLendListMenu.js";
4
+ import B from "./KvLendMegaMenu.js";
5
+ import { indexIn as E } from "../../../utils/comparators.js";
6
+ import { groupBy as F, sortBy as M } from "../../../utils/arrayUtils.js";
7
+ import N from "../../../_virtual/_plugin-vue_export-helper.js";
8
+ const D = {
9
+ components: {
10
+ KvLendListMenu: R,
11
+ KvLendMegaMenu: B
12
+ },
13
+ emits: ["load-lend-menu-data"],
14
+ setup(y, { emit: h }) {
15
+ const {
16
+ userId: c
17
+ } = S(y), e = a([]), d = a([]), g = a(0), l = a([]), m = [
18
+ "North America",
19
+ "Central America",
20
+ "South America",
21
+ "Africa",
22
+ "Eastern Europe",
23
+ "Middle East",
24
+ "Asia",
25
+ "Oceania"
26
+ ], C = a(!0), p = a(!0), b = f(() => !!c.value), k = async (t) => {
27
+ var r, s, o, u;
28
+ if (t.watchQuery({
29
+ query: v`query countryFacets {
30
+ lend {
31
+ countryFacets {
32
+ count
33
+ country {
34
+ name
35
+ region
36
+ isoCode
37
+ }
38
+ }
39
+ }
40
+
41
+ }`
42
+ }).subscribe({
43
+ next: ({ data: n }) => {
44
+ var i;
45
+ d.value = ((i = n == null ? void 0 : n.lend) == null ? void 0 : i.countryFacets) ?? [], C.value = !1;
46
+ }
47
+ }), t.watchQuery({
48
+ query: v`
49
+ query lendMenuData {
50
+ lend {
51
+ loanChannels(popular: true, applyMinLoanCount: true, limit: 50) {
52
+ values {
53
+ id
54
+ name
55
+ url
56
+ }
57
+ }
58
+ }
59
+ }
60
+ `
61
+ }).subscribe({
62
+ next: ({ data: n }) => {
63
+ var i, _;
64
+ e.value = ((_ = (i = n == null ? void 0 : n.lend) == null ? void 0 : i.loanChannels) == null ? void 0 : _.values) ?? [], p.value = !1;
65
+ }
66
+ }), b.value) {
67
+ const { data: n } = await t.query({
68
+ query: v`
69
+ query lendMenuPrivateData($userId: Int!) {
70
+ lend {
71
+ loans(userId: $userId, limit: 0) {
72
+ totalCount
73
+ }
74
+ }
75
+ my {
76
+ savedSearches {
77
+ values {
78
+ id
79
+ name
80
+ url
81
+ }
82
+ }
83
+ }
84
+ }
85
+ `,
86
+ variables: {
87
+ userId: c
88
+ },
89
+ fetchPolicy: "network-only"
90
+ });
91
+ g.value = ((s = (r = n == null ? void 0 : n.lend) == null ? void 0 : r.loans) == null ? void 0 : s.totalCount) ?? 0, l.value = ((u = (o = n == null ? void 0 : n.my) == null ? void 0 : o.savedSearches) == null ? void 0 : u.values) ?? [];
92
+ }
93
+ }, q = f(() => {
94
+ const t = d.value.map((o) => ({
95
+ name: o.country.name,
96
+ region: o.country.region,
97
+ isoCode: o.country.isoCode.toLowerCase(),
98
+ count: o.count || 0
99
+ })), r = F(t, "region"), s = [];
100
+ for (const [o, u] of Object.entries(r))
101
+ s.push({
102
+ name: o,
103
+ countries: u.sort(M("name"))
104
+ });
105
+ return s.sort(E(m, "name"));
106
+ }), w = f(() => {
107
+ var r;
108
+ return ((r = e.value) == null ? void 0 : r.map((s) => {
109
+ const o = JSON.parse(JSON.stringify(s));
110
+ return o.url = o.url.replace("lend", "lend-by-category"), o;
111
+ })).sort(M("name"));
112
+ });
113
+ return x(() => {
114
+ h("load-lend-menu-data");
115
+ }), {
116
+ onLoad: k,
117
+ regions: q,
118
+ computedCategories: w,
119
+ userId: c,
120
+ isChannelsLoading: p,
121
+ isRegionsLoading: C,
122
+ savedSearches: l,
123
+ favoritesCount: g
124
+ };
125
+ }
126
+ };
127
+ function K(y, h, c, e, d, g) {
128
+ const l = L("kv-lend-list-menu"), m = L("kv-lend-mega-menu");
129
+ return A(), O("div", null, [
130
+ I(l, {
131
+ class: "lg:tw-hidden",
132
+ categories: e.computedCategories,
133
+ regions: e.regions,
134
+ "user-id": e.userId,
135
+ favorites: e.favoritesCount,
136
+ searches: e.savedSearches,
137
+ "is-regions-loading": e.isRegionsLoading,
138
+ "is-channels-loading": e.isChannelsLoading
139
+ }, null, 8, ["categories", "regions", "user-id", "favorites", "searches", "is-regions-loading", "is-channels-loading"]),
140
+ I(m, {
141
+ class: "tw-hidden lg:tw-block",
142
+ categories: e.computedCategories,
143
+ regions: e.regions,
144
+ "user-id": e.userId,
145
+ favorites: e.favoritesCount,
146
+ searches: e.savedSearches,
147
+ "is-regions-loading": e.isRegionsLoading,
148
+ "is-channels-loading": e.isChannelsLoading
149
+ }, null, 8, ["categories", "regions", "user-id", "favorites", "searches", "is-regions-loading", "is-channels-loading"])
150
+ ]);
151
+ }
152
+ const G = /* @__PURE__ */ N(D, [["render", K]]);
153
+ export {
154
+ G as default
155
+ };
@@ -0,0 +1 @@
1
+ .country-list-item[data-v-219fb066]{width:11rem}
@@ -0,0 +1,38 @@
1
+ import { resolveDirective as n, openBlock as e, createElementBlock as o, Fragment as c, renderList as a, withDirectives as l, createTextVNode as p, toDisplayString as r } from "vue";
2
+ import "./KvLendMenuCountryList.css";
3
+ import _ from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const d = {
5
+ name: "CountryList",
6
+ props: {
7
+ countries: {
8
+ type: Array,
9
+ default: () => []
10
+ }
11
+ }
12
+ }, m = { class: "tw-whitespace-nowrap tw-font-medium" }, u = ["href"], f = {
13
+ key: 1,
14
+ class: "tw-block tw-py-1 tw-text-tertiary"
15
+ };
16
+ function w(h, k, s, v, y, x) {
17
+ const i = n("kv-track-event");
18
+ return e(), o("ul", m, [
19
+ (e(!0), o(c, null, a(s.countries, (t) => (e(), o("li", {
20
+ key: t.isoCode,
21
+ class: "country-list-item"
22
+ }, [
23
+ t.count > 0 ? l((e(), o("a", {
24
+ key: 0,
25
+ href: `/lend/filter?country=${t.isoCode}`,
26
+ class: "tw-text-primary hover:tw-text-action-highlight tw-block tw-w-full tw-py-1"
27
+ }, [
28
+ p(r(t.name) + " (" + r(t.count) + ") ", 1)
29
+ ], 8, u)), [
30
+ [i, ["TopNav", "click-Lend-Country", t.name]]
31
+ ]) : (e(), o("span", f, r(t.name) + " (0) ", 1))
32
+ ]))), 128))
33
+ ]);
34
+ }
35
+ const $ = /* @__PURE__ */ _(d, [["render", w], ["__scopeId", "data-v-219fb066"]]);
36
+ export {
37
+ $ as default
38
+ };
@@ -0,0 +1,32 @@
1
+ import { openBlock as e, createElementBlock as r, Fragment as a, renderList as l, createElementVNode as o, toDisplayString as i } from "vue";
2
+ import c from "../../../_virtual/_plugin-vue_export-helper.js";
3
+ const h = {
4
+ props: {
5
+ searches: {
6
+ type: Array,
7
+ default: () => []
8
+ }
9
+ }
10
+ }, p = { class: "tw-font-book" }, d = ["href"];
11
+ function f(u, s, n, w, m, _) {
12
+ return e(), r("ul", p, [
13
+ (e(!0), r(a, null, l(n.searches, (t) => (e(), r("li", {
14
+ key: t.id
15
+ }, [
16
+ o("a", {
17
+ class: "tw-text-primary hover:tw-text-action-highlight tw-block tw-w-full tw-py-1",
18
+ href: t.url
19
+ }, i(t.name), 9, d)
20
+ ]))), 128)),
21
+ s[0] || (s[0] = o("li", null, [
22
+ o("a", {
23
+ class: "tw-text-primary hover:tw-text-action-highlight tw-block tw-w-full tw-py-1",
24
+ href: "/lend/saved-search"
25
+ }, " Manage saved searches ")
26
+ ], -1))
27
+ ]);
28
+ }
29
+ const x = /* @__PURE__ */ c(h, [["render", f]]);
30
+ export {
31
+ x as default
32
+ };
@@ -0,0 +1 @@
1
+ .header-margins[data-v-a88a61eb]{margin:0 auto;max-width:1400px}.header-fade-enter-active[data-v-a88a61eb]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.header-fade-leave-active[data-v-a88a61eb]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.header-fade-enter[data-v-a88a61eb],.header-fade-leave-to[data-v-a88a61eb]{opacity:0}.header-fade-leave[data-v-a88a61eb],.header-fade-enter-to[data-v-a88a61eb]{opacity:1}.bg-opacity-50[data-v-a88a61eb]{background-color:rgba(var(--bg-action-highlight),.5)}