@ozdao/prometheus-framework 0.2.109 → 0.2.111

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. package/dist/main.css +1 -1
  2. package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs +1 -1
  3. package/dist/prometheus-framework/src/components/Popup/Popup.vue.js +1 -73
  4. package/dist/prometheus-framework/src/components/Popup/Popup.vue2.cjs +1 -1
  5. package/dist/prometheus-framework/src/components/Popup/Popup.vue2.js +73 -1
  6. package/dist/prometheus-framework/src/components/Select/Select.vue.cjs +1 -1
  7. package/dist/prometheus-framework/src/components/Select/Select.vue.js +1 -103
  8. package/dist/prometheus-framework/src/components/Select/Select.vue2.cjs +1 -1
  9. package/dist/prometheus-framework/src/components/Select/Select.vue2.js +103 -1
  10. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  11. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +1 -1
  12. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
  13. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
  14. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  15. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  16. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  17. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  18. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  19. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  20. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  21. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  22. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  23. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  24. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.cjs +1 -1
  25. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.js +1 -1
  26. package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue.cjs +1 -0
  27. package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue.js +13 -0
  28. package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue2.cjs +1 -0
  29. package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue2.js +1 -0
  30. package/dist/prometheus-framework/src/modules/landing/components/elements/FloatingImages.vue.cjs +2 -2
  31. package/dist/prometheus-framework/src/modules/landing/components/elements/FloatingImages.vue.js +14 -14
  32. package/dist/prometheus-framework/src/modules/landing/components/sections/MobileApp.vue.cjs +1 -1
  33. package/dist/prometheus-framework/src/modules/landing/components/sections/MobileApp.vue.js +1 -4
  34. package/dist/prometheus-framework/src/modules/landing/landing.client.cjs +1 -1
  35. package/dist/prometheus-framework/src/modules/landing/landing.client.js +6 -4
  36. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  37. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  38. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  39. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  40. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  41. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  42. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  43. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
  44. package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  45. package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  46. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  47. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  48. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  49. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
  50. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  51. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  52. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  53. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  54. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  55. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  56. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  57. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  58. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  59. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  60. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
  61. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
  62. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  63. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  64. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
  65. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
  66. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  67. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  68. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
  69. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
  70. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  71. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  72. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  73. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  74. package/dist/style.css +1 -1
  75. package/package.json +1 -1
  76. package/src/components/DatePicker/Calendar.vue +296 -0
  77. package/src/modules/landing/components/elements/AnimatedGrid.vue +31 -0
  78. package/src/modules/landing/components/elements/FloatingImages.vue +4 -3
  79. package/src/modules/landing/components/pages/Home.vue +12 -9
  80. package/src/modules/landing/components/sections/HeroSection.vue +16 -14
  81. package/src/modules/landing/components/sections/MobileApp.vue +8 -33
  82. package/src/modules/landing/components/sections/SectionHeroToken.vue +18 -45
  83. package/src/modules/landing/landing.client.js +3 -1
  84. package/src/modules/users/components/sections/FeaturedUsers.vue +42 -0
  85. package/src/styles/base/all.scss +2 -0
  86. package/src/styles/config.scss +57 -26
  87. package/src/styles/responsive.scss +6 -0
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <div class="grid">
3
+ <div class="grid-lines"></div>
4
+ </div>
5
+ </template>
6
+
7
+ <style lang='scss' scoped>
8
+ .grid {
9
+ perspective: 450px;
10
+ background-size: cover;
11
+ }
12
+
13
+ .grid-lines {
14
+ width: 100%;
15
+ height: 200%;
16
+ background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1) 1px, transparent 0), linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 1px, transparent 0);
17
+ background-size: 45px 30px;
18
+ background-repeat: repeat;
19
+ transform-origin: 100% 0 0;
20
+ animation: play 15s linear infinite;
21
+ }
22
+
23
+ @keyframes play {
24
+ 0% {
25
+ transform: rotateX(45deg) translateY(-50%);
26
+ }
27
+ 100% {
28
+ transform: rotateX(45deg) translateY(0);
29
+ }
30
+ }
31
+ </style>
@@ -77,6 +77,7 @@ const createFloatingImages = () => {
77
77
 
78
78
  imgElement.src = imageSrc;
79
79
  imgElement.classList.add('floating-image');
80
+
80
81
  if (props.config.class) {
81
82
  imgElement.classList.add(props.config.class);
82
83
  }
@@ -108,13 +109,13 @@ const createFloatingImages = () => {
108
109
  imgElement.style.animation = `floatUp linear infinite`;
109
110
  imgElement.style.animationDuration = `${Math.random() * (props.config.maxDuration - props.config.minDuration) + props.config.minDuration}s`;
110
111
 
111
- document.querySelector(props.container).appendChild(imgElement);
112
+ if (props.container) document.querySelector(props.container).appendChild(imgElement);
112
113
 
113
114
  imgElement.addEventListener("animationiteration", () => {
114
115
  const newSpawnPoint = props.config.spawnPoints[Math.floor(Math.random() * props.config.spawnPoints.length)];
115
116
  const newDeviation = (Math.random() - 0.5) * 2 * 10;
116
- imgElement.style.left = `${newSpawnPoint + newDeviation}%`;
117
- });
117
+ imgElement.style.left = `${newSpawnPoint + newDeviation}%`;
118
+ });
118
119
  });
119
120
  };
120
121
 
@@ -10,6 +10,7 @@
10
10
  <MobileApp/>
11
11
  <JoinUs/>
12
12
  <SubscribeNewsletter/>
13
+ <FeaturedUsers/>
13
14
  <div class="pd-thin">
14
15
  <SectionGuide/>
15
16
  </div>
@@ -21,18 +22,20 @@
21
22
 
22
23
  <script setup="props">
23
24
  // Need to refactor
24
- import SectionsSection from '@pf/src/modules/landing/components/sections/SectionsSection.vue'
25
+ import SectionsSection from '@pf/src/modules/landing/components/sections/SectionsSection.vue'
25
26
  // Module landing
26
- import SectionFeatures from '@pf/src/modules/landing/components/sections/SectionFeatures.vue'
27
- import MobileApp from '@pf/src/modules/landing/components/sections/MobileApp.vue'
28
- import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
29
- import SectionEarn from '@pf/src/modules/landing/components/sections/SectionEarn.vue'
27
+ import SectionFeatures from '@pf/src/modules/landing/components/sections/SectionFeatures.vue'
28
+ import MobileApp from '@pf/src/modules/landing/components/sections/MobileApp.vue'
29
+ import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
30
+ import SectionEarn from '@pf/src/modules/landing/components/sections/SectionEarn.vue'
30
31
  // Module community
31
- import HotPosts from '@pf/src/modules/community/components/sections/HotPosts.vue'
32
+ import HotPosts from '@pf/src/modules/community/components/sections/HotPosts.vue'
32
33
  // Module Products
33
- import MenuSection from '@pf/src/modules/products/components/sections/MenuSection.vue'
34
- import PopularProducts from '@pf/src/modules/products/components/sections/PopularProducts.vue'
35
- import HeroRecommendation from '@pf/src/modules/products/components/sections/HeroRecommendation.vue'
34
+ import MenuSection from '@pf/src/modules/products/components/sections/MenuSection.vue'
35
+ import PopularProducts from '@pf/src/modules/products/components/sections/PopularProducts.vue'
36
+ import HeroRecommendation from '@pf/src/modules/products/components/sections/HeroRecommendation.vue'
37
+ // Module users
38
+ import FeaturedUsers from '@pf/src/modules/users/components/sections/FeaturedUsers.vue'
36
39
  // Not working
37
40
  import JoinUs from '@pf/src/modules/community/components/sections/JoinUs.vue'
38
41
  import SubscribeNewsletter from '@pf/src/modules/orders/components/sections/SubscribeNewsletter.vue'
@@ -32,43 +32,45 @@
32
32
 
33
33
  <template>
34
34
  <div
35
- id="hero"
36
- class="t-center cols-1 flex-center flex section"
35
+ id="hero"
36
+ class="t-center cols-1 flex-center flex"
37
37
  >
38
38
 
39
39
  <div
40
- class="flex-column flex-center flex pd-big radius-medium col"
40
+ class="flex-column flex-center flex pd-big radius-medium"
41
41
  >
42
42
  <h1
43
- class="mn-b-medium"
44
- v-html="t('HERO.TITLE')"
43
+ class="mn-b-medium"
44
+ v-html="t('HERO.TITLE')"
45
45
  />
46
46
 
47
47
  <p
48
- class="w-m-60r mn-b-big t-transp p-big"
49
- v-html="t('HERO.DESCRIPTION')"
50
- ></p>
48
+ class="w-m-60r mn-b-big t-transp p-big"
49
+ v-html="t('HERO.DESCRIPTION')"
50
+ />
51
51
 
52
52
  <div
53
- class="mobile-w-100 t-white gap-small cols-2"
53
+ class="mobile-w-100 t-white gap-small cols-2"
54
54
  >
55
55
  <button
56
- @click="router.push('/catalog')"
57
- class="w-100 bg-dark t-white button">
56
+ @click="router.push('/catalog')"
57
+ class="w-100 bg-dark t-white button"
58
+ >
58
59
  {{t('HERO.ACTION')}}
59
60
  </button>
60
61
 
61
62
  <button
62
- @click="store.commit('toggleBackCall')"
63
- class="w-100 bg-light t-dark br-light button">
63
+ @click="store.commit('toggleBackCall')"
64
+ class="w-100 bg-light t-dark br-light button"
65
+ >
64
66
  {{t('HERO.SUBACTION')}}
65
67
  </button>
66
68
  </div>
67
69
 
68
70
  </div>
69
-
70
71
  </div>
71
72
  </template>
72
73
 
73
74
  <style lang="scss" scoped>
75
+
74
76
  </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div id="mobileApp" class="pd-thin">
2
+ <div id="mobileApp">
3
3
  <section class="pos-relative cols-2 pd-thin o-hidden bg-black t-white radius-extra">
4
4
  <div class="z-index-1 h-100">
5
5
  <img
@@ -119,40 +119,15 @@ const { t, te } = useI18n(props.textData)
119
119
  </script>
120
120
 
121
121
  <style lang="scss">
122
-
123
- .grid {
124
- perspective: 450px;
125
- background-size: cover;
126
- }
127
-
128
- .grid-lines {
129
- width: 100%;
130
- height: 200%;
131
- background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1) 1px, transparent 0), linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 1px, transparent 0);
132
- background-size: 45px 30px;
133
- background-repeat: repeat;
134
- transform-origin: 100% 0 0;
135
- animation: play 15s linear infinite;
136
- }
137
-
138
- @keyframes play {
139
- 0% {
140
- transform: rotateX(45deg) translateY(-50%);
141
- }
142
- 100% {
143
- transform: rotateX(45deg) translateY(0);
144
- }
145
- }
146
-
147
122
  @media screen and (max-width: 1025px) {
148
- #mobileApp {
149
- text-align: center;
150
- > section {
151
- flex-direction: column;
152
- > div {
153
- order: 1;
154
- }
123
+ #mobileApp {
124
+ text-align: center;
125
+ > section {
126
+ flex-direction: column;
127
+ > div {
128
+ order: 1;
155
129
  }
156
130
  }
157
131
  }
132
+ }
158
133
  </style>
@@ -2,6 +2,8 @@
2
2
  import { useRouter } from 'vue-router'
3
3
  import { useI18n } from 'vue-i18n'
4
4
 
5
+ import AnimatedGrid from '@pf/src/modules/landing/components/elements/AnimatedGrid.vue'
6
+
5
7
  const props = defineProps({
6
8
  textData: {
7
9
  type: Object,
@@ -61,9 +63,7 @@
61
63
  />
62
64
  </div>
63
65
 
64
- <div class="w-100 h-100 pos-absolute pos-t-0 pos-r-0 z-index-0 grid ">
65
- <div class="grid-lines"></div>
66
- </div>
66
+ <AnimatedGrid class="w-100 h-100 pos-absolute pos-t-0 pos-r-0 z-index-0" />
67
67
 
68
68
  </div>
69
69
  </template>
@@ -92,47 +92,20 @@
92
92
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#007db9e8',GradientType=1 ); /* IE6-9 */
93
93
  }
94
94
 
95
- /* animation */
96
-
97
- @keyframes slide {
98
- 0% {
99
- transform:translateX(-00%);
100
- opacity: 0;
101
- }
102
- 20% {
103
- opacity: 1
104
- }
105
- 80% {
106
- opacity: 1
107
- }
108
- 100% {
109
- transform:translateX(100%);
110
- opacity: 0
95
+ @keyframes slide {
96
+ 0% {
97
+ transform:translateX(-00%);
98
+ opacity: 0;
99
+ }
100
+ 20% {
101
+ opacity: 1
102
+ }
103
+ 80% {
104
+ opacity: 1
105
+ }
106
+ 100% {
107
+ transform:translateX(100%);
108
+ opacity: 0
109
+ }
111
110
  }
112
- }
113
-
114
-
115
- .grid {
116
- perspective: 450px;
117
- background-size: cover;
118
- }
119
-
120
- .grid-lines {
121
- width: 100%;
122
- height: 200%;
123
- background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1) 1px, transparent 0), linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 1px, transparent 0);
124
- background-size: 45px 30px;
125
- background-repeat: repeat;
126
- transform-origin: 100% 0 0;
127
- animation: play 15s linear infinite;
128
- }
129
-
130
- @keyframes play {
131
- 0% {
132
- transform: rotateX(45deg) translateY(-50%);
133
- }
134
- 100% {
135
- transform: rotateX(45deg) translateY(0);
136
- }
137
- }
138
111
  </style>
@@ -3,9 +3,11 @@ import MobileApp from './components/sections/MobileApp.vue';
3
3
  import SectionFeatures from './components/sections/SectionFeatures.vue';
4
4
 
5
5
  import FloatingImages from './components/elements/FloatingImages.vue';
6
+ import AnimatedGrid from './components/elements/AnimatedGrid.vue';
6
7
 
7
8
  export {
8
9
  MobileApp,
10
+ SectionFeatures,
9
11
  FloatingImages,
10
- SectionFeatures
12
+ AnimatedGrid
11
13
  };
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <div class="pd-extra o-hidden w-100">
3
+ <div class="content">
4
+ <span class="h2 mn-b-big">
5
+ Ask over 5 million people who have trusted us for decades
6
+ </span>
7
+ </div>
8
+ <div class="gap-thin flex flex-nowrap">
9
+ <CardUser
10
+ v-for="user in usersList"
11
+ class="selector flex-child bg-grey pd-small radius-small"
12
+ :user="user"
13
+ :photo="user.profile.photo"
14
+ :name="user.profile.name || user.phone || user.username"
15
+ :phone="'DJ'"
16
+ />
17
+ </div>
18
+ </div>
19
+ </template>
20
+
21
+ <script setup>
22
+ import { ref, onMounted } from 'vue';
23
+
24
+ import * as users from '@pf/src/modules/users/store/users'
25
+
26
+ import CardUser from '@pf/src/modules/users/components/blocks/CardUser.vue'
27
+
28
+ const usersList = ref([])
29
+
30
+ onMounted(async() => {
31
+ usersList.value = await users.actions.read({
32
+ })
33
+ });
34
+ </script>
35
+
36
+ <style lang="scss">
37
+ .selector {
38
+ flex-grow: 1;
39
+ flex-basis: 0;
40
+ min-width: 0;
41
+ }
42
+ </style>
@@ -191,6 +191,8 @@ body {
191
191
  &-items-baseline { align-items: baseline; }
192
192
  }
193
193
 
194
+ .d-inline-flex {display: inline-flex; }
195
+
194
196
  .align-self-start {
195
197
  align-self: start;
196
198
  }
@@ -32,34 +32,58 @@
32
32
  }
33
33
  }
34
34
 
35
-
36
- @mixin generate-utility-classes($class-name, $css-property, $modifiers, $values) {
35
+ @mixin generate-utility-classes($class-name, $css-property, $modifiers, $values, $breakpoints: null) {
36
+ // Генерация базовых классов без модификаторов и медиа-запросов
37
37
  @each $value-key, $value in $values {
38
- // Генерация классов без модификаторов
39
38
  .#{$class-name}-#{$value-key} {
40
39
  #{$css-property}: $value;
41
40
  }
42
- // Генерация отрицательных классов без модификаторов
43
41
  .#{$class-name}-#{$value-key}-negative {
44
- #{$css-property}: -$value;
45
- }
46
-
47
- // Генерация классов с модификаторами
42
+ #{$css-property}: -$value;
43
+ }
44
+
48
45
  @if $modifiers {
49
46
  @each $modifier, $css-modifier in $modifiers {
50
47
  .#{$class-name}-#{$modifier}-#{$value-key} {
51
48
  #{$css-property}-#{$css-modifier}: $value;
52
49
  }
53
- // Генерация отрицательных классов с модификаторами
54
50
  .#{$class-name}-#{$modifier}-#{$value-key}-negative {
55
51
  #{$css-property}-#{$css-modifier}: calc(#{$value} * -1);
56
52
  }
57
53
  }
58
54
  }
59
55
  }
56
+
57
+ // Генерация классов с медиа-запросами
58
+ @if $breakpoints {
59
+ @each $breakpoint-key, $breakpoint-query in $breakpoints {
60
+ @media #{$breakpoint-query} {
61
+ @each $value-key, $value in $values {
62
+ .#{$breakpoint-key}\:#{$class-name}-#{$value-key} {
63
+ #{$css-property}: $value;
64
+ }
65
+ .#{$breakpoint-key}\:#{$class-name}-#{$value-key}-negative {
66
+ #{$css-property}: calc(#{$value} * -1);
67
+ }
68
+
69
+ @if $modifiers {
70
+ @each $modifier, $css-modifier in $modifiers {
71
+ .#{$breakpoint-key}\:#{$class-name}-#{$modifier}-#{$value-key} {
72
+ #{$css-property}-#{$css-modifier}: $value;
73
+ }
74
+ .#{$breakpoint-key}\:#{$class-name}-#{$modifier}-#{$value-key}-negative {
75
+ #{$css-property}-#{$css-modifier}: calc(#{$value} * -1);
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
60
83
  }
61
84
 
62
85
 
86
+
63
87
  :root {
64
88
  // THEME
65
89
  color-scheme: light dark;
@@ -202,6 +226,13 @@ $percent: (
202
226
  '0': 0%,
203
227
  );
204
228
 
229
+ $breakpoints: (
230
+ 'mobile': "(max-width: 640px)",
231
+ 'tablet': "(min-width: 641px) and (max-width: 1024px)",
232
+ 'desktop': "(min-width: 1025px) and (max-width: 1440px)",
233
+ 'widescreen': "(min-width: 1441px)"
234
+ );
235
+
205
236
  $base: (
206
237
  'auto': auto,
207
238
  'zero': 0,
@@ -213,29 +244,29 @@ $combined: map-merge($combined, $variables);
213
244
  $combined: map-merge($combined, $base);
214
245
 
215
246
  body {
216
- @include generate-utility-classes('pd', 'padding', $modifiers, $combined);
217
- @include generate-utility-classes('mn', 'margin', $modifiers, $combined);
247
+ @include generate-utility-classes('pd', 'padding', $modifiers, $combined, $breakpoints);
248
+ @include generate-utility-classes('mn', 'margin', $modifiers, $combined, $breakpoints);
218
249
 
219
- @include generate-utility-classes('w', 'width', null, $combined);
220
- @include generate-utility-classes('h', 'height', null, $combined);
250
+ @include generate-utility-classes('w', 'width', null, $combined, $breakpoints);
251
+ @include generate-utility-classes('h', 'height', null, $combined, $breakpoints);
221
252
 
222
- @include generate-utility-classes('pos-t', 'top', null, $combined);
223
- @include generate-utility-classes('pos-r', 'right', null, $combined);
224
- @include generate-utility-classes('pos-b', 'bottom', null, $combined);
225
- @include generate-utility-classes('pos-l', 'left', null, $combined);
253
+ @include generate-utility-classes('pos-t', 'top', null, $combined, $breakpoints);
254
+ @include generate-utility-classes('pos-r', 'right', null, $combined, $breakpoints);
255
+ @include generate-utility-classes('pos-b', 'bottom', null, $combined, $breakpoints);
256
+ @include generate-utility-classes('pos-l', 'left', null, $combined, $breakpoints);
226
257
 
227
- @include generate-utility-classes('h-max', 'max-height', null, $combined);
228
- @include generate-utility-classes('h-min', 'min-height', null, $combined);
258
+ @include generate-utility-classes('h-max', 'max-height', null, $combined, $breakpoints);
259
+ @include generate-utility-classes('h-min', 'min-height', null, $combined, $breakpoints);
229
260
 
230
- @include generate-utility-classes('w-max', 'max-width', null, $combined);
231
- @include generate-utility-classes('w-min', 'min-width', null, $combined);
261
+ @include generate-utility-classes('w-max', 'max-width', null, $combined, $breakpoints);
262
+ @include generate-utility-classes('w-min', 'min-width', null, $combined, $breakpoints);
232
263
 
233
- @include generate-utility-classes('radius', 'border-radius', null, $combined);
264
+ @include generate-utility-classes('radius', 'border-radius', null, $combined, $breakpoints);
234
265
 
235
- @include generate-utility-classes('radius-tl', 'border-top-left-radius', null, $combined);
236
- @include generate-utility-classes('radius-br', 'border-bottom-right-radius', null, $combined);
237
- @include generate-utility-classes('radius-tr', 'border-top-right-radius', null, $combined);
238
- @include generate-utility-classes('radius-bl', 'border-bottom-left-radius', null, $combined);
266
+ @include generate-utility-classes('radius-tl', 'border-top-left-radius', null, $combined, $breakpoints);
267
+ @include generate-utility-classes('radius-tr', 'border-top-right-radius', null, $combined, $breakpoints);
268
+ @include generate-utility-classes('radius-br', 'border-bottom-right-radius', null, $combined, $breakpoints);
269
+ @include generate-utility-classes('radius-bl', 'border-bottom-left-radius', null, $combined, $breakpoints);
239
270
 
240
271
  @include generate-bg-classes('bg-main', 'main');
241
272
  @include generate-bg-classes('bg-second', 'second');
@@ -1,15 +1,21 @@
1
1
  $super-ultra-tiny-flip-phone-max: 240px;
2
+
2
3
  $flip-phone-max: 320px;
3
4
  $phone-portrait-max: 321px;
4
5
  $phone-landscape-max: 640px;
6
+
5
7
  $tablet-portrait-min: 641px;
6
8
  $tablet-portrait-max: 768px;
9
+
7
10
  $tablet-landscape-min: 769px;
8
11
  $tablet-landscape-max: 1024px;
12
+
9
13
  $desktop-min: 1025px;
10
14
  $desktop-max: 1440px;
15
+
11
16
  $xl-desktop-min: 1441px;
12
17
  $xl-desktop-max: 1920px;
18
+
13
19
  $xxl-desktop-min: 1921px;
14
20
 
15
21
  @media screen and (min-width: $xxl-desktop-min) {