@inzombieland/nuxt-common 1.18.44 → 1.18.46

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.
@@ -27,7 +27,7 @@
27
27
 
28
28
  .dark .layer-header {
29
29
  color: rgba(255, 255, 255, 0.87);
30
- box-shadow: inset 0 -1px 0 rgba(64, 64, 64, 0.9);
30
+ box-shadow: inset 0 -1px 0 rgba(64, 64, 64, 0.9) !important;
31
31
  }
32
32
 
33
33
  .layer-header > h1 {
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inzombieland/nuxt-common",
3
- "version": "1.18.44",
3
+ "version": "1.18.46",
4
4
  "configKey": "nuxt-common",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "0.6.0",
package/dist/module.mjs CHANGED
@@ -2,7 +2,7 @@ import { fileURLToPath } from 'node:url';
2
2
  import { defineNuxtModule, createResolver, addServerHandler, addImportsDir, addPlugin, addComponent } from '@nuxt/kit';
3
3
 
4
4
  const name = "@inzombieland/nuxt-common";
5
- const version = "1.18.44";
5
+ const version = "1.18.46";
6
6
 
7
7
  const module = defineNuxtModule({
8
8
  meta: {
@@ -20,6 +20,9 @@ declare const fetch: Fetch, getUser: () => Promise<import("src/runtime/packages/
20
20
  signIn: (body: Record<string, any>) => Promise<import("src/runtime/packages/core/types").GetUserResponse | {
21
21
  key: string;
22
22
  }>;
23
+ signInByCodeSendCode: (body: Record<string, any>) => Promise<{
24
+ key: string;
25
+ }>;
23
26
  signInByCodeVerifyCode: (body: Record<string, any>) => Promise<import("src/runtime/packages/core/types").GetUserResponse>;
24
27
  signUp: (body: Record<string, any>) => Promise<{
25
28
  key: string;
@@ -34,9 +37,19 @@ declare const fetch: Fetch, getUser: () => Promise<import("src/runtime/packages/
34
37
  key: string;
35
38
  }>;
36
39
  logout: () => Promise<void>;
37
- fetchActiveSessions: () => Promise<{
38
- sessions: import("src/runtime/packages/core/types").ActiveSession[];
40
+ recovery: (body: Record<string, any>) => Promise<{
41
+ key: string;
39
42
  }>;
43
+ confirmRecovery: (body: {
44
+ key: string;
45
+ code: string;
46
+ }) => Promise<{
47
+ key: string;
48
+ }>;
49
+ resetPassword: (body: {
50
+ key: string;
51
+ password: string;
52
+ }) => Promise<{}>;
40
53
  changeName: (body: {
41
54
  firstName: string;
42
55
  lastName: string;
@@ -84,10 +97,20 @@ declare const fetch: Fetch, getUser: () => Promise<import("src/runtime/packages/
84
97
  }) => Promise<void>;
85
98
  changeAvatar: (body: FormData) => Promise<void>;
86
99
  deleteAvatar: () => Promise<void>;
100
+ fetchActiveSessions: () => Promise<{
101
+ sessions: import("src/runtime/packages/core/types").ActiveSession[];
102
+ }>;
87
103
  logoutActiveSession: (body: {
88
104
  sessionId: string;
89
105
  visitorId: string;
90
106
  }) => Promise<any>;
91
107
  logoutFromAllActiveSessions: () => Promise<any>;
108
+ deleteAccount: () => Promise<{
109
+ key: string;
110
+ }>;
111
+ confirmDeleteAccount: (body: {
112
+ key: string;
113
+ code: string;
114
+ }) => Promise<void>;
92
115
  };
93
116
  export { fetch, getUser, useApiFetch, userActions };
@@ -1,94 +1,2 @@
1
- import type { ActiveSession } from "../packages/core";
2
- export declare const signIn: (body: Record<string, any>) => Promise<import("src/runtime/packages/core/types").GetUserResponse | {
3
- key: string;
4
- }>;
5
- export declare const signInByCodeVerifyCode: (body: Record<string, any>) => Promise<import("src/runtime/packages/core/types").GetUserResponse>;
6
- export declare const signUp: (body: Record<string, any>) => Promise<{
7
- key: string;
8
- }>;
9
- export declare const confirmEmail: (body: {
10
- key: string;
11
- code: string;
12
- }) => Promise<{}>;
13
- export declare const resendActivationEmail: (body: {
14
- email: string;
15
- }) => Promise<{
16
- key: string;
17
- }>;
18
- export declare const logout: () => Promise<void>;
19
- export declare const changeName: (body: {
20
- firstName: string;
21
- lastName: string;
22
- middleName: string;
23
- }) => Promise<void>;
24
- export declare const changeBirthday: (body: {
25
- day?: number;
26
- month?: number;
27
- year?: number;
28
- }) => Promise<void>;
29
- export declare const changeGender: (body: {
30
- gender: "" | "male" | "female";
31
- }) => Promise<void>;
32
- export declare const changePassword: (body: {
33
- password: string;
34
- newPassword: string;
35
- }) => Promise<{
36
- key: string;
37
- }>;
38
- export declare const confirmPasswordChange: (body: {
39
- key: string;
40
- code: string;
41
- newPassword?: string;
42
- }) => Promise<void>;
43
- export declare const changeEmail: (body: {
44
- email: string;
45
- password: string;
46
- }) => Promise<{
47
- key: string;
48
- }>;
49
- export declare const confirmEmailChange: (body: {
50
- key: string;
51
- code: string;
52
- email?: string;
53
- }) => Promise<void>;
54
- export declare const changePhone: (body: {
55
- phone: string;
56
- password: string;
57
- }) => Promise<void>;
58
- export declare const changeAvatar: (body: FormData) => Promise<void>;
59
- export declare const deleteAvatar: () => Promise<void>;
60
- export declare const logoutActiveSession: (body: {
61
- sessionId: string;
62
- visitorId: string;
63
- }) => Promise<any>;
64
- export declare const logoutFromAllActiveSessions: () => Promise<any>;
65
- export declare const signInByCodeSendCode: (body: {
66
- username: string;
67
- }) => Promise<{
68
- key: string;
69
- }>;
70
- export declare const recovery: (body: {
71
- email: string;
72
- }) => Promise<{
73
- key: string;
74
- }>;
75
- export declare const confirmRecovery: (body: {
76
- key: string;
77
- code: string;
78
- }) => Promise<{
79
- key: string;
80
- }>;
81
- export declare const resetPassword: (body: {
82
- key: string;
83
- password: string;
84
- }) => Promise<{}>;
85
- export declare const fetchActiveSessions: () => Promise<{
86
- sessions: ActiveSession[];
87
- }>;
88
- export declare const deleteAccount: () => Promise<{
89
- key: string;
90
- }>;
91
- export declare const confirmDeleteAccount: (body: {
92
- key: string;
93
- code: string;
94
- }) => Promise<void>;
1
+ import { userActions } from "./index";
2
+ export default userActions;
@@ -1,63 +1,2 @@
1
- import { useRequestHeaders } from "#imports";
2
- import { flush } from "../packages/core/api-client.mjs";
3
- import { fetch, userActions } from "./index.mjs";
4
- export const signIn = userActions.signIn;
5
- export const signInByCodeVerifyCode = userActions.signInByCodeVerifyCode;
6
- export const signUp = userActions.signUp;
7
- export const confirmEmail = userActions.confirmEmail;
8
- export const resendActivationEmail = userActions.resendActivationEmail;
9
- export const logout = userActions.logout;
10
- export const changeName = userActions.changeName;
11
- export const changeBirthday = userActions.changeBirthday;
12
- export const changeGender = userActions.changeGender;
13
- export const changePassword = userActions.changePassword;
14
- export const confirmPasswordChange = userActions.confirmPasswordChange;
15
- export const changeEmail = userActions.changeEmail;
16
- export const confirmEmailChange = userActions.confirmEmailChange;
17
- export const changePhone = userActions.changePhone;
18
- export const changeAvatar = userActions.changeAvatar;
19
- export const deleteAvatar = userActions.deleteAvatar;
20
- export const logoutActiveSession = userActions.logoutActiveSession;
21
- export const logoutFromAllActiveSessions = userActions.logoutFromAllActiveSessions;
22
- export const signInByCodeSendCode = async (body) => {
23
- return await fetch("/account/0/signinbycode/sendcode", {
24
- body,
25
- method: "POST",
26
- baseURL: "/",
27
- headers: useRequestHeaders(["cookie"])
28
- });
29
- };
30
- export const recovery = async (body) => {
31
- return await fetch("/account/0/recovery", {
32
- body,
33
- method: "POST",
34
- baseURL: "/",
35
- headers: useRequestHeaders(["cookie"])
36
- });
37
- };
38
- export const confirmRecovery = async (body) => {
39
- return await fetch("/account/0/recovery", {
40
- body,
41
- method: "PATCH",
42
- baseURL: "/",
43
- headers: useRequestHeaders(["cookie"])
44
- });
45
- };
46
- export const resetPassword = async (body) => {
47
- return await fetch("/account/0/recovery", {
48
- body,
49
- method: "PUT",
50
- baseURL: "/",
51
- headers: useRequestHeaders(["cookie"])
52
- });
53
- };
54
- export const fetchActiveSessions = async () => {
55
- return await fetch("/account/1/sessions");
56
- };
57
- export const deleteAccount = async () => {
58
- return await fetch("/account/1/delete", { method: "POST" });
59
- };
60
- export const confirmDeleteAccount = async (body) => {
61
- await fetch("/account/1/delete", { body, method: "PUT" });
62
- flush();
63
- };
1
+ import { userActions } from "./index.mjs";
2
+ export default userActions;
@@ -1,2 +1,97 @@
1
- import * as userActions from "../api/user-actions";
2
- export declare const useUserActions: () => typeof userActions;
1
+ export declare const useUserActions: () => {
2
+ signIn: (body: Record<string, any>) => Promise<import("src/runtime/packages/core").GetUserResponse | {
3
+ key: string;
4
+ }>;
5
+ signInByCodeSendCode: (body: Record<string, any>) => Promise<{
6
+ key: string;
7
+ }>;
8
+ signInByCodeVerifyCode: (body: Record<string, any>) => Promise<import("src/runtime/packages/core").GetUserResponse>;
9
+ signUp: (body: Record<string, any>) => Promise<{
10
+ key: string;
11
+ }>;
12
+ confirmEmail: (body: {
13
+ key: string;
14
+ code: string;
15
+ }) => Promise<{}>;
16
+ resendActivationEmail: (body: {
17
+ email: string;
18
+ }) => Promise<{
19
+ key: string;
20
+ }>;
21
+ logout: () => Promise<void>;
22
+ recovery: (body: Record<string, any>) => Promise<{
23
+ key: string;
24
+ }>;
25
+ confirmRecovery: (body: {
26
+ key: string;
27
+ code: string;
28
+ }) => Promise<{
29
+ key: string;
30
+ }>;
31
+ resetPassword: (body: {
32
+ key: string;
33
+ password: string;
34
+ }) => Promise<{}>;
35
+ changeName: (body: {
36
+ firstName: string;
37
+ lastName: string;
38
+ middleName: string;
39
+ }) => Promise<void>;
40
+ changeBirthday: (body: {
41
+ day?: number;
42
+ month?: number;
43
+ year?: number;
44
+ }) => Promise<void>;
45
+ changeGender: (body: {
46
+ gender: "" | "male" | "female";
47
+ }) => Promise<void>;
48
+ changePassword: (body: {
49
+ password: string;
50
+ newPassword: string;
51
+ }) => Promise<{
52
+ key: string;
53
+ }>;
54
+ confirmPasswordChange: (body: {
55
+ key: string;
56
+ code: string;
57
+ newPassword?: string;
58
+ }) => Promise<void>;
59
+ changeEmail: (body: {
60
+ email: string;
61
+ password: string;
62
+ }) => Promise<{
63
+ key: string;
64
+ }>;
65
+ confirmEmailChange: (body: {
66
+ key: string;
67
+ code: string;
68
+ email?: string;
69
+ }) => Promise<void>;
70
+ changePhone: (body: {
71
+ phone: string;
72
+ password: string;
73
+ }) => Promise<void>;
74
+ changeTheme: (body: {
75
+ theme: "light" | "dark";
76
+ }) => Promise<void>;
77
+ changeLocale: (body: {
78
+ locale: string;
79
+ }) => Promise<void>;
80
+ changeAvatar: (body: FormData) => Promise<void>;
81
+ deleteAvatar: () => Promise<void>;
82
+ fetchActiveSessions: () => Promise<{
83
+ sessions: import("src/runtime/packages/core").ActiveSession[];
84
+ }>;
85
+ logoutActiveSession: (body: {
86
+ sessionId: string;
87
+ visitorId: string;
88
+ }) => Promise<any>;
89
+ logoutFromAllActiveSessions: () => Promise<any>;
90
+ deleteAccount: () => Promise<{
91
+ key: string;
92
+ }>;
93
+ confirmDeleteAccount: (body: {
94
+ key: string;
95
+ code: string;
96
+ }) => Promise<void>;
97
+ };
@@ -1,4 +1,4 @@
1
- import * as userActions from "../api/user-actions.mjs";
1
+ import userActions from "../api/user-actions.mjs";
2
2
  export const useUserActions = () => {
3
3
  return userActions;
4
4
  };
@@ -5,7 +5,7 @@ import VantConfigProvider from "./vant"
5
5
  import { useThemeMode, useUser } from "./index"
6
6
  import type { ConfigProviderTheme } from "vant"
7
7
 
8
- const props = defineProps({ vantEnabled: { type: Boolean, default: true } })
8
+ defineProps({ vantEnabled: { type: Boolean, default: true } })
9
9
 
10
10
  const theme = useThemeMode()
11
11
  const user = useUser()
@@ -17,8 +17,6 @@ onBeforeMount(() => {
17
17
 
18
18
  onMounted(() => {
19
19
  appLoading.value = false
20
- // eslint-disable-next-line no-console
21
- console.log("vant enabled", props.vantEnabled)
22
20
  })
23
21
  </script>
24
22
 
@@ -12,6 +12,9 @@ export declare function initApiFetch($fetch: Fetch, config: FetchConfig): {
12
12
  signIn: (body: Record<string, any>) => Promise<import("./types").GetUserResponse | {
13
13
  key: string;
14
14
  }>;
15
+ signInByCodeSendCode: (body: Record<string, any>) => Promise<{
16
+ key: string;
17
+ }>;
15
18
  signInByCodeVerifyCode: (body: Record<string, any>) => Promise<import("./types").GetUserResponse>;
16
19
  signUp: (body: Record<string, any>) => Promise<{
17
20
  key: string;
@@ -26,9 +29,19 @@ export declare function initApiFetch($fetch: Fetch, config: FetchConfig): {
26
29
  key: string;
27
30
  }>;
28
31
  logout: () => Promise<void>;
29
- fetchActiveSessions: () => Promise<{
30
- sessions: import("./types").ActiveSession[];
32
+ recovery: (body: Record<string, any>) => Promise<{
33
+ key: string;
34
+ }>;
35
+ confirmRecovery: (body: {
36
+ key: string;
37
+ code: string;
38
+ }) => Promise<{
39
+ key: string;
31
40
  }>;
41
+ resetPassword: (body: {
42
+ key: string;
43
+ password: string;
44
+ }) => Promise<{}>;
32
45
  changeName: (body: {
33
46
  firstName: string;
34
47
  lastName: string;
@@ -76,17 +89,30 @@ export declare function initApiFetch($fetch: Fetch, config: FetchConfig): {
76
89
  }) => Promise<void>;
77
90
  changeAvatar: (body: FormData) => Promise<void>;
78
91
  deleteAvatar: () => Promise<void>;
92
+ fetchActiveSessions: () => Promise<{
93
+ sessions: import("./types").ActiveSession[];
94
+ }>;
79
95
  logoutActiveSession: (body: {
80
96
  sessionId: string;
81
97
  visitorId: string;
82
98
  }) => Promise<any>;
83
99
  logoutFromAllActiveSessions: () => Promise<any>;
100
+ deleteAccount: () => Promise<{
101
+ key: string;
102
+ }>;
103
+ confirmDeleteAccount: (body: {
104
+ key: string;
105
+ code: string;
106
+ }) => Promise<void>;
84
107
  };
85
108
  };
86
109
  export declare const useUserActions: () => Ref<{
87
110
  signIn: (body: Record<string, any>) => Promise<import("./types").GetUserResponse | {
88
111
  key: string;
89
112
  }>;
113
+ signInByCodeSendCode: (body: Record<string, any>) => Promise<{
114
+ key: string;
115
+ }>;
90
116
  signInByCodeVerifyCode: (body: Record<string, any>) => Promise<import("./types").GetUserResponse>;
91
117
  signUp: (body: Record<string, any>) => Promise<{
92
118
  key: string;
@@ -101,9 +127,19 @@ export declare const useUserActions: () => Ref<{
101
127
  key: string;
102
128
  }>;
103
129
  logout: () => Promise<void>;
104
- fetchActiveSessions: () => Promise<{
105
- sessions: import("./types").ActiveSession[];
130
+ recovery: (body: Record<string, any>) => Promise<{
131
+ key: string;
132
+ }>;
133
+ confirmRecovery: (body: {
134
+ key: string;
135
+ code: string;
136
+ }) => Promise<{
137
+ key: string;
106
138
  }>;
139
+ resetPassword: (body: {
140
+ key: string;
141
+ password: string;
142
+ }) => Promise<{}>;
107
143
  changeName: (body: {
108
144
  firstName: string;
109
145
  lastName: string;
@@ -151,15 +187,28 @@ export declare const useUserActions: () => Ref<{
151
187
  }) => Promise<void>;
152
188
  changeAvatar: (body: FormData) => Promise<void>;
153
189
  deleteAvatar: () => Promise<void>;
190
+ fetchActiveSessions: () => Promise<{
191
+ sessions: import("./types").ActiveSession[];
192
+ }>;
154
193
  logoutActiveSession: (body: {
155
194
  sessionId: string;
156
195
  visitorId: string;
157
196
  }) => Promise<any>;
158
197
  logoutFromAllActiveSessions: () => Promise<any>;
198
+ deleteAccount: () => Promise<{
199
+ key: string;
200
+ }>;
201
+ confirmDeleteAccount: (body: {
202
+ key: string;
203
+ code: string;
204
+ }) => Promise<void>;
159
205
  }, {
160
206
  signIn: (body: Record<string, any>) => Promise<import("./types").GetUserResponse | {
161
207
  key: string;
162
208
  }>;
209
+ signInByCodeSendCode: (body: Record<string, any>) => Promise<{
210
+ key: string;
211
+ }>;
163
212
  signInByCodeVerifyCode: (body: Record<string, any>) => Promise<import("./types").GetUserResponse>;
164
213
  signUp: (body: Record<string, any>) => Promise<{
165
214
  key: string;
@@ -174,9 +223,19 @@ export declare const useUserActions: () => Ref<{
174
223
  key: string;
175
224
  }>;
176
225
  logout: () => Promise<void>;
177
- fetchActiveSessions: () => Promise<{
178
- sessions: import("./types").ActiveSession[];
226
+ recovery: (body: Record<string, any>) => Promise<{
227
+ key: string;
179
228
  }>;
229
+ confirmRecovery: (body: {
230
+ key: string;
231
+ code: string;
232
+ }) => Promise<{
233
+ key: string;
234
+ }>;
235
+ resetPassword: (body: {
236
+ key: string;
237
+ password: string;
238
+ }) => Promise<{}>;
180
239
  changeName: (body: {
181
240
  firstName: string;
182
241
  lastName: string;
@@ -224,9 +283,19 @@ export declare const useUserActions: () => Ref<{
224
283
  }) => Promise<void>;
225
284
  changeAvatar: (body: FormData) => Promise<void>;
226
285
  deleteAvatar: () => Promise<void>;
286
+ fetchActiveSessions: () => Promise<{
287
+ sessions: import("./types").ActiveSession[];
288
+ }>;
227
289
  logoutActiveSession: (body: {
228
290
  sessionId: string;
229
291
  visitorId: string;
230
292
  }) => Promise<any>;
231
293
  logoutFromAllActiveSessions: () => Promise<any>;
294
+ deleteAccount: () => Promise<{
295
+ key: string;
296
+ }>;
297
+ confirmDeleteAccount: (body: {
298
+ key: string;
299
+ code: string;
300
+ }) => Promise<void>;
232
301
  }> | undefined;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inzombieland/core",
3
- "version": "1.18.44",
3
+ "version": "1.18.45",
4
4
  "type": "module",
5
5
  "license": "ISC",
6
6
  "main": "./index.mjs",
@@ -4,6 +4,9 @@ export declare const createApiUserActions: (fetch: Fetch, config: FetchConfig, g
4
4
  signIn: (body: Record<string, any>) => Promise<GetUserResponse | {
5
5
  key: string;
6
6
  }>;
7
+ signInByCodeSendCode: (body: Record<string, any>) => Promise<{
8
+ key: string;
9
+ }>;
7
10
  signInByCodeVerifyCode: (body: Record<string, any>) => Promise<GetUserResponse>;
8
11
  signUp: (body: Record<string, any>) => Promise<{
9
12
  key: string;
@@ -18,9 +21,19 @@ export declare const createApiUserActions: (fetch: Fetch, config: FetchConfig, g
18
21
  key: string;
19
22
  }>;
20
23
  logout: () => Promise<void>;
21
- fetchActiveSessions: () => Promise<{
22
- sessions: ActiveSession[];
24
+ recovery: (body: Record<string, any>) => Promise<{
25
+ key: string;
23
26
  }>;
27
+ confirmRecovery: (body: {
28
+ key: string;
29
+ code: string;
30
+ }) => Promise<{
31
+ key: string;
32
+ }>;
33
+ resetPassword: (body: {
34
+ key: string;
35
+ password: string;
36
+ }) => Promise<{}>;
24
37
  changeName: (body: {
25
38
  firstName: string;
26
39
  lastName: string;
@@ -68,9 +81,19 @@ export declare const createApiUserActions: (fetch: Fetch, config: FetchConfig, g
68
81
  }) => Promise<void>;
69
82
  changeAvatar: (body: FormData) => Promise<void>;
70
83
  deleteAvatar: () => Promise<void>;
84
+ fetchActiveSessions: () => Promise<{
85
+ sessions: ActiveSession[];
86
+ }>;
71
87
  logoutActiveSession: (body: {
72
88
  sessionId: string;
73
89
  visitorId: string;
74
90
  }) => Promise<any>;
75
91
  logoutFromAllActiveSessions: () => Promise<any>;
92
+ deleteAccount: () => Promise<{
93
+ key: string;
94
+ }>;
95
+ confirmDeleteAccount: (body: {
96
+ key: string;
97
+ code: string;
98
+ }) => Promise<void>;
76
99
  };
@@ -20,6 +20,13 @@ export const createApiUserActions = once(
20
20
  setToken(accessToken);
21
21
  return await getUser();
22
22
  },
23
+ signInByCodeSendCode: async (body) => {
24
+ return await fetch("/account/0/signinbycode/sendcode", {
25
+ body,
26
+ method: "POST",
27
+ ...config.useRequestHeaders?.(["cookie"]) ?? {}
28
+ });
29
+ },
23
30
  signInByCodeVerifyCode: async (body) => {
24
31
  const response = await fetch("/account/0/signinbycode/verifycode", {
25
32
  body,
@@ -64,8 +71,26 @@ export const createApiUserActions = once(
64
71
  flush();
65
72
  }
66
73
  },
67
- fetchActiveSessions: async () => {
68
- return await fetch("/account/1/sessions");
74
+ recovery: async (body) => {
75
+ return await fetch("/account/0/recovery", {
76
+ body,
77
+ method: "POST",
78
+ ...config.useRequestHeaders?.(["cookie"]) ?? {}
79
+ });
80
+ },
81
+ confirmRecovery: async (body) => {
82
+ return await fetch("/account/0/recovery", {
83
+ body,
84
+ method: "PATCH",
85
+ ...config.useRequestHeaders?.(["cookie"]) ?? {}
86
+ });
87
+ },
88
+ resetPassword: async (body) => {
89
+ return await fetch("/account/0/recovery", {
90
+ body,
91
+ method: "PUT",
92
+ ...config.useRequestHeaders?.(["cookie"]) ?? {}
93
+ });
69
94
  },
70
95
  changeName: async (body) => {
71
96
  await fetch("/account/1/change/name", {
@@ -130,11 +155,21 @@ export const createApiUserActions = once(
130
155
  await fetch("/account/1/delete/avatar", { body: { avatar: user.value?.avatar }, method: "DELETE" });
131
156
  updateUser({ avatar: "" });
132
157
  },
158
+ fetchActiveSessions: async () => {
159
+ return await fetch("/account/1/sessions");
160
+ },
133
161
  logoutActiveSession: async (body) => {
134
162
  return await fetch("/account/1/logout/session", { body, method: "POST" });
135
163
  },
136
164
  logoutFromAllActiveSessions: async () => {
137
165
  return await fetch("/account/1/logout/sessions", { method: "POST" });
166
+ },
167
+ deleteAccount: async () => {
168
+ return await fetch("/account/1/delete", { method: "POST" });
169
+ },
170
+ confirmDeleteAccount: async (body) => {
171
+ await fetch("/account/1/delete", { body, method: "PUT" });
172
+ flush();
138
173
  }
139
174
  };
140
175
  }
@@ -0,0 +1,335 @@
1
+ @charset "utf-8";
2
+
3
+ @font-face {
4
+ font-family: icon-font-layer-close;
5
+ src: url("data:application/font-woff;base64,d09GRk9UVE8AADq4AAsAAAAASeQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABCAAANdQAAEKSCubhuUZGVE0AADbcAAAAGgAAABx8PADWR0RFRgAANvgAAAAdAAAAIAC6AARPUy8yAAA3GAAAAEsAAABgUeBOkWNtYXAAADdkAAABbQAAAmbXtpHKaGVhZAAAONQAAAArAAAANhEdnwFoaGVhAAA5AAAAABwAAAAkBDACAWhtdHgAADkcAAAAnwAAAR4JlAYUbWF4cAAAObwAAAAGAAAABgCNUABuYW1lAAA5xAAAAOIAAAHpMJf/QXBvc3QAADqoAAAAEAAAACAAAwABeJyNewl8VEW2dzrpe7sMGB3h8vQNdoMCAhIBQUZRQR10xCCCArKTTncn6SzdnXRn6X1fq/e909n3hUBIIGFfVHDBZXQUF9TnOjOOjm/U0ervq7yZr24HHJ333m++rtxb26ntVNU5/1O3wsnhcnM4HM511SWFUpFcVlgql6kKV+RwcnM4OQ9menIzvXmZG7ne6Rw4PQ9O5/Lzc2566oa/Q/hjYDrP487EMlFqNnXxutk5OdfPpj/7xeyc2bMfdNyQ42Wr4eVMy7kuZ1bO7Jx5OYtyCnNW5tyd80DOIzmP52zL2Z0jyqnMUeWoc/Q5jpxYTktOZ05vzlDOoZwTOedzXsx5NefdnE9zvsj5Puf/cLicazkzObM5t3CWclZy7uU8wHmU8zjnaU4xR8xRcFQcI8fJgRwfJ8AJcZo4rZxezhDnIGeMc4xzlvMi53XOZc4fOH/mIM5/5fJyp+X+Mve23Ntzl+auyP1V7r25a3LX5z6Vuz23JLcyV5lryDXnOnJDuS25XbkHco/mnsh9MfeN3I9zv8n9Pi8vb1re9Xn/lsfPuyVvad6KvHvzHsr7Td4TeU/lbc8T5knz6vJMec48f144rzdvMG8k73jec3mv532S9x2X5s7gzuHO5y7iruA+yH2iVlIlF4pLJFVVYqFKoqiVl0qrJEqJsFZUrpSoVFJZmVImV0mUVdJKibKupFoiq6uW15L8WnlDYZ2CUKsktSp5oahcqFLVCpXlhSVSmUIiE0mrFEI1IVfVKSW1hUKxuFoorSpUkgRFrVSmUgrrJaXCenmtlFT+Y6BQKa+SikvrqqqUUo1EWS6slSilZTJRlVxUWSUvk9epxPIGWaGyWkgoSHdJsxJRpVRWKleUy2WSWnmdTFxYLZXVKaeCiqo6JemZrEzCdrxQVCUl7StlkgalqryuukRZyFZ3JVinaBDWysiAs02USMvIgISicrGkSqKSFIqktaIqiVChIC+ZuFYuFZdVyQnbJKUqllYlrZbUKlVyRWGVtKxcRQpJ6yW1EjHLzamuCEUqqVxWLqlSTMWzPVcIlcoGea2Y5VFpiaqhvrKWLc7WWC6vJlMjErKlFEJCoKgi/CQ8rBbWVpK25LUq0uWsx3a4VkLGWVsmmRptoaiulvwVkhmRKUsltXUKtkqRUCaSVBFyUZ2CnXW2c4UqYUmVpFpeL/mRDYUkvUoiJlwqrKmTKNkOlJYUyqVlhXJ5ZaFc1VAoryd+pURNJqhSUphlfbWwTCoqbCC8yS4gMiYy62wjhIuE56QOwg0p6aWqloxEXVhSJRRVkp5IGkmXrkwWO0pllVxVWE34LpVJJIXseNnZvdIllgVTDFbIlVcmplqiVArLJFmqEtLBqZWZnZcquaxsKjrFVTbOLsAr81yoLJdKyLIXi9nqJdkJyU5q4Z21klKy8spFwlqxiF3TZI2TVSWsUqplIpa+SkrmOjvE5XUyMrYrXL9TJFeos+nZyrJUCkmtkNAq2CmTsQytk9RLlVLC9EJ5aemVYHbohXeWCGWV5aSrhWSLsBtCfWXcbPqVBfjj6NgNObVdflYi23DhFEOzuaJauVL504Sro/9J0s9quJrPtsbuPCW7plTsM0X8cxn9TxI7J4eIPxfHzfEQIeglYtBPBGGQiMIwJ8KJcmKcOCfBSXJSRDSmOc2cFiIg2zjtnA5OJ6eL083pIeKyj9PPGeAMErG5nzPMOUCE5wjnEGeUiNDDnCOccc4E52jOdCJOj3NOcE5yTnFOc84Q0XqO80xOL+dZznOc85wLnOc5LxBh+xLnIudlziucVzmvcX5LRO8bnN9x3uS8xbnEeZvzDuddzntEGL/P+YDzIec/OB9xPuZ8wvmU8xnnc87viYj+I+cLzp84X3K+IsL6a85/cv7C+YbzLec7zl8533N+IOI7w/k/nP/LwZxJzn9x/sb5e25OLic3Nzcvl5tL5dJEtIPca3LziYCfnnttbkHudbnX5/hYLZSbsyHnA842zmTuQ3kw71XuGu4ObgU3wH2Fup5yUn+jy+i/8B7l7Qc3ACVIXLPtGlu+LN+efzH/62m502ZP50y/cfqK6RPX8q/tLVhYcPC6O6/beN3vrvu/1x++4fEZ2hnxmZyZa2funOmY2TbzRYZhDMw3s5bMsv4bfeOMG5fd2Hij5caxG5+/8YObrrnJddPQTa/+cnx29c2qm0P86/hr+b2CHMGjgpOCP8ypm1s89/e3vHBr0a0vzXPO+9v8c/O/XbB4weML4rctv6104fSFnQvfWfjDoj8sXrz4xcWfLf777StuP7Nk0ZKHllws5BfG7ph/h3/pvKWhpXjZY8vgsm+Wz73z8RW/WHnzyrdXfnXX2ruEd52/6/W7vl11x6rHVklX+Vb1rnpm1fe/euruJ++xFaAoF81FPOLm8t+Db5QdfxK8OYqX4+Wj3/LEzz86uhYCPH3xYjwdT/9qMZqOpn/1FZouGKXxXMwjbi7rZwuTmjJRpqNFXS9w8N5Qn14PHwT4AZ4pYknw28R4Pu2z+2zQBirliooKee8QH4Z9YV8I4PmjbXQiEo0L0MM8+OaZF19vAUFee0tLB99yH7PBuXM73AAwybK5bW47QH7aHXKHYRigB3jw5e3PrvcBJ41/4JosFpMpaonHo9F43BI1CQq+Jf2ZqEOyjom6TyYNk6qM4RO6eC+zLzN7orhuXweWkRev+E4GX8zMRhd5OLWPGd9bTH9y9Ko3sXcfjZv2Zf1Pj/5/Z05xIuhBxqK0A05uxEYIPxJCuIoNZDamg8h4kQoWM1i6GU7moUUkF80k2Wwok0fhvymYI0Ih/dERZlxYfNX7+Eg2EUeL/0VmMckcZ8aLi696H49nE3FUmPVRdCpegF4hvUS5n92Jc3HuneQt2AWLm8v7AL4Tr5D1oxXoTkp+QDMOTwBC9RnK5Yu4K9atW7HijXWffvrGG59+uu6NFYICtCdbC/RrE5upVmuzuckAnmtLByP60d9E9CbzXjHlM/vM0ARNbrPbDI6K42arXvwbq14bfLKN0hk05kYrMG52aXEudKWN56nGiCamS4InG7QOa0r8mjUVjx0dpdwxdwzGYdwX88XA3lFTLJIafS2SSjuea6Caks2x1ghInKcOqBjzdpfR5KTqbA1GjQ5YrCb/jhaVaLQ8anUZKbfJbYJGaPSZfCbgN1qs4vJO0amWuD9qpZp1bcYOG4g7/cbY9mMwdtqfiAeojnBborkJRCNx1yl155j4gCXiT1C+uC8OEzDhjrvjwJWIRkYPqMZ2qE0uS4TSNDUk6sLAFHAlzKcpFZ7GnJvYt3XrPvaZOHduYuKcQMytqKmpqOip2b+/p2f//pqeCkHBIcLHzNrJ6ORaejwjZSbXoC8ya3j49CoGRYtxlF7FRYuK8SIabRlnLhYX0XiLkPl5SgFaklnHPAMPVKT0qdSB/c9A8Mq5rev3iMuhAD+IHzQaTQn8IHqQgtAcM6eIa4Od8JVz516BoJK7UyzaJYDGsC5iDBsjNggBWoVXIeIoOLC/+4R4bOeufbuhwGgwJim47/gufsHFzDwmM7NyciZ9O/fnfsGX6DAzJx+tnHXlxe6JJ5mECc3Gs1UqTCQ5xG9VQojewjmYo+pEs9FsqiDN8kC1g3bY8RosgrjQaltRJK2FyIfXIJEjRJ0KM2g53vIKRMvRFgqXYwMD8eKJIYjyqYKMnpuJ4r/jI/QdaysV8NtFkBpFlxh84OvNvFfOhQIoTdo7QOH7dzKX1qR0ev3a+2T9ExP4UQjH0KNQOE4VoErSgw9oss6cEWvEGjBCE6hH1xc34C945TKZlI+9tFTWf0CAvmgYR9e382A8kIiQXzwQh6CYW/9BOw9vLGIIuTFKBB/y0oloNEHIedhXxBzBBiH9ITL8U6Agcz8rOmGHpVlzQAq3lksBfh+/73DYPRioqmzhwU4EvKFgEL2P3qeamzuiHRCIuGRTOcxmoNO9tKGpiWprgx0N7aaYOWiCYO0TDA7jCNVr6KhLKgCKoDCFv8L1jP6R36Yoc3dDW20MFGRWcTM1dGtarxbgJE+j1TXyJ6d3Z6bToXAgKPCgeyZFEL6cEUM4QLmD9qADgska+h1cxtQibjcPz36dqUGcHh7asJUZ4MUikRj/WToasZoF1Tyz1WrhP0WbrZEYERJFZHyvn9/8sADuU4mlqqgz6ow4upoH4kMQXH5l/ep716+/d/X6Vy4L4IHkUFt3fVwVroVg9WOPrRaU0vDSsZdf7pN21o3CCfD6c+ff4Jdyt5eItm8/LDp9emzs9GnR2HYBKsJyZuPOnRs3ntz1wgsnTrzwwq6TGwWNpczI1mdKt2wpfWbryLmsZLYzMTtS4gURO1mBk/XsEoyEkBItoGISBj+Jf4HW4hkQMcKSmp633kwmk4a3HqqpER6GmEFr0Qxqkl/OYEtmCbLw8FZ8q8lqilAFP7BC8DReNE4f6JeVC3DFnFX49EdzUAXvQH//Af44feR7Zi6q+J6Hz+BFjNFiMQrw2osfodOrLqK1vIQlauTjv9cziZjZaDKzTyyeiMXigot4JoNnogo0k1eADKw+wyr61OnBypV3arXa9MrPBodObafwQvRL5ru96+hteHfmergN7V4H4dHvYFDzMnZ73RCvyI5zhdf3MnJTdbibuTPD/4y3XsUko2aj0WI2GC2xRCIaSwhYDtUyTRVn8DVohuGgU6Fcclcv/kW4vKoF513EuUWV6siBHvSLwo8pRdfBAJqRPIOuoVJ7mJKlTovFc5v50m/CdrelfuEnpyLBiOPTHfVfu6PhEHXptQUxi9cZJbtUjS4y+FrMGcYr8S3v41tWD6OV+FrEQauaX0WLX8WLyTY8gqYx0Ofxu70AcxGFuIhL+XxeH/STVJ/bB/Qpyu1ze13QDV0ejxvgf8c3UR63x80meMmgAWJTvG6/J1vI6/OBVOpKHUSfzbpaO4VY90+161KUx0eqgaR+j5vUfhOpy/1j7T5SO5tCSD2kCPR7vT7Q9GPtBchIZuoI/p5max6sxovxYp1el8KL0eLBAURhLoXXYkBEZzErKtFLhDoN0/akAaT0VCKeCjbBJhKPG0F3LdWlgmKlCkAP/gP+o82+GtY3yPrb2uH7oTB6Am30eCmzyWDTQSBXdfb1dXb1CZpgyhY1BaOBaCAW6Yh1d/cAyIsn06EmCLwljAM63C4X8Hh4DQ0OjUVlqTPK5TKAbkC/IFx1BBw+ss+/1mbpnE7gdmm1Z55ubaGiURizREFtd5bGCcHjWxm8FC89uw0tRUsp3NDO2J0OO8kMhQLBYMgZtAvMuJCZNx9uOwu/+ZaawkVz84u5t+TXEzCCF/8gJOqrYIDdPD9gmq6r1zRCxMP9EE4+gsgb0V6YVnfUQ0wQHqTQf6FvmPfuS+oN+vvuk/UdPYptrOi2wb1HqYJEZiaT0cEKKd6BdxCKJN6BdlAvOoiSxIsQcaT9p84w6C301rLfYw3W3Pafy5b92Ccx99b8hoXMmFhEi7hjeLmIzEtBBjJkzM6IHXg99JsP+NzQQ6V1sFarBWVlVNCQruiXDcoHNUk7GBmhmpp6YZMOeN1vPUg16WCNTgee3OyBlEandBA84KGLm1ceWvPu/e+IP9ZOAC/P2h7qamkGHvjcBa/XC6lIiMwXBKVc0gz0eMBTT5I3pOx2t8lnS4kO3fO7X//u1++XHdbGXVFvJAyefZby+6HH5QcPXKJcfi8kk7plqylI1PuO9uJR4AxQ+47UP0sUuTMejRw9RvnJevVC4PY9dIlye0kbEPx0+Dgf72CQSYRN9D9zZdGfRYsWif68aOzPV7KKeTh/yRKcL4BPdG0bE4NXj+CZeOaRCZ7oWO0F+Ar40aQ44WBS7qQz5QDGEsoQ1Af0PvCGn0EzhXvpw3u6N8H14KolwR/nofw//QmRSp9XnhWNgkeFPLwBjzBJR8qZcrMV6H2GgD54pdefv/nQcgF8SrajWPZh2YV74O1gNw1fLb+wdb9OLFHsg/ugpFc3urWifBN8lM368sIHHx4s7pedgs+Cz99883P+bu68fDzEbYRql9oRrWvXdsNu2J6OdqiDan8jYU6mmpvhYz7Kx9V0cXnZPj7+gd5XfnBcMIpeY/BrPFVa28VHY7Qt7kjBFECv8XCfmLBwIWHh6AWmEd3ZSoa0iSHWCyHt7EqnO/nEyJnkNzKEoTTij2V9/C/iBegGFhdNw5n5NL4dL7bZLZAqk/UOCeBArCOeCkX9vqAfBJrxTEgJYeVo9Ag4gWqp0GBfxyAEe7kmaLER6L0LKymXPmYgYgBthDaFfrvbYnWS5eJ0260Om80AG6At4Ix5ALoFzYFoP3V0Fm6bQG1E93SRHkTpg/2KSgGsNteZ9HaLy+1wAaeGmC7UETgktghJA7WUvUpeV0VwwjSU+YZGt6PFVGcJg2/BcyDej+yQisNomCD4E0hJ+VPmJJFbeCMM96ZO+6KRAOlLwBeKBMPhJGyDYWfATCS0lsiQK93IOL5nuoQN0l2kgTn0Ltgw3HUEoJ3oS6rryBjsEoJ1ixibzclaG+b0r4PbwAE6eLbpd5BYDs6YLWyLWALEDoEWp80KzmE/E44EIsSoiDmjtrCVZJqhmWRaraQOCwmaAtawFURsUWeMVBENkE1XcDhzI4MqcSUirrcGq7HaYDQksBqpiSz5O+FSPxwwdtYd3Qsf2rsX4N14N6VQFENFr6IHTvT2AFSENgxU4yK8gTKboTZmjpnSMB4HaDfaTfX1wWPyfln/HiiTTZXdvRuuPb77+O634fHjRKWhm0hZVrFt2DAPFr204SX43UsvTZXt7OhPDPx8Rz+IaeatB9661C974MFLD8pk5PWArP8SSSJqeAe6h9EEdQlDq6HV1g67YHuoLdkSisYTTQlz0hw1hzWJ+nAdBHqodTbYG20GlwXaocHfEGoIavx6WAnlhnp5vdxUDvcBuCe1q29n345+ZT9hVcJPlE045Y/DJEy50vYWW9IVhaAbdrV2j6S74l2RLoBz0KcM0bh+MunQ6/EBP09qVer1Dfp6m9IjS3pjPrJQArFQPJ5IRJKhVCjlS8IEGeD2TD7jmtLDrP4lzuv3kR/xshrcP4UMXIBAA5fbTf48LrLkp88i2tzr+lkh8pct5GfV/k8LkWJsIazbxlihzW23O+wuG7QCfB0PWv22oCNkD7siMALD/lAoFPSFYQQgkhdxh+0he8jms5IWn3UwuAk/SUOL3xayhewRUgK0Q+9j1H+vIxj0s3W8PPbY/9jAVGY7LzoVD5N4FKxHF5i2EYqMgO27180CoXoJpY40BhrIXm50qq2g/hCBMiSXYCN29KCtlGowafTGRmOjvQGqAGqmYae9zdhqbNWkGsg6nI3nMDDiCjuuDGNq+EQL/Th8ny30P3X96srDSgIwfbJwTaIWvE7bu5w9ngGAVqB5zBu06mxFny4BPsS/YO6+90+0Z8DZa+sEuIDAPbPVYDCozQaz1toI3vgjnZ0DNwgT+/ke2qZyKDzV4E80njHLOxDoCXWBh2ljrU3hlgPErWS81QFFWAU+vExjLncd3bltv7zJCEZDTCxCEHxzLBVLR1rBujvo7DrxARtp8AM63Bns9Q6AJTSaMctT7ayxK0mHE93hHl8/uHeIuUy7+2y9xm7SVEgZqPFWg8OIy8hHxQN7mloaWuSpMoC3/gezVyeulovBS3TqYEtfcxsBrPiPTJ94tPqoTtOm7tMfBGjrr5ijTaMDfaNgA60vU8s1DYAVFn5msArLsRyRp6oKG5BR10QsuSn82E6zSvTqEdtPj9oE8IPRN58/DnoqqB3iyo3wEYDz/7QE5U9pTz5Eeb/6BOfEwRNC3lI7UbV4JhVwElBnh6zhQTyC3gKAmBUzfwJ/noa71KVVAD2DX6CGRtpOwnMQTV/8FZ5ONsE9a5jK0oadcCucOgSEZ+CJlpFBoiDrMk8wPTX4A/yhwahP4AXotp6eLPAuuMCCumYYshPtmR+yw8kbJvnEHs9UMwTa/Ra9hqehabwxGbPjFI8dr5TAwS1oixBvwVuEiLyOoC0/gyGpZQziYm5Kr9cTBnPlfe+9i/ex6G8fvO/dn0HLVdzjhyS7BbC8rqrCBCwuqBBC2EvB1kS6OQSifqopGE/BZtDZ2KpUNjaq+EL6+KFDx/n1WHrlYIyt67fwJcXRPUChoCQj27o2/Y+noLDF1eRMg6EhKlYTUEA5IHqOJu4W1kc00aK3oKzPR7W/Yvpk2IRNLDJd+HV/33/86kqn337x8bWCTRfwa5N89NqFC7y3X3zxbb6Yu6V43xbBJrT9Au+Z4oktfHwnAWfYTDhn5mHzQiYetZizJ57WaDzGHp6+N+vHJAtJik4lRUiS9SdJ/zty+vbuD+fNu/vuefz/DSkVPJuxMZl5dHdbg1IwOZ+nbGio5U/Oo2sb2roEmfm8rra2bv4+7uR8ohkXb371/Cne+QODZ/hdsMMd8oAnynhyh6FBUPwKz/roZgiJLcSDMDOfKKJoZimjr1c3NuiAnocFc/EqvJW/CT7Vsmcg4ol6IvAkPNZ8sH+PVzygPxL2hDxhVhn7oj6wK1Y2Dk8TKJ2yph3NUN7aOARHYGuoNdp0uuhd4SdOd5gUj8Lzx0+ch2AQ9hpa67uCndG2hLVWU19vaPe3hVqJ4PqGjAy9QJ86XLJDgJ/n7Sgp2cHHL9A7Sg6fEqDneacOHz5FRlbTUF/DZte01ffwCXlPW3sPm93T0F7DJ7YsYBKeAAy6m1wOPZRCk1sXcfjdEV/7cLQ53EqUHGTVDfB7AyQIjtEQJn1+u89u1TbWVpc4Az3KrrqgyeuOaevdhKCEEFjdxogupuszOU1OqGSr8Dpc5OfwEAI1IShxlx8UH5ZeZrPcQSLa/CG28gkvi6SI3Ceq0MXmhdQxbUtVxBoKRIPuUTYFNjlCwBW0kXwXDBANFgmkvM0sflhE5BIyYGOTTqfDxK8aRFkJheTZFdvAJA3Igs01CmUXxOX4bmKmFT1IZrQoGyxXKmt6kQWZqaSYwffgeyAu+wNLghawNGywjNQzxM1E90xG6YKMNWNl1HvxyslfavY1jD+CCnHhb4vbJpozv0QrKdlTDH4GX4fAtrDLbzuLAUUmK8qcmYw+TWeXcjZUcD4TZA6q0HtYMtBQ3YCJX6YiK+th9jzwB9LKRwSvo7VkT65FNDV5o4bBicwjKMHDJZhvsptCV7biF++sKRTAGlOVrkIvbSxvqJCsFz9F2Kmr03UQhoqflbzSsL/xgH5Yt980CHvAF++88wVfwn1w06YHBVAXkaWqUlWt5a2VA0+3KOLaeLqld+BM61DrgdRgajDSD5vAW5suPMhfwm1vJqtPwz7N7e3Nze3ZbZnPno6uxCt7FZNzYW8vWkmGH5eyJyXXIgekCs6jN5nMXKiQk6W20mgyxTFLccrJIJaCODKIo5kw01JJWexGp9autbOojTi73m5z2dxOFgcRFAAgz+Nx2G0Wu8VmIs5oMznMTgvR717gIZvS4+UTcOXyOvzWgDFoCOrC2rDOy56g+AgwD4ZDZPF5CVdcfrffE3B12iMQuoKekI+4YCDkbQu2DkHoDwYDQS8IeUPugDPoSLmaYMqb8EMY8UVcAWvA5rYQTOHWaUw6YNKZ9WT9ulwEdEGotNTrSL+spHsWl9Vr9ZpTJmIXxyFBgESRJ5KxCPDSqXg60BJpjbbGW1ubWuKD8aH4/vhwXytoq6b0ZmONudJUZS5TKshoVbW1hgZi6bBMaK6P1UAFeGzb1qIN2869zIc9kc5kq6HD1GfpciSdCVfUEyTOT5wXhmAyGAnGQSgRJi5CXDgWjgVCYQJ5At6gL+QP+SL+phCRImHQGm4Np0PpYDLs84JCvIGxmcymBrPf7nX5zYSpxKWjTRG/1+cPR+MpYvETqx9YvGafJQCewUsYq81iNVs1xkaTEqqhJmJMkUkh5grYe7B0YmJk5CgftltbDU1XgNYBOGztN4JiniwtjZQTzQwXL2bfe5qE3WXg6Cgx5/NHz/EqJuqfgRfgVU1EUCl/E4PyxVvp/fvat8BN8KrOguVQGpElwDivXztsPUC0P/zqK/Z9THek9iDYK+bhO99jxkSj4kdojdGg0SSMzYI2+tBglYTo2hpZhQOIRGPi0d/ymhPJ5mZjQiNooCVVg4cE8EBP/35itWdWsvvxTbIfR9AIg72Zx5CXN7mgnEFFZbiIRscOMgcb6XZXWgPrgak0zgu4/E5+He10uZyCszVUwh4xQj2s12rqXaCxrJVX79c2w3YQHzHxnH5XgN9BB/z+gGBbD2UMWRMwRYz55nY/wMekBAWV4Zn0MTUThxE7AdcOv93vZA90vG7WDPAT0ewPxGETASxRJ4g6465OCMp4CqgOGkLmgJvMFguv3VmDwuVmu2Ty6qEzQpCUK0hcgGwGYsUQmE3InBYXwVmglIapQCqU9IeJgCVrJhKKTxlov2SSRkRMR0UNa0hi4hQ9KGtC9rCwyQxDju/nBh0Q51PPa49tgevh/UUb7of7oKi9ZghgMX0wcx8zeRNawrM1O5thK3j3pZfe5X8293vewRpm71FeN17BbN61e5MAqiL1CQ1AC9FtlDpZH1ZB8PFeBt+Gb6Oaje3WTrIyjp+A52Gnrd3QnO2ai2nSo1vxPJkMc1AOxH8QEYn9B8zBObJ+dCuaR+H7JzczGW7JJJcu+ITtbd0/QB7+kqpXq+v4+DW6Xt3SLsg8wn7IbSdwhoC+19DJRbw6DUn+mjdqYZZ/zsP71zMohWtxih5DjzHb3zjNG5vFvvFjy34SuwJalisU+ybgHAmEP+zbp+il1q5lehX79qEbIJTgG+DEPoVi+edUZvXnhHT5ckXvxARJhYdI/r4JiuCn6cwhfAM9MdGrINmf9/ZO7CMSczCjZML0QJdSTgS/pdFqtFvdHqcLuHRoMaSGYa/UVgZEeBvlqFE11BAUeBC9lKLR9WgWhbvZw/mXP0Mv8woyWzKRqTNcY1ctFClrAS7DZewHnAd0VfbQYNOl7OebMqL7kgkiJYh65zqgw+VwAqKDRNbSkQgSoRIqGoMxS8wRcPjZby1bihk0DIXFeDtRnV+gL8hMbB8/AvHw5FqiEFCYcGV+/ks4zYTO7IZwkIpH/EH+/lN76e2mUqVAKnu6Hy98AS0kDAwjEcOeDwtgnFjUkWiyKdoMm2GTJWoIWQNmImTkKpWcj/IQxew8OU6HaJyHbiW1o/m4jrnAG6ztruLjh+mq2toqAX6YV9VdO8hHD9OD3d2DgvWfMTDmjjmjYALn0zqDQceSao3JJgHKH+cRKWaGZrDvYPn4xIEDE+xFAXSWYWFjd1trV3drY62ykUBKDyKCgLV46J9ZPDRr8RDHSq+5Au/9zA4oEnl2wh1jolMecPLw2MnTorGdgv/ElUyEYD171BG1+M1E2TnIJhUrtnjFvW4vQUFeU9DssluA1ew1EwoXe0jQru229bmAw0E1sL96h9PlhDZoCVqiZGNHveFIuilN/gIBnzfoAE3atK5JF3AE3UEPQaDBQDQQdUds4Yb2hrb6dnb3u3ygyZf2p4Jk00ficXB1jhCNtzPxSCwWSbBQzughiiQRSJrsBofBZUrowhpYCWsUsBJAJ3R4nTt9xV2yA44s42B9TJ02m6GFqGNWP8vblL0Oh4c4Quskmjqs6tB0exp0tWYFdLClIejRDpj3Q7J9L3wG3/nRMEez8AhjintC0UQsGUtGk9FENBlM+WOugMUHHHAzpGyQoEu7y+K0Oq2WRrNGr3M5nU6Hz+5zx2EAvMxzx9ws8SbaCgmzCBj1sMxwh+xes1/r0Xm0kHSMcN7m9NgDwE5UvzOkbzO1WzpdYUfABsF22gxdjoC5paS9pLcs1ZjWtBs7Dd3OXm/CG/B7EzDqjQQiIBAmqpXAZzJRrrCVOFvUErcnveAsHfEGY46YM+QMOUKmpDFuZPn8KRnhV5fvXbzo3vsWC2RQEVYlwCb2h/loAS8UQkvRHQSdQ8oTYU0C8NV7l/9MxNLax4nxBc0+s88IvCabHS/Dy+HyCxBeeB7C51n/GAy6qBZzt60LAtY0e/vxF9cKFnLrmjUdHS3NHR3qlro6DRF5BWhrZgejhXqTSweewCcplyahaXYB9ISUanE2JwLN4Hl0kvI3G5s1RCU9MUyxX+bcEHgrGLRB+gQ+jjcMUzoEmTL8cHXoIHqYWlfBqO8csLd8RmWWVv8j+eyWq8nYuZSxVzyeCA2xZhR6mVHVBsqrm6p1/gN13UOh5sF0FXXLS0z4ePXweLT9cHvJhKVaGtwtaqOwI8kEDqi694fTA+nq/bapghRadgfT2thIjJXWRljVqAY4hENUY2MVbGwFqk6K5Ay2tgAiTkJUa+sAoQKPcEMhu51YGCEYt4dYInvIBO128JtHKJJuCtlBh4oK22OEAqAbtjLtDp3GV9cQI9CoU9fcEYi3EVEmZxXJDhhwfnpHgKi9s7gIwoOsxYAsyyD8PZ4J4bLSEQoJDzGiQ7zJEg2D9sBPFgeztMcgNZLJZfAHxE4xL/sDb0zDiEZ4n7QxKLcM59KlXJRbSnwcnYUWlOEFbELWL3ibbfUL/KQELcEtuEFCv41uZw5JiH+IQZQEU/RaydV4n0ROP9vKoEZJI1HrVTq5StOpaZLBaiBpleDGQ62HeHAg3d/RXNes7YODYKSR99ysUl5Ft3JoqLtrP3+EN7mrlEF9NDT4DAEjwM5Gur5Z085HUprAdYPbAPAeWigdPiJAk88xbxPjTiKRwEOQf2gJU1lbWymQtPJYY4E1Hvith+ih2u5K/tWtLeLi6bffzh5PfHk7ezzx5Zfs+/Yv8XRB4yJmDC/LftYSsV+1PswQ5t2H701p9TpM/OoB9G/oRjwCqc27d2/edHzPeYGQt3r9K++//8rL7wvQCMQkm0zRRfR7Bm9R3INvluObf/vll+PoZmJKYC7awh7XoC1UwTMZEzNpyizI3MCzh/B0lE/enZBCdmIITiNWymv4EgEEyC5jdpzhYT3OZ9DeUbyXvo+L9oqv+GPEL0AhMqhjRUg6ORNXFO2msfGcNgAzt6T9yHh26ubUbog/QtLd1Dj6G1M/Xlz8k4dXXEzsvDP0nHrmo+JVNL6tg9k659zc7WHZi5TbB9nzA6fL7rYD9dN7guMflX7k8x4NJndSXofP5rX7WFgfAb3nKfR0abaCeu4/3v84Z5r6/oXzv1yCrkHXEH6T95Ivcb5g1VxmHEuLaTQTSadCBWg3KXQJnqrrrumpCcmJ7TR5B/575g5ibIUHurt6uk50XWJvjzwKpY0atVrrMhAS/F9oAE3yCO5MqtOaFmnrowS7D8xqbtJpiLFpNRkcoBhz4ep2CIvIbkGF3sBRBCgijoMwCJpTTS38Sf4qBhnxWmykj6CZzKr2j3jjs/7xxovwFobAnPYivIXFE8mMkUHXe/46z4+vB1beY9u2PcavhXUJfaumUWVUQLBTPHZScIF3YnTsJL8FNttTFtA0hpfz6prVHVnVHuK5vlv58a1efK3v9jlt+IbU3b999EPTeevZ5rEh0F1N7RRvaHgkuiB193vav9SiRYRns9B8F9Dj5Yyirk4h2MSTd9T19rV39PEv8HrrO+TZBU7W6wzvd7dCPAPgGfNuxTPwzHnfohl8D5r5HfEhUOPrmYPlZTR+mOs5iG4p4xVcJgwfUaJJrMPkKVVSxzJrGIj/iJrRGqrgNPs57Y4i+sSjfie0UzKVUs7H6nlohRSvwASI8+Sqrn4BDPkDJ16lhvsZNfpTCw9/u40peZLy2YK2CASxcCQmGKbNEWs0e++FBMPWWPRKkKT+JMjSTgV/JCC0/AgMhn1hUPIchb9dymAxEqIV3+IVw0jMs1iMDgMxdYwEiUyFDf8tDP45Q381Y3gng27G1+Gb6QOfMtteO0vgqZi1vBA+TN/xQGUN/MtCSI2h1xnc/+cnea+eDQZQM1lA/RQ+sJe5WHTxYr+sqOhikUxGXkWy/oskiayOlZl1zDF4RBtxRfxH0scgOHuyHgpiRAK/h9dDymE22dlva6aQIwbwevQeHQtS8HT7aX4ltxxWsssVx3mt4d7IMByGfdYWG0BxnjYkjVWTdb1lVjWUmrV2lqYl3Jel6bW2ZmkMwcp4OQS7uLGQ3Wy2s08oFguFYoLKXcwJzK28rCVbbH7mVmagetnSzAMQCicfgL9fWl2Nb0W3Es2YR7Kqq3+/dJLNIvnLlg5Uo2xWa2Yvc0CXWYHvH1cLGydX4jUVhsjBEbRajFZTRxVML5FirZDCrRJGQYLH0fQrJ0XH4ZBmgLhuw0kIOuppiO/ZivOeLNpc9KSK7F2L2+KjINzU+dSrW1556nuI7gHtHbyTsLepj7jh1uPsbpfAOmOtukYvNRQ7gviWY0tPPXVk+0FN3BkNHGoeP3ny2eO/D6D5oDgobapNVLfUJSQQ1LN3yLYIaSE3e1L9ZUbMoEoYdHx5O1Gbc6hn9Id3EJN+3ZNProMiWNaq6gd4Mz2UIXbKXxGfZ2typWEzeP38+df5l2//kjekYkoO8zrxPGZbcfG2bePFZ8+Oj589Wzy+TaCtZIZ2najctavyxK6hE3RB5rHMb5gDUjyBx9RaTRpfi6YPD383/ycH73ZoJ5AUHHfFdxQZNV2l1uRTq0o2720Xvgc/fqxuVWcJFfaEYBjuh4PhviQY/oGC2lG3u9gK+SXD7RcP9h0KDtc39TzZukfnnGhNd5qd480+qqJdnBBCoPQwGrfGqXOAtIvCSwnYD6+88NDlGrDxLSUUTcAJsqlRlBmm4TtnXrvUdqnt3YrRR8EGKasFpZvpHZfuGF5Zc1fNE/fC5QAJ8VpmI3xqf9VZ8NIwqzOHz9OnHvij9JOej3uevww/B1K6cM2aQn7BhYyQycwlRk5NtcCFe6mqmtpq/uRcYgURq8ePeqmBnp4BvoRrtlrNWQIT2eJ8UoKIhHiWIGaNmPmT04uY9zeuplHRCwxaJcJEJxXNZ14o2Ui/f/in3gdTXsEo0aPsRZT3RhnUj3fgfprYzjuySbhvFs5H21E+D78mZliFnuGPZf1J/j/HNzGZR8T34YdxP3r4PhpNmzWfx94xCmkIDKNDzclkOgS+KeOZVCqtHMqhKm3qBC/ex6RTFpNZb9Fq9dFYPBVNCwpQkEzxO2uSBoN+zZqanqPHzJBavX79agHU+LUBHZArKFOHoxv2wb98+OFf2JO6PccotBcvZeJ1oVpS9YK7714AgQke21NTc/87xmQi9e47PTV798Qg9f4rr7wvgM3utKMJEAzLzRThGnqipn833AZJG/fCjXDbobpzAGvokQyHxXgbeJ5QdiG1BlrCzeBXI9/TiaZUoplInUUHkUJNJ2DSHSfA+34e/uAhZqSslH7zIIMUZVhBP1SajaNjjexVwSc2ntz5wgsnTr7wPHtVEB9TMyOlJLO3lRnZ8tM7g4fJ8PsgYjDRIKvFY/ArnE/E5TS8I3tN6VPY2go3T/IhzEQp9Bp+lbn/0Lt0At3JbD9Nk9mbxYhR/igP5c+6X/wujfNFjBhn4/czIpw/xkP9o4z4PtF7Yt6FC2Q77chUs/eFt2TvC++dOPfM0YlzArxjks+M0p+88fonV20Q1nLhw91dwpHaddU7H4arATGr+Qyqpttb1HUCzOfVq9X1fFxNZ49cyO7vaG7pIIsVz0UyNJfoBH3m3xh8A76hpvfyZVwH4Qiqg/de7umlEGeSy5RKRnils0pLR3iSWaW4jnf53hoF/gVi3Q09invvpZ5DKYbNniIqeI/F0tHtOIo/3o4+pvs6O/v438xnkJbuZQ9X8PM8uVKl4GMtrVB29rHfTfq6unr5T3Px80hLYgV/ZJXyryZ/RW8XCrfz8XvEP3Ja8Hrmmod5Ne313T3t7T38zDX4Mt6/h/dH9ARzbPce+ovjDBLsxgK6cA9zbA+JHyPxPSSODfgaRskW7OEjD21tcqRgC+jiFSCQcTEL8tGcbgY9sxs/Q69ckY36/udoATKx46LgH1fGcC7w0uxNkrAtYvOboBks5EGzy2S1sZ9knB5rWZWCiGgPXb7zyerH4DK49mLdfyiSDV1wCLZG0okkGOChaV/9GU0jhued8IHfGFfGwvFA3Ncb7Hf3e/tgT6A51hyLp+EoGCUmRlgbNkfMMWfClXQlPSlnAPo9Abf2g1+/eBcE5/G/MzazxWaxyzUVrmpPFZR51U6Lh1jk2RsP0AKgTuekTC69BmphQ8LQYgdxl89EpR9+acsleBiONPV2gyW01pBMs7JAkIRxK7FL0HQ6DRORUAJI0VKaPep3Q6tP69UE1YHGiK7Fk71fAZBgA7Ow7WseHm1gbstH/Fm35RegXMKr/b2KigqFnDx9+/f39u4XoNSsZ4/ufWrLXvY5+syzR48+I8ApEcN+qjRGrfF4NJLI/r8GIaxQKKQVvYr9w6TgsKJXKmhoYA5X0q0NcnlNtz1EAIqCGDPr2Y9b2iSxr1t0wxC8L1pN74aVXZoudZe9i2hfEVpPoelRZgjfSvkNcXMSghfo/bBfGaoE0J3E14qcRqLJXUljTA/BRroSyjttg6CKRQQH2OkuwDOo7lhveMAX8gZhaMp50K3mT/EMUn/YZDORLgg3PlQCEIUB2RidaAh6iWjw1vRAL74J3UwhSFagAzo8dqhxae0GMxglGtAf8UXgAOyqhVXQ6ra6bGBUSCVbwx2wC76469QTBPavbmB6FJRUVasw6lKagcrxGmOHtQf2wrZAW7gF9FVTbouHvZ20+cjuc/aAJwADMAqj3qgfeN1eOFhJ6V16t85Dpo48QEcTxQztXjwnthJd6wwBWzwcp3y+/iNnRgA6omWSdZEaIqPlthpD3Ym+3uFY0hqvHtnVnz02mkn20w9E3AliZjM75sVz8Syz3WNjq4Q2ttpZscXfE56Y47EYBX9A+UhAAF8pAXPVBgB5Zo29EdbDzUd3X7CBJExAyuv1QP6F8NHj8Dxst7eZ0rKkNFbK/gNCX0ddjaKuXi6va+/t6ejoE+AFOqayoa7eao1Z+uVHlLpOwoc+GPfG/XGAjs7ym7ws4pRba3SqI139fbGoNVLXXtlGes4jYPUN/Nd1NCpDf50KscPZyoRdaN29USfcvAtCvG4Iwso0eSZnQjhEAkNDxFxdt+s8LxZA6y5ToUoGr/w1tKM3ISSLr1vCLMwfmvWP54pxosFXHNJQyHM7M1RZybvIHUIzK6/YixEXMs5JOuAaYqdhwxEIS9pYkBqE8AgJHJ4gjRqK3uElgsjwAxUh5m3Z7dCaWQ1hhMKTOxhSBBmIzXbV92YD9BGScJgk/PSWRAHSE/BAbGst0mP96dN4AVqQIdrqd5P5EC1gFzi6OSNnXoRjpWltOj028iIEb7/w+INP7xVBAXtx1mAwTF2chdAUN6VNaWMn7IFvvfDi2xAUxAjEWpSPdmIPszhfczszjGdL6d9wh4elPxrGQfw1g+5Gd1f14YV44cpPquTfzEsbf4SJKAd/zKx55513qgbXrFnzTlXVO8QbrCIJa36k6Zm8gznz9NO8M98ySPg0FvL+VbtyJq1A8snr04pJD0z3Innmeiq9h8FP4HfJ2CksRHuYg5hTRjdyD5aV0QU9ZNJSqU7YpAdoPTFViKPYeErfpIcqnY6YL2wqkTPZuF6vU0F9E5hKI6m6bFyfgp2pFEDrp+qg9E3ZeAGaeYxxBF3EugOHHuERkyxkipljjiRMAjTEg4lgMhaLx4kHQeYOmuwJR5z9pw1CCDDJNzgMZqvJzJp2AO+G9zxKORwOtxU6IHl8Dr8t6AqC+zKzGZcLsseH5MEDFPuZn+8nKT4IPqeDMOgOkj74yQ4FsOStC1TQH/QFiZ1Vyl6Qg+yFN9beI4Ic8l3+bD2Ty2ifG0IBmonnMi3aJrVap1Orm3QtLemmFv7bZYxG20TC6eaWtFat1urUArToINOia8pG1GlC2EQICzLCTCMThBFXEIbdIVeQ9Dlo9Tt85IG2H0doJiO0XxnhenaELvaamZWMj1AGXSF3mJSP/EsGfo6VTAxG/OFwJOiPwBgMucJuwiBrKNugz8YyzuVwANIAy0SWhTa/nfDGEXSzXQSIOysOw8FIJBL0kZpgNtkdtAYdfrY3REK7HS47W4HDwUpsdgZ8dr8jwn4FcIVJBdQs0nAw+K8rcLODJMMk/SI9mKogwt4yjs6EDERc9NyXND8/x3XPor9Pv6Ztev7snNkzcqZxODPuekKqbRk+c+HNT1pSerVazz6plpZUqkUw7X+7I3b1ArZg2tWDqn/cEEP5S/6E80nOf7vRNHXjSzDtse3bHys6/fTLL58+c/Hl7acfI+3MQexX4jnE/egjmqTOyX6ZmSOYNlzx8MMarTa9+/j+/QPV1LTmpEGjNbDPFYAxjchbtI43DXmwB3mm3tQ0vJN1KOuoaf8PiKHMdXicY2BgYGQAgjO2i86D6Ov/9ZlhNABLgwaMAAB4nGNgZGBg4ANiCQYQYGJgBMIeIGYB8xgACk4AvwAAAHicY2BmYmCcwMDKwMHow5jGwMDgDqW/MkgytDAwMDGwcjLAAKMAAwIEpLmmMDgwKD7QZnzw/wGDHhNIMVANSI4JxFQAQkYA33IKCQB4nLWQ5VbCYQzGf3/FAAsVsVBBxBYLA4tGBQG7u8Xu7o6L8lK8E30FP+snt7Nnz862swAiCZsGSSDStIikUCyTnMLHCo34znDxUfb5GWK6D34Yodpo3gV2kUYWpajxoWRJdGlI55VueuhlmDnyWUWHlnoUFGGij34GGMRPAYckYcOKg0zsuCmmhBoaKKSVdjrEnBY6xW4xyPHgJYALJwc8M4SKDJ6oJZFcjMSTQB0V6GkUu5uR0UQzKaSSwxpRGIjjhTYsJFNNJVUEyRY3lFHOCGPMk8coU4wzwSTTzHDJLAussMgy62ywyRbb7LDHLvscccwJp5xxzhW3XHPDPQ888ibeEx1+0a/SlZZVqvYplyI06a/dPb3Dc/mrOm29osjU1z8w6C84TLJZHZl2d3FJTUNha3uH1NIZGSP3eAMu58HzkCrjrjYx1xifUFehb4w1y5qaU1Jz1qIMcS9tluTqyqrgX9P/Xb4AfVBBsAAAAHicY2BkYGAA4rCg1Svj+W2+MnAzMYDA9f/6zAj6/z8mBrA4B4QCACD7CcYAeJxjYGRgYGL4/49Bj4kBBIAkIwMqYAIAQHgCNnicdZCxCsJAEEQfkSAaiUqQkFOCNlrYRASFpLG0CdjYW9nZKNj4885tDjt32J3hdm6PvQiIlByYeKLPmiUn4WEnO7oYW86Fj3o+SkbG0+DIlYnQI2UlfRTgab2Yhm3wNXIm5n3r3E+9U4uvqjWVeVIc56D/x8BegEwouJiubJ2MGTfNgL1yQxuUYxHullZf2sV1H6AY/ji2ffkC8DALrQAAAFAAAI0AAHiclY8/bsIwGEefQ0CqqBgZKlR56lI5spOlYm7Zu+QAoIAyEEuBs/QOPVBP0gv0Z+qFoZWwZH3P9vv+GLjnA0NahgWPmQvmvGWe8Mxn5lLOd+Ypc/OQecbCvMo05Z1uVpesxAVLXOYJLe+ZSzlfmacsTZF5xso8cWSrrJ4dkUG0v8SzqIHj1vW7OLh9HM5O5z+0K2eTX1IcOdBhqanwimvt/xr+Gg1Bp6AMp0wvelFZld/E8dDZuvJ2ba9H00UTXPCu9kHyTZ9qNeLISXqSrNqlYWm78dTHwYbK31bwB4aSStIAAHicY2BmQAaMDGgAAACOAAU=");
6
+ font-weight: 400;
7
+ font-style: normal;
8
+ }
9
+
10
+ .layer-header {
11
+ background: var(--color-surface-container-low);
12
+ height: 50px;
13
+ padding: 0 24px 0 52px;
14
+ box-sizing: border-box;
15
+ align-items: center;
16
+ display: flex;
17
+ justify-content: flex-start;
18
+ position: relative;
19
+ z-index: 100;
20
+ }
21
+
22
+ /* light */
23
+ .layer-header {
24
+ color: #243036;
25
+ box-shadow: inset 0 -1px 0 rgba(218, 220, 224, 0.6);
26
+ }
27
+
28
+ .dark .layer-header {
29
+ color: rgba(255, 255, 255, 0.87);
30
+ box-shadow: inset 0 -1px 0 rgba(64, 64, 64, 0.9) !important;
31
+ }
32
+
33
+ .layer-header > h1 {
34
+ display: inline-block;
35
+ flex: 1 1 0;
36
+ font-size: 20px;
37
+ font-weight: 400;
38
+ line-height: 1;
39
+ text-align: left;
40
+ margin: 0;
41
+ padding-right: 28px;
42
+ -webkit-font-smoothing: antialiased;
43
+ -moz-osx-font-smoothing: grayscale;
44
+ }
45
+
46
+ /* light */
47
+ .layer-header > h1 {
48
+ color: #243036;
49
+ }
50
+
51
+ .dark .layer-header > h1 {
52
+ color: rgba(255, 255, 255, 0.87);
53
+ }
54
+
55
+ .layer-footer {
56
+ background: var(--color-surface-container-low);
57
+ box-sizing: border-box;
58
+ transition: box-shadow 0.5s;
59
+ padding: 0 32px 0 52px;
60
+ align-items: center;
61
+ display: flex;
62
+ justify-content: flex-start;
63
+ position: absolute;
64
+ left: 0;
65
+ bottom: 0;
66
+ width: 100%;
67
+ height: 40px;
68
+ z-index: 1;
69
+ }
70
+
71
+ /* light */
72
+ .layer-footer {
73
+ color: #243036;
74
+ box-shadow: 0 -6px 5px -7px rgba(45, 70, 104, 0.3);
75
+ }
76
+
77
+ .dark .layer-footer {
78
+ color: rgba(255, 255, 255, 0.87);
79
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
80
+ }
81
+
82
+ .layer-main {
83
+ background: var(--color-surface-layer-high);
84
+ position: absolute;
85
+ top: 50px;
86
+ left: 0;
87
+ bottom: 0;
88
+ overflow-y: auto;
89
+ margin: 0;
90
+ padding: 3rem 0;
91
+ width: 100%;
92
+ -webkit-overflow-scrolling: auto;
93
+ }
94
+
95
+ /* light */
96
+ .layer-main {
97
+ color: #243036;
98
+ }
99
+
100
+ .dark .layer-main {
101
+ color: rgba(255, 255, 255, 0.87);
102
+ }
103
+
104
+ .layer-main.layer-main__with__footer {
105
+ bottom: 40px;
106
+ }
107
+
108
+ .layer-content {
109
+ width: 80%;
110
+ max-width: 512px;
111
+ min-width: 320px;
112
+ margin: 0 auto;
113
+ }
114
+
115
+ .layer {
116
+ background: var(--color-surface-layer-high);
117
+ position: fixed;
118
+ top: 0;
119
+ right: 0;
120
+ bottom: 0;
121
+ left: auto;
122
+ box-sizing: border-box;
123
+ width: 50%;
124
+ max-width: 1000px;
125
+ opacity: 0;
126
+ transform: translateX(150px) translateZ(0);
127
+ transition:
128
+ width 0.4s ease,
129
+ max-width 0.4s ease,
130
+ opacity 0.1s cubic-bezier(0.33, 0.13, 0.32, 1),
131
+ transform 0.3s cubic-bezier(0.33, 0.13, 0.32, 1);
132
+ z-index: 1010;
133
+ }
134
+
135
+ .layer.default {
136
+ width: 66.6667%;
137
+ }
138
+
139
+ .layer.large {
140
+ width: 66.6667%;
141
+ }
142
+
143
+ .layer.medium {
144
+ width: 50%;
145
+ }
146
+
147
+ .layer.small {
148
+ width: 33.3333%;
149
+ }
150
+
151
+ /* light */
152
+ .layer {
153
+ box-shadow: -4px 10px 30px rgba(45, 70, 104, 0.25);
154
+ }
155
+
156
+ .dark .layer {
157
+ box-shadow: -1px 0 0 0 rgba(64, 64, 64, 0.9);
158
+ }
159
+
160
+ .layout {
161
+ position: absolute;
162
+ top: 0;
163
+ right: 0;
164
+ bottom: 0;
165
+ left: 0;
166
+ width: 100%;
167
+ height: 100%;
168
+ transform: none;
169
+ transition:
170
+ width 0.4s ease,
171
+ max-width 0.4s ease,
172
+ opacity 0.1s cubic-bezier(0.33, 0.13, 0.32, 1),
173
+ transform 0.3s cubic-bezier(0.33, 0.13, 0.32, 1);
174
+ box-shadow: -4px 10px 30px rgba(45, 70, 104, 0.25);
175
+ }
176
+
177
+ @media (max-width: 767px) {
178
+ .layer {
179
+ width: 100%;
180
+ min-width: 320px;
181
+ }
182
+
183
+ .layer.default,
184
+ .layer.large,
185
+ .layer.medium,
186
+ .layer.small {
187
+ width: 100%;
188
+ }
189
+
190
+ .layout.layer-open {
191
+ transform: translateX(-20%) translateZ(0);
192
+ }
193
+
194
+ .layout.layer-hide {
195
+ transform: none;
196
+ transition:
197
+ width 0.4s ease,
198
+ max-width 0.4s ease,
199
+ opacity 0.3s cubic-bezier(0.69, 0.08, 0.72, 0.59),
200
+ transform 0.3s cubic-bezier(0.69, 0.08, 0.72, 0.59) !important;
201
+ }
202
+
203
+ .layer-header {
204
+ justify-content: center;
205
+ }
206
+
207
+ .layer-header > h1 {
208
+ font-size: 15px;
209
+ font-weight: 600;
210
+ text-align: center;
211
+ }
212
+
213
+ .layer-main {
214
+ padding: 2rem 1rem;
215
+ }
216
+
217
+ .layer-content {
218
+ width: 100%;
219
+ max-width: 512px;
220
+ min-width: 280px;
221
+ }
222
+
223
+ .layer-close {
224
+ top: 16px !important;
225
+ }
226
+
227
+ .layer-close:before {
228
+ font-size: 20px !important;
229
+ content: "\64" !important;
230
+ }
231
+ }
232
+
233
+ .layer.open {
234
+ opacity: 1 !important;
235
+ transform: translateX(0) translateZ(0);
236
+ }
237
+
238
+ .layer.open:nth-last-of-type(n + 2) {
239
+ transform: translateX(-12px);
240
+ }
241
+
242
+ .layer.open:nth-last-of-type(n + 3) {
243
+ transform: translateX(-24px);
244
+ }
245
+
246
+ .layer.open:nth-last-of-type(n + 4) {
247
+ transform: translateX(-36px);
248
+ }
249
+
250
+ .layer.open:nth-last-of-type(n + 5) {
251
+ transform: translateX(-48px);
252
+ }
253
+
254
+ .layer.hide {
255
+ opacity: 0 !important;
256
+ transform: translateX(150px) translateZ(0);
257
+ transition:
258
+ width 0.4s ease,
259
+ max-width 0.4s ease,
260
+ opacity 0.3s cubic-bezier(0.69, 0.08, 0.72, 0.59),
261
+ transform 0.3s cubic-bezier(0.69, 0.08, 0.72, 0.59) !important;
262
+ pointer-events: none;
263
+ }
264
+
265
+ .layer-close {
266
+ position: absolute;
267
+ top: 15px;
268
+ left: 16px;
269
+ width: 20px;
270
+ height: 20px;
271
+ display: flex;
272
+ justify-content: center;
273
+ align-items: center;
274
+ font-size: 15px;
275
+ line-height: 0;
276
+ text-decoration: none;
277
+ transition: color 0.2s;
278
+ z-index: 110;
279
+ }
280
+
281
+ /* light */
282
+ .layer-close {
283
+ color: #243036;
284
+ }
285
+
286
+ .dark .layer-close {
287
+ color: rgba(255, 255, 255, 0.87);
288
+ }
289
+
290
+ /* light */
291
+ .layer-close:hover {
292
+ color: rgba(36, 48, 54, 0.7);
293
+ }
294
+
295
+ .dark .layer-close:hover {
296
+ color: rgba(255, 255, 255, 0.67);
297
+ }
298
+
299
+ .layer-close:before {
300
+ font-family: icon-font-layer-close !important;
301
+ font-style: normal !important;
302
+ font-weight: 400 !important;
303
+ font-variant: normal !important;
304
+ text-transform: none !important;
305
+ speak: none;
306
+ line-height: 1;
307
+ -webkit-font-smoothing: antialiased;
308
+ -moz-osx-font-smoothing: grayscale;
309
+ content: "\77";
310
+ }
311
+
312
+ .layer,
313
+ .layout {
314
+ top: env(safe-area-inset-top);
315
+ bottom: env(safe-area-inset-bottom);
316
+ height: calc(100% - (env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
317
+ }
318
+
319
+ .layer::before,
320
+ .layout::before {
321
+ background: var(--color-surface-container-low);
322
+ display: block;
323
+ position: absolute;
324
+ top: calc(env(safe-area-inset-top) * -1);
325
+ right: 0;
326
+ bottom: 0;
327
+ left: calc(env(safe-area-inset-top) * -1);
328
+ height: env(safe-area-inset-top);
329
+ content: "";
330
+ z-index: 9999;
331
+ }
332
+
333
+ .layout.base-main::before {
334
+ background: var(--color-surface-container-low);
335
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inzombieland/layer-manager",
3
- "version": "1.17.5",
3
+ "version": "1.17.6",
4
4
  "type": "module",
5
5
  "license": "ISC",
6
6
  "main": "./index.mjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inzombieland/nuxt-common",
3
- "version": "1.18.44",
3
+ "version": "1.18.46",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "exports": {