@vuetify/one 2.2.1 → 2.2.3

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/dist/index.js ADDED
@@ -0,0 +1,4724 @@
1
+ import { ref as M, defineComponent as b, createBlock as v, openBlock as d, unref as e, reactive as Ft, watch as R, toRefs as zt, computed as V, shallowRef as A, onMounted as Me, createSlots as Z, withCtx as i, createElementVNode as h, toDisplayString as S, createVNode as a, createTextVNode as O, renderSlot as B, normalizeStyle as pt, createCommentVNode as x, withModifiers as Xe, mergeModels as jt, useModel as ce, createElementBlock as L, Fragment as N, nextTick as he, renderList as re, mergeProps as Y, withDirectives as ye, vShow as Fe, isRef as oe, watchEffect as Pt, normalizeClass as Rt, resolveComponent as Ht, onBeforeMount as Ke, onBeforeUnmount as Et, useCssVars as qt, onServerPrefetch as Wt } from "vue";
2
+ import { defineStore as G } from "pinia";
3
+ import { VSnackbarQueue as Zt } from "vuetify/components/VSnackbarQueue";
4
+ import { mdiStorefront as Gt, mdiSync as Qt, mdiSyncOff as Yt, mdiLogoutVariant as Jt, mdiFullscreenExit as Xt, mdiFullscreen as Kt, mdiCheck as Ae, mdiSelect as eo, mdiSpaceInvaders as mt, mdiImageFilterHdr as ft, mdiTransmissionTower as vt, mdiRocketLaunchOutline as gt, mdiHome as to, mdiTextBox as oo, mdiWhiteBalanceSunny as no, mdiWeatherNight as so, mdiDesktopTowerMonitor as ao, mdiContrastCircle as io, mdiCog as ro, mdiCogOutline as lo, mdiFileDocument as uo, mdiCreditCardSettingsOutline as co, mdiRocketOutline as po, mdiCheckCircleOutline as Ne, mdiCreditCard as mo, mdiReload as fo, mdiPlaylistCheck as vo, mdiCreditCardOutline as go, mdiOpenInNew as ze, mdiMedal as _o, mdiHandHeart as ho, mdiHandHeartOutline as yo, mdiCloudDownload as bo, mdiTrayArrowDown as ut, mdiAccountGroup as Vo, mdiAccount as ko, mdiLinkVariant as $o, mdiContentCopy as wo, mdiShieldLock as ct, mdiAccountRemoveOutline as xo, mdiExitToApp as Co, mdiAccountGroupOutline as So, mdiEmailOpenOutline as _t, mdiEmailVariant as ht, mdiBell as Lo, mdiInboxOutline as Io, mdiInboxFullOutline as Ao, mdiBillboard as Do, mdiBellOutline as To, mdiViewDashboardOutline as Uo, mdiCrown as Oo, mdiArrowULeftBottom as Bo, mdiAtomVariant as No, mdiLogin as dt, mdiShieldStarOutline as Mo } from "@mdi/js";
5
+ import { merge as Ze } from "lodash-es";
6
+ import { useRoute as Fo, useRouter as et } from "vue-router";
7
+ import { VListItem as be, VList as de, VListSubheader as zo, VListItemTitle as yt, VListItemSubtitle as jo } from "vuetify/components/VList";
8
+ import { VAvatar as ne } from "vuetify/components/VAvatar";
9
+ import { VCard as E, VCardTitle as Po, VCardSubtitle as Ro, VCardText as ae, VCardItem as Ge, VCardActions as Ho } from "vuetify/components/VCard";
10
+ import { VDialog as tt } from "vuetify/components/VDialog";
11
+ import { VBadge as ot } from "vuetify/components/VBadge";
12
+ import { VBtn as z } from "vuetify/components/VBtn";
13
+ import { VProgressCircular as Eo } from "vuetify/components/VProgressCircular";
14
+ import { VSheet as je } from "vuetify/components/VSheet";
15
+ import { VSwitch as nt } from "vuetify/components/VSwitch";
16
+ import { VFadeTransition as Pe, VExpandTransition as Ve, VExpandXTransition as qo } from "vuetify/components/transitions";
17
+ import { useDisplay as me, useTheme as Re, useDate as De } from "vuetify";
18
+ import { VDivider as J } from "vuetify/components/VDivider";
19
+ import { VIcon as D } from "vuetify/components/VIcon";
20
+ import { VLabel as Ye } from "vuetify/components/VLabel";
21
+ import { VChip as ie } from "vuetify/components/VChip";
22
+ import { VChipGroup as Wo } from "vuetify/components/VChipGroup";
23
+ import { VSelect as Zo } from "vuetify/components/VSelect";
24
+ import { VRow as Te, VCol as _e, VSpacer as Go } from "vuetify/components/VGrid";
25
+ import { VHover as He } from "vuetify/components/VHover";
26
+ import { VImg as le } from "vuetify/components/VImg";
27
+ import { VItemGroup as bt, VItem as Je } from "vuetify/components/VItemGroup";
28
+ import { VLayout as ke } from "vuetify/components/VLayout";
29
+ import { VMain as $e } from "vuetify/components/VMain";
30
+ import { VDataTableVirtual as Vt, VDataTable as Qo } from "vuetify/components/VDataTable";
31
+ import { VSkeletonLoader as Ie } from "vuetify/components/VSkeletonLoader";
32
+ import { VWindow as kt, VWindowItem as Le } from "vuetify/components/VWindow";
33
+ import { VTimelineItem as Yo, VTimeline as Jo } from "vuetify/components/VTimeline";
34
+ import { VEmptyState as st } from "vuetify/components/VEmptyState";
35
+ import { VMenu as $t } from "vuetify/components/VMenu";
36
+ import { VTextField as Xo } from "vuetify/components/VTextField";
37
+ import { Tooltip as Ko, Ripple as en } from "vuetify/directives";
38
+ import { VTooltip as se } from "vuetify/components/VTooltip";
39
+ import { VResponsive as tn } from "vuetify/components/VResponsive";
40
+ import { VNavigationDrawer as on } from "vuetify/components/VNavigationDrawer";
41
+ import { VColorPicker as nn } from "vuetify/components/VColorPicker";
42
+ import { VAppBar as wt } from "vuetify/components/VAppBar";
43
+ import { VFooter as sn } from "vuetify/components/VFooter";
44
+ import { VLazy as an } from "vuetify/components/VLazy";
45
+ const xt = G("Queue", () => {
46
+ const u = M([]);
47
+ function t(o) {
48
+ const r = typeof o == "string" ? { text: o } : o;
49
+ u.value.push(r);
50
+ }
51
+ function s(o) {
52
+ t({
53
+ color: "error",
54
+ text: o,
55
+ location: "top end",
56
+ timeout: -1
57
+ });
58
+ }
59
+ return {
60
+ queue: u,
61
+ show: t,
62
+ showError: s
63
+ };
64
+ }), rn = /* @__PURE__ */ b({
65
+ __name: "VoSnackbarQueue",
66
+ setup(u) {
67
+ const t = xt();
68
+ return (s, o) => (d(), v(Zt, {
69
+ modelValue: e(t).queue,
70
+ "onUpdate:modelValue": o[0] || (o[0] = (r) => e(t).queue = r),
71
+ closable: "",
72
+ location: "bottom end"
73
+ }, null, 8, ["modelValue"]));
74
+ }
75
+ }), K = G("http", {
76
+ state: () => ({
77
+ url: ""
78
+ }),
79
+ actions: {
80
+ async fetch(u, t = {}) {
81
+ const s = await fetch(`${this.url}${u}`, {
82
+ credentials: "include",
83
+ ...t
84
+ });
85
+ if (!s.ok)
86
+ throw new Error(await s.text());
87
+ return s.status === 204 ? {} : s.json();
88
+ },
89
+ async post(u, t, s = {}) {
90
+ return this.fetch(u, {
91
+ method: "POST",
92
+ headers: {
93
+ "Content-Type": "application/json"
94
+ },
95
+ body: JSON.stringify(t),
96
+ ...s
97
+ });
98
+ },
99
+ async form(u, t, s = {}) {
100
+ return this.fetch(u, {
101
+ method: "POST",
102
+ body: t,
103
+ ...s
104
+ });
105
+ },
106
+ async get(u, t = {}) {
107
+ return this.fetch(u, t);
108
+ },
109
+ async delete(u, t = {}) {
110
+ return this.fetch(u, {
111
+ method: "DELETE",
112
+ ...t
113
+ });
114
+ }
115
+ }
116
+ }), Qe = typeof window < "u", Be = {
117
+ v: 5,
118
+ api: "link-only",
119
+ avatar: "",
120
+ dev: !1,
121
+ disableAds: !1,
122
+ composition: "composition",
123
+ pwaRefresh: !0,
124
+ theme: "system",
125
+ mixedTheme: !0,
126
+ direction: "ltr",
127
+ pins: !1,
128
+ pinned: [],
129
+ slashSearch: !1,
130
+ syncSettings: !0,
131
+ showHouseAds: !1,
132
+ quickbar: !1,
133
+ railDrawer: !1,
134
+ suits: {
135
+ show: !1,
136
+ elements: ["app-bar"],
137
+ suit: ""
138
+ },
139
+ colors: {
140
+ one: "surface-light"
141
+ },
142
+ notifications: {
143
+ show: !0,
144
+ banners: !0,
145
+ read: [],
146
+ last: {
147
+ banner: [],
148
+ v2banner: null,
149
+ install: null,
150
+ notification: null,
151
+ promotion: null,
152
+ jobs: null
153
+ }
154
+ }
155
+ }, j = G("user", () => {
156
+ const u = Ft(Ze({}, Be));
157
+ R(u, s);
158
+ function t() {
159
+ if (!Qe)
160
+ return;
161
+ const r = localStorage.getItem("vuetify@user"), n = r ? JSON.parse(r) : {};
162
+ let l = n.v === u.v;
163
+ n.v || (n.pwaRefresh = !0, typeof n.api == "boolean" && (n.api = n.api ? "inline" : "link-only"), typeof n.rtl == "boolean" && (n.direction = n.rtl ? "rtl" : "ltr", delete n.rtl), typeof n.theme == "object" && (n.mixedTheme = n.theme.mixed, n.theme = n.theme.system ? "system" : n.theme.dark ? "dark" : "light"), Array.isArray(n.notifications) && (n.notifications = { read: n.notifications }), typeof n.last == "object" && (n.notifications.last = n.last, delete n.last)), n.v === 1 && (Array.isArray(n.composition) && (n.composition = "composition"), Array.isArray(n.notifications.last.banner) || (n.notifications = n.notifications || {}, n.notifications.last = n.notifications.last || {}, n.notifications.last.banner = [])), n.v === 2 && (n.syncSettings = !0, n.disableAds = !1, n.v = 3), n.v === 3 && (n.quickbar = !1), n.v === 4 && (n.suits = Be.suits, n.notifications.banners = Be.notifications.banners, l = !0), n.v = u.v, Object.assign(u, Ze(u, n)), l && s();
164
+ }
165
+ function s() {
166
+ Qe && localStorage.setItem("vuetify@user", JSON.stringify(u, null, 2));
167
+ }
168
+ function o() {
169
+ Qe && (Object.assign(u, Ze({}, Be)), s());
170
+ }
171
+ return t(), {
172
+ ...zt(u),
173
+ load: t,
174
+ save: s,
175
+ reset: o
176
+ };
177
+ });
178
+ function fe() {
179
+ const u = Fo();
180
+ return V(
181
+ () => u.query
182
+ );
183
+ }
184
+ const we = G("team", () => {
185
+ const u = fe(), t = q(), s = F(), o = K(), r = xt(), n = A(!1), l = M(null), c = M(!1), p = V(() => u.value.invite), m = V(
186
+ () => {
187
+ var y;
188
+ return l.value ? (y = s.access) == null ? void 0 : y.some(($) => ["one/team", "snips/team"].includes($)) : !1;
189
+ }
190
+ );
191
+ R(p, async () => {
192
+ if (p.value) {
193
+ t.user || (t.dialog = !0);
194
+ try {
195
+ n.value = !0;
196
+ const y = await o.get(`/one/team/${p.value}`);
197
+ l.value = y.team, c.value = !0;
198
+ } catch (y) {
199
+ _(), r.showError(y.message);
200
+ } finally {
201
+ n.value = !1;
202
+ }
203
+ }
204
+ }, { immediate: !0 });
205
+ async function g(y) {
206
+ try {
207
+ if (n.value = !0, !l.value)
208
+ return;
209
+ await o.post("/one/team/remove", { userId: y }), l.value.members = l.value.members.filter(($) => $.id !== y);
210
+ } catch ($) {
211
+ r.showError($.message);
212
+ } finally {
213
+ n.value = !1;
214
+ }
215
+ }
216
+ async function f() {
217
+ var y;
218
+ try {
219
+ n.value = !0, await o.post("/one/team/leave", { teamId: (y = l.value) == null ? void 0 : y.id }), await t.verify(!0);
220
+ } catch ($) {
221
+ r.showError($.message);
222
+ } finally {
223
+ n.value = !1;
224
+ }
225
+ }
226
+ async function C() {
227
+ try {
228
+ n.value = !0, await o.post("/one/team/join", { inviteCode: p.value }), await t.verify(!0), _();
229
+ } catch (y) {
230
+ r.showError(y.message);
231
+ } finally {
232
+ n.value = !1;
233
+ }
234
+ }
235
+ function _() {
236
+ c.value = !1;
237
+ const y = new URL(window.location.href);
238
+ y.searchParams.delete("invite"), window.history.replaceState({}, "", y.toString());
239
+ }
240
+ const k = V(() => {
241
+ var y, $, T;
242
+ return ((y = t.user) == null ? void 0 : y.id) === ((T = ($ = t.user) == null ? void 0 : $.team) == null ? void 0 : T.owner.id);
243
+ });
244
+ return {
245
+ team: l,
246
+ teamInviteDialog: c,
247
+ teamInviteCode: p,
248
+ hasTeamAccess: m,
249
+ isTeamOwner: k,
250
+ isLoading: n,
251
+ removeFromTeam: g,
252
+ leaveTeam: f,
253
+ joinTeam: C,
254
+ clearTeamQuery: _
255
+ };
256
+ }), F = G("one", () => {
257
+ const u = fe(), t = et(), s = q(), o = K(), r = we(), n = A(!1), l = A(!1), c = M(), p = M([]), m = V(() => u.value.session_id), g = V(() => {
258
+ var w;
259
+ return (w = c.value) == null ? void 0 : w.items[0].plan.interval;
260
+ }), f = V(() => {
261
+ var w;
262
+ return (w = c.value) == null ? void 0 : w.items[0].plan.type;
263
+ }), C = M([]), _ = V(() => {
264
+ var w;
265
+ return (w = s.user) == null ? void 0 : w.sponsorships.find((I) => I.platform === "stripe" && I.tierName.startsWith("sub_"));
266
+ }), k = V(() => {
267
+ var w;
268
+ return !!((w = _.value) != null && w.tierName);
269
+ }), y = V(() => {
270
+ var w;
271
+ return ((w = s.user) == null ? void 0 : w.sponsorships.reduce((I, H) => {
272
+ if (!H.isActive || H.interval === "once" || H.platform === "stripe")
273
+ return I;
274
+ const Oe = ["teamMonth", "soloMonth"].includes(H.interval) ? H.amount : H.amount / 12;
275
+ return I + Oe / 100;
276
+ }, 0)) ?? 0;
277
+ }), $ = V(() => {
278
+ var w;
279
+ return (w = s.user) == null ? void 0 : w.sponsorships.find((I) => I.tierName.startsWith("sub_") && I.isActive);
280
+ }), T = V(() => {
281
+ var w;
282
+ return (w = s.user) == null ? void 0 : w.sponsorships.find((I) => I.platform === "github" && I.isActive);
283
+ }), U = V(() => {
284
+ var w;
285
+ return (w = s.user) == null ? void 0 : w.sponsorships.find((I) => I.platform === "discord" && I.isActive);
286
+ }), P = V(() => {
287
+ var w;
288
+ return (w = s.user) == null ? void 0 : w.identities.find((I) => I.provider === "shopify");
289
+ }), Q = V(() => {
290
+ var w, I, H, Oe;
291
+ return !o.url || ((w = s.user) == null ? void 0 : w.isAdmin) || ((I = _.value) == null ? void 0 : I.isActive) || ((H = T.value) == null ? void 0 : H.isActive) || ((Oe = U.value) == null ? void 0 : Oe.isActive) || y.value >= 2.99;
292
+ });
293
+ Me(async () => {
294
+ m.value && await W();
295
+ }), R(l, Se), R(m, async (w) => {
296
+ w && await W();
297
+ }, { immediate: !0 }), R(u, (w) => {
298
+ if (w.one !== "subscribe" || s.user)
299
+ return;
300
+ s.dialog = !0;
301
+ const I = R(() => s.user, (H) => {
302
+ H && (s.dialog = !1, I());
303
+ });
304
+ }, { immediate: !0 }), R(Q, (w, I) => {
305
+ w === !1 && I !== !0 || te();
306
+ });
307
+ async function W() {
308
+ try {
309
+ n.value = !0, await o.post("/one/activate", { sessionId: m.value }), await s.verify(!0), await Ce();
310
+ const w = new URL(window.location.href), I = w.searchParams;
311
+ I.delete("session_id"), I.delete("team"), history.pushState(null, "", w.toString());
312
+ } catch {
313
+ } finally {
314
+ n.value = !1;
315
+ }
316
+ }
317
+ async function X() {
318
+ window.open(`${o.url}/one/manage`, "_blank");
319
+ }
320
+ async function ue(w, I) {
321
+ n.value = !0;
322
+ const H = new URL("/one/subscribe", o.url);
323
+ H.searchParams.set("interval", w), H.searchParams.set("type", I), window.location.href = H.toString();
324
+ }
325
+ async function pe() {
326
+ var w;
327
+ if (_.value)
328
+ try {
329
+ n.value = !0;
330
+ const I = await o.post(
331
+ `/one/cancel?subscriptionId=${(w = _.value) == null ? void 0 : w.tierName}`
332
+ );
333
+ s.user = I.user;
334
+ } catch {
335
+ } finally {
336
+ n.value = !1;
337
+ }
338
+ }
339
+ async function ge(w, I) {
340
+ if (_.value)
341
+ try {
342
+ n.value = !0, await o.post("/one/modify", {
343
+ subscriptionId: _.value.tierName,
344
+ interval: w,
345
+ type: I
346
+ }), await te();
347
+ } catch {
348
+ } finally {
349
+ n.value = !1;
350
+ }
351
+ }
352
+ async function te() {
353
+ var w, I;
354
+ if (_.value)
355
+ try {
356
+ n.value = !0;
357
+ const H = await o.post(
358
+ `/one/verify?subscriptionId=${(w = _.value) == null ? void 0 : w.tierName}`
359
+ );
360
+ s.user = H.user, C.value = H.access, r.team = ((I = s.user) == null ? void 0 : I.team) ?? null;
361
+ } catch {
362
+ } finally {
363
+ n.value = !1;
364
+ }
365
+ }
366
+ async function Ce() {
367
+ try {
368
+ n.value = !0;
369
+ const w = await o.get("/one/info");
370
+ return c.value = w.subscription, p.value = w.invoices, w;
371
+ } catch {
372
+ } finally {
373
+ n.value = !1;
374
+ }
375
+ }
376
+ function Se() {
377
+ t.push({
378
+ query: {
379
+ ...u.value,
380
+ one: void 0
381
+ }
382
+ });
383
+ }
384
+ return {
385
+ info: c,
386
+ interval: g,
387
+ subscriptionType: f,
388
+ access: C,
389
+ invoices: p,
390
+ sessionId: m,
391
+ subscription: _,
392
+ monthlyTotal: y,
393
+ hasBilling: k,
394
+ isLoading: n,
395
+ isOpen: l,
396
+ isSubscriber: Q,
397
+ github: T,
398
+ discord: U,
399
+ shopify: P,
400
+ one: $,
401
+ activate: W,
402
+ cancel: pe,
403
+ manage: X,
404
+ modify: ge,
405
+ resetQuery: Se,
406
+ subscribe: ue,
407
+ subscriptionInfo: Ce,
408
+ verify: te
409
+ };
410
+ }), q = G("auth", () => {
411
+ const u = M(!1), t = M(null), s = K(), o = j(), r = et(), n = A(!1), l = F(), c = we();
412
+ let p = !!k();
413
+ R(t, (y) => {
414
+ if (!(y != null && y.settings))
415
+ return;
416
+ const $ = localStorage.getItem("vuetify@user") || "{}";
417
+ JSON.stringify(y.settings, null, 2) !== $ && (p = !0, Object.assign(o, y.settings));
418
+ }), o.$subscribe(() => {
419
+ p || m(), p = !1;
420
+ });
421
+ async function m() {
422
+ if (!(!t.value || !o.syncSettings))
423
+ try {
424
+ await s.post("/user/settings", { settings: o.$state });
425
+ } catch (y) {
426
+ console.error(y);
427
+ }
428
+ }
429
+ async function g(y = !1) {
430
+ var $, T;
431
+ if (g.promise)
432
+ return g.promise;
433
+ if (!y && !document.cookie.includes("sx=1") && (($ = location.hostname.match(/([^.]+\.[^.]+)$/)) == null ? void 0 : $[1]) === ((T = new URL(s.url).hostname.match(/([^.]+\.[^.]+)$/)) == null ? void 0 : T[1])) {
434
+ t.value = null;
435
+ return;
436
+ }
437
+ n.value = !0, g.promise = fetch(`${s.url}/auth/verify`, {
438
+ credentials: "include",
439
+ cache: y ? "reload" : void 0
440
+ }).then(
441
+ async (U) => {
442
+ var P;
443
+ if (U.ok || U.status === 401) {
444
+ const Q = await U.json();
445
+ t.value = Q.user, l.access = Q.access, c.team = (P = Q.user) == null ? void 0 : P.team;
446
+ } else
447
+ console.error(U.statusText);
448
+ },
449
+ () => {
450
+ }
451
+ ).finally(() => {
452
+ n.value = !1, g.promise = null;
453
+ });
454
+ }
455
+ g.promise = null;
456
+ async function f(y = "github") {
457
+ n.value = !0;
458
+ const $ = `${s.url}/auth/${y}/redirect`;
459
+ if (y === "shopify") {
460
+ window.location.assign($ + "?next=" + encodeURIComponent(window.location.href));
461
+ return;
462
+ }
463
+ const T = 400, U = 600, P = window.screenX + (window.innerWidth - T) / 2, Q = window.screenY + (window.innerHeight - U) / 2, W = window.open(
464
+ "",
465
+ "vuetify:authorize:popup",
466
+ `popup,left=${P},top=${Q},width=${T},height=${U},resizable`
467
+ );
468
+ if (!W) {
469
+ console.error("Failed to open popup");
470
+ return;
471
+ }
472
+ W.location.href = $;
473
+ let X = -1, ue = -1;
474
+ function pe(te) {
475
+ var Ce, Se;
476
+ te.origin === s.url && ((Ce = te.data) == null ? void 0 : Ce.type) === "auth-response" && (te.data.status === "success" ? (t.value || localStorage.setItem("vuetify@lastLoginProvider", y), t.value = te.data.body.user, l.access = te.data.body.access, c.team = (Se = te.data.body.user) == null ? void 0 : Se.team, m()) : console.error(te.data.message), ge());
477
+ }
478
+ function ge() {
479
+ window.removeEventListener("message", pe), window.clearInterval(X), window.clearTimeout(ue), W == null || W.close(), n.value = !1;
480
+ }
481
+ window.addEventListener("message", pe), X = window.setInterval(() => {
482
+ !W || W.closed ? (console.error("Auth popup closed"), ge()) : W.postMessage({ type: "auth-request" }, "*");
483
+ }, 1e3), ue = window.setTimeout(() => {
484
+ ge(), console.error("Auth timed out");
485
+ }, 120 * 1e3);
486
+ }
487
+ async function C(y) {
488
+ n.value = !0;
489
+ const $ = y ? `/auth/${y}/logout` : "/auth/logout";
490
+ try {
491
+ await s.post($), await g(!0), t.value = null;
492
+ } catch (T) {
493
+ console.error(T);
494
+ } finally {
495
+ r.push({
496
+ path: "/",
497
+ query: r.currentRoute.value.query
498
+ }), n.value = !1;
499
+ }
500
+ }
501
+ function _(y) {
502
+ var $;
503
+ return ($ = t.value) == null ? void 0 : $.identities.find((T) => T.provider === y);
504
+ }
505
+ function k() {
506
+ return localStorage.getItem("vuetify@lastLoginProvider");
507
+ }
508
+ return g(), {
509
+ user: t,
510
+ url: s.url,
511
+ dialog: u,
512
+ isLoading: n,
513
+ verify: g,
514
+ findIdentity: _,
515
+ login: f,
516
+ logout: C,
517
+ lastLoginProvider: k,
518
+ sync: m
519
+ };
520
+ }), ln = { class: "text-body-2" }, Ct = /* @__PURE__ */ b({
521
+ __name: "VoAuthShopify",
522
+ setup(u) {
523
+ const t = q(), s = V(() => t.user && t.findIdentity("shopify")), o = V(() => t.user ? s.value ? "Connected to Shopify" : "Connect Shopify" : "Login with Shopify");
524
+ return (r, n) => (d(), v(be, {
525
+ "base-color": "#5b8a3c",
526
+ "prepend-icon": `svg:${e(Gt)}`,
527
+ rounded: "pill",
528
+ slim: "",
529
+ variant: "flat",
530
+ onClick: n[0] || (n[0] = (l) => e(t).login("shopify"))
531
+ }, Z({
532
+ title: i(() => [
533
+ h("span", ln, S(e(o)), 1)
534
+ ]),
535
+ _: 2
536
+ }, [
537
+ !e(t).user && e(t).lastLoginProvider() === "shopify" ? {
538
+ name: "subtitle",
539
+ fn: i(() => [
540
+ n[1] || (n[1] = h("div", { class: "text-caption mt-n1" }, "Last Used", -1))
541
+ ]),
542
+ key: "0"
543
+ } : void 0
544
+ ]), 1032, ["prepend-icon"]));
545
+ }
546
+ }), un = { class: "text-body-2" }, St = /* @__PURE__ */ b({
547
+ __name: "VoAuthDiscord",
548
+ setup(u) {
549
+ const t = q(), s = V(() => t.user && t.findIdentity("discord")), o = V(() => t.user ? s.value ? "Connected to Discord" : "Connect Discord" : "Login with Discord");
550
+ return (r, n) => (d(), v(be, {
551
+ "base-color": "#5865F2",
552
+ "prepend-icon": "$discord",
553
+ rounded: "pill",
554
+ slim: "",
555
+ variant: "flat",
556
+ onClick: n[0] || (n[0] = (l) => e(t).login("discord"))
557
+ }, Z({
558
+ title: i(() => [
559
+ h("span", un, S(e(o)), 1)
560
+ ]),
561
+ _: 2
562
+ }, [
563
+ !e(t).user && e(t).lastLoginProvider() === "discord" ? {
564
+ name: "subtitle",
565
+ fn: i(() => [
566
+ n[1] || (n[1] = h("div", { class: "text-caption mt-n1" }, "Last Used", -1))
567
+ ]),
568
+ key: "0"
569
+ } : void 0
570
+ ]), 1024));
571
+ }
572
+ }), cn = { class: "text-body-2" }, Lt = /* @__PURE__ */ b({
573
+ __name: "VoAuthGithub",
574
+ setup(u) {
575
+ const t = q(), s = V(() => t.user && t.findIdentity("github")), o = V(() => t.user ? s.value ? "Connected to GitHub" : "Connect GitHub" : "Login with GitHub");
576
+ return (r, n) => (d(), v(be, {
577
+ "base-color": "#2a2a2a",
578
+ "prepend-icon": "$github",
579
+ rounded: "pill",
580
+ slim: "",
581
+ variant: "flat",
582
+ onClick: n[0] || (n[0] = (l) => e(t).login("github"))
583
+ }, Z({
584
+ title: i(() => [
585
+ h("span", cn, S(e(o)), 1)
586
+ ]),
587
+ _: 2
588
+ }, [
589
+ !e(t).user && e(t).lastLoginProvider() === "github" ? {
590
+ name: "subtitle",
591
+ fn: i(() => [
592
+ n[1] || (n[1] = h("div", { class: "text-caption mt-n1" }, "Last Used", -1))
593
+ ]),
594
+ key: "0"
595
+ } : void 0
596
+ ]), 1024));
597
+ }
598
+ }), dn = { class: "text-center" }, pn = { class: "text-center mb-6" }, mn = { class: "text-h6 font-weight-light" }, It = /* @__PURE__ */ b({
599
+ __name: "VoAuthCard",
600
+ setup(u) {
601
+ const t = q();
602
+ return (s, o) => {
603
+ const r = Lt, n = St, l = Ct;
604
+ return d(), v(E, {
605
+ class: "pt-6 pb-8 px-4 px-sm-8 mx-auto",
606
+ "max-width": "480"
607
+ }, {
608
+ default: i(() => [
609
+ h("div", dn, [
610
+ a(ne, {
611
+ class: "mx-auto",
612
+ image: "https://vuetifyjs.b-cdn.net/docs/images/avatars/one.png",
613
+ size: "64"
614
+ })
615
+ ]),
616
+ h("div", pn, [
617
+ a(Po, { class: "text-h5 mb-1 text-md-h4" }, {
618
+ default: i(() => [
619
+ h("div", mn, S(e(t).lastLoginProvider() ? "Welcome back to" : "Login to"), 1),
620
+ o[0] || (o[0] = h("span", { class: "text-h3 font-weight-bold" }, "Vuetify One", -1))
621
+ ]),
622
+ _: 1
623
+ }),
624
+ a(Ro, { class: "text-wrap" }, {
625
+ default: i(() => o[1] || (o[1] = [
626
+ O(" Login to save your settings and gain access to exclusive subscriber perks. ")
627
+ ])),
628
+ _: 1
629
+ })
630
+ ]),
631
+ a(de, {
632
+ class: "mx-auto",
633
+ "max-width": "300",
634
+ width: "100%"
635
+ }, {
636
+ default: i(() => [
637
+ a(r, { class: "mb-3" }),
638
+ a(n, { class: "mb-3" }),
639
+ a(l)
640
+ ]),
641
+ _: 1
642
+ })
643
+ ]),
644
+ _: 1
645
+ });
646
+ };
647
+ }
648
+ }), At = /* @__PURE__ */ b({
649
+ __name: "VoAuthDialog",
650
+ setup(u) {
651
+ const t = q();
652
+ return (s, o) => {
653
+ const r = It;
654
+ return d(), v(tt, {
655
+ modelValue: e(t).dialog,
656
+ "onUpdate:modelValue": o[0] || (o[0] = (n) => e(t).dialog = n),
657
+ "max-width": "480"
658
+ }, {
659
+ default: i(() => [
660
+ a(r)
661
+ ]),
662
+ _: 1
663
+ }, 8, ["modelValue"]);
664
+ };
665
+ }
666
+ }), Ee = G("notifications", () => {
667
+ const u = K(), t = j(), s = M([]), o = A(!1), r = V(() => s.value.filter((c) => !t.notifications.read.includes(c.slug))), n = V(() => s.value.filter((c) => t.notifications.read.includes(c.slug)));
668
+ async function l() {
669
+ try {
670
+ o.value = !0;
671
+ const c = await u.get("/one/notifications");
672
+ s.value = c.notifications;
673
+ } catch {
674
+ } finally {
675
+ o.value = !1;
676
+ }
677
+ return s.value;
678
+ }
679
+ return {
680
+ isLoading: o,
681
+ all: s,
682
+ read: n,
683
+ unread: r,
684
+ index: l
685
+ };
686
+ }), fn = /* @__PURE__ */ b({
687
+ __name: "VoNotificationsTotalBadge",
688
+ setup(u) {
689
+ const t = q(), s = Ee(), o = j(), r = V(() => o.notifications.show ? s.unread.length : 0);
690
+ return (n, l) => (d(), v(ot, {
691
+ color: "error",
692
+ content: e(r),
693
+ dot: !!e(t).user,
694
+ location: "start top",
695
+ "model-value": e(r) > 0
696
+ }, {
697
+ default: i(() => [
698
+ B(n.$slots, "default")
699
+ ]),
700
+ _: 3
701
+ }, 8, ["content", "dot", "model-value"]));
702
+ }
703
+ }), Ue = /* @__PURE__ */ b({
704
+ __name: "VoBtn",
705
+ props: {
706
+ readonly: { type: Boolean }
707
+ },
708
+ setup(u) {
709
+ const t = u;
710
+ return (s, o) => (d(), v(z, {
711
+ class: "text-none font-weight-regular",
712
+ color: "primary",
713
+ size: "small",
714
+ style: pt({
715
+ pointerEvents: t.readonly ? "none" : void 0
716
+ }),
717
+ tabindex: t.readonly ? -1 : void 0,
718
+ variant: "flat"
719
+ }, Z({
720
+ loader: i(() => [
721
+ s.$slots.loader ? x("", !0) : (d(), v(Eo, {
722
+ key: 0,
723
+ indeterminate: "disable-shrink",
724
+ size: "16",
725
+ width: "2"
726
+ })),
727
+ B(s.$slots, "loader")
728
+ ]),
729
+ _: 2
730
+ }, [
731
+ s.$slots.prepend ? {
732
+ name: "prepend",
733
+ fn: i(() => [
734
+ B(s.$slots, "prepend")
735
+ ]),
736
+ key: "0"
737
+ } : void 0,
738
+ s.$slots.default ? {
739
+ name: "default",
740
+ fn: i(() => [
741
+ B(s.$slots, "default")
742
+ ]),
743
+ key: "1"
744
+ } : void 0
745
+ ]), 1032, ["style", "tabindex"]));
746
+ }
747
+ }), vn = { class: "pa-4 d-flex flex-column ga-4" }, Dt = /* @__PURE__ */ b({
748
+ __name: "VoAuthListItem",
749
+ setup(u) {
750
+ const t = q(), s = j(), o = A(!t.user && !t.isLoading);
751
+ R(() => t.user, (n) => {
752
+ o.value = !n;
753
+ });
754
+ function r() {
755
+ t.user && (o.value = !o.value);
756
+ }
757
+ return (n, l) => {
758
+ const c = Lt, p = St, m = Ct;
759
+ return d(), v(E, {
760
+ class: "ma-2",
761
+ rounded: "lg",
762
+ variant: e(o) ? "tonal" : "text"
763
+ }, {
764
+ default: i(() => [
765
+ a(de, { class: "py-0" }, {
766
+ default: i(() => [
767
+ a(be, {
768
+ class: "mb-0",
769
+ link: !!e(t).user,
770
+ nav: "",
771
+ "prepend-icon": `svg:${e(t).user && e(s).syncSettings ? e(Qt) : e(Yt)}`,
772
+ rounded: "b-0",
773
+ slim: "",
774
+ title: e(t).user && e(s).syncSettings ? "Sync is on" : "Sync is paused",
775
+ onClick: r
776
+ }, {
777
+ append: i(() => [
778
+ a(Pe, null, {
779
+ default: i(() => [
780
+ e(t).user && (e(o) || !e(s).syncSettings) ? (d(), v(nt, {
781
+ key: 0,
782
+ modelValue: e(s).syncSettings,
783
+ "onUpdate:modelValue": l[0] || (l[0] = (g) => e(s).syncSettings = g),
784
+ color: e(s).syncSettings ? "success" : void 0,
785
+ density: "compact",
786
+ "hide-details": "",
787
+ inset: "",
788
+ onClick: l[1] || (l[1] = Xe(() => {
789
+ }, ["stop"]))
790
+ }, {
791
+ thumb: i(() => [
792
+ a(ne, {
793
+ color: e(s).syncSettings ? "success" : void 0
794
+ }, null, 8, ["color"])
795
+ ]),
796
+ _: 1
797
+ }, 8, ["modelValue", "color"])) : x("", !0)
798
+ ]),
799
+ _: 1
800
+ })
801
+ ]),
802
+ _: 1
803
+ }, 8, ["link", "prepend-icon", "title"]),
804
+ a(Ve, null, {
805
+ default: i(() => [
806
+ !e(t).user && !e(t).isLoading || e(o) ? (d(), v(je, {
807
+ key: 0,
808
+ border: "t",
809
+ color: "transparent"
810
+ }, {
811
+ default: i(() => [
812
+ h("div", vn, [
813
+ a(c, {
814
+ onClick: l[2] || (l[2] = (g) => o.value = !1)
815
+ }),
816
+ a(p, {
817
+ onClick: l[3] || (l[3] = (g) => o.value = !1)
818
+ }),
819
+ a(m, {
820
+ onClick: l[4] || (l[4] = (g) => o.value = !1)
821
+ })
822
+ ])
823
+ ]),
824
+ _: 1
825
+ })) : x("", !0)
826
+ ]),
827
+ _: 1
828
+ })
829
+ ]),
830
+ _: 1
831
+ })
832
+ ]),
833
+ _: 1
834
+ }, 8, ["variant"]);
835
+ };
836
+ }
837
+ }), ee = /* @__PURE__ */ b({
838
+ __name: "VoListItem",
839
+ setup(u) {
840
+ return (t, s) => (d(), v(be, { slim: "" }, Z({
841
+ default: i(() => [
842
+ B(t.$slots, "default")
843
+ ]),
844
+ _: 2
845
+ }, [
846
+ t.$slots.prepend ? {
847
+ name: "prepend",
848
+ fn: i(() => [
849
+ B(t.$slots, "prepend")
850
+ ]),
851
+ key: "0"
852
+ } : void 0,
853
+ t.$slots.title ? {
854
+ name: "title",
855
+ fn: i(() => [
856
+ B(t.$slots, "title")
857
+ ]),
858
+ key: "1"
859
+ } : void 0,
860
+ t.$slots.append ? {
861
+ name: "append",
862
+ fn: i(() => [
863
+ B(t.$slots, "append")
864
+ ]),
865
+ key: "2"
866
+ } : void 0
867
+ ]), 1024));
868
+ }
869
+ }), gn = /* @__PURE__ */ b({
870
+ __name: "VoAuthLogoutNavItem",
871
+ setup(u) {
872
+ const t = q(), s = A(!1);
873
+ async function o() {
874
+ s.value = !0, await t.logout(), s.value = !1;
875
+ }
876
+ return (r, n) => {
877
+ const l = ee;
878
+ return d(), v(l, {
879
+ class: "mb-0",
880
+ disabled: e(s),
881
+ link: "",
882
+ loading: e(s),
883
+ "prepend-icon": `svg:${e(Jt)}`,
884
+ title: "Logout",
885
+ onClick: o
886
+ }, null, 8, ["disabled", "loading", "prepend-icon"]);
887
+ };
888
+ }
889
+ }), xe = /* @__PURE__ */ b({
890
+ __name: "VoDialog",
891
+ props: /* @__PURE__ */ jt({
892
+ prependIcon: {},
893
+ title: {}
894
+ }, {
895
+ modelValue: { type: Boolean },
896
+ modelModifiers: {}
897
+ }),
898
+ emits: ["update:modelValue"],
899
+ setup(u) {
900
+ const t = ce(u, "modelValue"), s = me(), o = A(!1);
901
+ return (r, n) => (d(), v(tt, {
902
+ modelValue: t.value,
903
+ "onUpdate:modelValue": n[2] || (n[2] = (l) => t.value = l),
904
+ activator: "parent",
905
+ fullscreen: e(o) || e(s).xs.value,
906
+ height: "100%",
907
+ "max-height": e(o) || e(s).xs.value ? "100%" : 800,
908
+ "max-width": e(o) || e(s).xs.value ? "100%" : 800
909
+ }, {
910
+ default: i(({ isActive: l }) => [
911
+ a(E, {
912
+ class: "overflow-hidden",
913
+ height: "inherit",
914
+ "prepend-icon": r.prependIcon,
915
+ title: r.title
916
+ }, Z({
917
+ append: i(() => [
918
+ B(r.$slots, "append"),
919
+ e(s).xs.value ? x("", !0) : (d(), v(z, {
920
+ key: 0,
921
+ class: "me-2",
922
+ density: "comfortable",
923
+ icon: `svg:${e(o) ? e(Xt) : e(Kt)}`,
924
+ size: "small",
925
+ variant: "text",
926
+ onClick: n[0] || (n[0] = (c) => o.value = !e(o))
927
+ }, null, 8, ["icon"])),
928
+ a(z, {
929
+ density: "comfortable",
930
+ icon: "$close",
931
+ size: "small",
932
+ variant: "text",
933
+ onClick: n[1] || (n[1] = (c) => t.value = !t.value)
934
+ })
935
+ ]),
936
+ default: i(() => [
937
+ a(J),
938
+ B(r.$slots, "default")
939
+ ]),
940
+ _: 2
941
+ }, [
942
+ r.$slots.prepend ? {
943
+ name: "prepend",
944
+ fn: i(() => [
945
+ B(r.$slots, "prepend")
946
+ ]),
947
+ key: "0"
948
+ } : void 0,
949
+ r.$slots.actions ? {
950
+ name: "actions",
951
+ fn: i(() => [
952
+ B(r.$slots, "actions", { isActive: l })
953
+ ]),
954
+ key: "1"
955
+ } : void 0
956
+ ]), 1032, ["prepend-icon", "title"])
957
+ ]),
958
+ _: 3
959
+ }, 8, ["modelValue", "fullscreen", "max-height", "max-width"]));
960
+ }
961
+ }), Tt = /* @__PURE__ */ b({
962
+ __name: "VoSwitch",
963
+ props: {
964
+ disabled: { type: Boolean }
965
+ },
966
+ setup(u) {
967
+ return (t, s) => (d(), v(nt, {
968
+ color: "primary",
969
+ density: "compact",
970
+ disabled: t.disabled,
971
+ inset: "",
972
+ "true-icon": `svg:${e(Ae)}`
973
+ }, Z({
974
+ thumb: i(() => [
975
+ a(D, {
976
+ color: t.disabled ? void 0 : "primary"
977
+ }, null, 8, ["color"])
978
+ ]),
979
+ _: 2
980
+ }, [
981
+ t.$slots.label ? {
982
+ name: "label",
983
+ fn: i(() => [
984
+ B(t.$slots, "label")
985
+ ]),
986
+ key: "0"
987
+ } : void 0
988
+ ]), 1032, ["disabled", "true-icon"]));
989
+ }
990
+ }), _n = {
991
+ key: 1,
992
+ class: "mb-3 text-caption text-medium-emphasis"
993
+ }, ve = /* @__PURE__ */ b({
994
+ __name: "VoDialogSubheader",
995
+ props: {
996
+ title: {},
997
+ text: {}
998
+ },
999
+ setup(u) {
1000
+ return (t, s) => (d(), L(N, null, [
1001
+ t.title ? (d(), v(Ye, {
1002
+ key: 0,
1003
+ class: "font-weight-black"
1004
+ }, {
1005
+ default: i(() => [
1006
+ O(S(t.title), 1)
1007
+ ]),
1008
+ _: 1
1009
+ })) : x("", !0),
1010
+ t.text ? (d(), L("div", _n, S(t.text), 1)) : x("", !0)
1011
+ ], 64));
1012
+ }
1013
+ }), hn = { key: 0 }, yn = /* @__PURE__ */ b({
1014
+ __name: "VoSettingsPageSuitOption",
1015
+ setup(u) {
1016
+ const t = j(), s = [
1017
+ {
1018
+ title: "Choose a page suit",
1019
+ value: "",
1020
+ prependIcon: `svg:${eo}`,
1021
+ disabled: !0
1022
+ },
1023
+ {
1024
+ title: "Blackguard",
1025
+ prependIcon: `svg:${mt}`,
1026
+ value: "blackguard"
1027
+ },
1028
+ {
1029
+ title: "Polaris",
1030
+ prependIcon: `svg:${ft}`,
1031
+ value: "polaris"
1032
+ },
1033
+ {
1034
+ title: "Nebula",
1035
+ prependIcon: `svg:${vt}`,
1036
+ value: "nebula"
1037
+ },
1038
+ {
1039
+ title: "Odyssey",
1040
+ prependIcon: `svg:${gt}`,
1041
+ value: "odyssey"
1042
+ }
1043
+ ];
1044
+ return (o, r) => {
1045
+ const n = Tt, l = ve;
1046
+ return d(), L(N, null, [
1047
+ a(n, {
1048
+ modelValue: e(t).suits.show,
1049
+ "onUpdate:modelValue": r[0] || (r[0] = (c) => e(t).suits.show = c),
1050
+ class: "mb-2",
1051
+ label: "Enable Page suits",
1052
+ messages: "Customize layout elements with a unique background, styled after one of our themed releases."
1053
+ }, null, 8, ["modelValue"]),
1054
+ a(Ve, null, {
1055
+ default: i(() => [
1056
+ e(t).suits.show ? (d(), L("div", hn, [
1057
+ a(Zo, {
1058
+ modelValue: e(t).suits.suit,
1059
+ "onUpdate:modelValue": r[1] || (r[1] = (c) => e(t).suits.suit = c),
1060
+ clearable: "",
1061
+ density: "compact",
1062
+ "item-props": "",
1063
+ items: s,
1064
+ placeholder: "Choose a page suit",
1065
+ "single-line": "",
1066
+ style: { "max-width": "300px" },
1067
+ variant: "outlined"
1068
+ }, {
1069
+ selection: i(({ item: c }) => [
1070
+ a(D, {
1071
+ icon: c.props.prependIcon,
1072
+ size: "x-small",
1073
+ start: ""
1074
+ }, null, 8, ["icon"]),
1075
+ O(" " + S(c.title), 1)
1076
+ ]),
1077
+ _: 1
1078
+ }, 8, ["modelValue"]),
1079
+ a(l, { text: "Select your suit elements to display the background image:" }),
1080
+ a(Wo, {
1081
+ modelValue: e(t).suits.elements,
1082
+ "onUpdate:modelValue": r[2] || (r[2] = (c) => e(t).suits.elements = c),
1083
+ color: "primary",
1084
+ filter: "",
1085
+ multiple: ""
1086
+ }, {
1087
+ default: i(() => [
1088
+ a(ie, {
1089
+ "append-icon": `svg:${e(to)}`,
1090
+ "filter-icon": "$success",
1091
+ text: "App Bar",
1092
+ value: "app-bar",
1093
+ variant: "flat"
1094
+ }, {
1095
+ append: i(() => [
1096
+ a(J, {
1097
+ class: "ms-2 border-opacity-50",
1098
+ vertical: ""
1099
+ }),
1100
+ a(D, { size: "x-small" })
1101
+ ]),
1102
+ _: 1
1103
+ }, 8, ["append-icon"]),
1104
+ a(ie, {
1105
+ "append-icon": `svg:${e(oo)}`,
1106
+ "filter-icon": "$success",
1107
+ text: "Navigation Drawer",
1108
+ value: "drawer",
1109
+ variant: "flat"
1110
+ }, {
1111
+ append: i(() => [
1112
+ a(J, {
1113
+ class: "ms-2 border-opacity-50",
1114
+ vertical: ""
1115
+ }),
1116
+ a(D, { size: "x-small" })
1117
+ ]),
1118
+ _: 1
1119
+ }, 8, ["append-icon"]),
1120
+ a(ie, {
1121
+ "append-icon": "$info",
1122
+ "filter-icon": "$success",
1123
+ text: "Footer",
1124
+ value: "footer",
1125
+ variant: "flat"
1126
+ }, {
1127
+ append: i(() => [
1128
+ a(J, {
1129
+ class: "ms-2 border-opacity-50",
1130
+ vertical: ""
1131
+ }),
1132
+ a(D, { size: "x-small" })
1133
+ ]),
1134
+ _: 1
1135
+ })
1136
+ ]),
1137
+ _: 1
1138
+ }, 8, ["modelValue"])
1139
+ ])) : x("", !0)
1140
+ ]),
1141
+ _: 1
1142
+ })
1143
+ ], 64);
1144
+ };
1145
+ }
1146
+ });
1147
+ function bn() {
1148
+ return {
1149
+ blackguard: {
1150
+ dark: !0,
1151
+ colors: {
1152
+ background: "#0f0c24",
1153
+ primary: "#e7810d",
1154
+ surface: "#1e184a",
1155
+ info: "#9c27b0",
1156
+ accent: "#FF4081",
1157
+ success: "#84b38a",
1158
+ "surface-light": "#362b89",
1159
+ "surface-bright": "#564f8a",
1160
+ "surface-variant": "#6458b4",
1161
+ "on-surface-variant": "#FFFFFF",
1162
+ "primary-darken-1": "#c56e0b",
1163
+ secondary: "#8A2BE2",
1164
+ "secondary-darken-1": "#7919cb",
1165
+ error: "#FF5555",
1166
+ warning: "#ffa726"
1167
+ },
1168
+ variables: {
1169
+ "border-color": "#FFFFFF",
1170
+ "border-opacity": 0.12,
1171
+ "high-emphasis-opacity": 0.87,
1172
+ "medium-emphasis-opacity": 0.6,
1173
+ "disabled-opacity": 0.38,
1174
+ "idle-opacity": 0.1,
1175
+ "hover-opacity": 0.08,
1176
+ "focus-opacity": 0.12,
1177
+ "selected-opacity": 0.12,
1178
+ "activated-opacity": 0.12,
1179
+ "pressed-opacity": 0.16,
1180
+ "dragged-opacity": 0.08,
1181
+ "theme-kbd": "#212529",
1182
+ "theme-on-kbd": "#FFFFFF",
1183
+ "theme-code": "#343434",
1184
+ "theme-on-code": "#CCCCCC"
1185
+ }
1186
+ },
1187
+ polaris: {
1188
+ dark: !0,
1189
+ colors: {
1190
+ background: "#1f0a0d",
1191
+ primary: "#972800",
1192
+ surface: "#29110e",
1193
+ info: "#e7810d",
1194
+ accent: "#b35000",
1195
+ success: "#486a2b",
1196
+ "surface-light": "#773421",
1197
+ "surface-bright": "#ffa752",
1198
+ "surface-variant": "#924d2c",
1199
+ "on-surface-variant": "#FFFFFF",
1200
+ "primary-darken-1": "#c33100",
1201
+ secondary: "#ac1900",
1202
+ "secondary-darken-1": "#8a1600",
1203
+ error: "#ff5555",
1204
+ warning: "#ffa726"
1205
+ },
1206
+ variables: {
1207
+ "border-color": "#ffffff",
1208
+ "border-opacity": 0.12,
1209
+ "high-emphasis-opacity": 0.87,
1210
+ "medium-emphasis-opacity": 0.6,
1211
+ "disabled-opacity": 0.38,
1212
+ "idle-opacity": 0.1,
1213
+ "hover-opacity": 0.08,
1214
+ "focus-opacity": 0.12,
1215
+ "selected-opacity": 0.12,
1216
+ "activated-opacity": 0.12,
1217
+ "pressed-opacity": 0.16,
1218
+ "dragged-opacity": 0.08,
1219
+ "theme-kbd": "#212529",
1220
+ "theme-on-kbd": "#ffffff",
1221
+ "theme-code": "#343434",
1222
+ "theme-on-code": "#cccccc"
1223
+ }
1224
+ },
1225
+ nebula: {
1226
+ dark: !0,
1227
+ colors: {
1228
+ background: "#0f172a",
1229
+ primary: "#3462e3",
1230
+ surface: "#1e293b",
1231
+ info: "#64748b",
1232
+ accent: "#0ea5e9",
1233
+ success: "#14b8a6",
1234
+ "surface-light": "#2e3d59",
1235
+ "surface-bright": "#87a7ff",
1236
+ "surface-variant": "#334155",
1237
+ "on-surface-variant": "#FFFFFF",
1238
+ "primary-darken-1": "#1c2d60",
1239
+ secondary: "#0284c7",
1240
+ "secondary-darken-1": "#0369a1",
1241
+ error: "#ef4444",
1242
+ warning: "#f97316"
1243
+ },
1244
+ variables: {
1245
+ "border-color": "#ffffff",
1246
+ "border-opacity": 0.2,
1247
+ "high-emphasis-opacity": 0.87,
1248
+ "medium-emphasis-opacity": 0.6,
1249
+ "disabled-opacity": 0.38,
1250
+ "idle-opacity": 0.1,
1251
+ "hover-opacity": 0.08,
1252
+ "focus-opacity": 0.12,
1253
+ "selected-opacity": 0.12,
1254
+ "activated-opacity": 0.12,
1255
+ "pressed-opacity": 0.16,
1256
+ "dragged-opacity": 0.08,
1257
+ "theme-kbd": "#1e40af",
1258
+ "theme-on-kbd": "#dbeafe",
1259
+ "theme-code": "#0f172a",
1260
+ "theme-on-code": "#93c5fd"
1261
+ }
1262
+ },
1263
+ odyssey: {
1264
+ dark: !1,
1265
+ colors: {
1266
+ background: "#fffbe6",
1267
+ primary: "#356859",
1268
+ surface: "#fffbe6",
1269
+ info: "#37966f",
1270
+ accent: "#b9e4c9",
1271
+ success: "#5bb49a",
1272
+ "surface-light": "#95b3a0",
1273
+ "surface-bright": "#ffffff",
1274
+ "surface-variant": "#37966f",
1275
+ "primary-darken-1": "#00CC00",
1276
+ secondary: "#FD5523",
1277
+ "secondary-darken-1": "#CC3700",
1278
+ error: "#FF5555",
1279
+ warning: "#ecb85b"
1280
+ },
1281
+ variables: {
1282
+ "border-color": "#000000",
1283
+ "border-opacity": 0.24,
1284
+ "high-emphasis-opacity": 1,
1285
+ "medium-emphasis-opacity": 0.87,
1286
+ "disabled-opacity": 0.5,
1287
+ "idle-opacity": 0.1,
1288
+ "hover-opacity": 0.2,
1289
+ "focus-opacity": 0.3,
1290
+ "selected-opacity": 0.3,
1291
+ "activated-opacity": 0.3,
1292
+ "pressed-opacity": 0.4,
1293
+ "dragged-opacity": 0.2,
1294
+ "theme-kbd": "#000000",
1295
+ "theme-on-kbd": "#ffffff",
1296
+ "theme-code": "#000000",
1297
+ "theme-on-code": "#ffffff"
1298
+ }
1299
+ },
1300
+ highContrast: {
1301
+ dark: !0,
1302
+ colors: {
1303
+ background: "#000000",
1304
+ surface: "#121212",
1305
+ primary: "#ffD700",
1306
+ "primary-darken-1": "#e6c300",
1307
+ secondary: "#00ccdd",
1308
+ "secondary-darken-1": "#00e600",
1309
+ accent: "#ff00ff",
1310
+ info: "#31aaff",
1311
+ warning: "#ffaa00",
1312
+ error: "#ff0000",
1313
+ success: "#00ff00",
1314
+ "on-surface-variant": "#ffffff",
1315
+ "surface-light": "#222222",
1316
+ "surface-bright": "#000000",
1317
+ "surface-variant": "#333333"
1318
+ },
1319
+ variables: {
1320
+ "border-color": "#ffffff",
1321
+ "border-opacity": 0.87,
1322
+ "high-emphasis-opacity": 1,
1323
+ "medium-emphasis-opacity": 0.87,
1324
+ "disabled-opacity": 0.5,
1325
+ "idle-opacity": 0.1,
1326
+ "hover-opacity": 0.2,
1327
+ "focus-opacity": 0.3,
1328
+ "selected-opacity": 0.3,
1329
+ "activated-opacity": 0.3,
1330
+ "pressed-opacity": 0.4,
1331
+ "dragged-opacity": 0.2,
1332
+ "theme-kbd": "#000000",
1333
+ "theme-on-kbd": "#ffffff",
1334
+ "theme-code": "#000000",
1335
+ "theme-on-code": "#ffffff"
1336
+ }
1337
+ }
1338
+ };
1339
+ }
1340
+ const qe = G("settings", () => {
1341
+ const u = "https://cdn.vuetifyjs.com/docs/images/one/", t = F(), s = j(), o = Re(), r = bn(), n = {
1342
+ blackguard: {
1343
+ "app-bar": u + "suits/blackguard/blackguard-app-bar.png",
1344
+ drawer: u + "suits/blackguard/blackguard-app-drawer.png",
1345
+ footer: u + "suits/blackguard/blackguard-app-footer.png"
1346
+ },
1347
+ polaris: {
1348
+ "app-bar": u + "suits/polaris/polaris-app-bar.png",
1349
+ drawer: u + "suits/polaris/polaris-app-drawer.png",
1350
+ footer: u + "suits/polaris/polaris-app-footer.png"
1351
+ },
1352
+ nebula: {
1353
+ "app-bar": u + "suits/nebula/nebula-app-bar.png",
1354
+ drawer: u + "suits/nebula/nebula-app-drawer.png",
1355
+ footer: u + "suits/nebula/nebula-app-footer.png"
1356
+ },
1357
+ odyssey: {
1358
+ "app-bar": u + "suits/odyssey/odyssey-app-bar.png",
1359
+ drawer: u + "suits/odyssey/odyssey-app-drawer.png",
1360
+ footer: u + "suits/odyssey/odyssey-app-footer.png"
1361
+ }
1362
+ }, l = V(() => {
1363
+ if (!s.suits.suit || !s.suits.show || !t.isSubscriber)
1364
+ return {};
1365
+ const c = n[s.suits.suit.toLowerCase()], p = {};
1366
+ for (const m of s.suits.elements)
1367
+ p[m] = c[m];
1368
+ return p;
1369
+ });
1370
+ return o.themes.value = {
1371
+ ...o.themes.value,
1372
+ ...r
1373
+ }, R(() => s.theme, (c) => {
1374
+ c === "system" ? o.global.name.value = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : (o.global.name.value = c, s.suits.suit = n[c] ? c : ""), s.theme = c;
1375
+ }, { immediate: !0 }), {
1376
+ suit: l,
1377
+ CDN_URL: u
1378
+ };
1379
+ }), Vn = { class: "ms-5" }, kn = { class: "pb-2" }, $n = /* @__PURE__ */ b({
1380
+ __name: "VoSettingsDialog",
1381
+ props: {
1382
+ modelValue: { type: Boolean },
1383
+ modelModifiers: {}
1384
+ },
1385
+ emits: ["update:modelValue"],
1386
+ setup(u) {
1387
+ const t = ce(u, "modelValue"), s = F(), o = qe(), r = j(), n = V(() => [
1388
+ {
1389
+ title: "Light",
1390
+ subtitle: "A standard light theme.",
1391
+ image: o.CDN_URL + "themes/light.png",
1392
+ prependIcon: `svg:${no}`,
1393
+ value: "light"
1394
+ },
1395
+ {
1396
+ title: "Dark",
1397
+ subtitle: "A standard dark theme.",
1398
+ image: o.CDN_URL + "themes/dark.png",
1399
+ prependIcon: `svg:${so}`,
1400
+ value: "dark"
1401
+ },
1402
+ {
1403
+ title: "System",
1404
+ subtitle: "A theme based on the system preference.",
1405
+ image: o.CDN_URL + "themes/system.png",
1406
+ prependIcon: `svg:${ao}`,
1407
+ value: "system"
1408
+ },
1409
+ {
1410
+ title: "High Contrast",
1411
+ subtitle: "A theme for high contrast.",
1412
+ image: o.CDN_URL + "themes/high-contrast.png",
1413
+ prependIcon: `svg:${io}`,
1414
+ value: "highContrast",
1415
+ disabled: !s.isSubscriber
1416
+ }
1417
+ ]), l = V(() => [
1418
+ {
1419
+ title: "Blackguard",
1420
+ subtitle: "A theme for v3.4 Blackguard.",
1421
+ image: o.CDN_URL + "themes/blackguard.png",
1422
+ prependIcon: `svg:${mt}`,
1423
+ value: "blackguard",
1424
+ disabled: !s.isSubscriber
1425
+ },
1426
+ {
1427
+ title: "Polaris",
1428
+ subtitle: "A theme for v3.5 Polaris.",
1429
+ image: o.CDN_URL + "themes/polaris.png",
1430
+ prependIcon: `svg:${ft}`,
1431
+ value: "polaris",
1432
+ disabled: !s.isSubscriber
1433
+ },
1434
+ {
1435
+ title: "Nebula",
1436
+ subtitle: "A theme for v3.6 Nebula.",
1437
+ image: o.CDN_URL + "themes/nebula.png",
1438
+ prependIcon: `svg:${vt}`,
1439
+ value: "nebula",
1440
+ disabled: !s.isSubscriber
1441
+ },
1442
+ {
1443
+ title: "Odyssey",
1444
+ subtitle: "A theme for v3.7 Odyssey.",
1445
+ image: o.CDN_URL + "themes/odyssey.png",
1446
+ prependIcon: `svg:${gt}`,
1447
+ value: "odyssey",
1448
+ disabled: !s.isSubscriber
1449
+ }
1450
+ ]), c = V(() => [
1451
+ { title: "Standard", items: n.value },
1452
+ { title: "Releases", items: l.value }
1453
+ ]), p = fe();
1454
+ R(p, async () => {
1455
+ p.value.one === "settings" && (s.isOpen = !0, await he(), t.value = !0);
1456
+ }, { immediate: !0 });
1457
+ function m(g, f) {
1458
+ f.disabled || (r.theme = f.value, g == null || g());
1459
+ }
1460
+ return (g, f) => {
1461
+ const C = ve, _ = yn, k = Tt, y = xe;
1462
+ return d(), v(y, {
1463
+ modelValue: t.value,
1464
+ "onUpdate:modelValue": f[6] || (f[6] = ($) => t.value = $),
1465
+ "prepend-icon": `svg:${e(ro)}`,
1466
+ title: "Settings"
1467
+ }, {
1468
+ default: i(() => [
1469
+ a(ke, null, {
1470
+ default: i(() => [
1471
+ a($e, { scrollable: "" }, {
1472
+ default: i(() => [
1473
+ a(ae, { class: "px-7" }, {
1474
+ default: i(() => [
1475
+ a(C, {
1476
+ text: "Customize your documentation experience with light and dark themes, as well as a combination of both named.",
1477
+ title: "Theme"
1478
+ }),
1479
+ a(bt, {
1480
+ modelValue: e(r).theme,
1481
+ "onUpdate:modelValue": f[0] || (f[0] = ($) => e(r).theme = $),
1482
+ mandatory: ""
1483
+ }, {
1484
+ default: i(() => [
1485
+ a(Te, { dense: "" }, {
1486
+ default: i(() => [
1487
+ (d(!0), L(N, null, re(c.value, ($, T) => (d(), v(_e, {
1488
+ key: T,
1489
+ class: "d-flex flex-column ga-3",
1490
+ cols: "12",
1491
+ md: "6"
1492
+ }, {
1493
+ default: i(() => [
1494
+ a(zo, { class: "mb-n4" }, {
1495
+ default: i(() => [
1496
+ O(S($.title), 1)
1497
+ ]),
1498
+ _: 2
1499
+ }, 1024),
1500
+ (d(!0), L(N, null, re($.items, (U) => (d(), v(Je, {
1501
+ key: U.value,
1502
+ value: U.value
1503
+ }, {
1504
+ default: i(({ toggle: P, isSelected: Q }) => [
1505
+ a(He, null, {
1506
+ default: i(({ props: W, isHovering: X }) => [
1507
+ a(E, Y({
1508
+ color: Q ? "primary" : "surface-variant",
1509
+ height: "76",
1510
+ image: U.image,
1511
+ "prepend-icon": U.prependIcon,
1512
+ readonly: U.disabled,
1513
+ ripple: !U.disabled,
1514
+ subtitle: U.disabled ? "🔓 Unlock with Vuetify One" : U.subtitle,
1515
+ title: U.title,
1516
+ variant: "tonal",
1517
+ ref_for: !0
1518
+ }, W, {
1519
+ onClick: (ue) => m(P, U)
1520
+ }), {
1521
+ image: i(() => [
1522
+ a(le, {
1523
+ style: pt({
1524
+ filter: Q || X ? "none" : "grayscale(100%)"
1525
+ })
1526
+ }, null, 8, ["style"])
1527
+ ]),
1528
+ _: 2
1529
+ }, 1040, ["color", "image", "prepend-icon", "readonly", "ripple", "subtitle", "title", "onClick"])
1530
+ ]),
1531
+ _: 2
1532
+ }, 1024)
1533
+ ]),
1534
+ _: 2
1535
+ }, 1032, ["value"]))), 128))
1536
+ ]),
1537
+ _: 2
1538
+ }, 1024))), 128))
1539
+ ]),
1540
+ _: 1
1541
+ })
1542
+ ]),
1543
+ _: 1
1544
+ }, 8, ["modelValue"]),
1545
+ e(s).isSubscriber ? (d(), L(N, { key: 0 }, [
1546
+ a(J, { class: "mt-6 mb-4" }),
1547
+ a(_)
1548
+ ], 64)) : x("", !0)
1549
+ ]),
1550
+ _: 1
1551
+ }),
1552
+ a(J),
1553
+ a(ae, { class: "px-7" }, {
1554
+ default: i(() => [
1555
+ a(C, {
1556
+ text: "These options change your browsing experience within Vuetify properties",
1557
+ title: "Experience"
1558
+ }),
1559
+ e(s).isSubscriber ? (d(), v(k, {
1560
+ key: 0,
1561
+ modelValue: e(r).disableAds,
1562
+ "onUpdate:modelValue": f[1] || (f[1] = ($) => e(r).disableAds = $),
1563
+ class: "mb-2",
1564
+ label: "Disable Ads",
1565
+ messages: "Disable traditional advertisements on all documentation pages."
1566
+ }, null, 8, ["modelValue"])) : x("", !0),
1567
+ a(Ve, null, {
1568
+ default: i(() => [
1569
+ ye(h("div", Vn, [
1570
+ h("div", kn, [
1571
+ a(k, {
1572
+ modelValue: e(r).showHouseAds,
1573
+ "onUpdate:modelValue": f[2] || (f[2] = ($) => e(r).showHouseAds = $),
1574
+ label: "Show House Ads",
1575
+ messages: "These advertisements are for Vuetify products and services only."
1576
+ }, null, 8, ["modelValue"])
1577
+ ])
1578
+ ], 512), [
1579
+ [Fe, e(r).disableAds]
1580
+ ])
1581
+ ]),
1582
+ _: 1
1583
+ }),
1584
+ a(k, {
1585
+ modelValue: e(r).quickbar,
1586
+ "onUpdate:modelValue": f[3] || (f[3] = ($) => e(r).quickbar = $),
1587
+ label: "Enable Quick Actions",
1588
+ messages: "Quick actions are located on the Vuetify One user menu and provide quick access to common tasks."
1589
+ }, null, 8, ["modelValue"])
1590
+ ]),
1591
+ _: 1
1592
+ }),
1593
+ a(J),
1594
+ e(s).isSubscriber ? (d(), v(ae, {
1595
+ key: 0,
1596
+ class: "px-7"
1597
+ }, {
1598
+ default: i(() => [
1599
+ a(C, {
1600
+ text: "Vuetify will communicate with you through banners and notifications. You can disable these features here or reset your local notification cache.",
1601
+ title: "Communication"
1602
+ }),
1603
+ a(k, {
1604
+ modelValue: e(r).notifications.show,
1605
+ "onUpdate:modelValue": f[4] || (f[4] = ($) => e(r).notifications.show = $),
1606
+ class: "mb-2",
1607
+ label: "Enable Notifications",
1608
+ messages: "Notifications are short form messages that provide information about new releases, updates, and other important information."
1609
+ }, null, 8, ["modelValue"]),
1610
+ a(k, {
1611
+ modelValue: e(r).notifications.banners,
1612
+ "onUpdate:modelValue": f[5] || (f[5] = ($) => e(r).notifications.banners = $),
1613
+ label: "Enable Banners",
1614
+ messages: "Banners are located at the top of the screen and provide a callout for important information."
1615
+ }, null, 8, ["modelValue"])
1616
+ ]),
1617
+ _: 1
1618
+ })) : x("", !0)
1619
+ ]),
1620
+ _: 1
1621
+ })
1622
+ ]),
1623
+ _: 1
1624
+ })
1625
+ ]),
1626
+ _: 1
1627
+ }, 8, ["modelValue", "prepend-icon"]);
1628
+ };
1629
+ }
1630
+ }), wn = /* @__PURE__ */ b({
1631
+ __name: "VoSettingsListItem",
1632
+ setup(u) {
1633
+ const t = A(!1);
1634
+ return (s, o) => {
1635
+ const r = $n, n = ee;
1636
+ return d(), v(n, {
1637
+ active: e(t),
1638
+ link: "",
1639
+ "prepend-icon": `svg:${e(lo)}`,
1640
+ title: "Settings"
1641
+ }, {
1642
+ default: i(() => [
1643
+ a(r, {
1644
+ modelValue: e(t),
1645
+ "onUpdate:modelValue": o[0] || (o[0] = (l) => oe(t) ? t.value = l : null)
1646
+ }, null, 8, ["modelValue"])
1647
+ ]),
1648
+ _: 1
1649
+ }, 8, ["active", "prepend-icon"]);
1650
+ };
1651
+ }
1652
+ }), xn = { class: "text-caption" }, Cn = /* @__PURE__ */ b({
1653
+ __name: "VoSubscriptionInvoices",
1654
+ setup(u) {
1655
+ const t = De(), s = F();
1656
+ return (o, r) => {
1657
+ const n = ve;
1658
+ return d(), v(Te, null, {
1659
+ default: i(() => [
1660
+ a(_e, { cols: "12" }, {
1661
+ default: i(() => [
1662
+ a(n, {
1663
+ text: "View and download your invoice history.",
1664
+ title: "Invoice History"
1665
+ }),
1666
+ a(E, {
1667
+ border: "",
1668
+ rounded: "lg"
1669
+ }, {
1670
+ default: i(() => [
1671
+ a(Vt, {
1672
+ "fixed-header": "",
1673
+ height: "450",
1674
+ items: e(s).invoices,
1675
+ loading: e(s).isLoading,
1676
+ sticky: ""
1677
+ }, {
1678
+ "item.date": i(({ item: l }) => [
1679
+ h("div", xn, S(e(t).format(new Date(l.date * 1e3), "fullDateWithWeekday")), 1)
1680
+ ]),
1681
+ "item.amount": i(({ item: l }) => [
1682
+ O(" $" + S(l.amount / 100), 1)
1683
+ ]),
1684
+ "item.status": i(({ item: l }) => [
1685
+ a(ie, {
1686
+ border: "success sm",
1687
+ class: "text-capitalize",
1688
+ color: "success",
1689
+ label: "",
1690
+ size: "small",
1691
+ text: l.status,
1692
+ variant: "tonal"
1693
+ }, null, 8, ["text"])
1694
+ ]),
1695
+ "item.pdf": i(({ item: l }) => [
1696
+ a(z, {
1697
+ href: l.pdf,
1698
+ icon: `svg:${e(uo)}`,
1699
+ size: "small",
1700
+ target: "_blank",
1701
+ variant: "text"
1702
+ }, null, 8, ["href", "icon"])
1703
+ ]),
1704
+ _: 1
1705
+ }, 8, ["items", "loading"])
1706
+ ]),
1707
+ _: 1
1708
+ })
1709
+ ]),
1710
+ _: 1
1711
+ })
1712
+ ]),
1713
+ _: 1
1714
+ });
1715
+ };
1716
+ }
1717
+ }), Sn = { class: "d-flex align-center" }, Ln = ["textContent"], In = { class: "me-1" }, An = { class: "text-medium-emphasis text-caption" }, Dn = { class: "d-flex align-center" }, Tn = { class: "d-flex align-start justify-space-between text-caption py-2" }, Un = { class: "font-weight-bold" }, On = { class: "font-weight-bold" }, Bn = /* @__PURE__ */ b({
1718
+ __name: "VoSubscriptionStatus",
1719
+ emits: ["change:subscription"],
1720
+ setup(u, { emit: t }) {
1721
+ const s = De(), o = F(), r = t, n = V(() => {
1722
+ if (!o.info) return;
1723
+ const c = new Date(o.info.currentPeriodEnd * 1e3);
1724
+ return s.format(c, "keyboardDate");
1725
+ });
1726
+ async function l() {
1727
+ !o.interval || !o.subscriptionType || (o.isLoading = !0, o.subscribe(o.interval, o.subscriptionType));
1728
+ }
1729
+ return (c, p) => {
1730
+ const m = Ue;
1731
+ return d(), v(Te, null, {
1732
+ default: i(() => [
1733
+ a(_e, { cols: "12" }, {
1734
+ default: i(() => {
1735
+ var g, f;
1736
+ return [
1737
+ a(E, {
1738
+ border: "",
1739
+ flat: "",
1740
+ "prepend-icon": "$vuetify",
1741
+ rounded: "lg",
1742
+ title: "Subscription Status"
1743
+ }, Z({
1744
+ prepend: i(() => [
1745
+ a(D, {
1746
+ color: e(o).isSubscriber ? "success" : void 0
1747
+ }, null, 8, ["color"])
1748
+ ]),
1749
+ append: i(() => {
1750
+ var C;
1751
+ return [
1752
+ e(o).hasBilling && ((C = e(o).info) == null ? void 0 : C.status) === "canceled" ? (d(), v(m, {
1753
+ key: 0,
1754
+ class: "me-2",
1755
+ color: "success",
1756
+ loading: e(o).isLoading,
1757
+ "prepend-icon": "$success",
1758
+ text: "Activate",
1759
+ variant: "outlined",
1760
+ onClick: l
1761
+ }, null, 8, ["loading"])) : x("", !0),
1762
+ e(o).hasBilling ? (d(), v(m, {
1763
+ key: 1,
1764
+ loading: e(o).isLoading,
1765
+ "prepend-icon": `svg:${e(co)}`,
1766
+ text: "Billing",
1767
+ onClick: e(o).manage
1768
+ }, null, 8, ["loading", "prepend-icon", "onClick"])) : x("", !0)
1769
+ ];
1770
+ }),
1771
+ _: 2
1772
+ }, [
1773
+ e(o).info ? {
1774
+ name: "subtitle",
1775
+ fn: i(() => [
1776
+ h("div", Sn, [
1777
+ h("strong", {
1778
+ key: "status",
1779
+ class: "text-capitalize hidden-sm-and-down",
1780
+ textContent: S(e(o).info.status)
1781
+ }, null, 8, Ln),
1782
+ e(o).info.items.length > 0 ? (d(), L(N, { key: 0 }, [
1783
+ p[1] || (p[1] = h("span", { class: "mx-1 hidden-sm-and-down" }, "—", -1)),
1784
+ h("span", In, [
1785
+ O(" $" + S(e(o).info.items[0].plan.amount / 100), 1),
1786
+ h("span", An, "/" + S(e(o).interval), 1)
1787
+ ]),
1788
+ a(m, {
1789
+ size: "x-small",
1790
+ text: "(Change Subscription)",
1791
+ variant: "text",
1792
+ onClick: p[0] || (p[0] = (C) => r("change:subscription"))
1793
+ })
1794
+ ], 64)) : x("", !0)
1795
+ ])
1796
+ ]),
1797
+ key: "0"
1798
+ } : {
1799
+ name: "subtitle",
1800
+ fn: i(() => [
1801
+ h("div", Dn, [
1802
+ a(Ie, {
1803
+ height: "16",
1804
+ type: "ossein",
1805
+ width: "40"
1806
+ }),
1807
+ p[2] || (p[2] = h("span", { class: "mx-1" }, "—", -1)),
1808
+ a(Ie, {
1809
+ height: "16",
1810
+ type: "ossein",
1811
+ width: "80"
1812
+ })
1813
+ ])
1814
+ ]),
1815
+ key: "1"
1816
+ }
1817
+ ]), 1024),
1818
+ h("div", Tn, [
1819
+ h("div", null, [
1820
+ ((g = e(o).info) == null ? void 0 : g.status) === "active" ? (d(), L(N, { key: 0 }, [
1821
+ p[3] || (p[3] = O(" Your plan renews on ")),
1822
+ h("span", Un, S(e(s).format(e(n), "fullDateWithWeekday")), 1),
1823
+ p[4] || (p[4] = O(". "))
1824
+ ], 64)) : (d(), L(N, { key: 1 }, [
1825
+ p[5] || (p[5] = O(" Your plan ends on ")),
1826
+ h("span", On, S(e(s).format((f = e(o).info) == null ? void 0 : f.currentPeriodEnd, "fullDateWithWeekday")), 1),
1827
+ p[6] || (p[6] = O(". "))
1828
+ ], 64))
1829
+ ])
1830
+ ])
1831
+ ];
1832
+ }),
1833
+ _: 1
1834
+ })
1835
+ ]),
1836
+ _: 1
1837
+ });
1838
+ };
1839
+ }
1840
+ }), Nn = ["innerHTML"], Mn = ["innerHTML"], Fn = /* @__PURE__ */ b({
1841
+ __name: "VoSubscriptionPerks",
1842
+ props: {
1843
+ type: {}
1844
+ },
1845
+ setup(u) {
1846
+ const t = [
1847
+ "Access to the Vuetify MCP server",
1848
+ "Team wide Playgrounds, Bins, and Studios",
1849
+ "Receive a special label on GitHub created issues and pull requests"
1850
+ ], s = A(!1), o = F(), r = V(() => {
1851
+ const n = [
1852
+ "Ad Free Experience on all Vuetify properties",
1853
+ 'Save and share across our platforms <a href="https://play.vuetifyjs.com" target="_blank">VPlay</a>, <a href="https://bin.vuetifyjs.com" target="_blank">VBin</a>, and <a href="https://studio.vuetifyjs.com" target="_blank">VStudio</a>',
1854
+ 'Pinned Navigation Items and Rail drawer in <a href="https://vuetifyjs.com/" target="_blank">Documentation</a>',
1855
+ "Customize Navigation components with Page Suits",
1856
+ "Custom Vuetify One menu avatar"
1857
+ // Broken right now
1858
+ // 'Special role in the <a href="https://discord.vuetifyjs.com/" target="_blank">Vuetify Discord</a>',
1859
+ ];
1860
+ return u.type === "team" && n.unshift("Invite up to 25 team members"), n;
1861
+ });
1862
+ return R(s, async (n) => {
1863
+ n && o.subscriptionInfo();
1864
+ }), (n, l) => {
1865
+ const c = ee;
1866
+ return d(), L(N, null, [
1867
+ a(Ye, { class: "font-weight-black" }, {
1868
+ default: i(() => l[0] || (l[0] = [
1869
+ O("Perks")
1870
+ ])),
1871
+ _: 1
1872
+ }),
1873
+ l[2] || (l[2] = h("div", { class: "mb-3 text-caption text-medium-emphasis" }, " The Vuetify One subscription comes with the following perks: ", -1)),
1874
+ a(de, {
1875
+ class: "py-0",
1876
+ density: "compact",
1877
+ lines: !1,
1878
+ nav: ""
1879
+ }, {
1880
+ default: i(() => [
1881
+ (d(!0), L(N, null, re(e(r), (p, m) => (d(), v(c, {
1882
+ key: m,
1883
+ class: "mb-0",
1884
+ "prepend-icon": `svg:${e(Ae)}`
1885
+ }, {
1886
+ prepend: i(() => [
1887
+ a(D, {
1888
+ class: "mx-n2",
1889
+ color: "success",
1890
+ size: "small"
1891
+ })
1892
+ ]),
1893
+ title: i(() => [
1894
+ h("div", { innerHTML: p }, null, 8, Nn)
1895
+ ]),
1896
+ _: 2
1897
+ }, 1032, ["prepend-icon"]))), 128))
1898
+ ]),
1899
+ _: 1
1900
+ }),
1901
+ l[3] || (l[3] = h("br", null, null, -1)),
1902
+ a(Ye, { class: "font-weight-black" }, {
1903
+ default: i(() => l[1] || (l[1] = [
1904
+ O("Up Next")
1905
+ ])),
1906
+ _: 1
1907
+ }),
1908
+ l[4] || (l[4] = h("div", { class: "mb-3 text-caption text-medium-emphasis" }, " The following features are in development and coming soon: ", -1)),
1909
+ a(de, {
1910
+ class: "py-0",
1911
+ density: "compact",
1912
+ lines: !1,
1913
+ nav: ""
1914
+ }, {
1915
+ default: i(() => [
1916
+ (d(), L(N, null, re(t, (p, m) => a(c, {
1917
+ key: m,
1918
+ class: "mb-0",
1919
+ "prepend-icon": `svg:${e(po)}`
1920
+ }, {
1921
+ prepend: i(() => [
1922
+ a(D, {
1923
+ class: "mx-n2",
1924
+ size: "small"
1925
+ })
1926
+ ]),
1927
+ title: i(() => [
1928
+ h("div", { innerHTML: p }, null, 8, Mn)
1929
+ ]),
1930
+ _: 2
1931
+ }, 1032, ["prepend-icon"])), 64))
1932
+ ]),
1933
+ _: 1
1934
+ })
1935
+ ], 64);
1936
+ };
1937
+ }
1938
+ }), zn = /* @__PURE__ */ b({
1939
+ __name: "VoSubscriptionSubscribe",
1940
+ props: {
1941
+ interval: { default: "year" },
1942
+ intervalModifiers: {},
1943
+ type: { default: "solo" },
1944
+ typeModifiers: {}
1945
+ },
1946
+ emits: ["update:interval", "update:type"],
1947
+ setup(u) {
1948
+ const t = A(!1), s = ce(u, "interval"), o = ce(u, "type"), r = F(), n = we(), l = V(() => n.hasTeamAccess && !n.isTeamOwner), c = {
1949
+ solo: {
1950
+ month: "2.99 /month",
1951
+ year: "29.99 /year"
1952
+ },
1953
+ team: {
1954
+ month: "29.99 /month",
1955
+ year: "299.99 /year"
1956
+ }
1957
+ };
1958
+ return R(t, async (p) => {
1959
+ p && r.subscriptionInfo();
1960
+ }), (p, m) => (d(), L(N, null, [
1961
+ a(bt, {
1962
+ modelValue: o.value,
1963
+ "onUpdate:modelValue": m[0] || (m[0] = (g) => o.value = g),
1964
+ class: "mb-4",
1965
+ mandatory: ""
1966
+ }, {
1967
+ default: i(() => [
1968
+ a(Te, null, {
1969
+ default: i(() => [
1970
+ a(_e, {
1971
+ cols: "12",
1972
+ md: "6"
1973
+ }, {
1974
+ default: i(() => [
1975
+ a(Je, { value: "solo" }, {
1976
+ default: i(({ toggle: g, isSelected: f }) => [
1977
+ a(E, {
1978
+ border: f ? "sm primary opacity-50" : "sm",
1979
+ color: f ? "primary" : void 0,
1980
+ "prepend-icon": f ? `svg:${e(Ne)}` : "$radioOff",
1981
+ rounded: "lg",
1982
+ subtitle: `$${c.solo[s.value]}`,
1983
+ title: "Solo Developer",
1984
+ variant: f ? "tonal" : "text",
1985
+ onClick: g
1986
+ }, {
1987
+ prepend: i(() => [
1988
+ a(D, { class: "mt-n6" })
1989
+ ]),
1990
+ _: 2
1991
+ }, 1032, ["border", "color", "prepend-icon", "subtitle", "variant", "onClick"])
1992
+ ]),
1993
+ _: 1
1994
+ })
1995
+ ]),
1996
+ _: 1
1997
+ }),
1998
+ a(_e, {
1999
+ cols: "12",
2000
+ md: "6"
2001
+ }, {
2002
+ default: i(() => [
2003
+ a(Je, { value: "team" }, {
2004
+ default: i(({ toggle: g, isSelected: f }) => [
2005
+ a(E, {
2006
+ border: f ? "sm primary opacity-50" : "sm",
2007
+ color: f ? "primary" : void 0,
2008
+ disabled: e(l),
2009
+ "prepend-icon": f ? `svg:${e(Ne)}` : "$radioOff",
2010
+ rounded: "lg",
2011
+ subtitle: `$${c.team[s.value]}`,
2012
+ title: "Team Access",
2013
+ variant: f ? "tonal" : "text",
2014
+ onClick: g
2015
+ }, {
2016
+ prepend: i(() => [
2017
+ a(D, { class: "mt-n6" })
2018
+ ]),
2019
+ _: 2
2020
+ }, 1032, ["border", "color", "disabled", "prepend-icon", "subtitle", "variant", "onClick"])
2021
+ ]),
2022
+ _: 1
2023
+ })
2024
+ ]),
2025
+ _: 1
2026
+ })
2027
+ ]),
2028
+ _: 1
2029
+ })
2030
+ ]),
2031
+ _: 1
2032
+ }, 8, ["modelValue"]),
2033
+ a(nt, {
2034
+ modelValue: s.value,
2035
+ "onUpdate:modelValue": m[1] || (m[1] = (g) => s.value = g),
2036
+ "false-value": "month",
2037
+ "hide-details": "",
2038
+ inset: "",
2039
+ label: "Yearly Billing (save 20%)",
2040
+ "true-value": "year"
2041
+ }, null, 8, ["modelValue"])
2042
+ ], 64));
2043
+ }
2044
+ }), jn = { class: "px-3" }, Pn = { class: "flex-grow-1 px-4 pb-3 overflow-hidden" }, Rn = /* @__PURE__ */ b({
2045
+ __name: "VoSubscriptionDialog",
2046
+ props: {
2047
+ modelValue: { type: Boolean },
2048
+ modelModifiers: {}
2049
+ },
2050
+ emits: ["update:modelValue"],
2051
+ setup(u) {
2052
+ function t(g) {
2053
+ return new Promise((f) => setTimeout(f, g));
2054
+ }
2055
+ const s = ce(u, "modelValue"), o = F(), r = fe(), n = A(o.interval), l = A(o.subscriptionType), c = A(o.hasBilling ? "status" : "subscribe"), p = A(!1);
2056
+ R([n, l], ([g, f]) => {
2057
+ !o.isSubscriber || !o.interval || !o.subscriptionType || (p.value = g !== o.interval || f !== o.subscriptionType);
2058
+ }), R(s, async (g) => {
2059
+ if (!g || !o.isSubscriber) {
2060
+ g || o.resetQuery();
2061
+ return;
2062
+ }
2063
+ o.subscriptionInfo();
2064
+ }), R(r, async () => {
2065
+ !o.sessionId && !["subscribe", "status"].includes(r.value.one) || r.value.team || (c.value = o.sessionId || r.value.one === "status" ? "status" : "subscribe", o.isOpen = !0, await he(), s.value = !0);
2066
+ }, { immediate: !0 }), Pt(() => {
2067
+ n.value = o.interval ?? "year", l.value = o.subscriptionType ?? "solo";
2068
+ });
2069
+ async function m() {
2070
+ await o.modify(n.value, l.value), await o.subscriptionInfo(), p.value = null, await t(3e3), c.value = "status", await t(300), p.value = !1;
2071
+ }
2072
+ return (g, f) => {
2073
+ const C = ve, _ = zn, k = Fn, y = Bn, $ = Cn, T = Ue, U = xe;
2074
+ return d(), v(U, {
2075
+ modelValue: s.value,
2076
+ "onUpdate:modelValue": f[5] || (f[5] = (P) => s.value = P),
2077
+ "prepend-icon": `svg:${e(mo)}`,
2078
+ title: "Subscriptions"
2079
+ }, Z({
2080
+ default: i(() => [
2081
+ a(ke, null, {
2082
+ default: i(() => [
2083
+ a($e, { scrollable: "" }, {
2084
+ default: i(() => [
2085
+ h("div", jn, [
2086
+ a(ae, null, {
2087
+ default: i(() => [
2088
+ a(C, {
2089
+ text: "The Vuetify One subscription is a great way to support the Vuetify team and get access to exclusive features and content.",
2090
+ title: "Vuetify One"
2091
+ }),
2092
+ a(kt, { "model-value": e(c) }, {
2093
+ default: i(() => [
2094
+ a(Le, { value: "subscribe" }, {
2095
+ default: i(() => [
2096
+ a(_, {
2097
+ interval: e(n),
2098
+ "onUpdate:interval": f[0] || (f[0] = (P) => oe(n) ? n.value = P : null),
2099
+ type: e(l),
2100
+ "onUpdate:type": f[1] || (f[1] = (P) => oe(l) ? l.value = P : null)
2101
+ }, null, 8, ["interval", "type"]),
2102
+ f[6] || (f[6] = h("br", null, null, -1)),
2103
+ a(k, { type: e(l) }, null, 8, ["type"])
2104
+ ]),
2105
+ _: 1
2106
+ }),
2107
+ a(Le, { value: "status" }, {
2108
+ default: i(() => [
2109
+ a(y, {
2110
+ "onChange:subscription": f[2] || (f[2] = (P) => c.value = "subscribe")
2111
+ }),
2112
+ a($)
2113
+ ]),
2114
+ _: 1
2115
+ })
2116
+ ]),
2117
+ _: 1
2118
+ }, 8, ["model-value"])
2119
+ ]),
2120
+ _: 1
2121
+ })
2122
+ ])
2123
+ ]),
2124
+ _: 1
2125
+ })
2126
+ ]),
2127
+ _: 1
2128
+ })
2129
+ ]),
2130
+ _: 2
2131
+ }, [
2132
+ e(c) === "subscribe" ? {
2133
+ name: "actions",
2134
+ fn: i(() => [
2135
+ h("div", Pn, [
2136
+ e(p) !== !1 ? (d(), v(T, {
2137
+ key: 0,
2138
+ block: "",
2139
+ color: "success",
2140
+ loading: e(o).isLoading,
2141
+ "prepend-icon": `svg:${e(p) !== null ? e(fo) : e(Ne)}`,
2142
+ readonly: e(p) === null,
2143
+ size: "default",
2144
+ text: e(p) !== null ? "Modify Subscription" : "Success",
2145
+ onClick: m
2146
+ }, null, 8, ["loading", "prepend-icon", "readonly", "text"])) : e(o).one ? (d(), v(T, {
2147
+ key: 2,
2148
+ block: "",
2149
+ "prepend-icon": `svg:${e(vo)}`,
2150
+ size: "default",
2151
+ text: "Manage Subscription",
2152
+ onClick: f[4] || (f[4] = (P) => c.value = "status")
2153
+ }, null, 8, ["prepend-icon"])) : (d(), v(T, {
2154
+ key: 1,
2155
+ block: "",
2156
+ color: e(n) && e(l) ? "success" : "disabled",
2157
+ disabled: !(e(n) && e(l)),
2158
+ loading: e(o).isLoading,
2159
+ "prepend-icon": "$vuetify",
2160
+ size: "default",
2161
+ text: "Activate Subscription",
2162
+ onClick: f[3] || (f[3] = (P) => e(o).subscribe(e(n), e(l)))
2163
+ }, null, 8, ["color", "disabled", "loading"]))
2164
+ ])
2165
+ ]),
2166
+ key: "0"
2167
+ } : void 0
2168
+ ]), 1032, ["modelValue", "prepend-icon"]);
2169
+ };
2170
+ }
2171
+ }), Hn = /* @__PURE__ */ b({
2172
+ __name: "VoSubscriptionListItem",
2173
+ setup(u) {
2174
+ const t = A(!1);
2175
+ return (s, o) => {
2176
+ const r = Rn, n = ee;
2177
+ return d(), v(n, {
2178
+ active: e(t),
2179
+ link: "",
2180
+ "prepend-icon": `svg:${e(go)}`,
2181
+ title: "Subscriptions"
2182
+ }, {
2183
+ default: i(() => [
2184
+ a(r, {
2185
+ modelValue: e(t),
2186
+ "onUpdate:modelValue": o[0] || (o[0] = (l) => oe(t) ? t.value = l : null)
2187
+ }, null, 8, ["modelValue"])
2188
+ ]),
2189
+ _: 1
2190
+ }, 8, ["active", "prepend-icon"]);
2191
+ };
2192
+ }
2193
+ }), En = {
2194
+ key: 0,
2195
+ class: "text-success"
2196
+ }, at = /* @__PURE__ */ b({
2197
+ __name: "VoSponsorshipsTimelineItem",
2198
+ props: {
2199
+ title: {},
2200
+ text: {},
2201
+ href: {},
2202
+ to: {},
2203
+ logo: {},
2204
+ disabled: { type: Boolean },
2205
+ sponsorship: {}
2206
+ },
2207
+ setup(u) {
2208
+ const t = u, s = qe(), o = V(() => {
2209
+ var n, l;
2210
+ return `$${Number.parseFloat(String((((n = t.sponsorship) == null ? void 0 : n.amount) ?? 0) / 100)).toFixed(2)} /${(l = t.sponsorship) == null ? void 0 : l.interval}`;
2211
+ });
2212
+ return (r, n) => {
2213
+ var c, p;
2214
+ const l = Ue;
2215
+ return d(), v(Yo, {
2216
+ "dot-color": (c = r.sponsorship) != null && c.isActive ? "success" : "transparent",
2217
+ icon: (p = r.sponsorship) != null && p.isActive ? `svg:${e(Ae)}` : void 0,
2218
+ size: "x-small",
2219
+ width: "100%"
2220
+ }, {
2221
+ default: i(() => [
2222
+ a(E, {
2223
+ border: "",
2224
+ "prepend-avatar": `${e(s).CDN_URL}logos/${r.logo}.png`,
2225
+ rounded: "lg",
2226
+ title: r.title,
2227
+ variant: "text"
2228
+ }, {
2229
+ subtitle: i(() => {
2230
+ var m;
2231
+ return [
2232
+ (m = r.sponsorship) != null && m.isActive ? (d(), L("div", En, [
2233
+ a(D, {
2234
+ icon: `svg:${e(_o)}`,
2235
+ size: "x-small"
2236
+ }, null, 8, ["icon"]),
2237
+ O(" " + S(e(o)), 1)
2238
+ ])) : (d(), L(N, { key: 1 }, [
2239
+ O(S(r.text), 1)
2240
+ ], 64))
2241
+ ];
2242
+ }),
2243
+ append: i(() => {
2244
+ var m, g, f, C, _, k;
2245
+ return [
2246
+ r.disabled ? (d(), v(l, {
2247
+ key: 1,
2248
+ color: "surface-variant",
2249
+ readonly: "",
2250
+ text: "Coming Soon"
2251
+ })) : (d(), v(l, {
2252
+ key: 0,
2253
+ active: !1,
2254
+ color: (m = r.sponsorship) != null && m.isActive ? "success" : "primary",
2255
+ href: (g = r.sponsorship) != null && g.isActive || r.to ? void 0 : r.href,
2256
+ "prepend-icon": `svg:${(f = r.sponsorship) != null && f.isActive ? e(Ne) : e(ze)}`,
2257
+ readonly: (C = r.sponsorship) == null ? void 0 : C.isActive,
2258
+ target: (_ = r.sponsorship) != null && _.isActive || r.to ? void 0 : "_blank",
2259
+ text: (k = r.sponsorship) != null && k.isActive ? "Active" : "Info",
2260
+ to: r.to,
2261
+ width: "88"
2262
+ }, null, 8, ["color", "href", "prepend-icon", "readonly", "target", "text", "to"]))
2263
+ ];
2264
+ }),
2265
+ _: 1
2266
+ }, 8, ["prepend-avatar", "title"])
2267
+ ]),
2268
+ _: 1
2269
+ }, 8, ["dot-color", "icon"]);
2270
+ };
2271
+ }
2272
+ }), qn = /* @__PURE__ */ b({
2273
+ __name: "VoSponsorshipsTimelineItemDiscord",
2274
+ setup(u) {
2275
+ const t = F();
2276
+ return (s, o) => {
2277
+ const r = at;
2278
+ return d(), v(r, {
2279
+ href: "https://discord.com/servers/vuetify-340160225338195969",
2280
+ logo: "discord",
2281
+ sponsorship: e(t).discord,
2282
+ text: "Support Vuetify through Discord.",
2283
+ title: "Discord Subscriber"
2284
+ }, null, 8, ["sponsorship"]);
2285
+ };
2286
+ }
2287
+ }), Wn = /* @__PURE__ */ b({
2288
+ __name: "VoSponsorshipsTimelineItemGithub",
2289
+ setup(u) {
2290
+ const t = F();
2291
+ return (s, o) => {
2292
+ const r = at;
2293
+ return d(), v(r, {
2294
+ href: "https://github.com/sponsors/johnleider",
2295
+ logo: "github",
2296
+ sponsorship: e(t).github,
2297
+ text: "Support Vuetify through GitHub sponsors.",
2298
+ title: "GitHub Sponsor"
2299
+ }, null, 8, ["sponsorship"]);
2300
+ };
2301
+ }
2302
+ }), Zn = /* @__PURE__ */ b({
2303
+ __name: "VoSponsorshipsTimelineItemOne",
2304
+ setup(u) {
2305
+ const t = F();
2306
+ return (s, o) => {
2307
+ const r = at;
2308
+ return d(), v(r, {
2309
+ logo: "one",
2310
+ sponsorship: e(t).one,
2311
+ text: "Support Vuetify through Vuetify One.",
2312
+ title: "Vuetify One Subscriber",
2313
+ to: "?one=subscribe"
2314
+ }, null, 8, ["sponsorship"]);
2315
+ };
2316
+ }
2317
+ }), Gn = /* @__PURE__ */ b({
2318
+ __name: "VoSponsorshipsTimeline",
2319
+ setup(u) {
2320
+ return (t, s) => {
2321
+ const o = Zn, r = Wn, n = qn;
2322
+ return d(), v(Jo, {
2323
+ class: "justify-start ms-n7",
2324
+ "line-inset": "12",
2325
+ side: "end",
2326
+ style: { "grid-template-columns": "auto auto 1fr" },
2327
+ "truncate-line": "both"
2328
+ }, {
2329
+ default: i(() => [
2330
+ a(o),
2331
+ a(r),
2332
+ a(n)
2333
+ ]),
2334
+ _: 1
2335
+ });
2336
+ };
2337
+ }
2338
+ }), Qn = { class: "px-3 pb-5 d-flex flex-column h-100" }, Yn = { class: "font-weight-black" }, Jn = { class: "text-caption text-medium-emphasis" }, Xn = /* @__PURE__ */ b({
2339
+ __name: "VoSponsorshipsDialog",
2340
+ props: {
2341
+ modelValue: { type: Boolean },
2342
+ modelModifiers: {}
2343
+ },
2344
+ emits: ["update:modelValue"],
2345
+ setup(u) {
2346
+ const t = ce(u, "modelValue"), s = fe(), o = F();
2347
+ return R(s, async () => {
2348
+ s.value.one === "sponsorships" && (o.isOpen = !0, await he(), t.value = !0);
2349
+ }, { immediate: !0 }), (r, n) => {
2350
+ const l = ve, c = Gn, p = xe;
2351
+ return d(), v(p, {
2352
+ modelValue: t.value,
2353
+ "onUpdate:modelValue": n[0] || (n[0] = (m) => t.value = m),
2354
+ "prepend-icon": `svg:${e(ho)}`,
2355
+ title: "Sponsorships"
2356
+ }, {
2357
+ default: i(() => [
2358
+ a(ke, null, {
2359
+ default: i(() => [
2360
+ a($e, { scrollable: "" }, {
2361
+ default: i(() => [
2362
+ h("div", Qn, [
2363
+ a(ae, { class: "flex-0-0 mb-16 mb-sm-4" }, {
2364
+ default: i(() => [
2365
+ a(l, {
2366
+ text: "Support Vuetify through GitHub Sponsors or Discord to unlock exclusive benefits and content.",
2367
+ title: "Support Vuetify"
2368
+ }),
2369
+ a(c)
2370
+ ]),
2371
+ _: 1
2372
+ }),
2373
+ a(st, {
2374
+ class: "flex-1-0",
2375
+ icon: "$vuetify",
2376
+ "min-height": "auto",
2377
+ size: "128"
2378
+ }, {
2379
+ media: i(() => [
2380
+ a(D, {
2381
+ color: e(o).isSubscriber ? "success" : "error"
2382
+ }, null, 8, ["color"])
2383
+ ]),
2384
+ title: i(() => [
2385
+ n[1] || (n[1] = O(" One Status: ")),
2386
+ h("span", Yn, S(e(o).isSubscriber ? "Active" : "Inactive"), 1)
2387
+ ]),
2388
+ text: i(() => [
2389
+ h("div", Jn, S(e(o).isSubscriber ? "You are currently receiving benefits of Vuetify One." : "Login to activate Vuetify One benefits"), 1)
2390
+ ]),
2391
+ _: 1
2392
+ })
2393
+ ])
2394
+ ]),
2395
+ _: 1
2396
+ })
2397
+ ]),
2398
+ _: 1
2399
+ })
2400
+ ]),
2401
+ _: 1
2402
+ }, 8, ["modelValue", "prepend-icon"]);
2403
+ };
2404
+ }
2405
+ }), Kn = /* @__PURE__ */ b({
2406
+ __name: "VoSponsorshipsListItem",
2407
+ setup(u) {
2408
+ const t = A(!1);
2409
+ return (s, o) => {
2410
+ const r = Xn, n = ee;
2411
+ return d(), v(n, {
2412
+ active: e(t),
2413
+ link: "",
2414
+ "prepend-icon": `svg:${e(yo)}`,
2415
+ title: "Sponsorships"
2416
+ }, {
2417
+ default: i(() => [
2418
+ a(r, {
2419
+ modelValue: e(t),
2420
+ "onUpdate:modelValue": o[0] || (o[0] = (l) => oe(t) ? t.value = l : null)
2421
+ }, null, 8, ["modelValue"])
2422
+ ]),
2423
+ _: 1
2424
+ }, 8, ["active", "prepend-icon"]);
2425
+ };
2426
+ }
2427
+ }), es = G("downloads", () => {
2428
+ const u = K(), t = M([]), s = A(!1);
2429
+ async function o() {
2430
+ if (t.value.length > 0)
2431
+ return t.value;
2432
+ s.value = !0;
2433
+ try {
2434
+ const r = await u.get("/one/sendowl/downloads");
2435
+ t.value = r.downloads;
2436
+ } catch {
2437
+ } finally {
2438
+ s.value = !1;
2439
+ }
2440
+ return t.value;
2441
+ }
2442
+ return {
2443
+ all: t,
2444
+ isLoading: s,
2445
+ index: o
2446
+ };
2447
+ }), ts = /* @__PURE__ */ b({
2448
+ __name: "VoDownloadsTable",
2449
+ setup(u) {
2450
+ const t = De(), s = es(), o = [
2451
+ {
2452
+ title: "Order ID",
2453
+ value: "order_name"
2454
+ },
2455
+ {
2456
+ title: "Items",
2457
+ value: "download_items"
2458
+ },
2459
+ {
2460
+ title: "Order date",
2461
+ value: "created_at",
2462
+ align: "end"
2463
+ },
2464
+ {
2465
+ title: "Download",
2466
+ align: "end",
2467
+ value: "download_url"
2468
+ }
2469
+ ];
2470
+ return Me(async () => {
2471
+ await s.index();
2472
+ }), (r, n) => {
2473
+ const l = ve;
2474
+ return d(), v(Te, null, {
2475
+ default: i(() => [
2476
+ a(_e, { cols: "12" }, {
2477
+ default: i(() => [
2478
+ a(l, {
2479
+ text: "View and download your store purchases.",
2480
+ title: "Download history"
2481
+ }),
2482
+ a(E, {
2483
+ border: "",
2484
+ flat: "",
2485
+ rounded: "lg"
2486
+ }, {
2487
+ default: i(() => [
2488
+ a(Vt, {
2489
+ "fixed-header": "",
2490
+ headers: o,
2491
+ height: "640",
2492
+ items: e(s).all,
2493
+ loading: e(s).isLoading
2494
+ }, {
2495
+ "item.order_name": i(({ item: c }) => [
2496
+ O(" #" + S(c.order_name), 1)
2497
+ ]),
2498
+ "item.created_at": i(({ item: c }) => [
2499
+ O(S(e(t).format(c.created_at, "shortDate")), 1)
2500
+ ]),
2501
+ "item.download_items": i(({ item: c }) => [
2502
+ (d(!0), L(N, null, re(c.download_items, (p, m) => (d(), L("div", {
2503
+ key: m,
2504
+ class: "text-truncate"
2505
+ }, S(p.name), 1))), 128))
2506
+ ]),
2507
+ "item.download_url": i(({ item: c }) => [
2508
+ a(z, {
2509
+ color: "medium-emphasis",
2510
+ href: c.download_url,
2511
+ icon: `svg:${e(bo)}`,
2512
+ size: "small",
2513
+ target: "_blank",
2514
+ variant: "text"
2515
+ }, null, 8, ["href", "icon"])
2516
+ ]),
2517
+ _: 1
2518
+ }, 8, ["items", "loading"])
2519
+ ]),
2520
+ _: 1
2521
+ })
2522
+ ]),
2523
+ _: 1
2524
+ })
2525
+ ]),
2526
+ _: 1
2527
+ });
2528
+ };
2529
+ }
2530
+ }), os = { class: "px-3" }, ns = /* @__PURE__ */ b({
2531
+ __name: "VoDownloadsNavItem",
2532
+ setup(u) {
2533
+ const t = A(!1);
2534
+ return (s, o) => {
2535
+ const r = ts, n = xe, l = ee;
2536
+ return d(), v(l, {
2537
+ active: e(t),
2538
+ link: "",
2539
+ "prepend-icon": `svg:${e(ut)}`,
2540
+ title: "Downloads"
2541
+ }, {
2542
+ default: i(() => [
2543
+ a(n, {
2544
+ modelValue: e(t),
2545
+ "onUpdate:modelValue": o[0] || (o[0] = (c) => oe(t) ? t.value = c : null),
2546
+ "prepend-icon": `svg:${e(ut)}`,
2547
+ title: "Downloads"
2548
+ }, {
2549
+ default: i(() => [
2550
+ a(ke, null, {
2551
+ default: i(() => [
2552
+ a($e, { scrollable: "" }, {
2553
+ default: i(() => [
2554
+ h("div", os, [
2555
+ a(ae, null, {
2556
+ default: i(() => [
2557
+ a(r)
2558
+ ]),
2559
+ _: 1
2560
+ })
2561
+ ])
2562
+ ]),
2563
+ _: 1
2564
+ })
2565
+ ]),
2566
+ _: 1
2567
+ })
2568
+ ]),
2569
+ _: 1
2570
+ }, 8, ["modelValue", "prepend-icon"])
2571
+ ]),
2572
+ _: 1
2573
+ }, 8, ["active", "prepend-icon"]);
2574
+ };
2575
+ }
2576
+ }), ss = { class: "px-3" }, as = { class: "d-flex align-center" }, is = { class: "d-flex align-center" }, rs = /* @__PURE__ */ b({
2577
+ __name: "VoTeamDialog",
2578
+ props: {
2579
+ modelValue: { type: Boolean },
2580
+ modelModifiers: {}
2581
+ },
2582
+ emits: ["update:modelValue"],
2583
+ setup(u) {
2584
+ const t = F(), s = we(), o = K(), r = V(() => s.team), n = fe(), l = A(!1), c = A(!1), p = [
2585
+ {
2586
+ title: "Name",
2587
+ key: "name"
2588
+ },
2589
+ {
2590
+ title: "Actions",
2591
+ key: "actions",
2592
+ align: "end",
2593
+ sortable: !1
2594
+ }
2595
+ ], m = V(() => {
2596
+ var _;
2597
+ return `https://one.vuetifyjs.com/?invite=${(_ = s.team) == null ? void 0 : _.inviteCode}`;
2598
+ }), g = ce(u, "modelValue");
2599
+ function f() {
2600
+ l.value = !0, navigator.clipboard.writeText(m.value), setTimeout(() => {
2601
+ l.value = !1;
2602
+ }, 2e3);
2603
+ }
2604
+ async function C() {
2605
+ c.value = !0;
2606
+ const _ = await o.post("/one/team/regen");
2607
+ s.team = _.team;
2608
+ }
2609
+ return R(n, async () => {
2610
+ !t.sessionId || n.value.one === "subscribe" || n.value.team && (t.isOpen = !0, await he(), g.value = !0);
2611
+ }, { immediate: !0 }), (_, k) => {
2612
+ const y = ve, $ = xe;
2613
+ return d(), v($, {
2614
+ modelValue: g.value,
2615
+ "onUpdate:modelValue": k[1] || (k[1] = (T) => g.value = T),
2616
+ "prepend-icon": `svg:${e(Vo)}`,
2617
+ title: "Team"
2618
+ }, {
2619
+ default: i(() => [
2620
+ a(ke, null, {
2621
+ default: i(() => [
2622
+ a($e, { scrollable: "" }, {
2623
+ default: i(() => [
2624
+ h("div", ss, [
2625
+ a(ae, null, {
2626
+ default: i(() => [
2627
+ a(y, {
2628
+ text: "Share access to Vuetify One with up to 25 team members.",
2629
+ title: "Manage your team"
2630
+ }),
2631
+ e(s).isTeamOwner ? (d(), v(E, {
2632
+ key: 0,
2633
+ border: "",
2634
+ class: "mb-4",
2635
+ color: "surface-light",
2636
+ flat: "",
2637
+ "max-width": "1280",
2638
+ rounded: "lg"
2639
+ }, {
2640
+ default: i(() => {
2641
+ var T, U;
2642
+ return [
2643
+ a(Ge, {
2644
+ class: "bg-surface",
2645
+ subtitle: `Team - ${(U = (T = e(r)) == null ? void 0 : T.members) == null ? void 0 : U.length} member(s)`,
2646
+ title: "Members"
2647
+ }, Z({ _: 2 }, [
2648
+ e(s).isTeamOwner ? {
2649
+ name: "append",
2650
+ fn: i(() => [
2651
+ a(z, {
2652
+ border: "",
2653
+ class: "text-none",
2654
+ color: "primary",
2655
+ "prepend-icon": `svg:${e(ko)}`,
2656
+ rounded: "lg",
2657
+ variant: "flat"
2658
+ }, {
2659
+ default: i(() => [
2660
+ k[2] || (k[2] = O(" Add member ")),
2661
+ a($t, {
2662
+ activator: "parent",
2663
+ "close-on-content-click": !1,
2664
+ location: "bottom end",
2665
+ "max-width": "450",
2666
+ offset: "8",
2667
+ width: "100%"
2668
+ }, {
2669
+ default: i(() => [
2670
+ a(E, { color: "surface-light" }, {
2671
+ default: i(() => [
2672
+ a(Ge, {
2673
+ class: "bg-surface",
2674
+ "prepend-icon": `svg:${e($o)}`,
2675
+ subtitle: "Provide this link to invite your team members",
2676
+ title: "Member invite link"
2677
+ }, {
2678
+ append: i(() => [
2679
+ a(z, {
2680
+ class: "text-none",
2681
+ color: e(c) ? void 0 : "error",
2682
+ disabled: e(c),
2683
+ flat: "",
2684
+ slim: "",
2685
+ text: "Reset",
2686
+ onClick: C
2687
+ }, null, 8, ["color", "disabled"])
2688
+ ]),
2689
+ _: 1
2690
+ }, 8, ["prepend-icon"]),
2691
+ a(ae, { class: "pt-4" }, {
2692
+ default: i(() => [
2693
+ a(Xo, {
2694
+ flat: "",
2695
+ "hide-details": "",
2696
+ label: "Invite link",
2697
+ "model-value": e(m),
2698
+ readonly: "",
2699
+ variant: "solo"
2700
+ }, {
2701
+ "append-inner": i(() => [
2702
+ ye(a(D, {
2703
+ icon: `svg:${e(l) ? e(Ae) : e(wo)}`,
2704
+ size: "small",
2705
+ onClick: f
2706
+ }, null, 8, ["icon"]), [
2707
+ [Ko, "Copy Team link"]
2708
+ ])
2709
+ ]),
2710
+ _: 1
2711
+ }, 8, ["model-value"])
2712
+ ]),
2713
+ _: 1
2714
+ })
2715
+ ]),
2716
+ _: 1
2717
+ })
2718
+ ]),
2719
+ _: 1
2720
+ })
2721
+ ]),
2722
+ _: 1
2723
+ }, 8, ["prepend-icon"])
2724
+ ]),
2725
+ key: "0"
2726
+ } : void 0
2727
+ ]), 1032, ["subtitle"]),
2728
+ a(J),
2729
+ a(ae, { class: "pa-2" }, {
2730
+ default: i(() => [
2731
+ a(je, {
2732
+ border: "",
2733
+ rounded: "lg"
2734
+ }, {
2735
+ default: i(() => {
2736
+ var P, Q, W;
2737
+ return [
2738
+ a(Qo, {
2739
+ headers: p,
2740
+ "hide-default-footer": ((Q = (P = e(r)) == null ? void 0 : P.members) == null ? void 0 : Q.length) < 10,
2741
+ items: (W = e(r)) == null ? void 0 : W.members
2742
+ }, {
2743
+ "item.name": i(({ item: X }) => [
2744
+ h("div", as, [
2745
+ a(ne, {
2746
+ image: X.picture,
2747
+ size: "x-small",
2748
+ start: ""
2749
+ }, null, 8, ["image"]),
2750
+ h("span", null, S(X.name), 1)
2751
+ ])
2752
+ ]),
2753
+ "item.actions": i(({ item: X }) => {
2754
+ var ue, pe;
2755
+ return [
2756
+ ((pe = (ue = e(r)) == null ? void 0 : ue.owner) == null ? void 0 : pe.id) === X.id ? (d(), v(z, {
2757
+ key: 0,
2758
+ class: "me-n3",
2759
+ color: "primary",
2760
+ density: "comfortable",
2761
+ "prepend-icon": `svg:${e(ct)}`,
2762
+ readonly: "",
2763
+ slim: "",
2764
+ text: "Team owner",
2765
+ variant: "tonal"
2766
+ }, null, 8, ["prepend-icon"])) : (d(), v(z, {
2767
+ key: 1,
2768
+ class: "me-n3",
2769
+ color: "medium-emphasis",
2770
+ density: "comfortable",
2771
+ "prepend-icon": `svg:${e(xo)}`,
2772
+ slim: "",
2773
+ text: "Revoke",
2774
+ variant: "text",
2775
+ onClick: (ge) => e(s).removeFromTeam(X.id)
2776
+ }, null, 8, ["prepend-icon", "onClick"]))
2777
+ ];
2778
+ }),
2779
+ _: 1
2780
+ }, 8, ["hide-default-footer", "items"])
2781
+ ];
2782
+ }),
2783
+ _: 1
2784
+ })
2785
+ ]),
2786
+ _: 1
2787
+ })
2788
+ ];
2789
+ }),
2790
+ _: 1
2791
+ })) : (d(), v(E, {
2792
+ key: 1,
2793
+ border: "",
2794
+ color: "surface-light",
2795
+ flat: "",
2796
+ "max-width": "1280",
2797
+ rounded: "lg"
2798
+ }, {
2799
+ default: i(() => [
2800
+ a(Ge, {
2801
+ "prepend-icon": `svg:${e(ct)}`,
2802
+ subtitle: "You are currently a member of a team with an All-access Pass.",
2803
+ title: "My Team access"
2804
+ }, {
2805
+ title: i(() => [
2806
+ h("div", is, [
2807
+ k[3] || (k[3] = O(" My Team Access ")),
2808
+ a(ie, {
2809
+ border: "thin opacity-25 success",
2810
+ class: "ms-2",
2811
+ color: "success",
2812
+ label: "",
2813
+ size: "x-small",
2814
+ text: "Active"
2815
+ })
2816
+ ])
2817
+ ]),
2818
+ append: i(() => [
2819
+ a(z, {
2820
+ "prepend-icon": `svg:${e(Co)}`,
2821
+ rounded: "lg",
2822
+ text: "Leave team",
2823
+ width: "145",
2824
+ onClick: k[0] || (k[0] = (T) => e(s).leaveTeam())
2825
+ }, null, 8, ["prepend-icon"])
2826
+ ]),
2827
+ _: 1
2828
+ }, 8, ["prepend-icon"])
2829
+ ]),
2830
+ _: 1
2831
+ }))
2832
+ ]),
2833
+ _: 1
2834
+ })
2835
+ ])
2836
+ ]),
2837
+ _: 1
2838
+ })
2839
+ ]),
2840
+ _: 1
2841
+ })
2842
+ ]),
2843
+ _: 1
2844
+ }, 8, ["modelValue", "prepend-icon"]);
2845
+ };
2846
+ }
2847
+ }), ls = /* @__PURE__ */ b({
2848
+ __name: "VoTeamListItem",
2849
+ setup(u) {
2850
+ const t = A(!1);
2851
+ return (s, o) => {
2852
+ const r = rs, n = ee;
2853
+ return d(), v(n, {
2854
+ active: e(t),
2855
+ link: "",
2856
+ "prepend-icon": `svg:${e(So)}`,
2857
+ title: "My Team"
2858
+ }, {
2859
+ default: i(() => [
2860
+ a(r, {
2861
+ modelValue: e(t),
2862
+ "onUpdate:modelValue": o[0] || (o[0] = (l) => oe(t) ? t.value = l : null)
2863
+ }, null, 8, ["modelValue"])
2864
+ ]),
2865
+ _: 1
2866
+ }, 8, ["active", "prepend-icon"]);
2867
+ };
2868
+ }
2869
+ }), us = /* @__PURE__ */ b({
2870
+ __name: "VoStudioNavItem",
2871
+ setup(u) {
2872
+ const t = A(!1);
2873
+ return (s, o) => {
2874
+ const r = ee;
2875
+ return d(), v(r, {
2876
+ active: e(t),
2877
+ href: "https://studio.vuetifyjs.com/",
2878
+ link: "",
2879
+ "prepend-icon": "$vuetify-studio",
2880
+ target: "_blank",
2881
+ title: "Vuetify Studio"
2882
+ }, {
2883
+ append: i(() => [
2884
+ a(ie, {
2885
+ color: "amber-darken-1",
2886
+ label: "",
2887
+ size: "x-small",
2888
+ variant: "outlined"
2889
+ }, {
2890
+ default: i(() => o[0] || (o[0] = [
2891
+ O("Closed Alpha")
2892
+ ])),
2893
+ _: 1
2894
+ })
2895
+ ]),
2896
+ _: 1
2897
+ }, 8, ["active"]);
2898
+ };
2899
+ }
2900
+ }), it = G("site", () => {
2901
+ const u = M([]), t = M();
2902
+ return {
2903
+ id: u,
2904
+ url: t
2905
+ };
2906
+ }), cs = {
2907
+ key: 0,
2908
+ class: "pt-16"
2909
+ }, ds = {
2910
+ key: 1,
2911
+ class: "pa-5"
2912
+ }, ps = { class: "text-subtitle-1 font-weight-bold" }, ms = { class: "text-caption font-weight-bold text-medium-emphasis" }, fs = { class: "text-disabled text-caption mt-2 mb-3" }, vs = /* @__PURE__ */ b({
2913
+ __name: "VoNotificationsBannerList",
2914
+ props: {
2915
+ items: {}
2916
+ },
2917
+ setup(u) {
2918
+ const t = De(), s = me(), o = j(), r = it();
2919
+ function n(c) {
2920
+ return o.notifications.last.banner.includes(c);
2921
+ }
2922
+ function l(c) {
2923
+ n(c.slug) ? o.notifications.last.banner = o.notifications.last.banner.filter((p) => p !== c.slug) : o.notifications.last.banner.push(c.slug);
2924
+ }
2925
+ return (c, p) => (d(), v(de, {
2926
+ class: "py-0",
2927
+ height: "100%",
2928
+ lines: "three"
2929
+ }, {
2930
+ default: i(() => [
2931
+ c.items.length === 0 ? (d(), L("div", cs, [
2932
+ a(st, {
2933
+ icon: "$vuetify",
2934
+ size: "256"
2935
+ }, {
2936
+ media: i(() => [
2937
+ a(D, { color: "medium-emphasis" })
2938
+ ]),
2939
+ title: i(() => p[0] || (p[0] = [
2940
+ h("div", { class: "text-medium-emphasis" }, " All caught up ", -1)
2941
+ ])),
2942
+ _: 1
2943
+ })
2944
+ ])) : (d(), L("div", ds, [
2945
+ (d(!0), L(N, null, re(c.items, (m) => {
2946
+ var g;
2947
+ return d(), L("div", {
2948
+ key: m.slug,
2949
+ class: "mb-4"
2950
+ }, [
2951
+ a(E, {
2952
+ color: m.metadata.color,
2953
+ flat: "",
2954
+ image: (g = m.metadata.images.bg) == null ? void 0 : g.url,
2955
+ rounded: "b-0",
2956
+ title: m.title
2957
+ }, {
2958
+ prepend: i(() => {
2959
+ var f;
2960
+ return [
2961
+ a(ne, {
2962
+ image: (f = m.metadata.images.logo) == null ? void 0 : f.url
2963
+ }, null, 8, ["image"])
2964
+ ];
2965
+ }),
2966
+ image: i(() => [
2967
+ a(le, { position: "right" })
2968
+ ]),
2969
+ _: 2
2970
+ }, 1032, ["color", "image", "title"]),
2971
+ a(He, null, {
2972
+ default: i(({ props: f, isHovering: C }) => [
2973
+ a(je, Y({ ref_for: !0 }, f, {
2974
+ border: "",
2975
+ class: "px-8 pt-2 pb-4 position-relative",
2976
+ rounded: "b"
2977
+ }), {
2978
+ default: i(() => [
2979
+ m.metadata.site.some((_) => e(r).id.includes(_)) ? (d(), v(se, {
2980
+ key: 0,
2981
+ location: "bottom",
2982
+ text: n(m.slug) ? "Mark as unread" : "Mark as read"
2983
+ }, {
2984
+ activator: i(({ props: _ }) => [
2985
+ a(Pe, { "hide-on-leave": "" }, {
2986
+ default: i(() => [
2987
+ ye(a(z, Y({ ref_for: !0 }, _, {
2988
+ class: "ms-auto float-right",
2989
+ icon: `svg:${n(m.slug) ? e(ht) : e(_t)}`,
2990
+ "mdi-email-variant": "",
2991
+ size: "small",
2992
+ variant: "text",
2993
+ onClick: (k) => l(m)
2994
+ }), null, 16, ["icon", "onClick"]), [
2995
+ [Fe, C || e(s).mobile.value]
2996
+ ])
2997
+ ]),
2998
+ _: 2
2999
+ }, 1024)
3000
+ ]),
3001
+ _: 2
3002
+ }, 1032, ["text"])) : x("", !0),
3003
+ h("div", ps, S(m.metadata.text), 1),
3004
+ h("div", ms, S(e(t).format(m.created_at, "fullDateWithWeekday")), 1),
3005
+ h("div", fs, S(m.metadata.subtext), 1),
3006
+ a(ie, Y({ ref_for: !0 }, {
3007
+ href: m.metadata.link.startsWith("http") ? m.metadata.link : void 0,
3008
+ target: m.metadata.link.startsWith("http") ? "_blank" : void 0,
3009
+ to: m.metadata.link.startsWith("http") ? void 0 : m.metadata.link
3010
+ }, {
3011
+ "append-icon": `svg:${e(ze)}`,
3012
+ border: "",
3013
+ label: "",
3014
+ size: "small",
3015
+ text: m.metadata.link_text,
3016
+ variant: "text"
3017
+ }), {
3018
+ append: i(() => [
3019
+ a(D, { size: "12" })
3020
+ ]),
3021
+ _: 2
3022
+ }, 1040, ["append-icon", "text"])
3023
+ ]),
3024
+ _: 2
3025
+ }, 1040)
3026
+ ]),
3027
+ _: 2
3028
+ }, 1024)
3029
+ ]);
3030
+ }), 128))
3031
+ ]))
3032
+ ]),
3033
+ _: 1
3034
+ }));
3035
+ }
3036
+ }), gs = { class: "ps-3 text-subtitle-2 pe-2" }, _s = { class: "text-truncate" }, hs = { class: "text-caption font-weight-bold text-medium-emphasis" }, ys = { class: "text-disabled text-caption my-2" }, bs = /* @__PURE__ */ b({
3037
+ __name: "VoNotificationsListItem",
3038
+ props: {
3039
+ demo: { type: Boolean },
3040
+ notification: {}
3041
+ },
3042
+ setup(u) {
3043
+ const t = u, s = j(), o = De(), r = me(), n = V(() => {
3044
+ const p = t.notification.metadata ?? { action: "" };
3045
+ return {
3046
+ href: p.action.startsWith("http") ? p.action : void 0,
3047
+ target: p.action.startsWith("http") ? "_blank" : void 0,
3048
+ to: p.action.startsWith("http") ? void 0 : p.action,
3049
+ ...t.notification.metadata.attributes,
3050
+ onClick() {
3051
+ t.demo || s.notifications.read.includes(t.notification.slug) || s.notifications.read.push(t.notification.slug);
3052
+ }
3053
+ };
3054
+ });
3055
+ function l(p) {
3056
+ return s.notifications.read.includes(p);
3057
+ }
3058
+ function c(p) {
3059
+ t.demo || (l(p.slug) ? s.notifications.read = s.notifications.read.filter((m) => m !== p.slug) : s.notifications.read.push(p.slug));
3060
+ }
3061
+ return (p, m) => {
3062
+ const g = ee;
3063
+ return d(), v(He, null, {
3064
+ default: i(({ isHovering: f, props: C }) => [
3065
+ a(g, Y(C, { class: "py-4 mb-0" }), {
3066
+ prepend: i(() => [
3067
+ h("div", gs, S(p.notification.metadata.emoji), 1)
3068
+ ]),
3069
+ append: i(() => [
3070
+ a(tn, {
3071
+ class: "mt-n3",
3072
+ width: "56"
3073
+ }, {
3074
+ default: i(() => [
3075
+ a(se, {
3076
+ location: "bottom",
3077
+ text: l(p.notification.slug) ? "Mark as unread" : "Mark as read"
3078
+ }, {
3079
+ activator: i(({ props: _ }) => [
3080
+ a(Pe, { "hide-on-leave": "" }, {
3081
+ default: i(() => [
3082
+ ye(a(z, Y(_, {
3083
+ class: "ms-auto",
3084
+ icon: `svg:${l(p.notification.slug) ? e(ht) : e(_t)}`,
3085
+ "mdi-email-variant": "",
3086
+ size: "small",
3087
+ variant: "text",
3088
+ onClick: m[0] || (m[0] = (k) => c(p.notification))
3089
+ }), null, 16, ["icon"]), [
3090
+ [Fe, f || e(r).mobile.value]
3091
+ ])
3092
+ ]),
3093
+ _: 2
3094
+ }, 1024)
3095
+ ]),
3096
+ _: 2
3097
+ }, 1032, ["text"])
3098
+ ]),
3099
+ _: 2
3100
+ }, 1024)
3101
+ ]),
3102
+ default: i(() => [
3103
+ a(yt, { class: "text-wrap text-h6 mb-1" }, {
3104
+ default: i(() => [
3105
+ h("div", _s, S(p.notification.title), 1)
3106
+ ]),
3107
+ _: 1
3108
+ }),
3109
+ h("div", hs, S(e(o).format(p.notification.created_at, "fullDateWithWeekday")), 1),
3110
+ h("div", ys, S(p.notification.metadata.text), 1),
3111
+ a(ie, Y({
3112
+ "append-icon": `svg:${e(ze)}`
3113
+ }, e(n), {
3114
+ border: "",
3115
+ label: "",
3116
+ size: "small",
3117
+ text: p.notification.metadata.action_text,
3118
+ variant: "text"
3119
+ }), {
3120
+ append: i(() => [
3121
+ a(D, { size: "12" })
3122
+ ]),
3123
+ _: 1
3124
+ }, 16, ["append-icon", "text"])
3125
+ ]),
3126
+ _: 2
3127
+ }, 1040)
3128
+ ]),
3129
+ _: 1
3130
+ });
3131
+ };
3132
+ }
3133
+ }), Vs = {
3134
+ key: 0,
3135
+ class: "pt-16"
3136
+ }, ks = /* @__PURE__ */ b({
3137
+ __name: "VoNotificationsList",
3138
+ props: {
3139
+ items: {}
3140
+ },
3141
+ setup(u) {
3142
+ return (t, s) => {
3143
+ const o = bs;
3144
+ return d(), v(de, {
3145
+ class: "py-0",
3146
+ height: "100%",
3147
+ lines: "three"
3148
+ }, {
3149
+ default: i(() => [
3150
+ t.items.length === 0 ? (d(), L("div", Vs, [
3151
+ a(st, {
3152
+ icon: "$vuetify",
3153
+ size: "256"
3154
+ }, {
3155
+ media: i(() => [
3156
+ a(D, { color: "medium-emphasis" })
3157
+ ]),
3158
+ title: i(() => s[0] || (s[0] = [
3159
+ h("div", { class: "text-medium-emphasis" }, " All caught up ", -1)
3160
+ ])),
3161
+ _: 1
3162
+ })
3163
+ ])) : (d(!0), L(N, { key: 1 }, re(t.items, (r, n) => (d(), L(N, {
3164
+ key: r.slug
3165
+ }, [
3166
+ n !== 0 ? (d(), v(J, { key: 0 })) : x("", !0),
3167
+ a(o, { notification: r }, null, 8, ["notification"])
3168
+ ], 64))), 128))
3169
+ ]),
3170
+ _: 1
3171
+ });
3172
+ };
3173
+ }
3174
+ }), We = G("banners", () => {
3175
+ const u = K(), t = it(), s = j(), o = M([]), r = A(!1), n = V(() => {
3176
+ if (l.value)
3177
+ return l.value;
3178
+ if (s.notifications.banners)
3179
+ return o.value.find(({
3180
+ slug: p,
3181
+ metadata: {
3182
+ site: m,
3183
+ active: g
3184
+ }
3185
+ }) => !g || s.notifications.last.banner.includes(p) ? !1 : m.includes("dev") && !1 || m.includes("*") ? !0 : m.some((f) => t.id.includes(f)));
3186
+ }), l = V(() => o.value.find(({
3187
+ metadata: {
3188
+ site: p,
3189
+ active: m
3190
+ }
3191
+ }) => m ? p.includes("server") : !1));
3192
+ async function c() {
3193
+ try {
3194
+ r.value = !0;
3195
+ const p = await u.get("/one/banners");
3196
+ o.value = p.banners;
3197
+ } catch {
3198
+ } finally {
3199
+ r.value = !1;
3200
+ }
3201
+ return o.value;
3202
+ }
3203
+ return {
3204
+ all: o,
3205
+ isLoading: r,
3206
+ server: l,
3207
+ banner: n,
3208
+ index: c
3209
+ };
3210
+ }), $s = { class: "text-caption" }, ws = { class: "text-caption" }, xs = /* @__PURE__ */ b({
3211
+ __name: "VoNotificationsDialog",
3212
+ props: {
3213
+ modelValue: { type: Boolean },
3214
+ modelModifiers: {}
3215
+ },
3216
+ emits: ["update:modelValue"],
3217
+ setup(u) {
3218
+ const t = me(), s = fe(), o = We(), r = Ee(), n = F(), l = j(), c = A(["read"]), p = ce(u, "modelValue");
3219
+ return R(s, async () => {
3220
+ if (s.value.one !== "notifications") {
3221
+ p.value && (p.value = !1);
3222
+ return;
3223
+ }
3224
+ n.isOpen = !0, await he(), p.value = !0;
3225
+ }, { immediate: !0 }), (m, g) => {
3226
+ const f = ee, C = ks, _ = vs, k = xe;
3227
+ return d(), v(k, {
3228
+ modelValue: p.value,
3229
+ "onUpdate:modelValue": g[2] || (g[2] = (y) => p.value = y),
3230
+ "prepend-icon": `svg:${e(Lo)}`,
3231
+ title: "Notifications"
3232
+ }, {
3233
+ default: i(() => [
3234
+ a(ke, null, {
3235
+ default: i(() => [
3236
+ a(on, {
3237
+ location: e(t).mobile.value ? "top" : "start",
3238
+ permanent: "",
3239
+ width: e(t).mobile.value ? 128 : 168
3240
+ }, {
3241
+ default: i(() => [
3242
+ a(de, {
3243
+ selected: e(c),
3244
+ "onUpdate:selected": g[0] || (g[0] = (y) => oe(c) ? c.value = y : null),
3245
+ class: "px-4 pt-4",
3246
+ density: "compact",
3247
+ mandatory: "",
3248
+ nav: ""
3249
+ }, {
3250
+ default: i(() => [
3251
+ a(f, {
3252
+ "prepend-icon": `svg:${e(Io)}`,
3253
+ title: "Unread",
3254
+ value: "read"
3255
+ }, Z({ _: 2 }, [
3256
+ e(r).unread.length > 0 ? {
3257
+ name: "append",
3258
+ fn: i(() => [
3259
+ h("span", $s, S(e(r).unread.length), 1)
3260
+ ]),
3261
+ key: "0"
3262
+ } : void 0
3263
+ ]), 1032, ["prepend-icon"]),
3264
+ a(f, {
3265
+ "prepend-icon": `svg:${e(Ao)}`,
3266
+ title: "Read",
3267
+ value: "unread"
3268
+ }, Z({ _: 2 }, [
3269
+ e(r).read.length > 0 ? {
3270
+ name: "append",
3271
+ fn: i(() => [
3272
+ h("span", ws, S(e(r).read.length), 1)
3273
+ ]),
3274
+ key: "0"
3275
+ } : void 0
3276
+ ]), 1032, ["prepend-icon"]),
3277
+ e(o).all.length > 0 && e(l).notifications.banners ? (d(), v(f, {
3278
+ key: 0,
3279
+ "prepend-icon": `svg:${e(Do)}`,
3280
+ title: "Banners",
3281
+ value: "banners"
3282
+ }, {
3283
+ append: i(() => [
3284
+ a(ot, {
3285
+ dot: "",
3286
+ "offset-y": "-3"
3287
+ })
3288
+ ]),
3289
+ _: 1
3290
+ }, 8, ["prepend-icon"])) : x("", !0)
3291
+ ]),
3292
+ _: 1
3293
+ }, 8, ["selected"])
3294
+ ]),
3295
+ _: 1
3296
+ }, 8, ["location", "width"]),
3297
+ a($e, { scrollable: "" }, {
3298
+ default: i(() => [
3299
+ a(kt, {
3300
+ modelValue: e(c),
3301
+ "onUpdate:modelValue": g[1] || (g[1] = (y) => oe(c) ? c.value = y : null)
3302
+ }, {
3303
+ default: i(() => [
3304
+ a(Le, { value: "read" }, {
3305
+ default: i(() => [
3306
+ a(C, {
3307
+ items: e(r).unread
3308
+ }, null, 8, ["items"])
3309
+ ]),
3310
+ _: 1
3311
+ }),
3312
+ a(Le, { value: "unread" }, {
3313
+ default: i(() => [
3314
+ a(C, {
3315
+ items: e(r).read
3316
+ }, null, 8, ["items"])
3317
+ ]),
3318
+ _: 1
3319
+ }),
3320
+ a(Le, { value: "banners" }, {
3321
+ default: i(() => [
3322
+ a(_, {
3323
+ items: e(o).all
3324
+ }, null, 8, ["items"])
3325
+ ]),
3326
+ _: 1
3327
+ })
3328
+ ]),
3329
+ _: 1
3330
+ }, 8, ["modelValue"])
3331
+ ]),
3332
+ _: 1
3333
+ })
3334
+ ]),
3335
+ _: 1
3336
+ })
3337
+ ]),
3338
+ _: 1
3339
+ }, 8, ["modelValue", "prepend-icon"]);
3340
+ };
3341
+ }
3342
+ }), Cs = /* @__PURE__ */ b({
3343
+ __name: "VoNotificationsBadge",
3344
+ setup(u) {
3345
+ const t = Ee(), s = j();
3346
+ return (o, r) => (d(), v(ot, {
3347
+ color: "error",
3348
+ content: e(t).unread.length,
3349
+ "model-value": e(s).notifications.show && e(t).unread.length > 0
3350
+ }, {
3351
+ default: i(() => [
3352
+ B(o.$slots, "default")
3353
+ ]),
3354
+ _: 3
3355
+ }, 8, ["content", "model-value"]));
3356
+ }
3357
+ }), Ss = /* @__PURE__ */ b({
3358
+ __name: "VoNotificationsNavItem",
3359
+ setup(u) {
3360
+ const t = We(), s = j(), o = Ee(), r = A(!1);
3361
+ return Me(async () => {
3362
+ o.index(), t.index();
3363
+ }), (n, l) => {
3364
+ const c = Cs, p = xs, m = ee;
3365
+ return e(s).notifications.show ? (d(), v(m, {
3366
+ key: 0,
3367
+ active: e(r),
3368
+ link: "",
3369
+ "prepend-icon": `svg:${e(To)}`,
3370
+ title: "Notifications"
3371
+ }, Z({
3372
+ default: i(() => [
3373
+ a(p, {
3374
+ modelValue: e(r),
3375
+ "onUpdate:modelValue": l[0] || (l[0] = (g) => oe(r) ? r.value = g : null)
3376
+ }, null, 8, ["modelValue"])
3377
+ ]),
3378
+ _: 2
3379
+ }, [
3380
+ e(o).unread.length > 0 ? {
3381
+ name: "prepend",
3382
+ fn: i(() => [
3383
+ a(c, null, {
3384
+ default: i(() => [
3385
+ a(D)
3386
+ ]),
3387
+ _: 1
3388
+ })
3389
+ ]),
3390
+ key: "0"
3391
+ } : void 0
3392
+ ]), 1032, ["active", "prepend-icon"])) : x("", !0);
3393
+ };
3394
+ }
3395
+ }), Ls = /* @__PURE__ */ b({
3396
+ __name: "VoDashboardNavItem",
3397
+ setup(u) {
3398
+ const t = F();
3399
+ function s() {
3400
+ setTimeout(() => {
3401
+ t.isOpen = !1;
3402
+ }, 100);
3403
+ }
3404
+ return (o, r) => {
3405
+ const n = ee;
3406
+ return d(), v(n, {
3407
+ "prepend-icon": `svg:${e(Uo)}`,
3408
+ title: "Dashboard",
3409
+ to: "/user/dashboard",
3410
+ onClick: s
3411
+ }, null, 8, ["prepend-icon"]);
3412
+ };
3413
+ }
3414
+ }), Is = /* @__PURE__ */ b({
3415
+ __name: "VoUserList",
3416
+ setup(u) {
3417
+ const t = q(), s = F(), o = we();
3418
+ return (r, n) => {
3419
+ const l = Ls, c = Ss, p = us, m = ls, g = ns, f = Kn, C = Hn, _ = wn, k = gn;
3420
+ return d(), v(de, {
3421
+ density: "compact",
3422
+ nav: "",
3423
+ slim: ""
3424
+ }, {
3425
+ default: i(() => [
3426
+ e(t).user ? (d(), v(l, { key: 0 })) : x("", !0),
3427
+ a(c),
3428
+ a(p),
3429
+ e(o).hasTeamAccess ? (d(), v(m, { key: 1 })) : x("", !0),
3430
+ e(s).shopify ? (d(), v(g, { key: 2 })) : x("", !0),
3431
+ a(f),
3432
+ e(t).user ? (d(), v(C, { key: 3 })) : x("", !0),
3433
+ a(_),
3434
+ e(t).user ? (d(), v(k, { key: 4 })) : x("", !0)
3435
+ ]),
3436
+ _: 1
3437
+ });
3438
+ };
3439
+ }
3440
+ }), Ut = /* @__PURE__ */ b({
3441
+ __name: "VoIconIssues",
3442
+ setup(u) {
3443
+ const t = [
3444
+ ["M21.57 19.41L18.36 16.41C19.7242 14.5916 20.3549 12.3267 20.127 10.065C19.8991 7.80316 18.8293 5.70969 17.1298 4.19992C15.4303 2.69016 13.2254 1.87444 10.9525 1.91463C8.67959 1.95481 6.50486 2.84796 4.8598 4.41685C3.21475 5.98575 2.21959 8.11573 2.07179 10.3842C1.924 12.6526 2.63436 14.8937 4.06193 16.6628C5.4895 18.4319 7.52995 19.5997 9.77841 19.9344C12.0269 20.2692 14.319 19.7465 16.2 18.47L19.5 21.6C19.7743 21.8507 20.1287 21.996 20.5 22.01C20.7053 22.0117 20.9087 21.9698 21.0966 21.8871C21.2845 21.8043 21.4527 21.6826 21.59 21.53C21.729 21.3901 21.8389 21.224 21.9132 21.0413C21.9875 20.8586 22.0248 20.663 22.0229 20.4658C22.0211 20.2686 21.9801 20.0737 21.9023 19.8925C21.8246 19.7113 21.7116 19.5473 21.57 19.41ZM11.1 17.33C9.83508 17.328 8.59909 16.9512 7.54815 16.2472C6.49721 15.5432 5.67846 14.5436 5.1953 13.3746C4.71214 12.2055 4.58624 10.9195 4.8335 9.67898C5.08077 8.43843 5.6901 7.29898 6.58455 6.40453C7.47901 5.51007 8.61846 4.90074 9.85901 4.65347C11.0996 4.40621 12.3856 4.53211 13.5546 5.01527C14.7236 5.49843 15.7233 6.31718 16.4273 7.36812C17.1313 8.41906 17.5081 9.65506 17.51 10.92C17.51 11.7618 17.3442 12.5953 17.0221 13.373C16.7 14.1507 16.2278 14.8573 15.6326 15.4526C15.0374 16.0478 14.3307 16.5199 13.553 16.8421C12.7753 17.1642 11.9418 17.33 11.1 17.33Z", 0.8],
3445
+ "M8.63152 12.7367L8.50057 12.5L6 8H11.263L8.63152 12.7367Z",
3446
+ ["M9.11205 13.6004L11 17L16 8H12.223L9.11205 13.6004Z", 0.6]
3447
+ ];
3448
+ return (s, o) => (d(), v(D, { icon: t }));
3449
+ }
3450
+ }), Ot = /* @__PURE__ */ b({
3451
+ __name: "VoIconBin",
3452
+ setup(u) {
3453
+ return (t, s) => (d(), v(D, { icon: "$vuetify-bin" }));
3454
+ }
3455
+ }), As = { key: 0 }, Ds = { class: "d-flex align-center justify-center pa-1 ga-2" }, Ts = /* @__PURE__ */ b({
3456
+ __name: "VoUserQuickActions",
3457
+ setup(u) {
3458
+ const t = j();
3459
+ return (s, o) => {
3460
+ const r = Ot, n = Ut;
3461
+ return d(), v(Ve, null, {
3462
+ default: i(() => [
3463
+ e(t).quickbar ? (d(), L("div", As, [
3464
+ h("div", Ds, [
3465
+ a(z, {
3466
+ class: "text-caption",
3467
+ color: e(t).colors.one,
3468
+ density: "comfortable",
3469
+ flat: "",
3470
+ href: "https://play.vuetifyjs.com",
3471
+ icon: "$vuetify-play",
3472
+ target: "_blank"
3473
+ }, {
3474
+ default: i(() => [
3475
+ a(D),
3476
+ a(se, {
3477
+ activator: "parent",
3478
+ location: "top",
3479
+ text: "Vuetify Play"
3480
+ })
3481
+ ]),
3482
+ _: 1
3483
+ }, 8, ["color"]),
3484
+ a(z, {
3485
+ class: "text-caption",
3486
+ color: e(t).colors.one,
3487
+ density: "comfortable",
3488
+ flat: "",
3489
+ href: "https://bin.vuetifyjs.com",
3490
+ icon: "",
3491
+ target: "_blank"
3492
+ }, {
3493
+ default: i(() => [
3494
+ a(r),
3495
+ a(se, {
3496
+ activator: "parent",
3497
+ location: "top",
3498
+ text: "Vuetify Bin"
3499
+ })
3500
+ ]),
3501
+ _: 1
3502
+ }, 8, ["color"]),
3503
+ a(z, {
3504
+ class: "text-caption",
3505
+ color: e(t).colors.one,
3506
+ density: "comfortable",
3507
+ flat: "",
3508
+ href: "https://issues.vuetifyjs.com",
3509
+ icon: "",
3510
+ target: "_blank"
3511
+ }, {
3512
+ default: i(() => [
3513
+ a(n),
3514
+ a(se, {
3515
+ activator: "parent",
3516
+ location: "top",
3517
+ text: "Vuetify Issues"
3518
+ })
3519
+ ]),
3520
+ _: 1
3521
+ }, 8, ["color"])
3522
+ ])
3523
+ ])) : x("", !0)
3524
+ ]),
3525
+ _: 1
3526
+ });
3527
+ };
3528
+ }
3529
+ }), Us = { class: "mb-2" }, Os = { key: 0 }, Bs = { class: "d-flex ga-4 flex-wrap justify-center mb-4" }, Ns = { class: "text-h6" }, Ms = /* @__PURE__ */ b({
3530
+ __name: "VoUserAvatar",
3531
+ setup(u) {
3532
+ const t = q(), s = F(), o = j(), r = A(!1), n = V(() => {
3533
+ const p = [
3534
+ "https://cdn.vuetifyjs.com/docs/images/avatars/dark.png",
3535
+ "https://cdn.vuetifyjs.com/docs/images/avatars/blackguard.png",
3536
+ "https://cdn.vuetifyjs.com/docs/images/avatars/grass.png",
3537
+ "https://cdn.vuetifyjs.com/docs/images/avatars/wood.png",
3538
+ "https://cdn.vuetifyjs.com/docs/images/avatars/gold.png",
3539
+ "https://cdn.vuetifyjs.com/docs/images/avatars/planetary.png",
3540
+ "https://cdn.vuetifyjs.com/docs/images/avatars/grass-subscriber.png",
3541
+ "https://cdn.vuetifyjs.com/docs/images/avatars/wood-subscriber.png",
3542
+ "https://cdn.vuetifyjs.com/docs/images/avatars/gold-subscriber.png",
3543
+ "https://cdn.vuetifyjs.com/docs/images/avatars/planetary-subscriber.png",
3544
+ "https://cdn.vuetifyjs.com/docs/images/avatars/battlecruiser.png",
3545
+ "https://cdn.vuetifyjs.com/docs/images/avatars/cosmic-blue.png",
3546
+ "https://cdn.vuetifyjs.com/docs/images/avatars/blackhole.png",
3547
+ "https://cdn.vuetifyjs.com/docs/images/avatars/meteor.png"
3548
+ ];
3549
+ return s.isSubscriber && p.unshift("https://cdn.vuetifyjs.com/docs/images/avatars/one.png"), t.user && p.unshift(t.user.picture), p;
3550
+ });
3551
+ function l(p) {
3552
+ o.avatar = p;
3553
+ }
3554
+ function c() {
3555
+ s.isSubscriber && (r.value = !r.value);
3556
+ }
3557
+ return (p, m) => {
3558
+ var g;
3559
+ return d(), L("div", null, [
3560
+ ye((d(), v(ne, {
3561
+ class: Rt([
3562
+ "border-md border-opacity-100 border-surface-light",
3563
+ {
3564
+ "cursor-pointer": e(s).isSubscriber
3565
+ }
3566
+ ]),
3567
+ color: "surface",
3568
+ size: "72",
3569
+ text: "Foobar",
3570
+ onClick: Xe(c, ["prevent", "stop"])
3571
+ }, {
3572
+ default: i(() => [
3573
+ e(t).user && e(o).avatar ? (d(), v(le, {
3574
+ key: 0,
3575
+ alt: "User avatar",
3576
+ src: e(o).avatar
3577
+ }, null, 8, ["src"])) : (d(), v(D, {
3578
+ key: 1,
3579
+ class: "mt-1",
3580
+ icon: "$vuetify",
3581
+ size: "x-large"
3582
+ }))
3583
+ ]),
3584
+ _: 1
3585
+ }, 8, ["class"])), [
3586
+ [en, e(s).isSubscriber]
3587
+ ]),
3588
+ h("div", Us, [
3589
+ a(Ve, null, {
3590
+ default: i(() => [
3591
+ e(r) ? (d(), L("div", Os, [
3592
+ a(E, {
3593
+ class: "pt-6 pb-1",
3594
+ flat: "",
3595
+ rounded: "0"
3596
+ }, {
3597
+ default: i(() => [
3598
+ h("div", Bs, [
3599
+ (d(!0), L(N, null, re(e(n), (f, C) => (d(), v(z, {
3600
+ key: C,
3601
+ active: e(o).avatar === f,
3602
+ icon: "",
3603
+ variant: "flat",
3604
+ onClick: (_) => l(f)
3605
+ }, {
3606
+ default: i(() => [
3607
+ a(ne, {
3608
+ eager: "",
3609
+ image: f
3610
+ }, null, 8, ["image"])
3611
+ ]),
3612
+ _: 2
3613
+ }, 1032, ["active", "onClick"]))), 128))
3614
+ ])
3615
+ ]),
3616
+ _: 1
3617
+ })
3618
+ ])) : x("", !0)
3619
+ ]),
3620
+ _: 1
3621
+ })
3622
+ ]),
3623
+ h("div", Ns, S(((g = e(t).user) == null ? void 0 : g.name) ?? "Guest"), 1)
3624
+ ]);
3625
+ };
3626
+ }
3627
+ }), Fs = /* @__PURE__ */ b({
3628
+ __name: "VoUserBadges",
3629
+ setup(u) {
3630
+ const t = q(), s = F(), o = V(() => {
3631
+ var r;
3632
+ return s.github || s.discord || s.isSubscriber || ((r = t.user) == null ? void 0 : r.isAdmin);
3633
+ });
3634
+ return (r, n) => e(o) ? (d(), v(je, {
3635
+ key: 0,
3636
+ class: "align-center position-absolute ms-2 d-flex ga-2 pa-2",
3637
+ color: "rgba(0,0,0,.54)",
3638
+ rounded: "lg",
3639
+ style: { left: "0" }
3640
+ }, {
3641
+ default: i(() => {
3642
+ var l;
3643
+ return [
3644
+ (l = e(t).user) != null && l.isAdmin ? (d(), v(se, {
3645
+ key: 0,
3646
+ location: "bottom",
3647
+ text: "Vuetify Administrator"
3648
+ }, {
3649
+ activator: i(({ props: c }) => [
3650
+ a(D, Y({
3651
+ color: "blue",
3652
+ icon: "$vuetify"
3653
+ }, c, { size: "16" }), null, 16)
3654
+ ]),
3655
+ _: 1
3656
+ })) : x("", !0),
3657
+ e(s).isSubscriber ? (d(), v(se, {
3658
+ key: 1,
3659
+ location: "bottom",
3660
+ text: "Vuetify One Subscriber"
3661
+ }, {
3662
+ activator: i(({ props: c }) => [
3663
+ a(D, Y({
3664
+ color: "amber-darken-2",
3665
+ icon: `svg:${e(Oo)}`
3666
+ }, c, { size: "16" }), null, 16, ["icon"])
3667
+ ]),
3668
+ _: 1
3669
+ })) : x("", !0),
3670
+ e(s).github ? (d(), v(se, {
3671
+ key: 2,
3672
+ location: "bottom",
3673
+ text: "GitHub Sponsor"
3674
+ }, {
3675
+ activator: i(({ props: c }) => [
3676
+ a(D, Y({
3677
+ color: "white",
3678
+ icon: "$github"
3679
+ }, c, { size: "16" }), null, 16)
3680
+ ]),
3681
+ _: 1
3682
+ })) : x("", !0),
3683
+ e(s).discord ? (d(), v(se, {
3684
+ key: 3,
3685
+ location: "bottom",
3686
+ text: "Discord Subscriber"
3687
+ }, {
3688
+ activator: i(({ props: c }) => [
3689
+ a(D, Y({
3690
+ color: "white",
3691
+ icon: "$discord"
3692
+ }, c, { size: "16" }), null, 16)
3693
+ ]),
3694
+ _: 1
3695
+ })) : x("", !0)
3696
+ ];
3697
+ }),
3698
+ _: 1
3699
+ })) : x("", !0);
3700
+ }
3701
+ }), zs = { class: "d-flex flex-grow-1 justify-end fill-height align-start" }, js = {
3702
+ key: "reset",
3703
+ class: "align-self-end"
3704
+ }, Ps = /* @__PURE__ */ b({
3705
+ __name: "VoUserColors",
3706
+ setup(u) {
3707
+ const t = q(), s = F(), o = j(), r = A(!1);
3708
+ function n() {
3709
+ o.colors.one = "surface-light";
3710
+ }
3711
+ return (l, c) => {
3712
+ const p = Fs, m = Ue;
3713
+ return d(), L(N, null, [
3714
+ a(le, {
3715
+ color: e(t).user ? e(o).colors.one : "surface-light",
3716
+ "content-class": "d-flex align-start justify-end pa-2",
3717
+ cover: "",
3718
+ flat: "",
3719
+ height: "88",
3720
+ rounded: "0"
3721
+ }, {
3722
+ default: i(() => [
3723
+ h("div", zs, [
3724
+ a(p),
3725
+ a(qo, null, {
3726
+ default: i(() => [
3727
+ ye(h("div", js, [
3728
+ a(m, {
3729
+ class: "ms-2 me-1",
3730
+ color: "inherit",
3731
+ density: "comfortable",
3732
+ disabled: e(o).colors.one === "surface-light",
3733
+ icon: `svg:${e(Bo)}`,
3734
+ title: "Revert to Default",
3735
+ variant: "text",
3736
+ onClick: n
3737
+ }, null, 8, ["disabled", "icon"])
3738
+ ], 512), [
3739
+ [Fe, e(r)]
3740
+ ])
3741
+ ]),
3742
+ _: 1
3743
+ }),
3744
+ e(s).isSubscriber ? (d(), v(m, {
3745
+ key: 0,
3746
+ active: e(r),
3747
+ class: "align-self-end",
3748
+ color: "inherit",
3749
+ density: "comfortable",
3750
+ icon: e(r) ? `svg:${e(Ae)}` : "$edit",
3751
+ title: "Edit One Header Color",
3752
+ variant: e(r) ? "text" : "plain",
3753
+ onClick: c[0] || (c[0] = (g) => r.value = !e(r))
3754
+ }, {
3755
+ default: i(() => [
3756
+ a(Pe, { "leave-absolute": "" }, {
3757
+ default: i(() => [
3758
+ (d(), v(D, {
3759
+ key: String(e(r))
3760
+ }))
3761
+ ]),
3762
+ _: 1
3763
+ })
3764
+ ]),
3765
+ _: 1
3766
+ }, 8, ["active", "icon", "variant"])) : x("", !0)
3767
+ ])
3768
+ ]),
3769
+ _: 1
3770
+ }, 8, ["color"]),
3771
+ a(Ve, null, {
3772
+ default: i(() => [
3773
+ e(r) ? (d(), v(nn, {
3774
+ key: 0,
3775
+ elevation: "0",
3776
+ height: "250",
3777
+ "hide-canvas": "",
3778
+ "hide-inputs": "",
3779
+ "hide-sliders": "",
3780
+ "model-value": e(o).colors.one !== "surface-light" ? e(o).colors.one : void 0,
3781
+ rounded: "0",
3782
+ "show-swatches": "",
3783
+ "swatches-max-height": "200",
3784
+ width: "278",
3785
+ "onUpdate:modelValue": c[1] || (c[1] = (g) => e(o).colors.one = g)
3786
+ }, null, 8, ["model-value"])) : x("", !0)
3787
+ ]),
3788
+ _: 1
3789
+ })
3790
+ ], 64);
3791
+ };
3792
+ }
3793
+ }), Rs = { class: "text-center mt-n9 mb-4" }, Hs = /* @__PURE__ */ b({
3794
+ __name: "VoUserMenu",
3795
+ setup(u) {
3796
+ const t = We(), s = F(), o = M();
3797
+ return R(() => t.banner, async () => {
3798
+ var r, n;
3799
+ await new Promise((l) => setTimeout(l, 300)), s.isOpen && ((n = (r = o.value) == null ? void 0 : r.updateLocation) == null || n.call(r));
3800
+ }, { flush: "pre" }), (r, n) => {
3801
+ const l = Ps, c = Ms, p = Ts, m = Is, g = Dt;
3802
+ return d(), v($t, {
3803
+ ref_key: "menu",
3804
+ ref: o,
3805
+ modelValue: e(s).isOpen,
3806
+ "onUpdate:modelValue": n[0] || (n[0] = (f) => e(s).isOpen = f),
3807
+ activator: "parent",
3808
+ "close-on-click": !1,
3809
+ "close-on-content-click": !1,
3810
+ eager: "",
3811
+ location: "bottom end"
3812
+ }, {
3813
+ default: i(() => [
3814
+ a(E, {
3815
+ border: "",
3816
+ rounded: "lg",
3817
+ width: "280"
3818
+ }, {
3819
+ default: i(() => [
3820
+ a(l),
3821
+ h("div", Rs, [
3822
+ a(c),
3823
+ a(p)
3824
+ ]),
3825
+ a(J),
3826
+ a(m),
3827
+ a(J),
3828
+ a(g)
3829
+ ]),
3830
+ _: 1
3831
+ })
3832
+ ]),
3833
+ _: 1
3834
+ }, 8, ["modelValue"]);
3835
+ };
3836
+ }
3837
+ }), Es = { class: "me-n3" }, qs = /* @__PURE__ */ b({
3838
+ __name: "VoTeamInvite",
3839
+ setup(u) {
3840
+ const t = we(), s = V(() => {
3841
+ var r, n;
3842
+ return ((r = t.team) == null ? void 0 : r.name) ?? `${(n = t.team) == null ? void 0 : n.owner.name}'s team`;
3843
+ });
3844
+ function o(r) {
3845
+ t.clearTeamQuery(), r.value = !1;
3846
+ }
3847
+ return (r, n) => e(t).teamInviteDialog ? (d(), v(tt, {
3848
+ key: 0,
3849
+ modelValue: e(t).teamInviteDialog,
3850
+ "onUpdate:modelValue": n[1] || (n[1] = (l) => e(t).teamInviteDialog = l),
3851
+ "max-width": "500"
3852
+ }, {
3853
+ default: i(({ isActive: l }) => [
3854
+ a(E, {
3855
+ "prepend-icon": `svg:${e(No)}`,
3856
+ rounded: "lg",
3857
+ title: "Join a Team"
3858
+ }, {
3859
+ append: i(() => [
3860
+ h("div", Es, [
3861
+ a(z, {
3862
+ icon: "$close",
3863
+ size: "x-small",
3864
+ variant: "text",
3865
+ onClick: (c) => o(l)
3866
+ }, null, 8, ["onClick"])
3867
+ ])
3868
+ ]),
3869
+ text: i(() => [
3870
+ n[2] || (n[2] = O(" You have been invited to join ")),
3871
+ h("strong", null, S(e(s)), 1),
3872
+ n[3] || (n[3] = O("! "))
3873
+ ]),
3874
+ default: i(() => [
3875
+ a(J, { opacity: ".2" }),
3876
+ a(Ho, { class: "bg-surface-light" }, {
3877
+ default: i(() => [
3878
+ a(z, {
3879
+ disabled: e(t).isLoading,
3880
+ rounded: "lg",
3881
+ text: "Cancel",
3882
+ variant: "plain",
3883
+ onClick: (c) => o(l)
3884
+ }, null, 8, ["disabled", "onClick"]),
3885
+ a(Go),
3886
+ a(z, {
3887
+ "append-icon": "$success",
3888
+ color: "success",
3889
+ disabled: e(t).isLoading,
3890
+ rounded: "lg",
3891
+ text: "Accept",
3892
+ variant: "flat",
3893
+ onClick: n[0] || (n[0] = (c) => e(t).joinTeam())
3894
+ }, null, 8, ["disabled"])
3895
+ ]),
3896
+ _: 2
3897
+ }, 1024)
3898
+ ]),
3899
+ _: 2
3900
+ }, 1032, ["prepend-icon"])
3901
+ ]),
3902
+ _: 1
3903
+ }, 8, ["modelValue"])) : x("", !0);
3904
+ }
3905
+ }), Ws = { key: 0 }, Bt = /* @__PURE__ */ b({
3906
+ __name: "VoAuthBtn",
3907
+ props: {
3908
+ external: Boolean
3909
+ },
3910
+ setup(u) {
3911
+ const t = q(), s = F(), o = j(), { lgAndUp: r } = me(), n = V(() => s.isOpen || !t.user ? o.colors.one === "surface-light" ? "primary" : o.colors.one : "surface-light"), { smAndUp: l } = me();
3912
+ return (c, p) => {
3913
+ const m = Hs, g = Ue, f = fn, C = At, _ = rn;
3914
+ return d(), L(N, null, [
3915
+ a(f, {
3916
+ "offset-y": e(t).user ? 5 : 0
3917
+ }, {
3918
+ default: i(() => [
3919
+ a(g, Y({
3920
+ [`${e(r) ? "append-" : ""}icon`]: e(t).user ? void 0 : `svg:${e(dt)}`
3921
+ }, {
3922
+ active: "",
3923
+ border: !!e(t).user,
3924
+ class: "vo-auth-btn",
3925
+ color: e(n),
3926
+ icon: e(t).user || e(t).isLoading || !e(l),
3927
+ loading: e(t).isLoading,
3928
+ size: e(l) ? "default" : "small",
3929
+ style: { transition: ".2s ease" },
3930
+ variant: e(t).user ? e(s).isOpen ? "outlined" : "text" : "flat"
3931
+ }), {
3932
+ default: i(() => [
3933
+ e(t).user ? (d(), v(ne, {
3934
+ key: 0,
3935
+ image: e(o).avatar || e(t).user.picture || ""
3936
+ }, null, 8, ["image"])) : (d(), L(N, { key: 1 }, [
3937
+ e(l) ? (d(), L("span", Ws, "Login")) : (d(), v(D, {
3938
+ key: 1,
3939
+ icon: `svg:${e(dt)}`
3940
+ }, null, 8, ["icon"]))
3941
+ ], 64)),
3942
+ a(m)
3943
+ ]),
3944
+ _: 1
3945
+ }, 16, ["border", "color", "icon", "loading", "size", "variant"])
3946
+ ]),
3947
+ _: 1
3948
+ }, 8, ["offset-y"]),
3949
+ a(C),
3950
+ a(qs),
3951
+ a(_)
3952
+ ], 64);
3953
+ };
3954
+ }
3955
+ }), Zs = /* @__PURE__ */ b({
3956
+ __name: "VoAppBar",
3957
+ props: {
3958
+ logo: {}
3959
+ },
3960
+ setup(u) {
3961
+ const t = u, s = Re(), o = qe(), r = V(() => `https://cdn.vuetifyjs.com/docs/images/one/logos/${t.logo}-logo-${s.current.value.dark ? "dark" : "light"}.png`);
3962
+ return (n, l) => {
3963
+ const c = Ht("router-link"), p = Bt;
3964
+ return d(), v(wt, {
3965
+ class: "border-b",
3966
+ image: e(o).suit["app-bar"],
3967
+ name: "vo-app-bar"
3968
+ }, Z({
3969
+ prepend: i(() => [
3970
+ a(c, {
3971
+ class: "ps-2",
3972
+ to: "/"
3973
+ }, {
3974
+ default: i(() => [
3975
+ a(le, {
3976
+ src: e(r),
3977
+ width: "128"
3978
+ }, null, 8, ["src"])
3979
+ ]),
3980
+ _: 1
3981
+ }),
3982
+ B(n.$slots, "prepend")
3983
+ ]),
3984
+ append: i(() => [
3985
+ B(n.$slots, "append"),
3986
+ n.$slots.append ? (d(), v(J, {
3987
+ key: 0,
3988
+ class: "align-self-center h-100 mx-2 mx-sm-4",
3989
+ length: "20",
3990
+ vertical: ""
3991
+ })) : x("", !0),
3992
+ a(p)
3993
+ ]),
3994
+ default: i(() => [
3995
+ B(n.$slots, "default")
3996
+ ]),
3997
+ _: 2
3998
+ }, [
3999
+ n.$slots.title ? {
4000
+ name: "title",
4001
+ fn: i(() => [
4002
+ B(n.$slots, "title")
4003
+ ]),
4004
+ key: "0"
4005
+ } : void 0,
4006
+ n.$slots.extension ? {
4007
+ name: "extension",
4008
+ fn: i(() => [
4009
+ B(n.$slots, "extension")
4010
+ ]),
4011
+ key: "1"
4012
+ } : void 0
4013
+ ]), 1032, ["image"]);
4014
+ };
4015
+ }
4016
+ }), Gs = ["id"], Qs = /* @__PURE__ */ b({
4017
+ __name: "VoScript",
4018
+ props: {
4019
+ id: {
4020
+ type: String,
4021
+ required: !0
4022
+ },
4023
+ scriptId: {
4024
+ type: String,
4025
+ required: !0
4026
+ },
4027
+ src: {
4028
+ type: String,
4029
+ required: !0
4030
+ }
4031
+ },
4032
+ emits: ["script:error", "script:load"],
4033
+ setup(u, { emit: t }) {
4034
+ const s = u, o = t, r = M(), n = M();
4035
+ return Ke(async () => {
4036
+ const l = document.createElement("script"), c = () => o("script:error");
4037
+ l.type = "text/javascript", l.id = s.scriptId, l.src = s.src, l.addEventListener("load", () => o("script:load")), l.onerror = c, n.value = l;
4038
+ }), Me(() => {
4039
+ n.value && r.value && r.value.append(n.value);
4040
+ }), Et(() => {
4041
+ n.value && r.value && n.value.remove();
4042
+ }), (l, c) => (d(), L("div", {
4043
+ id: u.id,
4044
+ ref_key: "rootEl",
4045
+ ref: r
4046
+ }, null, 8, Gs));
4047
+ }
4048
+ }), Ys = {
4049
+ key: 0,
4050
+ class: "v-footer__image"
4051
+ }, Js = /* @__PURE__ */ b({
4052
+ __name: "VoFooter",
4053
+ props: {
4054
+ image: {}
4055
+ },
4056
+ setup(u) {
4057
+ return (t, s) => (d(), v(sn, {
4058
+ class: "vo-footer",
4059
+ height: "40"
4060
+ }, {
4061
+ default: i(() => [
4062
+ t.image || t.$slots.image ? (d(), L("div", Ys, [
4063
+ t.$slots.image ? B(t.$slots, "image", { key: 0 }, void 0, !0) : (d(), v(le, {
4064
+ key: 1,
4065
+ cover: "",
4066
+ position: "left",
4067
+ src: t.image
4068
+ }, null, 8, ["src"]))
4069
+ ])) : x("", !0),
4070
+ B(t.$slots, "default", {}, void 0, !0)
4071
+ ]),
4072
+ _: 3
4073
+ }));
4074
+ }
4075
+ }), rt = (u, t) => {
4076
+ const s = u.__vccOpts || u;
4077
+ for (const [o, r] of t)
4078
+ s[o] = r;
4079
+ return s;
4080
+ }, Nt = /* @__PURE__ */ rt(Js, [["__scopeId", "data-v-31335c0a"]]), Xs = ["href", "title"], Ks = {
4081
+ class: "text-caption text-disabled",
4082
+ style: { position: "absolute", right: "16px" }
4083
+ }, ea = /* @__PURE__ */ b({
4084
+ __name: "VoSocialFooter",
4085
+ setup(u) {
4086
+ const t = qe(), s = [
4087
+ {
4088
+ title: "Vuetify Documentation",
4089
+ icon: "$vuetify",
4090
+ href: "https://vuetifyjs.com/"
4091
+ },
4092
+ {
4093
+ title: "Vuetify Support",
4094
+ icon: `svg:${Mo}`,
4095
+ href: "https://support.vuetifyjs.com/"
4096
+ },
4097
+ {
4098
+ title: "Vuetify X",
4099
+ icon: "$x",
4100
+ href: "https://x.com/vuetifyjs"
4101
+ },
4102
+ {
4103
+ title: "Vuetify GitHub",
4104
+ icon: "$github",
4105
+ href: "https://github.com/vuetifyjs/vuetify"
4106
+ },
4107
+ {
4108
+ title: "Vuetify Discord",
4109
+ icon: "$discord",
4110
+ href: "https://community.vuetifyjs.com/"
4111
+ },
4112
+ {
4113
+ title: "Vuetify Reddit",
4114
+ icon: "$reddit",
4115
+ href: "https://reddit.com/r/vuetifyjs"
4116
+ }
4117
+ ];
4118
+ return (o, r) => {
4119
+ const n = Nt;
4120
+ return d(), v(n, {
4121
+ class: "vo-footer",
4122
+ height: "40",
4123
+ image: e(t).suit.footer
4124
+ }, Z({
4125
+ default: i(() => [
4126
+ (d(), L(N, null, re(s, (l) => h("a", {
4127
+ key: l.title,
4128
+ class: "d-inline-block mx-2 social-link",
4129
+ href: l.href,
4130
+ rel: "noopener noreferrer",
4131
+ target: "_blank",
4132
+ title: l.title
4133
+ }, [
4134
+ a(D, {
4135
+ icon: l.icon,
4136
+ size: l.icon === "$vuetify" ? 24 : 16
4137
+ }, null, 8, ["icon", "size"])
4138
+ ], 8, Xs)), 64)),
4139
+ h("div", Ks, [
4140
+ O(" © 2016-" + S((/* @__PURE__ */ new Date()).getFullYear()) + " ", 1),
4141
+ r[0] || (r[0] = h("span", { class: "d-none d-sm-inline-block" }, "Vuetify, LLC", -1))
4142
+ ])
4143
+ ]),
4144
+ _: 2
4145
+ }, [
4146
+ o.$slots.image ? {
4147
+ name: "image",
4148
+ fn: i(() => [
4149
+ B(o.$slots, "image", {}, void 0, !0)
4150
+ ]),
4151
+ key: "0"
4152
+ } : void 0
4153
+ ]), 1032, ["image"]);
4154
+ };
4155
+ }
4156
+ }), ta = /* @__PURE__ */ rt(ea, [["__scopeId", "data-v-7a9688b8"]]), oa = /* @__PURE__ */ b({
4157
+ __name: "VoNotificationsBanner",
4158
+ props: {
4159
+ demo: { type: Boolean }
4160
+ },
4161
+ setup(u) {
4162
+ qt((_) => {
4163
+ var k;
4164
+ return {
4165
+ "4bc57505": (k = e(l)) == null ? void 0 : k.metadata.bg_blur
4166
+ };
4167
+ });
4168
+ const t = u, { mdAndUp: s } = me(), o = et(), r = j(), n = We(), l = V(() => n.banner), c = V(() => {
4169
+ var _, k;
4170
+ return ((_ = l.value) == null ? void 0 : _.metadata.height) || ((k = l.value) != null && k.metadata.subtext ? 88 : 48);
4171
+ }), p = V(() => t.demo ? !0 : !l.value || !r.notifications.last.banner.includes(l.value.slug));
4172
+ function m() {
4173
+ t.demo || l.value && r.notifications.last.banner.push(l.value.slug);
4174
+ }
4175
+ async function g(_) {
4176
+ var $;
4177
+ if (!l.value) return;
4178
+ m(), await he();
4179
+ const k = (($ = l.value) == null ? void 0 : $.metadata) ?? { link: "" };
4180
+ if (!k.link.includes("?one=")) return;
4181
+ _.preventDefault(), _.stopPropagation();
4182
+ const y = k.link.split("?one=")[1];
4183
+ o.push({ query: { one: y } });
4184
+ }
4185
+ const f = V(() => {
4186
+ var k, y;
4187
+ const _ = ((k = l.value) == null ? void 0 : k.metadata) ?? { link: "" };
4188
+ return {
4189
+ href: _.link.startsWith("http") ? _.link : void 0,
4190
+ target: _.link.startsWith("http") ? "_blank" : void 0,
4191
+ to: _.link.startsWith("http") ? void 0 : _.link,
4192
+ ...(y = l.value) == null ? void 0 : y.metadata.attributes,
4193
+ onClick: g
4194
+ };
4195
+ }), C = V(() => {
4196
+ var y, $;
4197
+ const _ = ($ = (y = l.value) == null ? void 0 : y.metadata.images.bg) == null ? void 0 : $.url;
4198
+ if (!(_ != null && _.startsWith("https://cdn.cosmicjs.com/"))) return _;
4199
+ const k = new URL(_);
4200
+ return k.host = "imgix.cosmicjs.com", k.search = new URLSearchParams({
4201
+ auto: "format,compress",
4202
+ q: "10",
4203
+ fit: "crop",
4204
+ w: "4096",
4205
+ h: "256"
4206
+ }).toString(), k.toString();
4207
+ });
4208
+ return (_, k) => e(l) ? (d(), v(wt, {
4209
+ key: 0,
4210
+ color: e(l).metadata.color,
4211
+ flat: "",
4212
+ height: e(c),
4213
+ image: e(C),
4214
+ location: _.demo ? "bottom" : void 0,
4215
+ "model-value": e(p),
4216
+ order: "-1"
4217
+ }, {
4218
+ default: i(() => [
4219
+ a(be, Y(e(f), {
4220
+ active: !1,
4221
+ class: "flex-grow-1 py-6",
4222
+ lines: "two",
4223
+ onClick: g
4224
+ }), {
4225
+ prepend: i(() => [
4226
+ e(l).metadata.images.logo ? (d(), v(ne, {
4227
+ key: 0,
4228
+ icon: "$vuetify",
4229
+ image: e(l).metadata.images.logo.url,
4230
+ size: "x-large",
4231
+ tile: ""
4232
+ }, null, 8, ["image"])) : x("", !0)
4233
+ ]),
4234
+ append: i(() => [
4235
+ e(s) && e(l).metadata.link && e(l).metadata.link_text ? (d(), v(He, { key: 0 }, {
4236
+ default: i(({ isHovering: y, props: $ }) => [
4237
+ a(z, Y({
4238
+ ...$,
4239
+ ...e(f)
4240
+ }, {
4241
+ "append-icon": `svg:${e(ze)}`,
4242
+ class: "text-none me-2",
4243
+ color: e(l).metadata.link_color,
4244
+ elevation: y ? 8 : 0,
4245
+ title: e(l).metadata.link_text,
4246
+ variant: "elevated",
4247
+ onClick: g
4248
+ }), {
4249
+ default: i(() => [
4250
+ O(S(e(l).metadata.link_text), 1)
4251
+ ]),
4252
+ _: 2
4253
+ }, 1040, ["append-icon", "color", "elevation", "title"])
4254
+ ]),
4255
+ _: 1
4256
+ })) : x("", !0),
4257
+ e(l).metadata.closable ? (d(), v(z, {
4258
+ key: 1,
4259
+ class: "ms-6 me-2",
4260
+ density: "comfortable",
4261
+ icon: "$clear",
4262
+ size: "small",
4263
+ variant: "plain",
4264
+ onClick: Xe(m, ["prevent", "stop"])
4265
+ })) : x("", !0)
4266
+ ]),
4267
+ default: i(() => [
4268
+ e(l).metadata.text ? (d(), v(yt, {
4269
+ key: 0,
4270
+ class: "text-subtitle-2 text-md-subtitle-1 font-weight-medium"
4271
+ }, {
4272
+ default: i(() => [
4273
+ O(S(e(l).metadata.text), 1)
4274
+ ]),
4275
+ _: 1
4276
+ })) : x("", !0),
4277
+ e(l).metadata.subtext ? (d(), v(jo, { key: 1 }, {
4278
+ default: i(() => [
4279
+ O(S(e(l).metadata.subtext), 1)
4280
+ ]),
4281
+ _: 1
4282
+ })) : x("", !0)
4283
+ ]),
4284
+ _: 1
4285
+ }, 16)
4286
+ ]),
4287
+ _: 1
4288
+ }, 8, ["color", "height", "image", "location", "model-value"])) : x("", !0);
4289
+ }
4290
+ }), na = /* @__PURE__ */ rt(oa, [["__scopeId", "data-v-55bdb145"]]), sa = {
4291
+ key: 0,
4292
+ class: "text-uppercase position-absolute ms-auto font-weight-medium on-surface-light",
4293
+ style: { right: "12px", bottom: "8px", "font-size": "10px" }
4294
+ }, Mt = /* @__PURE__ */ b({
4295
+ __name: "VoPromotionsCard",
4296
+ props: {
4297
+ caption: {},
4298
+ minHeight: {}
4299
+ },
4300
+ setup(u) {
4301
+ return (t, s) => (d(), v(E, {
4302
+ class: "d-inline-flex flex-child-1 position-relative",
4303
+ color: "surface-light",
4304
+ flat: "",
4305
+ rel: "noopener",
4306
+ rounded: "",
4307
+ target: "_blank"
4308
+ }, Z({
4309
+ default: i(() => [
4310
+ a(an, {
4311
+ "min-height": t.minHeight,
4312
+ width: "100%"
4313
+ }, {
4314
+ default: i(() => [
4315
+ B(t.$slots, "default")
4316
+ ]),
4317
+ _: 3
4318
+ }, 8, ["min-height"]),
4319
+ t.caption ? (d(), L("div", sa, S(t.caption), 1)) : x("", !0)
4320
+ ]),
4321
+ _: 2
4322
+ }, [
4323
+ t.$slots.prepend ? {
4324
+ name: "prepend",
4325
+ fn: i(() => [
4326
+ B(t.$slots, "prepend")
4327
+ ]),
4328
+ key: "0"
4329
+ } : void 0,
4330
+ t.$slots.image ? {
4331
+ name: "image",
4332
+ fn: i(() => [
4333
+ B(t.$slots, "image")
4334
+ ]),
4335
+ key: "1"
4336
+ } : void 0
4337
+ ]), 1024));
4338
+ }
4339
+ }), lt = G("promotions", () => {
4340
+ const u = K(), t = M([]), s = A(!1), o = A(!1), r = V(() => t.value.filter((c) => c.metadata.discoverable));
4341
+ Ke(l);
4342
+ function n(c) {
4343
+ const p = c.filter((m) => m.metadata.active);
4344
+ return p[Math.floor(Math.random() * p.length)];
4345
+ }
4346
+ async function l() {
4347
+ try {
4348
+ s.value = !0;
4349
+ const c = await u.get("/one/promotions");
4350
+ t.value = c.promotions;
4351
+ } catch {
4352
+ } finally {
4353
+ s.value = !1, o.value = !0;
4354
+ }
4355
+ return t.value;
4356
+ }
4357
+ return {
4358
+ all: t,
4359
+ isLoading: s,
4360
+ hasLoaded: o,
4361
+ discoverable: r,
4362
+ index: l,
4363
+ random: n
4364
+ };
4365
+ }), aa = /* @__PURE__ */ b({
4366
+ __name: "VoPromotionsCardHighlight",
4367
+ props: {
4368
+ slug: {}
4369
+ },
4370
+ setup(u) {
4371
+ const t = u, s = q(), o = lt(), r = Re(), n = j(), l = V(() => {
4372
+ if (!(s.user && n.disableAds))
4373
+ return t.slug ? o.all.find((m) => m.slug === t.slug) : o.random(o.all);
4374
+ }), c = V(() => {
4375
+ var g, f;
4376
+ const m = r.current.value.dark ? "logodark" : "logolight";
4377
+ return (f = (g = l.value) == null ? void 0 : g.metadata.images[m]) == null ? void 0 : f.url;
4378
+ }), p = V(() => {
4379
+ var g, f;
4380
+ const m = r.current.value.dark ? "bgdark" : "bglight";
4381
+ return (f = (g = l.value) == null ? void 0 : g.metadata.images[m]) == null ? void 0 : f.url;
4382
+ });
4383
+ return (m, g) => {
4384
+ var C, _, k;
4385
+ const f = Mt;
4386
+ return e(l) || !e(o).hasLoaded ? (d(), v(f, {
4387
+ key: 0,
4388
+ class: "vo-promotions-card-highlight",
4389
+ color: ((C = e(l)) == null ? void 0 : C.metadata.color) ?? "surface",
4390
+ height: "60",
4391
+ href: (_ = e(l)) == null ? void 0 : _.metadata.url,
4392
+ image: e(p),
4393
+ "max-width": "720",
4394
+ "prepend-avatar": e(c),
4395
+ title: (k = e(l)) == null ? void 0 : k.metadata.short_text,
4396
+ width: "100%"
4397
+ }, Z({
4398
+ default: i(() => [
4399
+ e(o).hasLoaded ? x("", !0) : (d(), v(Ie, {
4400
+ key: 0,
4401
+ class: "flex-1-0 overflow-hidden",
4402
+ color: "transparent",
4403
+ height: "60",
4404
+ loading: "",
4405
+ type: "image"
4406
+ }))
4407
+ ]),
4408
+ _: 2
4409
+ }, [
4410
+ e(l) ? {
4411
+ name: "prepend",
4412
+ fn: i(() => [
4413
+ a(ne, {
4414
+ class: "my-n4 me-4",
4415
+ icon: "$vuetify",
4416
+ size: "36"
4417
+ })
4418
+ ]),
4419
+ key: "0"
4420
+ } : void 0,
4421
+ e(l) ? {
4422
+ name: "image",
4423
+ fn: i(() => [
4424
+ a(le, { position: "right" })
4425
+ ]),
4426
+ key: "1"
4427
+ } : void 0
4428
+ ]), 1032, ["color", "href", "image", "prepend-avatar", "title"])) : x("", !0);
4429
+ };
4430
+ }
4431
+ }), ia = { class: "d-flex ga-4" }, ra = { class: "d-flex align-start ga-4" }, la = { class: "text-caption on-surface-light" }, ua = /* @__PURE__ */ b({
4432
+ __name: "VoPromotionsCardVuetify",
4433
+ props: {
4434
+ slug: {}
4435
+ },
4436
+ setup(u) {
4437
+ const t = u, s = q(), o = lt(), r = j(), n = V(() => {
4438
+ if (!(s.user && r.disableAds && !r.showHouseAds))
4439
+ return t.slug ? o.all.find((l) => l.slug === t.slug) : o.random(r.disableAds && r.showHouseAds ? o.discoverable : o.all);
4440
+ });
4441
+ return (l, c) => {
4442
+ var m, g;
4443
+ const p = Mt;
4444
+ return e(n) || !e(o).hasLoaded ? (d(), v(p, {
4445
+ key: 0,
4446
+ border: "",
4447
+ caption: "ads via vuetify",
4448
+ class: "vo-promotions-card-vuetify pa-2",
4449
+ href: (g = (m = e(n)) == null ? void 0 : m.metadata) == null ? void 0 : g.url,
4450
+ width: "360"
4451
+ }, {
4452
+ default: i(() => {
4453
+ var f, C, _;
4454
+ return [
4455
+ h("div", ia, [
4456
+ e(o).hasLoaded ? e(n) ? (d(), L(N, { key: 1 }, [
4457
+ a(le, {
4458
+ cover: "",
4459
+ height: "100",
4460
+ "max-width": "130",
4461
+ position: "right",
4462
+ rounded: "s",
4463
+ src: (C = (f = e(n).metadata) == null ? void 0 : f.images.default) == null ? void 0 : C.url,
4464
+ width: "100%"
4465
+ }, null, 8, ["src"]),
4466
+ h("div", ra, [
4467
+ h("div", la, S((_ = e(n).metadata) == null ? void 0 : _.text), 1)
4468
+ ])
4469
+ ], 64)) : x("", !0) : (d(), L(N, { key: 0 }, [
4470
+ a(Ie, {
4471
+ class: "flex-1-0 overflow-hidden",
4472
+ color: "transparent",
4473
+ loading: "",
4474
+ "max-height": "100",
4475
+ "min-width": "130",
4476
+ type: "image"
4477
+ }),
4478
+ a(Ie, {
4479
+ class: "flex-1-0 ms-n3 mt-n3",
4480
+ color: "transparent",
4481
+ loading: "",
4482
+ "max-height": "100",
4483
+ type: "text@3"
4484
+ })
4485
+ ], 64))
4486
+ ])
4487
+ ];
4488
+ }),
4489
+ _: 1
4490
+ }, 8, ["href"])) : x("", !0);
4491
+ };
4492
+ }
4493
+ }), ca = ["href"], da = /* @__PURE__ */ b({
4494
+ __name: "VoPromotionsFooter",
4495
+ props: {
4496
+ slug: {}
4497
+ },
4498
+ setup(u) {
4499
+ const t = u, s = q(), o = lt(), r = j(), n = Re(), l = V(() => {
4500
+ if (!(s.user && r.disableAds))
4501
+ return t.slug ? o.all.find((m) => m.slug === t.slug) : o.random(o.all);
4502
+ }), c = V(() => {
4503
+ var g, f;
4504
+ const m = n.current.value.dark ? "logodark" : "logolight";
4505
+ return (f = (g = l.value) == null ? void 0 : g.metadata.images[m]) == null ? void 0 : f.url;
4506
+ }), p = V(() => {
4507
+ var g, f;
4508
+ const m = n.current.value.dark ? "bgdark" : "bglight";
4509
+ return (f = (g = l.value) == null ? void 0 : g.metadata.images[m]) == null ? void 0 : f.url;
4510
+ });
4511
+ return (m, g) => {
4512
+ var C;
4513
+ const f = Nt;
4514
+ return d(), v(f, {
4515
+ color: ((C = e(l)) == null ? void 0 : C.metadata.color) ?? "surface",
4516
+ image: e(p),
4517
+ style: { transform: "translateY(0)" }
4518
+ }, {
4519
+ default: i(() => {
4520
+ var _, k, y;
4521
+ return [
4522
+ h("a", {
4523
+ class: "d-flex align-center text-decoration-none py-2 px-4 ms-n4 flex-1-0 me-n4 position-relative",
4524
+ href: (_ = e(l)) == null ? void 0 : _.metadata.url,
4525
+ rel: "noopener noreferrer",
4526
+ style: { color: "inherit" },
4527
+ target: "_blank"
4528
+ }, [
4529
+ a(ne, {
4530
+ class: "me-4",
4531
+ icon: "$vuetify",
4532
+ image: e(c),
4533
+ size: "24"
4534
+ }, null, 8, ["image"]),
4535
+ h("div", null, S((k = e(l)) == null ? void 0 : k.metadata.text), 1),
4536
+ (y = e(l)) != null && y.metadata.advertisement ? (d(), v(ie, {
4537
+ key: 0,
4538
+ class: "ms-auto me-n4 align-self-end mb-n2 py-1 ps-3",
4539
+ rounded: "0 ts-lg",
4540
+ size: "x-small",
4541
+ text: "SPONSORED",
4542
+ variant: "flat"
4543
+ })) : x("", !0)
4544
+ ], 8, ca)
4545
+ ];
4546
+ }),
4547
+ _: 1
4548
+ }, 8, ["color", "image"]);
4549
+ };
4550
+ }
4551
+ }), pa = G("spots", () => {
4552
+ const u = K(), t = it(), s = M([]), o = A(!1), r = V(() => s.value.find(({
4553
+ metadata: {
4554
+ site: l,
4555
+ active: c
4556
+ }
4557
+ }) => c ? l.includes("dev") && !1 || l.includes("*") ? !0 : l.some((p) => t.id.includes(p)) : !1));
4558
+ async function n() {
4559
+ try {
4560
+ o.value = !0;
4561
+ const l = await u.get("/one/spots");
4562
+ s.value = l.spots;
4563
+ } catch {
4564
+ } finally {
4565
+ o.value = !1;
4566
+ }
4567
+ return s.value;
4568
+ }
4569
+ return {
4570
+ all: s,
4571
+ isLoading: o,
4572
+ spot: r,
4573
+ index: n
4574
+ };
4575
+ }), ma = ["href"], fa = /* @__PURE__ */ b({
4576
+ __name: "VoSpot",
4577
+ setup(u) {
4578
+ const t = pa();
4579
+ return (s, o) => {
4580
+ var r;
4581
+ return e(t).spot ? (d(), L("a", {
4582
+ key: 0,
4583
+ href: e(t).spot.metadata.href,
4584
+ rel: "noopener noreferrer sponsored",
4585
+ target: "_blank"
4586
+ }, [
4587
+ a(le, {
4588
+ class: "mx-auto",
4589
+ color: e(t).spot.metadata.image ? void 0 : "surface",
4590
+ rounded: "",
4591
+ src: (r = e(t).spot.metadata.image) == null ? void 0 : r.url,
4592
+ width: "225"
4593
+ }, null, 8, ["color", "src"])
4594
+ ], 8, ma)) : x("", !0);
4595
+ };
4596
+ }
4597
+ }), ai = {
4598
+ discord: ["M22,24L16.75,19L17.38,21H4.5A2.5,2.5 0 0,1 2,18.5V3.5A2.5,2.5 0 0,1 4.5,1H19.5A2.5,2.5 0 0,1 22,3.5V24M12,6.8C9.32,6.8 7.44,7.95 7.44,7.95C8.47,7.03 10.27,6.5 10.27,6.5L10.1,6.33C8.41,6.36 6.88,7.53 6.88,7.53C5.16,11.12 5.27,14.22 5.27,14.22C6.67,16.03 8.75,15.9 8.75,15.9L9.46,15C8.21,14.73 7.42,13.62 7.42,13.62C7.42,13.62 9.3,14.9 12,14.9C14.7,14.9 16.58,13.62 16.58,13.62C16.58,13.62 15.79,14.73 14.54,15L15.25,15.9C15.25,15.9 17.33,16.03 18.73,14.22C18.73,14.22 18.84,11.12 17.12,7.53C17.12,7.53 15.59,6.36 13.9,6.33L13.73,6.5C13.73,6.5 15.53,7.03 16.56,7.95C16.56,7.95 14.68,6.8 12,6.8M9.93,10.59C10.58,10.59 11.11,11.16 11.1,11.86C11.1,12.55 10.58,13.13 9.93,13.13C9.29,13.13 8.77,12.55 8.77,11.86C8.77,11.16 9.28,10.59 9.93,10.59M14.1,10.59C14.75,10.59 15.27,11.16 15.27,11.86C15.27,12.55 14.75,13.13 14.1,13.13C13.46,13.13 12.94,12.55 12.94,11.86C12.94,11.16 13.45,10.59 14.1,10.59Z"],
4599
+ github: ["M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z"],
4600
+ reddit: "M14.5 15.41C14.58 15.5 14.58 15.69 14.5 15.8C13.77 16.5 12.41 16.56 12 16.56C11.61 16.56 10.25 16.5 9.54 15.8C9.44 15.69 9.44 15.5 9.54 15.41C9.65 15.31 9.82 15.31 9.92 15.41C10.38 15.87 11.33 16 12 16C12.69 16 13.66 15.87 14.1 15.41C14.21 15.31 14.38 15.31 14.5 15.41M10.75 13.04C10.75 12.47 10.28 12 9.71 12C9.14 12 8.67 12.47 8.67 13.04C8.67 13.61 9.14 14.09 9.71 14.08C10.28 14.08 10.75 13.61 10.75 13.04M14.29 12C13.72 12 13.25 12.5 13.25 13.05S13.72 14.09 14.29 14.09C14.86 14.09 15.33 13.61 15.33 13.05C15.33 12.5 14.86 12 14.29 12M22 12C22 17.5 17.5 22 12 22S2 17.5 2 12C2 6.5 6.5 2 12 2S22 6.5 22 12M18.67 12C18.67 11.19 18 10.54 17.22 10.54C16.82 10.54 16.46 10.7 16.2 10.95C15.2 10.23 13.83 9.77 12.3 9.71L12.97 6.58L15.14 7.05C15.16 7.6 15.62 8.04 16.18 8.04C16.75 8.04 17.22 7.57 17.22 7C17.22 6.43 16.75 5.96 16.18 5.96C15.77 5.96 15.41 6.2 15.25 6.55L12.82 6.03C12.75 6 12.68 6.03 12.63 6.07C12.57 6.11 12.54 6.17 12.53 6.24L11.79 9.72C10.24 9.77 8.84 10.23 7.82 10.96C7.56 10.71 7.2 10.56 6.81 10.56C6 10.56 5.35 11.21 5.35 12C5.35 12.61 5.71 13.11 6.21 13.34C6.19 13.5 6.18 13.62 6.18 13.78C6.18 16 8.79 17.85 12 17.85C15.23 17.85 17.85 16.03 17.85 13.78C17.85 13.64 17.84 13.5 17.81 13.34C18.31 13.11 18.67 12.6 18.67 12Z",
4601
+ x: ["M2.04875 3.00002L9.77052 13.3248L1.99998 21.7192H3.74882L10.5519 14.3697L16.0486 21.7192H22L13.8437 10.8137L21.0765 3.00002H19.3277L13.0624 9.76874L8.0001 3.00002H2.04875ZM4.62054 4.28821H7.35461L19.4278 20.4308H16.6937L4.62054 4.28821Z"],
4602
+ "vuetify-bin": [
4603
+ ["M18.9112 5.03206L3.68692 8.88953C3.68692 8.88953 2.00252 6.21666 2 6.21428C2.02517 6.20794 18.6159 2.00476 18.6394 2L18.8944 4.8489L18.9095 5.01937L18.9112 5.03285V5.03206Z", 0.6],
4604
+ ["M19.4556 10.9994C19.4556 10.9994 7.06082 14.1417 7.05915 14.1386L5.3739 11.4641C5.41836 11.453 18.4582 8.14817 18.4993 8.13945L19.1838 7.9658L19.4556 10.9994Z", 1],
4605
+ "M20 17.0652C19.9916 17.0675 14.6826 18.4123 14.6742 18.4147C14.6994 17.3633 14.3353 16.3579 13.712 15.5563L19.7274 14.0331L20 17.066V17.0652Z",
4606
+ ["M12.353 16.0368C9.07567 12.843 3.90082 17.0493 6.66818 20.5975C9.94136 24.3844 15.773 19.6984 12.353 16.0368ZM11.1267 19.4129C10.2224 20.7664 7.79139 20.1099 7.82746 18.4686C8.04976 15.4897 12.7112 16.8495 11.1267 19.4129Z", 0.6]
4607
+ ],
4608
+ "vuetify-play": [
4609
+ "m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z",
4610
+ ["M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z", 0.6]
4611
+ ],
4612
+ "vuetify-studio": [
4613
+ ["M12.435 14.3194L12 21L6.87046 12.2799L12.435 14.3194Z", 1],
4614
+ ["M22 4L12.435 14.3194L6.87046 12.2799L9.26479 7.61064L12.435 14.3194L12 21L22 4Z", 0.5],
4615
+ ["M12.435 14.3194L22 4L9.26479 7.61064L12.435 14.3194Z", 1],
4616
+ ["M2 4L6.87046 12.2799L9.26479 7.61064L2 4Z", 1]
4617
+ ]
4618
+ }, ii = G("bins", () => {
4619
+ const u = K(), t = M([]), s = A(!1), o = V(() => t.value.filter((l) => l.favorite)), r = V(() => t.value.filter((l) => l.pinned));
4620
+ async function n() {
4621
+ try {
4622
+ s.value = !0;
4623
+ const l = await u.get("/one/bins");
4624
+ t.value = l.bins;
4625
+ } catch {
4626
+ } finally {
4627
+ s.value = !1;
4628
+ }
4629
+ return t.value;
4630
+ }
4631
+ return {
4632
+ isLoading: s,
4633
+ pinned: r,
4634
+ favorites: o,
4635
+ all: t,
4636
+ index: n
4637
+ };
4638
+ }), ri = G("products", () => {
4639
+ const u = K(), t = M([]), s = V(() => t.value.filter((n) => n.product_type === "Themes"));
4640
+ async function o() {
4641
+ if (t.value.length > 0)
4642
+ return t.value;
4643
+ try {
4644
+ const n = await u.get("/one/shopify/products");
4645
+ t.value = n.products;
4646
+ } catch {
4647
+ }
4648
+ return t.value;
4649
+ }
4650
+ function r(n) {
4651
+ return n.slice().sort(() => Math.random() - 0.5);
4652
+ }
4653
+ return {
4654
+ all: t,
4655
+ themes: s,
4656
+ index: o,
4657
+ randomize: r
4658
+ };
4659
+ }), li = G("sponsors", () => {
4660
+ const u = K(), t = M([]), s = M([]), o = M(!1), r = V(() => {
4661
+ const c = {};
4662
+ for (const p of t.value) {
4663
+ const m = p.metadata.tier;
4664
+ c[m] || (c[m] = []), c[m].push(p);
4665
+ }
4666
+ return c;
4667
+ });
4668
+ Wt(n), Ke(n);
4669
+ async function n() {
4670
+ try {
4671
+ o.value = !0;
4672
+ const c = await u.get("/one/sponsors");
4673
+ s.value = c.sponsors;
4674
+ } catch {
4675
+ } finally {
4676
+ o.value = !1;
4677
+ }
4678
+ return s.value;
4679
+ }
4680
+ function l(c) {
4681
+ return t.value.find((p) => p.slug === c);
4682
+ }
4683
+ return {
4684
+ isLoading: o,
4685
+ all: s,
4686
+ sponsors: t,
4687
+ byTier: r,
4688
+ bySlug: l,
4689
+ index: n
4690
+ };
4691
+ });
4692
+ function ui() {
4693
+ function u(t) {
4694
+ t.component("VoAppBar", Zs), t.component("VoAuthBtn", Bt), t.component("VoAuthCard", It), t.component("VoAuthDialog", At), t.component("VoAuthListItem", Dt), t.component("VoIconBin", Ot), t.component("VoIconIssues", Ut), t.component("VoNotificationsBanner", na), t.component("VoPromotionsCardHighlight", aa), t.component("VoPromotionsCardVuetify", ua), t.component("VoPromotionsFooter", da), t.component("VoScript", Qs), t.component("VoSocialFooter", ta), t.component("VoSpot", fa);
4695
+ }
4696
+ return { install: u };
4697
+ }
4698
+ function ci(u, t) {
4699
+ return function(s) {
4700
+ const o = s.store;
4701
+ o.url = t, o.$id === "site" && (o.id = u);
4702
+ };
4703
+ }
4704
+ export {
4705
+ ai as aliases,
4706
+ ui as createOne,
4707
+ ci as one,
4708
+ q as useAuthStore,
4709
+ We as useBannersStore,
4710
+ ii as useBinsStore,
4711
+ es as useDownloadsStore,
4712
+ K as useHttpStore,
4713
+ Ee as useNotificationsStore,
4714
+ F as useOneStore,
4715
+ ri as useProductsStore,
4716
+ lt as usePromotionsStore,
4717
+ xt as useQueueStore,
4718
+ qe as useSettingsStore,
4719
+ it as useSiteStore,
4720
+ li as useSponsorsStore,
4721
+ pa as useSpotsStore,
4722
+ we as useTeamStore,
4723
+ j as useUserStore
4724
+ };