@vuetify/one 0.6.2 → 1.0.0

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