diff --git a/storefront/src/apollo/index.js b/storefront/src/apollo/index.js new file mode 100644 index 00000000..06422b5b --- /dev/null +++ b/storefront/src/apollo/index.js @@ -0,0 +1,41 @@ +import {ApolloClient, ApolloLink, createHttpLink, InMemoryCache} from '@apollo/client/core' +import { setContext } from '@apollo/client/link/context' +import {DEFAULT_LOCALE, LOCALE_STORAGE_ACCESS_TOKEN_KEY, LOCALE_STORAGE_LOCALE_KEY} from "@/config/index.js"; +import {computed} from "vue"; + +const httpLink = createHttpLink({ + uri: 'https://api.' + import.meta.env.EVIBES_BASE_DOMAIN + '/graphql/', +}); + +const userLocale = computed(() => { + return localStorage.getItem(LOCALE_STORAGE_LOCALE_KEY) +}); + +export const createApolloClient = () => { + const accessToken = computed(() => { + return localStorage.getItem(LOCALE_STORAGE_ACCESS_TOKEN_KEY) + }) + + const authLink = setContext((_, { headers }) => { + const baseHeaders = { + ...headers, + "Accept-language": userLocale.value ? userLocale.value : DEFAULT_LOCALE, + }; + + if (accessToken.value) { + baseHeaders["X-EVIBES-AUTH"] = `Bearer ${accessToken.value}`; + } + + return { headers: baseHeaders }; + }) + + return new ApolloClient({ + link: authLink.concat(httpLink), + cache: new InMemoryCache(), + defaultOptions: { + watchQuery: { + fetchPolicy: 'cache-and-network', + } + } + }) +} \ No newline at end of file diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Black.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Black.ttf new file mode 100644 index 00000000..77ad0959 Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Black.ttf differ diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Bold.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Bold.ttf new file mode 100644 index 00000000..a7dac6b7 Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Bold.ttf differ diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-ExtraBold.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-ExtraBold.ttf new file mode 100644 index 00000000..9eb7f20f Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-ExtraBold.ttf differ diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf new file mode 100644 index 00000000..205c083b Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf differ diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Light.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Light.ttf new file mode 100644 index 00000000..7506643f Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Light.ttf differ diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Medium.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Medium.ttf new file mode 100644 index 00000000..1a270759 Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Medium.ttf differ diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Regular.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Regular.ttf new file mode 100644 index 00000000..fd02539c Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-Regular.ttf differ diff --git a/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-SemiBold.ttf b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-SemiBold.ttf new file mode 100644 index 00000000..2b7fcd3f Binary files /dev/null and b/storefront/src/assets/fonts/SourceCodePro/SourceCodePro-SemiBold.ttf differ diff --git a/storefront/src/assets/images/evibes-big-simple.png b/storefront/src/assets/images/evibes-big-simple.png new file mode 100644 index 00000000..08ba5f8c Binary files /dev/null and b/storefront/src/assets/images/evibes-big-simple.png differ diff --git a/storefront/src/assets/images/evibes-big.png b/storefront/src/assets/images/evibes-big.png new file mode 100644 index 00000000..260d9404 Binary files /dev/null and b/storefront/src/assets/images/evibes-big.png differ diff --git a/storefront/src/assets/images/homeBg.png b/storefront/src/assets/images/homeBg.png new file mode 100644 index 00000000..e24673b8 Binary files /dev/null and b/storefront/src/assets/images/homeBg.png differ diff --git a/storefront/src/assets/styles/global/fonts.scss b/storefront/src/assets/styles/global/fonts.scss new file mode 100644 index 00000000..2b2eb6d6 --- /dev/null +++ b/storefront/src/assets/styles/global/fonts.scss @@ -0,0 +1,42 @@ +/* ===== SOURCE CODE PRO ===== */ + +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-Black.ttf'); + font-weight: 900; +} +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-ExtraBold.ttf'); + font-weight: 800; +} +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-Bold.ttf'); + font-weight: 700; +} +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-SemiBold.ttf'); + font-weight: 600; +} +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-Medium.ttf'); + font-weight: 500; +} +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-Regular.ttf'); + font-weight: 400; +} +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-Light.ttf'); + font-weight: 300; +} +@font-face { + font-family: 'Source Code Pro'; + src: url('../../fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf'); + font-weight: 200; +} \ No newline at end of file diff --git a/storefront/src/assets/styles/global/mixins.scss b/storefront/src/assets/styles/global/mixins.scss new file mode 100644 index 00000000..78a4c9a4 --- /dev/null +++ b/storefront/src/assets/styles/global/mixins.scss @@ -0,0 +1,7 @@ +@mixin hover { + @media (hover: hover) and (pointer: fine) { + &:hover { + @content; + } + } +} \ No newline at end of file diff --git a/storefront/src/assets/styles/global/variables.scss b/storefront/src/assets/styles/global/variables.scss new file mode 100644 index 00000000..b694a362 --- /dev/null +++ b/storefront/src/assets/styles/global/variables.scss @@ -0,0 +1,9 @@ +$font_default: 'Source Code Pro', sans-serif; + +$white: #ffffff; +$black: #000000; +$accent: #7965d1; +$accentLight: #a69cdc; +$accentDisabled: #826fa2; +$error: #f13838; +$default_border_radius: 4px; \ No newline at end of file diff --git a/storefront/src/assets/styles/main.scss b/storefront/src/assets/styles/main.scss new file mode 100644 index 00000000..49df318a --- /dev/null +++ b/storefront/src/assets/styles/main.scss @@ -0,0 +1,4 @@ +@use "modules/normalize"; +@use "modules/transitions"; +@use "global/mixins"; +@use "global/variables"; \ No newline at end of file diff --git a/storefront/src/assets/styles/modules/normalize.scss b/storefront/src/assets/styles/modules/normalize.scss new file mode 100644 index 00000000..626a0663 --- /dev/null +++ b/storefront/src/assets/styles/modules/normalize.scss @@ -0,0 +1,49 @@ +@use "../global/variables" as *; + +* { + margin: 0; + padding: 0; + border: none; + box-sizing: border-box; +} + +html { + overflow-x: hidden; + font-family: $font_default; +} + +#app { + overflow-x: hidden; + position: relative; +} + +a { + text-decoration: none; + color: inherit; +} + +input, textarea, button { + font-family: $font_default; + outline: none; +} + +button:focus-visible { + outline: none; +} + +.container { + max-width: 1500px; + margin-inline: auto; +} + +@media (max-width: 1680px) { + .container { + max-width: 1200px; + } +} + +@media (max-width: 1300px) { + .container { + width: 90%; + } +} \ No newline at end of file diff --git a/storefront/src/assets/styles/modules/transitions.scss b/storefront/src/assets/styles/modules/transitions.scss new file mode 100644 index 00000000..86ef4b02 --- /dev/null +++ b/storefront/src/assets/styles/modules/transitions.scss @@ -0,0 +1,28 @@ +.opacity-enter-active, +.opacity-leave-active { + transition: 0.3s ease all; +} +.opacity-enter-from, +.opacity-leave-to { + opacity: 0; +} + +.fromTop-enter-active, +.fromTop-leave-active { + transition: all 0.3s ease; +} +.fromTop-enter-from, +.fromTop-leave-to { + transform: translateY(-3rem); + opacity: 0; +} + +.fromLeft-enter-active, +.fromLeft-leave-active { + transition: all 0.3s ease; +} +.fromLeft-enter-from, +.fromLeft-leave-to { + transform: translateX(-3rem); + opacity: 0; +} \ No newline at end of file diff --git a/storefront/src/components/base/base-auth.vue b/storefront/src/components/base/base-auth.vue new file mode 100644 index 00000000..d304de78 --- /dev/null +++ b/storefront/src/components/base/base-auth.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/base/base-footer.vue b/storefront/src/components/base/base-footer.vue new file mode 100644 index 00000000..a6af3f8f --- /dev/null +++ b/storefront/src/components/base/base-footer.vue @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/base/header/base-header-catalogue.vue b/storefront/src/components/base/header/base-header-catalogue.vue new file mode 100644 index 00000000..e2bd88f2 --- /dev/null +++ b/storefront/src/components/base/header/base-header-catalogue.vue @@ -0,0 +1,43 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/base/header/base-header-search.vue b/storefront/src/components/base/header/base-header-search.vue new file mode 100644 index 00000000..0420628a --- /dev/null +++ b/storefront/src/components/base/header/base-header-search.vue @@ -0,0 +1,237 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/base/header/base-header.vue b/storefront/src/components/base/header/base-header.vue new file mode 100644 index 00000000..e3d609a6 --- /dev/null +++ b/storefront/src/components/base/header/base-header.vue @@ -0,0 +1,129 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/cards/product-card.vue b/storefront/src/components/cards/product-card.vue new file mode 100644 index 00000000..7c412232 --- /dev/null +++ b/storefront/src/components/cards/product-card.vue @@ -0,0 +1,127 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/forms/contact-form.vue b/storefront/src/components/forms/contact-form.vue new file mode 100644 index 00000000..e3bb55d0 --- /dev/null +++ b/storefront/src/components/forms/contact-form.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/forms/deposit-form.vue b/storefront/src/components/forms/deposit-form.vue new file mode 100644 index 00000000..2881375a --- /dev/null +++ b/storefront/src/components/forms/deposit-form.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/forms/login-form.vue b/storefront/src/components/forms/login-form.vue new file mode 100644 index 00000000..ac43f455 --- /dev/null +++ b/storefront/src/components/forms/login-form.vue @@ -0,0 +1,95 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/forms/new-password-form.vue b/storefront/src/components/forms/new-password-form.vue new file mode 100644 index 00000000..668d1e4a --- /dev/null +++ b/storefront/src/components/forms/new-password-form.vue @@ -0,0 +1,72 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/forms/register-form.vue b/storefront/src/components/forms/register-form.vue new file mode 100644 index 00000000..11143eb8 --- /dev/null +++ b/storefront/src/components/forms/register-form.vue @@ -0,0 +1,137 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/forms/reset-password-form.vue b/storefront/src/components/forms/reset-password-form.vue new file mode 100644 index 00000000..e06635db --- /dev/null +++ b/storefront/src/components/forms/reset-password-form.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/forms/update-form.vue b/storefront/src/components/forms/update-form.vue new file mode 100644 index 00000000..47d789ed --- /dev/null +++ b/storefront/src/components/forms/update-form.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/home/home-brands.vue b/storefront/src/components/home/home-brands.vue new file mode 100644 index 00000000..ad42cd63 --- /dev/null +++ b/storefront/src/components/home/home-brands.vue @@ -0,0 +1,48 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/home/home-collection-inner.vue b/storefront/src/components/home/home-collection-inner.vue new file mode 100644 index 00000000..056f9bef --- /dev/null +++ b/storefront/src/components/home/home-collection-inner.vue @@ -0,0 +1,106 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/home/home-collection.vue b/storefront/src/components/home/home-collection.vue new file mode 100644 index 00000000..5d84a3ad --- /dev/null +++ b/storefront/src/components/home/home-collection.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/home/home-hero.vue b/storefront/src/components/home/home-hero.vue new file mode 100644 index 00000000..cfe16835 --- /dev/null +++ b/storefront/src/components/home/home-hero.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/skeletons/header/header-search-skeleton.vue b/storefront/src/components/skeletons/header/header-search-skeleton.vue new file mode 100644 index 00000000..5db3e08a --- /dev/null +++ b/storefront/src/components/skeletons/header/header-search-skeleton.vue @@ -0,0 +1,31 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/skeletons/ui/counter-skeleton.vue b/storefront/src/components/skeletons/ui/counter-skeleton.vue new file mode 100644 index 00000000..2ef63c1c --- /dev/null +++ b/storefront/src/components/skeletons/ui/counter-skeleton.vue @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/skeletons/ui/language-switcher-skeleton.vue b/storefront/src/components/skeletons/ui/language-switcher-skeleton.vue new file mode 100644 index 00000000..2acdff84 --- /dev/null +++ b/storefront/src/components/skeletons/ui/language-switcher-skeleton.vue @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-button.vue b/storefront/src/components/ui/ui-button.vue new file mode 100644 index 00000000..3738ffa9 --- /dev/null +++ b/storefront/src/components/ui/ui-button.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-checkbox.vue b/storefront/src/components/ui/ui-checkbox.vue new file mode 100644 index 00000000..7a0eaa70 --- /dev/null +++ b/storefront/src/components/ui/ui-checkbox.vue @@ -0,0 +1,80 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-counter.vue b/storefront/src/components/ui/ui-counter.vue new file mode 100644 index 00000000..bebfad99 --- /dev/null +++ b/storefront/src/components/ui/ui-counter.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-input.vue b/storefront/src/components/ui/ui-input.vue new file mode 100644 index 00000000..bb1873f0 --- /dev/null +++ b/storefront/src/components/ui/ui-input.vue @@ -0,0 +1,148 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-language-switcher.vue b/storefront/src/components/ui/ui-language-switcher.vue new file mode 100644 index 00000000..d54df044 --- /dev/null +++ b/storefront/src/components/ui/ui-language-switcher.vue @@ -0,0 +1,125 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-link.vue b/storefront/src/components/ui/ui-link.vue new file mode 100644 index 00000000..b5901c5f --- /dev/null +++ b/storefront/src/components/ui/ui-link.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-loader.vue b/storefront/src/components/ui/ui-loader.vue new file mode 100644 index 00000000..d7571037 --- /dev/null +++ b/storefront/src/components/ui/ui-loader.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/storefront/src/components/ui/ui-textarea.vue b/storefront/src/components/ui/ui-textarea.vue new file mode 100644 index 00000000..cee2a744 --- /dev/null +++ b/storefront/src/components/ui/ui-textarea.vue @@ -0,0 +1,90 @@ +