@vuetify/one 1.1.2 → 1.1.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.
Files changed (2) hide show
  1. package/dist/index.js +3055 -740
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,54 +1,76 @@
1
- import { reactive as le, watch as F, toRefs as de, ref as L, shallowRef as B, computed as g, inject as fe, onBeforeMount as pe, defineComponent as j, resolveComponent as N, openBlock as k, createBlock as S, unref as u, withCtx as h, createVNode as _, mergeProps as Y, createElementBlock as oe, createCommentVNode as C, createElementVNode as O, toDisplayString as z, createTextVNode as M, createSlots as me, withModifiers as ae, nextTick as ve, Fragment as he, renderList as ye, pushScopeId as ge, popScopeId as be } from "vue";
2
- import { useDisplay as se, useTheme as _e } from "vuetify";
3
- import { useRouter as Z } from "vue-router";
4
- import { defineStore as D } from "pinia";
5
- import { merge as Q } from "lodash-es";
6
- import { mdiLogin as we, mdiOpenInNew as ke, mdiSync as Ve, mdiSyncOff as Se, mdiShieldStarOutline as xe, mdiGithub as $e, mdiDiscord as Le, mdiReddit as Ae } from "@mdi/js";
7
- import { VAvatar as W } from "vuetify/lib/components/VAvatar/index.mjs";
8
- import { VCard as re, VCardTitle as Ce, VCardSubtitle as Fe } from "vuetify/lib/components/VCard/index.mjs";
9
- import { VList as ie, VListItem as ue, VListItemTitle as Ne, VListItemSubtitle as Oe } from "vuetify/lib/components/VList/index.mjs";
10
- import { VDialog as De } from "vuetify/lib/components/VDialog/index.mjs";
11
- import { VAppBar as Ie } from "vuetify/lib/components/VAppBar/index.mjs";
12
- import { VBtn as K } from "vuetify/lib/components/VBtn/index.mjs";
13
- import { VHover as Ee } from "vuetify/lib/components/VHover/index.mjs";
14
- import { VSheet as Be } from "vuetify/lib/components/VSheet/index.mjs";
15
- import { VSwitch as je } from "vuetify/lib/components/VSwitch/index.mjs";
16
- import { VFadeTransition as Te, VExpandTransition as Re } from "vuetify/lib/components/transitions/index.mjs";
17
- import { VFooter as Ue } from "vuetify/lib/components/VFooter/index.mjs";
18
- import { VIcon as He } from "vuetify/lib/components/VIcon/index.mjs";
19
- const J = D("http", {
1
+ import { reactive as dt, watch as N, toRefs as pt, ref as H, shallowRef as D, computed as w, defineComponent as k, openBlock as d, createBlock as v, unref as t, withCtx as a, renderSlot as R, normalizeStyle as Qe, createSlots as W, createCommentVNode as x, createElementVNode as h, toDisplayString as A, createVNode as o, withModifiers as Te, mergeModels as mt, useModel as le, createElementBlock as L, Fragment as U, createTextVNode as B, onBeforeMount as ft, nextTick as fe, renderList as oe, mergeProps as P, resolveComponent as Me, withDirectives as xe, vShow as Re, onMounted as vt, normalizeClass as _t, pushScopeId as ht, popScopeId as gt } from "vue";
2
+ import { useRouter as Pe, useRoute as bt } from "vue-router/auto";
3
+ import { defineStore as J } from "pinia";
4
+ import { merge as Oe } from "lodash-es";
5
+ import { VBadge as He } from "vuetify/lib/components/VBadge/index.mjs";
6
+ import { VBtn as G } from "vuetify/lib/components/VBtn/index.mjs";
7
+ import { VProgressCircular as yt } from "vuetify/lib/components/VProgressCircular/index.mjs";
8
+ import { mdiDiscord as Ee, mdiGithub as We, mdiSync as Vt, mdiSyncOff as kt, mdiLogoutVariant as xt, mdiCheck as re, mdiHome as $t, mdiTextBox as wt, mdiSpaceInvaders as Je, mdiWhiteBalanceSunny as St, mdiWeatherNight as Ct, mdiDesktopTowerMonitor as Lt, mdiImageFilterHdr as At, mdiRocketLaunchOutline as It, mdiContrastCircle as Dt, mdiCog as Ut, mdiCogOutline as Bt, mdiFileDocument as Nt, mdiCreditCardSettingsOutline as Ot, mdiRocketOutline as Ft, mdiCheckCircleOutline as pe, mdiCreditCard as zt, mdiReload as jt, mdiPlaylistCheck as Tt, mdiCreditCardOutline as Mt, mdiMedal as Ge, mdiOpenInNew as ve, mdiHandHeart as Rt, mdiChartLine as Pt, mdiHandHeartOutline as Ht, mdiEmailOpenOutline as Xe, mdiEmailVariant as Ke, mdiBell as Et, mdiInboxOutline as Wt, mdiInboxFullOutline as Gt, mdiBillboard as qt, mdiBellOutline as Yt, mdiViewDashboardOutline as Zt, mdiSpider as Qt, mdiCrown as Jt, mdiArrowULeftBottom as Xt, mdiLogin as Kt, mdiShieldStarOutline as eo, mdiReddit as to } from "@mdi/js";
9
+ import { VListItem as _e, VList as ee, VListItemTitle as et, VListItemSubtitle as oo } from "vuetify/lib/components/VList/index.mjs";
10
+ import { VAvatar as ne } from "vuetify/lib/components/VAvatar/index.mjs";
11
+ import { VCard as M, VCardText as K, VCardTitle as no, VCardSubtitle as so } from "vuetify/lib/components/VCard/index.mjs";
12
+ import { VSheet as qe } from "vuetify/lib/components/VSheet/index.mjs";
13
+ import { VSwitch as tt } from "vuetify/lib/components/VSwitch/index.mjs";
14
+ import { VFadeTransition as $e, VExpandTransition as he, VExpandXTransition as ao } from "vuetify/lib/components/transitions/index.mjs";
15
+ import { useDisplay as se, useTheme as io, useDate as we } from "vuetify";
16
+ import { VDialog as ot } from "vuetify/lib/components/VDialog/index.mjs";
17
+ import { VDivider as E } from "vuetify/lib/components/VDivider/index.mjs";
18
+ import { VIcon as I } from "vuetify/lib/components/VIcon/index.mjs";
19
+ import { VLabel as ze } from "vuetify/lib/components/VLabel/index.mjs";
20
+ import { VChip as Y } from "vuetify/lib/components/VChip/index.mjs";
21
+ import { VChipGroup as lo } from "vuetify/lib/components/VChipGroup/index.mjs";
22
+ import { VSelect as ro } from "vuetify/lib/components/VSelect/index.mjs";
23
+ import { VRow as Se, VCol as me } from "vuetify/lib/components/VGrid/index.mjs";
24
+ import { VHover as Ce } from "vuetify/lib/components/VHover/index.mjs";
25
+ import { VImg as Le } from "vuetify/lib/components/VImg/index.mjs";
26
+ import { VItemGroup as nt, VItem as je } from "vuetify/lib/components/VItemGroup/index.mjs";
27
+ import { VLayout as Ae } from "vuetify/lib/components/VLayout/index.mjs";
28
+ import { VMain as Ie } from "vuetify/lib/components/VMain/index.mjs";
29
+ import { VDataTableVirtual as co } from "vuetify/lib/components/VDataTable/index.mjs";
30
+ import { VSkeletonLoader as Ze } from "vuetify/lib/components/VSkeletonLoader/index.mjs";
31
+ import { VWindow as st, VWindowItem as de } from "vuetify/lib/components/VWindow/index.mjs";
32
+ import { VTimelineItem as Ye, VTimeline as uo } from "vuetify/lib/components/VTimeline/index.mjs";
33
+ import { VTooltip as Q } from "vuetify/lib/components/VTooltip/index.mjs";
34
+ import { VResponsive as po } from "vuetify/lib/components/VResponsive/index.mjs";
35
+ import { VNavigationDrawer as mo } from "vuetify/lib/components/VNavigationDrawer/index.mjs";
36
+ import { Ripple as fo } from "vuetify/lib/directives/index.mjs";
37
+ import { VColorPicker as vo } from "vuetify/lib/components/VColorPicker/index.mjs";
38
+ import { VMenu as _o } from "vuetify/components";
39
+ import { VAppBar as ho } from "vuetify/lib/components/VAppBar/index.mjs";
40
+ import { VFooter as go } from "vuetify/lib/components/VFooter/index.mjs";
41
+ const ge = J("http", {
20
42
  state: () => ({
21
43
  url: ""
22
44
  }),
23
45
  actions: {
24
- async fetch(o, t = {}) {
25
- const a = await fetch(`${this.url}${o}`, {
46
+ async fetch(p, e = {}) {
47
+ const i = await fetch(`${this.url}${p}`, {
26
48
  credentials: "include",
27
- ...t
49
+ ...e
28
50
  });
29
- return a.status === 204 ? a : a.json();
51
+ return i.status === 204 ? i : i.json();
30
52
  },
31
- async post(o, t, a = {}) {
32
- return this.fetch(o, {
53
+ async post(p, e, i = {}) {
54
+ return this.fetch(p, {
33
55
  method: "POST",
34
56
  headers: {
35
57
  "Content-Type": "application/json"
36
58
  },
37
- body: JSON.stringify(t),
38
- ...a
59
+ body: JSON.stringify(e),
60
+ ...i
39
61
  });
40
62
  },
41
- async get(o, t = {}) {
42
- return this.fetch(o, t);
63
+ async get(p, e = {}) {
64
+ return this.fetch(p, e);
43
65
  },
44
- async delete(o, t = {}) {
45
- return this.fetch(o, {
66
+ async delete(p, e = {}) {
67
+ return this.fetch(p, {
46
68
  method: "DELETE",
47
- ...t
69
+ ...e
48
70
  });
49
71
  }
50
72
  }
51
- }), X = typeof window < "u", G = {
73
+ }), Fe = typeof window < "u", ke = {
52
74
  v: 5,
53
75
  api: "link-only",
54
76
  avatar: "",
@@ -86,333 +108,2901 @@ const J = D("http", {
86
108
  jobs: null
87
109
  }
88
110
  }
89
- }, T = D("user", () => {
90
- const o = le(Q({}, G));
91
- F(o, a);
92
- function t() {
93
- if (!X)
111
+ }, O = J("user", () => {
112
+ const p = dt(Oe({}, ke));
113
+ N(p, i);
114
+ function e() {
115
+ if (!Fe)
94
116
  return;
95
- const r = localStorage.getItem("vuetify@user"), e = r ? JSON.parse(r) : {};
96
- let d = e.v === o.v;
97
- e.v || (e.pwaRefresh = !0, typeof e.api == "boolean" && (e.api = e.api ? "inline" : "link-only"), typeof e.rtl == "boolean" && (e.direction = e.rtl ? "rtl" : "ltr", delete e.rtl), typeof e.theme == "object" && (e.mixedTheme = e.theme.mixed, e.theme = e.theme.system ? "system" : e.theme.dark ? "dark" : "light"), Array.isArray(e.notifications) && (e.notifications = { read: e.notifications }), typeof e.last == "object" && (e.notifications.last = e.last, delete e.last)), e.v === 1 && (Array.isArray(e.composition) && (e.composition = "composition"), Array.isArray(e.notifications.last.banner) || (e.notifications = e.notifications || {}, e.notifications.last = e.notifications.last || {}, e.notifications.last.banner = [])), e.v === 2 && (e.syncSettings = !0, e.disableAds = !1, e.v = 3), e.v === 3 && (e.quickbar = !1), e.v === 4 && (e.suits = G.suits, e.notifications.banners = G.notifications.banners, d = !0), e.v = o.v, Object.assign(o, Q(o, e)), d && a();
117
+ const l = localStorage.getItem("vuetify@user"), s = l ? JSON.parse(l) : {};
118
+ let r = s.v === p.v;
119
+ s.v || (s.pwaRefresh = !0, typeof s.api == "boolean" && (s.api = s.api ? "inline" : "link-only"), typeof s.rtl == "boolean" && (s.direction = s.rtl ? "rtl" : "ltr", delete s.rtl), typeof s.theme == "object" && (s.mixedTheme = s.theme.mixed, s.theme = s.theme.system ? "system" : s.theme.dark ? "dark" : "light"), Array.isArray(s.notifications) && (s.notifications = { read: s.notifications }), typeof s.last == "object" && (s.notifications.last = s.last, delete s.last)), s.v === 1 && (Array.isArray(s.composition) && (s.composition = "composition"), Array.isArray(s.notifications.last.banner) || (s.notifications = s.notifications || {}, s.notifications.last = s.notifications.last || {}, s.notifications.last.banner = [])), s.v === 2 && (s.syncSettings = !0, s.disableAds = !1, s.v = 3), s.v === 3 && (s.quickbar = !1), s.v === 4 && (s.suits = ke.suits, s.notifications.banners = ke.notifications.banners, r = !0), s.v = p.v, Object.assign(p, Oe(p, s)), r && i();
98
120
  }
99
- function a() {
100
- X && localStorage.setItem("vuetify@user", JSON.stringify(o, null, 2));
121
+ function i() {
122
+ Fe && localStorage.setItem("vuetify@user", JSON.stringify(p, null, 2));
101
123
  }
102
124
  function n() {
103
- X && (Object.assign(o, Q({}, G)), a());
125
+ Fe && (Object.assign(p, Oe({}, ke)), i());
104
126
  }
105
- return t(), {
106
- ...de(o),
107
- load: t,
108
- save: a,
127
+ return e(), {
128
+ ...pt(p),
129
+ load: e,
130
+ save: i,
109
131
  reset: n
110
132
  };
111
- }), I = D("auth", () => {
112
- const o = L(!1), t = L(null), a = J(), n = T(), r = Z(), e = B(!1), d = g(() => {
113
- var f, i;
114
- return !a.url || ((f = t.value) == null ? void 0 : f.isAdmin) || !!((i = t.value) != null && i.sponsorships.some((p) => p.isActive));
133
+ }), F = J("auth", () => {
134
+ const p = H(!1), e = H(null), i = ge(), n = O(), l = Pe(), s = D(!1), r = w(() => {
135
+ var _, y;
136
+ return !i.url || ((_ = e.value) == null ? void 0 : _.isAdmin) || !!((y = e.value) != null && y.sponsorships.some(($) => $.isActive));
115
137
  });
116
- let y = !!V();
117
- F(t, (f) => {
118
- if (!(f != null && f.settings))
138
+ let c = !!S();
139
+ N(e, (_) => {
140
+ if (!(_ != null && _.settings))
119
141
  return;
120
- const i = localStorage.getItem("vuetify@user") || "{}";
121
- JSON.stringify(f.settings, null, 2) !== i && (y = !0, Object.assign(n, f.settings));
142
+ const y = localStorage.getItem("vuetify@user") || "{}";
143
+ JSON.stringify(_.settings, null, 2) !== y && (c = !0, Object.assign(n, _.settings));
122
144
  }), n.$subscribe(() => {
123
- y || m(), y = !1;
145
+ c || f(), c = !1;
124
146
  });
125
- async function m() {
126
- if (!(!t.value || !n.syncSettings))
147
+ async function f() {
148
+ if (!(!e.value || !n.syncSettings))
127
149
  try {
128
- await a.post("/user/settings", { settings: n.$state });
129
- } catch (f) {
130
- console.error(f);
150
+ await i.post("/user/settings", { settings: n.$state });
151
+ } catch (_) {
152
+ console.error(_);
131
153
  }
132
154
  }
133
- async function c(f = !1) {
134
- if (c.promise)
135
- return c.promise;
136
- e.value = !0, c.promise = fetch(`${a.url}/auth/verify`, {
155
+ async function u(_ = !1) {
156
+ if (u.promise)
157
+ return u.promise;
158
+ s.value = !0, u.promise = fetch(`${i.url}/auth/verify`, {
137
159
  credentials: "include",
138
- headers: f ? {
160
+ headers: _ ? {
139
161
  "Cache-Control": "no-cache"
140
162
  } : void 0
141
163
  }).then(
142
- async (i) => {
143
- i.ok ? t.value = (await i.json()).user : i.status === 401 ? t.value = null : console.error(i.statusText);
164
+ async (y) => {
165
+ y.ok ? e.value = (await y.json()).user : y.status === 401 ? e.value = null : console.error(y.statusText);
144
166
  },
145
167
  () => {
146
168
  }
147
169
  ).finally(() => {
148
- e.value = !1, c.promise = null;
170
+ s.value = !1, u.promise = null;
149
171
  });
150
172
  }
151
- c.promise = null;
152
- async function b(f = "github") {
153
- e.value = !0;
154
- const i = `${a.url}/auth/${f}/redirect`, p = 400, x = 600, R = window.screenX + (window.innerWidth - p) / 2, U = window.screenY + (window.innerHeight - x) / 2, $ = window.open(
173
+ u.promise = null;
174
+ async function m(_ = "github") {
175
+ s.value = !0;
176
+ const y = `${i.url}/auth/${_}/redirect`, $ = 400, z = 600, T = window.screenX + (window.innerWidth - $) / 2, te = window.screenY + (window.innerHeight - z) / 2, q = window.open(
155
177
  "",
156
178
  "vuetify:authorize:popup",
157
- `popup,left=${R},top=${U},width=${p},height=${x},resizable`
179
+ `popup,left=${T},top=${te},width=${$},height=${z},resizable`
158
180
  );
159
- if (!$) {
181
+ if (!q) {
160
182
  console.error("Failed to open popup");
161
183
  return;
162
184
  }
163
- $.location.href = i;
164
- let q = -1, H = -1;
165
- function P(s) {
166
- var l;
167
- s.origin === a.url && ((l = s.data) == null ? void 0 : l.type) === "auth-response" && (s.data.status === "success" ? (t.value || localStorage.setItem("vuetify@lastLoginProvider", f), t.value = s.data.body.user, r.push("/user/dashboard/"), m()) : console.error(s.data.message), E());
185
+ q.location.href = y;
186
+ let Ve = -1, ce = -1;
187
+ function ue(g) {
188
+ var C;
189
+ g.origin === i.url && ((C = g.data) == null ? void 0 : C.type) === "auth-response" && (g.data.status === "success" ? (e.value || localStorage.setItem("vuetify@lastLoginProvider", _), e.value = g.data.body.user, l.push("/user/dashboard/"), f()) : console.error(g.data.message), ie());
168
190
  }
169
- function E() {
170
- window.removeEventListener("message", P), window.clearInterval(q), window.clearTimeout(H), $ == null || $.close(), e.value = !1;
191
+ function ie() {
192
+ window.removeEventListener("message", ue), window.clearInterval(Ve), window.clearTimeout(ce), q == null || q.close(), s.value = !1;
171
193
  }
172
- window.addEventListener("message", P), q = window.setInterval(() => {
173
- !$ || $.closed ? (console.error("Auth popup closed"), E()) : $.postMessage({ type: "auth-request" }, "*");
174
- }, 1e3), H = window.setTimeout(() => {
175
- E(), console.error("Auth timed out");
194
+ window.addEventListener("message", ue), Ve = window.setInterval(() => {
195
+ !q || q.closed ? (console.error("Auth popup closed"), ie()) : q.postMessage({ type: "auth-request" }, "*");
196
+ }, 1e3), ce = window.setTimeout(() => {
197
+ ie(), console.error("Auth timed out");
176
198
  }, 120 * 1e3);
177
199
  }
178
- async function v(f) {
179
- e.value = !0;
180
- const i = f ? `/auth/${f}/logout` : "/auth/logout";
200
+ async function b(_) {
201
+ s.value = !0;
202
+ const y = _ ? `/auth/${_}/logout` : "/auth/logout";
181
203
  try {
182
- await a.post(i), await c(!0), t.value = null;
183
- } catch (p) {
184
- console.error(p);
204
+ await i.post(y), await u(!0), e.value = null;
205
+ } catch ($) {
206
+ console.error($);
185
207
  } finally {
186
- r.push("/"), e.value = !1;
208
+ l.push("/"), s.value = !1;
187
209
  }
188
210
  }
189
- function w(f) {
190
- var i;
191
- return (i = t.value) == null ? void 0 : i.identities.find((p) => p.provider === f);
211
+ function V(_) {
212
+ var y;
213
+ return (y = e.value) == null ? void 0 : y.identities.find(($) => $.provider === _);
192
214
  }
193
- function V() {
215
+ function S() {
194
216
  return localStorage.getItem("vuetify@lastLoginProvider");
195
217
  }
196
- return c(), {
197
- user: t,
198
- url: a.url,
199
- dialog: o,
200
- isLoading: e,
201
- findIdentity: w,
202
- verify: c,
203
- login: b,
204
- logout: v,
205
- isSubscriber: d,
206
- lastLoginProvider: V,
207
- sync: m
218
+ return u(), {
219
+ user: e,
220
+ url: i.url,
221
+ dialog: p,
222
+ isLoading: s,
223
+ findIdentity: V,
224
+ verify: u,
225
+ login: m,
226
+ logout: b,
227
+ isSubscriber: r,
228
+ lastLoginProvider: S,
229
+ sync: f
230
+ };
231
+ }), De = J("notifications", () => {
232
+ const p = ge(), e = O(), i = H([]), n = D(!1), l = w(() => i.value.filter((c) => !e.notifications.read.includes(c.slug))), s = w(() => i.value.filter((c) => e.notifications.read.includes(c.slug)));
233
+ async function r() {
234
+ try {
235
+ n.value = !0;
236
+ const c = await p.get("/one/notifications");
237
+ i.value = c.notifications;
238
+ } catch {
239
+ } finally {
240
+ n.value = !1;
241
+ }
242
+ return i.value;
243
+ }
244
+ return {
245
+ isLoading: n,
246
+ all: i,
247
+ get: r,
248
+ read: s,
249
+ unread: l
208
250
  };
251
+ }), bo = /* @__PURE__ */ k({
252
+ __name: "VoNotificationsTotalBadge",
253
+ setup(p) {
254
+ const e = F(), i = De(), n = O(), l = w(() => n.notifications.show ? i.unread.length : 0);
255
+ return (s, r) => (d(), v(He, {
256
+ content: l.value,
257
+ dot: !!t(e).user,
258
+ "model-value": l.value > 0,
259
+ color: "error",
260
+ location: "start top"
261
+ }, {
262
+ default: a(() => [
263
+ R(s.$slots, "default")
264
+ ]),
265
+ _: 3
266
+ }, 8, ["content", "dot", "model-value"]));
267
+ }
268
+ }), ae = /* @__PURE__ */ k({
269
+ __name: "VoBtn",
270
+ props: {
271
+ readonly: { type: Boolean }
272
+ },
273
+ setup(p) {
274
+ const e = p;
275
+ return (i, n) => (d(), v(G, {
276
+ style: Qe({
277
+ pointerEvents: e.readonly ? "none" : void 0
278
+ }),
279
+ tabindex: e.readonly ? -1 : void 0,
280
+ class: "text-none font-weight-regular",
281
+ color: "primary",
282
+ size: "small",
283
+ variant: "flat"
284
+ }, W({
285
+ loader: a(() => [
286
+ i.$slots.loader ? x("", !0) : (d(), v(yt, {
287
+ key: 0,
288
+ indeterminate: "disable-shrink",
289
+ size: "16",
290
+ width: "2"
291
+ })),
292
+ R(i.$slots, "loader")
293
+ ]),
294
+ _: 2
295
+ }, [
296
+ i.$slots.default ? {
297
+ name: "default",
298
+ fn: a(() => [
299
+ R(i.$slots, "default")
300
+ ]),
301
+ key: "0"
302
+ } : void 0
303
+ ]), 1032, ["style", "tabindex"]));
304
+ }
305
+ }), yo = { class: "text-body-2" }, Vo = /* @__PURE__ */ h("div", { class: "text-caption mt-n1" }, "Last Used", -1), at = /* @__PURE__ */ k({
306
+ __name: "VoAuthDiscord",
307
+ setup(p) {
308
+ const e = F(), i = w(() => e.user && e.findIdentity("discord")), n = w(() => e.user ? i.value ? "Connected to Discord" : "Connect Discord" : "Login with Discord");
309
+ return (l, s) => (d(), v(_e, {
310
+ "prepend-icon": `svg:${t(Ee)}`,
311
+ "base-color": "#5865F2",
312
+ rounded: "pill",
313
+ variant: "flat",
314
+ slim: "",
315
+ onClick: s[0] || (s[0] = (r) => t(e).login("discord"))
316
+ }, W({
317
+ title: a(() => [
318
+ h("span", yo, A(n.value), 1)
319
+ ]),
320
+ _: 2
321
+ }, [
322
+ !t(e).user && t(e).lastLoginProvider() === "discord" ? {
323
+ name: "subtitle",
324
+ fn: a(() => [
325
+ Vo
326
+ ]),
327
+ key: "0"
328
+ } : void 0
329
+ ]), 1032, ["prepend-icon"]));
330
+ }
331
+ }), ko = { class: "text-body-2" }, xo = /* @__PURE__ */ h("div", { class: "text-caption mt-n1" }, "Last Used", -1), it = /* @__PURE__ */ k({
332
+ __name: "VoAuthGithub",
333
+ setup(p) {
334
+ const e = F(), i = w(() => e.user && e.findIdentity("github")), n = w(() => e.user ? i.value ? "Connected to GitHub" : "Connect GitHub" : "Login with GitHub");
335
+ return (l, s) => (d(), v(_e, {
336
+ "prepend-icon": `svg:${t(We)}`,
337
+ "base-color": "#2a2a2a",
338
+ rounded: "pill",
339
+ variant: "flat",
340
+ slim: "",
341
+ onClick: s[0] || (s[0] = (r) => t(e).login("github"))
342
+ }, W({
343
+ title: a(() => [
344
+ h("span", ko, A(n.value), 1)
345
+ ]),
346
+ _: 2
347
+ }, [
348
+ !t(e).user && t(e).lastLoginProvider() === "github" ? {
349
+ name: "subtitle",
350
+ fn: a(() => [
351
+ xo
352
+ ]),
353
+ key: "0"
354
+ } : void 0
355
+ ]), 1032, ["prepend-icon"]));
356
+ }
357
+ }), $o = { class: "pa-4 d-flex flex-column ga-4" }, lt = /* @__PURE__ */ k({
358
+ __name: "VoAuthListItem",
359
+ setup(p) {
360
+ const e = F(), i = O(), n = D(!e.user && !e.isLoading);
361
+ N(() => e.user, (s) => {
362
+ n.value = !s;
363
+ });
364
+ function l() {
365
+ e.user && (n.value = !n.value);
366
+ }
367
+ return (s, r) => {
368
+ const c = it, f = at;
369
+ return d(), v(M, {
370
+ variant: n.value ? "tonal" : "text",
371
+ class: "ma-2",
372
+ rounded: "lg"
373
+ }, {
374
+ default: a(() => [
375
+ o(ee, { class: "py-0" }, {
376
+ default: a(() => [
377
+ o(_e, {
378
+ link: !!t(e).user,
379
+ "prepend-icon": `svg:${t(e).user && t(i).syncSettings ? t(Vt) : t(kt)}`,
380
+ title: t(e).user && t(i).syncSettings ? "Sync is on" : "Sync is paused",
381
+ class: "mb-0",
382
+ rounded: "b-0",
383
+ nav: "",
384
+ slim: "",
385
+ onClick: l
386
+ }, {
387
+ append: a(() => [
388
+ o($e, null, {
389
+ default: a(() => [
390
+ t(e).user && (n.value || !t(i).syncSettings) ? (d(), v(tt, {
391
+ key: 0,
392
+ modelValue: t(i).syncSettings,
393
+ "onUpdate:modelValue": r[0] || (r[0] = (u) => t(i).syncSettings = u),
394
+ color: t(i).syncSettings ? "success" : void 0,
395
+ density: "compact",
396
+ "hide-details": "",
397
+ inset: "",
398
+ onClick: r[1] || (r[1] = Te(() => {
399
+ }, ["stop"]))
400
+ }, {
401
+ thumb: a(() => [
402
+ o(ne, {
403
+ color: t(i).syncSettings ? "success" : void 0
404
+ }, null, 8, ["color"])
405
+ ]),
406
+ _: 1
407
+ }, 8, ["modelValue", "color"])) : x("", !0)
408
+ ]),
409
+ _: 1
410
+ })
411
+ ]),
412
+ _: 1
413
+ }, 8, ["link", "prepend-icon", "title"]),
414
+ o(he, null, {
415
+ default: a(() => [
416
+ !t(e).user && !t(e).isLoading || n.value ? (d(), v(qe, {
417
+ key: 0,
418
+ border: "t",
419
+ color: "transparent"
420
+ }, {
421
+ default: a(() => [
422
+ h("div", $o, [
423
+ o(c, {
424
+ onClick: r[2] || (r[2] = (u) => n.value = !1)
425
+ }),
426
+ o(f, {
427
+ onClick: r[3] || (r[3] = (u) => n.value = !1)
428
+ })
429
+ ])
430
+ ]),
431
+ _: 1
432
+ })) : x("", !0)
433
+ ]),
434
+ _: 1
435
+ })
436
+ ]),
437
+ _: 1
438
+ })
439
+ ]),
440
+ _: 1
441
+ }, 8, ["variant"]);
442
+ };
443
+ }
444
+ }), X = /* @__PURE__ */ k({
445
+ __name: "VoListItem",
446
+ setup(p) {
447
+ return (e, i) => (d(), v(_e, { slim: "" }, W({
448
+ default: a(() => [
449
+ R(e.$slots, "default")
450
+ ]),
451
+ _: 2
452
+ }, [
453
+ e.$slots.prepend ? {
454
+ name: "prepend",
455
+ fn: a(() => [
456
+ R(e.$slots, "prepend")
457
+ ]),
458
+ key: "0"
459
+ } : void 0,
460
+ e.$slots.title ? {
461
+ name: "title",
462
+ fn: a(() => [
463
+ R(e.$slots, "title")
464
+ ]),
465
+ key: "1"
466
+ } : void 0,
467
+ e.$slots.append ? {
468
+ name: "append",
469
+ fn: a(() => [
470
+ R(e.$slots, "append")
471
+ ]),
472
+ key: "2"
473
+ } : void 0
474
+ ]), 1024));
475
+ }
476
+ }), wo = /* @__PURE__ */ k({
477
+ __name: "VoAuthLogoutListItem",
478
+ setup(p) {
479
+ const e = F(), i = D(!1);
480
+ async function n() {
481
+ i.value = !0, await e.logout(), i.value = !1;
482
+ }
483
+ return (l, s) => {
484
+ const r = X;
485
+ return d(), v(r, {
486
+ disabled: i.value,
487
+ loading: i.value,
488
+ "prepend-icon": `svg:${t(xt)}`,
489
+ class: "mb-0",
490
+ title: "Logout",
491
+ link: "",
492
+ onClick: n
493
+ }, null, 8, ["disabled", "loading", "prepend-icon"]);
494
+ };
495
+ }
496
+ }), Ue = /* @__PURE__ */ k({
497
+ __name: "VoDialog",
498
+ props: /* @__PURE__ */ mt({
499
+ prependIcon: {},
500
+ title: {}
501
+ }, {
502
+ modelValue: { type: Boolean },
503
+ modelModifiers: {}
504
+ }),
505
+ emits: ["update:modelValue"],
506
+ setup(p) {
507
+ const e = le(p, "modelValue"), i = se();
508
+ return (n, l) => (d(), v(ot, {
509
+ modelValue: e.value,
510
+ "onUpdate:modelValue": l[1] || (l[1] = (s) => e.value = s),
511
+ fullscreen: t(i).xs.value,
512
+ "max-height": t(i).xs.value ? "100%" : 800,
513
+ "max-width": t(i).xs.value ? "100%" : 800,
514
+ activator: "parent",
515
+ height: "100%"
516
+ }, {
517
+ default: a(({ isActive: s }) => [
518
+ o(M, {
519
+ "prepend-icon": n.prependIcon,
520
+ title: n.title,
521
+ class: "overflow-hidden",
522
+ height: "inherit"
523
+ }, W({
524
+ append: a(() => [
525
+ R(n.$slots, "append"),
526
+ o(G, {
527
+ density: "comfortable",
528
+ icon: "$close",
529
+ size: "small",
530
+ variant: "text",
531
+ onClick: l[0] || (l[0] = (r) => e.value = !e.value)
532
+ })
533
+ ]),
534
+ default: a(() => [
535
+ o(E, { class: "mt-4" }),
536
+ R(n.$slots, "default")
537
+ ]),
538
+ _: 2
539
+ }, [
540
+ n.$slots.prepend ? {
541
+ name: "prepend",
542
+ fn: a(() => [
543
+ R(n.$slots, "prepend")
544
+ ]),
545
+ key: "0"
546
+ } : void 0,
547
+ n.$slots.actions ? {
548
+ name: "actions",
549
+ fn: a(() => [
550
+ R(n.$slots, "actions", { isActive: s })
551
+ ]),
552
+ key: "1"
553
+ } : void 0
554
+ ]), 1032, ["prepend-icon", "title"])
555
+ ]),
556
+ _: 3
557
+ }, 8, ["modelValue", "fullscreen", "max-height", "max-width"]));
558
+ }
559
+ }), rt = /* @__PURE__ */ k({
560
+ __name: "VoSwitch",
561
+ props: {
562
+ disabled: { type: Boolean }
563
+ },
564
+ setup(p) {
565
+ return (e, i) => (d(), v(tt, {
566
+ disabled: e.disabled,
567
+ "true-icon": `svg:${t(re)}`,
568
+ color: "primary",
569
+ density: "compact",
570
+ inset: ""
571
+ }, W({
572
+ thumb: a(() => [
573
+ o(I, {
574
+ color: e.disabled ? void 0 : "primary"
575
+ }, null, 8, ["color"])
576
+ ]),
577
+ _: 2
578
+ }, [
579
+ e.$slots.label ? {
580
+ name: "label",
581
+ fn: a(() => [
582
+ R(e.$slots, "label")
583
+ ]),
584
+ key: "0"
585
+ } : void 0
586
+ ]), 1032, ["disabled", "true-icon"]));
587
+ }
588
+ }), So = {
589
+ key: 1,
590
+ class: "mb-3 text-caption text-medium-emphasis"
591
+ }, be = /* @__PURE__ */ k({
592
+ __name: "VoDialogSubheader",
593
+ props: {
594
+ title: {},
595
+ text: {}
596
+ },
597
+ setup(p) {
598
+ return (e, i) => (d(), L(U, null, [
599
+ e.title ? (d(), v(ze, {
600
+ key: 0,
601
+ class: "font-weight-black"
602
+ }, {
603
+ default: a(() => [
604
+ B(A(e.title), 1)
605
+ ]),
606
+ _: 1
607
+ })) : x("", !0),
608
+ e.text ? (d(), L("div", So, A(e.text), 1)) : x("", !0)
609
+ ], 64));
610
+ }
611
+ }), Co = { key: 0 }, Lo = /* @__PURE__ */ k({
612
+ __name: "VoSettingsPageSuitOption",
613
+ setup(p) {
614
+ const e = O(), i = [
615
+ {
616
+ title: "Choose a page suit",
617
+ value: "",
618
+ disabled: !0
619
+ },
620
+ {
621
+ title: "Blackguard",
622
+ prependIcon: `svg:${Je}`,
623
+ value: "blackguard"
624
+ }
625
+ // {
626
+ // title: 'Polaris',
627
+ // prependIcon: `svg:${mdiImageFilterHdr}`,
628
+ // value: 'polaris',
629
+ // },
630
+ // {
631
+ // title: 'Nebula',
632
+ // prependIcon: `svg:${mdiRocketLaunchOutline}`,
633
+ // value: 'nebula',
634
+ // },
635
+ ];
636
+ return (n, l) => {
637
+ const s = rt, r = be;
638
+ return d(), L(U, null, [
639
+ o(s, {
640
+ modelValue: t(e).suits.show,
641
+ "onUpdate:modelValue": l[0] || (l[0] = (c) => t(e).suits.show = c),
642
+ class: "mb-2",
643
+ label: "Enable Page suits",
644
+ messages: "Customize layout elements with a unique background, styled after one of our themed releases."
645
+ }, null, 8, ["modelValue"]),
646
+ o(he, null, {
647
+ default: a(() => [
648
+ t(e).suits.show ? (d(), L("div", Co, [
649
+ o(ro, {
650
+ modelValue: t(e).suits.suit,
651
+ "onUpdate:modelValue": l[1] || (l[1] = (c) => t(e).suits.suit = c),
652
+ items: i,
653
+ density: "compact",
654
+ placeholder: "Choose a page suit",
655
+ style: { "max-width": "300px" },
656
+ variant: "outlined",
657
+ clearable: "",
658
+ "item-props": "",
659
+ "single-line": ""
660
+ }, {
661
+ selection: a(({ item: c }) => [
662
+ o(I, {
663
+ icon: c.props.prependIcon,
664
+ size: "x-small",
665
+ start: ""
666
+ }, null, 8, ["icon"]),
667
+ B(" " + A(c.title), 1)
668
+ ]),
669
+ _: 1
670
+ }, 8, ["modelValue"]),
671
+ o(r, { text: "Select your suit elements to display the background image:" }),
672
+ o(lo, {
673
+ modelValue: t(e).suits.elements,
674
+ "onUpdate:modelValue": l[2] || (l[2] = (c) => t(e).suits.elements = c),
675
+ color: "primary",
676
+ filter: "",
677
+ multiple: ""
678
+ }, {
679
+ default: a(() => [
680
+ o(Y, {
681
+ "append-icon": `svg:${t($t)}`,
682
+ "filter-icon": "$success",
683
+ text: "App Bar",
684
+ value: "app-bar",
685
+ variant: "flat"
686
+ }, {
687
+ append: a(() => [
688
+ o(E, {
689
+ class: "ms-2 border-opacity-50",
690
+ vertical: ""
691
+ }),
692
+ o(I, { size: "x-small" })
693
+ ]),
694
+ _: 1
695
+ }, 8, ["append-icon"]),
696
+ o(Y, {
697
+ "append-icon": `svg:${t(wt)}`,
698
+ "filter-icon": "$success",
699
+ text: "Navigation Drawer",
700
+ value: "drawer",
701
+ variant: "flat"
702
+ }, {
703
+ append: a(() => [
704
+ o(E, {
705
+ class: "ms-2 border-opacity-50",
706
+ vertical: ""
707
+ }),
708
+ o(I, { size: "x-small" })
709
+ ]),
710
+ _: 1
711
+ }, 8, ["append-icon"]),
712
+ o(Y, {
713
+ "append-icon": "$info",
714
+ "filter-icon": "$success",
715
+ text: "Footer",
716
+ value: "footer",
717
+ variant: "flat"
718
+ }, {
719
+ append: a(() => [
720
+ o(E, {
721
+ class: "ms-2 border-opacity-50",
722
+ vertical: ""
723
+ }),
724
+ o(I, { size: "x-small" })
725
+ ]),
726
+ _: 1
727
+ })
728
+ ]),
729
+ _: 1
730
+ }, 8, ["modelValue"])
731
+ ])) : x("", !0)
732
+ ]),
733
+ _: 1
734
+ })
735
+ ], 64);
736
+ };
737
+ }
209
738
  });
210
- /*!
211
- * vue-router v4.3.0
212
- * (c) 2024 Eduardo San Martin Morote
213
- * @license MIT
214
- */
215
- var ee;
216
- (function(o) {
217
- o.pop = "pop", o.push = "push";
218
- })(ee || (ee = {}));
219
- var te;
220
- (function(o) {
221
- o.back = "back", o.forward = "forward", o.unknown = "";
222
- })(te || (te = {}));
223
- Symbol(process.env.NODE_ENV !== "production" ? "navigation failure" : "");
224
- var ne;
225
- (function(o) {
226
- o[o.aborted = 4] = "aborted", o[o.cancelled = 8] = "cancelled", o[o.duplicated = 16] = "duplicated";
227
- })(ne || (ne = {}));
228
- Symbol(process.env.NODE_ENV !== "production" ? "router view location matched" : "");
229
- Symbol(process.env.NODE_ENV !== "production" ? "router view depth" : "");
230
- Symbol(process.env.NODE_ENV !== "production" ? "router" : "");
231
- const Pe = Symbol(process.env.NODE_ENV !== "production" ? "route location" : "");
232
- Symbol(process.env.NODE_ENV !== "production" ? "router view location" : "");
233
- function ze() {
234
- return fe(Pe);
235
- }
236
- function Me() {
237
- const o = ze();
238
- return g(
239
- () => o.query
739
+ function ye() {
740
+ const p = bt();
741
+ return w(
742
+ () => p.query
240
743
  );
241
744
  }
242
- const qe = D("one", () => {
243
- const o = Me(), t = o.value.session_id, a = Z(), n = I(), r = J(), e = B(!1), d = L(!1), y = L(), m = L([]), c = g(() => {
244
- var s;
245
- return (s = y.value) == null ? void 0 : s.items[0].plan.interval;
246
- }), b = g(() => {
247
- var s;
248
- return (s = n.user) == null ? void 0 : s.sponsorships.find((l) => l.platform === "stripe" && l.tierName.startsWith("sub_"));
249
- }), v = g(() => {
250
- var s;
251
- return !!((s = b.value) != null && s.tierName);
252
- }), w = g(() => {
253
- var s;
254
- return (s = b.value) == null ? void 0 : s.isActive;
255
- }), V = g(() => {
256
- var s;
257
- return (s = n.user) == null ? void 0 : s.sponsorships.find((l) => l.platform === "github");
258
- }), f = g(() => {
259
- var s;
260
- return (s = n.user) == null ? void 0 : s.sponsorships.find((l) => l.platform === "discord");
261
- }), i = g(() => {
262
- var s;
263
- return (s = n.user) == null ? void 0 : s.sponsorships.find((l) => l.platform === "patreon");
264
- }), p = g(() => {
265
- var s;
266
- return (s = n.user) == null ? void 0 : s.sponsorships.reduce((l, A) => {
267
- if (!A.isActive || A.interval === "once" || A.platform === "stripe")
268
- return l;
269
- const ce = A.interval === "month" ? A.amount : A.amount / 12;
270
- return l + ce / 100;
745
+ const j = J("one", () => {
746
+ const p = ye(), e = p.value.session_id, i = Pe(), n = F(), l = ge(), s = D(!1), r = H(!1), c = H(), f = H([]), u = w(() => {
747
+ var g;
748
+ return (g = c.value) == null ? void 0 : g.items[0].plan.interval;
749
+ }), m = w(() => {
750
+ var g;
751
+ return (g = n.user) == null ? void 0 : g.sponsorships.find((C) => C.platform === "stripe" && C.tierName.startsWith("sub_"));
752
+ }), b = w(() => {
753
+ var g;
754
+ return !!((g = m.value) != null && g.tierName);
755
+ }), V = w(() => {
756
+ var g;
757
+ return (g = m.value) == null ? void 0 : g.isActive;
758
+ }), S = w(() => {
759
+ var g;
760
+ return (g = n.user) == null ? void 0 : g.sponsorships.find((C) => C.platform === "github");
761
+ }), _ = w(() => {
762
+ var g;
763
+ return (g = n.user) == null ? void 0 : g.sponsorships.find((C) => C.platform === "discord");
764
+ }), y = w(() => {
765
+ var g;
766
+ return (g = n.user) == null ? void 0 : g.sponsorships.find((C) => C.platform === "patreon");
767
+ }), $ = w(() => {
768
+ var g;
769
+ return (g = n.user) == null ? void 0 : g.sponsorships.reduce((C, Z) => {
770
+ if (!Z.isActive || Z.interval === "once" || Z.platform === "stripe")
771
+ return C;
772
+ const ut = Z.interval === "month" ? Z.amount : Z.amount / 12;
773
+ return C + ut / 100;
271
774
  }, 0);
272
775
  });
273
- pe(async () => {
274
- t && await x();
275
- }), F(d, (s) => {
276
- s && E();
277
- }), F(o, (s) => {
278
- if (s.one !== "subscribe" || n.user)
776
+ ft(async () => {
777
+ e && await z();
778
+ }), N(r, (g) => {
779
+ g && ie();
780
+ }), N(p, (g) => {
781
+ if (g.one !== "subscribe" || n.user)
279
782
  return;
280
- console.log(s.one), n.dialog = !0;
281
- const l = F(() => n.user, (A) => {
282
- A && (n.dialog = !1, l());
783
+ console.log(g.one), n.dialog = !0;
784
+ const C = N(() => n.user, (Z) => {
785
+ Z && (n.dialog = !1, C());
283
786
  });
284
- }, { immediate: !0 }), F(w, (s, l) => {
285
- s === !1 && l !== !0 || H();
787
+ }, { immediate: !0 }), N(V, (g, C) => {
788
+ g === !1 && C !== !0 || ce();
286
789
  });
287
- async function x() {
790
+ async function z() {
288
791
  try {
289
- e.value = !0;
290
- const s = await r.post("/one/activate", { sessionId: t });
291
- n.user = s.user;
292
- const l = new URL(window.location.href);
293
- l.searchParams.delete("session_id"), history.pushState(null, "", l.toString()), P();
792
+ s.value = !0;
793
+ const g = await l.post("/one/activate", { sessionId: e });
794
+ n.user = g.user;
795
+ const C = new URL(window.location.href);
796
+ C.searchParams.delete("session_id"), history.pushState(null, "", C.toString()), ue();
294
797
  } catch {
295
798
  } finally {
296
- e.value = !1;
799
+ s.value = !1;
297
800
  }
298
801
  }
299
- async function R() {
300
- window.open(`${r.url}/one/manage`, "_blank");
802
+ async function T() {
803
+ window.open(`${l.url}/one/manage`, "_blank");
301
804
  }
302
- async function U(s) {
303
- e.value = !0, window.location.href = `${r.url}/one/subscribe?interval=${s}`;
805
+ async function te(g) {
806
+ s.value = !0, window.location.href = `${l.url}/one/subscribe?interval=${g}`;
304
807
  }
305
- async function $() {
306
- var s;
307
- if (b.value)
808
+ async function q() {
809
+ var g;
810
+ if (m.value)
308
811
  try {
309
- e.value = !0;
310
- const l = await r.post(
311
- `/one/cancel?subscriptionId=${(s = b.value) == null ? void 0 : s.tierName}`
812
+ s.value = !0;
813
+ const C = await l.post(
814
+ `/one/cancel?subscriptionId=${(g = m.value) == null ? void 0 : g.tierName}`
312
815
  );
313
- n.user = l.user;
816
+ n.user = C.user;
314
817
  } catch {
315
818
  } finally {
316
- e.value = !1;
819
+ s.value = !1;
317
820
  }
318
821
  }
319
- async function q(s) {
320
- if (b.value)
822
+ async function Ve(g) {
823
+ if (m.value)
321
824
  try {
322
- e.value = !0;
323
- const l = await r.post("/one/modify", {
324
- subscriptionId: b.value.tierName,
325
- interval: s
825
+ s.value = !0;
826
+ const C = await l.post("/one/modify", {
827
+ subscriptionId: m.value.tierName,
828
+ interval: g
326
829
  });
327
- n.user = l.user;
830
+ n.user = C.user;
831
+ } catch {
832
+ } finally {
833
+ s.value = !1;
834
+ }
835
+ }
836
+ async function ce() {
837
+ var g;
838
+ if (m.value)
839
+ try {
840
+ s.value = !0;
841
+ const C = await l.post(
842
+ `/one/verify?subscriptionId=${(g = m.value) == null ? void 0 : g.tierName}`
843
+ );
844
+ n.user = C.user;
328
845
  } catch {
329
846
  } finally {
330
- e.value = !1;
847
+ s.value = !1;
848
+ }
849
+ }
850
+ async function ue() {
851
+ try {
852
+ s.value = !0;
853
+ const g = await l.get("/one/info");
854
+ return c.value = g.subscription, f.value = g.invoices, g;
855
+ } catch {
856
+ } finally {
857
+ s.value = !1;
858
+ }
859
+ }
860
+ function ie() {
861
+ i.push({ query: {} });
862
+ }
863
+ return {
864
+ info: c,
865
+ interval: u,
866
+ invoices: f,
867
+ sessionId: e,
868
+ subscription: m,
869
+ monthlyTotal: $,
870
+ hasBilling: b,
871
+ isLoading: s,
872
+ isOpen: r,
873
+ isSubscriber: V,
874
+ github: S,
875
+ patreon: y,
876
+ discord: _,
877
+ activate: z,
878
+ cancel: q,
879
+ manage: T,
880
+ modify: Ve,
881
+ resetQuery: ie,
882
+ subscribe: te,
883
+ subscriptionInfo: ue,
884
+ verify: ce
885
+ };
886
+ });
887
+ function Ao() {
888
+ return {
889
+ blackguard: {
890
+ dark: !0,
891
+ colors: {
892
+ background: "#0f0c24",
893
+ primary: "#e7810d",
894
+ surface: "#1e184a",
895
+ info: "#9c27b0",
896
+ accent: "#FF4081",
897
+ success: "#84b38a",
898
+ "surface-light": "#362b89",
899
+ "surface-bright": "#564f8a",
900
+ "surface-variant": "#6458b4",
901
+ "on-surface-variant": "#FFFFFF",
902
+ "primary-darken-1": "#c56e0b",
903
+ secondary: "#8A2BE2",
904
+ "secondary-darken-1": "#7919cb",
905
+ error: "#FF5555",
906
+ warning: "#ffa726"
907
+ },
908
+ variables: {
909
+ "border-color": "#FFFFFF",
910
+ "border-opacity": 0.12,
911
+ "high-emphasis-opacity": 0.87,
912
+ "medium-emphasis-opacity": 0.6,
913
+ "disabled-opacity": 0.38,
914
+ "idle-opacity": 0.1,
915
+ "hover-opacity": 0.08,
916
+ "focus-opacity": 0.12,
917
+ "selected-opacity": 0.12,
918
+ "activated-opacity": 0.12,
919
+ "pressed-opacity": 0.16,
920
+ "dragged-opacity": 0.08,
921
+ "theme-kbd": "#212529",
922
+ "theme-on-kbd": "#FFFFFF",
923
+ "theme-code": "#343434",
924
+ "theme-on-code": "#CCCCCC"
925
+ }
926
+ },
927
+ nebula: {
928
+ dark: !0,
929
+ colors: {
930
+ background: "#0a0f1b",
931
+ surface: "#1c1f2a",
932
+ primary: "#4d5b9e",
933
+ "primary-darken-1": "#424a8c",
934
+ secondary: "#7a82d2",
935
+ accent: "#00eaff",
936
+ info: "#29b6f6",
937
+ warning: "#ffeb3b",
938
+ error: "#e91e63",
939
+ success: "#4caf50",
940
+ "on-surface-variant": "#5c6bc0",
941
+ "surface-light": "#2a3c66",
942
+ "secondary-darken-1": "#686f9a"
943
+ },
944
+ variables: {
945
+ "border-color": "#FFFFFF",
946
+ "border-opacity": 0.12,
947
+ "high-emphasis-opacity": 0.87,
948
+ "medium-emphasis-opacity": 0.6,
949
+ "disabled-opacity": 0.38,
950
+ "idle-opacity": 0.1,
951
+ "hover-opacity": 0.08,
952
+ "focus-opacity": 0.12,
953
+ "selected-opacity": 0.12,
954
+ "activated-opacity": 0.12,
955
+ "pressed-opacity": 0.16,
956
+ "dragged-opacity": 0.08,
957
+ "theme-kbd": "#212529",
958
+ "theme-on-kbd": "#FFFFFF",
959
+ "theme-code": "#343434",
960
+ "theme-on-code": "#CCCCCC"
331
961
  }
962
+ },
963
+ highContrast: {
964
+ dark: !0,
965
+ colors: {
966
+ background: "#000000",
967
+ surface: "#000000",
968
+ primary: "#ffD700",
969
+ "primary-darken-1": "#e6c300",
970
+ secondary: "#00ff00",
971
+ "secondary-darken-1": "#00e600",
972
+ accent: "#ff00ff",
973
+ info: "#31aaff",
974
+ warning: "#ffaa00",
975
+ error: "#ff0000",
976
+ success: "#00ff00",
977
+ "on-surface-variant": "#000000",
978
+ "surface-light": "#f2f2f2",
979
+ "surface-bright": "#e6e6e6",
980
+ "surface-variant": "#cccccc"
981
+ },
982
+ variables: {
983
+ "border-color": "#ffffff",
984
+ "border-opacity": 0.87,
985
+ "high-emphasis-opacity": 1,
986
+ "medium-emphasis-opacity": 0.87,
987
+ "disabled-opacity": 0.5,
988
+ "idle-opacity": 0.1,
989
+ "hover-opacity": 0.2,
990
+ "focus-opacity": 0.3,
991
+ "selected-opacity": 0.3,
992
+ "activated-opacity": 0.3,
993
+ "pressed-opacity": 0.4,
994
+ "dragged-opacity": 0.2,
995
+ "theme-kbd": "#000000",
996
+ "theme-on-kbd": "#ffffff",
997
+ "theme-code": "#000000",
998
+ "theme-on-code": "#ffffff"
999
+ }
1000
+ }
1001
+ };
1002
+ }
1003
+ const Be = J("settings", () => {
1004
+ const p = "https://cdn.vuetifyjs.com/docs/images/one/", e = F(), i = O(), n = io(), l = Ao(), s = {
1005
+ blackguard: {
1006
+ "app-bar": p + "suits/blackguard/blackguard-app-bar.png",
1007
+ drawer: p + "suits/blackguard/blackguard-app-drawer.png",
1008
+ footer: ""
1009
+ }
1010
+ // polaris: {
1011
+ // 'app-bar': '',
1012
+ // 'drawer': '',
1013
+ // footer: '',
1014
+ // },
1015
+ // nebula: {
1016
+ // 'app-bar': '',
1017
+ // 'drawer': '',
1018
+ // footer: '',
1019
+ // },
1020
+ }, r = w(() => {
1021
+ if (!i.suits.suit || !i.suits.show || !e.isSubscriber)
1022
+ return {};
1023
+ const c = s[i.suits.suit.toLowerCase()], f = {};
1024
+ for (const u of i.suits.elements)
1025
+ f[u] = c[u];
1026
+ return f;
1027
+ });
1028
+ return n.themes.value = {
1029
+ ...n.themes.value,
1030
+ ...l
1031
+ }, N(() => i.theme, (c) => {
1032
+ c === "system" ? n.global.name.value = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : n.global.name.value = c, i.theme = c;
1033
+ }, { immediate: !0 }), {
1034
+ suit: r,
1035
+ CDN_URL: p
1036
+ };
1037
+ }), Io = /* @__PURE__ */ k({
1038
+ __name: "VoSettingsDialog",
1039
+ props: {
1040
+ modelValue: { type: Boolean },
1041
+ modelModifiers: {}
1042
+ },
1043
+ emits: ["update:modelValue"],
1044
+ setup(p) {
1045
+ const e = le(p, "modelValue"), i = F(), n = j(), l = Be(), s = O(), r = [
1046
+ {
1047
+ title: "Light",
1048
+ subtitle: "A standard light theme.",
1049
+ image: l.CDN_URL + "themes/light.png",
1050
+ prependIcon: `svg:${St}`,
1051
+ value: "light"
1052
+ },
1053
+ {
1054
+ title: "Dark",
1055
+ subtitle: "A standard dark theme.",
1056
+ image: l.CDN_URL + "themes/dark.png",
1057
+ prependIcon: `svg:${Ct}`,
1058
+ value: "dark"
1059
+ },
1060
+ {
1061
+ title: "System",
1062
+ subtitle: "A theme based on the system preference.",
1063
+ image: l.CDN_URL + "themes/system.png",
1064
+ prependIcon: `svg:${Lt}`,
1065
+ value: "system"
1066
+ },
1067
+ {
1068
+ title: "Blackguard",
1069
+ subtitle: "A theme for v3.4 Blackguard.",
1070
+ image: l.CDN_URL + "themes/blackguard.png",
1071
+ prependIcon: `svg:${Je}`,
1072
+ value: "blackguard"
1073
+ },
1074
+ {
1075
+ title: "Polaris",
1076
+ subtitle: "A theme for v3.5 Polaris.",
1077
+ image: l.CDN_URL + "themes/polaris.png",
1078
+ prependIcon: `svg:${At}`,
1079
+ value: "polaris",
1080
+ disabled: !0
1081
+ },
1082
+ {
1083
+ title: "Nebula",
1084
+ subtitle: "A theme for v3.6 Nebula.",
1085
+ image: l.CDN_URL + "themes/nebula.png",
1086
+ prependIcon: `svg:${It}`,
1087
+ value: "nebula",
1088
+ disabled: !0
1089
+ },
1090
+ {
1091
+ title: "High Contrast",
1092
+ subtitle: "A theme for high contrast.",
1093
+ image: l.CDN_URL + "themes/high-contrast.png",
1094
+ prependIcon: `svg:${Dt}`,
1095
+ value: "highContrast",
1096
+ disabled: !0
1097
+ }
1098
+ ], c = ye();
1099
+ return N(c, async () => {
1100
+ c.value.one === "settings" && (n.isOpen = !0, await fe(), e.value = !0);
1101
+ }, { immediate: !0 }), (f, u) => {
1102
+ const m = be, b = Lo, V = rt, S = Ue;
1103
+ return d(), v(S, {
1104
+ modelValue: e.value,
1105
+ "onUpdate:modelValue": u[5] || (u[5] = (_) => e.value = _),
1106
+ "prepend-icon": `svg:${t(Ut)}`,
1107
+ title: "Settings"
1108
+ }, {
1109
+ default: a(() => [
1110
+ o(Ae, null, {
1111
+ default: a(() => [
1112
+ o(Ie, { scrollable: "" }, {
1113
+ default: a(() => [
1114
+ o(K, { class: "px-7" }, {
1115
+ default: a(() => [
1116
+ o(m, {
1117
+ text: "Customize your documentation experience with light and dark themes, as well as a combination of both named.",
1118
+ title: "Theme"
1119
+ }),
1120
+ o(nt, {
1121
+ modelValue: t(s).theme,
1122
+ "onUpdate:modelValue": u[0] || (u[0] = (_) => t(s).theme = _),
1123
+ mandatory: ""
1124
+ }, {
1125
+ default: a(() => [
1126
+ o(Se, { dense: "" }, {
1127
+ default: a(() => [
1128
+ (d(), L(U, null, oe(r, (_, y) => o(me, {
1129
+ key: y,
1130
+ cols: "12",
1131
+ md: "6"
1132
+ }, {
1133
+ default: a(() => [
1134
+ o(je, {
1135
+ value: _.value
1136
+ }, {
1137
+ default: a(({ toggle: $, isSelected: z }) => [
1138
+ o(Ce, null, {
1139
+ default: a(({ props: T, isHovering: te }) => [
1140
+ o(M, P({
1141
+ color: z ? "primary" : "surface-variant",
1142
+ disabled: _.disabled,
1143
+ image: _.image,
1144
+ "prepend-icon": _.prependIcon,
1145
+ ripple: !_.disabled,
1146
+ subtitle: _.disabled ? "In Development" : _.subtitle,
1147
+ title: _.title,
1148
+ height: "76",
1149
+ variant: "tonal"
1150
+ }, T, { onClick: $ }), {
1151
+ image: a(() => [
1152
+ o(Le, {
1153
+ style: Qe({
1154
+ filter: z || te ? "none" : "grayscale(100%)"
1155
+ })
1156
+ }, null, 8, ["style"])
1157
+ ]),
1158
+ _: 2
1159
+ }, 1040, ["color", "disabled", "image", "prepend-icon", "ripple", "subtitle", "title", "onClick"])
1160
+ ]),
1161
+ _: 2
1162
+ }, 1024)
1163
+ ]),
1164
+ _: 2
1165
+ }, 1032, ["value"])
1166
+ ]),
1167
+ _: 2
1168
+ }, 1024)), 64))
1169
+ ]),
1170
+ _: 1
1171
+ })
1172
+ ]),
1173
+ _: 1
1174
+ }, 8, ["modelValue"]),
1175
+ t(i).isSubscriber ? (d(), L(U, { key: 0 }, [
1176
+ o(E, { class: "mt-6 mb-4" }),
1177
+ o(b)
1178
+ ], 64)) : x("", !0)
1179
+ ]),
1180
+ _: 1
1181
+ }),
1182
+ o(E),
1183
+ o(K, { class: "px-7" }, {
1184
+ default: a(() => [
1185
+ o(m, {
1186
+ text: "These options change your browsing experience within Vuetify properties",
1187
+ title: "Experience"
1188
+ }),
1189
+ t(i).isSubscriber ? (d(), v(V, {
1190
+ key: 0,
1191
+ modelValue: t(s).disableAds,
1192
+ "onUpdate:modelValue": u[1] || (u[1] = (_) => t(s).disableAds = _),
1193
+ class: "mb-2",
1194
+ label: "Disable Ads",
1195
+ messages: "Disable traditional advertisements on all documentation pages."
1196
+ }, null, 8, ["modelValue"])) : x("", !0),
1197
+ o(V, {
1198
+ modelValue: t(s).quickbar,
1199
+ "onUpdate:modelValue": u[2] || (u[2] = (_) => t(s).quickbar = _),
1200
+ label: "Enable Quick Actions",
1201
+ messages: "Quick actions are located on the Vuetify One user menu and provide quick access to common tasks."
1202
+ }, null, 8, ["modelValue"])
1203
+ ]),
1204
+ _: 1
1205
+ }),
1206
+ o(E),
1207
+ t(i).isSubscriber ? (d(), v(K, {
1208
+ key: 0,
1209
+ class: "px-7"
1210
+ }, {
1211
+ default: a(() => [
1212
+ o(m, {
1213
+ text: "Vuetify will communicate with you through banners and notifications. You can disable these features here or reset your local notification cache.",
1214
+ title: "Communication"
1215
+ }),
1216
+ o(V, {
1217
+ modelValue: t(s).notifications.show,
1218
+ "onUpdate:modelValue": u[3] || (u[3] = (_) => t(s).notifications.show = _),
1219
+ class: "mb-2",
1220
+ label: "Enable Notifications",
1221
+ messages: "Notifications are short form messages that provide information about new releases, updates, and other important information."
1222
+ }, null, 8, ["modelValue"]),
1223
+ t(s).notifications.show ? (d(), v(V, {
1224
+ key: 0,
1225
+ modelValue: t(s).notifications.banners,
1226
+ "onUpdate:modelValue": u[4] || (u[4] = (_) => t(s).notifications.banners = _),
1227
+ class: "mb-2",
1228
+ label: "Enable Banners",
1229
+ messages: "Banners are located at the top of the screen and provide a callout for important information."
1230
+ }, null, 8, ["modelValue"])) : x("", !0)
1231
+ ]),
1232
+ _: 1
1233
+ })) : x("", !0)
1234
+ ]),
1235
+ _: 1
1236
+ })
1237
+ ]),
1238
+ _: 1
1239
+ })
1240
+ ]),
1241
+ _: 1
1242
+ }, 8, ["modelValue", "prepend-icon"]);
1243
+ };
1244
+ }
1245
+ }), Do = /* @__PURE__ */ k({
1246
+ __name: "VoSettingsListItem",
1247
+ setup(p) {
1248
+ const e = D(!1);
1249
+ return (i, n) => {
1250
+ const l = Io, s = X;
1251
+ return d(), v(s, {
1252
+ active: e.value,
1253
+ "prepend-icon": `svg:${t(Bt)}`,
1254
+ title: "Settings",
1255
+ link: ""
1256
+ }, {
1257
+ default: a(() => [
1258
+ o(l, {
1259
+ modelValue: e.value,
1260
+ "onUpdate:modelValue": n[0] || (n[0] = (r) => e.value = r)
1261
+ }, null, 8, ["modelValue"])
1262
+ ]),
1263
+ _: 1
1264
+ }, 8, ["active", "prepend-icon"]);
1265
+ };
1266
+ }
1267
+ }), Uo = { class: "text-caption" }, Bo = /* @__PURE__ */ k({
1268
+ __name: "VoSubscriptionInvoices",
1269
+ setup(p) {
1270
+ const e = we(), i = j();
1271
+ return (n, l) => {
1272
+ const s = be;
1273
+ return d(), v(Se, null, {
1274
+ default: a(() => [
1275
+ o(me, { cols: "12" }, {
1276
+ default: a(() => [
1277
+ o(s, {
1278
+ text: "View and download your invoice history.",
1279
+ title: "Invoice History"
1280
+ }),
1281
+ o(M, {
1282
+ height: "450",
1283
+ rounded: "lg",
1284
+ border: ""
1285
+ }, {
1286
+ default: a(() => [
1287
+ o(co, {
1288
+ items: t(i).invoices,
1289
+ loading: t(i).isLoading,
1290
+ sticky: ""
1291
+ }, {
1292
+ "item.date": a(({ item: r }) => [
1293
+ h("div", Uo, A(t(e).format(new Date(r.date * 1e3), "fullDateWithWeekday")), 1)
1294
+ ]),
1295
+ "item.amount": a(({ item: r }) => [
1296
+ B(" $" + A(r.amount / 100), 1)
1297
+ ]),
1298
+ "item.status": a(({ item: r }) => [
1299
+ o(Y, {
1300
+ text: r.status,
1301
+ border: "success sm",
1302
+ class: "text-capitalize",
1303
+ color: "success",
1304
+ size: "small",
1305
+ variant: "tonal",
1306
+ label: ""
1307
+ }, null, 8, ["text"])
1308
+ ]),
1309
+ "item.pdf": a(({ item: r }) => [
1310
+ o(G, {
1311
+ href: r.pdf,
1312
+ icon: `svg:${t(Nt)}`,
1313
+ size: "small",
1314
+ target: "_blank",
1315
+ variant: "text"
1316
+ }, null, 8, ["href", "icon"])
1317
+ ]),
1318
+ _: 1
1319
+ }, 8, ["items", "loading"])
1320
+ ]),
1321
+ _: 1
1322
+ })
1323
+ ]),
1324
+ _: 1
1325
+ })
1326
+ ]),
1327
+ _: 1
1328
+ });
1329
+ };
1330
+ }
1331
+ }), No = { class: "d-flex align-center" }, Oo = {
1332
+ key: "status",
1333
+ class: "text-capitalize hidden-sm-and-down"
1334
+ }, Fo = /* @__PURE__ */ h("span", { class: "mx-1 hidden-sm-and-down" }, "—", -1), zo = { class: "me-1" }, jo = { class: "text-medium-emphasis text-caption" }, To = { class: "d-flex align-start justify-space-between text-caption py-2" }, Mo = { class: "font-weight-bold" }, Ro = { class: "font-weight-bold" }, Po = /* @__PURE__ */ k({
1335
+ __name: "VoSubscriptionStatus",
1336
+ emits: ["change:subscription"],
1337
+ setup(p, { emit: e }) {
1338
+ const i = we(), n = j(), l = e, s = w(() => {
1339
+ if (!n.info)
1340
+ return;
1341
+ const c = new Date(n.info.currentPeriodEnd * 1e3);
1342
+ return i.format(c, "keyboardDate");
1343
+ });
1344
+ async function r() {
1345
+ n.interval && (n.isLoading = !0, n.subscribe(n.interval));
1346
+ }
1347
+ return (c, f) => {
1348
+ const u = ae;
1349
+ return d(), v(Se, null, {
1350
+ default: a(() => [
1351
+ o(me, { cols: "12" }, {
1352
+ default: a(() => {
1353
+ var m, b;
1354
+ return [
1355
+ o(M, {
1356
+ "prepend-icon": "$vuetify",
1357
+ rounded: "lg",
1358
+ title: "Subscription Status",
1359
+ border: "",
1360
+ flat: ""
1361
+ }, W({
1362
+ append: a(() => {
1363
+ var V;
1364
+ return [
1365
+ t(n).hasBilling && ((V = t(n).info) == null ? void 0 : V.status) === "canceled" ? (d(), v(u, {
1366
+ key: 0,
1367
+ loading: t(n).isLoading,
1368
+ class: "me-2",
1369
+ color: "success",
1370
+ "prepend-icon": "$success",
1371
+ text: "Activate",
1372
+ variant: "outlined",
1373
+ onClick: r
1374
+ }, null, 8, ["loading"])) : x("", !0),
1375
+ t(n).hasBilling ? (d(), v(u, {
1376
+ key: 1,
1377
+ loading: t(n).isLoading,
1378
+ "prepend-icon": `svg:${t(Ot)}`,
1379
+ text: "Billing",
1380
+ onClick: t(n).manage
1381
+ }, null, 8, ["loading", "prepend-icon", "onClick"])) : x("", !0)
1382
+ ];
1383
+ }),
1384
+ _: 2
1385
+ }, [
1386
+ t(n).info ? {
1387
+ name: "subtitle",
1388
+ fn: a(() => [
1389
+ h("div", No, [
1390
+ h("span", Oo, A(t(n).info.status), 1),
1391
+ t(n).info.items.length ? (d(), L(U, { key: 0 }, [
1392
+ Fo,
1393
+ h("span", zo, [
1394
+ B(" $" + A(t(n).info.items[0].plan.amount / 100), 1),
1395
+ h("span", jo, "/" + A(t(n).interval), 1)
1396
+ ]),
1397
+ o(u, {
1398
+ size: "x-small",
1399
+ text: "(Change Subscription)",
1400
+ variant: "text",
1401
+ onClick: f[0] || (f[0] = (V) => l("change:subscription"))
1402
+ })
1403
+ ], 64)) : x("", !0)
1404
+ ])
1405
+ ]),
1406
+ key: "0"
1407
+ } : {
1408
+ name: "subtitle",
1409
+ fn: a(() => [
1410
+ h("div", { class: "d-flex align-center" }, [
1411
+ o(Ze, {
1412
+ height: "16",
1413
+ type: "ossein",
1414
+ width: "40"
1415
+ }),
1416
+ h("span", { class: "mx-1" }, "—"),
1417
+ o(Ze, {
1418
+ height: "16",
1419
+ type: "ossein",
1420
+ width: "80"
1421
+ })
1422
+ ])
1423
+ ]),
1424
+ key: "1"
1425
+ }
1426
+ ]), 1024),
1427
+ h("div", To, [
1428
+ h("div", null, [
1429
+ ((m = t(n).info) == null ? void 0 : m.status) === "active" ? (d(), L(U, { key: 0 }, [
1430
+ B(" Your plan renews on "),
1431
+ h("span", Mo, A(t(i).format(s.value, "fullDateWithWeekday")), 1),
1432
+ B(". ")
1433
+ ], 64)) : (d(), L(U, { key: 1 }, [
1434
+ B(" Your plan ends on "),
1435
+ h("span", Ro, A(t(i).format((b = t(n).info) == null ? void 0 : b.currentPeriodEnd, "fullDateWithWeekday")), 1),
1436
+ B(". ")
1437
+ ], 64))
1438
+ ])
1439
+ ])
1440
+ ];
1441
+ }),
1442
+ _: 1
1443
+ })
1444
+ ]),
1445
+ _: 1
1446
+ });
1447
+ };
1448
+ }
1449
+ }), Ho = /* @__PURE__ */ h("div", { class: "mb-3 text-caption text-medium-emphasis" }, " The Vuetify One subscription comes with the following perks: ", -1), Eo = ["innerHTML"], Wo = /* @__PURE__ */ h("br", null, null, -1), Go = /* @__PURE__ */ h("div", { class: "mb-3 text-caption text-medium-emphasis" }, " The following features are in development and coming soon: ", -1), qo = ["innerHTML"], Yo = /* @__PURE__ */ k({
1450
+ __name: "VoSubscriptionPerks",
1451
+ setup(p) {
1452
+ const e = [
1453
+ "Ad Free Experience on all Vuetify properties",
1454
+ 'Save and share code snippets with <a href="https://vbin.io/" target="_blank">VBin</a>',
1455
+ 'Pinned Navigation Items and Rail drawer in <a href="https://vuetifyjs.com/" target="_blank">Documentation</a>',
1456
+ "Customize Navigation components with Page Suits",
1457
+ "Custom Vuetify One menu avatar"
1458
+ ], i = [
1459
+ 'Special role in the <a href="https://discord.vuetifyjs.com/" target="_blank">Vuetify Discord</a>',
1460
+ 'Save and share your playgrounds with <a href="https://play.vuetifyjs.com" target="_blank">Vuetify Play</a>',
1461
+ "Receive a special label on GitHub created issues and pull requests"
1462
+ ], n = D(!1), l = j();
1463
+ return N(n, async (s) => {
1464
+ s && l.subscriptionInfo();
1465
+ }), (s, r) => {
1466
+ const c = X;
1467
+ return d(), L(U, null, [
1468
+ o(ze, { class: "font-weight-black" }, {
1469
+ default: a(() => [
1470
+ B("Perks")
1471
+ ]),
1472
+ _: 1
1473
+ }),
1474
+ Ho,
1475
+ o(ee, {
1476
+ lines: !1,
1477
+ class: "py-0",
1478
+ density: "compact",
1479
+ nav: ""
1480
+ }, {
1481
+ default: a(() => [
1482
+ (d(), L(U, null, oe(e, (f, u) => o(c, {
1483
+ key: u,
1484
+ "prepend-icon": `svg:${t(re)}`,
1485
+ class: "mb-0"
1486
+ }, {
1487
+ prepend: a(() => [
1488
+ o(I, {
1489
+ class: "mx-n2",
1490
+ color: "success",
1491
+ size: "small"
1492
+ })
1493
+ ]),
1494
+ title: a(() => [
1495
+ h("div", { innerHTML: f }, null, 8, Eo)
1496
+ ]),
1497
+ _: 2
1498
+ }, 1032, ["prepend-icon"])), 64))
1499
+ ]),
1500
+ _: 1
1501
+ }),
1502
+ Wo,
1503
+ o(ze, { class: "font-weight-black" }, {
1504
+ default: a(() => [
1505
+ B("Up Next")
1506
+ ]),
1507
+ _: 1
1508
+ }),
1509
+ Go,
1510
+ o(ee, {
1511
+ lines: !1,
1512
+ class: "py-0",
1513
+ density: "compact",
1514
+ nav: ""
1515
+ }, {
1516
+ default: a(() => [
1517
+ (d(), L(U, null, oe(i, (f, u) => o(c, {
1518
+ key: u,
1519
+ "prepend-icon": `svg:${t(Ft)}`,
1520
+ class: "mb-0"
1521
+ }, {
1522
+ prepend: a(() => [
1523
+ o(I, {
1524
+ class: "mx-n2",
1525
+ size: "small"
1526
+ })
1527
+ ]),
1528
+ title: a(() => [
1529
+ h("div", { innerHTML: f }, null, 8, qo)
1530
+ ]),
1531
+ _: 2
1532
+ }, 1032, ["prepend-icon"])), 64))
1533
+ ]),
1534
+ _: 1
1535
+ })
1536
+ ], 64);
1537
+ };
1538
+ }
1539
+ }), Zo = /* @__PURE__ */ k({
1540
+ __name: "VoSubscriptionSubscribe",
1541
+ props: {
1542
+ modelValue: {
1543
+ type: String
1544
+ },
1545
+ modelModifiers: {}
1546
+ },
1547
+ emits: ["update:modelValue"],
1548
+ setup(p) {
1549
+ const e = D(!1), i = le(p, "modelValue"), n = j();
1550
+ return N(e, async (l) => {
1551
+ l && n.subscriptionInfo();
1552
+ }), N(() => n.interval, (l) => {
1553
+ i.value = l;
1554
+ }, { immediate: !0 }), (l, s) => (d(), v(nt, {
1555
+ modelValue: i.value,
1556
+ "onUpdate:modelValue": s[0] || (s[0] = (r) => i.value = r),
1557
+ mandatory: ""
1558
+ }, {
1559
+ default: a(() => [
1560
+ o(Se, null, {
1561
+ default: a(() => [
1562
+ o(me, {
1563
+ cols: "12",
1564
+ md: "6"
1565
+ }, {
1566
+ default: a(() => [
1567
+ o(je, { value: "month" }, {
1568
+ default: a(({ toggle: r, isSelected: c }) => [
1569
+ o(M, {
1570
+ border: c ? "sm primary opacity-100" : "sm",
1571
+ color: c ? "primary" : void 0,
1572
+ "prepend-icon": c ? `svg:${t(pe)}` : "$radioOff",
1573
+ variant: c ? "tonal" : "text",
1574
+ rounded: "lg",
1575
+ subtitle: "$2.99/month",
1576
+ title: "Monthly",
1577
+ onClick: r
1578
+ }, {
1579
+ prepend: a(() => [
1580
+ o(I, { class: "mt-n6" })
1581
+ ]),
1582
+ _: 2
1583
+ }, 1032, ["border", "color", "prepend-icon", "variant", "onClick"])
1584
+ ]),
1585
+ _: 1
1586
+ })
1587
+ ]),
1588
+ _: 1
1589
+ }),
1590
+ o(me, {
1591
+ cols: "12",
1592
+ md: "6"
1593
+ }, {
1594
+ default: a(() => [
1595
+ o(je, { value: "year" }, {
1596
+ default: a(({ toggle: r, isSelected: c }) => [
1597
+ o(M, {
1598
+ border: c ? "sm primary opacity-100" : "sm",
1599
+ color: c ? "primary" : void 0,
1600
+ "prepend-icon": c ? `svg:${t(pe)}` : "$radioOff",
1601
+ variant: c ? "tonal" : "text",
1602
+ rounded: "lg",
1603
+ subtitle: "$29.99/year",
1604
+ title: "Yearly",
1605
+ onClick: r
1606
+ }, {
1607
+ prepend: a(() => [
1608
+ o(I, { class: "mt-n6" })
1609
+ ]),
1610
+ append: a(() => [
1611
+ o(Y, {
1612
+ class: "mt-n6",
1613
+ color: "success",
1614
+ size: "small",
1615
+ text: "Save 20%",
1616
+ variant: "flat"
1617
+ })
1618
+ ]),
1619
+ _: 2
1620
+ }, 1032, ["border", "color", "prepend-icon", "variant", "onClick"])
1621
+ ]),
1622
+ _: 1
1623
+ })
1624
+ ]),
1625
+ _: 1
1626
+ })
1627
+ ]),
1628
+ _: 1
1629
+ })
1630
+ ]),
1631
+ _: 1
1632
+ }, 8, ["modelValue"]));
1633
+ }
1634
+ }), Qo = { class: "px-3" }, Jo = /* @__PURE__ */ h("br", null, null, -1), Xo = { class: "flex-grow-1 px-4 pb-3 overflow-hidden" }, Ko = /* @__PURE__ */ k({
1635
+ __name: "VoSubscriptionDialog",
1636
+ props: {
1637
+ modelValue: { type: Boolean },
1638
+ modelModifiers: {}
1639
+ },
1640
+ emits: ["update:modelValue"],
1641
+ setup(p) {
1642
+ function e(u) {
1643
+ return new Promise((m) => setTimeout(m, u));
1644
+ }
1645
+ const i = le(p, "modelValue"), n = j(), l = ye(), s = D(n.interval), r = D(n.hasBilling ? "status" : "subscribe"), c = D(!1);
1646
+ N(s, (u) => {
1647
+ !n.isSubscriber || !n.interval || (c.value = u !== n.interval);
1648
+ }), N(i, async (u) => {
1649
+ !u || !n.isSubscriber || n.subscriptionInfo();
1650
+ }), N(l, async () => {
1651
+ !n.sessionId && !["subscribe", "status"].includes(l.value.one) || (r.value = n.sessionId || l.value.one === "status" ? "status" : "subscribe", n.isOpen = !0, await fe(), i.value = !0);
1652
+ }, { immediate: !0 });
1653
+ async function f() {
1654
+ await n.modify(s.value), await n.subscriptionInfo(), c.value = null, await e(3e3), r.value = "status", await e(300), c.value = !1;
1655
+ }
1656
+ return (u, m) => {
1657
+ const b = be, V = Zo, S = Yo, _ = Po, y = Bo, $ = ae, z = Ue;
1658
+ return d(), v(z, {
1659
+ modelValue: i.value,
1660
+ "onUpdate:modelValue": m[4] || (m[4] = (T) => i.value = T),
1661
+ "prepend-icon": `svg:${t(zt)}`,
1662
+ title: "Subscriptions"
1663
+ }, W({
1664
+ default: a(() => [
1665
+ o(Ae, null, {
1666
+ default: a(() => [
1667
+ o(Ie, { scrollable: "" }, {
1668
+ default: a(() => [
1669
+ h("div", Qo, [
1670
+ o(K, null, {
1671
+ default: a(() => [
1672
+ o(b, {
1673
+ text: "The Vuetify One subscription is a great way to support the Vuetify team and get access to exclusive features and content.",
1674
+ title: "Vuetify One"
1675
+ }),
1676
+ o(st, { "model-value": r.value }, {
1677
+ default: a(() => [
1678
+ o(de, { value: "subscribe" }, {
1679
+ default: a(() => [
1680
+ o(V, {
1681
+ modelValue: s.value,
1682
+ "onUpdate:modelValue": m[0] || (m[0] = (T) => s.value = T)
1683
+ }, null, 8, ["modelValue"]),
1684
+ Jo,
1685
+ o(S)
1686
+ ]),
1687
+ _: 1
1688
+ }),
1689
+ o(de, { value: "status" }, {
1690
+ default: a(() => [
1691
+ o(_, {
1692
+ "onChange:subscription": m[1] || (m[1] = (T) => r.value = "subscribe")
1693
+ }),
1694
+ o(y)
1695
+ ]),
1696
+ _: 1
1697
+ })
1698
+ ]),
1699
+ _: 1
1700
+ }, 8, ["model-value"])
1701
+ ]),
1702
+ _: 1
1703
+ })
1704
+ ])
1705
+ ]),
1706
+ _: 1
1707
+ })
1708
+ ]),
1709
+ _: 1
1710
+ })
1711
+ ]),
1712
+ _: 2
1713
+ }, [
1714
+ r.value === "subscribe" ? {
1715
+ name: "actions",
1716
+ fn: a(() => [
1717
+ h("div", Xo, [
1718
+ c.value !== !1 ? (d(), v($, {
1719
+ key: 0,
1720
+ loading: t(n).isLoading,
1721
+ "prepend-icon": `svg:${c.value !== null ? t(jt) : t(pe)}`,
1722
+ readonly: c.value === null,
1723
+ text: c.value !== null ? "Modify Subscription" : "Success",
1724
+ color: "success",
1725
+ size: "default",
1726
+ block: "",
1727
+ onClick: f
1728
+ }, null, 8, ["loading", "prepend-icon", "readonly", "text"])) : t(n).isSubscriber ? (d(), v($, {
1729
+ key: 2,
1730
+ "prepend-icon": `svg:${t(Tt)}`,
1731
+ size: "default",
1732
+ text: "Manage Subscription",
1733
+ block: "",
1734
+ onClick: m[3] || (m[3] = (T) => r.value = "status")
1735
+ }, null, 8, ["prepend-icon"])) : (d(), v($, {
1736
+ key: 1,
1737
+ color: s.value ? "primary" : "disabled",
1738
+ disabled: !s.value,
1739
+ loading: t(n).isLoading,
1740
+ "prepend-icon": "$vuetify",
1741
+ size: "default",
1742
+ text: "Activate Subscription",
1743
+ block: "",
1744
+ onClick: m[2] || (m[2] = (T) => t(n).subscribe(s.value))
1745
+ }, null, 8, ["color", "disabled", "loading"]))
1746
+ ])
1747
+ ]),
1748
+ key: "0"
1749
+ } : void 0
1750
+ ]), 1032, ["modelValue", "prepend-icon"]);
1751
+ };
1752
+ }
1753
+ }), en = /* @__PURE__ */ k({
1754
+ __name: "VoSubscriptionListItem",
1755
+ setup(p) {
1756
+ const e = D(!1);
1757
+ return (i, n) => {
1758
+ const l = Ko, s = X;
1759
+ return d(), v(s, {
1760
+ active: e.value,
1761
+ "prepend-icon": `svg:${t(Mt)}`,
1762
+ title: "Subscriptions",
1763
+ link: ""
1764
+ }, {
1765
+ default: a(() => [
1766
+ o(l, {
1767
+ modelValue: e.value,
1768
+ "onUpdate:modelValue": n[0] || (n[0] = (r) => e.value = r)
1769
+ }, null, 8, ["modelValue"])
1770
+ ]),
1771
+ _: 1
1772
+ }, 8, ["active", "prepend-icon"]);
1773
+ };
1774
+ }
1775
+ }), tn = { class: "ps-16" }, on = /* @__PURE__ */ k({
1776
+ __name: "VoSponsorshipsTimelineItemPatreon",
1777
+ setup(p) {
1778
+ const e = j(), i = Be();
1779
+ return (n, l) => {
1780
+ var r, c;
1781
+ const s = ae;
1782
+ return d(), v(Ye, {
1783
+ "dot-color": (r = t(e).patreon) != null && r.isActive ? "success" : "transparent",
1784
+ icon: (c = t(e).patreon) != null && c.isActive ? `svg:${t(re)}` : void 0,
1785
+ size: "x-small",
1786
+ width: "100%"
1787
+ }, {
1788
+ default: a(() => [
1789
+ o(M, {
1790
+ "prepend-avatar": t(i).CDN_URL + "/logos/patreon.png",
1791
+ rounded: "lg",
1792
+ subtitle: "Support Vuetify through Patreon.",
1793
+ title: "Patreon Subscriber",
1794
+ variant: "text",
1795
+ border: ""
1796
+ }, {
1797
+ append: a(() => {
1798
+ var f;
1799
+ return [
1800
+ h("div", tn, [
1801
+ o(s, {
1802
+ text: (f = t(e).patreon) != null && f.isActive ? "Active" : "Coming Soon",
1803
+ color: "surface-variant",
1804
+ readonly: ""
1805
+ }, null, 8, ["text"])
1806
+ ])
1807
+ ];
1808
+ }),
1809
+ default: a(() => {
1810
+ var f;
1811
+ return [
1812
+ (f = t(e).patreon) != null && f.isActive ? (d(), L(U, { key: 0 }, [
1813
+ o(E),
1814
+ o(K, { class: "d-flex justify-space-between align-center flex-wrap" }, {
1815
+ default: a(() => [
1816
+ o(Y, {
1817
+ "prepend-icon": `svg:${t(Ge)}`,
1818
+ text: t(e).patreon.tierName,
1819
+ color: "success",
1820
+ variant: "text",
1821
+ label: ""
1822
+ }, null, 8, ["prepend-icon", "text"])
1823
+ ]),
1824
+ _: 1
1825
+ })
1826
+ ], 64)) : x("", !0)
1827
+ ];
1828
+ }),
1829
+ _: 1
1830
+ }, 8, ["prepend-avatar"])
1831
+ ]),
1832
+ _: 1
1833
+ }, 8, ["dot-color", "icon"]);
1834
+ };
1835
+ }
1836
+ }), nn = { class: "ps-16" }, sn = /* @__PURE__ */ k({
1837
+ __name: "VoSponsorshipsTimelineItemDiscord",
1838
+ setup(p) {
1839
+ const e = j(), i = Be();
1840
+ return (n, l) => {
1841
+ var r, c;
1842
+ const s = ae;
1843
+ return d(), v(Ye, {
1844
+ "dot-color": (r = t(e).discord) != null && r.isActive ? "success" : "transparent",
1845
+ icon: (c = t(e).discord) != null && c.isActive ? `svg:${t(re)}` : void 0,
1846
+ size: "x-small",
1847
+ width: "100%"
1848
+ }, {
1849
+ default: a(() => [
1850
+ o(M, {
1851
+ "prepend-avatar": t(i).CDN_URL + "/logos/discord.png",
1852
+ rounded: "lg",
1853
+ subtitle: "Support Vuetify through Discord.",
1854
+ title: "Discord Subscriber",
1855
+ variant: "text",
1856
+ border: ""
1857
+ }, {
1858
+ append: a(() => {
1859
+ var f, u, m, b, V, S;
1860
+ return [
1861
+ h("div", nn, [
1862
+ o(s, {
1863
+ color: (f = t(e).discord) != null && f.isActive ? "success" : "primary",
1864
+ href: (u = t(e).discord) != null && u.isActive ? void 0 : "https://discord.com/servers/vuetify-340160225338195969",
1865
+ "prepend-icon": `svg:${(m = t(e).discord) != null && m.isActive ? t(pe) : t(ve)}`,
1866
+ readonly: (b = t(e).discord) == null ? void 0 : b.isActive,
1867
+ target: (V = t(e).discord) != null && V.isActive ? void 0 : "_blank",
1868
+ text: (S = t(e).discord) != null && S.isActive ? "Active" : "Info",
1869
+ width: "88"
1870
+ }, null, 8, ["color", "href", "prepend-icon", "readonly", "target", "text"])
1871
+ ])
1872
+ ];
1873
+ }),
1874
+ default: a(() => {
1875
+ var f;
1876
+ return [
1877
+ (f = t(e).discord) != null && f.isActive ? (d(), L(U, { key: 0 }, [
1878
+ o(E),
1879
+ o(K, { class: "d-flex justify-space-between align-center flex-wrap" }, {
1880
+ default: a(() => [
1881
+ o(Y, {
1882
+ "prepend-icon": `svg:${t(Ge)}`,
1883
+ text: t(e).discord.tierName,
1884
+ color: "surface-variant",
1885
+ size: "small",
1886
+ variant: "text",
1887
+ label: ""
1888
+ }, null, 8, ["prepend-icon", "text"])
1889
+ ]),
1890
+ _: 1
1891
+ })
1892
+ ], 64)) : x("", !0)
1893
+ ];
1894
+ }),
1895
+ _: 1
1896
+ }, 8, ["prepend-avatar"])
1897
+ ]),
1898
+ _: 1
1899
+ }, 8, ["dot-color", "icon"]);
1900
+ };
1901
+ }
1902
+ }), an = { class: "ps-16" }, ln = /* @__PURE__ */ k({
1903
+ __name: "VoSponsorshipsTimelineItemGithub",
1904
+ setup(p) {
1905
+ const e = j(), i = Be();
1906
+ return (n, l) => {
1907
+ var r, c;
1908
+ const s = ae;
1909
+ return d(), v(Ye, {
1910
+ "dot-color": (r = t(e).github) != null && r.isActive ? "success" : "transparent",
1911
+ icon: (c = t(e).github) != null && c.isActive ? `svg:${t(re)}` : void 0,
1912
+ size: "x-small",
1913
+ width: "100%"
1914
+ }, {
1915
+ default: a(() => [
1916
+ o(M, {
1917
+ "prepend-avatar": t(i).CDN_URL + "/logos/github.png",
1918
+ rounded: "lg",
1919
+ subtitle: "Support Vuetify through GitHub sponsors.",
1920
+ title: "GitHub Sponsors",
1921
+ variant: "text",
1922
+ border: ""
1923
+ }, {
1924
+ append: a(() => {
1925
+ var f, u, m, b, V, S;
1926
+ return [
1927
+ h("div", an, [
1928
+ o(s, {
1929
+ color: (f = t(e).github) != null && f.isActive ? "success" : "primary",
1930
+ href: (u = t(e).github) != null && u.isActive ? void 0 : "https://github.com/sponsors/johnleider",
1931
+ "prepend-icon": `svg:${(m = t(e).github) != null && m.isActive ? t(pe) : t(ve)}`,
1932
+ readonly: (b = t(e).github) == null ? void 0 : b.isActive,
1933
+ target: (V = t(e).github) != null && V.isActive ? void 0 : "_blank",
1934
+ text: (S = t(e).github) != null && S.isActive ? "Active" : "Info",
1935
+ width: "88"
1936
+ }, null, 8, ["color", "href", "prepend-icon", "readonly", "target", "text"])
1937
+ ])
1938
+ ];
1939
+ }),
1940
+ default: a(() => {
1941
+ var f;
1942
+ return [
1943
+ (f = t(e).github) != null && f.isActive ? (d(), L(U, { key: 0 }, [
1944
+ o(E),
1945
+ o(K, { class: "d-flex justify-space-between align-center flex-wrap" }, {
1946
+ default: a(() => [
1947
+ o(Y, {
1948
+ "prepend-icon": `svg:${t(Ge)}`,
1949
+ text: t(e).github.tierName,
1950
+ color: "surface-variant",
1951
+ size: "small",
1952
+ variant: "text",
1953
+ label: ""
1954
+ }, null, 8, ["prepend-icon", "text"])
1955
+ ]),
1956
+ _: 1
1957
+ })
1958
+ ], 64)) : x("", !0)
1959
+ ];
1960
+ }),
1961
+ _: 1
1962
+ }, 8, ["prepend-avatar"])
1963
+ ]),
1964
+ _: 1
1965
+ }, 8, ["dot-color", "icon"]);
1966
+ };
1967
+ }
1968
+ }), rn = /* @__PURE__ */ k({
1969
+ __name: "VoSponsorshipsTimeline",
1970
+ setup(p) {
1971
+ return (e, i) => {
1972
+ const n = ln, l = sn, s = on;
1973
+ return d(), v(uo, {
1974
+ class: "justify-start ms-n7",
1975
+ "line-inset": "12",
1976
+ side: "end",
1977
+ style: { "grid-template-columns": "auto auto 1fr" },
1978
+ "truncate-line": "both"
1979
+ }, {
1980
+ default: a(() => [
1981
+ o(n),
1982
+ o(l),
1983
+ o(s)
1984
+ ]),
1985
+ _: 1
1986
+ });
1987
+ };
1988
+ }
1989
+ }), cn = { class: "px-3 pb-5 d-flex flex-column" }, un = { class: "py-4" }, dn = /* @__PURE__ */ h("div", { class: "text-caption text-medium-emphasis" }, [
1990
+ /* @__PURE__ */ B(" A total of $2.99 or more unlocks "),
1991
+ /* @__PURE__ */ h("span", { class: "font-weight-black" }, "all"),
1992
+ /* @__PURE__ */ B(" Vuetify One benefits ")
1993
+ ], -1), pn = /* @__PURE__ */ k({
1994
+ __name: "VoSponsorshipsDialog",
1995
+ props: {
1996
+ modelValue: { type: Boolean },
1997
+ modelModifiers: {}
1998
+ },
1999
+ emits: ["update:modelValue"],
2000
+ setup(p) {
2001
+ const e = le(p, "modelValue"), i = se(), n = ye(), l = F(), s = j();
2002
+ return N(n, async () => {
2003
+ n.value.one === "sponsorships" && (s.isOpen = !0, await fe(), e.value = !0);
2004
+ }, { immediate: !0 }), (r, c) => {
2005
+ const f = be, u = rn, m = Me("v-empty-state"), b = Ue;
2006
+ return d(), v(b, {
2007
+ modelValue: e.value,
2008
+ "onUpdate:modelValue": c[0] || (c[0] = (V) => e.value = V),
2009
+ "max-height": t(i).xs.value ? void 0 : 820,
2010
+ "prepend-icon": `svg:${t(Rt)}`,
2011
+ title: "Sponsorships"
2012
+ }, {
2013
+ default: a(() => [
2014
+ o(Ae, null, {
2015
+ default: a(() => [
2016
+ o(Ie, { scrollable: "" }, {
2017
+ default: a(() => [
2018
+ h("div", cn, [
2019
+ o(K, null, {
2020
+ default: a(() => [
2021
+ o(f, {
2022
+ text: "Support Vuetify through GitHub Sponsors, Discord, or Patreon to unlock exclusive benefits and content.",
2023
+ title: "Support Vuetify"
2024
+ }),
2025
+ o(u)
2026
+ ]),
2027
+ _: 1
2028
+ }),
2029
+ o(m, {
2030
+ icon: `svg:${t(Pt)}`,
2031
+ class: "mt-auto",
2032
+ "min-height": "auto",
2033
+ size: "64",
2034
+ title: "Your Monthly Contributions"
2035
+ }, {
2036
+ media: a(() => [
2037
+ o(I, { color: "success" })
2038
+ ]),
2039
+ headline: a(() => [
2040
+ h("div", un, [
2041
+ t(l).isSubscriber ? (d(), L(U, { key: 0 }, [
2042
+ B(" $" + A(parseFloat(String(t(s).monthlyTotal)).toFixed(2)), 1)
2043
+ ], 64)) : (d(), L(U, { key: 1 }, [
2044
+ B(" $0.00 ")
2045
+ ], 64))
2046
+ ])
2047
+ ]),
2048
+ text: a(() => [
2049
+ dn
2050
+ ]),
2051
+ _: 1
2052
+ }, 8, ["icon"])
2053
+ ])
2054
+ ]),
2055
+ _: 1
2056
+ })
2057
+ ]),
2058
+ _: 1
2059
+ })
2060
+ ]),
2061
+ _: 1
2062
+ }, 8, ["modelValue", "max-height", "prepend-icon"]);
2063
+ };
2064
+ }
2065
+ }), mn = /* @__PURE__ */ k({
2066
+ __name: "VoSponsorshipsListItem",
2067
+ setup(p) {
2068
+ const e = D(!1);
2069
+ return (i, n) => {
2070
+ const l = pn, s = X;
2071
+ return d(), v(s, {
2072
+ active: e.value,
2073
+ "prepend-icon": `svg:${t(Ht)}`,
2074
+ title: "Sponsorships",
2075
+ link: ""
2076
+ }, {
2077
+ default: a(() => [
2078
+ o(l, {
2079
+ modelValue: e.value,
2080
+ "onUpdate:modelValue": n[0] || (n[0] = (r) => e.value = r)
2081
+ }, null, 8, ["modelValue"])
2082
+ ]),
2083
+ _: 1
2084
+ }, 8, ["active", "prepend-icon"]);
2085
+ };
2086
+ }
2087
+ }), fn = {
2088
+ key: 0,
2089
+ class: "pt-16"
2090
+ }, vn = /* @__PURE__ */ h("div", { class: "text-medium-emphasis" }, " All caught up ", -1), _n = {
2091
+ key: 1,
2092
+ class: "pa-5"
2093
+ }, hn = { class: "text-subtitle-1 font-weight-bold" }, gn = { class: "text-caption font-weight-bold text-medium-emphasis" }, bn = { class: "text-disabled text-caption mt-2 mb-3" }, yn = /* @__PURE__ */ k({
2094
+ __name: "VoNotificationsBannerList",
2095
+ props: {
2096
+ items: {}
2097
+ },
2098
+ setup(p) {
2099
+ const e = we(), i = se(), n = O();
2100
+ function l(r) {
2101
+ return n.notifications.last.banner.includes(r);
2102
+ }
2103
+ function s(r) {
2104
+ l(r.slug) ? n.notifications.last.banner = n.notifications.last.banner.filter((c) => c !== r.slug) : n.notifications.last.banner.push(r.slug);
2105
+ }
2106
+ return (r, c) => {
2107
+ const f = Me("v-empty-state");
2108
+ return d(), v(ee, {
2109
+ class: "py-0",
2110
+ height: "100%",
2111
+ lines: "three"
2112
+ }, {
2113
+ default: a(() => [
2114
+ r.items.length ? (d(), L("div", _n, [
2115
+ (d(!0), L(U, null, oe(r.items, (u) => {
2116
+ var m;
2117
+ return d(), L("div", {
2118
+ key: u.slug,
2119
+ class: "mb-4"
2120
+ }, [
2121
+ o(M, {
2122
+ color: u.metadata.color,
2123
+ image: (m = u.metadata.images.bg) == null ? void 0 : m.url,
2124
+ title: u.title,
2125
+ rounded: "b-0",
2126
+ flat: ""
2127
+ }, {
2128
+ prepend: a(() => [
2129
+ o(ne, {
2130
+ image: u.metadata.images.logo.url
2131
+ }, null, 8, ["image"])
2132
+ ]),
2133
+ image: a(() => [
2134
+ o(Le, { position: "right" })
2135
+ ]),
2136
+ _: 2
2137
+ }, 1032, ["color", "image", "title"]),
2138
+ o(Ce, null, {
2139
+ default: a(({ props: b, isHovering: V }) => [
2140
+ o(qe, P(b, {
2141
+ class: "px-8 pt-2 pb-4 position-relative",
2142
+ rounded: "b",
2143
+ border: ""
2144
+ }), {
2145
+ default: a(() => [
2146
+ o(Q, {
2147
+ text: l(u.slug) ? "Mark as unread" : "Mark as read",
2148
+ location: "bottom"
2149
+ }, {
2150
+ activator: a(({ props: S }) => [
2151
+ o($e, { "hide-on-leave": "" }, {
2152
+ default: a(() => [
2153
+ xe(o(G, P(S, {
2154
+ icon: `svg:${l(u.slug) ? t(Ke) : t(Xe)}`,
2155
+ class: "ms-auto float-right",
2156
+ size: "small",
2157
+ variant: "text",
2158
+ "mdi-email-variant": "",
2159
+ onClick: (_) => s(u)
2160
+ }), null, 16, ["icon", "onClick"]), [
2161
+ [Re, V || t(i).mobile.value]
2162
+ ])
2163
+ ]),
2164
+ _: 2
2165
+ }, 1024)
2166
+ ]),
2167
+ _: 2
2168
+ }, 1032, ["text"]),
2169
+ h("div", hn, A(u.metadata.text), 1),
2170
+ h("div", gn, A(t(e).format(u.created_at, "fullDateWithWeekday")), 1),
2171
+ h("div", bn, A(u.metadata.subtext), 1),
2172
+ o(Y, P({
2173
+ href: u.metadata.link.startsWith("http") ? u.metadata.link : void 0,
2174
+ target: u.metadata.link.startsWith("http") ? "_blank" : void 0,
2175
+ to: u.metadata.link.startsWith("http") ? void 0 : u.metadata.link
2176
+ }, {
2177
+ "append-icon": `svg:${t(ve)}`,
2178
+ text: u.metadata.link_text,
2179
+ size: "small",
2180
+ variant: "text",
2181
+ border: "",
2182
+ label: ""
2183
+ }), {
2184
+ append: a(() => [
2185
+ o(I, { size: "12" })
2186
+ ]),
2187
+ _: 2
2188
+ }, 1040, ["append-icon", "text"])
2189
+ ]),
2190
+ _: 2
2191
+ }, 1040)
2192
+ ]),
2193
+ _: 2
2194
+ }, 1024)
2195
+ ]);
2196
+ }), 128))
2197
+ ])) : (d(), L("div", fn, [
2198
+ o(f, {
2199
+ icon: "$vuetify",
2200
+ size: "256"
2201
+ }, {
2202
+ media: a(() => [
2203
+ o(I, { color: "medium-emphasis" })
2204
+ ]),
2205
+ title: a(() => [
2206
+ vn
2207
+ ]),
2208
+ _: 1
2209
+ })
2210
+ ]))
2211
+ ]),
2212
+ _: 1
2213
+ });
2214
+ };
2215
+ }
2216
+ }), Vn = {
2217
+ key: 0,
2218
+ class: "pt-16"
2219
+ }, kn = /* @__PURE__ */ h("div", { class: "text-medium-emphasis" }, " All caught up ", -1), xn = { class: "ps-3 text-subtitle-2 pe-2" }, $n = { class: "text-truncate" }, wn = { class: "text-caption font-weight-bold text-medium-emphasis" }, Sn = { class: "text-disabled text-caption my-2" }, Cn = /* @__PURE__ */ k({
2220
+ __name: "VoNotificationsList",
2221
+ props: {
2222
+ items: {}
2223
+ },
2224
+ setup(p) {
2225
+ const e = we(), i = se(), n = O();
2226
+ function l(r) {
2227
+ return n.notifications.read.includes(r);
2228
+ }
2229
+ function s(r) {
2230
+ l(r.slug) ? n.notifications.read = n.notifications.read.filter((c) => c !== r.slug) : n.notifications.read.push(r.slug);
2231
+ }
2232
+ return (r, c) => {
2233
+ const f = Me("v-empty-state"), u = X;
2234
+ return d(), v(ee, {
2235
+ class: "py-0",
2236
+ height: "100%",
2237
+ lines: "three"
2238
+ }, {
2239
+ default: a(() => [
2240
+ r.items.length ? (d(!0), L(U, { key: 1 }, oe(r.items, (m, b) => (d(), v(Ce, {
2241
+ key: m.slug
2242
+ }, {
2243
+ default: a(({ isHovering: V, props: S }) => [
2244
+ o(u, P(S, {
2245
+ border: b !== 0 && "t",
2246
+ class: "py-4 mb-0"
2247
+ }), {
2248
+ prepend: a(() => [
2249
+ h("div", xn, A(m.metadata.emoji), 1)
2250
+ ]),
2251
+ append: a(() => [
2252
+ o(po, {
2253
+ class: "mt-n3",
2254
+ width: "56"
2255
+ }, {
2256
+ default: a(() => [
2257
+ o(Q, {
2258
+ text: l(m.slug) ? "Mark as unread" : "Mark as read",
2259
+ location: "bottom"
2260
+ }, {
2261
+ activator: a(({ props: _ }) => [
2262
+ o($e, { "hide-on-leave": "" }, {
2263
+ default: a(() => [
2264
+ xe(o(G, P(_, {
2265
+ icon: `svg:${l(m.slug) ? t(Ke) : t(Xe)}`,
2266
+ class: "ms-auto",
2267
+ size: "small",
2268
+ variant: "text",
2269
+ "mdi-email-variant": "",
2270
+ onClick: (y) => s(m)
2271
+ }), null, 16, ["icon", "onClick"]), [
2272
+ [Re, V || t(i).mobile.value]
2273
+ ])
2274
+ ]),
2275
+ _: 2
2276
+ }, 1024)
2277
+ ]),
2278
+ _: 2
2279
+ }, 1032, ["text"])
2280
+ ]),
2281
+ _: 2
2282
+ }, 1024)
2283
+ ]),
2284
+ default: a(() => [
2285
+ o(et, { class: "text-wrap text-h6 mb-1" }, {
2286
+ default: a(() => [
2287
+ h("div", $n, A(m.title), 1)
2288
+ ]),
2289
+ _: 2
2290
+ }, 1024),
2291
+ h("div", wn, A(t(e).format(m.created_at, "fullDateWithWeekday")), 1),
2292
+ h("div", Sn, A(m.metadata.text), 1),
2293
+ o(Y, {
2294
+ "append-icon": `svg:${t(ve)}`,
2295
+ href: m.metadata.action,
2296
+ text: m.metadata.action_text,
2297
+ size: "small",
2298
+ target: "_blank",
2299
+ variant: "text",
2300
+ border: "",
2301
+ label: "",
2302
+ onClick: (_) => s(m)
2303
+ }, {
2304
+ append: a(() => [
2305
+ o(I, { size: "12" })
2306
+ ]),
2307
+ _: 2
2308
+ }, 1032, ["append-icon", "href", "text", "onClick"])
2309
+ ]),
2310
+ _: 2
2311
+ }, 1040, ["border"])
2312
+ ]),
2313
+ _: 2
2314
+ }, 1024))), 128)) : (d(), L("div", Vn, [
2315
+ o(f, {
2316
+ icon: "$vuetify",
2317
+ size: "256"
2318
+ }, {
2319
+ media: a(() => [
2320
+ o(I, { color: "medium-emphasis" })
2321
+ ]),
2322
+ title: a(() => [
2323
+ kn
2324
+ ]),
2325
+ _: 1
2326
+ })
2327
+ ]))
2328
+ ]),
2329
+ _: 1
2330
+ });
2331
+ };
2332
+ }
2333
+ }), Ln = J("site", () => {
2334
+ const p = H([]), e = H();
2335
+ return {
2336
+ id: p,
2337
+ url: e
2338
+ };
2339
+ }), Ne = J("banners", () => {
2340
+ const p = ge(), e = Ln(), i = O(), n = H([]), l = D(!1), s = w(() => r.value ? r.value : n.value.find(({
2341
+ slug: f,
2342
+ metadata: {
2343
+ site: u,
2344
+ active: m
2345
+ }
2346
+ }) => !m || i.notifications.last.banner.includes(f) ? !1 : u.includes("dev") && !1 || u.includes("*") ? !0 : u.some((b) => e.id.includes(b)))), r = w(() => n.value.find(({
2347
+ metadata: {
2348
+ site: f,
2349
+ active: u
2350
+ }
2351
+ }) => u ? f.includes("server") : !1));
2352
+ async function c() {
2353
+ try {
2354
+ l.value = !0;
2355
+ const f = await p.get("/one/banners");
2356
+ n.value = f.banners;
2357
+ } catch {
2358
+ } finally {
2359
+ l.value = !1;
2360
+ }
2361
+ return n.value;
2362
+ }
2363
+ return {
2364
+ all: n,
2365
+ isLoading: l,
2366
+ server: r,
2367
+ banner: s,
2368
+ get: c
2369
+ };
2370
+ }), An = { class: "text-caption" }, In = { class: "text-caption" }, Dn = /* @__PURE__ */ k({
2371
+ __name: "VoNotificationsDialog",
2372
+ props: {
2373
+ modelValue: { type: Boolean },
2374
+ modelModifiers: {}
2375
+ },
2376
+ emits: ["update:modelValue"],
2377
+ setup(p) {
2378
+ const e = se(), i = ye(), n = Ne(), l = De(), s = j(), r = D(["read"]), c = le(p, "modelValue");
2379
+ return N(i, async () => {
2380
+ if (i.value.one !== "notifications") {
2381
+ c.value && (c.value = !1);
2382
+ return;
2383
+ }
2384
+ s.isOpen = !0, await fe(), c.value = !0;
2385
+ }, { immediate: !0 }), (f, u) => {
2386
+ const m = X, b = Cn, V = yn, S = Ue;
2387
+ return d(), v(S, {
2388
+ modelValue: c.value,
2389
+ "onUpdate:modelValue": u[2] || (u[2] = (_) => c.value = _),
2390
+ "prepend-icon": `svg:${t(Et)}`,
2391
+ title: "Notifications"
2392
+ }, {
2393
+ default: a(() => [
2394
+ o(Ae, null, {
2395
+ default: a(() => [
2396
+ o(mo, {
2397
+ location: t(e).mobile.value ? "top" : "start",
2398
+ width: t(e).mobile.value ? 128 : 168,
2399
+ permanent: ""
2400
+ }, {
2401
+ default: a(() => [
2402
+ o(ee, {
2403
+ selected: r.value,
2404
+ "onUpdate:selected": u[0] || (u[0] = (_) => r.value = _),
2405
+ class: "px-4 pt-4",
2406
+ density: "compact",
2407
+ mandatory: "",
2408
+ nav: ""
2409
+ }, {
2410
+ default: a(() => [
2411
+ o(m, {
2412
+ "prepend-icon": `svg:${t(Wt)}`,
2413
+ title: "Unread",
2414
+ value: "read"
2415
+ }, W({ _: 2 }, [
2416
+ t(l).unread.length > 0 ? {
2417
+ name: "append",
2418
+ fn: a(() => [
2419
+ h("span", An, A(t(l).unread.length), 1)
2420
+ ]),
2421
+ key: "0"
2422
+ } : void 0
2423
+ ]), 1032, ["prepend-icon"]),
2424
+ o(m, {
2425
+ "prepend-icon": `svg:${t(Gt)}`,
2426
+ title: "Read",
2427
+ value: "unread"
2428
+ }, W({ _: 2 }, [
2429
+ t(l).read.length > 0 ? {
2430
+ name: "append",
2431
+ fn: a(() => [
2432
+ h("span", In, A(t(l).read.length), 1)
2433
+ ]),
2434
+ key: "0"
2435
+ } : void 0
2436
+ ]), 1032, ["prepend-icon"]),
2437
+ t(n).all.length > 0 ? (d(), v(m, {
2438
+ key: 0,
2439
+ "prepend-icon": `svg:${t(qt)}`,
2440
+ title: "Banners",
2441
+ value: "banners"
2442
+ }, {
2443
+ append: a(() => [
2444
+ o(He, {
2445
+ "offset-y": "-3",
2446
+ dot: ""
2447
+ })
2448
+ ]),
2449
+ _: 1
2450
+ }, 8, ["prepend-icon"])) : x("", !0)
2451
+ ]),
2452
+ _: 1
2453
+ }, 8, ["selected"])
2454
+ ]),
2455
+ _: 1
2456
+ }, 8, ["location", "width"]),
2457
+ o(Ie, { scrollable: "" }, {
2458
+ default: a(() => [
2459
+ o(st, {
2460
+ modelValue: r.value,
2461
+ "onUpdate:modelValue": u[1] || (u[1] = (_) => r.value = _)
2462
+ }, {
2463
+ default: a(() => [
2464
+ o(de, { value: "read" }, {
2465
+ default: a(() => [
2466
+ o(b, {
2467
+ items: t(l).unread
2468
+ }, null, 8, ["items"])
2469
+ ]),
2470
+ _: 1
2471
+ }),
2472
+ o(de, { value: "unread" }, {
2473
+ default: a(() => [
2474
+ o(b, {
2475
+ items: t(l).read
2476
+ }, null, 8, ["items"])
2477
+ ]),
2478
+ _: 1
2479
+ }),
2480
+ o(de, { value: "banners" }, {
2481
+ default: a(() => [
2482
+ o(V, {
2483
+ items: t(n).all
2484
+ }, null, 8, ["items"])
2485
+ ]),
2486
+ _: 1
2487
+ })
2488
+ ]),
2489
+ _: 1
2490
+ }, 8, ["modelValue"])
2491
+ ]),
2492
+ _: 1
2493
+ })
2494
+ ]),
2495
+ _: 1
2496
+ })
2497
+ ]),
2498
+ _: 1
2499
+ }, 8, ["modelValue", "prepend-icon"]);
2500
+ };
2501
+ }
2502
+ }), Un = /* @__PURE__ */ k({
2503
+ __name: "VoNotificationsBadge",
2504
+ setup(p) {
2505
+ const e = De(), i = O();
2506
+ return (n, l) => (d(), v(He, {
2507
+ content: t(e).unread.length,
2508
+ "model-value": t(i).notifications.show && t(e).unread.length > 0,
2509
+ color: "error"
2510
+ }, {
2511
+ default: a(() => [
2512
+ R(n.$slots, "default")
2513
+ ]),
2514
+ _: 3
2515
+ }, 8, ["content", "model-value"]));
2516
+ }
2517
+ }), Bn = /* @__PURE__ */ k({
2518
+ __name: "VoNotificationsListItem",
2519
+ setup(p) {
2520
+ const e = Ne(), i = O(), n = De(), l = D(!1);
2521
+ return vt(async () => {
2522
+ n.get(), e.get();
2523
+ }), (s, r) => {
2524
+ const c = Un, f = Dn, u = X;
2525
+ return t(i).notifications.show ? (d(), v(u, {
2526
+ key: 0,
2527
+ active: l.value,
2528
+ "prepend-icon": `svg:${t(Yt)}`,
2529
+ title: "Notifications",
2530
+ link: ""
2531
+ }, W({
2532
+ default: a(() => [
2533
+ o(f, {
2534
+ modelValue: l.value,
2535
+ "onUpdate:modelValue": r[0] || (r[0] = (m) => l.value = m)
2536
+ }, null, 8, ["modelValue"])
2537
+ ]),
2538
+ _: 2
2539
+ }, [
2540
+ t(n).unread.length ? {
2541
+ name: "prepend",
2542
+ fn: a(() => [
2543
+ o(c, null, {
2544
+ default: a(() => [
2545
+ o(I)
2546
+ ]),
2547
+ _: 1
2548
+ })
2549
+ ]),
2550
+ key: "0"
2551
+ } : void 0
2552
+ ]), 1032, ["active", "prepend-icon"])) : x("", !0);
2553
+ };
2554
+ }
2555
+ }), Nn = /* @__PURE__ */ k({
2556
+ __name: "VoDashboardListItem",
2557
+ setup(p) {
2558
+ const e = j();
2559
+ return (i, n) => {
2560
+ const l = X;
2561
+ return d(), v(l, {
2562
+ "prepend-icon": `svg:${t(Zt)}`,
2563
+ title: "Dashboard",
2564
+ to: "/user/dashboard",
2565
+ onClick: n[0] || (n[0] = (s) => t(e).isOpen = !1)
2566
+ }, null, 8, ["prepend-icon"]);
2567
+ };
2568
+ }
2569
+ }), On = /* @__PURE__ */ k({
2570
+ __name: "VoUserList",
2571
+ setup(p) {
2572
+ const e = F();
2573
+ return (i, n) => {
2574
+ const l = Nn, s = Bn, r = mn, c = en, f = Do, u = wo;
2575
+ return d(), v(ee, {
2576
+ density: "compact",
2577
+ nav: "",
2578
+ slim: ""
2579
+ }, {
2580
+ default: a(() => [
2581
+ o(l),
2582
+ o(s),
2583
+ o(r),
2584
+ t(e).user ? (d(), v(c, { key: 0 })) : x("", !0),
2585
+ o(f),
2586
+ t(e).user ? (d(), v(u, { key: 1 })) : x("", !0)
2587
+ ]),
2588
+ _: 1
2589
+ });
2590
+ };
2591
+ }
2592
+ }), Fn = { key: 0 }, zn = { class: "d-flex align-center justify-center pa-1 ga-2" }, jn = /* @__PURE__ */ k({
2593
+ __name: "VoUserQuickActions",
2594
+ setup(p) {
2595
+ const e = O(), i = [
2596
+ ["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],
2597
+ ["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],
2598
+ "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",
2599
+ ["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]
2600
+ ];
2601
+ return (n, l) => (d(), v(he, null, {
2602
+ default: a(() => [
2603
+ t(e).quickbar ? (d(), L("div", Fn, [
2604
+ h("div", zn, [
2605
+ o(G, {
2606
+ color: t(e).colors.one,
2607
+ class: "text-caption",
2608
+ density: "comfortable",
2609
+ href: "https://play.vuetifyjs.com",
2610
+ icon: "$vuetify-play",
2611
+ target: "_blank"
2612
+ }, {
2613
+ default: a(() => [
2614
+ o(I),
2615
+ o(Q, {
2616
+ activator: "parent",
2617
+ location: "top",
2618
+ text: "Vuetify Play"
2619
+ })
2620
+ ]),
2621
+ _: 1
2622
+ }, 8, ["color"]),
2623
+ o(G, {
2624
+ color: t(e).colors.one,
2625
+ icon: i,
2626
+ class: "text-caption",
2627
+ density: "comfortable",
2628
+ href: "https://bin.vuetifyjs.com",
2629
+ target: "_blank"
2630
+ }, {
2631
+ default: a(() => [
2632
+ o(I),
2633
+ o(Q, {
2634
+ activator: "parent",
2635
+ location: "top",
2636
+ text: "Vuetify Bin"
2637
+ })
2638
+ ]),
2639
+ _: 1
2640
+ }, 8, ["color"]),
2641
+ o(G, {
2642
+ color: t(e).colors.one,
2643
+ icon: `svg:${t(Qt)}`,
2644
+ class: "text-caption",
2645
+ density: "comfortable",
2646
+ href: "https://issues.vuetifyjs.com",
2647
+ target: "_blank"
2648
+ }, {
2649
+ default: a(() => [
2650
+ o(I),
2651
+ o(Q, {
2652
+ activator: "parent",
2653
+ location: "top",
2654
+ text: "Vuetify Issues"
2655
+ })
2656
+ ]),
2657
+ _: 1
2658
+ }, 8, ["color", "icon"])
2659
+ ])
2660
+ ])) : x("", !0)
2661
+ ]),
2662
+ _: 1
2663
+ }));
2664
+ }
2665
+ }), Tn = { class: "mb-2" }, Mn = { key: 0 }, Rn = { class: "d-flex ga-4 flex-wrap justify-center mb-4" }, Pn = { class: "text-h6" }, Hn = /* @__PURE__ */ k({
2666
+ __name: "VoUserAvatar",
2667
+ setup(p) {
2668
+ const e = F(), i = O(), n = D(!1), l = w(() => {
2669
+ const c = [
2670
+ "https://cdn.vuetifyjs.com/docs/images/avatars/one.png",
2671
+ "https://cdn.vuetifyjs.com/docs/images/avatars/grass.png",
2672
+ "https://cdn.vuetifyjs.com/docs/images/avatars/wood.png",
2673
+ "https://cdn.vuetifyjs.com/docs/images/avatars/gold.png",
2674
+ "https://cdn.vuetifyjs.com/docs/images/avatars/planet.png",
2675
+ "https://cdn.vuetifyjs.com/docs/images/avatars/planetary.png",
2676
+ "https://cdn.vuetifyjs.com/docs/images/avatars/light.png",
2677
+ "https://cdn.vuetifyjs.com/docs/images/avatars/dark.png",
2678
+ "https://cdn.vuetifyjs.com/docs/images/avatars/blackguard.png",
2679
+ "https://cdn.vuetifyjs.com/docs/images/avatars/battlecruiser.png",
2680
+ "https://cdn.vuetifyjs.com/docs/images/avatars/cosmic-blue.png",
2681
+ "https://cdn.vuetifyjs.com/docs/images/avatars/blackhole.png",
2682
+ "https://cdn.vuetifyjs.com/docs/images/avatars/meteor.png",
2683
+ "https://cdn.vuetifyjs.com/docs/images/avatars/tada.png"
2684
+ ];
2685
+ return e.user && c.unshift(e.user.picture), c;
2686
+ });
2687
+ function s(c) {
2688
+ i.avatar = c;
2689
+ }
2690
+ function r() {
2691
+ e.isSubscriber && (n.value = !n.value);
2692
+ }
2693
+ return (c, f) => {
2694
+ var u;
2695
+ return d(), L("div", null, [
2696
+ xe((d(), v(ne, {
2697
+ class: _t([
2698
+ "border-md border-opacity-100 border-surface-variant",
2699
+ {
2700
+ "cursor-pointer": t(e).isSubscriber
2701
+ }
2702
+ ]),
2703
+ color: "surface",
2704
+ size: "72",
2705
+ text: "Foobar",
2706
+ onClick: Te(r, ["prevent", "stop"])
2707
+ }, {
2708
+ default: a(() => [
2709
+ t(e).user && t(i).avatar ? (d(), v(Le, {
2710
+ key: 0,
2711
+ src: t(i).avatar,
2712
+ alt: "User avatar"
2713
+ }, null, 8, ["src"])) : (d(), v(I, {
2714
+ key: 1,
2715
+ class: "mt-1",
2716
+ icon: "$vuetify",
2717
+ size: "x-large"
2718
+ }))
2719
+ ]),
2720
+ _: 1
2721
+ }, 8, ["class"])), [
2722
+ [fo, t(e).isSubscriber]
2723
+ ]),
2724
+ h("div", Tn, [
2725
+ o(he, null, {
2726
+ default: a(() => [
2727
+ n.value ? (d(), L("div", Mn, [
2728
+ o(M, {
2729
+ class: "pt-6 pb-1",
2730
+ rounded: "0",
2731
+ flat: ""
2732
+ }, {
2733
+ default: a(() => [
2734
+ h("div", Rn, [
2735
+ (d(!0), L(U, null, oe(l.value, (m, b) => (d(), v(G, {
2736
+ key: b,
2737
+ active: t(i).avatar === m,
2738
+ variant: "flat",
2739
+ icon: "",
2740
+ onClick: (V) => s(m)
2741
+ }, {
2742
+ default: a(() => [
2743
+ o(ne, {
2744
+ image: m,
2745
+ eager: ""
2746
+ }, null, 8, ["image"])
2747
+ ]),
2748
+ _: 2
2749
+ }, 1032, ["active", "onClick"]))), 128))
2750
+ ])
2751
+ ]),
2752
+ _: 1
2753
+ })
2754
+ ])) : x("", !0)
2755
+ ]),
2756
+ _: 1
2757
+ })
2758
+ ]),
2759
+ h("div", Pn, A(((u = t(e).user) == null ? void 0 : u.name) ?? "Guest"), 1)
2760
+ ]);
2761
+ };
332
2762
  }
333
- async function H() {
334
- var s;
335
- if (b.value)
336
- try {
337
- e.value = !0;
338
- const l = await r.post(
339
- `/one/verify?subscriptionId=${(s = b.value) == null ? void 0 : s.tierName}`
340
- );
341
- n.user = l.user;
342
- } catch {
343
- } finally {
344
- e.value = !1;
345
- }
2763
+ }), En = /* @__PURE__ */ k({
2764
+ __name: "VoUserBadges",
2765
+ setup(p) {
2766
+ const e = F(), i = j(), n = w(() => {
2767
+ var l;
2768
+ return i.github || i.discord || i.isSubscriber || ((l = e.user) == null ? void 0 : l.isAdmin);
2769
+ });
2770
+ return (l, s) => n.value ? (d(), v(qe, {
2771
+ key: 0,
2772
+ class: "align-center position-absolute ms-2 d-flex ga-2 pa-2",
2773
+ color: "rgba(0,0,0,.54)",
2774
+ rounded: "lg",
2775
+ style: { left: "0" }
2776
+ }, {
2777
+ default: a(() => {
2778
+ var r;
2779
+ return [
2780
+ (r = t(e).user) != null && r.isAdmin ? (d(), v(Q, {
2781
+ key: 0,
2782
+ location: "bottom",
2783
+ text: "Vuetify Administrator"
2784
+ }, {
2785
+ activator: a(({ props: c }) => [
2786
+ o(I, P({
2787
+ color: "blue",
2788
+ icon: "$vuetify"
2789
+ }, c, { size: "16" }), null, 16)
2790
+ ]),
2791
+ _: 1
2792
+ })) : x("", !0),
2793
+ t(i).isSubscriber ? (d(), v(Q, {
2794
+ key: 1,
2795
+ location: "bottom",
2796
+ text: "Vuetify One Subscriber"
2797
+ }, {
2798
+ activator: a(({ props: c }) => [
2799
+ o(I, P({
2800
+ icon: `svg:${t(Jt)}`,
2801
+ color: "amber-darken-2"
2802
+ }, c, { size: "16" }), null, 16, ["icon"])
2803
+ ]),
2804
+ _: 1
2805
+ })) : x("", !0),
2806
+ t(i).github ? (d(), v(Q, {
2807
+ key: 2,
2808
+ location: "bottom",
2809
+ text: "GitHub Sponsor"
2810
+ }, {
2811
+ activator: a(({ props: c }) => [
2812
+ o(I, P({
2813
+ icon: `svg:${t(We)}`,
2814
+ color: "white"
2815
+ }, c, { size: "16" }), null, 16, ["icon"])
2816
+ ]),
2817
+ _: 1
2818
+ })) : x("", !0),
2819
+ t(i).discord ? (d(), v(Q, {
2820
+ key: 3,
2821
+ location: "bottom",
2822
+ text: "Discord Subscriber"
2823
+ }, {
2824
+ activator: a(({ props: c }) => [
2825
+ o(I, P({
2826
+ icon: `svg:${t(Ee)}`,
2827
+ color: "white"
2828
+ }, c, { size: "16" }), null, 16, ["icon"])
2829
+ ]),
2830
+ _: 1
2831
+ })) : x("", !0)
2832
+ ];
2833
+ }),
2834
+ _: 1
2835
+ })) : x("", !0);
346
2836
  }
347
- async function P() {
348
- try {
349
- e.value = !0;
350
- const s = await r.get("/one/info");
351
- return y.value = s.subscription, m.value = s.invoices, s;
352
- } catch {
353
- } finally {
354
- e.value = !1;
2837
+ }), Wn = { class: "d-flex flex-grow-1 justify-end fill-height align-start" }, Gn = {
2838
+ key: "reset",
2839
+ class: "align-self-end"
2840
+ }, qn = /* @__PURE__ */ k({
2841
+ __name: "VoUserColors",
2842
+ setup(p) {
2843
+ const e = F(), i = O(), n = D(!1);
2844
+ function l() {
2845
+ i.colors.one = "surface-light";
355
2846
  }
2847
+ return (s, r) => {
2848
+ const c = En, f = ae;
2849
+ return d(), L(U, null, [
2850
+ o(Le, {
2851
+ color: t(e).user ? t(i).colors.one : "surface-light",
2852
+ "content-class": "d-flex align-start justify-end pa-2",
2853
+ height: "88",
2854
+ rounded: "0",
2855
+ cover: "",
2856
+ flat: ""
2857
+ }, {
2858
+ default: a(() => [
2859
+ h("div", Wn, [
2860
+ o(c),
2861
+ t(e).isSubscriber ? (d(), v(f, {
2862
+ key: 0,
2863
+ active: n.value,
2864
+ icon: n.value ? `svg:${t(re)}` : "$edit",
2865
+ variant: n.value ? "text" : "plain",
2866
+ class: "align-self-end",
2867
+ color: "inherit",
2868
+ density: "comfortable",
2869
+ title: "Edit One Header Color",
2870
+ onClick: r[0] || (r[0] = (u) => n.value = !n.value)
2871
+ }, {
2872
+ default: a(() => [
2873
+ o($e, { "leave-absolute": "" }, {
2874
+ default: a(() => [
2875
+ (d(), v(I, {
2876
+ key: String(n.value)
2877
+ }))
2878
+ ]),
2879
+ _: 1
2880
+ })
2881
+ ]),
2882
+ _: 1
2883
+ }, 8, ["active", "icon", "variant"])) : x("", !0),
2884
+ o(ao, null, {
2885
+ default: a(() => [
2886
+ xe(h("div", Gn, [
2887
+ o(f, {
2888
+ disabled: t(i).colors.one === "surface-light",
2889
+ icon: `svg:${t(Xt)}`,
2890
+ class: "ms-2 me-1",
2891
+ color: "inherit",
2892
+ density: "comfortable",
2893
+ title: "Revert to Default",
2894
+ variant: "text",
2895
+ onClick: l
2896
+ }, null, 8, ["disabled", "icon"])
2897
+ ], 512), [
2898
+ [Re, n.value]
2899
+ ])
2900
+ ]),
2901
+ _: 1
2902
+ })
2903
+ ])
2904
+ ]),
2905
+ _: 1
2906
+ }, 8, ["color"]),
2907
+ o(he, null, {
2908
+ default: a(() => [
2909
+ n.value ? (d(), v(vo, {
2910
+ key: 0,
2911
+ "model-value": t(i).colors.one !== "surface-light" ? t(i).colors.one : void 0,
2912
+ elevation: "0",
2913
+ height: "250",
2914
+ rounded: "0",
2915
+ "swatches-max-height": "200",
2916
+ width: "278",
2917
+ "hide-canvas": "",
2918
+ "hide-inputs": "",
2919
+ "hide-sliders": "",
2920
+ "show-swatches": "",
2921
+ "onUpdate:modelValue": r[1] || (r[1] = (u) => t(i).colors.one = u)
2922
+ }, null, 8, ["model-value"])) : x("", !0)
2923
+ ]),
2924
+ _: 1
2925
+ })
2926
+ ], 64);
2927
+ };
356
2928
  }
357
- function E() {
358
- a.push({ query: {} });
2929
+ }), Yn = { class: "text-center mt-n9 mb-4" }, Zn = /* @__PURE__ */ k({
2930
+ __name: "VoUserMenu",
2931
+ setup(p) {
2932
+ const e = Ne(), i = j(), n = H();
2933
+ return N(() => e.banner, async () => {
2934
+ var l, s;
2935
+ await new Promise((r) => setTimeout(r, 300)), i.isOpen && ((s = (l = n.value) == null ? void 0 : l.updateLocation) == null || s.call(l));
2936
+ }, { flush: "pre" }), (l, s) => {
2937
+ const r = qn, c = Hn, f = jn, u = On, m = lt;
2938
+ return d(), v(t(_o), {
2939
+ ref_key: "menu",
2940
+ ref: n,
2941
+ modelValue: t(i).isOpen,
2942
+ "onUpdate:modelValue": s[0] || (s[0] = (b) => t(i).isOpen = b),
2943
+ "close-on-click": !1,
2944
+ "close-on-content-click": !1,
2945
+ activator: "parent",
2946
+ location: "bottom end",
2947
+ eager: ""
2948
+ }, {
2949
+ default: a(() => [
2950
+ o(M, {
2951
+ rounded: "lg",
2952
+ width: "280",
2953
+ border: ""
2954
+ }, {
2955
+ default: a(() => [
2956
+ o(r),
2957
+ h("div", Yn, [
2958
+ o(c),
2959
+ o(f)
2960
+ ]),
2961
+ o(E),
2962
+ o(u),
2963
+ o(E),
2964
+ o(m)
2965
+ ]),
2966
+ _: 1
2967
+ })
2968
+ ]),
2969
+ _: 1
2970
+ }, 8, ["modelValue"]);
2971
+ };
359
2972
  }
360
- return {
361
- info: y,
362
- interval: c,
363
- invoices: m,
364
- sessionId: t,
365
- subscription: b,
366
- monthlyTotal: p,
367
- hasBilling: v,
368
- isLoading: e,
369
- isOpen: d,
370
- isSubscriber: w,
371
- github: V,
372
- patreon: i,
373
- discord: f,
374
- activate: x,
375
- cancel: $,
376
- manage: R,
377
- modify: q,
378
- resetQuery: E,
379
- subscribe: U,
380
- subscriptionInfo: P,
381
- verify: H
382
- };
383
- }), Ge = { key: 0 }, We = /* @__PURE__ */ j({
2973
+ }), Qn = { key: 0 }, Jn = /* @__PURE__ */ k({
384
2974
  __name: "VoAuthBtn",
385
2975
  props: {
386
2976
  external: Boolean
387
2977
  },
388
- setup(o) {
389
- const t = I(), a = qe(), n = T(), { lgAndUp: r, mdAndDown: e } = se(), d = g(() => a.isOpen || !t.user ? n.colors.one === "surface-light" ? "primary" : n.colors.one : "surface-light");
390
- return (y, m) => {
391
- const c = N("VoUserMenu"), b = N("VoBtn"), v = N("VoNotificationsTotalBadge");
392
- return k(), S(v, {
393
- "offset-y": u(t).user ? 5 : 0
2978
+ setup(p) {
2979
+ const e = F(), i = j(), n = O(), { lgAndUp: l, mdAndDown: s } = se(), r = w(() => i.isOpen || !e.user ? n.colors.one === "surface-light" ? "primary" : n.colors.one : "surface-light");
2980
+ return (c, f) => {
2981
+ const u = Zn, m = ae, b = bo;
2982
+ return d(), v(b, {
2983
+ "offset-y": t(e).user ? 5 : 0
394
2984
  }, {
395
- default: h(() => [
396
- _(b, Y({
397
- [`${u(r) ? "append-" : ""}icon`]: u(t).user ? void 0 : `svg:${u(we)}`
2985
+ default: a(() => [
2986
+ o(m, P({
2987
+ [`${t(l) ? "append-" : ""}icon`]: t(e).user ? void 0 : `svg:${t(Kt)}`
398
2988
  }, {
399
- color: d.value,
400
- icon: u(t).user || u(t).isLoading,
401
- loading: u(t).isLoading,
402
- rounded: u(e),
403
- variant: u(t).user ? "outlined" : "flat",
2989
+ color: r.value,
2990
+ icon: t(e).user || t(e).isLoading,
2991
+ loading: t(e).isLoading,
2992
+ rounded: t(s),
2993
+ variant: t(e).user ? "outlined" : "flat",
404
2994
  class: "vo-auth-btn",
405
2995
  size: "default",
406
2996
  style: { transition: ".2s ease" },
407
2997
  active: ""
408
2998
  }), {
409
- default: h(() => [
410
- u(t).user ? C("", !0) : (k(), oe("span", Ge, "Login")),
411
- u(t).user ? (k(), S(W, {
2999
+ default: a(() => [
3000
+ t(e).user ? x("", !0) : (d(), L("span", Qn, "Login")),
3001
+ t(e).user ? (d(), v(ne, {
412
3002
  key: 1,
413
- image: u(n).avatar || u(t).user.picture || ""
414
- }, null, 8, ["image"])) : C("", !0),
415
- _(c)
3003
+ image: t(n).avatar || t(e).user.picture || ""
3004
+ }, null, 8, ["image"])) : x("", !0),
3005
+ o(u)
416
3006
  ]),
417
3007
  _: 1
418
3008
  }, 16, ["color", "icon", "loading", "rounded", "variant"])
@@ -421,47 +3011,47 @@ const qe = D("one", () => {
421
3011
  }, 8, ["offset-y"]);
422
3012
  };
423
3013
  }
424
- }), Je = { class: "text-center" }, Qe = { class: "text-center mb-6" }, Xe = { class: "font-weight-light mb-2" }, Ye = /* @__PURE__ */ O("span", { class: "font-weight-bold" }, "Vuetify One", -1), Ze = /* @__PURE__ */ j({
3014
+ }), Xn = { class: "text-center" }, Kn = { class: "text-center mb-6" }, es = { class: "font-weight-light mb-2" }, ts = /* @__PURE__ */ h("span", { class: "font-weight-bold" }, "Vuetify One", -1), ct = /* @__PURE__ */ k({
425
3015
  __name: "VoAuthCard",
426
- setup(o) {
427
- const t = I();
428
- return (a, n) => {
429
- const r = N("VoAuthGithub"), e = N("VoAuthDiscord");
430
- return k(), S(re, {
3016
+ setup(p) {
3017
+ const e = F();
3018
+ return (i, n) => {
3019
+ const l = it, s = at;
3020
+ return d(), v(M, {
431
3021
  class: "pt-6 pb-8 px-4 px-sm-8 mx-auto",
432
3022
  "max-width": "480"
433
3023
  }, {
434
- default: h(() => [
435
- O("div", Je, [
436
- _(W, {
3024
+ default: a(() => [
3025
+ h("div", Xn, [
3026
+ o(ne, {
437
3027
  image: "https://vuetifyjs.b-cdn.net/docs/images/avatars/one.png",
438
3028
  class: "mx-auto",
439
3029
  size: "64"
440
3030
  }, null, 8, ["image"])
441
3031
  ]),
442
- O("div", Qe, [
443
- _(Ce, { class: "text-h5 mb-1 text-md-h4" }, {
444
- default: h(() => [
445
- O("div", Xe, z(u(t).lastLoginProvider() ? "Welcome back to" : "Login to"), 1),
446
- Ye
3032
+ h("div", Kn, [
3033
+ o(no, { class: "text-h5 mb-1 text-md-h4" }, {
3034
+ default: a(() => [
3035
+ h("div", es, A(t(e).lastLoginProvider() ? "Welcome back to" : "Login to"), 1),
3036
+ ts
447
3037
  ]),
448
3038
  _: 1
449
3039
  }),
450
- _(Fe, { class: "text-wrap" }, {
451
- default: h(() => [
452
- M(" Login with GitHub or Discord to save your settings and unlock exclusive subscriber perks. ")
3040
+ o(so, { class: "text-wrap" }, {
3041
+ default: a(() => [
3042
+ B(" Login with GitHub or Discord to save your settings and unlock exclusive subscriber perks. ")
453
3043
  ]),
454
3044
  _: 1
455
3045
  })
456
3046
  ]),
457
- _(ie, {
3047
+ o(ee, {
458
3048
  class: "mx-auto",
459
3049
  "max-width": "300",
460
3050
  width: "100%"
461
3051
  }, {
462
- default: h(() => [
463
- _(r, { class: "mb-3" }),
464
- _(e)
3052
+ default: a(() => [
3053
+ o(l, { class: "mb-3" }),
3054
+ o(s)
465
3055
  ]),
466
3056
  _: 1
467
3057
  })
@@ -470,169 +3060,132 @@ const qe = D("one", () => {
470
3060
  });
471
3061
  };
472
3062
  }
473
- }), Ke = /* @__PURE__ */ j({
3063
+ }), os = /* @__PURE__ */ k({
474
3064
  __name: "VoAuthDialog",
475
- setup(o) {
476
- const t = I();
477
- return (a, n) => {
478
- const r = N("VoAuthCard");
479
- return k(), S(De, {
480
- modelValue: u(t).dialog,
481
- "onUpdate:modelValue": n[0] || (n[0] = (e) => u(t).dialog = e),
3065
+ setup(p) {
3066
+ const e = F();
3067
+ return (i, n) => {
3068
+ const l = ct;
3069
+ return d(), v(ot, {
3070
+ modelValue: t(e).dialog,
3071
+ "onUpdate:modelValue": n[0] || (n[0] = (s) => t(e).dialog = s),
482
3072
  "max-width": "480"
483
3073
  }, {
484
- default: h(() => [
485
- _(r)
3074
+ default: a(() => [
3075
+ o(l)
486
3076
  ]),
487
3077
  _: 1
488
3078
  }, 8, ["modelValue"]);
489
3079
  };
490
3080
  }
491
- }), et = D("site", () => {
492
- const o = L([]), t = L();
493
- return {
494
- id: o,
495
- url: t
496
- };
497
- }), tt = D("banners", () => {
498
- const o = J(), t = et(), a = T(), n = L([]), r = B(!1), e = g(() => d.value ? d.value : n.value.find(({
499
- slug: m,
500
- metadata: {
501
- site: c,
502
- active: b
503
- }
504
- }) => !b || a.notifications.last.banner.includes(m) ? !1 : c.includes("dev") && !1 || c.includes("*") ? !0 : c.some((v) => t.id.includes(v)))), d = g(() => n.value.find(({
505
- metadata: {
506
- site: m,
507
- active: c
508
- }
509
- }) => c ? m.includes("server") : !1));
510
- async function y() {
511
- try {
512
- r.value = !0;
513
- const m = await o.get("/one/banners");
514
- n.value = m.banners;
515
- } catch {
516
- } finally {
517
- r.value = !1;
518
- }
519
- return n.value;
520
- }
521
- return {
522
- all: n,
523
- isLoading: r,
524
- server: d,
525
- banner: e,
526
- get: y
527
- };
528
- }), nt = /* @__PURE__ */ j({
3081
+ }), ns = /* @__PURE__ */ k({
529
3082
  __name: "VoNotificationsBanner",
530
- setup(o) {
531
- const { mdAndUp: t } = se(), a = Z(), n = T(), r = tt(), e = g(() => r.banner), d = g(() => {
532
- var v, w;
533
- return ((v = e.value) == null ? void 0 : v.metadata.height) || ((w = e.value) != null && w.metadata.subtext ? 88 : 48);
534
- }), y = g(() => !e.value || !n.notifications.last.banner.includes(e.value.slug));
535
- function m() {
536
- e.value && n.notifications.last.banner.push(e.value.slug);
3083
+ setup(p) {
3084
+ const { mdAndUp: e } = se(), i = Pe(), n = O(), l = Ne(), s = w(() => l.banner), r = w(() => {
3085
+ var b, V;
3086
+ return ((b = s.value) == null ? void 0 : b.metadata.height) || ((V = s.value) != null && V.metadata.subtext ? 88 : 48);
3087
+ }), c = w(() => !s.value || !n.notifications.last.banner.includes(s.value.slug));
3088
+ function f() {
3089
+ s.value && n.notifications.last.banner.push(s.value.slug);
537
3090
  }
538
- async function c(v) {
539
- var f;
540
- if (!e.value)
3091
+ async function u(b) {
3092
+ var _;
3093
+ if (!s.value)
541
3094
  return;
542
- m(), await ve();
543
- const w = ((f = e.value) == null ? void 0 : f.metadata) ?? { link: "" };
544
- if (w.link.indexOf("?one=") === -1)
3095
+ f(), await fe();
3096
+ const V = ((_ = s.value) == null ? void 0 : _.metadata) ?? { link: "" };
3097
+ if (V.link.indexOf("?one=") === -1)
545
3098
  return;
546
- v.preventDefault(), v.stopPropagation();
547
- const V = w.link.split("?one=")[1];
548
- a.push({ query: { one: V } });
3099
+ b.preventDefault(), b.stopPropagation();
3100
+ const S = V.link.split("?one=")[1];
3101
+ i.push({ query: { one: S } });
549
3102
  }
550
- const b = g(() => {
551
- var w, V;
552
- const v = ((w = e.value) == null ? void 0 : w.metadata) ?? { link: "" };
3103
+ const m = w(() => {
3104
+ var V, S;
3105
+ const b = ((V = s.value) == null ? void 0 : V.metadata) ?? { link: "" };
553
3106
  return {
554
- href: v.link.startsWith("http") ? v.link : void 0,
555
- target: v.link.startsWith("http") ? "_blank" : void 0,
556
- to: v.link.startsWith("http") ? void 0 : v.link,
557
- ...(V = e.value) == null ? void 0 : V.metadata.attributes,
558
- onClick: c
3107
+ href: b.link.startsWith("http") ? b.link : void 0,
3108
+ target: b.link.startsWith("http") ? "_blank" : void 0,
3109
+ to: b.link.startsWith("http") ? void 0 : b.link,
3110
+ ...(S = s.value) == null ? void 0 : S.metadata.attributes,
3111
+ onClick: u
559
3112
  };
560
3113
  });
561
- return (v, w) => {
562
- var V;
563
- return e.value ? (k(), S(Ie, {
3114
+ return (b, V) => {
3115
+ var S;
3116
+ return s.value ? (d(), v(ho, {
564
3117
  key: 0,
565
- color: e.value.metadata.color,
566
- height: d.value,
567
- image: (V = e.value.metadata.images.bg) == null ? void 0 : V.url,
568
- "model-value": y.value,
569
- theme: e.value.metadata.theme.key,
3118
+ color: s.value.metadata.color,
3119
+ height: r.value,
3120
+ image: (S = s.value.metadata.images.bg) == null ? void 0 : S.url,
3121
+ "model-value": c.value,
3122
+ theme: s.value.metadata.theme.key,
570
3123
  flat: ""
571
3124
  }, {
572
- default: h(() => [
573
- _(ue, Y(b.value, {
3125
+ default: a(() => [
3126
+ o(_e, P(m.value, {
574
3127
  active: !1,
575
3128
  class: "flex-grow-1",
576
3129
  lines: "two",
577
- onClick: c
578
- }), me({
579
- append: h(() => [
580
- u(t) && e.value.metadata.link && e.value.metadata.link_text ? (k(), S(Ee, { key: 0 }, {
581
- default: h(({ isHovering: f, props: i }) => [
582
- _(K, Y({
583
- ...i,
584
- ...b.value
3130
+ onClick: u
3131
+ }), W({
3132
+ append: a(() => [
3133
+ t(e) && s.value.metadata.link && s.value.metadata.link_text ? (d(), v(Ce, { key: 0 }, {
3134
+ default: a(({ isHovering: _, props: y }) => [
3135
+ o(G, P({
3136
+ ...y,
3137
+ ...m.value
585
3138
  }, {
586
- "append-icon": `svg:${u(ke)}`,
587
- color: e.value.metadata.link_color,
588
- elevation: f ? 8 : 0,
589
- title: e.value.metadata.link_text,
3139
+ "append-icon": `svg:${t(ve)}`,
3140
+ color: s.value.metadata.link_color,
3141
+ elevation: _ ? 8 : 0,
3142
+ title: s.value.metadata.link_text,
590
3143
  class: "text-none me-2",
591
3144
  variant: "elevated",
592
- onClick: c
3145
+ onClick: u
593
3146
  }), {
594
- default: h(() => [
595
- M(z(e.value.metadata.link_text), 1)
3147
+ default: a(() => [
3148
+ B(A(s.value.metadata.link_text), 1)
596
3149
  ]),
597
3150
  _: 2
598
3151
  }, 1040, ["append-icon", "color", "elevation", "title"])
599
3152
  ]),
600
3153
  _: 1
601
- })) : C("", !0),
602
- e.value.metadata.closable ? (k(), S(K, {
3154
+ })) : x("", !0),
3155
+ s.value.metadata.closable ? (d(), v(G, {
603
3156
  key: 1,
604
3157
  class: "ms-6 me-2",
605
3158
  density: "comfortable",
606
3159
  icon: "$clear",
607
3160
  size: "small",
608
3161
  variant: "plain",
609
- onClick: ae(m, ["prevent", "stop"])
610
- })) : C("", !0)
3162
+ onClick: Te(f, ["prevent", "stop"])
3163
+ })) : x("", !0)
611
3164
  ]),
612
- default: h(() => [
613
- e.value.metadata.text ? (k(), S(Ne, {
3165
+ default: a(() => [
3166
+ s.value.metadata.text ? (d(), v(et, {
614
3167
  key: 0,
615
3168
  class: "text-subtitle-2 text-md-subtitle-1 font-weight-medium"
616
3169
  }, {
617
- default: h(() => [
618
- M(z(e.value.metadata.text), 1)
3170
+ default: a(() => [
3171
+ B(A(s.value.metadata.text), 1)
619
3172
  ]),
620
3173
  _: 1
621
- })) : C("", !0),
622
- e.value.metadata.subtext ? (k(), S(Oe, { key: 1 }, {
623
- default: h(() => [
624
- M(z(e.value.metadata.subtext), 1)
3174
+ })) : x("", !0),
3175
+ s.value.metadata.subtext ? (d(), v(oo, { key: 1 }, {
3176
+ default: a(() => [
3177
+ B(A(s.value.metadata.subtext), 1)
625
3178
  ]),
626
3179
  _: 1
627
- })) : C("", !0)
3180
+ })) : x("", !0)
628
3181
  ]),
629
3182
  _: 2
630
3183
  }, [
631
- e.value.metadata.images.logo ? {
3184
+ s.value.metadata.images.logo ? {
632
3185
  name: "prepend",
633
- fn: h(() => [
634
- _(W, {
635
- image: e.value.metadata.images.logo.url,
3186
+ fn: a(() => [
3187
+ o(ne, {
3188
+ image: s.value.metadata.images.logo.url,
636
3189
  size: "x-large"
637
3190
  }, null, 8, ["image"])
638
3191
  ]),
@@ -641,103 +3194,16 @@ const qe = D("one", () => {
641
3194
  ]), 1040)
642
3195
  ]),
643
3196
  _: 1
644
- }, 8, ["color", "height", "image", "model-value", "theme"])) : C("", !0);
645
- };
646
- }
647
- }), ot = { class: "pa-4 d-flex flex-column ga-4" }, at = /* @__PURE__ */ j({
648
- __name: "VoAuthListItem",
649
- setup(o) {
650
- const t = I(), a = T(), n = B(!t.user && !t.isLoading);
651
- F(() => t.user, (e) => {
652
- n.value = !e;
653
- });
654
- function r() {
655
- t.user && (n.value = !n.value);
656
- }
657
- return (e, d) => {
658
- const y = N("VoAuthGithub"), m = N("VoAuthDiscord");
659
- return k(), S(re, {
660
- variant: n.value ? "tonal" : "text",
661
- class: "ma-2",
662
- rounded: "lg"
663
- }, {
664
- default: h(() => [
665
- _(ie, { class: "py-0" }, {
666
- default: h(() => [
667
- _(ue, {
668
- link: !!u(t).user,
669
- "prepend-icon": `svg:${u(t).user && u(a).syncSettings ? u(Ve) : u(Se)}`,
670
- title: u(t).user && u(a).syncSettings ? "Sync is on" : "Sync is paused",
671
- class: "mb-0",
672
- rounded: "b-0",
673
- nav: "",
674
- slim: "",
675
- onClick: r
676
- }, {
677
- append: h(() => [
678
- _(Te, null, {
679
- default: h(() => [
680
- u(t).user && (n.value || !u(a).syncSettings) ? (k(), S(je, {
681
- key: 0,
682
- modelValue: u(a).syncSettings,
683
- "onUpdate:modelValue": d[0] || (d[0] = (c) => u(a).syncSettings = c),
684
- color: u(a).syncSettings ? "success" : void 0,
685
- density: "compact",
686
- "hide-details": "",
687
- inset: "",
688
- onClick: d[1] || (d[1] = ae(() => {
689
- }, ["stop"]))
690
- }, {
691
- thumb: h(() => [
692
- _(W, {
693
- color: u(a).syncSettings ? "success" : void 0
694
- }, null, 8, ["color"])
695
- ]),
696
- _: 1
697
- }, 8, ["modelValue", "color"])) : C("", !0)
698
- ]),
699
- _: 1
700
- })
701
- ]),
702
- _: 1
703
- }, 8, ["link", "prepend-icon", "title"]),
704
- _(Re, null, {
705
- default: h(() => [
706
- !u(t).user && !u(t).isLoading || n.value ? (k(), S(Be, {
707
- key: 0,
708
- border: "t",
709
- color: "transparent"
710
- }, {
711
- default: h(() => [
712
- O("div", ot, [
713
- _(y, {
714
- onClick: d[2] || (d[2] = (c) => n.value = !1)
715
- }),
716
- _(m, {
717
- onClick: d[3] || (d[3] = (c) => n.value = !1)
718
- })
719
- ])
720
- ]),
721
- _: 1
722
- })) : C("", !0)
723
- ]),
724
- _: 1
725
- })
726
- ]),
727
- _: 1
728
- })
729
- ]),
730
- _: 1
731
- }, 8, ["variant"]);
3197
+ }, 8, ["color", "height", "image", "model-value", "theme"])) : x("", !0);
732
3198
  };
733
3199
  }
734
- }), st = (o) => (ge("data-v-d0145a63"), o = o(), be(), o), rt = ["href", "title"], it = {
3200
+ }), ss = (p) => (ht("data-v-d0145a63"), p = p(), gt(), p), as = ["href", "title"], is = {
735
3201
  class: "text-caption text-disabled",
736
3202
  style: { position: "absolute", right: "16px" }
737
- }, ut = /* @__PURE__ */ st(() => /* @__PURE__ */ O("span", { class: "d-none d-sm-inline-block" }, "Vuetify, LLC", -1)), ct = /* @__PURE__ */ j({
3203
+ }, ls = /* @__PURE__ */ ss(() => /* @__PURE__ */ h("span", { class: "d-none d-sm-inline-block" }, "Vuetify, LLC", -1)), rs = /* @__PURE__ */ k({
738
3204
  __name: "VoFooter",
739
- setup(o) {
740
- const t = [
3205
+ setup(p) {
3206
+ const e = [
741
3207
  {
742
3208
  title: "Vuetify Documentation",
743
3209
  icon: "$vuetify",
@@ -745,7 +3211,7 @@ const qe = D("one", () => {
745
3211
  },
746
3212
  {
747
3213
  title: "Vuetify Support",
748
- icon: `svg:${xe}`,
3214
+ icon: `svg:${eo}`,
749
3215
  href: "https://support.vuetifyjs.com/"
750
3216
  },
751
3217
  {
@@ -755,308 +3221,157 @@ const qe = D("one", () => {
755
3221
  },
756
3222
  {
757
3223
  title: "Vuetify GitHub",
758
- icon: `svg:${$e}`,
3224
+ icon: `svg:${We}`,
759
3225
  href: "https://github.com/vuetifyjs/vuetify"
760
3226
  },
761
3227
  {
762
3228
  title: "Vuetify Discord",
763
- icon: `svg:${Le}`,
3229
+ icon: `svg:${Ee}`,
764
3230
  href: "https://community.vuetifyjs.com/"
765
3231
  },
766
3232
  {
767
3233
  title: "Vuetify Reddit",
768
- icon: `svg:${Ae}`,
3234
+ icon: `svg:${to}`,
769
3235
  href: "https://reddit.com/r/vuetifyjs"
770
3236
  }
771
3237
  ];
772
- return (a, n) => (k(), S(Ue, {
3238
+ return (i, n) => (d(), v(go, {
773
3239
  class: "vo-footer",
774
3240
  height: "40"
775
3241
  }, {
776
- default: h(() => [
777
- (k(), oe(he, null, ye(t, (r) => O("a", {
778
- key: r.title,
779
- href: r.href,
780
- title: r.title,
3242
+ default: a(() => [
3243
+ (d(), L(U, null, oe(e, (l) => h("a", {
3244
+ key: l.title,
3245
+ href: l.href,
3246
+ title: l.title,
781
3247
  class: "d-inline-block mx-2 social-link",
782
3248
  rel: "noopener noreferrer",
783
3249
  target: "_blank"
784
3250
  }, [
785
- _(He, {
786
- icon: r.icon,
787
- size: r.icon === "$vuetify" ? 24 : 16
3251
+ o(I, {
3252
+ icon: l.icon,
3253
+ size: l.icon === "$vuetify" ? 24 : 16
788
3254
  }, null, 8, ["icon", "size"])
789
- ], 8, rt)), 64)),
790
- O("div", it, [
791
- M(" © 2016-" + z((/* @__PURE__ */ new Date()).getFullYear()) + " ", 1),
792
- ut
3255
+ ], 8, as)), 64)),
3256
+ h("div", is, [
3257
+ B(" © 2016-" + A((/* @__PURE__ */ new Date()).getFullYear()) + " ", 1),
3258
+ ls
793
3259
  ])
794
3260
  ]),
795
3261
  _: 1
796
3262
  }));
797
3263
  }
798
- }), lt = (o, t) => {
799
- const a = o.__vccOpts || o;
800
- for (const [n, r] of t)
801
- a[n] = r;
802
- return a;
803
- }, dt = /* @__PURE__ */ lt(ct, [["__scopeId", "data-v-d0145a63"]]), Nt = D("bins", () => {
804
- const o = I(), t = J(), a = L([]), n = L(), r = B(!1), e = B(-1), d = g(() => !o.user || !n.value ? !1 : o.user.id === n.value.owner.id), y = g(() => a.value.filter((i) => i.favorite)), m = g(() => a.value.filter((i) => i.pinned));
805
- F(n, () => {
806
- window.clearTimeout(e.value), e.value = window.setTimeout(() => {
807
- !n.value || !d.value || w(n.value, n.value.id);
3264
+ }), cs = (p, e) => {
3265
+ const i = p.__vccOpts || p;
3266
+ for (const [n, l] of e)
3267
+ i[n] = l;
3268
+ return i;
3269
+ }, us = /* @__PURE__ */ cs(rs, [["__scopeId", "data-v-d0145a63"]]), Js = J("bins", () => {
3270
+ const p = F(), e = ge(), i = H([]), n = H(), l = D(!1), s = D(-1), r = w(() => !p.user || !n.value ? !1 : p.user.id === n.value.owner.id), c = w(() => i.value.filter((y) => y.favorite)), f = w(() => i.value.filter((y) => y.pinned));
3271
+ N(n, () => {
3272
+ window.clearTimeout(s.value), s.value = window.setTimeout(() => {
3273
+ !n.value || !r.value || V(n.value, n.value.id);
808
3274
  }, 100);
809
3275
  }, { deep: !0 });
810
- async function c() {
3276
+ async function u() {
811
3277
  try {
812
- r.value = !0;
813
- const i = await t.get("/one/bins");
814
- a.value = i.bins;
3278
+ l.value = !0;
3279
+ const y = await e.get("/one/bins");
3280
+ i.value = y.bins;
815
3281
  } catch {
816
3282
  } finally {
817
- r.value = !1;
3283
+ l.value = !1;
818
3284
  }
819
- return a.value;
3285
+ return i.value;
820
3286
  }
821
- async function b(i) {
3287
+ async function m(y) {
822
3288
  try {
823
- r.value = !0, await t.delete(`/one/bins/${i}`), a.value = a.value.filter((p) => p.id !== i);
3289
+ l.value = !0, await e.delete(`/one/bins/${y}`), i.value = i.value.filter(($) => $.id !== y);
824
3290
  } catch {
825
3291
  } finally {
826
- r.value = !1;
3292
+ l.value = !1;
827
3293
  }
828
3294
  return !0;
829
3295
  }
830
- async function v(i) {
3296
+ async function b(y) {
831
3297
  try {
832
- r.value = !0;
833
- const p = await t.post("/one/bins", { bin: i });
834
- return a.value.push(p.bin), n.value = p.bin, p;
3298
+ l.value = !0;
3299
+ const $ = await e.post("/one/bins", { bin: y });
3300
+ return i.value.push($.bin), n.value = $.bin, $;
835
3301
  } catch {
836
3302
  } finally {
837
- r.value = !1;
3303
+ l.value = !1;
838
3304
  }
839
- return { bin: i };
3305
+ return { bin: y };
840
3306
  }
841
- async function w(i, p) {
3307
+ async function V(y, $) {
842
3308
  try {
843
- r.value = !0;
844
- const x = await t.post(`/one/bins/${p}`, { bin: i }), R = a.value.findIndex((U) => U.id === p);
845
- a.value.splice(R, 1, x.bin);
3309
+ l.value = !0;
3310
+ const z = await e.post(`/one/bins/${$}`, { bin: y }), T = i.value.findIndex((te) => te.id === $);
3311
+ i.value.splice(T, 1, z.bin);
846
3312
  } catch {
847
3313
  } finally {
848
- r.value = !1;
3314
+ l.value = !1;
849
3315
  }
850
- return { bin: i };
3316
+ return { bin: y };
851
3317
  }
852
- async function V(i, p) {
3318
+ async function S(y, $) {
853
3319
  try {
854
- r.value = !0;
855
- const x = p ? await w(i, p) : await v(i);
856
- n.value = x.bin;
3320
+ l.value = !0;
3321
+ const z = $ ? await V(y, $) : await b(y);
3322
+ n.value = z.bin;
857
3323
  } catch {
858
3324
  } finally {
859
- r.value = !1;
3325
+ l.value = !1;
860
3326
  }
861
- return { bin: i };
3327
+ return { bin: y };
862
3328
  }
863
- async function f(i) {
3329
+ async function _(y) {
864
3330
  try {
865
- r.value = !0;
866
- const p = await t.get(`/one/bins/${i}`);
867
- n.value = p.bin;
3331
+ l.value = !0;
3332
+ const $ = await e.get(`/one/bins/${y}`);
3333
+ n.value = $.bin;
868
3334
  } catch {
869
3335
  } finally {
870
- r.value = !1;
3336
+ l.value = !1;
871
3337
  }
872
3338
  return { bin: n.value };
873
3339
  }
874
3340
  return {
875
- isLoading: r,
876
- isOwner: d,
877
- pinned: m,
878
- favorites: y,
879
- all: a,
880
- create: v,
881
- delete: b,
3341
+ isLoading: l,
3342
+ isOwner: r,
3343
+ pinned: f,
3344
+ favorites: c,
3345
+ all: i,
3346
+ create: b,
3347
+ delete: m,
882
3348
  current: n,
883
- find: f,
884
- get: c,
885
- update: w,
886
- updateOrCreate: V
887
- };
888
- });
889
- function ft() {
890
- return {
891
- blackguard: {
892
- dark: !0,
893
- colors: {
894
- background: "#0f0c24",
895
- primary: "#e7810d",
896
- surface: "#1e184a",
897
- info: "#9c27b0",
898
- accent: "#FF4081",
899
- success: "#84b38a",
900
- "surface-light": "#362b89",
901
- "surface-bright": "#564f8a",
902
- "surface-variant": "#6458b4",
903
- "on-surface-variant": "#FFFFFF",
904
- "primary-darken-1": "#c56e0b",
905
- secondary: "#8A2BE2",
906
- "secondary-darken-1": "#7919cb",
907
- error: "#FF5555",
908
- warning: "#ffa726"
909
- },
910
- variables: {
911
- "border-color": "#FFFFFF",
912
- "border-opacity": 0.12,
913
- "high-emphasis-opacity": 0.87,
914
- "medium-emphasis-opacity": 0.6,
915
- "disabled-opacity": 0.38,
916
- "idle-opacity": 0.1,
917
- "hover-opacity": 0.08,
918
- "focus-opacity": 0.12,
919
- "selected-opacity": 0.12,
920
- "activated-opacity": 0.12,
921
- "pressed-opacity": 0.16,
922
- "dragged-opacity": 0.08,
923
- "theme-kbd": "#212529",
924
- "theme-on-kbd": "#FFFFFF",
925
- "theme-code": "#343434",
926
- "theme-on-code": "#CCCCCC"
927
- }
928
- },
929
- nebula: {
930
- dark: !0,
931
- colors: {
932
- background: "#0a0f1b",
933
- surface: "#1c1f2a",
934
- primary: "#4d5b9e",
935
- "primary-darken-1": "#424a8c",
936
- secondary: "#7a82d2",
937
- accent: "#00eaff",
938
- info: "#29b6f6",
939
- warning: "#ffeb3b",
940
- error: "#e91e63",
941
- success: "#4caf50",
942
- "on-surface-variant": "#5c6bc0",
943
- "surface-light": "#2a3c66",
944
- "secondary-darken-1": "#686f9a"
945
- },
946
- variables: {
947
- "border-color": "#FFFFFF",
948
- "border-opacity": 0.12,
949
- "high-emphasis-opacity": 0.87,
950
- "medium-emphasis-opacity": 0.6,
951
- "disabled-opacity": 0.38,
952
- "idle-opacity": 0.1,
953
- "hover-opacity": 0.08,
954
- "focus-opacity": 0.12,
955
- "selected-opacity": 0.12,
956
- "activated-opacity": 0.12,
957
- "pressed-opacity": 0.16,
958
- "dragged-opacity": 0.08,
959
- "theme-kbd": "#212529",
960
- "theme-on-kbd": "#FFFFFF",
961
- "theme-code": "#343434",
962
- "theme-on-code": "#CCCCCC"
963
- }
964
- },
965
- highContrast: {
966
- dark: !0,
967
- colors: {
968
- background: "#000000",
969
- surface: "#000000",
970
- primary: "#ffD700",
971
- "primary-darken-1": "#e6c300",
972
- secondary: "#00ff00",
973
- "secondary-darken-1": "#00e600",
974
- accent: "#ff00ff",
975
- info: "#31aaff",
976
- warning: "#ffaa00",
977
- error: "#ff0000",
978
- success: "#00ff00",
979
- "on-surface-variant": "#000000",
980
- "surface-light": "#f2f2f2",
981
- "surface-bright": "#e6e6e6",
982
- "surface-variant": "#cccccc"
983
- },
984
- variables: {
985
- "border-color": "#ffffff",
986
- "border-opacity": 0.87,
987
- "high-emphasis-opacity": 1,
988
- "medium-emphasis-opacity": 0.87,
989
- "disabled-opacity": 0.5,
990
- "idle-opacity": 0.1,
991
- "hover-opacity": 0.2,
992
- "focus-opacity": 0.3,
993
- "selected-opacity": 0.3,
994
- "activated-opacity": 0.3,
995
- "pressed-opacity": 0.4,
996
- "dragged-opacity": 0.2,
997
- "theme-kbd": "#000000",
998
- "theme-on-kbd": "#ffffff",
999
- "theme-code": "#000000",
1000
- "theme-on-code": "#ffffff"
1001
- }
1002
- }
1003
- };
1004
- }
1005
- const Ot = D("settings", () => {
1006
- const o = "https://cdn.vuetifyjs.com/docs/images/one/", t = I(), a = T(), n = _e(), r = ft(), e = {
1007
- blackguard: {
1008
- "app-bar": o + "suits/blackguard/blackguard-app-bar.png",
1009
- drawer: o + "suits/blackguard/blackguard-app-drawer.png",
1010
- footer: ""
1011
- }
1012
- // polaris: {
1013
- // 'app-bar': '',
1014
- // 'drawer': '',
1015
- // footer: '',
1016
- // },
1017
- // nebula: {
1018
- // 'app-bar': '',
1019
- // 'drawer': '',
1020
- // footer: '',
1021
- // },
1022
- }, d = g(() => {
1023
- if (!a.suits.suit || !a.suits.show || !t.isSubscriber)
1024
- return {};
1025
- const y = e[a.suits.suit.toLowerCase()], m = {};
1026
- for (const c of a.suits.elements)
1027
- m[c] = y[c];
1028
- return m;
1029
- });
1030
- return n.themes.value = {
1031
- ...n.themes.value,
1032
- ...r
1033
- }, F(() => a.theme, (y) => {
1034
- y === "system" ? n.global.name.value = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : n.global.name.value = y, a.theme = y;
1035
- }, { immediate: !0 }), {
1036
- suit: d,
1037
- CDN_URL: o
3349
+ find: _,
3350
+ get: u,
3351
+ update: V,
3352
+ updateOrCreate: S
1038
3353
  };
1039
3354
  });
1040
- function Dt() {
1041
- function o(t) {
1042
- t.component("VoAuthBtn", We), t.component("VoAuthCard", Ze), t.component("VoAuthDialog", Ke), t.component("VoAuthListItem", at), t.component("VoNotificationsBanner", nt), t.component("VoFooter", dt);
3355
+ function Xs() {
3356
+ function p(e) {
3357
+ e.component("VoAuthBtn", Jn), e.component("VoAuthCard", ct), e.component("VoAuthDialog", os), e.component("VoAuthListItem", lt), e.component("VoNotificationsBanner", ns), e.component("VoFooter", us);
1043
3358
  }
1044
- return { install: o };
3359
+ return { install: p };
1045
3360
  }
1046
- function It(o, t) {
1047
- return function(a) {
1048
- const n = a.store;
1049
- n.url = t, n.$id === "site" && (n.id = o);
3361
+ function Ks(p, e) {
3362
+ return function(i) {
3363
+ const n = i.store;
3364
+ n.url = e, n.$id === "site" && (n.id = p);
1050
3365
  };
1051
3366
  }
1052
3367
  export {
1053
- Dt as createOne,
1054
- It as one,
1055
- I as useAuthStore,
1056
- tt as useBannersStore,
1057
- Nt as useBinsStore,
1058
- J as useHttpStore,
1059
- qe as useOneStore,
1060
- Ot as useSettingsStore,
1061
- T as useUserStore
3368
+ Xs as createOne,
3369
+ Ks as one,
3370
+ F as useAuthStore,
3371
+ Ne as useBannersStore,
3372
+ Js as useBinsStore,
3373
+ ge as useHttpStore,
3374
+ j as useOneStore,
3375
+ Be as useSettingsStore,
3376
+ O as useUserStore
1062
3377
  };