@ozdao/prometheus-framework 0.2.68 → 0.2.69

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. package/package.json +1 -1
  2. package/src/components/ButtonSegmented/ButtonSegmented.vue +78 -0
  3. package/src/components/Completion/Completion.vue +76 -0
  4. package/src/components/Feed/Feed.vue +46 -18
  5. package/src/components/Tab/Tab.vue +11 -30
  6. package/src/modules/auth/components/pages/Invite.vue +1 -1
  7. package/src/modules/auth/controllers/auth.controller.js +10 -21
  8. package/src/modules/backoffice/router/backoffice.js +3 -3
  9. package/src/modules/events/components/elements/ButtonCheck.vue +15 -15
  10. package/src/modules/events/components/pages/EditEventTickets.vue +39 -13
  11. package/src/modules/events/components/pages/Event.vue +1 -2
  12. package/src/modules/events/controllers/tickets.controller.js +151 -98
  13. package/src/modules/events/controllers/utils/templateEmail.js +14 -0
  14. package/src/modules/events/controllers/utils/templateTicket.js +194 -0
  15. package/src/modules/events/router/events.js +3 -0
  16. package/src/modules/events/store/tickets.js +2 -2
  17. package/src/modules/globals/controllers/utils/queryProcessor.js +31 -6
  18. package/src/modules/globals/utils/mailing.js +19 -12
  19. package/src/modules/icons/entities/IconEvents.vue +7 -2
  20. package/src/modules/landing/components/pages/Home.vue +1 -1
  21. package/src/modules/orders/components/blocks/CardOrder.vue +1 -1
  22. package/src/modules/orders/components/blocks/CardOrderVar1.vue +97 -0
  23. package/src/modules/orders/components/pages/{FormOrder.vue → OrderCreate.vue} +20 -11
  24. package/src/modules/orders/components/pages/{EditOrder.vue → OrderCreateBackoffice.vue} +74 -17
  25. package/src/modules/orders/components/pages/Orders.vue +181 -70
  26. package/src/modules/orders/components/pages/Orders_refact.vue +2 -2
  27. package/src/modules/orders/components/sections/FormClientDetails.vue +24 -26
  28. package/src/modules/{applications → orders}/components/sections/SubscribeNewsletter.vue +1 -1
  29. package/src/modules/orders/controllers/orders.controller.js +46 -7
  30. package/src/modules/orders/models/customer.model.js +31 -0
  31. package/src/modules/orders/models/order.model.js +8 -13
  32. package/src/modules/orders/orders.client.js +67 -0
  33. package/src/modules/orders/orders.server.js +15 -0
  34. package/src/modules/orders/router/orders.router.js +1 -1
  35. package/src/modules/orders/store/orders.js +17 -2
  36. package/src/modules/users/components/pages/Profile.vue +6 -4
  37. package/src/modules/users/components/sections/ProfileCompletion.vue +30 -15
  38. package/src/modules/users/controllers/users.controller.js +0 -2
  39. package/src/modules/users/models/user.model.js +6 -5
  40. package/src/modules/users/users.server.js +1 -0
  41. package/src/styles/base/borders.scss +5 -2
  42. package/src/styles/config.scss +3 -4
  43. package/src/modules/applications/applications.client.js +0 -1
  44. package/src/modules/orders/components/blocks/Positions.vue +0 -177
  45. package/src/modules/users/models/client.model.js +0 -60
  46. /package/src/modules/{applications → orders}/controllers/applications.controller.js +0 -0
  47. /package/src/modules/{testimonials → orders}/controllers/testimonials.controller.js +0 -0
  48. /package/src/modules/{applications → orders}/models/application.model.js +0 -0
  49. /package/src/modules/{testimonials → orders}/models/testimonial.model.js +0 -0
  50. /package/src/modules/{applications → orders}/routes/applications.routes.js +0 -0
  51. /package/src/modules/{testimonials → orders}/routes/testimonials.routes.js +0 -0
  52. /package/src/modules/{applications → orders}/store/applications.js +0 -0
  53. /package/src/modules/{testimonials → orders}/store/testimonials.js +0 -0
  54. /package/src/modules/{payments → wallet}/components/pages/Payments.vue +0 -0
  55. /package/src/modules/{payments → wallet}/controllers/payments.controller.js +0 -0
  56. /package/src/modules/{payments → wallet}/controllers/payments.tinkoff.controller.js +0 -0
  57. /package/src/modules/{payments → wallet}/models/payment.model.js +0 -0
  58. /package/src/modules/{payments → wallet}/models/payment.tinkoff.model.js +0 -0
  59. /package/src/modules/{payments → wallet}/routes/payments.routes.js +0 -0
  60. /package/src/modules/{payments → wallet}/routes/payments.tinkoff.routes.js +0 -0
  61. /package/src/modules/{payments → wallet}/store/payments.js +0 -0
@@ -1,51 +1,49 @@
1
1
  <template>
2
2
  <Block title="Personal Data" class="mn-b-thin">
3
3
  <Field
4
- v-model:field="order.client.name"
4
+ v-model:field="order.customer.name"
5
5
  label="Name*"
6
6
  placeholder="Enter your name"
7
7
  class="bg-white pd-medium radius-small mn-b-thin"
8
8
  />
9
-
10
- <FieldPhone
11
- v-model="order.client.phone"
12
- @country="(country) => { order.client.number = country }"
13
- :inputOptions="{
14
- placeholder: 'Enter contact phone number',
15
- type: 'tel',
16
- }"
17
- :defaultCountry="'TH'"
18
- :validCharactersOnly="true"
19
- :dropdownOptions="{
20
- showDialCodeInSelection: true,
21
- showFlags: true,
22
- showDialCodeInList: true
23
- }"
24
- mode="national"
25
- class="bg-white pd-small radius-small mn-b-thin"
26
- />
27
-
28
- <p class="mn-b-small">
29
- Prefer to chat instead of calling? Just drop your messenger info here:
30
- </p>
31
9
 
32
10
  <div class="flex-nowrap flex">
11
+
33
12
  <Select
34
13
  :options="[
14
+ {name: 'Phone', value: 'phone'},
35
15
  {name: 'Telegram', value: 'telegram'},
36
16
  {name: 'WhatsApp', value: 'whatsapp'},
37
17
  {name: 'Line', value: 'line'},
38
18
  ]"
39
- @update:select="(option) => order.client.messenger.type = option.value"
19
+ @update:select="(option) => order.customer.messenger.type = option.value"
40
20
  placeholder="Messenger"
41
21
  size="small"
42
22
  class="bg-white pd-medium radius-small mn-r-small"
43
23
  />
44
24
 
45
- <Field
46
- v-model:field="order.client.messenger.value"
25
+ <!-- <Field
26
+ v-model:field="order.customer.messenger.value"
47
27
  placeholder="Enter your contact here"
48
28
  class="bg-white pd-medium radius-small w-100"
29
+ /> -->
30
+
31
+ <FieldPhone
32
+ v-model="order.customer.phone"
33
+ @country="(country) => { order.customer.number = country }"
34
+ :inputOptions="{
35
+ placeholder: 'Enter contact phone number',
36
+ type: 'tel',
37
+ }"
38
+ :defaultCountry="'TH'"
39
+ :validCharactersOnly="true"
40
+ :dropdownOptions="{
41
+ showDialCodeInSelection: true,
42
+ showFlags: true,
43
+ showDialCodeInList: true
44
+ }"
45
+ mode="national"
46
+ class="bg-white pd-small radius-small mn-b-thin"
49
47
  />
50
48
  </div>
51
49
  </Block>
@@ -38,7 +38,7 @@ import { ref } from 'vue'
38
38
  import FieldBig from "@pf/src/components/FieldBig/FieldBig.vue";
39
39
 
40
40
  import * as globals from '@pf/src/modules/globals/store/globals.js';
41
- import * as applications from '@pf/src/modules/applications/store/applications.js';
41
+ import * as applications from '@pf/src/modules/orders/store/applications.js';
42
42
 
43
43
  import * as inputsValidation from '@pf/src/modules/middlewares/client/inputs.validation'
44
44
 
@@ -9,19 +9,21 @@ function formatPositions(positions) {
9
9
  function formatOrderMessage(order) {
10
10
  return `
11
11
  🆕 New Order Received!
12
- 👤 Client: ${order.user.name} (${order.user.phone.number ? order.user.phone.number : 'No phone'})
13
- 💬 Messenger: ${order.user.messenger ? order.user.messenger.type + ' ' + order.user.messenger.value : 'None'}
12
+ 👤 Customer: ${order.customer?.name} (${order.customer?.phone?.number ? order.customer?.phone?.number : 'No phone'})
13
+ 💬 Messenger: ${order.customer?.messenger ? order.customer?.messenger?.type + ' ' + order.customer?.messenger?.value : 'None'}
14
14
  🏢 Organization: ${order.organization}
15
15
  📦 Positions:\n${formatPositions(order.positions)}
16
16
  📝 Comment: ${order.comment ? order.comment : 'No comment'}
17
- 💳 Payment: ${order.payment.type}
18
- 🚚 Delivery: ${order.delivery.type} to ${order.delivery.address}
17
+ 💳 Payment: ${order.payment?.type}
18
+ 🚚 Delivery: ${order.delivery?.type} to ${order.delivery?.address}
19
19
  📌 Status: ${order.status}
20
+ 🧑 Agent: ${order.referralCode}
20
21
  `;
21
22
  }
22
23
 
23
24
  const controllerFactory = (db) => {
24
25
  const Order = db.order;
26
+ const Customer = db.customer;
25
27
 
26
28
  // Создание заказа
27
29
  const create = async (req, res) => {
@@ -38,8 +40,46 @@ const controllerFactory = (db) => {
38
40
  comment: ''
39
41
  });
40
42
 
43
+ console.log(req.body)
44
+
41
45
  try {
42
- // const formattedMessage = formatOrderMessage(req.body);
46
+ // Поиск или создание клиента
47
+ let searchCriteria = {};
48
+
49
+ if (req.body.customer.phone) {
50
+ searchCriteria.phone = req.body.customer.phone;
51
+ }
52
+
53
+ if (req.body.customer.email) {
54
+ searchCriteria.email = req.body.customer.email;
55
+ }
56
+
57
+ let customer = await Customer.findOne({ $or: [searchCriteria] });
58
+
59
+ if (!customer) {
60
+ customer = await Customer.create(req.body.customer);
61
+ }
62
+
63
+ // Присвоение идентификатора клиента заказу
64
+ req.body.customer = {
65
+ type: 'Customer',
66
+ target: customer._id
67
+ }
68
+
69
+ if (!req.body.creator?.target) {
70
+ req.body.creator = {
71
+ type: 'Customer',
72
+ target: customer._id
73
+ }
74
+ }
75
+
76
+ } catch (err) {
77
+ console.log(err);
78
+ return res.status(500).send({ errorCode: "CLIENT_PROCESSING_FAILED", message: "Error occurred while processing the customer.", error: err });
79
+ }
80
+
81
+ try {
82
+ const formattedMessage = formatOrderMessage(req.body);
43
83
  console.log(formattedMessage)
44
84
  const messageSent = await sendChatMessageTelegram(process.env.TELEGRAM_BOT_USERS.split(","),formattedMessage)
45
85
  } catch (err) {
@@ -56,8 +96,6 @@ const controllerFactory = (db) => {
56
96
  };
57
97
 
58
98
  const read = async (req, res) => {
59
-
60
- let stages = [];
61
99
 
62
100
  stages = [
63
101
  ...queryProcessorGlobals.getBasicOptions(
@@ -66,6 +104,7 @@ const controllerFactory = (db) => {
66
104
  // For creator
67
105
  queryProcessorGlobals.getCreatorUserLookupStage(),
68
106
  queryProcessorGlobals.getCreatorOrganizationLookupStage(),
107
+ queryProcessorGlobals.getCreatorCustomerLookupStage(),
69
108
  // For owner
70
109
  queryProcessorGlobals.getOwnerUserLookupStage(),
71
110
  queryProcessorGlobals.getOwnerOrganizationLookupStage(),
@@ -0,0 +1,31 @@
1
+ const applyOwnershipSchema = require('@pf/src/modules/globals/models/ownership.schema.js');
2
+
3
+ module.exports = (db) => {
4
+
5
+ const CustomerSchema = new db.mongoose.Schema({
6
+ // target: {
7
+ // type: {
8
+ // type: String,
9
+ // required: true
10
+ // },
11
+ // target: {
12
+ // type: db.mongoose.Schema.Types.ObjectId,
13
+ // refPath: 'target.type',
14
+ // required: true,
15
+ // },
16
+ // },
17
+ referralCode: {
18
+ type: String
19
+ }
20
+ },{
21
+ timestamps: { currentTime: () => Date.now()
22
+ }
23
+
24
+ });
25
+
26
+ // applyOwnershipSchema(CustomerSchema,db);
27
+
28
+ const Customer = db.mongoose.model("Customer", CustomerSchema);
29
+
30
+ return Customer;
31
+ }
@@ -3,31 +3,26 @@ const applyOwnershipSchema = require('@pf/src/modules/globals/models/ownership.s
3
3
  module.exports = (db) => {
4
4
 
5
5
  const OrderSchema = new db.mongoose.Schema({
6
- client: {
7
- type: {
6
+ customer: {
7
+ type: {
8
8
  type: String,
9
- trim: true
9
+ required: true
10
10
  },
11
11
  target: {
12
12
  type: db.mongoose.Schema.Types.ObjectId,
13
- refPath: 'client.type',
13
+ refPath: 'customer.type',
14
+ required: true,
14
15
  },
15
- table: { type: String, trim: true },
16
- name: { type: String, trim: true },
17
- phone: { type: Object, trim: true },
18
- email: { type: String, trim: true },
19
- messenger: {
20
- type: { type: String, trim: true },
21
- value: { type: String, trim: true }
22
- }
23
16
  },
24
17
  positions: {
25
18
  type: Array
26
19
  },
20
+ referralCode: {
21
+ type: String
22
+ },
27
23
  status: {
28
24
  type: String
29
25
  },
30
-
31
26
  status_history: [{
32
27
  status: {
33
28
  type: String,
@@ -0,0 +1,67 @@
1
+ // Importing Vue components from the components directory
2
+
3
+ import Orders from './components/pages/Orders.vue';
4
+ import Order from './components/pages/Order.vue';
5
+ import EditOrder from './components/pages/EditOrder.vue';
6
+
7
+ // import Favorites from './components/pages/Favorites.vue';
8
+
9
+ // Importing blocks components
10
+ import CardOrderItem from './components/blocks/CardOrderItem.vue';
11
+ import CardOrder from './components/blocks/CardOrder.vue';
12
+
13
+ import StatusHistory from './components/blocks/StatusHistory.vue';
14
+
15
+ import FormOrder from './components/pages/FormOrder.vue';
16
+
17
+ // Importing sections components
18
+ import FormClientDetails from './components/sections/FormClientDetails.vue';
19
+ import FormPayment from './components/sections/FormPayment.vue';
20
+ import FormDelivery from './components/sections/FormDelivery.vue';
21
+
22
+ import EmptyState from './components/sections/EmptyState.vue';
23
+ import AskToLogin from './components/sections/AskToLogin.vue';
24
+ import Succes from './components/sections/Succes.vue';
25
+
26
+ // Importing partials components
27
+ import ShopCart from './components/partials/ShopCart.vue';
28
+
29
+ // Importing Vuex store modules from the store directory
30
+ import * as ordersStore from './store/orders.js';
31
+ import * as shopcartStore from './store/shopcart.js';
32
+
33
+ // Importing Vue Router routes from the router directory
34
+ import ordersRoutes from './router/orders.router.js';
35
+
36
+ // Exporting components, store modules, and routes
37
+ export {
38
+ // Pages
39
+ FormOrder,
40
+ Order,
41
+ Orders,
42
+ EditOrder,
43
+ // Favorites,
44
+
45
+ // Blocks
46
+ CardOrderItem,
47
+ CardOrder,
48
+ StatusHistory,
49
+
50
+ // Sections
51
+ FormClientDetails,
52
+ AskToLogin,
53
+ FormDelivery,
54
+ EmptyState,
55
+ Succes,
56
+ FormPayment,
57
+
58
+ // Partials
59
+ ShopCart,
60
+
61
+ // Store
62
+ ordersStore,
63
+ shopcartStore,
64
+
65
+ // Router
66
+ ordersRoutes
67
+ };
@@ -0,0 +1,15 @@
1
+ // Importing controllers from the controllers directory
2
+ const ordersController = require('./controllers/orders.controller.js');
3
+ // Importing routes from the routes directory
4
+ const ordersRoutes = require('./routes/orders.routes.js');
5
+ // Models
6
+ const OrderModel = require('./models/order.model.js');
7
+ const CustomerModel = require('./models/customer.model.js');
8
+
9
+ // Exporting controllers, routes, and models
10
+ module.exports = {
11
+ ordersController,
12
+ ordersRoutes,
13
+ UserModel,
14
+ CustomerModel
15
+ };
@@ -19,7 +19,7 @@ const orders = [
19
19
  ru: 'Заказ'
20
20
  }
21
21
  },
22
- component: () => import(/* webpackChunkName: 'Order' */ '@pf/src/modules/orders/components/pages/FormOrder.vue')
22
+ component: () => import(/* webpackChunkName: 'Order' */ '@pf/src/modules/orders/components/pages/OrderCreate.vue')
23
23
  },{
24
24
  path: ':order',
25
25
  name: 'Order Status',
@@ -22,11 +22,11 @@ const state = reactive({
22
22
  },
23
23
 
24
24
  creator: {
25
- type: 'client',
25
+ type: 'customer',
26
26
  target: null,
27
27
  },
28
28
 
29
- client: {
29
+ customer: {
30
30
  name: null,
31
31
  phone: null,
32
32
  messenger: {
@@ -122,6 +122,20 @@ const actions = {
122
122
  },
123
123
  }
124
124
 
125
+ // const getters = {
126
+ // getTotal(positions) {
127
+ //
128
+ // }
129
+ // }
130
+
131
+ const getters = {
132
+ getTotal(positions) {
133
+ return positions.reduce((total, product) => {
134
+ return total + product.price * product.quantity;
135
+ }, 0)
136
+ },
137
+ }
138
+
125
139
  function set(eventData, property) {
126
140
  state[property] = eventData
127
141
  }
@@ -137,4 +151,5 @@ watch(state, (newState, oldState) => {
137
151
  export {
138
152
  state,
139
153
  actions,
154
+ getters
140
155
  }
@@ -15,11 +15,14 @@
15
15
  _id="dash"
16
16
  class="pd-b-extra pd-thin w-100"
17
17
  >
18
- <ProfileCompletion
18
+ <Completion
19
19
  v-if="route.params._id === auth.state.user._id && show"
20
20
  :user="auth.state.user._id"
21
21
  :target="users.state.current"
22
22
  :cta="true"
23
+ text_cta="Fill Profile"
24
+ text="Profile completed at"
25
+ class="mn-b-medium"
23
26
  />
24
27
 
25
28
  <section
@@ -157,7 +160,7 @@
157
160
  <Menu class="mn-b-regular bg-grey">
158
161
 
159
162
  <MenuItem @click="router.push({name: 'User Events', params: {_id: route.params._id}})" class="cursor-pointer">
160
- <IconEvents class="i-semi" :icon="true"/>
163
+ <IconEvents class="i-semi" :icon="true" :fill="'rgb(var(--white))'"/>
161
164
  <span>Events</span>
162
165
  </MenuItem>
163
166
 
@@ -237,6 +240,7 @@
237
240
  import Field from '@pf/src/components/Field/Field.vue'
238
241
  import Button from '@pf/src/components/Button/Button.vue'
239
242
  import Dropdown from "@pf/src/components/Dropdown/Dropdown.vue";
243
+ import Completion from '@pf/src/components/Completion/Completion.vue'
240
244
  // Mobile Module
241
245
  import Menu from '@pf/src/modules/mobile/components/Menu/Menu.vue'
242
246
  import MenuItem from '@pf/src/modules/mobile/components/Menu/MenuItem.vue'
@@ -247,8 +251,6 @@ import FormReport from '@pf/src/modules/reports/components/sections/FormReport.v
247
251
  // Community Module
248
252
  import Activity from '@pf/src/modules/community/components/blocks/Activity.vue';
249
253
  import Socials from '@pf/src/modules/organizations/components/blocks/Socials.vue'
250
- // Users Module
251
- import ProfileCompletion from '@pf/src/modules/users/components/sections/ProfileCompletion.vue'
252
254
  // Icons Module
253
255
  import IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'
254
256
  import IconGroups from '@pf/src/modules/icons/entities/IconGroups.vue'
@@ -1,19 +1,31 @@
1
1
  <template>
2
2
  <section class="w-100 mn-b-semi radius-medium pd-medium bg-main t-black">
3
- <h3>
4
- Profile completed at {{ completionPercentage }}%
5
- </h3>
6
-
7
- <router-link
8
- v-if="cta"
9
- :to="{
10
- name: 'User Edit Profile',
11
- params: { _id: user }
12
- }"
13
- class="mn-t-regular t-black bg-white w-100 button"
14
- >
15
- Fill Profile
16
- </router-link>
3
+ <div class="mn-b-thin flex-v-center flex-nowrap flex">
4
+ <h4>
5
+ {{text}}
6
+ </h4>
7
+
8
+ <h4 class="mn-l-thin uppercase radius-big t-semi t-medium t-white bg-black w-max pd-thin">
9
+ {{ percentage || completionPercentage }}%
10
+ </h4>
11
+
12
+ <router-link
13
+ v-if="cta"
14
+ :to="{
15
+ name: 'User Edit Profile',
16
+ params: { _id: user }
17
+ }"
18
+ class="mn-l-auto uppercase radius-big t-semi t-medium t-white bg-black w-max pd-thin"
19
+ >
20
+ {{text_cta}}
21
+ </router-link>
22
+ </div>
23
+
24
+ <div class=" w-100 h-2r pos-relative pd-nano bg-black radius-big">
25
+ <div :style="`width: ${completionPercentage}%`"class="h-100 bg-main mn-b-thin radius-big">
26
+ </div>
27
+ </div>
28
+
17
29
  </section>
18
30
  </template>
19
31
 
@@ -23,7 +35,10 @@ import { ref, onMounted } from 'vue'
23
35
  const { user, cta, target} = defineProps({
24
36
  user: Object,
25
37
  target: Object,
26
- cta: Boolean
38
+ cta: Boolean,
39
+ percentage: Number,
40
+ text: String,
41
+ text_cta: String,
27
42
  })
28
43
 
29
44
  const completionPercentage = ref(0)
@@ -67,8 +67,6 @@ const controllerFactory = (db) => {
67
67
  console.log(query)
68
68
  console.log(req.body)
69
69
 
70
-
71
-
72
70
  try {
73
71
  const users = await User.aggregate(query);
74
72
  if (!users || users.length === 0) {
@@ -1,16 +1,17 @@
1
- module.exports = (mongoose) => {
1
+ module.exports = (db) => {
2
2
 
3
- const UserSchema = new mongoose.Schema({
3
+ const UserSchema = new db.mongoose.Schema({
4
4
  username: String,
5
5
 
6
6
  phone: String,
7
7
  email: String,
8
+
8
9
  apple_id: String,
9
10
  password: String,
10
11
 
11
12
  status: {
12
13
  type: String,
13
- enum: ['active','banned','removed'],
14
+ enum: ['active','banned','removed','inactive'],
14
15
  default: 'active',
15
16
  required: true,
16
17
  },
@@ -54,7 +55,7 @@ module.exports = (mongoose) => {
54
55
 
55
56
  roles: [
56
57
  {
57
- type: mongoose.Schema.Types.ObjectId,
58
+ type: db.mongoose.Schema.Types.ObjectId,
58
59
  ref: "Role"
59
60
  }
60
61
  ]
@@ -65,7 +66,7 @@ module.exports = (mongoose) => {
65
66
 
66
67
  });
67
68
 
68
- const User = mongoose.model("User", UserSchema);
69
+ const User = db.mongoose.model("User", UserSchema);
69
70
 
70
71
  return User;
71
72
  }
@@ -4,6 +4,7 @@ const usersController = require('./controllers/users.controller.js');
4
4
  const usersRoutes = require('./routes/users.routes.js');
5
5
  // Models
6
6
  const UserModel = require('./models/user.model.js');
7
+ const ClientModel = require('./models/client.model.js');
7
8
 
8
9
  // Exporting controllers, routes, and models
9
10
  module.exports = {
@@ -1,5 +1,7 @@
1
1
  body {
2
- // Border Clasess
2
+
3
+
4
+ // Border Clasess
3
5
  .br-1px { border-width: 1px; }
4
6
  .br-2px { border-width: 2px; }
5
7
  /* Border style */
@@ -9,6 +11,8 @@ body {
9
11
  .br-t { border-top-width: 1px; }
10
12
  .br-r { border-right-width: 1px; }
11
13
  .br-b { border-bottom-width: 1px; }
14
+ .br-b-2px { border-bottom-width: 2px; }
15
+ .br-b-3px { border-bottom-width: 3px; }
12
16
  .br-l { border-left-width: 1px; }
13
17
  /* Border colors */
14
18
  .br-black { border-color: rgba(var(--black), 1.00); }
@@ -63,7 +67,6 @@ body {
63
67
  .br-white-transp-90 { border-color: rgba(var(--white), 0.90); }
64
68
  .br-white-transp-95 { border-color: rgba(var(--white), 0.95); }
65
69
  .br-white-transp-100 { border-color: rgba(var(--white), 1.00); }
66
-
67
70
  /* Social media brand borders */
68
71
  .br-youtube { border-color: rgba(var(--youtube), 1);; }
69
72
  .br-telegram { border-color: rgba(var(--telegram), 1);; }
@@ -52,8 +52,7 @@
52
52
  }
53
53
  // Генерация отрицательных классов с модификаторами
54
54
  .#{$class-name}-#{$modifier}-#{$value-key}-negative {
55
- #{$css-property}-#{$css-modifier}: -$value;
56
- // #{$css-property}-#{$css-modifier}: calc(#{$value} * -1);
55
+ #{$css-property}-#{$css-modifier}: calc(#{$value} * -1);
57
56
  }
58
57
  }
59
58
  }
@@ -67,7 +66,7 @@
67
66
  ////////////////////////////////////////
68
67
  // 1.COLORS VARIABLES
69
68
  ///////////////////////////////////////
70
- --main: 0,255,136;
69
+ --main: 10,250,125;;
71
70
  @include generate-vars-color('main');
72
71
  --second: 34,102,255;
73
72
  @include generate-vars-color('second');
@@ -78,7 +77,7 @@
78
77
  --fifth: 255,216,10;
79
78
  @include generate-vars-color('fifth');
80
79
  // Black and white colors
81
- --black: 10,10,10;
80
+ --black: 0,0,0;
82
81
  @include generate-vars-color('black');
83
82
  --dark: 36,36,36;
84
83
  @include generate-vars-color('dark');
@@ -1 +0,0 @@
1
- import SubscribeNewsletter from './components/sections/SubscribeNewsletter.vue';