@vc-shell/create-vc-app 1.0.113 → 1.0.115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +307 -5
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +100 -90
  5. package/dist/index.js.map +1 -0
  6. package/dist/templates/base/.env +4 -0
  7. package/dist/{template → templates}/base/.eslintrc.js +1 -2
  8. package/dist/templates/base/.yarn/plugins/@yarnpkg/plugin-version.cjs +550 -0
  9. package/dist/templates/base/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +28 -0
  10. package/dist/templates/base/.yarn/releases/yarn-3.6.4.cjs +874 -0
  11. package/dist/{template/base/index.html.ejs → templates/base/index.html} +1 -1
  12. package/dist/{template/base/package.json.ejs → templates/base/package.json} +7 -7
  13. package/dist/templates/base/public/assets/1.jpeg +0 -0
  14. package/dist/templates/base/public/assets/2.jpg +0 -0
  15. package/dist/templates/base/public/assets/3.jpg +0 -0
  16. package/dist/{template/code/commonPages → templates/base}/src/composables/useLogin/index.ts +1 -0
  17. package/dist/{template/base/src/router/index.ts.ejs → templates/base/src/router/index.ts} +4 -18
  18. package/dist/{template → templates}/base/tsconfig.json +1 -1
  19. package/dist/{template/base/vite.config.ts.ejs → templates/base/vite.config.ts} +5 -2
  20. package/dist/templates/variants/both/src/main.ts +45 -0
  21. package/dist/templates/variants/both/src/modules/classic-module/composables/index.ts +2 -0
  22. package/dist/templates/variants/both/src/modules/classic-module/composables/useDetails/index.ts +52 -0
  23. package/dist/templates/variants/both/src/modules/classic-module/composables/useList/index.ts +51 -0
  24. package/dist/{template/code/blade/src/modules/default/locales/en.json.ejs → templates/variants/both/src/modules/classic-module/locales/en.json} +6 -3
  25. package/dist/templates/variants/both/src/modules/classic-module/pages/details.vue +83 -0
  26. package/dist/templates/variants/both/src/modules/classic-module/pages/index.ts +2 -0
  27. package/dist/{template/code/blade/src/modules/default/pages/default-list.vue.ejs → templates/variants/both/src/modules/classic-module/pages/list.vue} +93 -30
  28. package/dist/templates/variants/both/src/modules/dynamic-module/components/DynamicItemsMobileGridView.vue +39 -0
  29. package/dist/templates/variants/both/src/modules/dynamic-module/components/index.ts +3 -0
  30. package/dist/templates/variants/both/src/modules/dynamic-module/composables/index.ts +2 -0
  31. package/dist/templates/variants/both/src/modules/dynamic-module/composables/useDetails/index.ts +92 -0
  32. package/dist/templates/variants/both/src/modules/dynamic-module/composables/useList/index.ts +70 -0
  33. package/dist/templates/variants/both/src/modules/dynamic-module/index.ts +9 -0
  34. package/dist/templates/variants/both/src/modules/dynamic-module/locales/en.json +46 -0
  35. package/dist/templates/variants/both/src/modules/dynamic-module/locales/index.ts +2 -0
  36. package/dist/templates/variants/both/src/modules/dynamic-module/pages/details.ts +40 -0
  37. package/dist/templates/variants/both/src/modules/dynamic-module/pages/index.ts +4 -0
  38. package/dist/templates/variants/both/src/modules/dynamic-module/pages/list.ts +50 -0
  39. package/dist/{template/base/src/pages/App.vue.ejs → templates/variants/both/src/pages/App.vue} +24 -28
  40. package/dist/{template/base/src/main.ts.ejs → templates/variants/classic/src/main.ts} +6 -12
  41. package/dist/templates/variants/classic/src/modules/classic-module/components/index.ts +1 -0
  42. package/dist/templates/variants/classic/src/modules/classic-module/composables/index.ts +2 -0
  43. package/dist/templates/variants/classic/src/modules/classic-module/composables/useDetails/index.ts +52 -0
  44. package/dist/templates/variants/classic/src/modules/classic-module/composables/useList/index.ts +51 -0
  45. package/dist/templates/variants/classic/src/modules/classic-module/index.ts +9 -0
  46. package/dist/templates/variants/classic/src/modules/classic-module/locales/en.json +43 -0
  47. package/dist/templates/variants/classic/src/modules/classic-module/locales/index.ts +2 -0
  48. package/dist/templates/variants/classic/src/modules/classic-module/pages/details.vue +83 -0
  49. package/dist/templates/variants/classic/src/modules/classic-module/pages/index.ts +2 -0
  50. package/dist/templates/variants/classic/src/modules/classic-module/pages/list.vue +260 -0
  51. package/dist/templates/variants/classic/src/pages/App.vue +362 -0
  52. package/dist/templates/variants/dynamic/src/main.ts +42 -0
  53. package/dist/templates/variants/dynamic/src/modules/dynamic-module/components/DynamicItemsMobileGridView.vue +39 -0
  54. package/dist/templates/variants/dynamic/src/modules/dynamic-module/components/index.ts +3 -0
  55. package/dist/templates/variants/dynamic/src/modules/dynamic-module/composables/index.ts +2 -0
  56. package/dist/templates/variants/dynamic/src/modules/dynamic-module/composables/useDetails/index.ts +92 -0
  57. package/dist/templates/variants/dynamic/src/modules/dynamic-module/composables/useList/index.ts +70 -0
  58. package/dist/templates/variants/dynamic/src/modules/dynamic-module/index.ts +9 -0
  59. package/dist/templates/variants/dynamic/src/modules/dynamic-module/locales/en.json +46 -0
  60. package/dist/templates/variants/dynamic/src/modules/dynamic-module/locales/index.ts +2 -0
  61. package/dist/templates/variants/dynamic/src/modules/dynamic-module/pages/details.ts +40 -0
  62. package/dist/templates/variants/dynamic/src/modules/dynamic-module/pages/index.ts +4 -0
  63. package/dist/templates/variants/dynamic/src/modules/dynamic-module/pages/list.ts +50 -0
  64. package/dist/templates/variants/dynamic/src/pages/App.vue +362 -0
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +9 -8
  67. package/dist/template/base/.env.ejs +0 -6
  68. package/dist/template/code/blade/src/modules/default/composables/index.ts +0 -1
  69. package/dist/template/code/blade/src/modules/default/composables/useDefault/index.ts +0 -9
  70. package/dist/template/code/blade/src/modules/default/pages/index.ts +0 -1
  71. /package/dist/{template → templates}/base/.browserslistrc +0 -0
  72. /package/dist/{template → templates}/base/.commitlintrc.json +0 -0
  73. /package/dist/{template → templates}/base/.editorconfig +0 -0
  74. /package/dist/{template → templates}/base/.eslintignore +0 -0
  75. /package/dist/{template → templates}/base/.husky/commit-msg +0 -0
  76. /package/dist/{template → templates}/base/.husky/pre-commit +0 -0
  77. /package/dist/{template → templates}/base/.prettierignore +0 -0
  78. /package/dist/{template → templates}/base/.prettierrc +0 -0
  79. /package/dist/{template → templates}/base/.vscode/extensions.json +0 -0
  80. /package/dist/{template → templates}/base/.vscode/settings.json +0 -0
  81. /package/dist/{template → templates}/base/LICENSE +0 -0
  82. /package/dist/{template → templates}/base/README.md +0 -0
  83. /package/dist/{template → templates}/base/postcss.config.js +0 -0
  84. /package/dist/{template → templates}/base/public/assets/app-select.svg +0 -0
  85. /package/dist/{template → templates}/base/public/assets/avatar.jpg +0 -0
  86. /package/dist/{template → templates}/base/public/assets/background.jpg +0 -0
  87. /package/dist/{template → templates}/base/public/assets/empty.png +0 -0
  88. /package/dist/{template → templates}/base/public/assets/logo-white.svg +0 -0
  89. /package/dist/{template → templates}/base/public/assets/logo.svg +0 -0
  90. /package/dist/{template → templates}/base/public/img/icons/apple-touch-icon.png +0 -0
  91. /package/dist/{template → templates}/base/public/img/icons/favicon-16x16.png +0 -0
  92. /package/dist/{template → templates}/base/public/img/icons/favicon-32x32.png +0 -0
  93. /package/dist/{template → templates}/base/public/img/icons/favicon.ico +0 -0
  94. /package/dist/{template → templates}/base/public/img/icons/mstile-150x150.png +0 -0
  95. /package/dist/{template → templates}/base/public/img/icons/pwa-192x192.png +0 -0
  96. /package/dist/{template → templates}/base/public/img/icons/pwa-512x512.png +0 -0
  97. /package/dist/{template → templates}/base/public/img/icons/safari-pinned-tab.svg +0 -0
  98. /package/dist/{template → templates}/base/src/api_client/README.md +0 -0
  99. /package/dist/{template/code/commonPages → templates/base}/src/composables/index.ts +0 -0
  100. /package/dist/{template → templates}/base/src/env.d.ts +0 -0
  101. /package/dist/{template → templates}/base/src/locales/en.json +0 -0
  102. /package/dist/{template → templates}/base/src/locales/index.ts +0 -0
  103. /package/dist/{template/code/dashboard → templates/base}/src/pages/Dashboard.vue +0 -0
  104. /package/dist/{template → templates}/base/src/shims-vue.d.ts +0 -0
  105. /package/dist/{template → templates}/base/src/styles/index.scss +0 -0
  106. /package/dist/{template → templates}/base/src/types/index.ts +0 -0
  107. /package/dist/{template → templates}/base/tailwind.config.js +0 -0
  108. /package/dist/{template/code/blade/src/modules/default → templates/variants/both/src/modules/classic-module}/components/index.ts +0 -0
  109. /package/dist/{template/code/blade/src/modules/default → templates/variants/both/src/modules/classic-module}/index.ts +0 -0
  110. /package/dist/{template/code/blade/src/modules/default → templates/variants/both/src/modules/classic-module}/locales/index.ts +0 -0
@@ -0,0 +1,40 @@
1
+ import { DynamicDetailsSchema } from "@vc-shell/framework";
2
+
3
+ export const details: DynamicDetailsSchema = {
4
+ settings: {
5
+ url: "/dynamic-module-details",
6
+ id: "DynamicItem",
7
+ localizationPrefix: "DynamicModule",
8
+ titleTemplate: "Dynamic module details",
9
+ composable: "useDetails",
10
+ component: "DynamicBladeForm",
11
+ toolbar: [
12
+ {
13
+ id: "refresh",
14
+ icon: "fas fa-sync-alt",
15
+ title: "Refresh",
16
+ method: "refresh",
17
+ },
18
+ ],
19
+ },
20
+ content: [
21
+ {
22
+ id: "dynamicItemForm",
23
+ component: "vc-form",
24
+ children: [
25
+ {
26
+ id: "itemName",
27
+ component: "vc-input",
28
+ label: "Name",
29
+ property: "name",
30
+ },
31
+ {
32
+ id: "itemCreatedDate",
33
+ component: "vc-input",
34
+ label: "Created date",
35
+ property: "createdDate",
36
+ },
37
+ ],
38
+ },
39
+ ],
40
+ };
@@ -0,0 +1,4 @@
1
+ import { grid as itemsList } from "./list";
2
+ import { details as itemDetails } from "./details";
3
+
4
+ export { itemsList, itemDetails };
@@ -0,0 +1,50 @@
1
+ import { DynamicGridSchema } from "@vc-shell/framework";
2
+
3
+ export const grid: DynamicGridSchema = {
4
+ settings: {
5
+ url: "/dynamic-module-list",
6
+ id: "DynamicItems",
7
+ titleTemplate: "Dynamic module blade",
8
+ localizationPrefix: "DynamicModule",
9
+ isWorkspace: true,
10
+ composable: "useList",
11
+ component: "DynamicBladeList",
12
+ toolbar: [
13
+ {
14
+ id: "refresh",
15
+ icon: "fas fa-sync-alt",
16
+ title: "Refresh",
17
+ method: "refresh",
18
+ },
19
+ ],
20
+ },
21
+ content: [
22
+ {
23
+ id: "itemsGrid",
24
+ component: "vc-table",
25
+ mobileTemplate: {
26
+ component: "DynamicItemsMobileGridView",
27
+ },
28
+ multiselect: true,
29
+ columns: [
30
+ {
31
+ id: "imgSrc",
32
+ title: "Pic",
33
+ type: "image",
34
+ alwaysVisible: true,
35
+ },
36
+ {
37
+ id: "name",
38
+ title: "Name",
39
+ alwaysVisible: true,
40
+ },
41
+ {
42
+ id: "createdDate",
43
+ title: "Created date",
44
+ sortable: true,
45
+ type: "date-ago",
46
+ },
47
+ ],
48
+ },
49
+ ],
50
+ };
@@ -0,0 +1,362 @@
1
+ <template>
2
+ <VcLoading
3
+ v-if="!isReady"
4
+ active
5
+ class="app__loader"
6
+ />
7
+ <VcApp
8
+ v-else
9
+ :menu-items="menuItems"
10
+ :mobile-menu-items="mobileMenuItems"
11
+ :toolbar-items="toolbarItems"
12
+ :is-ready="isReady"
13
+ :is-authorized="isAuthorized"
14
+ :logo="uiSettings.logo"
15
+ :title="uiSettings.title"
16
+ :version="version"
17
+ :pages="pages"
18
+ :blades-refs="bladesRefs"
19
+ @backlink:click="closeBlade($event)"
20
+ @close="closeBlade($event)"
21
+ @logo:click="openDashboard"
22
+ >
23
+ <!-- App Switcher -->
24
+ <template
25
+ v-if="appsList && appsList.length"
26
+ #appSwitcher
27
+ >
28
+ <VcAppSwitcher
29
+ :apps-list="appsList"
30
+ @on-click="switchApp($event)"
31
+ />
32
+ </template>
33
+
34
+ <template
35
+ v-if="isAuthorized"
36
+ #bladeNavigation
37
+ >
38
+ <VcBladeNavigation
39
+ ref="bladeNavigationRefs"
40
+ :blades="blades"
41
+ :workspace-options="workspaceOptions"
42
+ :workspace-param="workspaceParam"
43
+ @on-close="closeBlade($event)"
44
+ @on-parent-call="(e) => onParentCall(e.id, e.args)"
45
+ @vue:mounted="resolveLastBlade(pages)"
46
+ ></VcBladeNavigation>
47
+ </template>
48
+
49
+ <template #modals>
50
+ <VcPopupContainer />
51
+ </template>
52
+ </VcApp>
53
+ </template>
54
+
55
+ <script lang="ts" setup>
56
+ import {
57
+ useAppSwitcher,
58
+ useNotifications,
59
+ useSettings,
60
+ useUser,
61
+ useBladeNavigation,
62
+ VcNotificationDropdown,
63
+ usePopup,
64
+ useMenuComposer,
65
+ ChangePassword,
66
+ LanguageSelector,
67
+ UserDropdownButton,
68
+ BladePageComponent,
69
+ } from "@vc-shell/framework";
70
+ import { computed, inject, onMounted, reactive, ref, Ref, markRaw, watch, defineComponent, provide } from "vue";
71
+ import { useRoute, useRouter } from "vue-router";
72
+ // eslint-disable-next-line import/no-unresolved
73
+ import avatarImage from "/assets/avatar.jpg";
74
+ // eslint-disable-next-line import/no-unresolved
75
+ import logoImage from "/assets/logo.svg";
76
+ import { useI18n } from "vue-i18n";
77
+
78
+ const { open } = usePopup({
79
+ component: ChangePassword,
80
+ });
81
+
82
+ const { t, locale: currentLocale, availableLocales, getLocaleMessage } = useI18n({ useScope: "global" });
83
+ const { user, signOut } = useUser();
84
+ const { getUiCustomizationSettings, uiSettings, applySettings } = useSettings();
85
+ const {
86
+ blades,
87
+ bladesRefs,
88
+ workspaceOptions,
89
+ workspaceParam,
90
+ closeBlade,
91
+ onParentCall,
92
+ resolveLastBlade,
93
+ resolveBladeByName,
94
+ } = useBladeNavigation();
95
+ const { navigationMenuComposer, toolbarComposer } = useMenuComposer();
96
+ const { appsList, switchApp, getApps } = useAppSwitcher();
97
+
98
+ const { notifications, loadFromHistory, markAllAsRead } = useNotifications();
99
+ const route = useRoute();
100
+ const router = useRouter();
101
+ const isAuthorized = ref(true);
102
+ const isReady = ref(false);
103
+ const pages = inject<BladePageComponent[]>("pages");
104
+ const isDesktop = inject<Ref<boolean>>("isDesktop");
105
+ const isMobile = inject<Ref<boolean>>("isMobile");
106
+ const version = import.meta.env.PACKAGE_VERSION;
107
+ const bladeNavigationRefs = ref();
108
+ const internalRoutes = inject("bladeRoutes");
109
+ provide("internalRoutes", internalRoutes);
110
+
111
+ onMounted(async () => {
112
+ try {
113
+ await getApps();
114
+ langInit();
115
+ await customizationHandler();
116
+ await loadFromHistory();
117
+
118
+ isReady.value = true;
119
+ } catch (e) {
120
+ console.log(e);
121
+ throw e;
122
+ }
123
+ });
124
+
125
+ watch(
126
+ () => bladeNavigationRefs.value?.bladesRefs,
127
+ (newVal) => {
128
+ bladesRefs.value = newVal;
129
+ },
130
+ { deep: true }
131
+ );
132
+
133
+ console.debug(`Initializing App`);
134
+
135
+ const toolbarItems = computed(() =>
136
+ toolbarComposer([
137
+ {
138
+ component: markRaw(LanguageSelector),
139
+ options: {
140
+ value: currentLocale.value as string,
141
+ title: t("SHELL.TOOLBAR.LANGUAGE"),
142
+ languageItems: availableLocales.map((locale: string) => ({
143
+ lang: locale,
144
+ title: (getLocaleMessage(locale) as { language_name: string }).language_name,
145
+ clickHandler(lang: string) {
146
+ currentLocale.value = lang;
147
+ localStorage.setItem("VC_LANGUAGE_SETTINGS", lang);
148
+ },
149
+ })),
150
+ },
151
+ isVisible: isDesktop.value ? isDesktop.value : isMobile.value ? route.path === "/" : false,
152
+ },
153
+ {
154
+ isAccent: notifications.value.some((item) => item.isNew),
155
+ component: markRaw(VcNotificationDropdown),
156
+ options: {
157
+ title: t("SHELL.TOOLBAR.NOTIFICATIONS"),
158
+ notifications: notifications.value,
159
+ onOpen() {
160
+ if (notifications.value.some((x) => x.isNew)) {
161
+ markAllAsRead();
162
+ }
163
+ },
164
+ },
165
+ },
166
+ {
167
+ component: markRaw(UserDropdownButton),
168
+ options: {
169
+ avatar: avatarImage,
170
+ name: user.value?.userName,
171
+ role: user.value?.isAdministrator ? "Administrator" : "Seller account",
172
+ menuItems: [
173
+ {
174
+ title: t("SHELL.ACCOUNT.CHANGE_PASSWORD"),
175
+ clickHandler() {
176
+ open();
177
+ },
178
+ },
179
+ {
180
+ title: t("SHELL.ACCOUNT.LOGOUT"),
181
+ async clickHandler() {
182
+ const isPrevented = await closeBlade(0);
183
+ if (!isPrevented) {
184
+ signOut();
185
+ router.push({ name: "Login" });
186
+ }
187
+ },
188
+ },
189
+ ],
190
+ },
191
+ isVisible: isDesktop.value,
192
+ },
193
+ ])
194
+ );
195
+
196
+ const mobileMenuItems = computed(() =>
197
+ toolbarComposer([
198
+ {
199
+ component: markRaw(UserDropdownButton),
200
+ options: {
201
+ avatar: avatarImage,
202
+ name: user.value?.userName,
203
+ role: user.value?.isAdministrator ? "Administrator" : "Seller account",
204
+ },
205
+ isVisible: isMobile.value,
206
+ },
207
+ ])
208
+ );
209
+
210
+ const menuItems = reactive(
211
+ navigationMenuComposer([
212
+ {
213
+ title: computed(() => t("SHELL.MENU.DASHBOARD")),
214
+ icon: "fas fa-home",
215
+ isVisible: true,
216
+ component: defineComponent({
217
+ url: "/",
218
+ }),
219
+ clickHandler() {
220
+ openDashboard();
221
+ },
222
+ },
223
+ {
224
+ title: computed(() => t("SHELL.ACCOUNT.CHANGE_PASSWORD")),
225
+ icon: "fas fa-key",
226
+ isVisible: isMobile.value,
227
+ clickHandler() {
228
+ open();
229
+ },
230
+ },
231
+ {
232
+ title: computed(() => t("DYNAMICMODULE.MENU.TITLE")),
233
+ icon: "fas fa-file-alt",
234
+ isVisible: true,
235
+ component: resolveBladeByName("DynamicItems"),
236
+ },
237
+ {
238
+ title: computed(() => t("SHELL.ACCOUNT.LOGOUT")),
239
+ icon: "fas fa-sign-out-alt",
240
+ isVisible: isMobile,
241
+ async clickHandler() {
242
+ const isPrevented = await closeBlade(0);
243
+ if (!isPrevented) {
244
+ signOut();
245
+ router.push({ name: "Login" });
246
+ }
247
+ },
248
+ },
249
+ ])
250
+ );
251
+
252
+ function langInit() {
253
+ const lang = localStorage.getItem("VC_LANGUAGE_SETTINGS");
254
+
255
+ if (lang) {
256
+ currentLocale.value = lang;
257
+ } else {
258
+ currentLocale.value = "en";
259
+ }
260
+ }
261
+ const openDashboard = async () => {
262
+ console.debug(`openDashboard() called.`);
263
+
264
+ // Close all opened pages with onBeforeClose callback
265
+ const isPrevented = await closeBlade(0);
266
+
267
+ !isPrevented && router.push("/");
268
+ };
269
+
270
+ async function customizationHandler() {
271
+ await getUiCustomizationSettings();
272
+
273
+ if (!uiSettings.value.logo) {
274
+ applySettings({ logo: logoImage });
275
+ }
276
+ if (!uiSettings.value.title) {
277
+ applySettings({ title: undefined });
278
+ }
279
+ }
280
+ </script>
281
+
282
+ <style lang="scss">
283
+ .vc-theme_light {
284
+ --background-color: #f5f6f9;
285
+ --top-bar-color: #161d25;
286
+ --basic-black-color: #333333;
287
+ --tooltips-color: #a5a5a5;
288
+
289
+ --primary-color: #43b0e6;
290
+ --primary-color-hover: #319ed4;
291
+ --primary-color-disabled: #a9ddf6;
292
+
293
+ --special-color: #f89406;
294
+ --special-color-hover: #eb8b03;
295
+ --special-color-disabled: #fed498;
296
+
297
+ /* Layout variables */
298
+ --app-bar-height: 60px;
299
+ --app-bar-background-color: var(--top-bar-color);
300
+ --app-bar-toolbar-icon-background-hover: #2e3d4e;
301
+ --app-bar-toolbar-item-width: 50px;
302
+ --app-bar-divider-color: #2e3d4e;
303
+ --app-bar-toolbar-icon-color: #7e8e9d;
304
+ --app-bar-account-info-role-color: #838d9a;
305
+ }
306
+
307
+ html,
308
+ body,
309
+ #app {
310
+ @apply tw-font-roboto tw-h-full tw-w-full tw-m-0 tw-fixed tw-overflow-hidden tw-overscroll-y-none;
311
+ }
312
+
313
+ body {
314
+ @apply tw-text-base;
315
+ }
316
+
317
+ h1,
318
+ h2,
319
+ h3,
320
+ h4,
321
+ h5,
322
+ h6,
323
+ button,
324
+ input,
325
+ select,
326
+ textarea {
327
+ @apply tw-font-roboto;
328
+ }
329
+ ::-webkit-input-placeholder {
330
+ @apply tw-font-roboto;
331
+ }
332
+ :-moz-placeholder {
333
+ @apply tw-font-roboto;
334
+ }
335
+ ::-moz-placeholder {
336
+ @apply tw-font-roboto;
337
+ }
338
+ :-ms-input-placeholder {
339
+ @apply tw-font-roboto;
340
+ }
341
+
342
+ .vc-app.vc-theme_light {
343
+ --background-color: #f2f2f2;
344
+ --top-bar-color: #ffffff;
345
+ --app-background: linear-gradient(180deg, #e4f5fb 5.06%, #e8f3f2 100%), linear-gradient(0deg, #e8f2f3, #e8f2f3),
346
+ #eef2f8;
347
+ --app-bar-background-color: #ffffff;
348
+ --app-bar-divider-color: #ffffff;
349
+ --app-bar-toolbar-item-width: 50px;
350
+ --app-bar-toolbar-icon-color: #7e8e9d;
351
+ --app-bar-toolbar-icon-color-hover: #465769;
352
+ --app-bar-toolbar-icon-background-hover: #ffffff;
353
+ --app-bar-account-info-name-color: #161d25;
354
+ --app-bar-account-info-role-color: #7e8e9d;
355
+ }
356
+
357
+ .app {
358
+ &__loader {
359
+ background: var(--app-background);
360
+ }
361
+ }
362
+ </style>