@crm-market/template-shared 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/assets/scss/_variables.scss +3 -3
  2. package/assets/scss/components/_header.scss +1 -1
  3. package/assets/scss/style.css +4 -4
  4. package/components/AboutUs/StaticContent.vue +32 -0
  5. package/components/Cart/CartEmpty.vue +42 -0
  6. package/components/Cart/CartItem.vue +145 -0
  7. package/components/Cart/CartSummary.vue +57 -0
  8. package/components/Cart/ProductQuantity.vue +23 -13
  9. package/components/Cart/index.vue +68 -150
  10. package/components/Categories/index.vue +88 -291
  11. package/components/Checkout/AddressFields.vue +74 -0
  12. package/components/Checkout/CheckoutForm.vue +75 -0
  13. package/components/Checkout/CityAutocomplete.vue +68 -0
  14. package/components/Checkout/DeliveryMethodCard.vue +66 -0
  15. package/components/Checkout/DeliveryOptions.vue +148 -0
  16. package/components/Checkout/OrderSummary.vue +116 -0
  17. package/components/Checkout/PaymentOptions.vue +76 -0
  18. package/components/Checkout/PickupPoints.vue +46 -0
  19. package/components/Checkout/PromoCode.vue +166 -0
  20. package/components/Checkout/index.vue +235 -173
  21. package/components/Checkout/types.ts +45 -0
  22. package/components/Common/PageBanner.vue +22 -20
  23. package/components/Common/ProductCard.vue +139 -115
  24. package/components/Common/Services.vue +4 -4
  25. package/components/Contact/ContactForm.vue +44 -74
  26. package/components/Contact/ContactInfo.vue +35 -61
  27. package/components/FAQ/index.vue +6 -119
  28. package/components/Layout/Copyright.vue +11 -9
  29. package/components/Layout/Footer.vue +49 -136
  30. package/components/Layout/HeaderBar.vue +174 -0
  31. package/components/Layout/HeaderLogo.vue +27 -0
  32. package/components/Layout/MiddleHeader.vue +1 -228
  33. package/components/Layout/MiddleHeaderThree.vue +1 -203
  34. package/components/Layout/MiddleHeaderTwo.vue +1 -239
  35. package/components/Layout/NavLinks.vue +23 -0
  36. package/components/Layout/Navbar.vue +38 -151
  37. package/components/Layout/NavbarStyleFour.vue +1 -332
  38. package/components/Layout/NavbarStyleThree.vue +1 -188
  39. package/components/Layout/NavbarStyleTwo.vue +1 -108
  40. package/components/Layout/Preloader.vue +5 -12
  41. package/components/Layout/ResponsiveNavbar.vue +32 -418
  42. package/components/Layout/SitewideBanner.vue +285 -0
  43. package/components/Layout/TopHeader.vue +17 -83
  44. package/components/Layout/layoutData.ts +83 -0
  45. package/components/PrivacyPolicy/index.vue +6 -110
  46. package/components/ProductDetails/ProductDetailsTab.vue +31 -321
  47. package/components/ProductDetails/ProductGallery.vue +45 -0
  48. package/components/ProductDetails/ProductQuantity.vue +8 -14
  49. package/components/ProductDetails/RecentlyViewed.vue +53 -289
  50. package/components/ProductDetails/RelatedProducts.vue +64 -0
  51. package/components/ProductDetails/index.vue +90 -230
  52. package/components/Products/index.vue +78 -16
  53. package/components/TermsConditions/index.vue +6 -110
  54. package/components/Wishlist/index.vue +62 -88
  55. package/composables/useCart.ts +133 -81
  56. package/composables/useCategories.ts +67 -31
  57. package/composables/useCategoryImages.ts +45 -0
  58. package/composables/useCheckout.ts +302 -97
  59. package/composables/useContactForm.ts +57 -0
  60. package/composables/useHomeContent.ts +220 -0
  61. package/composables/useI18n.ts +12 -24
  62. package/composables/useJsonLd.ts +162 -0
  63. package/composables/useProducts.ts +244 -83
  64. package/composables/useRecent.ts +30 -0
  65. package/composables/useSanitize.ts +76 -0
  66. package/composables/useSiteConfig.ts +51 -47
  67. package/composables/useStaticPages.ts +48 -0
  68. package/composables/useStoreOrigin.ts +32 -0
  69. package/composables/useTemplateSections.ts +51 -3
  70. package/composables/useThemeVars.ts +113 -0
  71. package/composables/useWishlist.ts +72 -0
  72. package/layouts/default.vue +80 -19
  73. package/locales/en.json +255 -86
  74. package/locales/uk.json +251 -82
  75. package/modules/template-schema.ts +35 -0
  76. package/nuxt.config.ts +8 -11
  77. package/package.json +1 -1
  78. package/pages/about-us.vue +9 -9
  79. package/pages/cart.vue +0 -1
  80. package/pages/categories.vue +0 -1
  81. package/pages/category/[slug].vue +84 -0
  82. package/pages/checkout.vue +0 -1
  83. package/pages/contact.vue +6 -6
  84. package/pages/delivery.vue +12 -0
  85. package/pages/faq.vue +6 -6
  86. package/pages/order-success.vue +113 -0
  87. package/pages/privacy-policy.vue +6 -6
  88. package/pages/product/[slug].vue +82 -0
  89. package/pages/product-details.vue +14 -6
  90. package/pages/products.vue +12 -1
  91. package/pages/returns.vue +12 -0
  92. package/pages/terms-conditions.vue +6 -6
  93. package/pages/wishlist.vue +2 -2
  94. package/utils/image.ts +0 -1
  95. package/utils/seo-urls.ts +70 -0
  96. package/utils/store-origin.ts +36 -0
  97. package/components/AboutUs/AboutUsTuan.vue +0 -25
  98. package/components/AboutUs/Statistics.vue +0 -42
  99. package/components/AboutUs/SubscribeToTheNewsletter.vue +0 -57
  100. package/components/AddAddress/index.vue +0 -68
  101. package/components/BestSellers/Products.vue +0 -1562
  102. package/components/BestSellers/RecentlyViewed.vue +0 -304
  103. package/components/ChangePassword/index.vue +0 -69
  104. package/components/Common/DashboardNavigation.vue +0 -35
  105. package/components/Dashboard/RecentOrder.vue +0 -173
  106. package/components/Dashboard/index.vue +0 -77
  107. package/components/EditAddress/index.vue +0 -117
  108. package/components/EditProfile/index.vue +0 -95
  109. package/components/FeaturedProduct/FeaturedProducts.vue +0 -304
  110. package/components/FeaturedProduct/Products.vue +0 -1562
  111. package/components/ForgotPassword/index.vue +0 -49
  112. package/components/Layout/FooterTwo.vue +0 -159
  113. package/components/Layout/LocationOption.vue +0 -178
  114. package/components/Layout/RTLSwitchBtn.vue +0 -40
  115. package/components/Login/index.vue +0 -89
  116. package/components/MyAccount/index.vue +0 -154
  117. package/components/NewArrivals/Products.vue +0 -1969
  118. package/components/NewArrivals/RecentlyViewed.vue +0 -304
  119. package/components/OrderDetails/index.vue +0 -75
  120. package/components/OrderHistory/index.vue +0 -195
  121. package/components/Products/RecentlyViewed.vue +0 -302
  122. package/components/Register/index.vue +0 -83
  123. package/components/TrendingProducts/FeaturedProducts.vue +0 -304
  124. package/components/TrendingProducts/Products.vue +0 -1564
  125. package/components/Wishlist/ProductQuantity.vue +0 -29
  126. package/layouts/inner.vue +0 -70
  127. package/locales/ar.json +0 -234
  128. package/locales/ru.json +0 -234
  129. package/pages/address.vue +0 -11
  130. package/pages/change-password.vue +0 -11
  131. package/pages/dashboard.vue +0 -11
  132. package/pages/edit-address.vue +0 -11
  133. package/pages/edit-profile.vue +0 -11
  134. package/pages/forgot-password.vue +0 -11
  135. package/pages/login.vue +0 -11
  136. package/pages/my-account.vue +0 -11
  137. package/pages/order-details.vue +0 -11
  138. package/pages/order-history.vue +0 -11
  139. package/pages/register.vue +0 -11
@@ -1,49 +0,0 @@
1
- <template>
2
- <div class="authentication-area ptb-60">
3
- <div class="container">
4
- <div class="authentication-content">
5
- <div class="row align-items-center">
6
- <div class="col-lg-5">
7
- <div class="login text-center">
8
- <img src="~/assets/images/login.png" alt="login" />
9
- </div>
10
- </div>
11
- <div class="col-lg-7">
12
- <div class="authentication-form">
13
- <ul class="nav nav-tabs login-tabs" id="myTab" role="tablist">
14
- <li class="nav-item" role="presentation">
15
- <NuxtLink to="/forgot-password" class="nav-link active">
16
- {{ t('auth.forgotPassword') }}
17
- </NuxtLink>
18
- </li>
19
- </ul>
20
- <p>{{ t('auth.loginDescription') }}</p>
21
- <form>
22
- <div class="form-group mb-4">
23
- <label class="label">{{ t('auth.email') }}</label>
24
- <input
25
- type="email"
26
- class="form-control"
27
- :placeholder="t('auth.enterEmail')"
28
- />
29
- </div>
30
- <div class="form-group mb-0">
31
- <button
32
- type="submit"
33
- class="btn btn-warning btn-pill text-white w-100 d-block"
34
- >
35
- {{ t('auth.forgotPassword') }}
36
- </button>
37
- </div>
38
- </form>
39
- </div>
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </div>
45
- </template>
46
-
47
- <script setup lang="ts">
48
- const { t } = useI18n();
49
- </script>
@@ -1,159 +0,0 @@
1
- <template>
2
- <div class="footer-area pb-60 bg-gray1">
3
- <div class="container">
4
- <div class="border-top pt-60 pb-35">
5
- <v-row class="justify-content-center">
6
- <v-col cols="12" lg="3" sm="6">
7
- <div class="single-footer-widget">
8
- <h3>{{ t('footer.aboutTheShop') }}</h3>
9
- <p>
10
- {{ t('footer.storeDescription') }}
11
- </p>
12
-
13
- <div class="call-info">
14
- <span class="title">{{ t('footer.gotQuestion') }}</span>
15
- <div class="d-flex align-items-center">
16
- <i class="flaticon-headphones-1"></i>
17
- <a href="tel:(808)-555-0111">(808) 555-0111</a>
18
- </div>
19
- </div>
20
- </div>
21
- </v-col>
22
- <v-col cols="12" lg="3" sm="6">
23
- <div class="single-footer-widget">
24
- <h3>{{ t('footer.popularCategories') }}</h3>
25
-
26
- <ul class="ps-0 mb-0 list-unstyled import-link">
27
- <li v-for="category in footerCategories" :key="category.id">
28
- <NuxtLink :to="`/products?categoryId=${category.id}`">
29
- {{ category.name }}
30
- </NuxtLink>
31
- </li>
32
- <li v-if="footerCategories.length === 0">
33
- <NuxtLink to="/products">{{ t('nav.allProducts') }}</NuxtLink>
34
- </li>
35
- </ul>
36
- </div>
37
- </v-col>
38
- <v-col cols="12" lg="3" sm="6">
39
- <div class="single-footer-widget">
40
- <h3>{{ t('footer.letUsHelp') }}</h3>
41
-
42
- <ul class="ps-0 mb-0 list-unstyled import-link">
43
- <li>
44
- <NuxtLink to="/dashboard">{{ t('account.yourAccount') }}</NuxtLink>
45
- </li>
46
- <li>
47
- <NuxtLink to="/order-history">{{ t('account.yourOrders') }}</NuxtLink>
48
- </li>
49
- <li>
50
- <NuxtLink to="/privacy-policy">{{ t('footer.returnPolicy') }}</NuxtLink>
51
- </li>
52
- <li>
53
- <NuxtLink to="/faq">{{ t('common.helpCenter') }}</NuxtLink>
54
- </li>
55
- <li>
56
- <NuxtLink to="/products">{{ t('footer.productReplacement') }}</NuxtLink>
57
- </li>
58
- <li>
59
- <NuxtLink to="/dashboard">{{ t('footer.shopWithPoints') }}</NuxtLink>
60
- </li>
61
- </ul>
62
- </div>
63
- </v-col>
64
- <v-col cols="12" lg="3" sm="6">
65
- <div class="single-footer-widget">
66
- <h3>{{ t('footer.getToKnowUs') }}</h3>
67
-
68
- <ul class="ps-0 mb-0 list-unstyled import-link">
69
- <li>
70
- <NuxtLink to="/about-us">{{ t('nav.aboutUs') }}</NuxtLink>
71
- </li>
72
- <li>
73
- <NuxtLink to="/about-us">{{ t('footer.careers') }}</NuxtLink>
74
- </li>
75
- <li>
76
- <NuxtLink to="/contact">{{ t('footer.storeLocation') }}</NuxtLink>
77
- </li>
78
- <li>
79
- <NuxtLink to="/our-blog">{{ t('footer.newsCenter') }}</NuxtLink>
80
- </li>
81
- <li>
82
- <NuxtLink to="/about-us">Investor Relations</NuxtLink>
83
- </li>
84
- <li>
85
- <NuxtLink to="/contact">{{ t('nav.contact') }}</NuxtLink>
86
- </li>
87
- </ul>
88
- </div>
89
- </v-col>
90
- </v-row>
91
- </div>
92
- <v-row class="align-items-end justify-content-center">
93
- <v-col cols="12" lg="6" md="6">
94
- <div class="single-footer-bottom-item">
95
- <ul
96
- class="ps-0 mb-0 list-unstyled d-flex align-items-center social-link ms-0 justify-content-md-start justify-content-center"
97
- >
98
- <li>
99
- <span class="titles">{{ t('footer.followUs') }}:</span>
100
- </li>
101
- <li>
102
- <a href="https://www.facebook.com/" target="_blank">
103
- <i class="ri-facebook-fill"></i>
104
- </a>
105
- </li>
106
- <li>
107
- <a href="https://www.twitter.com/" target="_blank">
108
- <i class="ri-twitter-x-line"></i>
109
- </a>
110
- </li>
111
- <li>
112
- <a href="https://www.linkedin.com/" target="_blank">
113
- <i class="ri-linkedin-fill"></i>
114
- </a>
115
- </li>
116
- <li>
117
- <a href="https://www.whatsapp.com/" target="_blank">
118
- <i class="ri-whatsapp-line"></i>
119
- </a>
120
- </li>
121
- </ul>
122
- </div>
123
- </v-col>
124
- <v-col cols="12" lg="6" md="6">
125
- <div class="single-footer-bottom-item">
126
- <ul
127
- class="ps-0 mb-0 list-unstyled d-flex align-items-center justify-content-center justify-content-lg-end app-link"
128
- >
129
- <li>
130
- <span class="titles">{{ t('footer.downloadApp') }}:</span>
131
- </li>
132
- <li>
133
- <a href="https://www.apple.com/store" target="_blank">
134
- <img src="~/assets/images/ios.svg" alt="ios" />
135
- </a>
136
- </li>
137
- <li>
138
- <a href="https://play.google.com/store/games" target="_blank">
139
- <img src="~/assets/images/gplay.svg" alt="gplay" />
140
- </a>
141
- </li>
142
- </ul>
143
- </div>
144
- </v-col>
145
- </v-row>
146
- </div>
147
- </div>
148
- </template>
149
-
150
- <script setup lang="ts">
151
- import { computed } from "vue";
152
-
153
- const { t } = useI18n();
154
- const { topLevelCategories } = useCategories();
155
-
156
- const footerCategories = computed(() =>
157
- topLevelCategories.value.slice(0, 6)
158
- );
159
- </script>
@@ -1,178 +0,0 @@
1
- <template>
2
- <div :class="['location-option', { show: stateStoreInstance.open }]">
3
- <div class="modal-dialog modal-dialog-centered">
4
- <div class="modal-content">
5
- <div class="modal-header border-0 pb-0">
6
- <h3 class="modal-title" id="exampleModal2Label">
7
- Where to deliver your products?
8
- </h3>
9
- <button
10
- type="button"
11
- class="btn-close"
12
- @click="stateStoreInstance.onChange"
13
- ></button>
14
- </div>
15
- <div class="modal-body">
16
- <form>
17
- <div class="form-group mb-4">
18
- <label class="label">Search your location</label>
19
- <div class="position-relative">
20
- <input
21
- type="text"
22
- class="form-control ps-5"
23
- placeholder="Search your location"
24
- />
25
- <i
26
- class="ri-map-pin-line position-absolute top-50 start-0 translate-middle-y ps-3"
27
- ></i>
28
- </div>
29
- </div>
30
- <h6>Select a Location</h6>
31
-
32
- <ul class="ps-0 mb-0 list-unstyled location-list">
33
- <li>
34
- <div class="form-check ps-0 position-relative mb-0">
35
- <label
36
- class="form-check-label d-block"
37
- for="flexRadioDefault4"
38
- >
39
- <span class="title1">Alberta</span>
40
- <span class="dec">Athabasca T9S</span>
41
- </label>
42
- <input
43
- class="form-check-input"
44
- type="radio"
45
- name="flexRadioDefault4"
46
- id="flexRadioDefault4"
47
- />
48
- </div>
49
- </li>
50
- <li>
51
- <div class="form-check ps-0 position-relative mb-0">
52
- <label
53
- class="form-check-label d-block"
54
- for="flexRadioDefault5"
55
- >
56
- <span class="title1">British Columbia</span>
57
- <span class="dec">Athabasca T9S</span>
58
- </label>
59
- <input
60
- class="form-check-input"
61
- type="radio"
62
- name="flexRadioDefault5"
63
- id="flexRadioDefault5"
64
- />
65
- </div>
66
- </li>
67
- <li>
68
- <div class="form-check ps-0 position-relative mb-0">
69
- <label
70
- class="form-check-label d-block"
71
- for="flexRadioDefault6"
72
- >
73
- <span class="title1">New Brunswick</span>
74
- <span class="dec">Athabasca T9S</span>
75
- </label>
76
- <input
77
- class="form-check-input"
78
- type="radio"
79
- name="flexRadioDefault6"
80
- id="flexRadioDefault6"
81
- />
82
- </div>
83
- </li>
84
- <li>
85
- <div class="form-check ps-0 position-relative mb-0">
86
- <label
87
- class="form-check-label d-block"
88
- for="flexRadioDefault7"
89
- >
90
- <span class="title1">Nova Scotia</span>
91
- <span class="dec">Athabasca T9S</span>
92
- </label>
93
- <input
94
- class="form-check-input"
95
- type="radio"
96
- name="flexRadioDefault7"
97
- id="flexRadioDefault7"
98
- />
99
- </div>
100
- </li>
101
- <li>
102
- <div class="form-check ps-0 position-relative mb-0">
103
- <label
104
- class="form-check-label d-block"
105
- for="flexRadioDefault8"
106
- >
107
- <span class="title1">Ontario</span>
108
- <span class="dec">Athabasca T9S</span>
109
- </label>
110
- <input
111
- class="form-check-input"
112
- type="radio"
113
- name="flexRadioDefault8"
114
- id="flexRadioDefault8"
115
- />
116
- </div>
117
- </li>
118
- <li>
119
- <div class="form-check ps-0 position-relative mb-0">
120
- <label
121
- class="form-check-label d-block"
122
- for="flexRadioDefault9"
123
- >
124
- <span class="title1">Quebec</span>
125
- <span class="dec">Athabasca T9S</span>
126
- </label>
127
- <input
128
- class="form-check-input"
129
- type="radio"
130
- name="flexRadioDefault9"
131
- id="flexRadioDefault9"
132
- />
133
- </div>
134
- </li>
135
- <li>
136
- <div class="form-check ps-0 position-relative mb-0">
137
- <label
138
- class="form-check-label d-block"
139
- for="flexRadioDefault10"
140
- >
141
- <span class="title1">Yukon</span>
142
- <span class="dec">Athabasca T9S</span>
143
- </label>
144
- <input
145
- class="form-check-input"
146
- type="radio"
147
- name="flexRadioDefault10"
148
- id="flexRadioDefault10"
149
- />
150
- </div>
151
- </li>
152
- </ul>
153
- </form>
154
- </div>
155
- </div>
156
- </div>
157
- </div>
158
- </template>
159
-
160
- <script lang="ts">
161
- import { defineComponent } from "vue";
162
- import stateStore from "~/utils/store";
163
-
164
- export default defineComponent({
165
- name: "MobileDeviceNavbar",
166
- setup() {
167
- const stateStoreInstance = stateStore;
168
- const handleClick = () => {
169
- stateStoreInstance.open = false;
170
- };
171
-
172
- return {
173
- stateStoreInstance,
174
- handleClick,
175
- };
176
- },
177
- });
178
- </script>
@@ -1,40 +0,0 @@
1
- <template>
2
- <div class="settings-btn rtl-btn">
3
- <label id="switch" class="switch">
4
- <input type="checkbox" @change="toggleRTL" id="slider" />
5
- <span class="slider round"></span>
6
- </label>
7
- </div>
8
- </template>
9
-
10
- <script lang="ts">
11
- import { defineComponent, onMounted, ref } from "vue";
12
-
13
- export default defineComponent({
14
- name: "RTLSwitchBtn",
15
- setup() {
16
- const isRTLEnabled = ref(false);
17
-
18
- const toggleRTL = () => {
19
- isRTLEnabled.value = !isRTLEnabled.value;
20
- document.body.classList.toggle("rtl", isRTLEnabled.value);
21
- localStorage.setItem("isRTLEnabled", JSON.stringify(isRTLEnabled.value));
22
- };
23
-
24
- onMounted(() => {
25
- const savedRTLEnabled = localStorage.getItem("isRTLEnabled");
26
- if (savedRTLEnabled) {
27
- isRTLEnabled.value = JSON.parse(savedRTLEnabled);
28
- if (isRTLEnabled.value) {
29
- document.body.classList.add("rtl");
30
- }
31
- }
32
- });
33
-
34
- return {
35
- toggleRTL,
36
- isRTLEnabled,
37
- };
38
- },
39
- });
40
- </script>
@@ -1,89 +0,0 @@
1
- <template>
2
- <div class="authentication-area ptb-60">
3
- <div class="container">
4
- <div class="authentication-content">
5
- <div class="row">
6
- <div class="col-lg-5">
7
- <div class="login h-100 text-center">
8
- <img
9
- src="~/assets/images/login.png"
10
- class="h-100 object-fit-cover"
11
- alt="login"
12
- />
13
- </div>
14
- </div>
15
- <div class="col-lg-7">
16
- <div class="authentication-form">
17
- <ul class="nav nav-tabs login-tabs" id="myTab" role="tablist">
18
- <li class="nav-item" role="presentation">
19
- <NuxtLink to="/login" class="nav-link active">{{ t('auth.login') }}</NuxtLink>
20
- </li>
21
- <li class="nav-item" role="presentation">
22
- <NuxtLink to="/register" class="nav-link">{{ t('auth.register') }}</NuxtLink>
23
- </li>
24
- </ul>
25
- <p>{{ t('auth.loginDescription') }}</p>
26
- <form>
27
- <div class="form-group mb-4">
28
- <label class="label">{{ t('auth.usernameOrEmail') }} *</label>
29
- <input
30
- type="text"
31
- class="form-control"
32
- :placeholder="t('auth.usernameOrEmail')"
33
- />
34
- </div>
35
- <div class="form-group mb-4">
36
- <label class="label">{{ t('auth.yourPassword') }} *</label>
37
- <input
38
- type="password"
39
- class="form-control"
40
- :placeholder="t('auth.yourPassword')"
41
- />
42
- </div>
43
- <div class="d-flex justify-content-between mb-4">
44
- <div class="form-check">
45
- <input
46
- class="form-check-input"
47
- type="checkbox"
48
- value=""
49
- id="flexCheckDefault"
50
- />
51
- <label class="form-check-label" for="flexCheckDefault">
52
- {{ t('auth.remember') }}
53
- </label>
54
- </div>
55
- <NuxtLink to="/forgot-password" class="text-primary">
56
- {{ t('auth.lostPassword') }}
57
- </NuxtLink>
58
- </div>
59
- <div class="form-group mb-4">
60
- <button
61
- type="submit"
62
- class="btn btn-warning btn-pill text-white w-100 d-block"
63
- >
64
- {{ t('auth.login') }}
65
- </button>
66
- </div>
67
- <div class="form-group mb-0">
68
- <p class="text-secondary ms-1 text-primary">
69
- {{ t(‘auth.noAccount’) }}
70
- <NuxtLink
71
- to="/register"
72
- class="text-decoration-none text-primary"
73
- >
74
- {{ t(‘auth.register’) }}
75
- </NuxtLink>
76
- </p>
77
- </div>
78
- </form>
79
- </div>
80
- </div>
81
- </div>
82
- </div>
83
- </div>
84
- </div>
85
- </template>
86
-
87
- <script setup lang="ts">
88
- const { t } = useI18n();
89
- </script>
@@ -1,154 +0,0 @@
1
- <template>
2
- <div class="authentication-area ptb-60">
3
- <div class="container">
4
- <div class="authentication-content">
5
- <div class="row">
6
- <div class="col-lg-5">
7
- <div class="login h-100 text-center">
8
- <img
9
- src="~/assets/images/login.png"
10
- class="h-100 object-fit-cover"
11
- alt="login"
12
- />
13
- </div>
14
- </div>
15
- <div class="col-lg-7">
16
- <div class="authentication-form">
17
- <v-tabs v-model="tab" bg-color="white" class="login-tabs">
18
- <v-tab value="login">{{ t('auth.login') }}</v-tab>
19
- <v-tab value="register">{{ t('auth.register') }}</v-tab>
20
- </v-tabs>
21
-
22
- <v-card-text>
23
- <v-tabs-window v-model="tab">
24
- <v-tabs-window-item value="login">
25
- <p>{{ t('auth.loginDescription') }}</p>
26
- <form>
27
- <div class="form-group mb-4">
28
- <label class="label">{{ t('auth.usernameOrEmail') }} *</label>
29
- <input
30
- type="text"
31
- class="form-control"
32
- :placeholder="t('auth.usernameOrEmail')"
33
- />
34
- </div>
35
- <div class="form-group mb-4">
36
- <label class="label">{{ t('auth.yourPassword') }} *</label>
37
- <input
38
- type="password"
39
- class="form-control"
40
- :placeholder="t('auth.yourPassword')"
41
- />
42
- </div>
43
- <div class="d-flex justify-content-between mb-4">
44
- <div class="form-check">
45
- <input
46
- class="form-check-input"
47
- type="checkbox"
48
- value=""
49
- id="flexCheckDefault"
50
- />
51
- <label
52
- class="form-check-label"
53
- for="flexCheckDefault"
54
- >
55
- {{ t('auth.remember') }}
56
- </label>
57
- </div>
58
- <NuxtLink to="/forgot-password" class="text-primary">
59
- {{ t('auth.lostPassword') }}
60
- </NuxtLink>
61
- </div>
62
- <div class="form-group mb-4">
63
- <button
64
- type="submit"
65
- class="btn btn-warning btn-pill text-white w-100 d-block"
66
- >
67
- {{ t('auth.login') }}
68
- </button>
69
- </div>
70
- <div class="form-group mb-0">
71
- <p class="text-secondary ms-1 text-primary">
72
- {{ t('auth.noAccount') }}
73
- <NuxtLink
74
- to="/register"
75
- class="text-decoration-none text-primary"
76
- >
77
- {{ t('auth.register') }}
78
- </NuxtLink>
79
- </p>
80
- </div>
81
- </form>
82
- </v-tabs-window-item>
83
- <v-tabs-window-item value="register">
84
- <p>{{ t('auth.loginDescription') }}</p>
85
- <form>
86
- <div class="form-group mb-4">
87
- <label class="label">{{ t('auth.username') }} *</label>
88
- <input
89
- type="text"
90
- class="form-control"
91
- :placeholder="t('auth.username')"
92
- />
93
- </div>
94
- <div class="form-group mb-4">
95
- <label class="label">{{ t('auth.email') }} *</label>
96
- <input
97
- type="email"
98
- class="form-control"
99
- :placeholder="t('auth.email')"
100
- />
101
- </div>
102
- <div class="form-group mb-4">
103
- <label class="label">{{ t('auth.password') }} *</label>
104
- <input
105
- type="password"
106
- class="form-control"
107
- :placeholder="t('auth.password')"
108
- />
109
- </div>
110
- <div class="form-group mb-4">
111
- <button
112
- type="submit"
113
- class="btn btn-warning btn-pill text-white w-100 d-block"
114
- >
115
- {{ t('auth.register') }}
116
- </button>
117
- </div>
118
- <div class="form-group mb-0">
119
- <p class="text-secondary ms-1 text-primary">
120
- {{ t('auth.haveAccount') }}
121
- <NuxtLink
122
- to="/login"
123
- class="text-decoration-none text-primary"
124
- >
125
- {{ t('auth.login') }}
126
- </NuxtLink>
127
- </p>
128
- </div>
129
- </form>
130
- </v-tabs-window-item>
131
- </v-tabs-window>
132
- </v-card-text>
133
- </div>
134
- </div>
135
- </div>
136
- </div>
137
- </div>
138
- </div>
139
- </template>
140
-
141
- <script lang="ts">
142
- import { defineComponent } from "vue";
143
-
144
- export default defineComponent({
145
- name: "MyAccount",
146
- data: () => ({
147
- tab: null,
148
- }),
149
- setup() {
150
- const { t } = useI18n();
151
- return { t };
152
- },
153
- });
154
- </script>