aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-09-19 18:13:57 +0200
committerArmand Philippot <git@armandphilippot.com>2023-09-19 19:12:31 +0200
commit2faf2e34331703b3bdea3eb487cb8799c8d65377 (patch)
treededc6557ddaa8fedd42d9bdf77950f8f9168ebcb
parentd1fe9e2164fc5c8fd767b456eecc2a4eb929a33f (diff)
refactor(build): replace paths aliases with relative paths
Using paths aliases starting with "@" can be confusing and can lead to conflict with existings modules. I prefer to use relative paths to avoid extra configuration in tools because of these aliases.
-rw-r--r--.storybook/main.js15
-rw-r--r--.storybook/preview.js2
-rw-r--r--jest.config.js15
-rw-r--r--jest.setup.js2
-rw-r--r--src/components/atoms/buttons/button-link.test.tsx2
-rw-r--r--src/components/atoms/buttons/button.test.tsx2
-rw-r--r--src/components/atoms/buttons/buttons.module.scss2
-rw-r--r--src/components/atoms/forms/boolean-field.module.scss2
-rw-r--r--src/components/atoms/forms/boolean-field.test.tsx2
-rw-r--r--src/components/atoms/forms/field.test.tsx2
-rw-r--r--src/components/atoms/forms/form.test.tsx2
-rw-r--r--src/components/atoms/forms/forms.module.scss4
-rw-r--r--src/components/atoms/forms/label.test.tsx2
-rw-r--r--src/components/atoms/forms/select.test.tsx2
-rw-r--r--src/components/atoms/headings/heading.module.scss2
-rw-r--r--src/components/atoms/headings/heading.test.tsx2
-rw-r--r--src/components/atoms/icons/arrow.module.scss2
-rw-r--r--src/components/atoms/icons/arrow.test.tsx2
-rw-r--r--src/components/atoms/icons/career.module.scss2
-rw-r--r--src/components/atoms/icons/career.test.tsx2
-rw-r--r--src/components/atoms/icons/cc-by-sa.module.scss2
-rw-r--r--src/components/atoms/icons/cc-by-sa.test.tsx2
-rw-r--r--src/components/atoms/icons/close.module.scss2
-rw-r--r--src/components/atoms/icons/close.test.tsx2
-rw-r--r--src/components/atoms/icons/cog.module.scss2
-rw-r--r--src/components/atoms/icons/cog.test.tsx2
-rw-r--r--src/components/atoms/icons/computer-screen.module.scss2
-rw-r--r--src/components/atoms/icons/computer-screen.test.tsx2
-rw-r--r--src/components/atoms/icons/envelop.module.scss2
-rw-r--r--src/components/atoms/icons/envelop.test.tsx2
-rw-r--r--src/components/atoms/icons/feed.module.scss2
-rw-r--r--src/components/atoms/icons/feed.test.tsx2
-rw-r--r--src/components/atoms/icons/hamburger.module.scss2
-rw-r--r--src/components/atoms/icons/hamburger.test.tsx2
-rw-r--r--src/components/atoms/icons/home.module.scss2
-rw-r--r--src/components/atoms/icons/home.test.tsx2
-rw-r--r--src/components/atoms/icons/magnifying-glass.module.scss2
-rw-r--r--src/components/atoms/icons/magnifying-glass.test.tsx2
-rw-r--r--src/components/atoms/icons/moon.module.scss2
-rw-r--r--src/components/atoms/icons/moon.test.tsx2
-rw-r--r--src/components/atoms/icons/plus-minus.module.scss2
-rw-r--r--src/components/atoms/icons/plus-minus.test.tsx2
-rw-r--r--src/components/atoms/icons/posts-stack.module.scss2
-rw-r--r--src/components/atoms/icons/posts-stack.test.tsx2
-rw-r--r--src/components/atoms/icons/sun.module.scss2
-rw-r--r--src/components/atoms/icons/sun.test.tsx2
-rw-r--r--src/components/atoms/images/logo.module.scss2
-rw-r--r--src/components/atoms/images/logo.test.tsx2
-rw-r--r--src/components/atoms/layout/column.test.tsx2
-rw-r--r--src/components/atoms/layout/copyright.module.scss4
-rw-r--r--src/components/atoms/layout/copyright.stories.tsx2
-rw-r--r--src/components/atoms/layout/copyright.test.tsx4
-rw-r--r--src/components/atoms/layout/main.test.tsx2
-rw-r--r--src/components/atoms/layout/no-script.module.scss2
-rw-r--r--src/components/atoms/layout/no-script.test.tsx2
-rw-r--r--src/components/atoms/layout/notice.module.scss2
-rw-r--r--src/components/atoms/layout/notice.test.tsx2
-rw-r--r--src/components/atoms/layout/section.module.scss4
-rw-r--r--src/components/atoms/layout/section.test.tsx2
-rw-r--r--src/components/atoms/layout/sidebar.module.scss2
-rw-r--r--src/components/atoms/layout/sidebar.test.tsx2
-rw-r--r--src/components/atoms/links/link.module.scss4
-rw-r--r--src/components/atoms/links/link.test.tsx2
-rw-r--r--src/components/atoms/links/nav-link.module.scss6
-rw-r--r--src/components/atoms/links/nav-link.test.tsx2
-rw-r--r--src/components/atoms/links/sharing-link.module.scss2
-rw-r--r--src/components/atoms/links/sharing-link.test.tsx2
-rw-r--r--src/components/atoms/links/social-link.module.scss2
-rw-r--r--src/components/atoms/links/social-link.test.tsx2
-rw-r--r--src/components/atoms/links/social-link.tsx8
-rw-r--r--src/components/atoms/lists/description-list-item.test.tsx2
-rw-r--r--src/components/atoms/lists/description-list.module.scss2
-rw-r--r--src/components/atoms/lists/description-list.test.tsx2
-rw-r--r--src/components/atoms/lists/list.module.scss2
-rw-r--r--src/components/atoms/lists/list.test.tsx2
-rw-r--r--src/components/atoms/loaders/progress-bar.module.scss2
-rw-r--r--src/components/atoms/loaders/progress-bar.test.tsx2
-rw-r--r--src/components/atoms/loaders/spinner.module.scss2
-rw-r--r--src/components/atoms/loaders/spinner.test.tsx2
-rw-r--r--src/components/molecules/buttons/back-to-top.module.scss2
-rw-r--r--src/components/molecules/buttons/back-to-top.test.tsx2
-rw-r--r--src/components/molecules/buttons/back-to-top.tsx8
-rw-r--r--src/components/molecules/buttons/heading-button.module.scss2
-rw-r--r--src/components/molecules/buttons/heading-button.stories.tsx1
-rw-r--r--src/components/molecules/buttons/heading-button.test.tsx2
-rw-r--r--src/components/molecules/buttons/heading-button.tsx4
-rw-r--r--src/components/molecules/buttons/help-button.module.scss3
-rw-r--r--src/components/molecules/buttons/help-button.test.tsx2
-rw-r--r--src/components/molecules/buttons/help-button.tsx2
-rw-r--r--src/components/molecules/forms/ackee-toggle.test.tsx2
-rw-r--r--src/components/molecules/forms/ackee-toggle.tsx8
-rw-r--r--src/components/molecules/forms/fieldset.test.tsx2
-rw-r--r--src/components/molecules/forms/fieldset.tsx2
-rw-r--r--src/components/molecules/forms/flipping-label.module.scss2
-rw-r--r--src/components/molecules/forms/flipping-label.stories.tsx2
-rw-r--r--src/components/molecules/forms/flipping-label.test.tsx2
-rw-r--r--src/components/molecules/forms/flipping-label.tsx4
-rw-r--r--src/components/molecules/forms/labelled-boolean-field.test.tsx2
-rw-r--r--src/components/molecules/forms/labelled-boolean-field.tsx6
-rw-r--r--src/components/molecules/forms/labelled-field.test.tsx2
-rw-r--r--src/components/molecules/forms/labelled-field.tsx4
-rw-r--r--src/components/molecules/forms/labelled-select.test.tsx2
-rw-r--r--src/components/molecules/forms/labelled-select.tsx4
-rw-r--r--src/components/molecules/forms/motion-toggle.test.tsx2
-rw-r--r--src/components/molecules/forms/motion-toggle.tsx4
-rw-r--r--src/components/molecules/forms/prism-theme-toggle.test.tsx2
-rw-r--r--src/components/molecules/forms/prism-theme-toggle.tsx9
-rw-r--r--src/components/molecules/forms/radio-group.module.scss4
-rw-r--r--src/components/molecules/forms/radio-group.test.tsx2
-rw-r--r--src/components/molecules/forms/radio-group.tsx6
-rw-r--r--src/components/molecules/forms/theme-toggle.test.tsx2
-rw-r--r--src/components/molecules/forms/theme-toggle.tsx4
-rw-r--r--src/components/molecules/images/flipping-logo.module.scss2
-rw-r--r--src/components/molecules/images/flipping-logo.test.tsx2
-rw-r--r--src/components/molecules/images/flipping-logo.tsx2
-rw-r--r--src/components/molecules/images/responsive-image.module.scss2
-rw-r--r--src/components/molecules/images/responsive-image.test.tsx2
-rw-r--r--src/components/molecules/images/responsive-image.tsx2
-rw-r--r--src/components/molecules/layout/branding.module.scss4
-rw-r--r--src/components/molecules/layout/branding.test.tsx2
-rw-r--r--src/components/molecules/layout/branding.tsx4
-rw-r--r--src/components/molecules/layout/card.module.scss2
-rw-r--r--src/components/molecules/layout/card.test.tsx2
-rw-r--r--src/components/molecules/layout/card.tsx6
-rw-r--r--src/components/molecules/layout/code.module.scss4
-rw-r--r--src/components/molecules/layout/code.test.tsx2
-rw-r--r--src/components/molecules/layout/code.tsx4
-rw-r--r--src/components/molecules/layout/columns.module.scss2
-rw-r--r--src/components/molecules/layout/columns.stories.tsx2
-rw-r--r--src/components/molecules/layout/columns.test.tsx4
-rw-r--r--src/components/molecules/layout/columns.tsx2
-rw-r--r--src/components/molecules/layout/meta.module.scss2
-rw-r--r--src/components/molecules/layout/meta.stories.tsx4
-rw-r--r--src/components/molecules/layout/meta.test.tsx4
-rw-r--r--src/components/molecules/layout/meta.tsx13
-rw-r--r--src/components/molecules/layout/page-footer.test.tsx2
-rw-r--r--src/components/molecules/layout/page-header.module.scss4
-rw-r--r--src/components/molecules/layout/page-header.test.tsx2
-rw-r--r--src/components/molecules/layout/page-header.tsx2
-rw-r--r--src/components/molecules/layout/widget.module.scss4
-rw-r--r--src/components/molecules/layout/widget.test.tsx2
-rw-r--r--src/components/molecules/modals/modal.module.scss4
-rw-r--r--src/components/molecules/modals/modal.test.tsx2
-rw-r--r--src/components/molecules/modals/modal.tsx10
-rw-r--r--src/components/molecules/modals/tooltip.module.scss2
-rw-r--r--src/components/molecules/modals/tooltip.test.tsx2
-rw-r--r--src/components/molecules/modals/tooltip.tsx2
-rw-r--r--src/components/molecules/nav/breadcrumb.module.scss2
-rw-r--r--src/components/molecules/nav/breadcrumb.test.tsx2
-rw-r--r--src/components/molecules/nav/breadcrumb.tsx4
-rw-r--r--src/components/molecules/nav/nav.module.scss3
-rw-r--r--src/components/molecules/nav/nav.stories.tsx4
-rw-r--r--src/components/molecules/nav/nav.test.tsx6
-rw-r--r--src/components/molecules/nav/nav.tsx4
-rw-r--r--src/components/molecules/nav/pagination.module.scss4
-rw-r--r--src/components/molecules/nav/pagination.test.tsx2
-rw-r--r--src/components/molecules/nav/pagination.tsx2
-rw-r--r--src/components/organisms/forms/comment-form.test.tsx2
-rw-r--r--src/components/organisms/forms/comment-form.tsx14
-rw-r--r--src/components/organisms/forms/contact-form.test.tsx2
-rw-r--r--src/components/organisms/forms/contact-form.tsx8
-rw-r--r--src/components/organisms/forms/search-form.module.scss4
-rw-r--r--src/components/organisms/forms/search-form.test.tsx2
-rw-r--r--src/components/organisms/forms/search-form.tsx12
-rw-r--r--src/components/organisms/images/gallery.module.scss4
-rw-r--r--src/components/organisms/images/gallery.stories.tsx2
-rw-r--r--src/components/organisms/images/gallery.test.tsx4
-rw-r--r--src/components/organisms/images/gallery.tsx2
-rw-r--r--src/components/organisms/layout/cards-list.module.scss4
-rw-r--r--src/components/organisms/layout/cards-list.test.tsx2
-rw-r--r--src/components/organisms/layout/cards-list.tsx7
-rw-r--r--src/components/organisms/layout/comment.fixture.tsx5
-rw-r--r--src/components/organisms/layout/comment.module.scss4
-rw-r--r--src/components/organisms/layout/comment.test.tsx2
-rw-r--r--src/components/organisms/layout/comment.tsx10
-rw-r--r--src/components/organisms/layout/comments-list.fixture.tsx2
-rw-r--r--src/components/organisms/layout/comments-list.module.scss2
-rw-r--r--src/components/organisms/layout/comments-list.test.tsx2
-rw-r--r--src/components/organisms/layout/comments-list.tsx6
-rw-r--r--src/components/organisms/layout/footer.module.scss3
-rw-r--r--src/components/organisms/layout/footer.test.tsx2
-rw-r--r--src/components/organisms/layout/footer.tsx12
-rw-r--r--src/components/organisms/layout/header.module.scss4
-rw-r--r--src/components/organisms/layout/header.test.tsx2
-rw-r--r--src/components/organisms/layout/header.tsx4
-rw-r--r--src/components/organisms/layout/no-results.test.tsx2
-rw-r--r--src/components/organisms/layout/no-results.tsx6
-rw-r--r--src/components/organisms/layout/overview.module.scss4
-rw-r--r--src/components/organisms/layout/overview.test.tsx2
-rw-r--r--src/components/organisms/layout/overview.tsx6
-rw-r--r--src/components/organisms/layout/posts-list.module.scss6
-rw-r--r--src/components/organisms/layout/posts-list.test.tsx2
-rw-r--r--src/components/organisms/layout/posts-list.tsx18
-rw-r--r--src/components/organisms/layout/summary.module.scss4
-rw-r--r--src/components/organisms/layout/summary.test.tsx2
-rw-r--r--src/components/organisms/layout/summary.tsx20
-rw-r--r--src/components/organisms/modals/search-modal.module.scss2
-rw-r--r--src/components/organisms/modals/search-modal.test.tsx2
-rw-r--r--src/components/organisms/modals/search-modal.tsx2
-rw-r--r--src/components/organisms/modals/settings-modal.module.scss4
-rw-r--r--src/components/organisms/modals/settings-modal.stories.tsx4
-rw-r--r--src/components/organisms/modals/settings-modal.test.tsx6
-rw-r--r--src/components/organisms/modals/settings-modal.tsx16
-rw-r--r--src/components/organisms/toolbar/main-nav.module.scss4
-rw-r--r--src/components/organisms/toolbar/main-nav.test.tsx2
-rw-r--r--src/components/organisms/toolbar/main-nav.tsx15
-rw-r--r--src/components/organisms/toolbar/search.test.tsx2
-rw-r--r--src/components/organisms/toolbar/search.tsx12
-rw-r--r--src/components/organisms/toolbar/settings.module.scss3
-rw-r--r--src/components/organisms/toolbar/settings.test.tsx2
-rw-r--r--src/components/organisms/toolbar/settings.tsx10
-rw-r--r--src/components/organisms/toolbar/toolbar-items.module.scss6
-rw-r--r--src/components/organisms/toolbar/toolbar.module.scss6
-rw-r--r--src/components/organisms/toolbar/toolbar.test.tsx2
-rw-r--r--src/components/organisms/toolbar/toolbar.tsx4
-rw-r--r--src/components/organisms/widgets/image-widget.module.scss2
-rw-r--r--src/components/organisms/widgets/image-widget.test.tsx2
-rw-r--r--src/components/organisms/widgets/image-widget.tsx6
-rw-r--r--src/components/organisms/widgets/links-list-widget.module.scss4
-rw-r--r--src/components/organisms/widgets/links-list-widget.test.tsx2
-rw-r--r--src/components/organisms/widgets/links-list-widget.tsx11
-rw-r--r--src/components/organisms/widgets/sharing.module.scss2
-rw-r--r--src/components/organisms/widgets/sharing.test.tsx2
-rw-r--r--src/components/organisms/widgets/sharing.tsx8
-rw-r--r--src/components/organisms/widgets/social-media.module.scss2
-rw-r--r--src/components/organisms/widgets/social-media.test.tsx2
-rw-r--r--src/components/organisms/widgets/social-media.tsx6
-rw-r--r--src/components/organisms/widgets/table-of-contents.test.tsx2
-rw-r--r--src/components/organisms/widgets/table-of-contents.tsx4
-rw-r--r--src/components/templates/layout/layout.module.scss6
-rw-r--r--src/components/templates/layout/layout.test.tsx2
-rw-r--r--src/components/templates/layout/layout.tsx30
-rw-r--r--src/components/templates/page/page-layout.module.scss6
-rw-r--r--src/components/templates/page/page-layout.stories.tsx16
-rw-r--r--src/components/templates/page/page-layout.test.tsx4
-rw-r--r--src/components/templates/page/page-layout.tsx34
-rw-r--r--src/components/templates/sectioned/sectioned-layout.test.tsx2
-rw-r--r--src/components/templates/sectioned/sectioned-layout.tsx8
m---------src/content0
-rw-r--r--src/pages/404.tsx34
-rw-r--r--src/pages/_app.tsx8
-rw-r--r--src/pages/article/[slug].tsx54
-rw-r--r--src/pages/atom.xml.tsx2
-rw-r--r--src/pages/blog/index.tsx49
-rw-r--r--src/pages/blog/page/[number].tsx49
-rw-r--r--src/pages/contact.tsx38
-rw-r--r--src/pages/cv.tsx40
-rw-r--r--src/pages/feed.json.tsx2
-rw-r--r--src/pages/feed.xml.tsx2
-rw-r--r--src/pages/index.tsx44
-rw-r--r--src/pages/mentions-legales.tsx32
-rw-r--r--src/pages/projets/[slug].tsx57
-rw-r--r--src/pages/projets/index.tsx36
-rw-r--r--src/pages/recherche/index.tsx49
-rw-r--r--src/pages/sujet/[slug].tsx40
-rw-r--r--src/pages/thematique/[slug].tsx36
-rw-r--r--src/services/graphql/api.ts6
-rw-r--r--src/services/graphql/articles.ts17
-rw-r--r--src/services/graphql/comments.ts12
-rw-r--r--src/services/graphql/contact.ts2
-rw-r--r--src/services/graphql/thematics.ts12
-rw-r--r--src/services/graphql/topics.ts12
-rw-r--r--src/styles/abstracts/_variables.scss2
-rw-r--r--src/styles/abstracts/mixins/_media-queries.scss2
-rw-r--r--src/styles/abstracts/placeholders/_layout.scss2
-rw-r--r--src/styles/base/_animations.scss2
-rw-r--r--src/styles/base/_base.scss4
-rw-r--r--src/styles/base/_colors.scss2
-rw-r--r--src/styles/base/_fonts.scss2
-rw-r--r--src/styles/base/_helpers.scss4
-rw-r--r--src/styles/base/_spacings.scss6
-rw-r--r--src/styles/base/_typography.scss2
-rw-r--r--src/styles/layout/_grid.scss2
-rw-r--r--src/styles/pages/Page.module.scss9
-rw-r--r--src/styles/pages/article.module.scss5
-rw-r--r--src/styles/pages/home.module.scss4
-rw-r--r--src/styles/pages/partials/_article-headings.scss2
-rw-r--r--src/styles/pages/partials/_article-links.scss4
-rw-r--r--src/styles/pages/partials/_article-media.scss2
-rw-r--r--src/styles/pages/partials/_article-prism.scss4
-rw-r--r--src/styles/pages/partials/_article-wp-blocks.scss6
-rw-r--r--src/styles/pages/project.module.scss2
-rw-r--r--src/styles/pages/projects.module.scss2
-rw-r--r--src/styles/pages/topic.module.scss2
-rw-r--r--src/styles/themes/_dark.scss4
-rw-r--r--src/types/app.ts (renamed from src/ts/types/app.ts)0
-rw-r--r--src/types/graphql/generics.ts (renamed from src/ts/types/graphql/generics.ts)0
-rw-r--r--src/types/graphql/mutations.ts (renamed from src/ts/types/graphql/mutations.ts)4
-rw-r--r--src/types/graphql/queries.ts (renamed from src/ts/types/graphql/queries.ts)8
-rw-r--r--src/types/mdx.ts (renamed from src/ts/types/mdx.ts)0
-rw-r--r--src/types/raw-data.ts (renamed from src/ts/types/raw-data.ts)0
-rw-r--r--src/types/swr.ts (renamed from src/ts/types/swr.ts)0
-rw-r--r--src/utils/helpers/author.ts4
-rw-r--r--src/utils/helpers/dates.ts2
-rw-r--r--src/utils/helpers/i18n.ts2
-rw-r--r--src/utils/helpers/images.ts4
-rw-r--r--src/utils/helpers/pages.ts12
-rw-r--r--src/utils/helpers/projects.ts8
-rw-r--r--src/utils/helpers/rss.ts8
-rw-r--r--src/utils/helpers/schema-org.ts4
-rw-r--r--src/utils/hooks/use-article.tsx10
-rw-r--r--src/utils/hooks/use-attributes.tsx2
-rw-r--r--src/utils/hooks/use-breadcrumb.tsx4
-rw-r--r--src/utils/hooks/use-comments.tsx4
-rw-r--r--src/utils/hooks/use-github-api.tsx2
-rw-r--r--src/utils/hooks/use-headings-tree.tsx2
-rw-r--r--src/utils/hooks/use-local-storage.tsx2
-rw-r--r--src/utils/hooks/use-pagination.tsx4
-rw-r--r--src/utils/hooks/use-prism.tsx4
-rw-r--r--src/utils/hooks/use-settings.tsx2
-rw-r--r--src/utils/hooks/use-update-ackee-options.tsx2
-rw-r--r--src/utils/providers/prism-theme.tsx6
-rw-r--r--tests/cypress/e2e/pages/blog.cy.ts2
-rw-r--r--tests/cypress/e2e/pages/homepage.cy.ts2
-rw-r--r--tsconfig.json14
315 files changed, 853 insertions, 899 deletions
diff --git a/.storybook/main.js b/.storybook/main.js
index 477b09e..ca18e6b 100644
--- a/.storybook/main.js
+++ b/.storybook/main.js
@@ -1,5 +1,3 @@
-const path = require('path');
-
/**
* @typedef {import('webpack').Configuration} WebpackConfig
*/
@@ -35,19 +33,6 @@ const storybookConfig = {
/** @type {import('next').NextConfig} */
const nextConfig = require('../next.config');
- // Set modules aliases.
- config.resolve.alias = {
- ...config.resolve.alias,
- '@i18n': path.resolve(__dirname, '../src/i18n'),
- '@assets': path.resolve(__dirname, '../src/assets'),
- '@components': path.resolve(__dirname, '../src/components'),
- '@content': path.resolve(__dirname, '../src/content'),
- '@pages': path.resolve(__dirname, '../src/pages'),
- '@services': path.resolve(__dirname, '../src/services'),
- '@styles': path.resolve(__dirname, '../src/styles'),
- '@utils': path.resolve(__dirname, '../src/utils'),
- };
-
return { ...config, ...nextConfig.webpack };
},
};
diff --git a/.storybook/preview.js b/.storybook/preview.js
index 75c1267..ce30b56 100644
--- a/.storybook/preview.js
+++ b/.storybook/preview.js
@@ -5,7 +5,7 @@ import { useDarkMode } from 'storybook-dark-mode';
import { DocsContainer } from './overrides/docs-container';
import dark from './themes/dark';
import light from './themes/light';
-import '@styles/globals.scss';
+import '../src/styles/globals.scss';
export const parameters = {
actions: { argTypesRegex: '^on[A-Z].*' },
diff --git a/jest.config.js b/jest.config.js
index 5a26772..d638a66 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -16,21 +16,6 @@ const customJestConfig = {
// if using TypeScript with a baseUrl set to the root directory then you need the below for alias' to work
moduleDirectories: ['node_modules', '<rootDir>/'],
- // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
- moduleNameMapper: {
- /** Module Path Aliases */
- '^@i18n/(.*)$': '<rootDir>/src/i18n/$1',
- '^@assets/(.*)$': '<rootDir>/src/assets/$1',
- '^@content/(.*)$': '<rootDir>/src/content/$1',
- '^@components/(.*)$': '<rootDir>/src/components/$1',
- '^@pages/(.*)$': '<rootDir>/src/pages/$1',
- '^@services/(.*)$': '<rootDir>/src/services/$1',
- '^@styles/(.*)$': '<rootDir>/src/styles/$1',
- '^@tests/(.*)$': '<rootDir>/tests/$1',
- '^@ts/(.*)$': '<rootDir>/src/ts/$1',
- '^@utils/(.*)$': '<rootDir>/src/utils/$1',
- },
-
// Add more setup options before each test is run
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
diff --git a/jest.setup.js b/jest.setup.js
index d2710ea..162f1ad 100644
--- a/jest.setup.js
+++ b/jest.setup.js
@@ -1,5 +1,5 @@
import '@testing-library/jest-dom/extend-expect';
-import '@tests/jest/__mocks__/matchMedia.mock';
+import './tests/jest/__mocks__/matchMedia.mock';
jest.mock('next/dist/client/router', () => require('next-router-mock'));
jest.mock('next/dynamic', () => () => 'dynamic-import');
diff --git a/src/components/atoms/buttons/button-link.test.tsx b/src/components/atoms/buttons/button-link.test.tsx
index 5563964..a5aa7b1 100644
--- a/src/components/atoms/buttons/button-link.test.tsx
+++ b/src/components/atoms/buttons/button-link.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import ButtonLink from './button-link';
describe('ButtonLink', () => {
diff --git a/src/components/atoms/buttons/button.test.tsx b/src/components/atoms/buttons/button.test.tsx
index 073b940..90fca02 100644
--- a/src/components/atoms/buttons/button.test.tsx
+++ b/src/components/atoms/buttons/button.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Button from './button';
describe('Button', () => {
diff --git a/src/components/atoms/buttons/buttons.module.scss b/src/components/atoms/buttons/buttons.module.scss
index b702544..a46f55c 100644
--- a/src/components/atoms/buttons/buttons.module.scss
+++ b/src/components/atoms/buttons/buttons.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.btn {
display: inline-flex;
diff --git a/src/components/atoms/forms/boolean-field.module.scss b/src/components/atoms/forms/boolean-field.module.scss
index 3f0676e..f299ddd 100644
--- a/src/components/atoms/forms/boolean-field.module.scss
+++ b/src/components/atoms/forms/boolean-field.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/mixins" as mix;
.hidden {
@include mix.visually-hidden;
diff --git a/src/components/atoms/forms/boolean-field.test.tsx b/src/components/atoms/forms/boolean-field.test.tsx
index fe314fb..b6fa625 100644
--- a/src/components/atoms/forms/boolean-field.test.tsx
+++ b/src/components/atoms/forms/boolean-field.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import BooleanField from './boolean-field';
describe('BooleanField', () => {
diff --git a/src/components/atoms/forms/field.test.tsx b/src/components/atoms/forms/field.test.tsx
index 0cc8a60..26ad764 100644
--- a/src/components/atoms/forms/field.test.tsx
+++ b/src/components/atoms/forms/field.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Field from './field';
describe('Field', () => {
diff --git a/src/components/atoms/forms/form.test.tsx b/src/components/atoms/forms/form.test.tsx
index 2171fde..3a055ed 100644
--- a/src/components/atoms/forms/form.test.tsx
+++ b/src/components/atoms/forms/form.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Form from './form';
describe('Form', () => {
diff --git a/src/components/atoms/forms/forms.module.scss b/src/components/atoms/forms/forms.module.scss
index 19c7aee..ece26e5 100644
--- a/src/components/atoms/forms/forms.module.scss
+++ b/src/components/atoms/forms/forms.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.item {
margin: var(--spacing-xs) 0;
diff --git a/src/components/atoms/forms/label.test.tsx b/src/components/atoms/forms/label.test.tsx
index 9968946..761d3b4 100644
--- a/src/components/atoms/forms/label.test.tsx
+++ b/src/components/atoms/forms/label.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Label from './label';
describe('Label', () => {
diff --git a/src/components/atoms/forms/select.test.tsx b/src/components/atoms/forms/select.test.tsx
index 542449c..ca9f6d3 100644
--- a/src/components/atoms/forms/select.test.tsx
+++ b/src/components/atoms/forms/select.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Select from './select';
const selectOptions = [
diff --git a/src/components/atoms/headings/heading.module.scss b/src/components/atoms/headings/heading.module.scss
index a420bc1..1c898e6 100644
--- a/src/components/atoms/headings/heading.module.scss
+++ b/src/components/atoms/headings/heading.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.heading {
color: var(--color-primary-dark);
diff --git a/src/components/atoms/headings/heading.test.tsx b/src/components/atoms/headings/heading.test.tsx
index 50cd843..e1eef77 100644
--- a/src/components/atoms/headings/heading.test.tsx
+++ b/src/components/atoms/headings/heading.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Heading from './heading';
describe('Heading', () => {
diff --git a/src/components/atoms/icons/arrow.module.scss b/src/components/atoms/icons/arrow.module.scss
index 76e6aea..6ee3364 100644
--- a/src/components/atoms/icons/arrow.module.scss
+++ b/src/components/atoms/icons/arrow.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
fill: var(--color-primary);
diff --git a/src/components/atoms/icons/arrow.test.tsx b/src/components/atoms/icons/arrow.test.tsx
index 60a1679..9985717 100644
--- a/src/components/atoms/icons/arrow.test.tsx
+++ b/src/components/atoms/icons/arrow.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Arrow from './arrow';
describe('Arrow', () => {
diff --git a/src/components/atoms/icons/career.module.scss b/src/components/atoms/icons/career.module.scss
index c5d65eb..0731526 100644
--- a/src/components/atoms/icons/career.module.scss
+++ b/src/components/atoms/icons/career.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/career.test.tsx b/src/components/atoms/icons/career.test.tsx
index 3eb9bc8..0c47262 100644
--- a/src/components/atoms/icons/career.test.tsx
+++ b/src/components/atoms/icons/career.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Career from './career';
describe('Career', () => {
diff --git a/src/components/atoms/icons/cc-by-sa.module.scss b/src/components/atoms/icons/cc-by-sa.module.scss
index e1b2100..14935b6 100644
--- a/src/components/atoms/icons/cc-by-sa.module.scss
+++ b/src/components/atoms/icons/cc-by-sa.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/cc-by-sa.test.tsx b/src/components/atoms/icons/cc-by-sa.test.tsx
index cb05492..2bcb437 100644
--- a/src/components/atoms/icons/cc-by-sa.test.tsx
+++ b/src/components/atoms/icons/cc-by-sa.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import CCBySA from './cc-by-sa';
describe('CCBySA', () => {
diff --git a/src/components/atoms/icons/close.module.scss b/src/components/atoms/icons/close.module.scss
index 4a5d18d..a90391a 100644
--- a/src/components/atoms/icons/close.module.scss
+++ b/src/components/atoms/icons/close.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/close.test.tsx b/src/components/atoms/icons/close.test.tsx
index 658af9a..dc82a2d 100644
--- a/src/components/atoms/icons/close.test.tsx
+++ b/src/components/atoms/icons/close.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Close from './close';
describe('Close', () => {
diff --git a/src/components/atoms/icons/cog.module.scss b/src/components/atoms/icons/cog.module.scss
index 5201598..feda6ce 100644
--- a/src/components/atoms/icons/cog.module.scss
+++ b/src/components/atoms/icons/cog.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
width: var(--icon-size, #{fun.convert-px(40)});
diff --git a/src/components/atoms/icons/cog.test.tsx b/src/components/atoms/icons/cog.test.tsx
index 1ce7f28..9d201b1 100644
--- a/src/components/atoms/icons/cog.test.tsx
+++ b/src/components/atoms/icons/cog.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Cog from './cog';
describe('Cog', () => {
diff --git a/src/components/atoms/icons/computer-screen.module.scss b/src/components/atoms/icons/computer-screen.module.scss
index 6c8f701..fcc4002 100644
--- a/src/components/atoms/icons/computer-screen.module.scss
+++ b/src/components/atoms/icons/computer-screen.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/computer-screen.test.tsx b/src/components/atoms/icons/computer-screen.test.tsx
index 0fb73c4..baa2c78 100644
--- a/src/components/atoms/icons/computer-screen.test.tsx
+++ b/src/components/atoms/icons/computer-screen.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import ComputerScreen from './computer-screen';
describe('ComputerScreen', () => {
diff --git a/src/components/atoms/icons/envelop.module.scss b/src/components/atoms/icons/envelop.module.scss
index 202900b..584fe97 100644
--- a/src/components/atoms/icons/envelop.module.scss
+++ b/src/components/atoms/icons/envelop.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/envelop.test.tsx b/src/components/atoms/icons/envelop.test.tsx
index b25a977..c040134 100644
--- a/src/components/atoms/icons/envelop.test.tsx
+++ b/src/components/atoms/icons/envelop.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Envelop from './envelop';
describe('Envelop', () => {
diff --git a/src/components/atoms/icons/feed.module.scss b/src/components/atoms/icons/feed.module.scss
index 56a5253..bf15c23 100644
--- a/src/components/atoms/icons/feed.module.scss
+++ b/src/components/atoms/icons/feed.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/feed.test.tsx b/src/components/atoms/icons/feed.test.tsx
index fa24106..630089d 100644
--- a/src/components/atoms/icons/feed.test.tsx
+++ b/src/components/atoms/icons/feed.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Feed from './feed';
describe('Feed', () => {
diff --git a/src/components/atoms/icons/hamburger.module.scss b/src/components/atoms/icons/hamburger.module.scss
index 4fba4df..c92b3ab 100644
--- a/src/components/atoms/icons/hamburger.module.scss
+++ b/src/components/atoms/icons/hamburger.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
display: flex;
diff --git a/src/components/atoms/icons/hamburger.test.tsx b/src/components/atoms/icons/hamburger.test.tsx
index 5ce6733..4f6a457 100644
--- a/src/components/atoms/icons/hamburger.test.tsx
+++ b/src/components/atoms/icons/hamburger.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Hamburger from './hamburger';
describe('Hamburger', () => {
diff --git a/src/components/atoms/icons/home.module.scss b/src/components/atoms/icons/home.module.scss
index 48dcc6c..8ed05a0 100644
--- a/src/components/atoms/icons/home.module.scss
+++ b/src/components/atoms/icons/home.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/home.test.tsx b/src/components/atoms/icons/home.test.tsx
index 3688501..0473d0b 100644
--- a/src/components/atoms/icons/home.test.tsx
+++ b/src/components/atoms/icons/home.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Home from './home';
describe('Home', () => {
diff --git a/src/components/atoms/icons/magnifying-glass.module.scss b/src/components/atoms/icons/magnifying-glass.module.scss
index d14bec5..33a82d6 100644
--- a/src/components/atoms/icons/magnifying-glass.module.scss
+++ b/src/components/atoms/icons/magnifying-glass.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
width: var(--icon-size, #{fun.convert-px(40)});
diff --git a/src/components/atoms/icons/magnifying-glass.test.tsx b/src/components/atoms/icons/magnifying-glass.test.tsx
index 2c031f3..c6ddb18 100644
--- a/src/components/atoms/icons/magnifying-glass.test.tsx
+++ b/src/components/atoms/icons/magnifying-glass.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import MagnifyingGlass from './magnifying-glass';
describe('MagnifyingGlass', () => {
diff --git a/src/components/atoms/icons/moon.module.scss b/src/components/atoms/icons/moon.module.scss
index e0b53d6..f2564a9 100644
--- a/src/components/atoms/icons/moon.module.scss
+++ b/src/components/atoms/icons/moon.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
fill: var(--color-primary-lighter);
diff --git a/src/components/atoms/icons/moon.test.tsx b/src/components/atoms/icons/moon.test.tsx
index 18581e9..09415a9 100644
--- a/src/components/atoms/icons/moon.test.tsx
+++ b/src/components/atoms/icons/moon.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Moon from './moon';
describe('Moon', () => {
diff --git a/src/components/atoms/icons/plus-minus.module.scss b/src/components/atoms/icons/plus-minus.module.scss
index c54db33..b46b5ba 100644
--- a/src/components/atoms/icons/plus-minus.module.scss
+++ b/src/components/atoms/icons/plus-minus.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: flex;
diff --git a/src/components/atoms/icons/plus-minus.test.tsx b/src/components/atoms/icons/plus-minus.test.tsx
index 895a565..5105403 100644
--- a/src/components/atoms/icons/plus-minus.test.tsx
+++ b/src/components/atoms/icons/plus-minus.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import PlusMinus from './plus-minus';
describe('PlusMinus', () => {
diff --git a/src/components/atoms/icons/posts-stack.module.scss b/src/components/atoms/icons/posts-stack.module.scss
index a22d265..aa1f4f0 100644
--- a/src/components/atoms/icons/posts-stack.module.scss
+++ b/src/components/atoms/icons/posts-stack.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
display: block;
diff --git a/src/components/atoms/icons/posts-stack.test.tsx b/src/components/atoms/icons/posts-stack.test.tsx
index 89064c7..65e0d3b 100644
--- a/src/components/atoms/icons/posts-stack.test.tsx
+++ b/src/components/atoms/icons/posts-stack.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import PostsStack from './posts-stack';
describe('PostsStack', () => {
diff --git a/src/components/atoms/icons/sun.module.scss b/src/components/atoms/icons/sun.module.scss
index 5682aa3..8d9683f 100644
--- a/src/components/atoms/icons/sun.module.scss
+++ b/src/components/atoms/icons/sun.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.sun {
fill: var(--color-primary-lighter);
diff --git a/src/components/atoms/icons/sun.test.tsx b/src/components/atoms/icons/sun.test.tsx
index fe01f4f..af52a5f 100644
--- a/src/components/atoms/icons/sun.test.tsx
+++ b/src/components/atoms/icons/sun.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Sun from './sun';
describe('Sun', () => {
diff --git a/src/components/atoms/images/logo.module.scss b/src/components/atoms/images/logo.module.scss
index f802a4b..bd4ee90 100644
--- a/src/components/atoms/images/logo.module.scss
+++ b/src/components/atoms/images/logo.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
width: var(--logo-size, fun.convert-px(100));
diff --git a/src/components/atoms/images/logo.test.tsx b/src/components/atoms/images/logo.test.tsx
index aabfd17..e56a737 100644
--- a/src/components/atoms/images/logo.test.tsx
+++ b/src/components/atoms/images/logo.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Logo from './logo';
describe('Logo', () => {
diff --git a/src/components/atoms/layout/column.test.tsx b/src/components/atoms/layout/column.test.tsx
index 95508b3..c722082 100644
--- a/src/components/atoms/layout/column.test.tsx
+++ b/src/components/atoms/layout/column.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Column from './column';
const body =
diff --git a/src/components/atoms/layout/copyright.module.scss b/src/components/atoms/layout/copyright.module.scss
index a0e5347..5d5435c 100644
--- a/src/components/atoms/layout/copyright.module.scss
+++ b/src/components/atoms/layout/copyright.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
--icon-size: #{fun.convert-px(70)};
diff --git a/src/components/atoms/layout/copyright.stories.tsx b/src/components/atoms/layout/copyright.stories.tsx
index 612b114..25d54b0 100644
--- a/src/components/atoms/layout/copyright.stories.tsx
+++ b/src/components/atoms/layout/copyright.stories.tsx
@@ -1,5 +1,5 @@
-import CCBySA from '@components/atoms/icons/cc-by-sa';
import { ComponentMeta, ComponentStory } from '@storybook/react';
+import CCBySA from '../icons/cc-by-sa';
import CopyrightComponent from './copyright';
/**
diff --git a/src/components/atoms/layout/copyright.test.tsx b/src/components/atoms/layout/copyright.test.tsx
index 09392b6..c3eef67 100644
--- a/src/components/atoms/layout/copyright.test.tsx
+++ b/src/components/atoms/layout/copyright.test.tsx
@@ -1,5 +1,5 @@
-import CCBySA from '@components/atoms/icons/cc-by-sa';
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
+import CCBySA from '../icons/cc-by-sa';
import Copyright from './copyright';
const dates = {
diff --git a/src/components/atoms/layout/main.test.tsx b/src/components/atoms/layout/main.test.tsx
index 392fbd5..d9b9e57 100644
--- a/src/components/atoms/layout/main.test.tsx
+++ b/src/components/atoms/layout/main.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Main from './main';
const id = 'main';
diff --git a/src/components/atoms/layout/no-script.module.scss b/src/components/atoms/layout/no-script.module.scss
index d8712af..b64edb9 100644
--- a/src/components/atoms/layout/no-script.module.scss
+++ b/src/components/atoms/layout/no-script.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.noscript {
color: var(--color-primary-darker);
diff --git a/src/components/atoms/layout/no-script.test.tsx b/src/components/atoms/layout/no-script.test.tsx
index 1b9e96f..4c62879 100644
--- a/src/components/atoms/layout/no-script.test.tsx
+++ b/src/components/atoms/layout/no-script.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import NoScript from './no-script';
const message = 'A noscript message.';
diff --git a/src/components/atoms/layout/notice.module.scss b/src/components/atoms/layout/notice.module.scss
index 7fd972c..b532464 100644
--- a/src/components/atoms/layout/notice.module.scss
+++ b/src/components/atoms/layout/notice.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
padding: var(--spacing-2xs) var(--spacing-xs);
diff --git a/src/components/atoms/layout/notice.test.tsx b/src/components/atoms/layout/notice.test.tsx
index 8408d17..56b5f85 100644
--- a/src/components/atoms/layout/notice.test.tsx
+++ b/src/components/atoms/layout/notice.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Notice from './notice';
const message = 'Tenetur consequuntur tempore.';
diff --git a/src/components/atoms/layout/section.module.scss b/src/components/atoms/layout/section.module.scss
index 012493a..8a33848 100644
--- a/src/components/atoms/layout/section.module.scss
+++ b/src/components/atoms/layout/section.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
@extend %grid;
diff --git a/src/components/atoms/layout/section.test.tsx b/src/components/atoms/layout/section.test.tsx
index 2143b70..e31dc32 100644
--- a/src/components/atoms/layout/section.test.tsx
+++ b/src/components/atoms/layout/section.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Section from './section';
const title = 'Section title';
diff --git a/src/components/atoms/layout/sidebar.module.scss b/src/components/atoms/layout/sidebar.module.scss
index 5d36f18..31adb6f 100644
--- a/src/components/atoms/layout/sidebar.module.scss
+++ b/src/components/atoms/layout/sidebar.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
> *:not(:first-child) {
diff --git a/src/components/atoms/layout/sidebar.test.tsx b/src/components/atoms/layout/sidebar.test.tsx
index 6fdb24a..c23c551 100644
--- a/src/components/atoms/layout/sidebar.test.tsx
+++ b/src/components/atoms/layout/sidebar.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Sidebar from './sidebar';
const children = 'A widget';
diff --git a/src/components/atoms/links/link.module.scss b/src/components/atoms/links/link.module.scss
index bb5775f..4980a1c 100644
--- a/src/components/atoms/links/link.module.scss
+++ b/src/components/atoms/links/link.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/variables" as var;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/variables" as var;
/* stylelint-disable no-descending-specificity */
.link {
diff --git a/src/components/atoms/links/link.test.tsx b/src/components/atoms/links/link.test.tsx
index 16d52d2..ef74821 100644
--- a/src/components/atoms/links/link.test.tsx
+++ b/src/components/atoms/links/link.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Link from './link';
describe('Link', () => {
diff --git a/src/components/atoms/links/nav-link.module.scss b/src/components/atoms/links/nav-link.module.scss
index 241c9c3..acabcab 100644
--- a/src/components/atoms/links/nav-link.module.scss
+++ b/src/components/atoms/links/nav-link.module.scss
@@ -1,6 +1,6 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.link {
--draw-border-thickness: #{fun.convert-px(4)};
diff --git a/src/components/atoms/links/nav-link.test.tsx b/src/components/atoms/links/nav-link.test.tsx
index b9a595a..a5f5b5f 100644
--- a/src/components/atoms/links/nav-link.test.tsx
+++ b/src/components/atoms/links/nav-link.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import NavLink from './nav-link';
describe('NavLink', () => {
diff --git a/src/components/atoms/links/sharing-link.module.scss b/src/components/atoms/links/sharing-link.module.scss
index 26ca737..089fd13 100644
--- a/src/components/atoms/links/sharing-link.module.scss
+++ b/src/components/atoms/links/sharing-link.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.link {
display: inline-flex;
diff --git a/src/components/atoms/links/sharing-link.test.tsx b/src/components/atoms/links/sharing-link.test.tsx
index 7989d04..0a8b87c 100644
--- a/src/components/atoms/links/sharing-link.test.tsx
+++ b/src/components/atoms/links/sharing-link.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import SharingLink from './sharing-link';
describe('SharingLink', () => {
diff --git a/src/components/atoms/links/social-link.module.scss b/src/components/atoms/links/social-link.module.scss
index 02fc61c..57dcf42 100644
--- a/src/components/atoms/links/social-link.module.scss
+++ b/src/components/atoms/links/social-link.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.link {
display: flex;
diff --git a/src/components/atoms/links/social-link.test.tsx b/src/components/atoms/links/social-link.test.tsx
index b3f9a4c..b55dbcc 100644
--- a/src/components/atoms/links/social-link.test.tsx
+++ b/src/components/atoms/links/social-link.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import SocialLink from './social-link';
/**
diff --git a/src/components/atoms/links/social-link.tsx b/src/components/atoms/links/social-link.tsx
index 464bc60..d0719a3 100644
--- a/src/components/atoms/links/social-link.tsx
+++ b/src/components/atoms/links/social-link.tsx
@@ -1,8 +1,8 @@
-import GithubIcon from '@assets/images/social-media/github.svg';
-import GitlabIcon from '@assets/images/social-media/gitlab.svg';
-import LinkedInIcon from '@assets/images/social-media/linkedin.svg';
-import TwitterIcon from '@assets/images/social-media/twitter.svg';
import { FC } from 'react';
+import GithubIcon from '../../../assets/images/social-media/github.svg';
+import GitlabIcon from '../../../assets/images/social-media/gitlab.svg';
+import LinkedInIcon from '../../../assets/images/social-media/linkedin.svg';
+import TwitterIcon from '../../../assets/images/social-media/twitter.svg';
import styles from './social-link.module.scss';
export type SocialWebsite = 'Github' | 'Gitlab' | 'LinkedIn' | 'Twitter';
diff --git a/src/components/atoms/lists/description-list-item.test.tsx b/src/components/atoms/lists/description-list-item.test.tsx
index a505158..07632a6 100644
--- a/src/components/atoms/lists/description-list-item.test.tsx
+++ b/src/components/atoms/lists/description-list-item.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import DescriptionListItem from './description-list-item';
const itemLabel = 'Repellendus corporis facilis';
diff --git a/src/components/atoms/lists/description-list.module.scss b/src/components/atoms/lists/description-list.module.scss
index 9e913d4..d31c88a 100644
--- a/src/components/atoms/lists/description-list.module.scss
+++ b/src/components/atoms/lists/description-list.module.scss
@@ -1,5 +1,3 @@
-@use "@styles/abstracts/mixins" as mix;
-
.list {
display: flex;
column-gap: var(--spacing-md);
diff --git a/src/components/atoms/lists/description-list.test.tsx b/src/components/atoms/lists/description-list.test.tsx
index 22421b0..11b4965 100644
--- a/src/components/atoms/lists/description-list.test.tsx
+++ b/src/components/atoms/lists/description-list.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import DescriptionList, { DescriptionListItem } from './description-list';
const items: DescriptionListItem[] = [
diff --git a/src/components/atoms/lists/list.module.scss b/src/components/atoms/lists/list.module.scss
index 95f9b40..cbb391e 100644
--- a/src/components/atoms/lists/list.module.scss
+++ b/src/components/atoms/lists/list.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/placeholders";
.list {
margin: 0;
diff --git a/src/components/atoms/lists/list.test.tsx b/src/components/atoms/lists/list.test.tsx
index 7cf9585..fbe56a4 100644
--- a/src/components/atoms/lists/list.test.tsx
+++ b/src/components/atoms/lists/list.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import List, { type ListItem } from './list';
const items: ListItem[] = [
diff --git a/src/components/atoms/loaders/progress-bar.module.scss b/src/components/atoms/loaders/progress-bar.module.scss
index 878010a..ed64ceb 100644
--- a/src/components/atoms/loaders/progress-bar.module.scss
+++ b/src/components/atoms/loaders/progress-bar.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.progress {
margin: var(--spacing-sm) auto var(--spacing-md);
diff --git a/src/components/atoms/loaders/progress-bar.test.tsx b/src/components/atoms/loaders/progress-bar.test.tsx
index bb28f41..0310aec 100644
--- a/src/components/atoms/loaders/progress-bar.test.tsx
+++ b/src/components/atoms/loaders/progress-bar.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import ProgressBar from './progress-bar';
import { current, id, label, max, min } from './progress-bar.fixture';
diff --git a/src/components/atoms/loaders/spinner.module.scss b/src/components/atoms/loaders/spinner.module.scss
index 8d818a2..3e05cb3 100644
--- a/src/components/atoms/loaders/spinner.module.scss
+++ b/src/components/atoms/loaders/spinner.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
display: flex;
diff --git a/src/components/atoms/loaders/spinner.test.tsx b/src/components/atoms/loaders/spinner.test.tsx
index bfb0894..0bcc189 100644
--- a/src/components/atoms/loaders/spinner.test.tsx
+++ b/src/components/atoms/loaders/spinner.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Spinner from './spinner';
describe('Spinner', () => {
diff --git a/src/components/molecules/buttons/back-to-top.module.scss b/src/components/molecules/buttons/back-to-top.module.scss
index 77ee97b..f5b3acd 100644
--- a/src/components/molecules/buttons/back-to-top.module.scss
+++ b/src/components/molecules/buttons/back-to-top.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
.link {
diff --git a/src/components/molecules/buttons/back-to-top.test.tsx b/src/components/molecules/buttons/back-to-top.test.tsx
index 827c2a8..c03ccb2 100644
--- a/src/components/molecules/buttons/back-to-top.test.tsx
+++ b/src/components/molecules/buttons/back-to-top.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import BackToTop from './back-to-top';
describe('BackToTop', () => {
diff --git a/src/components/molecules/buttons/back-to-top.tsx b/src/components/molecules/buttons/back-to-top.tsx
index ad5c674..f422444 100644
--- a/src/components/molecules/buttons/back-to-top.tsx
+++ b/src/components/molecules/buttons/back-to-top.tsx
@@ -1,9 +1,9 @@
-import ButtonLink, {
- type ButtonLinkProps,
-} from '@components/atoms/buttons/button-link';
-import Arrow from '@components/atoms/icons/arrow';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import ButtonLink, {
+ type ButtonLinkProps,
+} from '../../atoms/buttons/button-link';
+import Arrow from '../../atoms/icons/arrow';
import styles from './back-to-top.module.scss';
export type BackToTopProps = Pick<ButtonLinkProps, 'target'> & {
diff --git a/src/components/molecules/buttons/heading-button.module.scss b/src/components/molecules/buttons/heading-button.module.scss
index 3c69221..689f1e6 100644
--- a/src/components/molecules/buttons/heading-button.module.scss
+++ b/src/components/molecules/buttons/heading-button.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.icon {
transition: all 0.25s ease-in-out 0s;
diff --git a/src/components/molecules/buttons/heading-button.stories.tsx b/src/components/molecules/buttons/heading-button.stories.tsx
index 59f7be9..d1b5ed4 100644
--- a/src/components/molecules/buttons/heading-button.stories.tsx
+++ b/src/components/molecules/buttons/heading-button.stories.tsx
@@ -1,4 +1,3 @@
-import headingStories from '@components/atoms/headings/heading.stories';
import { ComponentMeta, ComponentStory } from '@storybook/react';
import { useState } from 'react';
import HeadingButtonComponent from './heading-button';
diff --git a/src/components/molecules/buttons/heading-button.test.tsx b/src/components/molecules/buttons/heading-button.test.tsx
index d8da748..5dcc4cc 100644
--- a/src/components/molecules/buttons/heading-button.test.tsx
+++ b/src/components/molecules/buttons/heading-button.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import HeadingButton from './heading-button';
describe('HeadingButton', () => {
diff --git a/src/components/molecules/buttons/heading-button.tsx b/src/components/molecules/buttons/heading-button.tsx
index 0ed9a76..cefd179 100644
--- a/src/components/molecules/buttons/heading-button.tsx
+++ b/src/components/molecules/buttons/heading-button.tsx
@@ -1,7 +1,7 @@
-import Heading, { type HeadingProps } from '@components/atoms/headings/heading';
-import PlusMinus from '@components/atoms/icons/plus-minus';
import { FC, SetStateAction } from 'react';
import { useIntl } from 'react-intl';
+import Heading, { type HeadingProps } from '../../atoms/headings/heading';
+import PlusMinus from '../../atoms/icons/plus-minus';
import styles from './heading-button.module.scss';
export type HeadingButtonProps = Pick<HeadingProps, 'level'> & {
diff --git a/src/components/molecules/buttons/help-button.module.scss b/src/components/molecules/buttons/help-button.module.scss
index 42d49f6..fb28b57 100644
--- a/src/components/molecules/buttons/help-button.module.scss
+++ b/src/components/molecules/buttons/help-button.module.scss
@@ -1,5 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/mixins" as mix;
.btn {
padding: var(--spacing-xs);
diff --git a/src/components/molecules/buttons/help-button.test.tsx b/src/components/molecules/buttons/help-button.test.tsx
index 0f8770e..67472f1 100644
--- a/src/components/molecules/buttons/help-button.test.tsx
+++ b/src/components/molecules/buttons/help-button.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import HelpButton from './help-button';
describe('Help', () => {
diff --git a/src/components/molecules/buttons/help-button.tsx b/src/components/molecules/buttons/help-button.tsx
index ec89f4e..6178317 100644
--- a/src/components/molecules/buttons/help-button.tsx
+++ b/src/components/molecules/buttons/help-button.tsx
@@ -1,6 +1,6 @@
-import Button, { type ButtonProps } from '@components/atoms/buttons/button';
import { forwardRef, ForwardRefRenderFunction } from 'react';
import { useIntl } from 'react-intl';
+import Button, { type ButtonProps } from '../../atoms/buttons/button';
import styles from './help-button.module.scss';
export type HelpButtonProps = Pick<
diff --git a/src/components/molecules/forms/ackee-toggle.test.tsx b/src/components/molecules/forms/ackee-toggle.test.tsx
index 5bcd018..a4d36b3 100644
--- a/src/components/molecules/forms/ackee-toggle.test.tsx
+++ b/src/components/molecules/forms/ackee-toggle.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import AckeeToggle from './ackee-toggle';
import { storageKey } from './ackee-toggle.fixture';
diff --git a/src/components/molecules/forms/ackee-toggle.tsx b/src/components/molecules/forms/ackee-toggle.tsx
index 67a3644..ba77c10 100644
--- a/src/components/molecules/forms/ackee-toggle.tsx
+++ b/src/components/molecules/forms/ackee-toggle.tsx
@@ -1,9 +1,9 @@
-import useLocalStorage from '@utils/hooks/use-local-storage';
-import useUpdateAckeeOptions, {
- type AckeeOptions,
-} from '@utils/hooks/use-update-ackee-options';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import useLocalStorage from '../../../utils/hooks/use-local-storage';
+import useUpdateAckeeOptions, {
+ type AckeeOptions,
+} from '../../../utils/hooks/use-update-ackee-options';
import RadioGroup, {
type RadioGroupCallback,
type RadioGroupCallbackProps,
diff --git a/src/components/molecules/forms/fieldset.test.tsx b/src/components/molecules/forms/fieldset.test.tsx
index cfddc9e..aec7a51 100644
--- a/src/components/molecules/forms/fieldset.test.tsx
+++ b/src/components/molecules/forms/fieldset.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Fieldset from './fieldset';
import { body, legend, Tooltip } from './fieldset.fixture';
diff --git a/src/components/molecules/forms/fieldset.tsx b/src/components/molecules/forms/fieldset.tsx
index 961ec6d..4cbf71d 100644
--- a/src/components/molecules/forms/fieldset.tsx
+++ b/src/components/molecules/forms/fieldset.tsx
@@ -1,4 +1,3 @@
-import useOnClickOutside from '@utils/hooks/use-on-click-outside';
import {
cloneElement,
FC,
@@ -7,6 +6,7 @@ import {
useRef,
useState,
} from 'react';
+import useOnClickOutside from '../../../utils/hooks/use-on-click-outside';
import HelpButton from '../buttons/help-button';
import Tooltip from '../modals/tooltip';
import styles from './fieldset.module.scss';
diff --git a/src/components/molecules/forms/flipping-label.module.scss b/src/components/molecules/forms/flipping-label.module.scss
index e650ebe..b0452fe 100644
--- a/src/components/molecules/forms/flipping-label.module.scss
+++ b/src/components/molecules/forms/flipping-label.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.label {
display: block;
diff --git a/src/components/molecules/forms/flipping-label.stories.tsx b/src/components/molecules/forms/flipping-label.stories.tsx
index b8d17ec..9391fd2 100644
--- a/src/components/molecules/forms/flipping-label.stories.tsx
+++ b/src/components/molecules/forms/flipping-label.stories.tsx
@@ -1,6 +1,6 @@
-import MagnifyingGlass from '@components/atoms/icons/magnifying-glass';
import { ComponentMeta, ComponentStory } from '@storybook/react';
import { useState } from 'react';
+import MagnifyingGlass from '../../atoms/icons/magnifying-glass';
import FlippingLabel from './flipping-label';
export default {
diff --git a/src/components/molecules/forms/flipping-label.test.tsx b/src/components/molecules/forms/flipping-label.test.tsx
index a1aab97..61864fd 100644
--- a/src/components/molecules/forms/flipping-label.test.tsx
+++ b/src/components/molecules/forms/flipping-label.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import FlippingLabel from './flipping-label';
describe('FlippingLabel', () => {
diff --git a/src/components/molecules/forms/flipping-label.tsx b/src/components/molecules/forms/flipping-label.tsx
index 12f8d8d..ca83c6d 100644
--- a/src/components/molecules/forms/flipping-label.tsx
+++ b/src/components/molecules/forms/flipping-label.tsx
@@ -1,6 +1,6 @@
-import Label, { LabelProps } from '@components/atoms/forms/label';
-import Close from '@components/atoms/icons/close';
import { FC } from 'react';
+import Label, { LabelProps } from '../../atoms/forms/label';
+import Close from '../../atoms/icons/close';
import styles from './flipping-label.module.scss';
export type FlippingLabelProps = Pick<
diff --git a/src/components/molecules/forms/labelled-boolean-field.test.tsx b/src/components/molecules/forms/labelled-boolean-field.test.tsx
index 7e01853..4e7728c 100644
--- a/src/components/molecules/forms/labelled-boolean-field.test.tsx
+++ b/src/components/molecules/forms/labelled-boolean-field.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import LabelledBooleanField from './labelled-boolean-field';
import { label } from './labelled-boolean-field.fixture';
diff --git a/src/components/molecules/forms/labelled-boolean-field.tsx b/src/components/molecules/forms/labelled-boolean-field.tsx
index 46eb080..661e549 100644
--- a/src/components/molecules/forms/labelled-boolean-field.tsx
+++ b/src/components/molecules/forms/labelled-boolean-field.tsx
@@ -1,8 +1,8 @@
+import { FC } from 'react';
import BooleanField, {
type BooleanFieldProps,
-} from '@components/atoms/forms/boolean-field';
-import Label, { type LabelProps } from '@components/atoms/forms/label';
-import { FC } from 'react';
+} from '../../atoms/forms/boolean-field';
+import Label, { type LabelProps } from '../../atoms/forms/label';
import styles from './labelled-boolean-field.module.scss';
export type LabelledBooleanFieldProps = Omit<
diff --git a/src/components/molecules/forms/labelled-field.test.tsx b/src/components/molecules/forms/labelled-field.test.tsx
index 030ec7c..97681dc 100644
--- a/src/components/molecules/forms/labelled-field.test.tsx
+++ b/src/components/molecules/forms/labelled-field.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import LabelledField from './labelled-field';
describe('LabelledField', () => {
diff --git a/src/components/molecules/forms/labelled-field.tsx b/src/components/molecules/forms/labelled-field.tsx
index 6a00a3e..63c91fe 100644
--- a/src/components/molecules/forms/labelled-field.tsx
+++ b/src/components/molecules/forms/labelled-field.tsx
@@ -1,6 +1,6 @@
-import Field, { type FieldProps } from '@components/atoms/forms/field';
-import Label from '@components/atoms/forms/label';
import { forwardRef, ForwardRefRenderFunction } from 'react';
+import Field, { type FieldProps } from '../../atoms/forms/field';
+import Label from '../../atoms/forms/label';
import styles from './labelled-field.module.scss';
export type LabelledFieldProps = FieldProps & {
diff --git a/src/components/molecules/forms/labelled-select.test.tsx b/src/components/molecules/forms/labelled-select.test.tsx
index 1346e7c..3823117 100644
--- a/src/components/molecules/forms/labelled-select.test.tsx
+++ b/src/components/molecules/forms/labelled-select.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import LabelledSelect from './labelled-select';
const selectOptions = [
diff --git a/src/components/molecules/forms/labelled-select.tsx b/src/components/molecules/forms/labelled-select.tsx
index 23057d0..a12956c 100644
--- a/src/components/molecules/forms/labelled-select.tsx
+++ b/src/components/molecules/forms/labelled-select.tsx
@@ -1,6 +1,6 @@
-import Label, { type LabelProps } from '@components/atoms/forms/label';
-import Select, { type SelectProps } from '@components/atoms/forms/select';
import { FC } from 'react';
+import Label, { type LabelProps } from '../../atoms/forms/label';
+import Select, { type SelectProps } from '../../atoms/forms/select';
import styles from './labelled-select.module.scss';
export type LabelledSelectProps = Omit<
diff --git a/src/components/molecules/forms/motion-toggle.test.tsx b/src/components/molecules/forms/motion-toggle.test.tsx
index 8b66758..f6cf3ac 100644
--- a/src/components/molecules/forms/motion-toggle.test.tsx
+++ b/src/components/molecules/forms/motion-toggle.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import MotionToggle from './motion-toggle';
import { storageKey } from './motion-toggle.fixture';
diff --git a/src/components/molecules/forms/motion-toggle.tsx b/src/components/molecules/forms/motion-toggle.tsx
index ad47b33..7e150ca 100644
--- a/src/components/molecules/forms/motion-toggle.tsx
+++ b/src/components/molecules/forms/motion-toggle.tsx
@@ -1,7 +1,7 @@
-import useAttributes from '@utils/hooks/use-attributes';
-import useLocalStorage from '@utils/hooks/use-local-storage';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import useAttributes from '../../../utils/hooks/use-attributes';
+import useLocalStorage from '../../../utils/hooks/use-local-storage';
import RadioGroup, {
type RadioGroupCallback,
type RadioGroupCallbackProps,
diff --git a/src/components/molecules/forms/prism-theme-toggle.test.tsx b/src/components/molecules/forms/prism-theme-toggle.test.tsx
index 1fc537b..a488720 100644
--- a/src/components/molecules/forms/prism-theme-toggle.test.tsx
+++ b/src/components/molecules/forms/prism-theme-toggle.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import PrismThemeToggle from './prism-theme-toggle';
describe('PrismThemeToggle', () => {
diff --git a/src/components/molecules/forms/prism-theme-toggle.tsx b/src/components/molecules/forms/prism-theme-toggle.tsx
index 5a4d8a9..b058230 100644
--- a/src/components/molecules/forms/prism-theme-toggle.tsx
+++ b/src/components/molecules/forms/prism-theme-toggle.tsx
@@ -1,8 +1,11 @@
-import Moon from '@components/atoms/icons/moon';
-import Sun from '@components/atoms/icons/sun';
-import { type PrismTheme, usePrismTheme } from '@utils/providers/prism-theme';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import {
+ type PrismTheme,
+ usePrismTheme,
+} from '../../../utils/providers/prism-theme';
+import Moon from '../../atoms/icons/moon';
+import Sun from '../../atoms/icons/sun';
import RadioGroup, {
type RadioGroupCallback,
type RadioGroupCallbackProps,
diff --git a/src/components/molecules/forms/radio-group.module.scss b/src/components/molecules/forms/radio-group.module.scss
index f363d1b..cadff46 100644
--- a/src/components/molecules/forms/radio-group.module.scss
+++ b/src/components/molecules/forms/radio-group.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
&--inline {
diff --git a/src/components/molecules/forms/radio-group.test.tsx b/src/components/molecules/forms/radio-group.test.tsx
index fda505b..9fb4249 100644
--- a/src/components/molecules/forms/radio-group.test.tsx
+++ b/src/components/molecules/forms/radio-group.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import RadioGroup from './radio-group';
import { getOptions, initialChoice, legend } from './radio-group.fixture';
diff --git a/src/components/molecules/forms/radio-group.tsx b/src/components/molecules/forms/radio-group.tsx
index 3930908..7f47673 100644
--- a/src/components/molecules/forms/radio-group.tsx
+++ b/src/components/molecules/forms/radio-group.tsx
@@ -1,8 +1,6 @@
-import Fieldset, {
- type FieldsetProps,
-} from '@components/molecules/forms/fieldset';
-import useStateChange from '@utils/hooks/use-state-change';
import { ChangeEvent, FC, MouseEvent, SetStateAction } from 'react';
+import useStateChange from '../../../utils/hooks/use-state-change';
+import Fieldset, { type FieldsetProps } from '../forms/fieldset';
import LabelledBooleanField, {
type LabelledBooleanFieldProps,
} from './labelled-boolean-field';
diff --git a/src/components/molecules/forms/theme-toggle.test.tsx b/src/components/molecules/forms/theme-toggle.test.tsx
index 7c056b8..d379423 100644
--- a/src/components/molecules/forms/theme-toggle.test.tsx
+++ b/src/components/molecules/forms/theme-toggle.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import ThemeToggle from './theme-toggle';
describe('ThemeToggle', () => {
diff --git a/src/components/molecules/forms/theme-toggle.tsx b/src/components/molecules/forms/theme-toggle.tsx
index 6a676a9..e0a6683 100644
--- a/src/components/molecules/forms/theme-toggle.tsx
+++ b/src/components/molecules/forms/theme-toggle.tsx
@@ -1,8 +1,8 @@
-import Moon from '@components/atoms/icons/moon';
-import Sun from '@components/atoms/icons/sun';
import { useTheme } from 'next-themes';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import Moon from '../../atoms/icons/moon';
+import Sun from '../../atoms/icons/sun';
import RadioGroup, {
type RadioGroupCallback,
type RadioGroupCallbackProps,
diff --git a/src/components/molecules/images/flipping-logo.module.scss b/src/components/molecules/images/flipping-logo.module.scss
index 89b9499..b3b7c96 100644
--- a/src/components/molecules/images/flipping-logo.module.scss
+++ b/src/components/molecules/images/flipping-logo.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.logo {
width: var(--logo-size, fun.convert-px(100));
diff --git a/src/components/molecules/images/flipping-logo.test.tsx b/src/components/molecules/images/flipping-logo.test.tsx
index 4be69d1..c3ee492 100644
--- a/src/components/molecules/images/flipping-logo.test.tsx
+++ b/src/components/molecules/images/flipping-logo.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import FlippingLogo from './flipping-logo';
describe('FlippingLogo', () => {
diff --git a/src/components/molecules/images/flipping-logo.tsx b/src/components/molecules/images/flipping-logo.tsx
index 0d59a55..a739b30 100644
--- a/src/components/molecules/images/flipping-logo.tsx
+++ b/src/components/molecules/images/flipping-logo.tsx
@@ -1,6 +1,6 @@
-import Logo, { type LogoProps } from '@components/atoms/images/logo';
import Image, { type ImageProps } from 'next/image';
import { ForwardedRef, forwardRef, ForwardRefRenderFunction } from 'react';
+import Logo, { type LogoProps } from '../../atoms/images/logo';
import styles from './flipping-logo.module.scss';
export type FlippingLogoProps = {
diff --git a/src/components/molecules/images/responsive-image.module.scss b/src/components/molecules/images/responsive-image.module.scss
index 7f5fafd..e4ed4aa 100644
--- a/src/components/molecules/images/responsive-image.module.scss
+++ b/src/components/molecules/images/responsive-image.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.caption {
margin: 0;
diff --git a/src/components/molecules/images/responsive-image.test.tsx b/src/components/molecules/images/responsive-image.test.tsx
index 9dafbc2..68e810b 100644
--- a/src/components/molecules/images/responsive-image.test.tsx
+++ b/src/components/molecules/images/responsive-image.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import ResponsiveImage from './responsive-image';
describe('ResponsiveImage', () => {
diff --git a/src/components/molecules/images/responsive-image.tsx b/src/components/molecules/images/responsive-image.tsx
index 79e7db4..1160027 100644
--- a/src/components/molecules/images/responsive-image.tsx
+++ b/src/components/molecules/images/responsive-image.tsx
@@ -1,6 +1,6 @@
-import Link, { type LinkProps } from '@components/atoms/links/link';
import Image, { type ImageProps } from 'next/image';
import { FC, ReactNode } from 'react';
+import Link, { type LinkProps } from '../../atoms/links/link';
import styles from './responsive-image.module.scss';
export type ResponsiveImageProps = Omit<
diff --git a/src/components/molecules/layout/branding.module.scss b/src/components/molecules/layout/branding.module.scss
index 6121fa1..4d9e32c 100644
--- a/src/components/molecules/layout/branding.module.scss
+++ b/src/components/molecules/layout/branding.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
@mixin typing-animation {
--typing-animation: none;
diff --git a/src/components/molecules/layout/branding.test.tsx b/src/components/molecules/layout/branding.test.tsx
index f04b963..b3dfaa9 100644
--- a/src/components/molecules/layout/branding.test.tsx
+++ b/src/components/molecules/layout/branding.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Branding from './branding';
describe('Branding', () => {
diff --git a/src/components/molecules/layout/branding.tsx b/src/components/molecules/layout/branding.tsx
index b351f12..10574ab 100644
--- a/src/components/molecules/layout/branding.tsx
+++ b/src/components/molecules/layout/branding.tsx
@@ -1,8 +1,8 @@
-import Heading from '@components/atoms/headings/heading';
-import useStyles from '@utils/hooks/use-styles';
import Link from 'next/link';
import { FC, useRef } from 'react';
import { useIntl } from 'react-intl';
+import useStyles from '../../../utils/hooks/use-styles';
+import Heading from '../../atoms/headings/heading';
import FlippingLogo, { type FlippingLogoProps } from '../images/flipping-logo';
import styles from './branding.module.scss';
diff --git a/src/components/molecules/layout/card.module.scss b/src/components/molecules/layout/card.module.scss
index 42e9192..8f9f4a5 100644
--- a/src/components/molecules/layout/card.module.scss
+++ b/src/components/molecules/layout/card.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
--scale-up: 1.05;
diff --git a/src/components/molecules/layout/card.test.tsx b/src/components/molecules/layout/card.test.tsx
index 1023aeb..825ad41 100644
--- a/src/components/molecules/layout/card.test.tsx
+++ b/src/components/molecules/layout/card.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Card from './card';
import { cover, id, meta, tagline, title, url } from './card.fixture';
diff --git a/src/components/molecules/layout/card.tsx b/src/components/molecules/layout/card.tsx
index d03b8b7..50431d8 100644
--- a/src/components/molecules/layout/card.tsx
+++ b/src/components/molecules/layout/card.tsx
@@ -1,7 +1,7 @@
-import ButtonLink from '@components/atoms/buttons/button-link';
-import Heading, { type HeadingLevel } from '@components/atoms/headings/heading';
-import { type Image } from '@ts/types/app';
import { FC } from 'react';
+import { type Image } from '../../../types/app';
+import ButtonLink from '../../atoms/buttons/button-link';
+import Heading, { type HeadingLevel } from '../../atoms/headings/heading';
import ResponsiveImage from '../images/responsive-image';
import styles from './card.module.scss';
import Meta, { type MetaData } from './meta';
diff --git a/src/components/molecules/layout/code.module.scss b/src/components/molecules/layout/code.module.scss
index 1feeccc..2eaf9a2 100644
--- a/src/components/molecules/layout/code.module.scss
+++ b/src/components/molecules/layout/code.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
:global {
diff --git a/src/components/molecules/layout/code.test.tsx b/src/components/molecules/layout/code.test.tsx
index e270aac..b825fec 100644
--- a/src/components/molecules/layout/code.test.tsx
+++ b/src/components/molecules/layout/code.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import Code from './code';
const code = `
diff --git a/src/components/molecules/layout/code.tsx b/src/components/molecules/layout/code.tsx
index 7e249d1..4eb9be3 100644
--- a/src/components/molecules/layout/code.tsx
+++ b/src/components/molecules/layout/code.tsx
@@ -1,8 +1,8 @@
+import { FC, useRef } from 'react';
import usePrism, {
type OptionalPrismPlugin,
type PrismLanguage,
-} from '@utils/hooks/use-prism';
-import { FC, useRef } from 'react';
+} from '../../../utils/hooks/use-prism';
import styles from './code.module.scss';
export type CodeProps = {
diff --git a/src/components/molecules/layout/columns.module.scss b/src/components/molecules/layout/columns.module.scss
index b449c45..0d383e7 100644
--- a/src/components/molecules/layout/columns.module.scss
+++ b/src/components/molecules/layout/columns.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
display: grid;
diff --git a/src/components/molecules/layout/columns.stories.tsx b/src/components/molecules/layout/columns.stories.tsx
index 2022fa4..7105bb9 100644
--- a/src/components/molecules/layout/columns.stories.tsx
+++ b/src/components/molecules/layout/columns.stories.tsx
@@ -1,5 +1,5 @@
-import Column from '@components/atoms/layout/column';
import { ComponentMeta, ComponentStory } from '@storybook/react';
+import Column from '../../atoms/layout/column';
import Columns from './columns';
export default {
diff --git a/src/components/molecules/layout/columns.test.tsx b/src/components/molecules/layout/columns.test.tsx
index 9e994ae..5a23d0d 100644
--- a/src/components/molecules/layout/columns.test.tsx
+++ b/src/components/molecules/layout/columns.test.tsx
@@ -1,5 +1,5 @@
-import Column from '@components/atoms/layout/column';
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
+import Column from '../../atoms/layout/column';
import Columns from './columns';
const column1 =
diff --git a/src/components/molecules/layout/columns.tsx b/src/components/molecules/layout/columns.tsx
index c196457..ec62b18 100644
--- a/src/components/molecules/layout/columns.tsx
+++ b/src/components/molecules/layout/columns.tsx
@@ -1,5 +1,5 @@
-import Column from '@components/atoms/layout/column';
import { FC, ReactComponentElement } from 'react';
+import Column from '../../atoms/layout/column';
import styles from './columns.module.scss';
export type ColumnsProps = {
diff --git a/src/components/molecules/layout/meta.module.scss b/src/components/molecules/layout/meta.module.scss
index 4194a6e..f572b65 100644
--- a/src/components/molecules/layout/meta.module.scss
+++ b/src/components/molecules/layout/meta.module.scss
@@ -1,5 +1,3 @@
-@use "@styles/abstracts/mixins" as mix;
-
.value {
word-break: break-all;
}
diff --git a/src/components/molecules/layout/meta.stories.tsx b/src/components/molecules/layout/meta.stories.tsx
index c33680f..3a204c0 100644
--- a/src/components/molecules/layout/meta.stories.tsx
+++ b/src/components/molecules/layout/meta.stories.tsx
@@ -1,6 +1,6 @@
-import descriptionListItemStories from '@components/atoms/lists/description-list-item.stories';
-import descriptionListStories from '@components/atoms/lists/description-list.stories';
import { ComponentMeta, ComponentStory } from '@storybook/react';
+import descriptionListItemStories from '../../atoms/lists/description-list-item.stories';
+import descriptionListStories from '../../atoms/lists/description-list.stories';
import MetaComponent, { MetaData } from './meta';
/**
diff --git a/src/components/molecules/layout/meta.test.tsx b/src/components/molecules/layout/meta.test.tsx
index e01a0a1..e9deb23 100644
--- a/src/components/molecules/layout/meta.test.tsx
+++ b/src/components/molecules/layout/meta.test.tsx
@@ -1,5 +1,5 @@
-import { render, screen } from '@tests/utils';
-import { getFormattedDate } from '@utils/helpers/dates';
+import { render, screen } from '../../../../tests/utils';
+import { getFormattedDate } from '../../../utils/helpers/dates';
import Meta from './meta';
const data = {
diff --git a/src/components/molecules/layout/meta.tsx b/src/components/molecules/layout/meta.tsx
index 74bd4ff..48c0748 100644
--- a/src/components/molecules/layout/meta.tsx
+++ b/src/components/molecules/layout/meta.tsx
@@ -1,11 +1,14 @@
-import Link from '@components/atoms/links/link';
+import { FC, ReactNode } from 'react';
+import { useIntl } from 'react-intl';
+import {
+ getFormattedDate,
+ getFormattedTime,
+} from '../../../utils/helpers/dates';
+import Link from '../../atoms/links/link';
import DescriptionList, {
type DescriptionListProps,
type DescriptionListItem,
-} from '@components/atoms/lists/description-list';
-import { getFormattedDate, getFormattedTime } from '@utils/helpers/dates';
-import { FC, ReactNode } from 'react';
-import { useIntl } from 'react-intl';
+} from '../../atoms/lists/description-list';
export type CustomMeta = {
label: string;
diff --git a/src/components/molecules/layout/page-footer.test.tsx b/src/components/molecules/layout/page-footer.test.tsx
index f61cf20..baf13b2 100644
--- a/src/components/molecules/layout/page-footer.test.tsx
+++ b/src/components/molecules/layout/page-footer.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import PageFooter from './page-footer';
describe('PageFooter', () => {
diff --git a/src/components/molecules/layout/page-header.module.scss b/src/components/molecules/layout/page-header.module.scss
index 232023a..1a90fe5 100644
--- a/src/components/molecules/layout/page-header.module.scss
+++ b/src/components/molecules/layout/page-header.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
@extend %grid;
diff --git a/src/components/molecules/layout/page-header.test.tsx b/src/components/molecules/layout/page-header.test.tsx
index 8e97669..9c737c7 100644
--- a/src/components/molecules/layout/page-header.test.tsx
+++ b/src/components/molecules/layout/page-header.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import PageHeader from './page-header';
const title = 'Non nemo amet';
diff --git a/src/components/molecules/layout/page-header.tsx b/src/components/molecules/layout/page-header.tsx
index 6759c7f..78d875e 100644
--- a/src/components/molecules/layout/page-header.tsx
+++ b/src/components/molecules/layout/page-header.tsx
@@ -1,5 +1,5 @@
-import Heading from '@components/atoms/headings/heading';
import { FC, ReactNode } from 'react';
+import Heading from '../../atoms/headings/heading';
import Meta, { type MetaData } from './meta';
import styles from './page-header.module.scss';
diff --git a/src/components/molecules/layout/widget.module.scss b/src/components/molecules/layout/widget.module.scss
index 27d7ffd..1a601e5 100644
--- a/src/components/molecules/layout/widget.module.scss
+++ b/src/components/molecules/layout/widget.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.widget {
display: flex;
diff --git a/src/components/molecules/layout/widget.test.tsx b/src/components/molecules/layout/widget.test.tsx
index 5b6af57..47282a0 100644
--- a/src/components/molecules/layout/widget.test.tsx
+++ b/src/components/molecules/layout/widget.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Widget from './widget';
const children = 'Widget body';
diff --git a/src/components/molecules/modals/modal.module.scss b/src/components/molecules/modals/modal.module.scss
index f57d33c..22ddb11 100644
--- a/src/components/molecules/modals/modal.module.scss
+++ b/src/components/molecules/modals/modal.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
padding: var(--spacing-md);
diff --git a/src/components/molecules/modals/modal.test.tsx b/src/components/molecules/modals/modal.test.tsx
index a913d42..9297662 100644
--- a/src/components/molecules/modals/modal.test.tsx
+++ b/src/components/molecules/modals/modal.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Modal from './modal';
const title = 'A custom title';
diff --git a/src/components/molecules/modals/modal.tsx b/src/components/molecules/modals/modal.tsx
index 58f5fa0..76dab55 100644
--- a/src/components/molecules/modals/modal.tsx
+++ b/src/components/molecules/modals/modal.tsx
@@ -1,8 +1,8 @@
-import Heading, { type HeadingProps } from '@components/atoms/headings/heading';
-import { type CogProps } from '@components/atoms/icons/cog';
-import { type MagnifyingGlassProps } from '@components/atoms/icons/magnifying-glass';
import dynamic from 'next/dynamic';
import { FC, ReactNode } from 'react';
+import Heading, { type HeadingProps } from '../../atoms/headings/heading';
+import { type CogProps } from '../../atoms/icons/cog';
+import { type MagnifyingGlassProps } from '../../atoms/icons/magnifying-glass';
import styles from './modal.module.scss';
export type Icons = 'cogs' | 'search';
@@ -30,11 +30,11 @@ export type ModalProps = {
title?: string;
};
-const CogIcon = dynamic<CogProps>(() => import('@components/atoms/icons/cog'), {
+const CogIcon = dynamic<CogProps>(() => import('../../atoms/icons/cog'), {
ssr: false,
});
const SearchIcon = dynamic<MagnifyingGlassProps>(
- () => import('@components/atoms/icons/magnifying-glass'),
+ () => import('../../atoms/icons/magnifying-glass'),
{ ssr: false }
);
diff --git a/src/components/molecules/modals/tooltip.module.scss b/src/components/molecules/modals/tooltip.module.scss
index 94aa3dd..0a177e5 100644
--- a/src/components/molecules/modals/tooltip.module.scss
+++ b/src/components/molecules/modals/tooltip.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.wrapper {
--title-height: #{fun.convert-px(40)};
diff --git a/src/components/molecules/modals/tooltip.test.tsx b/src/components/molecules/modals/tooltip.test.tsx
index 0af7299..6bca281 100644
--- a/src/components/molecules/modals/tooltip.test.tsx
+++ b/src/components/molecules/modals/tooltip.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Tooltip from './tooltip';
import { content, icon, title } from './tooltip.fixture';
diff --git a/src/components/molecules/modals/tooltip.tsx b/src/components/molecules/modals/tooltip.tsx
index 9801393..9beab86 100644
--- a/src/components/molecules/modals/tooltip.tsx
+++ b/src/components/molecules/modals/tooltip.tsx
@@ -1,5 +1,5 @@
-import List, { type ListItem } from '@components/atoms/lists/list';
import { forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';
+import List, { type ListItem } from '../../atoms/lists/list';
import styles from './tooltip.module.scss';
export type TooltipProps = {
diff --git a/src/components/molecules/nav/breadcrumb.module.scss b/src/components/molecules/nav/breadcrumb.module.scss
index c26f60a..c72e349 100644
--- a/src/components/molecules/nav/breadcrumb.module.scss
+++ b/src/components/molecules/nav/breadcrumb.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/placeholders";
.list {
@extend %reset-ordered-list;
diff --git a/src/components/molecules/nav/breadcrumb.test.tsx b/src/components/molecules/nav/breadcrumb.test.tsx
index 68638ef..f3a23b5 100644
--- a/src/components/molecules/nav/breadcrumb.test.tsx
+++ b/src/components/molecules/nav/breadcrumb.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Breadcrumb, { type BreadcrumbItem } from './breadcrumb';
const items: BreadcrumbItem[] = [
diff --git a/src/components/molecules/nav/breadcrumb.tsx b/src/components/molecules/nav/breadcrumb.tsx
index d184d65..bc50f55 100644
--- a/src/components/molecules/nav/breadcrumb.tsx
+++ b/src/components/molecules/nav/breadcrumb.tsx
@@ -1,9 +1,9 @@
-import Link from '@components/atoms/links/link';
-import { settings } from '@utils/config';
import Script from 'next/script';
import { FC } from 'react';
import { useIntl } from 'react-intl';
import { BreadcrumbList, ListItem, WithContext } from 'schema-dts';
+import { settings } from '../../../utils/config';
+import Link from '../../atoms/links/link';
import styles from './breadcrumb.module.scss';
export type BreadcrumbItem = {
diff --git a/src/components/molecules/nav/nav.module.scss b/src/components/molecules/nav/nav.module.scss
index 9c0f6de..a6d43bc 100644
--- a/src/components/molecules/nav/nav.module.scss
+++ b/src/components/molecules/nav/nav.module.scss
@@ -1,5 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/placeholders";
.nav {
&__list {
diff --git a/src/components/molecules/nav/nav.stories.tsx b/src/components/molecules/nav/nav.stories.tsx
index f3a29a6..abf6882 100644
--- a/src/components/molecules/nav/nav.stories.tsx
+++ b/src/components/molecules/nav/nav.stories.tsx
@@ -1,6 +1,6 @@
-import Envelop from '@components/atoms/icons/envelop';
-import Home from '@components/atoms/icons/home';
import { ComponentMeta, ComponentStory } from '@storybook/react';
+import Envelop from '../../atoms/icons/envelop';
+import Home from '../../atoms/icons/home';
import NavComponent, { type NavItem } from './nav';
/**
diff --git a/src/components/molecules/nav/nav.test.tsx b/src/components/molecules/nav/nav.test.tsx
index cf63ace..b0920c8 100644
--- a/src/components/molecules/nav/nav.test.tsx
+++ b/src/components/molecules/nav/nav.test.tsx
@@ -1,6 +1,6 @@
-import Envelop from '@components/atoms/icons/envelop';
-import Home from '@components/atoms/icons/home';
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
+import Envelop from '../../atoms/icons/envelop';
+import Home from '../../atoms/icons/home';
import Nav, { type NavItem } from './nav';
const navItems: NavItem[] = [
diff --git a/src/components/molecules/nav/nav.tsx b/src/components/molecules/nav/nav.tsx
index 581f813..71d459a 100644
--- a/src/components/molecules/nav/nav.tsx
+++ b/src/components/molecules/nav/nav.tsx
@@ -1,6 +1,6 @@
-import Link from '@components/atoms/links/link';
-import NavLink from '@components/atoms/links/nav-link';
import { FC, ReactNode } from 'react';
+import Link from '../../atoms/links/link';
+import NavLink from '../../atoms/links/nav-link';
import styles from './nav.module.scss';
export type NavItem = {
diff --git a/src/components/molecules/nav/pagination.module.scss b/src/components/molecules/nav/pagination.module.scss
index 56c5bfc..4ffad5a 100644
--- a/src/components/molecules/nav/pagination.module.scss
+++ b/src/components/molecules/nav/pagination.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
.list {
diff --git a/src/components/molecules/nav/pagination.test.tsx b/src/components/molecules/nav/pagination.test.tsx
index f7ebffd..bf0e6c1 100644
--- a/src/components/molecules/nav/pagination.test.tsx
+++ b/src/components/molecules/nav/pagination.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Pagination from './pagination';
const total = 50;
diff --git a/src/components/molecules/nav/pagination.tsx b/src/components/molecules/nav/pagination.tsx
index 604720e..e832e1d 100644
--- a/src/components/molecules/nav/pagination.tsx
+++ b/src/components/molecules/nav/pagination.tsx
@@ -1,6 +1,6 @@
-import ButtonLink from '@components/atoms/buttons/button-link';
import { FC, Fragment, ReactNode } from 'react';
import { useIntl } from 'react-intl';
+import ButtonLink from '../../atoms/buttons/button-link';
import styles from './pagination.module.scss';
export type PaginationProps = {
diff --git a/src/components/organisms/forms/comment-form.test.tsx b/src/components/organisms/forms/comment-form.test.tsx
index cac9df7..10119ce 100644
--- a/src/components/organisms/forms/comment-form.test.tsx
+++ b/src/components/organisms/forms/comment-form.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import CommentForm from './comment-form';
const saveComment = async () => {
diff --git a/src/components/organisms/forms/comment-form.tsx b/src/components/organisms/forms/comment-form.tsx
index b2c725f..a823977 100644
--- a/src/components/organisms/forms/comment-form.tsx
+++ b/src/components/organisms/forms/comment-form.tsx
@@ -1,13 +1,13 @@
-import Button from '@components/atoms/buttons/button';
-import Form, { type FormProps } from '@components/atoms/forms/form';
+import { FC, ReactNode, useState } from 'react';
+import { useIntl } from 'react-intl';
+import Button from '../../atoms/buttons/button';
+import Form, { type FormProps } from '../../atoms/forms/form';
import Heading, {
type HeadingProps,
type HeadingLevel,
-} from '@components/atoms/headings/heading';
-import Spinner from '@components/atoms/loaders/spinner';
-import LabelledField from '@components/molecules/forms/labelled-field';
-import { FC, ReactNode, useState } from 'react';
-import { useIntl } from 'react-intl';
+} from '../../atoms/headings/heading';
+import Spinner from '../../atoms/loaders/spinner';
+import LabelledField from '../../molecules/forms/labelled-field';
import styles from './comment-form.module.scss';
export type CommentFormData = {
diff --git a/src/components/organisms/forms/contact-form.test.tsx b/src/components/organisms/forms/contact-form.test.tsx
index 521179a..def4346 100644
--- a/src/components/organisms/forms/contact-form.test.tsx
+++ b/src/components/organisms/forms/contact-form.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import ContactForm from './contact-form';
const props = {
diff --git a/src/components/organisms/forms/contact-form.tsx b/src/components/organisms/forms/contact-form.tsx
index 912402c..b8dcb5e 100644
--- a/src/components/organisms/forms/contact-form.tsx
+++ b/src/components/organisms/forms/contact-form.tsx
@@ -1,9 +1,9 @@
-import Button from '@components/atoms/buttons/button';
-import Form from '@components/atoms/forms/form';
-import Spinner from '@components/atoms/loaders/spinner';
-import LabelledField from '@components/molecules/forms/labelled-field';
import { FC, ReactNode, useState } from 'react';
import { useIntl } from 'react-intl';
+import Button from '../../atoms/buttons/button';
+import Form from '../../atoms/forms/form';
+import Spinner from '../../atoms/loaders/spinner';
+import LabelledField from '../../molecules/forms/labelled-field';
import styles from './contact-form.module.scss';
export type ContactFormData = {
diff --git a/src/components/organisms/forms/search-form.module.scss b/src/components/organisms/forms/search-form.module.scss
index 1d388a4..773a79f 100644
--- a/src/components/organisms/forms/search-form.module.scss
+++ b/src/components/organisms/forms/search-form.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
display: flex;
diff --git a/src/components/organisms/forms/search-form.test.tsx b/src/components/organisms/forms/search-form.test.tsx
index e35c46f..0f79caf 100644
--- a/src/components/organisms/forms/search-form.test.tsx
+++ b/src/components/organisms/forms/search-form.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import SearchForm from './search-form';
describe('SearchForm', () => {
diff --git a/src/components/organisms/forms/search-form.tsx b/src/components/organisms/forms/search-form.tsx
index 1b5f662..a3cb6e4 100644
--- a/src/components/organisms/forms/search-form.tsx
+++ b/src/components/organisms/forms/search-form.tsx
@@ -1,12 +1,12 @@
-import Button from '@components/atoms/buttons/button';
-import Form from '@components/atoms/forms/form';
-import MagnifyingGlass from '@components/atoms/icons/magnifying-glass';
-import LabelledField, {
- type LabelledFieldProps,
-} from '@components/molecules/forms/labelled-field';
import { useRouter } from 'next/router';
import { forwardRef, ForwardRefRenderFunction, useId, useState } from 'react';
import { useIntl } from 'react-intl';
+import Button from '../../atoms/buttons/button';
+import Form from '../../atoms/forms/form';
+import MagnifyingGlass from '../../atoms/icons/magnifying-glass';
+import LabelledField, {
+ type LabelledFieldProps,
+} from '../../molecules/forms/labelled-field';
import styles from './search-form.module.scss';
export type SearchFormProps = Pick<LabelledFieldProps, 'hideLabel'> & {
diff --git a/src/components/organisms/images/gallery.module.scss b/src/components/organisms/images/gallery.module.scss
index a057ed9..f4faa63 100644
--- a/src/components/organisms/images/gallery.module.scss
+++ b/src/components/organisms/images/gallery.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
@extend %reset-list;
diff --git a/src/components/organisms/images/gallery.stories.tsx b/src/components/organisms/images/gallery.stories.tsx
index 6fc278f..b1c308e 100644
--- a/src/components/organisms/images/gallery.stories.tsx
+++ b/src/components/organisms/images/gallery.stories.tsx
@@ -1,5 +1,5 @@
-import ResponsiveImage from '@components/molecules/images/responsive-image';
import { ComponentMeta, ComponentStory } from '@storybook/react';
+import ResponsiveImage from '../../molecules/images/responsive-image';
import Gallery from './gallery';
/**
diff --git a/src/components/organisms/images/gallery.test.tsx b/src/components/organisms/images/gallery.test.tsx
index 1db3733..611262e 100644
--- a/src/components/organisms/images/gallery.test.tsx
+++ b/src/components/organisms/images/gallery.test.tsx
@@ -1,5 +1,5 @@
-import ResponsiveImage from '@components/molecules/images/responsive-image';
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
+import ResponsiveImage from '../../molecules/images/responsive-image';
import Gallery from './gallery';
const columns = 3;
diff --git a/src/components/organisms/images/gallery.tsx b/src/components/organisms/images/gallery.tsx
index 6c4a271..8b73ce1 100644
--- a/src/components/organisms/images/gallery.tsx
+++ b/src/components/organisms/images/gallery.tsx
@@ -1,5 +1,5 @@
-import { type ResponsiveImageProps } from '@components/molecules/images/responsive-image';
import { Children, FC, ReactElement } from 'react';
+import { type ResponsiveImageProps } from '../../molecules/images/responsive-image';
import styles from './gallery.module.scss';
export type GalleryColumn = 2 | 3 | 4;
diff --git a/src/components/organisms/layout/cards-list.module.scss b/src/components/organisms/layout/cards-list.module.scss
index 6274b93..ff79f33 100644
--- a/src/components/organisms/layout/cards-list.module.scss
+++ b/src/components/organisms/layout/cards-list.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
display: grid;
diff --git a/src/components/organisms/layout/cards-list.test.tsx b/src/components/organisms/layout/cards-list.test.tsx
index f77ee83..6a0ff7c 100644
--- a/src/components/organisms/layout/cards-list.test.tsx
+++ b/src/components/organisms/layout/cards-list.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import CardsList, { type CardsListItem } from './cards-list';
const items: CardsListItem[] = [
diff --git a/src/components/organisms/layout/cards-list.tsx b/src/components/organisms/layout/cards-list.tsx
index f6cb6ed..12ec7d9 100644
--- a/src/components/organisms/layout/cards-list.tsx
+++ b/src/components/organisms/layout/cards-list.tsx
@@ -1,9 +1,6 @@
-import List, {
- type ListItem,
- type ListProps,
-} from '@components/atoms/lists/list';
-import Card, { type CardProps } from '@components/molecules/layout/card';
import { FC } from 'react';
+import List, { type ListItem, type ListProps } from '../../atoms/lists/list';
+import Card, { type CardProps } from '../../molecules/layout/card';
import styles from './cards-list.module.scss';
export type CardsListItem = Omit<CardProps, 'className' | 'titleLevel'> & {
diff --git a/src/components/organisms/layout/comment.fixture.tsx b/src/components/organisms/layout/comment.fixture.tsx
index 0118139..57a4389 100644
--- a/src/components/organisms/layout/comment.fixture.tsx
+++ b/src/components/organisms/layout/comment.fixture.tsx
@@ -1,4 +1,7 @@
-import { getFormattedDate, getFormattedTime } from '@utils/helpers/dates';
+import {
+ getFormattedDate,
+ getFormattedTime,
+} from '../../../utils/helpers/dates';
import { CommentProps } from './comment';
export const author = {
diff --git a/src/components/organisms/layout/comment.module.scss b/src/components/organisms/layout/comment.module.scss
index d2b68e1..f645354 100644
--- a/src/components/organisms/layout/comment.module.scss
+++ b/src/components/organisms/layout/comment.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
padding: var(--spacing-md);
diff --git a/src/components/organisms/layout/comment.test.tsx b/src/components/organisms/layout/comment.test.tsx
index 7290c6c..5ea8c6f 100644
--- a/src/components/organisms/layout/comment.test.tsx
+++ b/src/components/organisms/layout/comment.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Comment from './comment';
import {
author,
diff --git a/src/components/organisms/layout/comment.tsx b/src/components/organisms/layout/comment.tsx
index 3b58a79..23073ad 100644
--- a/src/components/organisms/layout/comment.tsx
+++ b/src/components/organisms/layout/comment.tsx
@@ -1,13 +1,13 @@
-import Button from '@components/atoms/buttons/button';
-import Link from '@components/atoms/links/link';
-import Meta from '@components/molecules/layout/meta';
-import { type SingleComment } from '@ts/types/app';
-import useSettings from '@utils/hooks/use-settings';
import Image from 'next/image';
import Script from 'next/script';
import { FC, useCallback, useState } from 'react';
import { useIntl } from 'react-intl';
import { type Comment as CommentSchema, type WithContext } from 'schema-dts';
+import { type SingleComment } from '../../../types/app';
+import useSettings from '../../../utils/hooks/use-settings';
+import Button from '../../atoms/buttons/button';
+import Link from '../../atoms/links/link';
+import Meta from '../../molecules/layout/meta';
import CommentForm, { type CommentFormProps } from '../forms/comment-form';
import styles from './comment.module.scss';
diff --git a/src/components/organisms/layout/comments-list.fixture.tsx b/src/components/organisms/layout/comments-list.fixture.tsx
index f2a1d26..5842129 100644
--- a/src/components/organisms/layout/comments-list.fixture.tsx
+++ b/src/components/organisms/layout/comments-list.fixture.tsx
@@ -1,4 +1,4 @@
-import { SingleComment } from '@ts/types/app';
+import { SingleComment } from '../../../types/app';
export const comments: SingleComment[] = [
{
diff --git a/src/components/organisms/layout/comments-list.module.scss b/src/components/organisms/layout/comments-list.module.scss
index 803a418..f7a0cf0 100644
--- a/src/components/organisms/layout/comments-list.module.scss
+++ b/src/components/organisms/layout/comments-list.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/placeholders";
.list {
@extend %reset-ordered-list;
diff --git a/src/components/organisms/layout/comments-list.test.tsx b/src/components/organisms/layout/comments-list.test.tsx
index 72c7eb9..ef4b4af 100644
--- a/src/components/organisms/layout/comments-list.test.tsx
+++ b/src/components/organisms/layout/comments-list.test.tsx
@@ -1,4 +1,4 @@
-import { render } from '@tests/utils';
+import { render } from '../../../../tests/utils';
import { saveComment } from './comment.fixture';
import CommentsList from './comments-list';
import { comments } from './comments-list.fixture';
diff --git a/src/components/organisms/layout/comments-list.tsx b/src/components/organisms/layout/comments-list.tsx
index deb0776..227f715 100644
--- a/src/components/organisms/layout/comments-list.tsx
+++ b/src/components/organisms/layout/comments-list.tsx
@@ -1,8 +1,6 @@
-import Comment, {
- type CommentProps,
-} from '@components/organisms/layout/comment';
-import { SingleComment } from '@ts/types/app';
import { FC } from 'react';
+import { SingleComment } from '../../../types/app';
+import Comment, { type CommentProps } from '../../organisms/layout/comment';
import styles from './comments-list.module.scss';
export type CommentsListProps = Pick<CommentProps, 'Notice' | 'saveComment'> & {
diff --git a/src/components/organisms/layout/footer.module.scss b/src/components/organisms/layout/footer.module.scss
index c180e86..a8bcd61 100644
--- a/src/components/organisms/layout/footer.module.scss
+++ b/src/components/organisms/layout/footer.module.scss
@@ -1,5 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
display: flex;
diff --git a/src/components/organisms/layout/footer.test.tsx b/src/components/organisms/layout/footer.test.tsx
index 1d451c7..0ba1a57 100644
--- a/src/components/organisms/layout/footer.test.tsx
+++ b/src/components/organisms/layout/footer.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Footer, { type FooterProps } from './footer';
const copyright: FooterProps['copyright'] = {
diff --git a/src/components/organisms/layout/footer.tsx b/src/components/organisms/layout/footer.tsx
index c60afec..f67ad7d 100644
--- a/src/components/organisms/layout/footer.tsx
+++ b/src/components/organisms/layout/footer.tsx
@@ -1,12 +1,10 @@
-import Copyright, {
- type CopyrightProps,
-} from '@components/atoms/layout/copyright';
-import BackToTop, {
- type BackToTopProps,
-} from '@components/molecules/buttons/back-to-top';
-import Nav, { type NavItem } from '@components/molecules/nav/nav';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import Copyright, { type CopyrightProps } from '../../atoms/layout/copyright';
+import BackToTop, {
+ type BackToTopProps,
+} from '../../molecules/buttons/back-to-top';
+import Nav, { type NavItem } from '../../molecules/nav/nav';
import styles from './footer.module.scss';
export type FooterProps = {
diff --git a/src/components/organisms/layout/header.module.scss b/src/components/organisms/layout/header.module.scss
index a98cf45..573d455 100644
--- a/src/components/organisms/layout/header.module.scss
+++ b/src/components/organisms/layout/header.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
display: grid;
diff --git a/src/components/organisms/layout/header.test.tsx b/src/components/organisms/layout/header.test.tsx
index 1ef79e0..c7819c0 100644
--- a/src/components/organisms/layout/header.test.tsx
+++ b/src/components/organisms/layout/header.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Header from './header';
const nav = [
diff --git a/src/components/organisms/layout/header.tsx b/src/components/organisms/layout/header.tsx
index f6212c3..4e5e0f2 100644
--- a/src/components/organisms/layout/header.tsx
+++ b/src/components/organisms/layout/header.tsx
@@ -1,7 +1,5 @@
-import Branding, {
- type BrandingProps,
-} from '@components/molecules/layout/branding';
import { FC } from 'react';
+import Branding, { type BrandingProps } from '../../molecules/layout/branding';
import Toolbar, { type ToolbarProps } from '../toolbar/toolbar';
import styles from './header.module.scss';
diff --git a/src/components/organisms/layout/no-results.test.tsx b/src/components/organisms/layout/no-results.test.tsx
index 5576117..551b82f 100644
--- a/src/components/organisms/layout/no-results.test.tsx
+++ b/src/components/organisms/layout/no-results.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import NoResults from './no-results';
describe('NoResults', () => {
diff --git a/src/components/organisms/layout/no-results.tsx b/src/components/organisms/layout/no-results.tsx
index 2245dbf..1b563da 100644
--- a/src/components/organisms/layout/no-results.tsx
+++ b/src/components/organisms/layout/no-results.tsx
@@ -1,8 +1,8 @@
-import SearchForm, {
- type SearchFormProps,
-} from '@components/organisms/forms/search-form';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import SearchForm, {
+ type SearchFormProps,
+} from '../../organisms/forms/search-form';
export type NoResultsProps = Pick<SearchFormProps, 'searchPage'>;
diff --git a/src/components/organisms/layout/overview.module.scss b/src/components/organisms/layout/overview.module.scss
index 5620513..e4f6a6a 100644
--- a/src/components/organisms/layout/overview.module.scss
+++ b/src/components/organisms/layout/overview.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
padding: var(--spacing-sm) var(--spacing-md);
diff --git a/src/components/organisms/layout/overview.test.tsx b/src/components/organisms/layout/overview.test.tsx
index c096bad..72e4cc0 100644
--- a/src/components/organisms/layout/overview.test.tsx
+++ b/src/components/organisms/layout/overview.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Overview, { type OverviewMeta } from './overview';
const cover = {
diff --git a/src/components/organisms/layout/overview.tsx b/src/components/organisms/layout/overview.tsx
index 04ec79a..e539731 100644
--- a/src/components/organisms/layout/overview.tsx
+++ b/src/components/organisms/layout/overview.tsx
@@ -1,8 +1,8 @@
+import { FC } from 'react';
import ResponsiveImage, {
type ResponsiveImageProps,
-} from '@components/molecules/images/responsive-image';
-import Meta, { type MetaData } from '@components/molecules/layout/meta';
-import { FC } from 'react';
+} from '../../molecules/images/responsive-image';
+import Meta, { type MetaData } from '../../molecules/layout/meta';
import styles from './overview.module.scss';
export type OverviewMeta = Pick<
diff --git a/src/components/organisms/layout/posts-list.module.scss b/src/components/organisms/layout/posts-list.module.scss
index b09bb12..64ad33f 100644
--- a/src/components/organisms/layout/posts-list.module.scss
+++ b/src/components/organisms/layout/posts-list.module.scss
@@ -1,6 +1,6 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.section {
&:not(:last-of-type) {
diff --git a/src/components/organisms/layout/posts-list.test.tsx b/src/components/organisms/layout/posts-list.test.tsx
index 571c421..1d6bbcb 100644
--- a/src/components/organisms/layout/posts-list.test.tsx
+++ b/src/components/organisms/layout/posts-list.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import PostsList from './posts-list';
import { posts, searchPage } from './posts-list.fixture';
diff --git a/src/components/organisms/layout/posts-list.tsx b/src/components/organisms/layout/posts-list.tsx
index e3788c7..dede7b6 100644
--- a/src/components/organisms/layout/posts-list.tsx
+++ b/src/components/organisms/layout/posts-list.tsx
@@ -1,14 +1,14 @@
-import Button from '@components/atoms/buttons/button';
-import Heading, { type HeadingLevel } from '@components/atoms/headings/heading';
-import ProgressBar from '@components/atoms/loaders/progress-bar';
-import Spinner from '@components/atoms/loaders/spinner';
-import Pagination, {
- type PaginationProps,
-} from '@components/molecules/nav/pagination';
-import useIsMounted from '@utils/hooks/use-is-mounted';
-import useSettings from '@utils/hooks/use-settings';
import { FC, Fragment, useRef } from 'react';
import { useIntl } from 'react-intl';
+import useIsMounted from '../../../utils/hooks/use-is-mounted';
+import useSettings from '../../../utils/hooks/use-settings';
+import Button from '../../atoms/buttons/button';
+import Heading, { type HeadingLevel } from '../../atoms/headings/heading';
+import ProgressBar from '../../atoms/loaders/progress-bar';
+import Spinner from '../../atoms/loaders/spinner';
+import Pagination, {
+ type PaginationProps,
+} from '../../molecules/nav/pagination';
import NoResults, { NoResultsProps } from './no-results';
import styles from './posts-list.module.scss';
import Summary, { type SummaryProps } from './summary';
diff --git a/src/components/organisms/layout/summary.module.scss b/src/components/organisms/layout/summary.module.scss
index 62dfc0e..9530312 100644
--- a/src/components/organisms/layout/summary.module.scss
+++ b/src/components/organisms/layout/summary.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
display: grid;
diff --git a/src/components/organisms/layout/summary.test.tsx b/src/components/organisms/layout/summary.test.tsx
index bc69f3b..73f6df8 100644
--- a/src/components/organisms/layout/summary.test.tsx
+++ b/src/components/organisms/layout/summary.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Summary from './summary';
import { cover, intro, meta, title, url } from './summary.fixture';
diff --git a/src/components/organisms/layout/summary.tsx b/src/components/organisms/layout/summary.tsx
index 5d27862..f2031d5 100644
--- a/src/components/organisms/layout/summary.tsx
+++ b/src/components/organisms/layout/summary.tsx
@@ -1,15 +1,15 @@
-import ButtonLink from '@components/atoms/buttons/button-link';
-import Heading, { type HeadingLevel } from '@components/atoms/headings/heading';
-import Arrow from '@components/atoms/icons/arrow';
-import Link from '@components/atoms/links/link';
-import ResponsiveImage, {
- type ResponsiveImageProps,
-} from '@components/molecules/images/responsive-image';
-import Meta, { type MetaData } from '@components/molecules/layout/meta';
-import { type Article, type Meta as MetaType } from '@ts/types/app';
-import useReadingTime from '@utils/hooks/use-reading-time';
import { FC, ReactNode } from 'react';
import { useIntl } from 'react-intl';
+import { type Article, type Meta as MetaType } from '../../../types/app';
+import useReadingTime from '../../../utils/hooks/use-reading-time';
+import ButtonLink from '../../atoms/buttons/button-link';
+import Heading, { type HeadingLevel } from '../../atoms/headings/heading';
+import Arrow from '../../atoms/icons/arrow';
+import Link from '../../atoms/links/link';
+import ResponsiveImage, {
+ type ResponsiveImageProps,
+} from '../../molecules/images/responsive-image';
+import Meta, { type MetaData } from '../../molecules/layout/meta';
import styles from './summary.module.scss';
export type Cover = Pick<
diff --git a/src/components/organisms/modals/search-modal.module.scss b/src/components/organisms/modals/search-modal.module.scss
index aba0593..449aa91 100644
--- a/src/components/organisms/modals/search-modal.module.scss
+++ b/src/components/organisms/modals/search-modal.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/mixins" as mix;
.wrapper {
padding-bottom: var(--spacing-md);
diff --git a/src/components/organisms/modals/search-modal.test.tsx b/src/components/organisms/modals/search-modal.test.tsx
index 7043d54..397c36f 100644
--- a/src/components/organisms/modals/search-modal.test.tsx
+++ b/src/components/organisms/modals/search-modal.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import SearchModal from './search-modal';
describe('SearchModal', () => {
diff --git a/src/components/organisms/modals/search-modal.tsx b/src/components/organisms/modals/search-modal.tsx
index ed6084a..08b28cb 100644
--- a/src/components/organisms/modals/search-modal.tsx
+++ b/src/components/organisms/modals/search-modal.tsx
@@ -1,6 +1,6 @@
-import Modal, { type ModalProps } from '@components/molecules/modals/modal';
import { forwardRef, ForwardRefRenderFunction } from 'react';
import { useIntl } from 'react-intl';
+import Modal, { type ModalProps } from '../../molecules/modals/modal';
import SearchForm, { type SearchFormProps } from '../forms/search-form';
import styles from './search-modal.module.scss';
diff --git a/src/components/organisms/modals/settings-modal.module.scss b/src/components/organisms/modals/settings-modal.module.scss
index fef3492..e9b3b85 100644
--- a/src/components/organisms/modals/settings-modal.module.scss
+++ b/src/components/organisms/modals/settings-modal.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/variables" as var;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/variables" as var;
.wrapper {
width: 100%;
diff --git a/src/components/organisms/modals/settings-modal.stories.tsx b/src/components/organisms/modals/settings-modal.stories.tsx
index 649d68b..4f0b79b 100644
--- a/src/components/organisms/modals/settings-modal.stories.tsx
+++ b/src/components/organisms/modals/settings-modal.stories.tsx
@@ -1,6 +1,6 @@
-import { storageKey as ackeeStorageKey } from '@components/molecules/forms/ackee-toggle.fixture';
-import { storageKey as motionStorageKey } from '@components/molecules/forms/motion-toggle.fixture';
import { ComponentMeta, ComponentStory } from '@storybook/react';
+import { storageKey as ackeeStorageKey } from '../../molecules/forms/ackee-toggle.fixture';
+import { storageKey as motionStorageKey } from '../../molecules/forms/motion-toggle.fixture';
import SettingsModal from './settings-modal';
/**
diff --git a/src/components/organisms/modals/settings-modal.test.tsx b/src/components/organisms/modals/settings-modal.test.tsx
index 9277067..9e07175 100644
--- a/src/components/organisms/modals/settings-modal.test.tsx
+++ b/src/components/organisms/modals/settings-modal.test.tsx
@@ -1,6 +1,6 @@
-import { storageKey as ackeeStorageKey } from '@components/molecules/forms/ackee-toggle.fixture';
-import { storageKey as motionStorageKey } from '@components/molecules/forms/motion-toggle.fixture';
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
+import { storageKey as ackeeStorageKey } from '../../molecules/forms/ackee-toggle.fixture';
+import { storageKey as motionStorageKey } from '../../molecules/forms/motion-toggle.fixture';
import SettingsModal from './settings-modal';
describe('SettingsModal', () => {
diff --git a/src/components/organisms/modals/settings-modal.tsx b/src/components/organisms/modals/settings-modal.tsx
index d11dfe7..4e2b119 100644
--- a/src/components/organisms/modals/settings-modal.tsx
+++ b/src/components/organisms/modals/settings-modal.tsx
@@ -1,15 +1,15 @@
-import Form from '@components/atoms/forms/form';
+import { FC } from 'react';
+import { useIntl } from 'react-intl';
+import Form from '../../atoms/forms/form';
import AckeeToggle, {
AckeeToggleProps,
-} from '@components/molecules/forms/ackee-toggle';
+} from '../../molecules/forms/ackee-toggle';
import MotionToggle, {
MotionToggleProps,
-} from '@components/molecules/forms/motion-toggle';
-import PrismThemeToggle from '@components/molecules/forms/prism-theme-toggle';
-import ThemeToggle from '@components/molecules/forms/theme-toggle';
-import Modal, { type ModalProps } from '@components/molecules/modals/modal';
-import { FC } from 'react';
-import { useIntl } from 'react-intl';
+} from '../../molecules/forms/motion-toggle';
+import PrismThemeToggle from '../../molecules/forms/prism-theme-toggle';
+import ThemeToggle from '../../molecules/forms/theme-toggle';
+import Modal, { type ModalProps } from '../../molecules/modals/modal';
import styles from './settings-modal.module.scss';
export type SettingsModalProps = Pick<ModalProps, 'className'> &
diff --git a/src/components/organisms/toolbar/main-nav.module.scss b/src/components/organisms/toolbar/main-nav.module.scss
index 24abc43..1b6b110 100644
--- a/src/components/organisms/toolbar/main-nav.module.scss
+++ b/src/components/organisms/toolbar/main-nav.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
.item {
@include mix.media("screen") {
diff --git a/src/components/organisms/toolbar/main-nav.test.tsx b/src/components/organisms/toolbar/main-nav.test.tsx
index 43b8666..47e7c38 100644
--- a/src/components/organisms/toolbar/main-nav.test.tsx
+++ b/src/components/organisms/toolbar/main-nav.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import MainNav from './main-nav';
const items = [
diff --git a/src/components/organisms/toolbar/main-nav.tsx b/src/components/organisms/toolbar/main-nav.tsx
index 5dd32f7..3a2fbf5 100644
--- a/src/components/organisms/toolbar/main-nav.tsx
+++ b/src/components/organisms/toolbar/main-nav.tsx
@@ -1,14 +1,11 @@
-import BooleanField, {
- type BooleanFieldProps,
-} from '@components/atoms/forms/boolean-field';
-import Label from '@components/atoms/forms/label';
-import Hamburger from '@components/atoms/icons/hamburger';
-import Nav, {
- type NavProps,
- type NavItem,
-} from '@components/molecules/nav/nav';
import { forwardRef, ForwardRefRenderFunction } from 'react';
import { useIntl } from 'react-intl';
+import BooleanField, {
+ type BooleanFieldProps,
+} from '../../atoms/forms/boolean-field';
+import Label from '../../atoms/forms/label';
+import Hamburger from '../../atoms/icons/hamburger';
+import Nav, { type NavProps, type NavItem } from '../../molecules/nav/nav';
import mainNavStyles from './main-nav.module.scss';
import sharedStyles from './toolbar-items.module.scss';
diff --git a/src/components/organisms/toolbar/search.test.tsx b/src/components/organisms/toolbar/search.test.tsx
index 23dbda9..bafb58d 100644
--- a/src/components/organisms/toolbar/search.test.tsx
+++ b/src/components/organisms/toolbar/search.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Search from './search';
describe('Search', () => {
diff --git a/src/components/organisms/toolbar/search.tsx b/src/components/organisms/toolbar/search.tsx
index 0ac82d9..90ee1b4 100644
--- a/src/components/organisms/toolbar/search.tsx
+++ b/src/components/organisms/toolbar/search.tsx
@@ -1,11 +1,11 @@
-import BooleanField, {
- type BooleanFieldProps,
-} from '@components/atoms/forms/boolean-field';
-import MagnifyingGlass from '@components/atoms/icons/magnifying-glass';
-import FlippingLabel from '@components/molecules/forms/flipping-label';
-import useInputAutofocus from '@utils/hooks/use-input-autofocus';
import { forwardRef, ForwardRefRenderFunction, useRef } from 'react';
import { useIntl } from 'react-intl';
+import useInputAutofocus from '../../../utils/hooks/use-input-autofocus';
+import BooleanField, {
+ type BooleanFieldProps,
+} from '../../atoms/forms/boolean-field';
+import MagnifyingGlass from '../../atoms/icons/magnifying-glass';
+import FlippingLabel from '../../molecules/forms/flipping-label';
import SearchModal, { type SearchModalProps } from '../modals/search-modal';
import searchStyles from './search.module.scss';
import sharedStyles from './toolbar-items.module.scss';
diff --git a/src/components/organisms/toolbar/settings.module.scss b/src/components/organisms/toolbar/settings.module.scss
index a46f28c..59c44f8 100644
--- a/src/components/organisms/toolbar/settings.module.scss
+++ b/src/components/organisms/toolbar/settings.module.scss
@@ -1,6 +1,3 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-
.item .tooltip {
top: unset;
bottom: calc(100% + var(--spacing-2xs));
diff --git a/src/components/organisms/toolbar/settings.test.tsx b/src/components/organisms/toolbar/settings.test.tsx
index 9e91b09..44bed56 100644
--- a/src/components/organisms/toolbar/settings.test.tsx
+++ b/src/components/organisms/toolbar/settings.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Settings from './settings';
describe('Settings', () => {
diff --git a/src/components/organisms/toolbar/settings.tsx b/src/components/organisms/toolbar/settings.tsx
index 774de64..6dc73e4 100644
--- a/src/components/organisms/toolbar/settings.tsx
+++ b/src/components/organisms/toolbar/settings.tsx
@@ -1,10 +1,10 @@
-import BooleanField, {
- type BooleanFieldProps,
-} from '@components/atoms/forms/boolean-field';
-import Cog from '@components/atoms/icons/cog';
-import FlippingLabel from '@components/molecules/forms/flipping-label';
import { forwardRef, ForwardRefRenderFunction } from 'react';
import { useIntl } from 'react-intl';
+import BooleanField, {
+ type BooleanFieldProps,
+} from '../../atoms/forms/boolean-field';
+import Cog from '../../atoms/icons/cog';
+import FlippingLabel from '../../molecules/forms/flipping-label';
import SettingsModal, {
type SettingsModalProps,
} from '../modals/settings-modal';
diff --git a/src/components/organisms/toolbar/toolbar-items.module.scss b/src/components/organisms/toolbar/toolbar-items.module.scss
index 86b4924..540844b 100644
--- a/src/components/organisms/toolbar/toolbar-items.module.scss
+++ b/src/components/organisms/toolbar/toolbar-items.module.scss
@@ -1,6 +1,6 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.item {
--btn-size: #{fun.convert-px(65)};
diff --git a/src/components/organisms/toolbar/toolbar.module.scss b/src/components/organisms/toolbar/toolbar.module.scss
index 60f41f1..1254f64 100644
--- a/src/components/organisms/toolbar/toolbar.module.scss
+++ b/src/components/organisms/toolbar/toolbar.module.scss
@@ -1,6 +1,6 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/variables" as var;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/variables" as var;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
--toolbar-size: #{fun.convert-px(75)};
diff --git a/src/components/organisms/toolbar/toolbar.test.tsx b/src/components/organisms/toolbar/toolbar.test.tsx
index 20f782a..01cc5ba 100644
--- a/src/components/organisms/toolbar/toolbar.test.tsx
+++ b/src/components/organisms/toolbar/toolbar.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Toolbar from './toolbar';
const nav = [
diff --git a/src/components/organisms/toolbar/toolbar.tsx b/src/components/organisms/toolbar/toolbar.tsx
index 50fc7f2..339dec4 100644
--- a/src/components/organisms/toolbar/toolbar.tsx
+++ b/src/components/organisms/toolbar/toolbar.tsx
@@ -1,6 +1,6 @@
-import useOnClickOutside from '@utils/hooks/use-on-click-outside';
-import useRouteChange from '@utils/hooks/use-route-change';
import { FC, useState } from 'react';
+import useOnClickOutside from '../../../utils/hooks/use-on-click-outside';
+import useRouteChange from '../../../utils/hooks/use-route-change';
import MainNav, { type MainNavProps } from '../toolbar/main-nav';
import Search, { type SearchProps } from '../toolbar/search';
import Settings, { type SettingsProps } from '../toolbar/settings';
diff --git a/src/components/organisms/widgets/image-widget.module.scss b/src/components/organisms/widgets/image-widget.module.scss
index 0d69441..2174d5b 100644
--- a/src/components/organisms/widgets/image-widget.module.scss
+++ b/src/components/organisms/widgets/image-widget.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/functions" as fun;
.figure {
--scale-up: 1.02;
diff --git a/src/components/organisms/widgets/image-widget.test.tsx b/src/components/organisms/widgets/image-widget.test.tsx
index 6548584..b41e6a8 100644
--- a/src/components/organisms/widgets/image-widget.test.tsx
+++ b/src/components/organisms/widgets/image-widget.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import ImageWidget from './image-widget';
const description = 'Ut vitae sit';
diff --git a/src/components/organisms/widgets/image-widget.tsx b/src/components/organisms/widgets/image-widget.tsx
index 873337b..7ca5d90 100644
--- a/src/components/organisms/widgets/image-widget.tsx
+++ b/src/components/organisms/widgets/image-widget.tsx
@@ -1,8 +1,8 @@
+import { FC } from 'react';
import ResponsiveImage, {
type ResponsiveImageProps,
-} from '@components/molecules/images/responsive-image';
-import Widget, { type WidgetProps } from '@components/molecules/layout/widget';
-import { FC } from 'react';
+} from '../../molecules/images/responsive-image';
+import Widget, { type WidgetProps } from '../../molecules/layout/widget';
import styles from './image-widget.module.scss';
export type Alignment = 'left' | 'center' | 'right';
diff --git a/src/components/organisms/widgets/links-list-widget.module.scss b/src/components/organisms/widgets/links-list-widget.module.scss
index 4444df4..26f1549 100644
--- a/src/components/organisms/widgets/links-list-widget.module.scss
+++ b/src/components/organisms/widgets/links-list-widget.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/placeholders";
.widget {
.list {
diff --git a/src/components/organisms/widgets/links-list-widget.test.tsx b/src/components/organisms/widgets/links-list-widget.test.tsx
index d695d68..8578040 100644
--- a/src/components/organisms/widgets/links-list-widget.test.tsx
+++ b/src/components/organisms/widgets/links-list-widget.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import LinksListWidget from './links-list-widget';
const title = 'Voluptatem minus autem';
diff --git a/src/components/organisms/widgets/links-list-widget.tsx b/src/components/organisms/widgets/links-list-widget.tsx
index a9c677b..23392b9 100644
--- a/src/components/organisms/widgets/links-list-widget.tsx
+++ b/src/components/organisms/widgets/links-list-widget.tsx
@@ -1,11 +1,8 @@
-import Link from '@components/atoms/links/link';
-import List, {
- type ListProps,
- type ListItem,
-} from '@components/atoms/lists/list';
-import Widget, { type WidgetProps } from '@components/molecules/layout/widget';
-import { slugify } from '@utils/helpers/strings';
import { FC } from 'react';
+import { slugify } from '../../../utils/helpers/strings';
+import Link from '../../atoms/links/link';
+import List, { type ListProps, type ListItem } from '../../atoms/lists/list';
+import Widget, { type WidgetProps } from '../../molecules/layout/widget';
import styles from './links-list-widget.module.scss';
export type LinksListItems = {
diff --git a/src/components/organisms/widgets/sharing.module.scss b/src/components/organisms/widgets/sharing.module.scss
index e06d4e3..24f6fc9 100644
--- a/src/components/organisms/widgets/sharing.module.scss
+++ b/src/components/organisms/widgets/sharing.module.scss
@@ -1,5 +1,3 @@
-@use "@styles/abstracts/mixins" as mix;
-
.list {
display: flex;
flex-flow: row wrap;
diff --git a/src/components/organisms/widgets/sharing.test.tsx b/src/components/organisms/widgets/sharing.test.tsx
index 88f72fe..f05a73b 100644
--- a/src/components/organisms/widgets/sharing.test.tsx
+++ b/src/components/organisms/widgets/sharing.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Sharing, { type SharingData } from './sharing';
const postData: SharingData = {
diff --git a/src/components/organisms/widgets/sharing.tsx b/src/components/organisms/widgets/sharing.tsx
index c63f5db..57578cb 100644
--- a/src/components/organisms/widgets/sharing.tsx
+++ b/src/components/organisms/widgets/sharing.tsx
@@ -1,9 +1,9 @@
-import SharingLink, {
- type SharingMedium,
-} from '@components/atoms/links/sharing-link';
-import Widget, { type WidgetProps } from '@components/molecules/layout/widget';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import SharingLink, {
+ type SharingMedium,
+} from '../../atoms/links/sharing-link';
+import Widget, { type WidgetProps } from '../../molecules/layout/widget';
import styles from './sharing.module.scss';
export type SharingData = {
diff --git a/src/components/organisms/widgets/social-media.module.scss b/src/components/organisms/widgets/social-media.module.scss
index 01b6c0e..b7191be 100644
--- a/src/components/organisms/widgets/social-media.module.scss
+++ b/src/components/organisms/widgets/social-media.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/placeholders";
.list {
@extend %reset-list;
diff --git a/src/components/organisms/widgets/social-media.test.tsx b/src/components/organisms/widgets/social-media.test.tsx
index ec6c536..a9056af 100644
--- a/src/components/organisms/widgets/social-media.test.tsx
+++ b/src/components/organisms/widgets/social-media.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import SocialMedia, { Media } from './social-media';
const media: Media[] = [
diff --git a/src/components/organisms/widgets/social-media.tsx b/src/components/organisms/widgets/social-media.tsx
index 58b2f73..1a261a9 100644
--- a/src/components/organisms/widgets/social-media.tsx
+++ b/src/components/organisms/widgets/social-media.tsx
@@ -1,8 +1,8 @@
+import { FC } from 'react';
import SocialLink, {
type SocialLinkProps,
-} from '@components/atoms/links/social-link';
-import Widget, { type WidgetProps } from '@components/molecules/layout/widget';
-import { FC } from 'react';
+} from '../../atoms/links/social-link';
+import Widget, { type WidgetProps } from '../../molecules/layout/widget';
import styles from './social-media.module.scss';
export type Media = SocialLinkProps;
diff --git a/src/components/organisms/widgets/table-of-contents.test.tsx b/src/components/organisms/widgets/table-of-contents.test.tsx
index 92ae895..dd0338a 100644
--- a/src/components/organisms/widgets/table-of-contents.test.tsx
+++ b/src/components/organisms/widgets/table-of-contents.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import TableOfContents from './table-of-contents';
describe('TableOfContents', () => {
diff --git a/src/components/organisms/widgets/table-of-contents.tsx b/src/components/organisms/widgets/table-of-contents.tsx
index 800ff58..0c18f03 100644
--- a/src/components/organisms/widgets/table-of-contents.tsx
+++ b/src/components/organisms/widgets/table-of-contents.tsx
@@ -1,6 +1,8 @@
-import useHeadingsTree, { type Heading } from '@utils/hooks/use-headings-tree';
import { FC } from 'react';
import { useIntl } from 'react-intl';
+import useHeadingsTree, {
+ type Heading,
+} from '../../../utils/hooks/use-headings-tree';
import LinksListWidget, { type LinksListItems } from './links-list-widget';
import styles from './table-of-contents.module.scss';
diff --git a/src/components/templates/layout/layout.module.scss b/src/components/templates/layout/layout.module.scss
index 1080732..5b89341 100644
--- a/src/components/templates/layout/layout.module.scss
+++ b/src/components/templates/layout/layout.module.scss
@@ -1,6 +1,6 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.header {
border-bottom: fun.convert-px(3) solid var(--color-border-light);
diff --git a/src/components/templates/layout/layout.test.tsx b/src/components/templates/layout/layout.test.tsx
index eab7a2a..6b3818e 100644
--- a/src/components/templates/layout/layout.test.tsx
+++ b/src/components/templates/layout/layout.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import Layout from './layout';
const body =
diff --git a/src/components/templates/layout/layout.tsx b/src/components/templates/layout/layout.tsx
index 2a10a30..cf35b5c 100644
--- a/src/components/templates/layout/layout.tsx
+++ b/src/components/templates/layout/layout.tsx
@@ -1,22 +1,22 @@
-import ButtonLink from '@components/atoms/buttons/button-link';
-import Career from '@components/atoms/icons/career';
-import CCBySA from '@components/atoms/icons/cc-by-sa';
-import ComputerScreen from '@components/atoms/icons/computer-screen';
-import Envelop from '@components/atoms/icons/envelop';
-import Home from '@components/atoms/icons/home';
-import PostsStack from '@components/atoms/icons/posts-stack';
-import Main from '@components/atoms/layout/main';
-import NoScript from '@components/atoms/layout/no-script';
-import Footer, { type FooterProps } from '@components/organisms/layout/footer';
-import Header, { type HeaderProps } from '@components/organisms/layout/header';
-import { type NextPageWithLayoutOptions } from '@ts/types/app';
-import useRouteChange from '@utils/hooks/use-route-change';
-import useScrollPosition from '@utils/hooks/use-scroll-position';
-import useSettings from '@utils/hooks/use-settings';
import Script from 'next/script';
import { FC, ReactElement, ReactNode, useRef, useState } from 'react';
import { useIntl } from 'react-intl';
import { Person, SearchAction, WebSite, WithContext } from 'schema-dts';
+import { type NextPageWithLayoutOptions } from '../../../types/app';
+import useRouteChange from '../../../utils/hooks/use-route-change';
+import useScrollPosition from '../../../utils/hooks/use-scroll-position';
+import useSettings from '../../../utils/hooks/use-settings';
+import ButtonLink from '../../atoms/buttons/button-link';
+import Career from '../../atoms/icons/career';
+import CCBySA from '../../atoms/icons/cc-by-sa';
+import ComputerScreen from '../../atoms/icons/computer-screen';
+import Envelop from '../../atoms/icons/envelop';
+import Home from '../../atoms/icons/home';
+import PostsStack from '../../atoms/icons/posts-stack';
+import Main from '../../atoms/layout/main';
+import NoScript from '../../atoms/layout/no-script';
+import Footer, { type FooterProps } from '../../organisms/layout/footer';
+import Header, { type HeaderProps } from '../../organisms/layout/header';
import photo from '/public/armand-philippot.jpg';
import styles from './layout.module.scss';
diff --git a/src/components/templates/page/page-layout.module.scss b/src/components/templates/page/page-layout.module.scss
index c7674ae..d29df2c 100644
--- a/src/components/templates/page/page-layout.module.scss
+++ b/src/components/templates/page/page-layout.module.scss
@@ -1,6 +1,6 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../../styles/abstracts/functions" as fun;
+@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.breadcrumb {
@extend %grid;
diff --git a/src/components/templates/page/page-layout.stories.tsx b/src/components/templates/page/page-layout.stories.tsx
index 06c6c24..5fc5063 100644
--- a/src/components/templates/page/page-layout.stories.tsx
+++ b/src/components/templates/page/page-layout.stories.tsx
@@ -1,12 +1,12 @@
-import ButtonLink from '@components/atoms/buttons/button-link';
-import Heading from '@components/atoms/headings/heading';
-import Link from '@components/atoms/links/link';
-import { comments } from '@components/organisms/layout/comments-list.fixture';
-import PostsList from '@components/organisms/layout/posts-list';
-import { posts } from '@components/organisms/layout/posts-list.fixture';
-import LinksListWidget from '@components/organisms/widgets/links-list-widget';
-import Sharing from '@components/organisms/widgets/sharing';
import { ComponentMeta, ComponentStory } from '@storybook/react';
+import ButtonLink from '../../atoms/buttons/button-link';
+import Heading from '../../atoms/headings/heading';
+import Link from '../../atoms/links/link';
+import { comments } from '../../organisms/layout/comments-list.fixture';
+import PostsList from '../../organisms/layout/posts-list';
+import { posts } from '../../organisms/layout/posts-list.fixture';
+import LinksListWidget from '../../organisms/widgets/links-list-widget';
+import Sharing from '../../organisms/widgets/sharing';
import { LayoutBase } from '../layout/layout.stories';
import PageLayoutComponent from './page-layout';
diff --git a/src/components/templates/page/page-layout.test.tsx b/src/components/templates/page/page-layout.test.tsx
index b5480d8..316ff58 100644
--- a/src/components/templates/page/page-layout.test.tsx
+++ b/src/components/templates/page/page-layout.test.tsx
@@ -1,6 +1,6 @@
-import { comments } from '@components/organisms/layout/comments-list.fixture';
-import { render, screen } from '@tests/utils';
import { BreadcrumbList } from 'schema-dts';
+import { render, screen } from '../../../../tests/utils';
+import { comments } from '../../organisms/layout/comments-list.fixture';
import PageLayout from './page-layout';
const title = 'Incidunt ad earum';
diff --git a/src/components/templates/page/page-layout.tsx b/src/components/templates/page/page-layout.tsx
index d53f53d..6792724 100644
--- a/src/components/templates/page/page-layout.tsx
+++ b/src/components/templates/page/page-layout.tsx
@@ -1,30 +1,30 @@
-import Heading from '@components/atoms/headings/heading';
-import Notice, { type NoticeKind } from '@components/atoms/layout/notice';
-import Sidebar from '@components/atoms/layout/sidebar';
-import { MetaData } from '@components/molecules/layout/meta';
+import Script from 'next/script';
+import { FC, HTMLAttributes, ReactNode, useRef, useState } from 'react';
+import { useIntl } from 'react-intl';
+import { BreadcrumbList } from 'schema-dts';
+import { sendComment } from '../../../services/graphql/comments';
+import { SendCommentInput } from '../../../types/graphql/mutations';
+import useIsMounted from '../../../utils/hooks/use-is-mounted';
+import Heading from '../../atoms/headings/heading';
+import Notice, { type NoticeKind } from '../../atoms/layout/notice';
+import Sidebar from '../../atoms/layout/sidebar';
+import { MetaData } from '../../molecules/layout/meta';
import PageFooter, {
type PageFooterProps,
-} from '@components/molecules/layout/page-footer';
+} from '../../molecules/layout/page-footer';
import PageHeader, {
type PageHeaderProps,
-} from '@components/molecules/layout/page-header';
+} from '../../molecules/layout/page-header';
import Breadcrumb, {
type BreadcrumbItem,
-} from '@components/molecules/nav/breadcrumb';
+} from '../../molecules/nav/breadcrumb';
import CommentForm, {
type CommentFormProps,
-} from '@components/organisms/forms/comment-form';
+} from '../../organisms/forms/comment-form';
import CommentsList, {
type CommentsListProps,
-} from '@components/organisms/layout/comments-list';
-import TableOfContents from '@components/organisms/widgets/table-of-contents';
-import { sendComment } from '@services/graphql/comments';
-import { SendCommentInput } from '@ts/types/graphql/mutations';
-import useIsMounted from '@utils/hooks/use-is-mounted';
-import Script from 'next/script';
-import { FC, HTMLAttributes, ReactNode, useRef, useState } from 'react';
-import { useIntl } from 'react-intl';
-import { BreadcrumbList } from 'schema-dts';
+} from '../../organisms/layout/comments-list';
+import TableOfContents from '../../organisms/widgets/table-of-contents';
import styles from './page-layout.module.scss';
export type PageLayoutProps = {
diff --git a/src/components/templates/sectioned/sectioned-layout.test.tsx b/src/components/templates/sectioned/sectioned-layout.test.tsx
index 73d7224..a7f19cc 100644
--- a/src/components/templates/sectioned/sectioned-layout.test.tsx
+++ b/src/components/templates/sectioned/sectioned-layout.test.tsx
@@ -1,4 +1,4 @@
-import { render, screen } from '@tests/utils';
+import { render, screen } from '../../../../tests/utils';
import { BreadcrumbList } from 'schema-dts';
import SectionedLayout from './sectioned-layout';
diff --git a/src/components/templates/sectioned/sectioned-layout.tsx b/src/components/templates/sectioned/sectioned-layout.tsx
index f91c354..7fcad63 100644
--- a/src/components/templates/sectioned/sectioned-layout.tsx
+++ b/src/components/templates/sectioned/sectioned-layout.tsx
@@ -1,10 +1,10 @@
-import Section, {
- type SectionProps,
- type SectionVariant,
-} from '@components/atoms/layout/section';
import Script from 'next/script';
import { FC } from 'react';
import { BreadcrumbList } from 'schema-dts';
+import Section, {
+ type SectionProps,
+ type SectionVariant,
+} from '../../atoms/layout/section';
export type Section = Pick<SectionProps, 'content' | 'title'>;
diff --git a/src/content b/src/content
-Subproject 7514fc1c114f0a4036c38ab49d602ec4ccb219e
+Subproject 50f8b9d6b244134073551e849d11f7261ff36a9
diff --git a/src/pages/404.tsx b/src/pages/404.tsx
index c3a5cac..a6d84f5 100644
--- a/src/pages/404.tsx
+++ b/src/pages/404.tsx
@@ -1,29 +1,29 @@
-import Link from '@components/atoms/links/link';
-import SearchForm from '@components/organisms/forms/search-form';
-import LinksListWidget from '@components/organisms/widgets/links-list-widget';
-import { getLayout } from '@components/templates/layout/layout';
-import PageLayout from '@components/templates/page/page-layout';
+import { GetStaticProps } from 'next';
+import Head from 'next/head';
+import { ReactNode } from 'react';
+import { useIntl } from 'react-intl';
+import Link from '../components/atoms/links/link';
+import SearchForm from '../components/organisms/forms/search-form';
+import LinksListWidget from '../components/organisms/widgets/links-list-widget';
+import { getLayout } from '../components/templates/layout/layout';
+import PageLayout from '../components/templates/page/page-layout';
import {
getThematicsPreview,
getTotalThematics,
-} from '@services/graphql/thematics';
-import { getTopicsPreview, getTotalTopics } from '@services/graphql/topics';
-import { type NextPageWithLayout } from '@ts/types/app';
+} from '../services/graphql/thematics';
+import { getTopicsPreview, getTotalTopics } from '../services/graphql/topics';
+import { type NextPageWithLayout } from '../types/app';
import {
type RawThematicPreview,
type RawTopicPreview,
-} from '@ts/types/raw-data';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
+} from '../types/raw-data';
+import { loadTranslation, type Messages } from '../utils/helpers/i18n';
import {
getLinksListItems,
getPageLinkFromRawData,
-} from '@utils/helpers/pages';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
-import { GetStaticProps } from 'next';
-import Head from 'next/head';
-import { ReactNode } from 'react';
-import { useIntl } from 'react-intl';
+} from '../utils/helpers/pages';
+import useBreadcrumb from '../utils/hooks/use-breadcrumb';
+import useSettings from '../utils/hooks/use-settings';
type Error404PageProps = {
thematicsList: RawThematicPreview[];
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index ec5dab7..f6eb88e 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -1,11 +1,11 @@
-import { type AppPropsWithLayout } from '@ts/types/app';
-import { settings } from '@utils/config';
-import { AckeeProvider } from '@utils/providers/ackee';
-import { PrismThemeProvider } from '@utils/providers/prism-theme';
import { ThemeProvider } from 'next-themes';
import { useRouter } from 'next/router';
import { IntlProvider } from 'react-intl';
import '../styles/globals.scss';
+import { type AppPropsWithLayout } from '../types/app';
+import { settings } from '../utils/config';
+import { AckeeProvider } from '../utils/providers/ackee';
+import { PrismThemeProvider } from '../utils/providers/prism-theme';
const App = ({ Component, pageProps }: AppPropsWithLayout) => {
const { locale, defaultLocale } = useRouter();
diff --git a/src/pages/article/[slug].tsx b/src/pages/article/[slug].tsx
index 64610b4..dae89fb 100644
--- a/src/pages/article/[slug].tsx
+++ b/src/pages/article/[slug].tsx
@@ -1,43 +1,45 @@
-import ButtonLink from '@components/atoms/buttons/button-link';
-import Link from '@components/atoms/links/link';
-import Spinner from '@components/atoms/loaders/spinner';
-import ResponsiveImage from '@components/molecules/images/responsive-image';
-import Sharing from '@components/organisms/widgets/sharing';
-import { getLayout } from '@components/templates/layout/layout';
+import { GetStaticPaths, GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import { ParsedUrlQuery } from 'querystring';
+import { HTMLAttributes } from 'react';
+import { useIntl } from 'react-intl';
+import ButtonLink from '../../components/atoms/buttons/button-link';
+import Link from '../../components/atoms/links/link';
+import Spinner from '../../components/atoms/loaders/spinner';
+import ResponsiveImage from '../../components/molecules/images/responsive-image';
+import Sharing from '../../components/organisms/widgets/sharing';
+import { getLayout } from '../../components/templates/layout/layout';
import PageLayout, {
type PageLayoutProps,
-} from '@components/templates/page/page-layout';
+} from '../../components/templates/page/page-layout';
import {
getAllArticlesSlugs,
getArticleBySlug,
-} from '@services/graphql/articles';
-import { getAllComments } from '@services/graphql/comments';
-import styles from '@styles/pages/article.module.scss';
+} from '../../services/graphql/articles';
+import { getAllComments } from '../../services/graphql/comments';
+import styles from '../../styles/pages/article.module.scss';
import {
type Article,
type NextPageWithLayout,
type SingleComment,
-} from '@ts/types/app';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
+} from '../../types/app';
+import { loadTranslation, type Messages } from '../../utils/helpers/i18n';
import {
getBlogSchema,
getSchemaJson,
getSinglePageSchema,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useArticle from '@utils/hooks/use-article';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useComments from '@utils/hooks/use-comments';
-import usePrism, { type OptionalPrismPlugin } from '@utils/hooks/use-prism';
-import useReadingTime from '@utils/hooks/use-reading-time';
-import useSettings from '@utils/hooks/use-settings';
-import { GetStaticPaths, GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
-import { ParsedUrlQuery } from 'querystring';
-import { HTMLAttributes } from 'react';
-import { useIntl } from 'react-intl';
+} from '../../utils/helpers/schema-org';
+import useArticle from '../../utils/hooks/use-article';
+import useBreadcrumb from '../../utils/hooks/use-breadcrumb';
+import useComments from '../../utils/hooks/use-comments';
+import usePrism, {
+ type OptionalPrismPlugin,
+} from '../../utils/hooks/use-prism';
+import useReadingTime from '../../utils/hooks/use-reading-time';
+import useSettings from '../../utils/hooks/use-settings';
type ArticlePageProps = {
comments: SingleComment[];
diff --git a/src/pages/atom.xml.tsx b/src/pages/atom.xml.tsx
index 79813d1..580830a 100644
--- a/src/pages/atom.xml.tsx
+++ b/src/pages/atom.xml.tsx
@@ -1,5 +1,5 @@
-import { generateFeed } from '@utils/helpers/rss';
import { GetServerSideProps } from 'next';
+import { generateFeed } from '../utils/helpers/rss';
const Feed = () => null;
diff --git a/src/pages/blog/index.tsx b/src/pages/blog/index.tsx
index 3be8a99..1f88588 100644
--- a/src/pages/blog/index.tsx
+++ b/src/pages/blog/index.tsx
@@ -1,41 +1,44 @@
-import Notice from '@components/atoms/layout/notice';
-import PostsList from '@components/organisms/layout/posts-list';
-import LinksListWidget from '@components/organisms/widgets/links-list-widget';
-import { getLayout } from '@components/templates/layout/layout';
-import PageLayout from '@components/templates/page/page-layout';
-import { getArticles, getTotalArticles } from '@services/graphql/articles';
+import { GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import { useIntl } from 'react-intl';
+import Notice from '../../components/atoms/layout/notice';
+import PostsList from '../../components/organisms/layout/posts-list';
+import LinksListWidget from '../../components/organisms/widgets/links-list-widget';
+import { getLayout } from '../../components/templates/layout/layout';
+import PageLayout from '../../components/templates/page/page-layout';
+import { getArticles, getTotalArticles } from '../../services/graphql/articles';
import {
getThematicsPreview,
getTotalThematics,
-} from '@services/graphql/thematics';
-import { getTopicsPreview, getTotalTopics } from '@services/graphql/topics';
-import { type NextPageWithLayout } from '@ts/types/app';
-import { EdgesResponse } from '@ts/types/graphql/queries';
+} from '../../services/graphql/thematics';
+import {
+ getTopicsPreview,
+ getTotalTopics,
+} from '../../services/graphql/topics';
+import { type NextPageWithLayout } from '../../types/app';
+import { EdgesResponse } from '../../types/graphql/queries';
import {
type RawArticle,
type RawThematicPreview,
type RawTopicPreview,
-} from '@ts/types/raw-data';
-import { settings } from '@utils/config';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
+} from '../../types/raw-data';
+import { settings } from '../../utils/config';
+import { loadTranslation, type Messages } from '../../utils/helpers/i18n';
import {
getLinksListItems,
getPageLinkFromRawData,
getPostsList,
-} from '@utils/helpers/pages';
+} from '../../utils/helpers/pages';
import {
getBlogSchema,
getSchemaJson,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import usePagination from '@utils/hooks/use-pagination';
-import useSettings from '@utils/hooks/use-settings';
-import { GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
-import { useIntl } from 'react-intl';
+} from '../../utils/helpers/schema-org';
+import useBreadcrumb from '../../utils/hooks/use-breadcrumb';
+import usePagination from '../../utils/hooks/use-pagination';
+import useSettings from '../../utils/hooks/use-settings';
type BlogPageProps = {
articles: EdgesResponse<RawArticle>;
diff --git a/src/pages/blog/page/[number].tsx b/src/pages/blog/page/[number].tsx
index e72eb9a..bfd9953 100644
--- a/src/pages/blog/page/[number].tsx
+++ b/src/pages/blog/page/[number].tsx
@@ -1,45 +1,48 @@
-import PostsList from '@components/organisms/layout/posts-list';
-import LinksListWidget from '@components/organisms/widgets/links-list-widget';
-import { getLayout } from '@components/templates/layout/layout';
-import PageLayout from '@components/templates/page/page-layout';
+import { GetStaticPaths, GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import { ParsedUrlQuery } from 'querystring';
+import { useIntl } from 'react-intl';
+import PostsList from '../../../components/organisms/layout/posts-list';
+import LinksListWidget from '../../../components/organisms/widgets/links-list-widget';
+import { getLayout } from '../../../components/templates/layout/layout';
+import PageLayout from '../../../components/templates/page/page-layout';
import {
getArticles,
getArticlesEndCursor,
getTotalArticles,
-} from '@services/graphql/articles';
+} from '../../../services/graphql/articles';
import {
getThematicsPreview,
getTotalThematics,
-} from '@services/graphql/thematics';
-import { getTopicsPreview, getTotalTopics } from '@services/graphql/topics';
-import { type NextPageWithLayout } from '@ts/types/app';
-import { EdgesResponse } from '@ts/types/graphql/queries';
+} from '../../../services/graphql/thematics';
+import {
+ getTopicsPreview,
+ getTotalTopics,
+} from '../../../services/graphql/topics';
+import { type NextPageWithLayout } from '../../../types/app';
+import { EdgesResponse } from '../../../types/graphql/queries';
import {
type RawArticle,
type RawThematicPreview,
type RawTopicPreview,
-} from '@ts/types/raw-data';
-import { settings } from '@utils/config';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
+} from '../../../types/raw-data';
+import { settings } from '../../../utils/config';
+import { loadTranslation, type Messages } from '../../../utils/helpers/i18n';
import {
getLinksListItems,
getPageLinkFromRawData,
getPostsList,
-} from '@utils/helpers/pages';
+} from '../../../utils/helpers/pages';
import {
getBlogSchema,
getSchemaJson,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useRedirection from '@utils/hooks/use-redirection';
-import useSettings from '@utils/hooks/use-settings';
-import { GetStaticPaths, GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
-import { ParsedUrlQuery } from 'querystring';
-import { useIntl } from 'react-intl';
+} from '../../../utils/helpers/schema-org';
+import useBreadcrumb from '../../../utils/hooks/use-breadcrumb';
+import useRedirection from '../../../utils/hooks/use-redirection';
+import useSettings from '../../../utils/hooks/use-settings';
type BlogPageProps = {
articles: EdgesResponse<RawArticle>;
diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx
index 2392fe2..b35b8e0 100644
--- a/src/pages/contact.tsx
+++ b/src/pages/contact.tsx
@@ -1,28 +1,28 @@
-import Notice, { type NoticeKind } from '@components/atoms/layout/notice';
-import ContactForm, {
- type ContactFormProps,
-} from '@components/organisms/forms/contact-form';
-import SocialMedia from '@components/organisms/widgets/social-media';
-import { getLayout } from '@components/templates/layout/layout';
-import PageLayout from '@components/templates/page/page-layout';
-import { meta } from '@content/pages/contact.mdx';
-import { sendMail } from '@services/graphql/contact';
-import styles from '@styles/pages/contact.module.scss';
-import { type NextPageWithLayout } from '@ts/types/app';
-import { loadTranslation } from '@utils/helpers/i18n';
-import {
- getSchemaJson,
- getSinglePageSchema,
- getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
import { GetStaticProps } from 'next';
import Head from 'next/head';
import { useRouter } from 'next/router';
import Script from 'next/script';
import { useState } from 'react';
import { useIntl } from 'react-intl';
+import Notice, { type NoticeKind } from '../components/atoms/layout/notice';
+import ContactForm, {
+ type ContactFormProps,
+} from '../components/organisms/forms/contact-form';
+import SocialMedia from '../components/organisms/widgets/social-media';
+import { getLayout } from '../components/templates/layout/layout';
+import PageLayout from '../components/templates/page/page-layout';
+import { meta } from '../content/pages/contact.mdx';
+import { sendMail } from '../services/graphql/contact';
+import styles from '../styles/pages/contact.module.scss';
+import { type NextPageWithLayout } from '../types/app';
+import { loadTranslation } from '../utils/helpers/i18n';
+import {
+ getSchemaJson,
+ getSinglePageSchema,
+ getWebPageSchema,
+} from '../utils/helpers/schema-org';
+import useBreadcrumb from '../utils/hooks/use-breadcrumb';
+import useSettings from '../utils/hooks/use-settings';
const ContactPage: NextPageWithLayout = () => {
const { dates, intro, seo, title } = meta;
diff --git a/src/pages/cv.tsx b/src/pages/cv.tsx
index d938d98..16b83f0 100644
--- a/src/pages/cv.tsx
+++ b/src/pages/cv.tsx
@@ -1,23 +1,3 @@
-import Heading, { HeadingProps } from '@components/atoms/headings/heading';
-import Link, { LinkProps } from '@components/atoms/links/link';
-import List from '@components/atoms/lists/list';
-import ImageWidget from '@components/organisms/widgets/image-widget';
-import SocialMedia from '@components/organisms/widgets/social-media';
-import { getLayout } from '@components/templates/layout/layout';
-import PageLayout, {
- type PageLayoutProps,
-} from '@components/templates/page/page-layout';
-import CVContent, { data, meta } from '@content/pages/cv.mdx';
-import styles from '@styles/pages/cv.module.scss';
-import { type NextPageWithLayout } from '@ts/types/app';
-import { loadTranslation } from '@utils/helpers/i18n';
-import {
- getSchemaJson,
- getSinglePageSchema,
- getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
import { NestedMDXComponents } from 'mdx/types';
import { GetStaticProps } from 'next';
import Head from 'next/head';
@@ -25,6 +5,26 @@ import { useRouter } from 'next/router';
import Script from 'next/script';
import React, { ReactNode } from 'react';
import { useIntl } from 'react-intl';
+import Heading, { HeadingProps } from '../components/atoms/headings/heading';
+import Link, { LinkProps } from '../components/atoms/links/link';
+import List from '../components/atoms/lists/list';
+import ImageWidget from '../components/organisms/widgets/image-widget';
+import SocialMedia from '../components/organisms/widgets/social-media';
+import { getLayout } from '../components/templates/layout/layout';
+import PageLayout, {
+ type PageLayoutProps,
+} from '../components/templates/page/page-layout';
+import CVContent, { data, meta } from '../content/pages/cv.mdx';
+import styles from '../styles/pages/cv.module.scss';
+import { type NextPageWithLayout } from '../types/app';
+import { loadTranslation } from '../utils/helpers/i18n';
+import {
+ getSchemaJson,
+ getSinglePageSchema,
+ getWebPageSchema,
+} from '../utils/helpers/schema-org';
+import useBreadcrumb from '../utils/hooks/use-breadcrumb';
+import useSettings from '../utils/hooks/use-settings';
const ExternalLink = (props: LinkProps) => <Link external={true} {...props} />;
diff --git a/src/pages/feed.json.tsx b/src/pages/feed.json.tsx
index 9b2e510..f240464 100644
--- a/src/pages/feed.json.tsx
+++ b/src/pages/feed.json.tsx
@@ -1,5 +1,5 @@
-import { generateFeed } from '@utils/helpers/rss';
import { GetServerSideProps } from 'next';
+import { generateFeed } from '../utils/helpers/rss';
const Feed = () => null;
diff --git a/src/pages/feed.xml.tsx b/src/pages/feed.xml.tsx
index 24209ac..79c7f41 100644
--- a/src/pages/feed.xml.tsx
+++ b/src/pages/feed.xml.tsx
@@ -1,5 +1,5 @@
-import { generateFeed } from '@utils/helpers/rss';
import { GetServerSideProps } from 'next';
+import { generateFeed } from '../utils/helpers/rss';
const Feed = () => null;
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 1e0bf40..0738805 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -1,31 +1,31 @@
-import FeedIcon from '@assets/images/icon-feed.svg';
-import ButtonLink from '@components/atoms/buttons/button-link';
-import Envelop from '@components/atoms/icons/envelop';
-import Column from '@components/atoms/layout/column';
-import Section, { type SectionProps } from '@components/atoms/layout/section';
-import List, { type ListItem } from '@components/atoms/lists/list';
-import ResponsiveImage from '@components/molecules/images/responsive-image';
-import Columns, {
- type ColumnsProps,
-} from '@components/molecules/layout/columns';
-import CardsList, {
- type CardsListItem,
-} from '@components/organisms/layout/cards-list';
-import { getLayout } from '@components/templates/layout/layout';
-import HomePageContent from '@content/pages/homepage.mdx';
-import { getArticlesCard } from '@services/graphql/articles';
-import styles from '@styles/pages/home.module.scss';
-import { type ArticleCard, type NextPageWithLayout } from '@ts/types/app';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
-import { getSchemaJson, getWebPageSchema } from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
import { NestedMDXComponents } from 'mdx/types';
import { GetStaticProps } from 'next';
import Head from 'next/head';
import Script from 'next/script';
import { ReactElement } from 'react';
import { useIntl } from 'react-intl';
+import FeedIcon from '../assets/images/icon-feed.svg';
+import ButtonLink from '../components/atoms/buttons/button-link';
+import Envelop from '../components/atoms/icons/envelop';
+import Column from '../components/atoms/layout/column';
+import Section, { type SectionProps } from '../components/atoms/layout/section';
+import List, { type ListItem } from '../components/atoms/lists/list';
+import ResponsiveImage from '../components/molecules/images/responsive-image';
+import Columns, {
+ type ColumnsProps,
+} from '../components/molecules/layout/columns';
+import CardsList, {
+ type CardsListItem,
+} from '../components/organisms/layout/cards-list';
+import { getLayout } from '../components/templates/layout/layout';
+import HomePageContent from '../content/pages/homepage.mdx';
+import { getArticlesCard } from '../services/graphql/articles';
+import styles from '../styles/pages/home.module.scss';
+import { type ArticleCard, type NextPageWithLayout } from '../types/app';
+import { loadTranslation, type Messages } from '../utils/helpers/i18n';
+import { getSchemaJson, getWebPageSchema } from '../utils/helpers/schema-org';
+import useBreadcrumb from '../utils/hooks/use-breadcrumb';
+import useSettings from '../utils/hooks/use-settings';
/**
* Retrieve a list of coding links.
diff --git a/src/pages/mentions-legales.tsx b/src/pages/mentions-legales.tsx
index 413f409..7608e4b 100644
--- a/src/pages/mentions-legales.tsx
+++ b/src/pages/mentions-legales.tsx
@@ -1,24 +1,24 @@
-import Link from '@components/atoms/links/link';
-import ResponsiveImage from '@components/molecules/images/responsive-image';
-import { getLayout } from '@components/templates/layout/layout';
+import { NestedMDXComponents } from 'mdx/types';
+import { GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import Link from '../components/atoms/links/link';
+import ResponsiveImage from '../components/molecules/images/responsive-image';
+import { getLayout } from '../components/templates/layout/layout';
import PageLayout, {
type PageLayoutProps,
-} from '@components/templates/page/page-layout';
-import LegalNoticeContent, { meta } from '@content/pages/legal-notice.mdx';
-import { type NextPageWithLayout } from '@ts/types/app';
-import { loadTranslation } from '@utils/helpers/i18n';
+} from '../components/templates/page/page-layout';
+import LegalNoticeContent, { meta } from '../content/pages/legal-notice.mdx';
+import { type NextPageWithLayout } from '../types/app';
+import { loadTranslation } from '../utils/helpers/i18n';
import {
getSchemaJson,
getSinglePageSchema,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
-import { NestedMDXComponents } from 'mdx/types';
-import { GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
+} from '../utils/helpers/schema-org';
+import useBreadcrumb from '../utils/hooks/use-breadcrumb';
+import useSettings from '../utils/hooks/use-settings';
/**
* Legal Notice page.
@@ -43,7 +43,7 @@ const LegalNoticePage: NextPageWithLayout = () => {
const components: NestedMDXComponents = {
Image: ResponsiveImage,
- Link: Link,
+ Link,
};
const { website } = useSettings();
diff --git a/src/pages/projets/[slug].tsx b/src/pages/projets/[slug].tsx
index 79c3760..1614b1b 100644
--- a/src/pages/projets/[slug].tsx
+++ b/src/pages/projets/[slug].tsx
@@ -1,46 +1,49 @@
-import Link from '@components/atoms/links/link';
+import { MDXComponents, NestedMDXComponents } from 'mdx/types';
+import { GetStaticPaths, GetStaticProps } from 'next';
+import dynamic from 'next/dynamic';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import { ComponentType } from 'react';
+import { useIntl } from 'react-intl';
+import Link from '../../components/atoms/links/link';
import SocialLink, {
type SocialWebsite,
-} from '@components/atoms/links/social-link';
-import Spinner from '@components/atoms/loaders/spinner';
+} from '../../components/atoms/links/social-link';
+import Spinner from '../../components/atoms/loaders/spinner';
import ResponsiveImage, {
ResponsiveImageProps,
-} from '@components/molecules/images/responsive-image';
-import Code from '@components/molecules/layout/code';
-import Gallery from '@components/organisms/images/gallery';
+} from '../../components/molecules/images/responsive-image';
+import Code from '../../components/molecules/layout/code';
+import Gallery from '../../components/organisms/images/gallery';
import Overview, {
type OverviewMeta,
-} from '@components/organisms/layout/overview';
-import Sharing from '@components/organisms/widgets/sharing';
-import { getLayout } from '@components/templates/layout/layout';
+} from '../../components/organisms/layout/overview';
+import Sharing from '../../components/organisms/widgets/sharing';
+import { getLayout } from '../../components/templates/layout/layout';
import PageLayout, {
type PageLayoutProps,
-} from '@components/templates/page/page-layout';
-import styles from '@styles/pages/project.module.scss';
+} from '../../components/templates/page/page-layout';
+import styles from '../../styles/pages/project.module.scss';
import {
type NextPageWithLayout,
type ProjectPreview,
type Repos,
-} from '@ts/types/app';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
-import { getProjectData, getProjectFilenames } from '@utils/helpers/projects';
+} from '../../types/app';
+import { loadTranslation, type Messages } from '../../utils/helpers/i18n';
+import {
+ getProjectData,
+ getProjectFilenames,
+} from '../../utils/helpers/projects';
import {
getSchemaJson,
getSinglePageSchema,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import { capitalize } from '@utils/helpers/strings';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useGithubApi, { type RepoData } from '@utils/hooks/use-github-api';
-import useSettings from '@utils/hooks/use-settings';
-import { MDXComponents, NestedMDXComponents } from 'mdx/types';
-import { GetStaticPaths, GetStaticProps } from 'next';
-import dynamic from 'next/dynamic';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
-import { ComponentType } from 'react';
-import { useIntl } from 'react-intl';
+} from '../../utils/helpers/schema-org';
+import { capitalize } from '../../utils/helpers/strings';
+import useBreadcrumb from '../../utils/hooks/use-breadcrumb';
+import useGithubApi, { type RepoData } from '../../utils/hooks/use-github-api';
+import useSettings from '../../utils/hooks/use-settings';
const BorderedImage = (props: ResponsiveImageProps) => {
return <ResponsiveImage withBorders={true} {...props} />;
diff --git a/src/pages/projets/index.tsx b/src/pages/projets/index.tsx
index aaf37e9..2068b30 100644
--- a/src/pages/projets/index.tsx
+++ b/src/pages/projets/index.tsx
@@ -1,26 +1,26 @@
-import Link from '@components/atoms/links/link';
+import { NestedMDXComponents } from 'mdx/types';
+import { GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import Link from '../../components/atoms/links/link';
import CardsList, {
type CardsListItem,
-} from '@components/organisms/layout/cards-list';
-import { getLayout } from '@components/templates/layout/layout';
-import PageLayout from '@components/templates/page/page-layout';
-import PageContent, { meta } from '@content/pages/projects.mdx';
-import styles from '@styles/pages/projects.module.scss';
-import { type NextPageWithLayout, type ProjectCard } from '@ts/types/app';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
-import { getProjectsCard } from '@utils/helpers/projects';
+} from '../../components/organisms/layout/cards-list';
+import { getLayout } from '../../components/templates/layout/layout';
+import PageLayout from '../../components/templates/page/page-layout';
+import PageContent, { meta } from '../../content/pages/projects.mdx';
+import styles from '../../styles/pages/projects.module.scss';
+import { type NextPageWithLayout, type ProjectCard } from '../../types/app';
+import { loadTranslation, type Messages } from '../../utils/helpers/i18n';
+import { getProjectsCard } from '../../utils/helpers/projects';
import {
getSchemaJson,
getSinglePageSchema,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
-import { NestedMDXComponents } from 'mdx/types';
-import { GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
+} from '../../utils/helpers/schema-org';
+import useBreadcrumb from '../../utils/hooks/use-breadcrumb';
+import useSettings from '../../utils/hooks/use-settings';
type ProjectsPageProps = {
projects: ProjectCard[];
@@ -53,7 +53,7 @@ const ProjectsPage: NextPageWithLayout<ProjectsPageProps> = ({ projects }) => {
);
const components: NestedMDXComponents = {
- Links: Link,
+ Link,
};
const { website } = useSettings();
diff --git a/src/pages/recherche/index.tsx b/src/pages/recherche/index.tsx
index dbbec55..fbea3cc 100644
--- a/src/pages/recherche/index.tsx
+++ b/src/pages/recherche/index.tsx
@@ -1,41 +1,44 @@
-import Notice from '@components/atoms/layout/notice';
-import Spinner from '@components/atoms/loaders/spinner';
-import PostsList from '@components/organisms/layout/posts-list';
-import LinksListWidget from '@components/organisms/widgets/links-list-widget';
-import { getLayout } from '@components/templates/layout/layout';
-import PageLayout from '@components/templates/page/page-layout';
-import { getArticles, getTotalArticles } from '@services/graphql/articles';
+import { GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import { useIntl } from 'react-intl';
+import Notice from '../../components/atoms/layout/notice';
+import Spinner from '../../components/atoms/loaders/spinner';
+import PostsList from '../../components/organisms/layout/posts-list';
+import LinksListWidget from '../../components/organisms/widgets/links-list-widget';
+import { getLayout } from '../../components/templates/layout/layout';
+import PageLayout from '../../components/templates/page/page-layout';
+import { getArticles, getTotalArticles } from '../../services/graphql/articles';
import {
getThematicsPreview,
getTotalThematics,
-} from '@services/graphql/thematics';
-import { getTopicsPreview, getTotalTopics } from '@services/graphql/topics';
-import { type NextPageWithLayout } from '@ts/types/app';
+} from '../../services/graphql/thematics';
+import {
+ getTopicsPreview,
+ getTotalTopics,
+} from '../../services/graphql/topics';
+import { type NextPageWithLayout } from '../../types/app';
import {
type RawArticle,
type RawThematicPreview,
type RawTopicPreview,
-} from '@ts/types/raw-data';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
+} from '../../types/raw-data';
+import { loadTranslation, type Messages } from '../../utils/helpers/i18n';
import {
getLinksListItems,
getPageLinkFromRawData,
getPostsList,
-} from '@utils/helpers/pages';
+} from '../../utils/helpers/pages';
import {
getBlogSchema,
getSchemaJson,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useDataFromAPI from '@utils/hooks/use-data-from-api';
-import usePagination from '@utils/hooks/use-pagination';
-import useSettings from '@utils/hooks/use-settings';
-import { GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
-import { useIntl } from 'react-intl';
+} from '../../utils/helpers/schema-org';
+import useBreadcrumb from '../../utils/hooks/use-breadcrumb';
+import useDataFromAPI from '../../utils/hooks/use-data-from-api';
+import usePagination from '../../utils/hooks/use-pagination';
+import useSettings from '../../utils/hooks/use-settings';
type SearchPageProps = {
thematicsList: RawThematicPreview[];
diff --git a/src/pages/sujet/[slug].tsx b/src/pages/sujet/[slug].tsx
index 48924e5..ffde92d 100644
--- a/src/pages/sujet/[slug].tsx
+++ b/src/pages/sujet/[slug].tsx
@@ -1,42 +1,42 @@
-import Heading from '@components/atoms/headings/heading';
-import ResponsiveImage from '@components/molecules/images/responsive-image';
-import PostsList from '@components/organisms/layout/posts-list';
-import LinksListWidget from '@components/organisms/widgets/links-list-widget';
-import { getLayout } from '@components/templates/layout/layout';
+import { GetStaticPaths, GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import { ParsedUrlQuery } from 'querystring';
+import { useIntl } from 'react-intl';
+import Heading from '../../components/atoms/headings/heading';
+import ResponsiveImage from '../../components/molecules/images/responsive-image';
+import PostsList from '../../components/organisms/layout/posts-list';
+import LinksListWidget from '../../components/organisms/widgets/links-list-widget';
+import { getLayout } from '../../components/templates/layout/layout';
import PageLayout, {
type PageLayoutProps,
-} from '@components/templates/page/page-layout';
+} from '../../components/templates/page/page-layout';
import {
getAllTopicsSlugs,
getTopicBySlug,
getTopicsPreview,
getTotalTopics,
-} from '@services/graphql/topics';
-import styles from '@styles/pages/topic.module.scss';
+} from '../../services/graphql/topics';
+import styles from '../../styles/pages/topic.module.scss';
import {
type NextPageWithLayout,
type PageLink,
type Topic,
-} from '@ts/types/app';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
+} from '../../types/app';
+import { loadTranslation, type Messages } from '../../utils/helpers/i18n';
import {
getLinksListItems,
getPageLinkFromRawData,
getPostsWithUrl,
-} from '@utils/helpers/pages';
+} from '../../utils/helpers/pages';
import {
getSchemaJson,
getSinglePageSchema,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
-import { GetStaticPaths, GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
-import { ParsedUrlQuery } from 'querystring';
-import { useIntl } from 'react-intl';
+} from '../../utils/helpers/schema-org';
+import useBreadcrumb from '../../utils/hooks/use-breadcrumb';
+import useSettings from '../../utils/hooks/use-settings';
export type TopicPageProps = {
currentTopic: Topic;
diff --git a/src/pages/thematique/[slug].tsx b/src/pages/thematique/[slug].tsx
index 7aa6c1c..b7d97a3 100644
--- a/src/pages/thematique/[slug].tsx
+++ b/src/pages/thematique/[slug].tsx
@@ -1,40 +1,40 @@
-import Heading from '@components/atoms/headings/heading';
-import PostsList from '@components/organisms/layout/posts-list';
-import LinksListWidget from '@components/organisms/widgets/links-list-widget';
-import { getLayout } from '@components/templates/layout/layout';
+import { GetStaticPaths, GetStaticProps } from 'next';
+import Head from 'next/head';
+import { useRouter } from 'next/router';
+import Script from 'next/script';
+import { ParsedUrlQuery } from 'querystring';
+import { useIntl } from 'react-intl';
+import Heading from '../../components/atoms/headings/heading';
+import PostsList from '../../components/organisms/layout/posts-list';
+import LinksListWidget from '../../components/organisms/widgets/links-list-widget';
+import { getLayout } from '../../components/templates/layout/layout';
import PageLayout, {
type PageLayoutProps,
-} from '@components/templates/page/page-layout';
+} from '../../components/templates/page/page-layout';
import {
getAllThematicsSlugs,
getThematicBySlug,
getThematicsPreview,
getTotalThematics,
-} from '@services/graphql/thematics';
+} from '../../services/graphql/thematics';
import {
type NextPageWithLayout,
type PageLink,
type Thematic,
-} from '@ts/types/app';
-import { loadTranslation, type Messages } from '@utils/helpers/i18n';
+} from '../../types/app';
+import { loadTranslation, type Messages } from '../../utils/helpers/i18n';
import {
getLinksListItems,
getPageLinkFromRawData,
getPostsWithUrl,
-} from '@utils/helpers/pages';
+} from '../../utils/helpers/pages';
import {
getSchemaJson,
getSinglePageSchema,
getWebPageSchema,
-} from '@utils/helpers/schema-org';
-import useBreadcrumb from '@utils/hooks/use-breadcrumb';
-import useSettings from '@utils/hooks/use-settings';
-import { GetStaticPaths, GetStaticProps } from 'next';
-import Head from 'next/head';
-import { useRouter } from 'next/router';
-import Script from 'next/script';
-import { ParsedUrlQuery } from 'querystring';
-import { useIntl } from 'react-intl';
+} from '../../utils/helpers/schema-org';
+import useBreadcrumb from '../../utils/hooks/use-breadcrumb';
+import useSettings from '../../utils/hooks/use-settings';
export type ThematicPageProps = {
currentThematic: Thematic;
diff --git a/src/services/graphql/api.ts b/src/services/graphql/api.ts
index e587ccc..e7f6e57 100644
--- a/src/services/graphql/api.ts
+++ b/src/services/graphql/api.ts
@@ -2,13 +2,13 @@ import {
Mutations,
MutationsInputMap,
MutationsResponseMap,
-} from '@ts/types/graphql/mutations';
+} from '../../types/graphql/mutations';
import {
Queries,
QueriesInputMap,
QueriesResponseMap,
-} from '@ts/types/graphql/queries';
-import { settings } from '@utils/config';
+} from '../../types/graphql/queries';
+import { settings } from '../../utils/config';
/**
* Retrieve the API url from settings.
diff --git a/src/services/graphql/articles.ts b/src/services/graphql/articles.ts
index 1a7b2e0..5f98fe9 100644
--- a/src/services/graphql/articles.ts
+++ b/src/services/graphql/articles.ts
@@ -1,14 +1,17 @@
-import { type Article, type ArticleCard, type Slug } from '@ts/types/app';
-import { GraphQLEdgesInput, GraphQLPageInfo } from '@ts/types/graphql/generics';
-import { EdgesResponse, EndCursorResponse } from '@ts/types/graphql/queries';
+import { type Article, type ArticleCard, type Slug } from '../../types/app';
+import {
+ GraphQLEdgesInput,
+ GraphQLPageInfo,
+} from '../../types/graphql/generics';
+import { EdgesResponse, EndCursorResponse } from '../../types/graphql/queries';
import {
type RawArticle,
type RawArticlePreview,
type TotalItems,
-} from '@ts/types/raw-data';
-import { getAuthorFromRawData } from '@utils/helpers/author';
-import { getImageFromRawData } from '@utils/helpers/images';
-import { getPageLinkFromRawData } from '@utils/helpers/pages';
+} from '../../types/raw-data';
+import { getAuthorFromRawData } from '../../utils/helpers/author';
+import { getImageFromRawData } from '../../utils/helpers/images';
+import { getPageLinkFromRawData } from '../../utils/helpers/pages';
import { fetchAPI } from './api';
import {
articleBySlugQuery,
diff --git a/src/services/graphql/comments.ts b/src/services/graphql/comments.ts
index 41f80b3..426a649 100644
--- a/src/services/graphql/comments.ts
+++ b/src/services/graphql/comments.ts
@@ -1,9 +1,9 @@
-import { SingleComment } from '@ts/types/app';
-import { GraphQLEdgesInput } from '@ts/types/graphql/generics';
-import { SendCommentInput, SentComment } from '@ts/types/graphql/mutations';
-import { ContentId } from '@ts/types/graphql/queries';
-import { RawComment, RawCommentsPage } from '@ts/types/raw-data';
-import { getAuthorFromRawData } from '@utils/helpers/author';
+import { SingleComment } from '../../types/app';
+import { GraphQLEdgesInput } from '../../types/graphql/generics';
+import { SendCommentInput, SentComment } from '../../types/graphql/mutations';
+import { ContentId } from '../../types/graphql/queries';
+import { RawComment, RawCommentsPage } from '../../types/raw-data';
+import { getAuthorFromRawData } from '../../utils/helpers/author';
import { fetchAPI } from './api';
import { sendCommentMutation } from './comments.mutation';
import { commentsQuery } from './comments.query';
diff --git a/src/services/graphql/contact.ts b/src/services/graphql/contact.ts
index de078b9..37c640d 100644
--- a/src/services/graphql/contact.ts
+++ b/src/services/graphql/contact.ts
@@ -1,4 +1,4 @@
-import { SendMailInput } from '@ts/types/graphql/mutations';
+import { SendMailInput } from '../../types/graphql/mutations';
import { fetchAPI } from './api';
import { sendMailMutation } from './contact.mutation';
diff --git a/src/services/graphql/thematics.ts b/src/services/graphql/thematics.ts
index 508fc2f..9210828 100644
--- a/src/services/graphql/thematics.ts
+++ b/src/services/graphql/thematics.ts
@@ -1,17 +1,17 @@
-import { PageLink, Slug, Thematic } from '@ts/types/app';
-import { GraphQLEdgesInput } from '@ts/types/graphql/generics';
-import { EdgesResponse } from '@ts/types/graphql/queries';
+import { PageLink, Slug, Thematic } from '../../types/app';
+import { GraphQLEdgesInput } from '../../types/graphql/generics';
+import { EdgesResponse } from '../../types/graphql/queries';
import {
RawArticle,
RawThematic,
RawThematicPreview,
TotalItems,
-} from '@ts/types/raw-data';
-import { getImageFromRawData } from '@utils/helpers/images';
+} from '../../types/raw-data';
+import { getImageFromRawData } from '../../utils/helpers/images';
import {
getPageLinkFromRawData,
sortPageLinksByName,
-} from '@utils/helpers/pages';
+} from '../../utils/helpers/pages';
import { fetchAPI } from './api';
import { getArticleFromRawData } from './articles';
import {
diff --git a/src/services/graphql/topics.ts b/src/services/graphql/topics.ts
index 5448d89..4c2f609 100644
--- a/src/services/graphql/topics.ts
+++ b/src/services/graphql/topics.ts
@@ -1,17 +1,17 @@
-import { PageLink, Slug, Topic } from '@ts/types/app';
-import { GraphQLEdgesInput } from '@ts/types/graphql/generics';
-import { EdgesResponse } from '@ts/types/graphql/queries';
+import { PageLink, Slug, Topic } from '../../types/app';
+import { GraphQLEdgesInput } from '../../types/graphql/generics';
+import { EdgesResponse } from '../../types/graphql/queries';
import {
RawArticle,
RawTopic,
RawTopicPreview,
TotalItems,
-} from '@ts/types/raw-data';
-import { getImageFromRawData } from '@utils/helpers/images';
+} from '../../types/raw-data';
+import { getImageFromRawData } from '../../utils/helpers/images';
import {
getPageLinkFromRawData,
sortPageLinksByName,
-} from '@utils/helpers/pages';
+} from '../../utils/helpers/pages';
import { fetchAPI } from './api';
import { getArticleFromRawData } from './articles';
import {
diff --git a/src/styles/abstracts/_variables.scss b/src/styles/abstracts/_variables.scss
index fc28e7b..d56ba18 100644
--- a/src/styles/abstracts/_variables.scss
+++ b/src/styles/abstracts/_variables.scss
@@ -1,6 +1,6 @@
@use "sass:map";
@use "sass:math";
-@use "@styles/abstracts/functions" as fun;
+@use "./functions" as fun;
//===========================================================================
// Ratios
diff --git a/src/styles/abstracts/mixins/_media-queries.scss b/src/styles/abstracts/mixins/_media-queries.scss
index e72f572..021b4c8 100644
--- a/src/styles/abstracts/mixins/_media-queries.scss
+++ b/src/styles/abstracts/mixins/_media-queries.scss
@@ -1,5 +1,5 @@
-@use "../variables" as var;
@use "sass:map";
+@use "../variables" as var;
/// Media query: media type
/// @param {String} $type - Media type: all, screen, print, retina.
diff --git a/src/styles/abstracts/placeholders/_layout.scss b/src/styles/abstracts/placeholders/_layout.scss
index 1a28acb..94db45d 100644
--- a/src/styles/abstracts/placeholders/_layout.scss
+++ b/src/styles/abstracts/placeholders/_layout.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
+@use "../mixins" as mix;
%grid {
display: grid;
diff --git a/src/styles/base/_animations.scss b/src/styles/base/_animations.scss
index ad870e9..21e1b47 100644
--- a/src/styles/base/_animations.scss
+++ b/src/styles/base/_animations.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../abstracts/functions" as fun;
@keyframes pulse {
from {
diff --git a/src/styles/base/_base.scss b/src/styles/base/_base.scss
index b6a6082..91989bd 100644
--- a/src/styles/base/_base.scss
+++ b/src/styles/base/_base.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../abstracts/functions" as fun;
+@use "../abstracts/mixins" as mix;
audio,
button,
diff --git a/src/styles/base/_colors.scss b/src/styles/base/_colors.scss
index 4db97d9..eed7a9a 100644
--- a/src/styles/base/_colors.scss
+++ b/src/styles/base/_colors.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/variables" as var;
+@use "../abstracts/variables" as var;
:root {
--color-bg: #{var.$light-theme_white};
diff --git a/src/styles/base/_fonts.scss b/src/styles/base/_fonts.scss
index c8695d4..69c0a70 100644
--- a/src/styles/base/_fonts.scss
+++ b/src/styles/base/_fonts.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/variables" as var;
@use "sass:math";
+@use "../abstracts/variables" as var;
@font-face {
font-family: Kanit;
diff --git a/src/styles/base/_helpers.scss b/src/styles/base/_helpers.scss
index 381154f..e38d398 100644
--- a/src/styles/base/_helpers.scss
+++ b/src/styles/base/_helpers.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../abstracts/functions" as fun;
+@use "../abstracts/mixins" as mix;
/*=========================================================================
>>> TABLE OF CONTENTS:
diff --git a/src/styles/base/_spacings.scss b/src/styles/base/_spacings.scss
index 7c8b210..3cff009 100644
--- a/src/styles/base/_spacings.scss
+++ b/src/styles/base/_spacings.scss
@@ -1,7 +1,7 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/variables" as var;
@use "sass:math";
+@use "../abstracts/functions" as fun;
+@use "../abstracts/mixins" as mix;
+@use "../abstracts/variables" as var;
:root {
--spacing-2xs: clamp(
diff --git a/src/styles/base/_typography.scss b/src/styles/base/_typography.scss
index 2c3c8cc..dc958c4 100644
--- a/src/styles/base/_typography.scss
+++ b/src/styles/base/_typography.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../abstracts/functions" as fun;
h1 {
font-size: var(--font-size-3xl);
diff --git a/src/styles/layout/_grid.scss b/src/styles/layout/_grid.scss
index 7948c5f..3e6e7de 100644
--- a/src/styles/layout/_grid.scss
+++ b/src/styles/layout/_grid.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
+@use "../abstracts/mixins" as mix;
.grid {
--grid-gap: var(--spacing-md);
diff --git a/src/styles/pages/Page.module.scss b/src/styles/pages/Page.module.scss
index 6aadff6..24fc1eb 100644
--- a/src/styles/pages/Page.module.scss
+++ b/src/styles/pages/Page.module.scss
@@ -1,9 +1,8 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../abstracts/functions" as fun;
+@use "../abstracts/placeholders";
.article {
- composes: grid from "@styles/layout/_grid.scss";
+ composes: grid from "../layout/_grid.scss";
align-items: start;
> header {
@@ -37,7 +36,7 @@ li.item {
.comments {
grid-column: 1 / -1;
- composes: grid from "@styles/layout/_grid.scss";
+ composes: grid from "../layout/_grid.scss";
margin: var(--spacing-md) 0 0;
padding: var(--spacing-md) 0 var(--spacing-lg);
background: var(--color-bg-secondary);
diff --git a/src/styles/pages/article.module.scss b/src/styles/pages/article.module.scss
index a5299fe..48aed79 100644
--- a/src/styles/pages/article.module.scss
+++ b/src/styles/pages/article.module.scss
@@ -1,6 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/variables" as var;
+@use "../abstracts/functions" as fun;
+@use "../abstracts/mixins" as mix;
@use "partials/article-links";
@use "partials/article-lists";
@use "partials/article-media";
diff --git a/src/styles/pages/home.module.scss b/src/styles/pages/home.module.scss
index 873a5a9..59c8c6f 100644
--- a/src/styles/pages/home.module.scss
+++ b/src/styles/pages/home.module.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../abstracts/functions" as fun;
+@use "../abstracts/mixins" as mix;
.section {
--card-width: 25ch;
diff --git a/src/styles/pages/partials/_article-headings.scss b/src/styles/pages/partials/_article-headings.scss
index c0c3519..dfeceb7 100644
--- a/src/styles/pages/partials/_article-headings.scss
+++ b/src/styles/pages/partials/_article-headings.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../abstracts/functions" as fun;
@mixin styles {
h1 {
diff --git a/src/styles/pages/partials/_article-links.scss b/src/styles/pages/partials/_article-links.scss
index 543337a..e88b81e 100644
--- a/src/styles/pages/partials/_article-links.scss
+++ b/src/styles/pages/partials/_article-links.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/variables" as var;
+@use "../../abstracts/functions" as fun;
+@use "../../abstracts/variables" as var;
@mixin styles {
a {
diff --git a/src/styles/pages/partials/_article-media.scss b/src/styles/pages/partials/_article-media.scss
index 0cd3654..2fd6fe4 100644
--- a/src/styles/pages/partials/_article-media.scss
+++ b/src/styles/pages/partials/_article-media.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../../abstracts/functions" as fun;
@mixin styles {
figure {
diff --git a/src/styles/pages/partials/_article-prism.scss b/src/styles/pages/partials/_article-prism.scss
index a714eb6..7d23e38 100644
--- a/src/styles/pages/partials/_article-prism.scss
+++ b/src/styles/pages/partials/_article-prism.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
+@use "../../abstracts/functions" as fun;
+@use "../../abstracts/mixins" as mix;
@mixin styles {
.code-toolbar {
diff --git a/src/styles/pages/partials/_article-wp-blocks.scss b/src/styles/pages/partials/_article-wp-blocks.scss
index 86be062..6a847b1 100644
--- a/src/styles/pages/partials/_article-wp-blocks.scss
+++ b/src/styles/pages/partials/_article-wp-blocks.scss
@@ -1,6 +1,6 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/mixins" as mix;
-@use "@styles/abstracts/placeholders";
+@use "../../abstracts/functions" as fun;
+@use "../../abstracts/mixins" as mix;
+@use "../../abstracts/placeholders";
@mixin styles {
.wp-block-quote {
diff --git a/src/styles/pages/project.module.scss b/src/styles/pages/project.module.scss
index 3b1b5cc..0bbd77d 100644
--- a/src/styles/pages/project.module.scss
+++ b/src/styles/pages/project.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
+@use "../abstracts/mixins" as mix;
.widget {
@include mix.media("screen") {
diff --git a/src/styles/pages/projects.module.scss b/src/styles/pages/projects.module.scss
index fde1f31..f72c573 100644
--- a/src/styles/pages/projects.module.scss
+++ b/src/styles/pages/projects.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/mixins" as mix;
+@use "../abstracts/mixins" as mix;
.list {
margin-top: var(--spacing-sm);
diff --git a/src/styles/pages/topic.module.scss b/src/styles/pages/topic.module.scss
index fd5f742..bec4ba2 100644
--- a/src/styles/pages/topic.module.scss
+++ b/src/styles/pages/topic.module.scss
@@ -1,4 +1,4 @@
-@use "@styles/abstracts/functions" as fun;
+@use "../abstracts/functions" as fun;
.logo {
max-width: fun.convert-px(50);
diff --git a/src/styles/themes/_dark.scss b/src/styles/themes/_dark.scss
index 946403a..d689bcc 100644
--- a/src/styles/themes/_dark.scss
+++ b/src/styles/themes/_dark.scss
@@ -1,5 +1,5 @@
-@use "@styles/abstracts/functions" as fun;
-@use "@styles/abstracts/variables" as var;
+@use "../abstracts/functions" as fun;
+@use "../abstracts/variables" as var;
[data-theme="dark"] {
* {
diff --git a/src/ts/types/app.ts b/src/types/app.ts
index 64bb3af..64bb3af 100644
--- a/src/ts/types/app.ts
+++ b/src/types/app.ts
diff --git a/src/ts/types/graphql/generics.ts b/src/types/graphql/generics.ts
index dec5f10..dec5f10 100644
--- a/src/ts/types/graphql/generics.ts
+++ b/src/types/graphql/generics.ts
diff --git a/src/ts/types/graphql/mutations.ts b/src/types/graphql/mutations.ts
index 10bdbd1..581a46e 100644
--- a/src/ts/types/graphql/mutations.ts
+++ b/src/types/graphql/mutations.ts
@@ -1,5 +1,5 @@
-import { sendCommentMutation } from '@services/graphql/comments.mutation';
-import { sendMailMutation } from '@services/graphql/contact.mutation';
+import { sendCommentMutation } from '../../services/graphql/comments.mutation';
+import { sendMailMutation } from '../../services/graphql/contact.mutation';
//===========================================================================
// Existing mutations list
diff --git a/src/ts/types/graphql/queries.ts b/src/types/graphql/queries.ts
index c29eeb3..fceae30 100644
--- a/src/ts/types/graphql/queries.ts
+++ b/src/types/graphql/queries.ts
@@ -5,20 +5,20 @@ import {
articlesQuery,
articlesSlugQuery,
totalArticlesQuery,
-} from '@services/graphql/articles.query';
-import { commentsQuery } from '@services/graphql/comments.query';
+} from '../../services/graphql/articles.query';
+import { commentsQuery } from '../../services/graphql/comments.query';
import {
thematicBySlugQuery,
thematicsListQuery,
thematicsSlugQuery,
totalThematicsQuery,
-} from '@services/graphql/thematics.query';
+} from '../../services/graphql/thematics.query';
import {
topicBySlugQuery,
topicsListQuery,
topicsSlugQuery,
totalTopicsQuery,
-} from '@services/graphql/topics.query';
+} from '../../services/graphql/topics.query';
import { Slug } from '../app';
import { RawComment } from '../raw-data';
import {
diff --git a/src/ts/types/mdx.ts b/src/types/mdx.ts
index 7645ce6..7645ce6 100644
--- a/src/ts/types/mdx.ts
+++ b/src/types/mdx.ts
diff --git a/src/ts/types/raw-data.ts b/src/types/raw-data.ts
index 022016e..022016e 100644
--- a/src/ts/types/raw-data.ts
+++ b/src/types/raw-data.ts
diff --git a/src/ts/types/swr.ts b/src/types/swr.ts
index 4da6b2c..4da6b2c 100644
--- a/src/ts/types/swr.ts
+++ b/src/types/swr.ts
diff --git a/src/utils/helpers/author.ts b/src/utils/helpers/author.ts
index 40743ca..2892524 100644
--- a/src/utils/helpers/author.ts
+++ b/src/utils/helpers/author.ts
@@ -1,5 +1,5 @@
-import { type Author, type ContentKind } from '@ts/types/app';
-import { type RawAuthor } from '@ts/types/raw-data';
+import { type Author, type ContentKind } from '../../types/app';
+import { type RawAuthor } from '../../types/raw-data';
/**
* Convert author raw data to regular data.
diff --git a/src/utils/helpers/dates.ts b/src/utils/helpers/dates.ts
index cb56ad2..82c14db 100644
--- a/src/utils/helpers/dates.ts
+++ b/src/utils/helpers/dates.ts
@@ -1,4 +1,4 @@
-import { settings } from '@utils/config';
+import { settings } from '../config';
/**
* Format a date based on a locale.
diff --git a/src/utils/helpers/i18n.ts b/src/utils/helpers/i18n.ts
index 5d19c8c..35d495e 100644
--- a/src/utils/helpers/i18n.ts
+++ b/src/utils/helpers/i18n.ts
@@ -1,7 +1,7 @@
import { createIntl, createIntlCache, IntlShape } from '@formatjs/intl';
-import { settings } from '@utils/config';
import { readFile } from 'fs/promises';
import path from 'path';
+import { settings } from '../config';
export type Messages = { [key: string]: string };
diff --git a/src/utils/helpers/images.ts b/src/utils/helpers/images.ts
index 30bb8be..bff50c3 100644
--- a/src/utils/helpers/images.ts
+++ b/src/utils/helpers/images.ts
@@ -1,5 +1,5 @@
-import { Image } from '@ts/types/app';
-import { RawCover } from '@ts/types/raw-data';
+import { Image } from '../../types/app';
+import { RawCover } from '../../types/raw-data';
/**
* Retrieve an Image object from raw data.
diff --git a/src/utils/helpers/pages.ts b/src/utils/helpers/pages.ts
index eb4453b..d6d44d2 100644
--- a/src/utils/helpers/pages.ts
+++ b/src/utils/helpers/pages.ts
@@ -1,13 +1,13 @@
-import { type Post } from '@components/organisms/layout/posts-list';
-import { type LinksListItems } from '@components/organisms/widgets/links-list-widget';
-import { getArticleFromRawData } from '@services/graphql/articles';
-import { type Article, type PageLink } from '@ts/types/app';
-import { EdgesResponse } from '@ts/types/graphql/queries';
+import { type Post } from '../../components/organisms/layout/posts-list';
+import { type LinksListItems } from '../../components/organisms/widgets/links-list-widget';
+import { getArticleFromRawData } from '../../services/graphql/articles';
+import { type Article, type PageLink } from '../../types/app';
+import { EdgesResponse } from '../../types/graphql/queries';
import {
type RawArticle,
type RawThematicPreview,
type RawTopicPreview,
-} from '@ts/types/raw-data';
+} from '../../types/raw-data';
import { getImageFromRawData } from './images';
/**
diff --git a/src/utils/helpers/projects.ts b/src/utils/helpers/projects.ts
index 88f4516..0e4de7d 100644
--- a/src/utils/helpers/projects.ts
+++ b/src/utils/helpers/projects.ts
@@ -1,7 +1,7 @@
-import { ProjectCard, ProjectPreview } from '@ts/types/app';
-import { MDXProjectMeta } from '@ts/types/mdx';
-import { readdirSync } from 'fs';
-import path from 'path';
+import { readdirSync } from 'node:fs';
+import path from 'node:path';
+import { ProjectCard, ProjectPreview } from '../../types/app';
+import { MDXProjectMeta } from '../../types/mdx';
/**
* Retrieve all the projects filename.
diff --git a/src/utils/helpers/rss.ts b/src/utils/helpers/rss.ts
index 8ee774c..41a036c 100644
--- a/src/utils/helpers/rss.ts
+++ b/src/utils/helpers/rss.ts
@@ -1,11 +1,11 @@
+import { Feed } from 'feed';
import {
getArticleFromRawData,
getArticles,
getTotalArticles,
-} from '@services/graphql/articles';
-import { Article } from '@ts/types/app';
-import { settings } from '@utils/config';
-import { Feed } from 'feed';
+} from '../../services/graphql/articles';
+import { Article } from '../../types/app';
+import { settings } from '../../utils/config';
/**
* Retrieve the data for all the articles.
diff --git a/src/utils/helpers/schema-org.ts b/src/utils/helpers/schema-org.ts
index cdace00..5d400c8 100644
--- a/src/utils/helpers/schema-org.ts
+++ b/src/utils/helpers/schema-org.ts
@@ -1,5 +1,3 @@
-import { Dates } from '@ts/types/app';
-import { settings } from '@utils/config';
import {
AboutPage,
Article,
@@ -9,6 +7,8 @@ import {
Graph,
WebPage,
} from 'schema-dts';
+import { Dates } from '../../types/app';
+import { settings } from '../../utils/config';
export type GetBlogSchemaProps = {
/**
diff --git a/src/utils/hooks/use-article.tsx b/src/utils/hooks/use-article.tsx
index e658407..f6512b2 100644
--- a/src/utils/hooks/use-article.tsx
+++ b/src/utils/hooks/use-article.tsx
@@ -1,9 +1,9 @@
-import { fetchAPI } from '@services/graphql/api';
-import { getArticleFromRawData } from '@services/graphql/articles';
-import { articleBySlugQuery } from '@services/graphql/articles.query';
-import { Article } from '@ts/types/app';
-import { RawArticle } from '@ts/types/raw-data';
import useSWR from 'swr';
+import { fetchAPI } from '../../services/graphql/api';
+import { getArticleFromRawData } from '../../services/graphql/articles';
+import { articleBySlugQuery } from '../../services/graphql/articles.query';
+import { Article } from '../../types/app';
+import { RawArticle } from '../../types/raw-data';
export type UseArticleConfig = {
fallback?: Article;
diff --git a/src/utils/hooks/use-attributes.tsx b/src/utils/hooks/use-attributes.tsx
index 6d18048..35161ed 100644
--- a/src/utils/hooks/use-attributes.tsx
+++ b/src/utils/hooks/use-attributes.tsx
@@ -1,5 +1,5 @@
-import { fromKebabCaseToCamelCase } from '@utils/helpers/strings';
import { useCallback, useEffect } from 'react';
+import { fromKebabCaseToCamelCase } from '../helpers/strings';
export type useAttributesProps = {
/**
diff --git a/src/utils/hooks/use-breadcrumb.tsx b/src/utils/hooks/use-breadcrumb.tsx
index 130ebf1..dcdf87f 100644
--- a/src/utils/hooks/use-breadcrumb.tsx
+++ b/src/utils/hooks/use-breadcrumb.tsx
@@ -1,7 +1,7 @@
-import { BreadcrumbItem } from '@components/molecules/nav/breadcrumb';
-import { slugify } from '@utils/helpers/strings';
import { useIntl } from 'react-intl';
import { BreadcrumbList } from 'schema-dts';
+import { BreadcrumbItem } from '../../components/molecules/nav/breadcrumb';
+import { slugify } from '../helpers/strings';
import useSettings from './use-settings';
export type useBreadcrumbProps = {
diff --git a/src/utils/hooks/use-comments.tsx b/src/utils/hooks/use-comments.tsx
index a695bd7..8281a86 100644
--- a/src/utils/hooks/use-comments.tsx
+++ b/src/utils/hooks/use-comments.tsx
@@ -1,6 +1,6 @@
-import { getAllComments } from '@services/graphql/comments';
-import { SingleComment } from '@ts/types/app';
import useSWR from 'swr';
+import { getAllComments } from '../../services/graphql/comments';
+import { SingleComment } from '../../types/app';
export type UseCommentsConfig = {
contentId?: string | number;
diff --git a/src/utils/hooks/use-github-api.tsx b/src/utils/hooks/use-github-api.tsx
index edff974..56df01f 100644
--- a/src/utils/hooks/use-github-api.tsx
+++ b/src/utils/hooks/use-github-api.tsx
@@ -1,5 +1,5 @@
-import { SWRResult } from '@ts/types/swr';
import useSWR, { Fetcher } from 'swr';
+import { SWRResult } from '../../types/swr';
export type RepoData = {
created_at: string;
diff --git a/src/utils/hooks/use-headings-tree.tsx b/src/utils/hooks/use-headings-tree.tsx
index f7ab452..0dc077e 100644
--- a/src/utils/hooks/use-headings-tree.tsx
+++ b/src/utils/hooks/use-headings-tree.tsx
@@ -1,5 +1,5 @@
-import { slugify } from '@utils/helpers/strings';
import { useCallback, useEffect, useMemo, useState } from 'react';
+import { slugify } from '../helpers/strings';
import { useMutationObserver } from './use-mutation-observer';
export type Heading = {
diff --git a/src/utils/hooks/use-local-storage.tsx b/src/utils/hooks/use-local-storage.tsx
index da0292b..1809e07 100644
--- a/src/utils/hooks/use-local-storage.tsx
+++ b/src/utils/hooks/use-local-storage.tsx
@@ -1,4 +1,4 @@
-import { LocalStorage } from '@services/local-storage';
+import { LocalStorage } from '../../services/local-storage';
import { Dispatch, SetStateAction, useEffect, useState } from 'react';
export type UseLocalStorageReturn<T> = {
diff --git a/src/utils/hooks/use-pagination.tsx b/src/utils/hooks/use-pagination.tsx
index f17b6ff..f47a674 100644
--- a/src/utils/hooks/use-pagination.tsx
+++ b/src/utils/hooks/use-pagination.tsx
@@ -1,6 +1,6 @@
-import { GraphQLEdgesInput } from '@ts/types/graphql/generics';
-import { EdgesResponse, Search } from '@ts/types/graphql/queries';
import useSWRInfinite, { SWRInfiniteKeyLoader } from 'swr/infinite';
+import { GraphQLEdgesInput } from '../../types/graphql/generics';
+import { EdgesResponse, Search } from '../../types/graphql/queries';
export type UsePaginationProps<T> = {
/**
diff --git a/src/utils/hooks/use-prism.tsx b/src/utils/hooks/use-prism.tsx
index ef1a4c8..05790a3 100644
--- a/src/utils/hooks/use-prism.tsx
+++ b/src/utils/hooks/use-prism.tsx
@@ -17,7 +17,7 @@ const PRISM_PLUGINS = [
'toolbar',
] as const;
-export type PrismPlugin = typeof PRISM_PLUGINS[number];
+export type PrismPlugin = (typeof PRISM_PLUGINS)[number];
export type DefaultPrismPlugin = Extract<
PrismPlugin,
@@ -90,7 +90,7 @@ const loadPrismPlugins = async (plugins: PrismPlugin[]) => {
for (const plugin of plugins) {
try {
if (plugin === 'color-scheme') {
- await import(`@utils/plugins/prism-${plugin}`);
+ await import(`../plugins/prism-${plugin}`);
} else {
await import(`prismjs/plugins/${plugin}/prism-${plugin}.min.js`);
}
diff --git a/src/utils/hooks/use-settings.tsx b/src/utils/hooks/use-settings.tsx
index a1d1a65..edb5b5e 100644
--- a/src/utils/hooks/use-settings.tsx
+++ b/src/utils/hooks/use-settings.tsx
@@ -1,5 +1,5 @@
-import { settings } from '@utils/config';
import { useRouter } from 'next/router';
+import { settings } from '../config';
export type BlogSettings = {
/**
diff --git a/src/utils/hooks/use-update-ackee-options.tsx b/src/utils/hooks/use-update-ackee-options.tsx
index 7c1d98a..1901588 100644
--- a/src/utils/hooks/use-update-ackee-options.tsx
+++ b/src/utils/hooks/use-update-ackee-options.tsx
@@ -1,5 +1,5 @@
-import { useAckeeTracker } from '@utils/providers/ackee';
import { useEffect } from 'react';
+import { useAckeeTracker } from '../providers/ackee';
export type AckeeOptions = 'full' | 'partial';
diff --git a/src/utils/providers/prism-theme.tsx b/src/utils/providers/prism-theme.tsx
index dd8feb7..6ecbb1d 100644
--- a/src/utils/providers/prism-theme.tsx
+++ b/src/utils/providers/prism-theme.tsx
@@ -1,6 +1,3 @@
-import useAttributes from '@utils/hooks/use-attributes';
-import useLocalStorage from '@utils/hooks/use-local-storage';
-import useQuerySelectorAll from '@utils/hooks/use-query-selector-all';
import {
createContext,
FC,
@@ -10,6 +7,9 @@ import {
useEffect,
useState,
} from 'react';
+import useAttributes from '../hooks/use-attributes';
+import useLocalStorage from '../hooks/use-local-storage';
+import useQuerySelectorAll from '../hooks/use-query-selector-all';
export type PrismTheme = 'dark' | 'light' | 'system';
export type ResolvedPrismTheme = Exclude<PrismTheme, 'system'>;
diff --git a/tests/cypress/e2e/pages/blog.cy.ts b/tests/cypress/e2e/pages/blog.cy.ts
index dedc0e4..4327332 100644
--- a/tests/cypress/e2e/pages/blog.cy.ts
+++ b/tests/cypress/e2e/pages/blog.cy.ts
@@ -1,4 +1,4 @@
-import { settings } from '@utils/config';
+import { settings } from '../../../../src/utils/config';
describe('Blog Page', () => {
beforeEach(() => {
diff --git a/tests/cypress/e2e/pages/homepage.cy.ts b/tests/cypress/e2e/pages/homepage.cy.ts
index 52bfbc7..8cd58cb 100644
--- a/tests/cypress/e2e/pages/homepage.cy.ts
+++ b/tests/cypress/e2e/pages/homepage.cy.ts
@@ -1,4 +1,4 @@
-import { settings } from '@utils/config';
+import { settings } from '../../../../src/utils/config';
describe('HomePage', () => {
it('successfully loads', () => {
diff --git a/tsconfig.json b/tsconfig.json
index ffd05b7..c216dfd 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -15,19 +15,7 @@
"jsx": "preserve",
"incremental": true,
"types": ["jest", "@testing-library/jest-dom"],
- "baseUrl": ".",
- "paths": {
- "@i18n/*": ["src/i18n/*"],
- "@assets/*": ["src/assets/*"],
- "@content/*": ["src/content/*"],
- "@components/*": ["src/components/*"],
- "@pages/*": ["src/pages/*"],
- "@services/*": ["src/services/*"],
- "@styles/*": ["src/styles/*"],
- "@tests/*": ["tests/*"],
- "@ts/*": ["src/ts/*"],
- "@utils/*": ["src/utils/*"]
- }
+ "baseUrl": "."
},
"include": [
"next-env.d.ts",