@mirweb/mir-web-components 1.15.3 → 2.0.0

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 (184) hide show
  1. package/README.md +2 -2
  2. package/dist/assets/index-Cl4fzBs2.js +17 -0
  3. package/dist/assets/scss/globals.scss +231 -0
  4. package/dist/assets/scss/index.scss +4 -0
  5. package/dist/assets/scss/normalize.scss +393 -0
  6. package/dist/assets/scss/reset.scss +102 -0
  7. package/dist/assets/scss/variables.scss +95 -0
  8. package/dist/components/atoms/button/button.vue +81 -0
  9. package/dist/components/atoms/checkbox/checkbox.vue +125 -0
  10. package/dist/components/atoms/chip/chip.vue +55 -0
  11. package/dist/components/atoms/dropdown/dropdown.vue +490 -0
  12. package/dist/components/atoms/image/image.vue +42 -0
  13. package/dist/components/atoms/label/label.vue +52 -0
  14. package/dist/components/atoms/link/link.vue +166 -0
  15. package/dist/components/atoms/radio-button/radio-button.vue +110 -0
  16. package/dist/components/atoms/select/select.vue +116 -0
  17. package/dist/components/atoms/select-multiple/select-multiple.vue +210 -0
  18. package/dist/components/atoms/slider/slider.vue +322 -0
  19. package/dist/components/atoms/text-field/text-field.vue +273 -0
  20. package/dist/components/atoms/textarea/textarea.vue +179 -0
  21. package/dist/components/atoms/video/video.vue +98 -0
  22. package/dist/components/blocks/accordion/accordion.vue +222 -0
  23. package/dist/components/blocks/card-display/card-display.vue +125 -0
  24. package/dist/components/blocks/column-grid/column-grid.vue +201 -0
  25. package/dist/components/blocks/facts/facts.vue +156 -0
  26. package/dist/components/blocks/features/features.vue +176 -0
  27. package/dist/components/blocks/flashcards/flashcards.vue +212 -0
  28. package/dist/components/blocks/form-script/form-script.vue +172 -0
  29. package/dist/components/blocks/frontpage-hero/frontpage-hero.vue +214 -0
  30. package/dist/components/blocks/headline/headline.vue +93 -0
  31. package/dist/components/blocks/hero/hero.vue +173 -0
  32. package/dist/components/blocks/image/image.vue +93 -0
  33. package/dist/components/blocks/image-gallery/image-gallery.vue +289 -0
  34. package/dist/components/blocks/logo-wall/logo-wall.vue +125 -0
  35. package/dist/components/blocks/micro-stories/micro-stories.vue +316 -0
  36. package/dist/components/blocks/pallet-jack/pallet-jack.vue +440 -0
  37. package/dist/components/blocks/policy/policy.vue +106 -0
  38. package/dist/components/blocks/product-hero/product-hero.vue +140 -0
  39. package/dist/components/blocks/promo/promo.vue +403 -0
  40. package/dist/components/blocks/quote/quote.vue +127 -0
  41. package/dist/components/blocks/rich-text/rich-text-columns.vue +159 -0
  42. package/dist/components/blocks/rich-text/rich-text.vue +296 -0
  43. package/dist/components/blocks/timeline/timeline.vue +232 -0
  44. package/dist/components/blocks/vimeo/vimeo.vue +52 -0
  45. package/dist/components/index.ts +51 -0
  46. package/dist/components/molecules/address/address.vue +123 -0
  47. package/dist/components/molecules/bullet-list/bullet-list.vue +99 -0
  48. package/dist/components/molecules/card/card.vue +302 -0
  49. package/dist/components/molecules/column-card/column-card.vue +178 -0
  50. package/dist/components/molecules/event-card/event-card.vue +111 -0
  51. package/dist/components/molecules/flashcard/flashcard.vue +293 -0
  52. package/dist/components/molecules/modal/modal.vue +113 -0
  53. package/dist/components/molecules/text-card/text-card.vue +74 -0
  54. package/dist/components/organisms/404/404.vue +79 -0
  55. package/dist/components/organisms/filter/filter.vue +89 -0
  56. package/dist/components/organisms/footer/footer.vue +356 -0
  57. package/dist/components/organisms/header/header.vue +754 -0
  58. package/dist/components/organisms/language-switcher/language-switcher.vue +68 -0
  59. package/dist/components/organisms/pagination/pagination.vue +85 -0
  60. package/dist/components/organisms/search/search.vue +153 -0
  61. package/dist/components/templates/404-error-page.vue +0 -0
  62. package/dist/directives/clickOutside.ts +15 -0
  63. package/dist/fonts/OpenSans-Light.woff2 +0 -0
  64. package/dist/fonts/OpenSans-Medium.woff2 +0 -0
  65. package/dist/fonts/OpenSans-Regular.woff2 +0 -0
  66. package/dist/fonts/OpenSans-SemiBold.woff2 +0 -0
  67. package/dist/fonts/Oscine_Bd.woff2 +0 -0
  68. package/dist/fonts/Oscine_Lt.woff2 +0 -0
  69. package/dist/fonts/Oscine_Rg.woff2 +0 -0
  70. package/dist/index.html +12 -0
  71. package/dist/main.css +1 -0
  72. package/package.json +8 -10
  73. package/dist/components/atoms/button/button.vue.d.ts +0 -5
  74. package/dist/components/atoms/button/button.vue.d.ts.map +0 -1
  75. package/dist/components/atoms/checkbox/checkbox.vue.d.ts +0 -5
  76. package/dist/components/atoms/checkbox/checkbox.vue.d.ts.map +0 -1
  77. package/dist/components/atoms/chip/chip.vue.d.ts +0 -5
  78. package/dist/components/atoms/chip/chip.vue.d.ts.map +0 -1
  79. package/dist/components/atoms/dropdown/dropdown.vue.d.ts +0 -5
  80. package/dist/components/atoms/dropdown/dropdown.vue.d.ts.map +0 -1
  81. package/dist/components/atoms/image/image.vue.d.ts +0 -5
  82. package/dist/components/atoms/image/image.vue.d.ts.map +0 -1
  83. package/dist/components/atoms/label/label.vue.d.ts +0 -5
  84. package/dist/components/atoms/label/label.vue.d.ts.map +0 -1
  85. package/dist/components/atoms/link/link.vue.d.ts +0 -5
  86. package/dist/components/atoms/link/link.vue.d.ts.map +0 -1
  87. package/dist/components/atoms/radio-button/radio-button.vue.d.ts +0 -5
  88. package/dist/components/atoms/radio-button/radio-button.vue.d.ts.map +0 -1
  89. package/dist/components/atoms/select/select.vue.d.ts +0 -5
  90. package/dist/components/atoms/select/select.vue.d.ts.map +0 -1
  91. package/dist/components/atoms/select-multiple/select-multiple.vue.d.ts +0 -5
  92. package/dist/components/atoms/select-multiple/select-multiple.vue.d.ts.map +0 -1
  93. package/dist/components/atoms/slider/slider.vue.d.ts +0 -5
  94. package/dist/components/atoms/slider/slider.vue.d.ts.map +0 -1
  95. package/dist/components/atoms/text-field/text-field.vue.d.ts +0 -5
  96. package/dist/components/atoms/text-field/text-field.vue.d.ts.map +0 -1
  97. package/dist/components/atoms/textarea/textarea.vue.d.ts +0 -5
  98. package/dist/components/atoms/textarea/textarea.vue.d.ts.map +0 -1
  99. package/dist/components/atoms/video/video.vue.d.ts +0 -5
  100. package/dist/components/atoms/video/video.vue.d.ts.map +0 -1
  101. package/dist/components/blocks/accordion/accordion.vue.d.ts +0 -5
  102. package/dist/components/blocks/accordion/accordion.vue.d.ts.map +0 -1
  103. package/dist/components/blocks/card-display/card-display.vue.d.ts +0 -6
  104. package/dist/components/blocks/card-display/card-display.vue.d.ts.map +0 -1
  105. package/dist/components/blocks/column-grid/column-grid.vue.d.ts +0 -5
  106. package/dist/components/blocks/column-grid/column-grid.vue.d.ts.map +0 -1
  107. package/dist/components/blocks/facts/facts.vue.d.ts +0 -5
  108. package/dist/components/blocks/facts/facts.vue.d.ts.map +0 -1
  109. package/dist/components/blocks/features/features.vue.d.ts +0 -5
  110. package/dist/components/blocks/features/features.vue.d.ts.map +0 -1
  111. package/dist/components/blocks/flashcards/flashcards.vue.d.ts +0 -5
  112. package/dist/components/blocks/flashcards/flashcards.vue.d.ts.map +0 -1
  113. package/dist/components/blocks/form-script/form-script.vue.d.ts +0 -5
  114. package/dist/components/blocks/form-script/form-script.vue.d.ts.map +0 -1
  115. package/dist/components/blocks/frontpage-hero/frontpage-hero.vue.d.ts +0 -5
  116. package/dist/components/blocks/frontpage-hero/frontpage-hero.vue.d.ts.map +0 -1
  117. package/dist/components/blocks/headline/headline.vue.d.ts +0 -5
  118. package/dist/components/blocks/headline/headline.vue.d.ts.map +0 -1
  119. package/dist/components/blocks/hero/hero.vue.d.ts +0 -5
  120. package/dist/components/blocks/hero/hero.vue.d.ts.map +0 -1
  121. package/dist/components/blocks/image/image.vue.d.ts +0 -5
  122. package/dist/components/blocks/image/image.vue.d.ts.map +0 -1
  123. package/dist/components/blocks/image-gallery/image-gallery.vue.d.ts +0 -5
  124. package/dist/components/blocks/image-gallery/image-gallery.vue.d.ts.map +0 -1
  125. package/dist/components/blocks/logo-wall/logo-wall.vue.d.ts +0 -5
  126. package/dist/components/blocks/logo-wall/logo-wall.vue.d.ts.map +0 -1
  127. package/dist/components/blocks/micro-stories/micro-stories.vue.d.ts +0 -5
  128. package/dist/components/blocks/micro-stories/micro-stories.vue.d.ts.map +0 -1
  129. package/dist/components/blocks/pallet-jack/pallet-jack.vue.d.ts +0 -5
  130. package/dist/components/blocks/pallet-jack/pallet-jack.vue.d.ts.map +0 -1
  131. package/dist/components/blocks/policy/policy.vue.d.ts +0 -4
  132. package/dist/components/blocks/policy/policy.vue.d.ts.map +0 -1
  133. package/dist/components/blocks/product-hero/product-hero.vue.d.ts +0 -5
  134. package/dist/components/blocks/product-hero/product-hero.vue.d.ts.map +0 -1
  135. package/dist/components/blocks/promo/promo.vue.d.ts +0 -5
  136. package/dist/components/blocks/promo/promo.vue.d.ts.map +0 -1
  137. package/dist/components/blocks/quote/quote.vue.d.ts +0 -5
  138. package/dist/components/blocks/quote/quote.vue.d.ts.map +0 -1
  139. package/dist/components/blocks/rich-text/rich-text-columns.vue.d.ts +0 -4
  140. package/dist/components/blocks/rich-text/rich-text-columns.vue.d.ts.map +0 -1
  141. package/dist/components/blocks/rich-text/rich-text.vue.d.ts +0 -5
  142. package/dist/components/blocks/rich-text/rich-text.vue.d.ts.map +0 -1
  143. package/dist/components/blocks/timeline/timeline.vue.d.ts +0 -5
  144. package/dist/components/blocks/timeline/timeline.vue.d.ts.map +0 -1
  145. package/dist/components/blocks/vimeo/vimeo.vue.d.ts +0 -5
  146. package/dist/components/blocks/vimeo/vimeo.vue.d.ts.map +0 -1
  147. package/dist/components/index.d.ts +0 -51
  148. package/dist/components/main.d.ts +0 -59
  149. package/dist/components/molecules/address/address.vue.d.ts +0 -5
  150. package/dist/components/molecules/address/address.vue.d.ts.map +0 -1
  151. package/dist/components/molecules/bullet-list/bullet-list.vue.d.ts +0 -5
  152. package/dist/components/molecules/bullet-list/bullet-list.vue.d.ts.map +0 -1
  153. package/dist/components/molecules/card/card.vue.d.ts +0 -5
  154. package/dist/components/molecules/card/card.vue.d.ts.map +0 -1
  155. package/dist/components/molecules/column-card/column-card.vue.d.ts +0 -5
  156. package/dist/components/molecules/column-card/column-card.vue.d.ts.map +0 -1
  157. package/dist/components/molecules/event-card/event-card.vue.d.ts +0 -5
  158. package/dist/components/molecules/event-card/event-card.vue.d.ts.map +0 -1
  159. package/dist/components/molecules/flashcard/flashcard.vue.d.ts +0 -5
  160. package/dist/components/molecules/flashcard/flashcard.vue.d.ts.map +0 -1
  161. package/dist/components/molecules/modal/modal.vue.d.ts +0 -5
  162. package/dist/components/molecules/modal/modal.vue.d.ts.map +0 -1
  163. package/dist/components/molecules/text-card/text-card.vue.d.ts +0 -5
  164. package/dist/components/molecules/text-card/text-card.vue.d.ts.map +0 -1
  165. package/dist/components/organisms/404/404.vue.d.ts +0 -5
  166. package/dist/components/organisms/404/404.vue.d.ts.map +0 -1
  167. package/dist/components/organisms/filter/filter.vue.d.ts +0 -5
  168. package/dist/components/organisms/filter/filter.vue.d.ts.map +0 -1
  169. package/dist/components/organisms/footer/footer.vue.d.ts +0 -5
  170. package/dist/components/organisms/footer/footer.vue.d.ts.map +0 -1
  171. package/dist/components/organisms/header/header.vue.d.ts +0 -6
  172. package/dist/components/organisms/header/header.vue.d.ts.map +0 -1
  173. package/dist/components/organisms/language-switcher/language-switcher.vue.d.ts +0 -5
  174. package/dist/components/organisms/language-switcher/language-switcher.vue.d.ts.map +0 -1
  175. package/dist/components/organisms/pagination/pagination.vue.d.ts +0 -5
  176. package/dist/components/organisms/pagination/pagination.vue.d.ts.map +0 -1
  177. package/dist/components/organisms/search/search.vue.d.ts +0 -4
  178. package/dist/components/organisms/search/search.vue.d.ts.map +0 -1
  179. package/dist/directives/clickOutside.d.ts +0 -3
  180. package/dist/main.d.ts +0 -1
  181. package/dist/mir-web-components.cjs.js +0 -1
  182. package/dist/mir-web-components.css +0 -1
  183. package/dist/mir-web-components.es.js +0 -3187
  184. package/dist/mir-web-components.umd.js +0 -2
@@ -0,0 +1,89 @@
1
+ <template>
2
+ <div class="filter__wrapper">
3
+ <div class="filter__content">
4
+ <div class="filter__dropdowns">
5
+ <slot name="filter-dropdowns" />
6
+ </div>
7
+ <div class="filter__chips">
8
+ <slot name="filter-chips" />
9
+ <button
10
+ v-if="hasChips"
11
+ class="filter__clear"
12
+ @click="$emit('clearFilters')"
13
+ >
14
+ {{ removeAll }}
15
+ </button>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </template>
20
+
21
+ <script setup lang="ts">
22
+ defineEmits(["clearFilters"]);
23
+
24
+ defineProps({
25
+ hasChips: {
26
+ type: Boolean,
27
+ default: false,
28
+ },
29
+ removeAll: {
30
+ type: String,
31
+ default: "Remove all filters",
32
+ },
33
+ });
34
+ </script>
35
+
36
+ <style scoped lang="scss">
37
+ @use "../../../assets/scss/variables.scss" as *;
38
+ .filter {
39
+ &__wrapper {
40
+ width: 100%;
41
+ padding: 0px 30px;
42
+
43
+ @include md {
44
+ padding: 0px;
45
+ }
46
+ }
47
+
48
+ &__content {
49
+ max-width: $max-width;
50
+ margin: 0 auto;
51
+ gap: 25px;
52
+ display: flex;
53
+ flex-direction: column;
54
+ }
55
+
56
+ &__dropdowns {
57
+ display: flex;
58
+ flex-wrap: wrap;
59
+ gap: 30px;
60
+
61
+ :slotted(.select__wrapper) {
62
+ flex: 1;
63
+ min-width: 125px;
64
+
65
+ @include sm {
66
+ flex: none;
67
+ }
68
+ }
69
+ }
70
+
71
+ &__chips {
72
+ display: flex;
73
+ flex-direction: row;
74
+ flex-wrap: wrap;
75
+ gap: 15px;
76
+ margin-bottom: 30px;
77
+ }
78
+
79
+ &__clear {
80
+ cursor: pointer;
81
+ color: $blue-600;
82
+
83
+ &:hover,
84
+ &:focus {
85
+ color: $blue-700;
86
+ }
87
+ }
88
+ }
89
+ </style>
@@ -0,0 +1,356 @@
1
+ <template>
2
+ <div class="footer__wrapper">
3
+ <footer class="footer__content">
4
+ <img
5
+ v-if="language === 'zh'"
6
+ src="https://mobile-industrial-robots.com/logo/mir-main-logo.svg"
7
+ style="margin: 0 auto"
8
+ width="101"
9
+ height="45"
10
+ />
11
+ <div class="footer__sections">
12
+ <div
13
+ v-for="section in footerSections"
14
+ :key="section.title"
15
+ class="section"
16
+ >
17
+ <span class="section__title">{{ section.title }}</span>
18
+ <nav>
19
+ <ul class="section__list">
20
+ <slot name="section-links" :links="section.links"></slot>
21
+ </ul>
22
+ </nav>
23
+ </div>
24
+ <div class="section">
25
+ <span v-if="language === 'zh'" class="section__title"
26
+ >名傲移动机器人(上海)有限公司</span
27
+ >
28
+ <span v-else class="section__title"
29
+ >Mobile Industrial Robots A/S</span
30
+ >
31
+ <address>
32
+ <span v-if="language === 'zh'">上海浦东新区金桥出口加工区</span>
33
+ <span v-else>Energivej 51</span>
34
+ <span v-if="language === 'zh'">桂桥路1201号10栋2楼</span>
35
+ <span v-else>5260 Odense S</span>
36
+ <span v-if="language !== 'zh'">CVR: 35251235</span>
37
+ <br />
38
+ <atom-link
39
+ class="footer__contact"
40
+ link-type="regular_light"
41
+ underline="false"
42
+ ><a v-if="language === 'zh'" href="mailto:china@mir-robots.com"
43
+ >china@mir-robots.com</a
44
+ ><a v-else href="mailto:mail@mir-robots.com"
45
+ >mail@mir-robots.com</a
46
+ >
47
+ </atom-link>
48
+ <atom-link
49
+ class="footer__contact"
50
+ link-type="regular_light"
51
+ underline="false"
52
+ ><a v-if="language === 'zh'" href="tel:+8613661856951"
53
+ >+86 13661856951(微信同号)</a
54
+ >
55
+ <a v-else href="tel:+4520377577">+45 20 377 577</a>
56
+ </atom-link>
57
+ </address>
58
+ </div>
59
+ </div>
60
+ <div class="footer__bottom">
61
+ <p class="copyright">
62
+ © Mobile Industrial Robots {{ new Date().getFullYear() }}
63
+ </p>
64
+ <div class="footer__policy">
65
+ <button
66
+ class="footer__language-switcher"
67
+ @click="$emit('changeRegionClicked')"
68
+ >
69
+ <span><i class="change-region"></i>{{ changeRegion }}</span>
70
+ </button>
71
+
72
+ <slot name="footer-privacy-link"></slot>
73
+ <slot name="footer-cookie-link"></slot>
74
+ </div>
75
+ <div v-if="language !== 'zh'" class="footer__social">
76
+ <atom-link
77
+ v-for="link in socialMedia"
78
+ :key="link.title"
79
+ underline="false"
80
+ link-type="regular"
81
+ >
82
+ <a :href="link.url" target="_blank" :aria-label="link.title">
83
+ <i
84
+ width="19"
85
+ height="14"
86
+ class="footer__social--icon"
87
+ :class="[link.title ? 'bg-' + link.title : '']"
88
+ ></i>
89
+ </a>
90
+ </atom-link>
91
+ </div>
92
+ <div v-else class="footer__social">
93
+ <atom-link
94
+ v-for="link in socialMediaChina"
95
+ :key="link.title"
96
+ underline="false"
97
+ link-type="regular"
98
+ >
99
+ <a :href="link.url" target="_blank" :aria-label="link.title">
100
+ <i
101
+ width="19"
102
+ height="14"
103
+ class="footer__social--icon"
104
+ :class="[link.title ? 'bg-' + link.title : '']"
105
+ ></i>
106
+ </a>
107
+ </atom-link>
108
+ </div>
109
+ </div>
110
+ </footer>
111
+ </div>
112
+ </template>
113
+
114
+ <script setup lang="ts">
115
+ import AtomLink from "../../atoms/link/link.vue";
116
+
117
+ interface Link {
118
+ title: string;
119
+ url: string;
120
+ target?: string;
121
+ underline?: string;
122
+ rel?: string;
123
+ linkType?: string;
124
+ disabled?: boolean;
125
+ arrow?: boolean;
126
+ }
127
+
128
+ interface FooterSection {
129
+ title: string;
130
+ links: Link[];
131
+ }
132
+
133
+ export type Props = {
134
+ language?: string;
135
+ footerSections?: FooterSection[];
136
+ privacyPolicy?: Link;
137
+ cookiePolicy?: Link;
138
+ socialMedia?: Link[];
139
+ socialMediaChina?: Link[];
140
+ changeRegion?: string;
141
+ };
142
+
143
+ withDefaults(defineProps<Props>(), {
144
+ language: "",
145
+ footerSections: () => [],
146
+ privacyPolicy: undefined,
147
+ cookiePolicy: undefined,
148
+ socialMedia: () => [],
149
+ socialMediaChina: () => [],
150
+ changeRegion: "",
151
+ });
152
+
153
+ defineEmits(["changeRegionClicked"]);
154
+ </script>
155
+
156
+ <style scoped lang="scss">
157
+ @use "../../../assets/scss/variables.scss" as *;
158
+ .footer {
159
+ &__wrapper {
160
+ width: 100%;
161
+ background-color: $blue-100;
162
+ margin-top: 60px;
163
+ }
164
+
165
+ &__content {
166
+ font-size: $font-size-xsm;
167
+ max-width: $max-width;
168
+ margin: 0 auto;
169
+ display: flex;
170
+ gap: 30px;
171
+ flex-direction: row;
172
+ flex-wrap: wrap;
173
+ justify-content: space-between;
174
+ align-items: flex-start;
175
+ padding: 60px 30px;
176
+
177
+ @include md {
178
+ padding: 60px 0px;
179
+ }
180
+ }
181
+
182
+ &__sections {
183
+ display: flex;
184
+ flex-wrap: wrap;
185
+ align-items: baseline;
186
+ width: 100%;
187
+ gap: 30px;
188
+
189
+ li {
190
+ display: flex;
191
+ }
192
+
193
+ .section {
194
+ display: flex;
195
+ flex-direction: column;
196
+ flex: 1;
197
+ width: 100%;
198
+ max-width: 268px;
199
+
200
+ address {
201
+ display: flex;
202
+ flex: 1;
203
+ flex-wrap: nowrap;
204
+ flex-direction: column;
205
+ gap: 10px;
206
+ white-space: nowrap;
207
+
208
+ span {
209
+ font-size: $font-size-xsm;
210
+ font-weight: 300;
211
+ font-family: $font-opensans;
212
+ line-height: 16px;
213
+ }
214
+ }
215
+
216
+ &__title {
217
+ margin-bottom: 10px;
218
+ font-weight: 600;
219
+ line-height: $line-height-xsm;
220
+ font-family: $font-opensans;
221
+ font-size: $font-size-xsm;
222
+ }
223
+
224
+ &__list {
225
+ display: flex;
226
+ flex-direction: column;
227
+ gap: 10px;
228
+ white-space: nowrap;
229
+ font-weight: 300;
230
+
231
+ :slotted(li div div) {
232
+ align-items: center;
233
+ display: flex;
234
+
235
+ .hiring-label {
236
+ background-color: $blue-600;
237
+ padding: 3px 5px;
238
+ border-radius: 3px;
239
+ color: $white;
240
+ font-family: $font-opensans;
241
+ font-weight: 300;
242
+ font-size: 10px;
243
+ margin-left: 9px;
244
+ }
245
+ }
246
+ }
247
+ }
248
+ }
249
+
250
+ &__contact {
251
+ display: flex;
252
+ background-color: $blue-100;
253
+
254
+ div a {
255
+ font-weight: 600;
256
+ }
257
+ }
258
+
259
+ &__bottom {
260
+ display: flex;
261
+ flex-direction: row;
262
+ flex-wrap: wrap;
263
+ gap: 30px;
264
+ justify-content: space-between;
265
+ align-items: baseline;
266
+ background-color: $blue-100;
267
+ margin-top: 52px;
268
+ width: 100%;
269
+ height: 100%;
270
+
271
+ .copyright {
272
+ font-size: $font-size-xsm;
273
+ margin-right: 30px;
274
+ }
275
+ }
276
+
277
+ &__language-switcher {
278
+ color: $blue-600;
279
+ cursor: pointer;
280
+ }
281
+ &__language-switcher:hover {
282
+ color: #105aa8;
283
+ transition: color 0.3s ease;
284
+ }
285
+
286
+ &__policy {
287
+ display: flex;
288
+ flex-wrap: wrap;
289
+ white-space: nowrap;
290
+ flex-direction: row;
291
+ align-items: baseline;
292
+ gap: 30px;
293
+ color: $blue-600;
294
+
295
+ div div a,
296
+ :slotted(div div a) {
297
+ font-weight: 600;
298
+ }
299
+ &:hover {
300
+ color: $blue-700;
301
+ transition: color 0.3s ease;
302
+ }
303
+
304
+ .change-region {
305
+ background-image: url("https://a.storyblok.com/f/230581/21x21/23f034f389/world.svg?cv=1695125825717");
306
+ background-position: left center;
307
+ background-size: contain;
308
+ background-repeat: no-repeat;
309
+ padding-left: 30px;
310
+ height: 21px;
311
+ }
312
+ }
313
+
314
+ &__social {
315
+ display: flex;
316
+ flex-direction: row;
317
+ gap: 24px;
318
+ flex-wrap: wrap;
319
+
320
+ //Todo: Missing hover state on social media icons
321
+
322
+ &--icon {
323
+ background: center / contain no-repeat;
324
+ display: block;
325
+ height: 14px;
326
+ width: 19px;
327
+ }
328
+
329
+ .bg {
330
+ &-linkedin {
331
+ background-image: url("https://a.storyblok.com/f/230581/15x14/12341a35e0/linkedin.svg?cv=1695125566502");
332
+ }
333
+
334
+ &-facebook {
335
+ background-image: url("https://a.storyblok.com/f/230581/8x14/80c6d8d43f/facebook.svg?cv=1695125566490");
336
+ }
337
+
338
+ &-instagram {
339
+ background-image: url("https://a.storyblok.com/f/230581/15x14/234c77d9b1/instagram.svg?cv=1695125566502");
340
+ }
341
+
342
+ &-twitter {
343
+ background-image: url("https://a.storyblok.com/f/230581/18x14/8858215cf4/x.svg?cv=1709635053927");
344
+ }
345
+
346
+ &-youtube {
347
+ background-image: url("https://a.storyblok.com/f/230581/20x14/9fc8110408/youtube.svg?cv=1695125566462");
348
+ }
349
+
350
+ &-wechat {
351
+ background-image: url("https://a.storyblok.com/f/230581/20x14/8eeae45abe/wechat.svg");
352
+ }
353
+ }
354
+ }
355
+ }
356
+ </style>