diff --git a/auto-imports.d.ts b/auto-imports.d.ts
deleted file mode 100644
index 8b9bb3411cd0da18eead8dd10de1fe8c97718bb2..0000000000000000000000000000000000000000
--- a/auto-imports.d.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-/* eslint-disable */
-/* prettier-ignore */
-// @ts-nocheck
-// noinspection JSUnusedGlobalSymbols
-// Generated by unplugin-auto-import
-export {}
-declare global {
-  const EffectScope: typeof import('vue')['EffectScope']
-  const [alias]: typeof import('[package-name]')['[from]']
-  const axios: typeof import('axios')['default']
-  const computed: typeof import('vue')['computed']
-  const createApp: typeof import('vue')['createApp']
-  const customRef: typeof import('vue')['customRef']
-  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
-  const defineComponent: typeof import('vue')['defineComponent']
-  const effectScope: typeof import('vue')['effectScope']
-  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
-  const getCurrentScope: typeof import('vue')['getCurrentScope']
-  const h: typeof import('vue')['h']
-  const inject: typeof import('vue')['inject']
-  const isProxy: typeof import('vue')['isProxy']
-  const isReactive: typeof import('vue')['isReactive']
-  const isReadonly: typeof import('vue')['isReadonly']
-  const isRef: typeof import('vue')['isRef']
-  const markRaw: typeof import('vue')['markRaw']
-  const nextTick: typeof import('vue')['nextTick']
-  const onActivated: typeof import('vue')['onActivated']
-  const onBeforeMount: typeof import('vue')['onBeforeMount']
-  const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
-  const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
-  const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
-  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
-  const onDeactivated: typeof import('vue')['onDeactivated']
-  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
-  const onMounted: typeof import('vue')['onMounted']
-  const onRenderTracked: typeof import('vue')['onRenderTracked']
-  const onRenderTriggered: typeof import('vue')['onRenderTriggered']
-  const onScopeDispose: typeof import('vue')['onScopeDispose']
-  const onServerPrefetch: typeof import('vue')['onServerPrefetch']
-  const onUnmounted: typeof import('vue')['onUnmounted']
-  const onUpdated: typeof import('vue')['onUpdated']
-  const provide: typeof import('vue')['provide']
-  const reactive: typeof import('vue')['reactive']
-  const readonly: typeof import('vue')['readonly']
-  const ref: typeof import('vue')['ref']
-  const resolveComponent: typeof import('vue')['resolveComponent']
-  const shallowReactive: typeof import('vue')['shallowReactive']
-  const shallowReadonly: typeof import('vue')['shallowReadonly']
-  const shallowRef: typeof import('vue')['shallowRef']
-  const toRaw: typeof import('vue')['toRaw']
-  const toRef: typeof import('vue')['toRef']
-  const toRefs: typeof import('vue')['toRefs']
-  const toValue: typeof import('vue')['toValue']
-  const triggerRef: typeof import('vue')['triggerRef']
-  const unref: typeof import('vue')['unref']
-  const useAttrs: typeof import('vue')['useAttrs']
-  const useCssModule: typeof import('vue')['useCssModule']
-  const useCssVars: typeof import('vue')['useCssVars']
-  const useI18n: typeof import('vue-i18n')['useI18n']
-  const useLink: typeof import('vue-router')['useLink']
-  const useMyFetch: typeof import('@vueuse/core')['useFetch']
-  const useRoute: typeof import('vue-router')['useRoute']
-  const useRouter: typeof import('vue-router')['useRouter']
-  const useSlots: typeof import('vue')['useSlots']
-  const watch: typeof import('vue')['watch']
-  const watchEffect: typeof import('vue')['watchEffect']
-  const watchPostEffect: typeof import('vue')['watchPostEffect']
-  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
-}
-// for type re-export
-declare global {
-  // @ts-ignore
-  export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
-  import('vue')
-  // @ts-ignore
-  export type { RouteLocationRaw } from 'vue-router'
-  import('vue-router')
-}
diff --git a/components.d.ts b/components.d.ts
deleted file mode 100644
index 6a4a0991d610d32190c1ae66edd0d22c4b806934..0000000000000000000000000000000000000000
--- a/components.d.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-/* eslint-disable */
-// @ts-nocheck
-// Generated by unplugin-vue-components
-// Read more: https://github.com/vuejs/core/pull/3399
-export {}
-
-/* prettier-ignore */
-declare module 'vue' {
-  export interface GlobalComponents {
-    Avatar: typeof import('primevue/avatar')['default']
-    Button: typeof import('primevue/button')['default']
-    CreateEntityMenu: typeof import('./src/components/CreateEntityMenu.vue')['default']
-    Dialog: typeof import('primevue/dialog')['default']
-    Divider: typeof import('primevue/divider')['default']
-    Drawer: typeof import('primevue/drawer')['default']
-    ImageItem: typeof import('@/modules/entities/ImageItem.vue')['default']
-    ImageMoveMenu: typeof import('./src/components/editEntityMenu/ImageMoveMenu.vue')['default']
-    ImagePositionMenu: typeof import('./src/components/editEntityMenu/ImagePositionMenu.vue')['default']
-    ImageSizeMenu: typeof import('./src/components/editEntityMenu/ImageSizeMenu.vue')['default']
-    ImageStateMenu: typeof import('./src/components/editEntityMenu/ImageStateMenu.vue')['default']
-    LogoAndLabel: typeof import('./src/components/LogoAndLabel.vue')['default']
-    MoveImageMenu: typeof import('./src/components/editEntityMenu/image/MoveImageMenu.vue')['default']
-    MoveMenu: typeof import('./src/components/editEntityMenu/text/MoveMenu.vue')['default']
-    MoveTextMenu: typeof import('./src/components/editEntityMenu/text/MoveTextMenu.vue')['default']
-    RouterLink: typeof import('vue-router')['RouterLink']
-    RouterView: typeof import('vue-router')['RouterView']
-    SpeedDial: typeof import('primevue/speeddial')['default']
-    Splitter: typeof import('primevue/splitter')['default']
-    SplitterPanel: typeof import('primevue/splitterpanel')['default']
-    StateImageMenu: typeof import('./src/components/editEntityMenu/image/StateImageMenu.vue')['default']
-    StateMenu: typeof import('./src/components/editEntityMenu/text/StateMenu.vue')['default']
-    StateTextMenu: typeof import('./src/components/editEntityMenu/text/StateTextMenu.vue')['default']
-    TextFontMenu: typeof import('./src/components/editEntityMenu/TextFontMenu.vue')['default']
-    TextItem: typeof import('@/modules/entities/TextItem.vue')['default']
-    TextMoveMenu: typeof import('./src/components/editEntityMenu/TextMoveMenu.vue')['default']
-    TextPositionMenu: typeof import('./src/components/editEntityMenu/TextPositionMenu.vue')['default']
-    TextStateMenu: typeof import('./src/components/editEntityMenu/TextStateMenu.vue')['default']
-    TextWidthMenu: typeof import('./src/components/editEntityMenu/TextWidthMenu.vue')['default']
-    Toast: typeof import('primevue/toast')['default']
-    Tree: typeof import('primevue/tree')['default']
-    UserInfoHeaderWithSettings: typeof import('./src/components/UserInfoHeaderWithSettings.vue')['default']
-  }
-}
diff --git a/package.json b/package.json
index 131c67df188266078267b40d77bde9d730589760..ce74cccce89bab28d5a8800e32e26e1d2bafa456 100644
--- a/package.json
+++ b/package.json
@@ -43,6 +43,7 @@
     "eslint-plugin-vue": "^9.23.0",
     "npm-run-all2": "^6.2.0",
     "prettier": "^3.2.5",
+    "sass": "^1.77.8",
     "typescript": "~5.4.0",
     "unplugin-auto-import": "^0.18.2",
     "unplugin-vue-components": "^0.27.3",
diff --git a/src/app/App.vue b/src/app/App.vue
index 26bfa004a56c37378f5b75fd58ea71514ae507dc..4198cd4181ae5bd1eb4cef0c59a73d9b2b190713 100644
--- a/src/app/App.vue
+++ b/src/app/App.vue
@@ -1,6 +1,5 @@
 <script setup lang="ts">
 import 'primeicons/primeicons.css';
-import BaseSidebarMenu from '@/modules/BaseSidebarMenu.vue';
 
 const visible = ref<boolean>(false);
 </script>
diff --git a/src/app/auto-imports.d.ts b/src/app/auto-imports.d.ts
index 07ab7b9a30efbaa1b1306ef5dbcca4153ce2d09b..46831756bc3cdbf04cb74bf9ce4b3d454d28a09e 100644
--- a/src/app/auto-imports.d.ts
+++ b/src/app/auto-imports.d.ts
@@ -5,85 +5,75 @@
 // Generated by unplugin-auto-import
 export {}
 declare global {
-  const EffectScope: (typeof import('vue'))['EffectScope'];
-  const [alias]: (typeof import('[package-name]'))['[from]'];
-  const axios: (typeof import('axios'))['default'];
-  const computed: (typeof import('vue'))['computed'];
-  const createApp: (typeof import('vue'))['createApp'];
-  const customRef: (typeof import('vue'))['customRef'];
-  const defineAsyncComponent: (typeof import('vue'))['defineAsyncComponent'];
-  const defineComponent: (typeof import('vue'))['defineComponent'];
-  const effectScope: (typeof import('vue'))['effectScope'];
-  const getCurrentInstance: (typeof import('vue'))['getCurrentInstance'];
-  const getCurrentScope: (typeof import('vue'))['getCurrentScope'];
-  const h: (typeof import('vue'))['h'];
-  const inject: (typeof import('vue'))['inject'];
-  const isProxy: (typeof import('vue'))['isProxy'];
-  const isReactive: (typeof import('vue'))['isReactive'];
-  const isReadonly: (typeof import('vue'))['isReadonly'];
-  const isRef: (typeof import('vue'))['isRef'];
-  const markRaw: (typeof import('vue'))['markRaw'];
-  const nextTick: (typeof import('vue'))['nextTick'];
-  const onActivated: (typeof import('vue'))['onActivated'];
-  const onBeforeMount: (typeof import('vue'))['onBeforeMount'];
-  const onBeforeRouteLeave: (typeof import('vue-router'))['onBeforeRouteLeave'];
-  const onBeforeRouteUpdate: (typeof import('vue-router'))['onBeforeRouteUpdate'];
-  const onBeforeUnmount: (typeof import('vue'))['onBeforeUnmount'];
-  const onBeforeUpdate: (typeof import('vue'))['onBeforeUpdate'];
-  const onDeactivated: (typeof import('vue'))['onDeactivated'];
-  const onErrorCaptured: (typeof import('vue'))['onErrorCaptured'];
-  const onMounted: (typeof import('vue'))['onMounted'];
-  const onRenderTracked: (typeof import('vue'))['onRenderTracked'];
-  const onRenderTriggered: (typeof import('vue'))['onRenderTriggered'];
-  const onScopeDispose: (typeof import('vue'))['onScopeDispose'];
-  const onServerPrefetch: (typeof import('vue'))['onServerPrefetch'];
-  const onUnmounted: (typeof import('vue'))['onUnmounted'];
-  const onUpdated: (typeof import('vue'))['onUpdated'];
-  const provide: (typeof import('vue'))['provide'];
-  const reactive: (typeof import('vue'))['reactive'];
-  const readonly: (typeof import('vue'))['readonly'];
-  const ref: (typeof import('vue'))['ref'];
-  const resolveComponent: (typeof import('vue'))['resolveComponent'];
-  const shallowReactive: (typeof import('vue'))['shallowReactive'];
-  const shallowReadonly: (typeof import('vue'))['shallowReadonly'];
-  const shallowRef: (typeof import('vue'))['shallowRef'];
-  const toRaw: (typeof import('vue'))['toRaw'];
-  const toRef: (typeof import('vue'))['toRef'];
-  const toRefs: (typeof import('vue'))['toRefs'];
-  const toValue: (typeof import('vue'))['toValue'];
-  const triggerRef: (typeof import('vue'))['triggerRef'];
-  const unref: (typeof import('vue'))['unref'];
-  const useAttrs: (typeof import('vue'))['useAttrs'];
-  const useCssModule: (typeof import('vue'))['useCssModule'];
-  const useCssVars: (typeof import('vue'))['useCssVars'];
-  const useLink: (typeof import('vue-router'))['useLink'];
-  const useMyFetch: (typeof import('@vueuse/core'))['useFetch'];
-  const useRoute: (typeof import('vue-router'))['useRoute'];
-  const useRouter: (typeof import('vue-router'))['useRouter'];
-  const useSlots: (typeof import('vue'))['useSlots'];
-  const watch: (typeof import('vue'))['watch'];
-  const watchEffect: (typeof import('vue'))['watchEffect'];
-  const watchPostEffect: (typeof import('vue'))['watchPostEffect'];
-  const watchSyncEffect: (typeof import('vue'))['watchSyncEffect'];
+  const EffectScope: typeof import('vue')['EffectScope']
+  const [alias]: typeof import('[package-name]')['[from]']
+  const [import-names]: typeof import('[package-name]')['[import-names]']
+  const axios: typeof import('axios')['default']
+  const computed: typeof import('vue')['computed']
+  const createApp: typeof import('vue')['createApp']
+  const customRef: typeof import('vue')['customRef']
+  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
+  const defineComponent: typeof import('vue')['defineComponent']
+  const effectScope: typeof import('vue')['effectScope']
+  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
+  const getCurrentScope: typeof import('vue')['getCurrentScope']
+  const h: typeof import('vue')['h']
+  const inject: typeof import('vue')['inject']
+  const isProxy: typeof import('vue')['isProxy']
+  const isReactive: typeof import('vue')['isReactive']
+  const isReadonly: typeof import('vue')['isReadonly']
+  const isRef: typeof import('vue')['isRef']
+  const markRaw: typeof import('vue')['markRaw']
+  const nextTick: typeof import('vue')['nextTick']
+  const onActivated: typeof import('vue')['onActivated']
+  const onBeforeMount: typeof import('vue')['onBeforeMount']
+  const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
+  const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
+  const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
+  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
+  const onDeactivated: typeof import('vue')['onDeactivated']
+  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
+  const onMounted: typeof import('vue')['onMounted']
+  const onRenderTracked: typeof import('vue')['onRenderTracked']
+  const onRenderTriggered: typeof import('vue')['onRenderTriggered']
+  const onScopeDispose: typeof import('vue')['onScopeDispose']
+  const onServerPrefetch: typeof import('vue')['onServerPrefetch']
+  const onUnmounted: typeof import('vue')['onUnmounted']
+  const onUpdated: typeof import('vue')['onUpdated']
+  const provide: typeof import('vue')['provide']
+  const reactive: typeof import('vue')['reactive']
+  const readonly: typeof import('vue')['readonly']
+  const ref: typeof import('vue')['ref']
+  const resolveComponent: typeof import('vue')['resolveComponent']
+  const shallowReactive: typeof import('vue')['shallowReactive']
+  const shallowReadonly: typeof import('vue')['shallowReadonly']
+  const shallowRef: typeof import('vue')['shallowRef']
+  const toRaw: typeof import('vue')['toRaw']
+  const toRef: typeof import('vue')['toRef']
+  const toRefs: typeof import('vue')['toRefs']
+  const toValue: typeof import('vue')['toValue']
+  const triggerRef: typeof import('vue')['triggerRef']
+  const unref: typeof import('vue')['unref']
+  const useAttrs: typeof import('vue')['useAttrs']
+  const useCssModule: typeof import('vue')['useCssModule']
+  const useCssVars: typeof import('vue')['useCssVars']
+  const useI18n: (typeof import('vue-i18n'))['useI18n']
+  const useLink: typeof import('vue-router')['useLink']
+  const useMyFetch: typeof import('@vueuse/core')['useFetch']
+  const useRoute: typeof import('vue-router')['useRoute']
+  const useRouter: typeof import('vue-router')['useRouter']
+  const useSlots: typeof import('vue')['useSlots']
+  const watch: typeof import('vue')['watch']
+  const watchEffect: typeof import('vue')['watchEffect']
+  const watchPostEffect: typeof import('vue')['watchPostEffect']
+  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
 }
 // for type re-export
 declare global {
   // @ts-ignore
-  export type {
-    Component,
-    ComponentPublicInstance,
-    ComputedRef,
-    ExtractDefaultPropTypes,
-    ExtractPropTypes,
-    ExtractPublicPropTypes,
-    InjectionKey,
-    PropType,
-    Ref,
-    VNode,
-    WritableComputedRef
-  } from 'vue';
-  import('vue');
+  export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
+  import('vue')
   // @ts-ignore
-  export type { RouteLocationRaw } from 'vue-router';
-  import('vue-router');
+  export type { RouteLocationRaw } from 'vue-router'
+  import('vue-router')
 }
diff --git a/src/app/components.d.ts b/src/app/components.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8180a9be445470f5b6e46c3ab1dfd2e49cc35899
--- /dev/null
+++ b/src/app/components.d.ts
@@ -0,0 +1,40 @@
+/* eslint-disable */
+// @ts-nocheck
+// Generated by unplugin-vue-components
+// Read more: https://github.com/vuejs/core/pull/3399
+export {}
+
+/* prettier-ignore */
+declare module 'vue' {
+  export interface GlobalComponents {
+    App: typeof import('./App.vue')['default']
+    Avatar: typeof import('primevue/avatar')['default']
+    BaseDivider: typeof import('./../shared/BaseDivider.vue')['default']
+    BaseSidebarMenu: typeof import('./../modules/BaseSidebarMenu.vue')['default']
+    Button: typeof import('primevue/button')['default']
+    CreateEntityMenu: typeof import('./../components/CreateEntityMenu.vue')['default']
+    CropImageModal: typeof import('./../modules/CropImageModal.vue')['default']
+    Dialog: typeof import('primevue/dialog')['default']
+    Divider: typeof import('primevue/divider')['default']
+    Drawer: typeof import('primevue/drawer')['default']
+    EntityItem: typeof import('./../modules/EntityItem.vue')['default']
+    HomePage: typeof import('./../pages/HomePage.vue')['default']
+    ImageItem: typeof import('./../modules/entities/ImageItem.vue')['default']
+    ImagePositionMenu: typeof import('./../components/editEntityMenu/ImagePositionMenu.vue')['default']
+    ImageSizeMenu: typeof import('./../components/editEntityMenu/ImageSizeMenu.vue')['default']
+    ImageStateMenu: typeof import('./../components/editEntityMenu/ImageStateMenu.vue')['default']
+    LogoAndLabel: typeof import('./../components/LogoAndLabel.vue')['default']
+    RouterLink: typeof import('vue-router')['RouterLink']
+    RouterView: typeof import('vue-router')['RouterView']
+    SheetPage: typeof import('./../pages/[uuid]/SheetPage.vue')['default']
+    SpeedDial: typeof import('primevue/speeddial')['default']
+    Splitter: typeof import('primevue/splitter')['default']
+    SplitterPanel: typeof import('primevue/splitterpanel')['default']
+    TextFontMenu: typeof import('./../components/editEntityMenu/TextFontMenu.vue')['default']
+    TextItem: typeof import('./../modules/entities/TextItem.vue')['default']
+    TextPositionMenu: typeof import('./../components/editEntityMenu/TextPositionMenu.vue')['default']
+    TextStateMenu: typeof import('./../components/editEntityMenu/TextStateMenu.vue')['default']
+    Tree: typeof import('primevue/tree')['default']
+    UserInfoHeaderWithSettings: typeof import('./../components/UserInfoHeaderWithSettings.vue')['default']
+  }
+}
diff --git a/src/modules/BaseSidebarMenu.vue b/src/modules/BaseSidebarMenu.vue
index cc67cb5518df4225bf133a3bb7644adf49264ebf..162f8a5af8d9392bfa226558d827dc92cab0eff3 100644
--- a/src/modules/BaseSidebarMenu.vue
+++ b/src/modules/BaseSidebarMenu.vue
@@ -1,7 +1,5 @@
 <script setup lang="ts">
-import LogoAndLabel from '@/components/LogoAndLabel.vue';
 import { useDataStore } from '@/app/stores/data';
-import UserInfoHeaderWithSettings from '@/components/UserInfoHeaderWithSettings.vue';
 
 const route = useRoute();
 const emit = defineEmits(['closeCallback']);
diff --git a/src/modules/EntityItem.vue b/src/modules/EntityItem.vue
index fec3597fd38dbf3e367c81c7a0ec6929c75b0356..335914c4ffbae6f2176aa7c1abe27f8ec3992ba8 100644
--- a/src/modules/EntityItem.vue
+++ b/src/modules/EntityItem.vue
@@ -1,9 +1,7 @@
 <script setup lang="ts">
 import type { IEntity } from '@/app/interfaces/environment';
-import TextItem from '@/modules/entities/TextItem.vue';
-import ImageItem from '@/modules/entities/ImageItem.vue';
-import Divider from '@/shared/BaseDivider.vue';
 import { useVModel } from '@vueuse/core';
+import type { IImage, IText } from '@/app/interfaces/entities';
 interface Props {
   entity: IEntity;
 }
@@ -14,10 +12,10 @@ const entity = useVModel(props, 'entity', emit);
 
 <template>
   <div>
-    <TextItem v-if="entity.entity_type === 'text'" :entityData="entity" />
-    <ImageItem v-if="entity.entity_type === 'image'" v-model:entityData="entity" />
+    <TextItem v-if="entity.entity_type === 'text'" :entityData="entity as IText" />
+    <ImageItem v-if="entity.entity_type === 'image'" v-model:entityData="entity as IImage" />
     <div class="px-16">
-      <Divider />
+      <BaseDivider />
     </div>
   </div>
 </template>
diff --git a/src/pages/HomePage.vue b/src/pages/HomePage.vue
index 845579e51b18e60a7c08ad416c2eceeabc8bbbdb..e1111e1e9aa7f39b1ae63c89b004489233327113 100644
--- a/src/pages/HomePage.vue
+++ b/src/pages/HomePage.vue
@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { useElementSize, useWindowSize } from '@vueuse/core';
+import { useElementSize } from '@vueuse/core';
 import { setDefaultHomeBackground } from '@/app/helpers';
 import { useInterfaceStore } from '@/app/stores/interface';
 import { useDataStore } from '@/app/stores/data';
@@ -7,9 +7,6 @@ import { useAuthorizationStore } from '@/app/stores/authorization';
 import { useWebsocketStore } from '@/app/stores/websocket';
 import type { IEntity } from '@/app/interfaces/environment';
 import type { IImageMainInfo } from '@/app/interfaces';
-import EntityItem from '@/modules/EntityItem.vue';
-import CreateEntityMenu from '@/components/CreateEntityMenu.vue';
-import CropImageModal from '@/modules/CropImageModal.vue';
 
 const backgroundImage = ref();
 const { height: backgroundImageHeight } = useElementSize(backgroundImage);
@@ -136,7 +133,7 @@ const splitterHeight = computed(() => {
   />
 </template>
 
-<style scoped>
+<style lang="scss" scoped>
 .splitterPanelBackground > .changeImageBlock,
 .splitterPanelBackground > .returnDefaultImageBlock {
   opacity: 0;
diff --git a/vite.config.ts b/vite.config.ts
index d4abdaa99c5662c838fa61f9735e1c308ae0f04f..7a8c929ef467f66429eb3f2f33a47946c92463eb 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -16,7 +16,9 @@ export default defineConfig({
       template: {}
     }),
     Components({
-      resolvers: [PrimeVueResolver()]
+      resolvers: [PrimeVueResolver()],
+      dts: 'src/app/components.d.ts',
+      dirs: ['src/app', 'src/pages', 'src/modules', 'src/components', 'src/shared']
     }),
     AutoImport({
       include: [
@@ -88,9 +90,7 @@ export default defineConfig({
 
       // Custom resolvers, compatible with `unplugin-vue-components`
       // see https://github.com/antfu/unplugin-auto-import/pull/23/
-      resolvers: [
-        /* ... */
-      ],
+      resolvers: [],
 
       // Include auto-imported packages in Vite's `optimizeDeps` options
       // Recommend to enable
diff --git a/yarn.lock b/yarn.lock
index 2bf064bc18391d5c36088b6861450a07fcd201a0..d130d7b2677443b2c25979b5aebf9ea57caa237b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -940,7 +940,7 @@ chalk@^4.0.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
-chokidar@^3.5.3, chokidar@^3.6.0:
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3, chokidar@^3.6.0:
   version "3.6.0"
   resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
   integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
@@ -1491,6 +1491,11 @@ ignore@^5.2.0, ignore@^5.3.1:
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
   integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
 
+immutable@^4.0.0:
+  version "4.3.7"
+  resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381"
+  integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==
+
 import-fresh@^3.2.1:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -2130,6 +2135,15 @@ run-parallel@^1.1.9:
   dependencies:
     queue-microtask "^1.2.2"
 
+sass@^1.77.8:
+  version "1.77.8"
+  resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd"
+  integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==
+  dependencies:
+    chokidar ">=3.0.0 <4.0.0"
+    immutable "^4.0.0"
+    source-map-js ">=0.6.2 <2.0.0"
+
 scule@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3"
@@ -2167,7 +2181,7 @@ slash@^3.0.0:
   resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
   integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
 
-source-map-js@^1.2.0:
+"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0:
   version "1.2.0"
   resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz"
   integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==