mediacube-ui 0.1.347 → 0.1.349

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 (107) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/mediacube-ui.common.js +384 -0
  3. package/package.json +11 -4
  4. package/src/elements/McAvatar/McAvatar.vue +276 -0
  5. package/src/elements/McBadge/McBadge.vue +153 -0
  6. package/src/elements/McButton/McButton.vue +850 -0
  7. package/src/elements/McChip/McChip.vue +305 -0
  8. package/src/elements/McCropper/McCropper.vue +135 -0
  9. package/src/elements/McDate/McDate.vue +107 -0
  10. package/src/elements/McDatePicker/McDatePicker.vue +910 -0
  11. package/src/elements/McField/McFieldCheckbox/McFieldCheckbox.vue +339 -0
  12. package/src/elements/McField/McFieldRadio/McFieldRadioButton/McFieldRadioButton.vue +207 -0
  13. package/src/elements/McField/McFieldRadio/McFieldRadioGroup/McFieldRadioGroup.vue +198 -0
  14. package/src/elements/McField/McFieldSelect/McFieldSelect.vue +1088 -0
  15. package/src/elements/McField/McFieldText/McFieldText.vue +977 -0
  16. package/src/elements/McField/McFieldToggle/McFieldToggle.vue +273 -0
  17. package/src/elements/McInfinityLoadingIndicator/McInfinityLoadingIndicator.vue +97 -0
  18. package/src/elements/McNotification/McNotification.vue +215 -0
  19. package/src/elements/McProgress/McProgress.vue +223 -0
  20. package/src/elements/McRangeSlider/McRangeSlider.vue +199 -0
  21. package/src/elements/McSeparator/McSeparator.vue +143 -0
  22. package/src/elements/McSlideUpDown/McSlideUpDown.vue +157 -0
  23. package/src/elements/McSvgIcon/McSvgIcon.vue +128 -0
  24. package/src/elements/McTabs/McTab/McTab.vue +189 -0
  25. package/src/elements/McTabs/McTabs/McTabs.vue +538 -0
  26. package/src/elements/McTitle/McTitle.vue +370 -0
  27. package/src/elements/McTooltip/McTooltip.vue +339 -0
  28. package/src/helpers/consts.js +3 -0
  29. package/src/helpers/delayedAction.js +26 -0
  30. package/src/helpers/storybookFunctions.js +19 -0
  31. package/src/helpers/storybookVariables.js +24 -0
  32. package/src/mixins/equalFieldHeight.js +59 -0
  33. package/src/mixins/fieldErrors.js +28 -0
  34. package/src/patterns/McAccordion/McAccordion.vue +53 -0
  35. package/src/patterns/McCells/McCell/McCell.vue +102 -0
  36. package/src/patterns/McChat/McChat.vue +306 -0
  37. package/src/patterns/McChat/McChatComment/McChatComment.vue +268 -0
  38. package/src/patterns/McChat/McChatForm/McChatForm.vue +150 -0
  39. package/src/patterns/McCollapse/McCollapse.vue +282 -0
  40. package/src/patterns/McDrawer/McDrawer.vue +150 -0
  41. package/src/patterns/McDropdown/McDropdown.vue +249 -0
  42. package/src/patterns/McDropdown/McDropdownPanel/McDropdownPanel.vue +44 -0
  43. package/src/patterns/McFakeScroll/McFakeScroll.vue +279 -0
  44. package/src/patterns/McFilter/McFilter.vue +847 -0
  45. package/src/patterns/McFilter/McFilterChip/McFilterChip.vue +85 -0
  46. package/src/patterns/McFilter/McFilterTags/McFilterTags.vue +376 -0
  47. package/src/patterns/McFilter/McFilterTypeDate/McFilterTypeDate.vue +70 -0
  48. package/src/patterns/McFilter/McFilterTypeRange/McFilterTypeRange.vue +133 -0
  49. package/src/patterns/McFilter/McFilterTypeRelation/McFilterTypeRelation.vue +224 -0
  50. package/src/patterns/McFilter/McFilterTypeSimple/McFilterTypeSimple.vue +164 -0
  51. package/src/patterns/McFilter/McFilterTypeText/McFilterTypeText.vue +62 -0
  52. package/src/patterns/McGrid/McGridCol/McGridCol.vue +166 -0
  53. package/src/patterns/McGrid/McGridRow/McGridRow.vue +158 -0
  54. package/src/patterns/McModal/McModal.vue +686 -0
  55. package/src/patterns/McOverlay/McOverlay.vue +79 -0
  56. package/src/patterns/McPreview/McPreview.vue +119 -0
  57. package/src/patterns/McSideBar/McSideBar/McSideBar.vue +389 -0
  58. package/src/patterns/McSideBar/McSideBarBottom/McSideBarBottom.vue +126 -0
  59. package/src/patterns/McSideBar/McSideBarButton/McSideBarButton.vue +257 -0
  60. package/src/patterns/McSideBar/McSideBarCenter/McSideBarCenter.vue +369 -0
  61. package/src/patterns/McSideBar/McSideBarTop/McSideBarTop.vue +243 -0
  62. package/src/patterns/McStack/McStack.vue +163 -0
  63. package/src/patterns/McTable/McTable/McTable.vue +860 -0
  64. package/src/patterns/McTable/McTableCol/McTableCol.vue +299 -0
  65. package/src/patterns/McTableCard/McTableCard.vue +138 -0
  66. package/src/patterns/McTableCard/McTableCardHeader/McTableCardHeader.vue +76 -0
  67. package/src/patterns/McTopBar/McTopBar.vue +155 -0
  68. package/src/patterns/McWrapScroll/McWrapScroll.vue +293 -0
  69. package/src/styles/_functions.scss +189 -0
  70. package/src/styles/_mixins.scss +619 -0
  71. package/src/styles/_spacing.scss +33 -0
  72. package/src/styles/_variables.scss +23 -0
  73. package/src/styles/global.scss +311 -0
  74. package/src/styles/main.scss +4 -0
  75. package/src/styles/table.scss +12 -0
  76. package/src/styles/toast.scss +59 -0
  77. package/src/templates/layouts/McContentFixed/McContentFixed.vue +60 -0
  78. package/src/templates/layouts/McMain/McMain.vue +115 -0
  79. package/src/templates/layouts/McRoot/McRoot.vue +45 -0
  80. package/src/tokens/animations.scss +9 -0
  81. package/src/tokens/border-radius.scss +26 -0
  82. package/src/tokens/box-shadows.scss +28 -0
  83. package/src/tokens/colors.scss +82 -0
  84. package/src/tokens/durations.scss +7 -0
  85. package/src/tokens/easings.scss +6 -0
  86. package/src/tokens/font-families.scss +8 -0
  87. package/src/tokens/font-sizes.scss +23 -0
  88. package/src/tokens/font-weights.scss +9 -0
  89. package/src/tokens/gradients.scss +19 -0
  90. package/src/tokens/letter-spacings.scss +6 -0
  91. package/src/tokens/line-heights.scss +22 -0
  92. package/src/tokens/media-queries.scss +32 -0
  93. package/src/tokens/opacities.scss +8 -0
  94. package/src/tokens/sizes.scss +47 -0
  95. package/src/tokens/spacings.scss +38 -0
  96. package/src/tokens/z-indexes.scss +14 -0
  97. package/src/utils/dayjs.js +19 -0
  98. package/src/utils/filters.js +11 -0
  99. package/src/utils/getTokens.js +41 -0
  100. package/src/utils/load-icons.js +3 -0
  101. package/src/utils/treeSearch.js +30 -0
  102. package/src/utils/webFontLoader.js +12 -0
  103. package/dist/0.mediacube-ui.umd.js +0 -50
  104. package/dist/assets/img/icons.3b7d59b2f49c67a2a3a4566b8ab233fd.svg +0 -1
  105. package/dist/assets/img/no_table_data.236cd56f46cfb71fc363b008d4ca70d5.png +0 -0
  106. package/dist/assets/img/no_user.e0030d6e54e2400e1181fd22b83cf8ae.png +0 -0
  107. package/dist/mediacube-ui.umd.js +0 -1
@@ -0,0 +1,273 @@
1
+ <template>
2
+ <div class="mc-field-toggle__content">
3
+ <label :class="classes" :style="styles">
4
+ <span class="mc-field-toggle__text">
5
+ <!-- @slot Слот для тайтла тогглера -->
6
+ <slot />
7
+ </span>
8
+ <span class="mc-field-toggle__wrapper">
9
+ <input v-bind="inputProps" @input="e => change(e.target.checked)" />
10
+ <span class="mc-field-toggle__slider"></span>
11
+ </span>
12
+ </label>
13
+ <mc-title v-if="errorText" tag-name="div" color="red" variation="overline" max-width="100%" :ellipsis="false">
14
+ {{ errorText }}
15
+ </mc-title>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ import fieldErrors from '../../../mixins/fieldErrors'
21
+ import McTitle from '../../McTitle/McTitle'
22
+
23
+ export default {
24
+ name: 'McFieldToggle',
25
+ components: {
26
+ McTitle,
27
+ },
28
+ mixins: [fieldErrors],
29
+ props: {
30
+ /**
31
+ * Значение
32
+ *
33
+ */
34
+ value: {
35
+ type: [Boolean, String, Number],
36
+ default: null,
37
+ },
38
+ /**
39
+ * Выбранное значение
40
+ */
41
+ checkedValue: {
42
+ type: [Boolean, String, Number],
43
+ default: true,
44
+ },
45
+ /**
46
+ * Невыбранное значение
47
+ */
48
+ uncheckedValue: {
49
+ type: [Boolean, String, Number],
50
+ default: false,
51
+ },
52
+ /**
53
+ * Изменение цвета текста
54
+ * при переключении
55
+ */
56
+ coloredText: {
57
+ type: Boolean,
58
+ default: false,
59
+ },
60
+ /**
61
+ * Отключенное состояние
62
+ */
63
+ disabled: {
64
+ type: Boolean,
65
+ default: false,
66
+ },
67
+ /**
68
+ * Позиция текста
69
+ * относительно переключателя
70
+ */
71
+ textPosition: {
72
+ type: String,
73
+ default: 'left',
74
+ },
75
+ /**
76
+ * Активный цвет
77
+ */
78
+ color: {
79
+ type: String,
80
+ default: 'purple',
81
+ },
82
+
83
+ /**
84
+ * Ошибки
85
+ *
86
+ */
87
+ errors: {
88
+ type: Array,
89
+ default: null,
90
+ },
91
+
92
+ /**
93
+ * Атрибут tabindex для главного элемента
94
+ */
95
+
96
+ tabindex: {
97
+ type: [String, Number],
98
+ },
99
+ },
100
+ computed: {
101
+ _value() {
102
+ return this.value === this.checkedValue
103
+ },
104
+ classes() {
105
+ return {
106
+ 'mc-field-toggle': true,
107
+ 'mc-field-toggle--checked': this._value,
108
+ 'mc-field-toggle--disabled': this.disabled,
109
+ 'mc-field-toggle--colored-text': this.coloredText,
110
+ [`mc-field-toggle--text-position-${this.textPosition}`]: this.textPosition,
111
+ }
112
+ },
113
+ styles() {
114
+ let disabledColor
115
+ let saturateValue
116
+ switch (this.color) {
117
+ case 'purple': {
118
+ disabledColor = 'light-purple'
119
+ break
120
+ }
121
+ default: {
122
+ disabledColor = this.color
123
+ saturateValue = '50%'
124
+ }
125
+ }
126
+ return {
127
+ '--mc-field-toggle-color': this.color && `var(--color-${this.color})`,
128
+ '--mc-field-toggle-disabled-color': disabledColor && `var(--color-${disabledColor})`,
129
+ '--mc-field-toggle-saturate-value': saturateValue,
130
+ }
131
+ },
132
+ inputProps() {
133
+ return {
134
+ checked: this._value,
135
+ disabled: this.disabled,
136
+ tabindex: this.tabindex,
137
+ class: 'mc-field-toggle__field',
138
+ type: 'checkbox',
139
+ }
140
+ },
141
+ },
142
+ methods: {
143
+ change(checked) {
144
+ this.toggleErrorVisible()
145
+ /**
146
+ * Событие тоггла
147
+ * @property {boolean}
148
+ */
149
+ this.$emit('input', checked ? this.checkedValue : this.uncheckedValue)
150
+ },
151
+ },
152
+ }
153
+ </script>
154
+
155
+ <style lang="scss">
156
+ @import '../../../styles/mixins';
157
+ @import '../../../tokens/durations';
158
+ @import '../../../tokens/colors';
159
+ @import '../../../tokens/font-sizes';
160
+ @import '../../../tokens/line-heights';
161
+ @import '../../../tokens/spacings';
162
+ @import '../../../tokens/sizes';
163
+ .mc-field-toggle {
164
+ $block-name: &;
165
+ $toggle-indent: calc(#{$space-50} / 2);
166
+ --mc-field-toggle-color: initial;
167
+ --mc-field-disabled-color: initial;
168
+ --mc-field-toggle-saturate-value: initial;
169
+ display: flex;
170
+ align-items: center;
171
+ cursor: pointer;
172
+
173
+ &__text {
174
+ color: $color-black;
175
+ transition: color $duration-m;
176
+ line-height: $line-height-200;
177
+ font-size: $font-size-200;
178
+ margin-inline-end: $space-100;
179
+ text-align: right;
180
+
181
+ &:empty {
182
+ margin-inline-end: 0;
183
+ }
184
+ }
185
+
186
+ &--colored-text {
187
+ #{$block-name}__text {
188
+ color: $color-gray;
189
+ }
190
+
191
+ @at-root #{$block-name}--checked#{$block-name}--colored-text {
192
+ #{$block-name}__text {
193
+ color: $color-purple;
194
+ }
195
+ }
196
+ @at-root #{$block-name}--disabled#{$block-name}--colored-text {
197
+ #{$block-name}__text {
198
+ color: $color-outline-gray;
199
+ }
200
+ }
201
+ @at-root #{$block-name}--checked#{$block-name}--disabled#{$block-name}--colored-text {
202
+ #{$block-name}__text {
203
+ color: $color-light-purple;
204
+ }
205
+ }
206
+ }
207
+
208
+ &--text-position-right {
209
+ #{$block-name}__text {
210
+ order: 2;
211
+ margin-inline: $space-100 0;
212
+ text-align: left;
213
+ }
214
+ }
215
+ &__content {
216
+ @include child-indent-bottom($space-50);
217
+ }
218
+
219
+ &__wrapper {
220
+ position: relative;
221
+ display: inline-block;
222
+ @include size($size-550, $size-250);
223
+ flex-shrink: 0;
224
+ & > #{$block-name}__field {
225
+ opacity: 0;
226
+ @include size(0);
227
+
228
+ &:checked + #{$block-name}__slider {
229
+ background-color: $color-purple;
230
+
231
+ &:before {
232
+ inset-inline-start: calc(#{$space-300} + #{$toggle-indent});
233
+ }
234
+ }
235
+ }
236
+
237
+ #{$block-name}__slider {
238
+ @include position(absolute, 0 0 0 0);
239
+ background-color: $color-gray;
240
+ transition: $duration-m;
241
+ border-radius: 100px;
242
+
243
+ &::before {
244
+ @include pseudo();
245
+ @include size($size-200);
246
+ @include position(null, null null $toggle-indent $toggle-indent);
247
+ background-color: $color-white;
248
+ transition: $duration-m;
249
+ border-radius: $radius-circle;
250
+ }
251
+ }
252
+ }
253
+
254
+ &--disabled {
255
+ cursor: auto;
256
+ #{$block-name}__slider {
257
+ background-color: $color-outline-gray !important;
258
+ &::before {
259
+ background-color: $color-hover-gray;
260
+ }
261
+ }
262
+ }
263
+ #{$block-name}__wrapper > #{$block-name}__field:checked + #{$block-name}__slider {
264
+ background-color: var(--mc-field-toggle-color);
265
+ }
266
+ &#{$block-name}--disabled {
267
+ &#{$block-name}--checked #{$block-name}__slider {
268
+ background-color: var(--mc-field-toggle-disabled-color) !important;
269
+ filter: saturate(var(--mc-field-toggle-saturate-value));
270
+ }
271
+ }
272
+ }
273
+ </style>
@@ -0,0 +1,97 @@
1
+ <template>
2
+ <section class="el-infinity-loading__wrapper">
3
+ <div :id="id" class="el-infinity-loading"></div>
4
+ </section>
5
+ </template>
6
+ <script>
7
+ /**
8
+ * Вставляется под список, в момент когда индикатор попадает в viewport срабатывает $emit
9
+ * **/
10
+ export default {
11
+ name: 'ElInfinityLoading',
12
+ props: {
13
+ /**
14
+ * За какое расстояние(px) инициировать $emit
15
+ * **/
16
+ overlap: {
17
+ type: Number,
18
+ default: 100,
19
+ },
20
+ active: {
21
+ type: Boolean,
22
+ default: false,
23
+ },
24
+ /**
25
+ * Компонент в котором происходит скролл, указывается для большей точности, по дефолту используется область видимости браузера
26
+ * **/
27
+ root: {
28
+ type: String,
29
+ default: null,
30
+ },
31
+ },
32
+ data() {
33
+ return {
34
+ observer: null,
35
+ el: null,
36
+ loading: false,
37
+ id: `indicator_${Date.now()}`,
38
+ }
39
+ },
40
+ watch: {
41
+ active(value) {
42
+ this.clearAllListeners()
43
+ if (value) {
44
+ this.setObserver()
45
+ }
46
+ },
47
+ },
48
+ mounted() {
49
+ this.setObserver()
50
+ },
51
+ beforeDestroy() {
52
+ this.clearAllListeners()
53
+ },
54
+ methods: {
55
+ setObserver() {
56
+ this.el = document.getElementById(this.id)
57
+ // создаем IntersectionObserver - смотрит за тем когда элемент попадает во viewport
58
+ this.observer = new IntersectionObserver(
59
+ ([entry]) => {
60
+ // если попадает во viewport делаем $emit
61
+ if ((entry.intersectionRatio === 1 || entry.isIntersecting) && this.active) {
62
+ return this.$emit('loading')
63
+ } else {
64
+ return this.$emit('hide')
65
+ }
66
+ },
67
+ {
68
+ ...(this.root ? { root: this.$el.closest(this.root) } : {}),
69
+ rootMargin: `${this.overlap}px`,
70
+ threshold: 0.1,
71
+ },
72
+ )
73
+ // назначаем слушателя на observer
74
+ this.observer.observe(this.el)
75
+ },
76
+ clearAllListeners() {
77
+ this.observer && this.observer.disconnect()
78
+ this.observer = null
79
+ },
80
+ },
81
+ }
82
+ </script>
83
+
84
+ <style lang="scss">
85
+ .el-infinity-loading {
86
+ $block-name: &;
87
+ height: 1px;
88
+ width: 100%;
89
+ z-index: 999999;
90
+ user-select: none;
91
+ pointer-events: none;
92
+ background-color: transparent;
93
+ &__wrapper {
94
+ position: relative;
95
+ }
96
+ }
97
+ </style>
@@ -0,0 +1,215 @@
1
+ <template>
2
+ <div class="mc-notification" :style="styles">
3
+ <div class="mc-notification__inner">
4
+ <mc-preview>
5
+ <!-- @slot Слот для иконки -->
6
+ <slot v-if="!hideIcon && ($slots.left || iconName)" slot="left" name="left">
7
+ <mc-svg-icon :name="iconName" size="300" />
8
+ </slot>
9
+
10
+ <!-- @slot Слот заголовка -->
11
+ <slot v-if="$slots.header || title" slot="top" name="header">
12
+ <mc-title
13
+ v-if="title"
14
+ :color="variation"
15
+ :ellipsis="false"
16
+ max-width="100%"
17
+ weight="semi-bold"
18
+ class="mc-notification__title"
19
+ >
20
+ {{ title }}
21
+ </mc-title>
22
+ </slot>
23
+
24
+ <div slot="bottom" class="mc-notification__text">
25
+ <!-- @slot Слот для контента -->
26
+ <slot>
27
+ <mc-title :color="variation" :ellipsis="false" max-width="100%">
28
+ {{ content }}
29
+ </mc-title>
30
+ </slot>
31
+ </div>
32
+
33
+ <!-- @slot Слот для кнопок -->
34
+ <slot v-if="$slots.right || isButtonVisible" slot="right" name="right">
35
+ <mc-button
36
+ v-if="isButtonVisible"
37
+ slot="right"
38
+ :variation="variation"
39
+ class="mc-notification__button"
40
+ @click="handleClick"
41
+ >
42
+ {{ buttonText }}
43
+ </mc-button>
44
+ </slot>
45
+ </mc-preview>
46
+ </div>
47
+ </div>
48
+ </template>
49
+
50
+ <script>
51
+ import McTitle from '../McTitle/McTitle.vue'
52
+ import McSvgIcon from '../McSvgIcon/McSvgIcon.vue'
53
+ import McButton from '../McButton/McButton.vue'
54
+ import McPreview from '../../patterns/McPreview/McPreview'
55
+
56
+ export default {
57
+ name: 'McNotification',
58
+ components: { McPreview, McTitle, McSvgIcon, McButton },
59
+ props: {
60
+ /**
61
+ * Дизайн:
62
+ * purple, red, orange и т.д.
63
+ */
64
+ variation: {
65
+ type: String,
66
+ default: 'purple',
67
+ },
68
+ /**
69
+ * Заголовок блока
70
+ */
71
+ title: {
72
+ type: String,
73
+ },
74
+ /**
75
+ * Содержимое блока
76
+ */
77
+ content: {
78
+ type: String,
79
+ default: '',
80
+ },
81
+ /**
82
+ * Отобразить кнопку внтури блока
83
+ */
84
+ isButtonVisible: {
85
+ type: Boolean,
86
+ default: false,
87
+ },
88
+ /**
89
+ * Текст кнопки
90
+ */
91
+ buttonText: {
92
+ type: String,
93
+ default: '',
94
+ },
95
+ /**
96
+ * Название иконки
97
+ */
98
+ iconName: {
99
+ type: String,
100
+ default: 'info',
101
+ },
102
+ /**
103
+ * Не отображать иконку
104
+ */
105
+ hideIcon: {
106
+ type: Boolean,
107
+ default: false,
108
+ },
109
+ },
110
+ computed: {
111
+ styles() {
112
+ return {
113
+ '--mc-notification-color': this.variation && `var(--color-${this.variation})`,
114
+ }
115
+ },
116
+ },
117
+ methods: {
118
+ handleClick(e) {
119
+ /**
120
+ * Событие клика по кнопке
121
+ */
122
+ this.$emit('click', e)
123
+ },
124
+ },
125
+ }
126
+ </script>
127
+
128
+ <style lang="scss">
129
+ @import '../../styles/mixins';
130
+ @import '../../tokens/colors';
131
+ @import '../../tokens/font-sizes';
132
+ @import '../../tokens/line-heights';
133
+ @import '../../tokens/sizes';
134
+ @import '../../tokens/spacings';
135
+ @import '../../tokens/media-queries';
136
+ .mc-notification {
137
+ $block-name: &;
138
+ --mc-notification-color: #{$color-orange};
139
+ position: relative;
140
+ background-color: $color-white;
141
+ border-radius: $radius-150;
142
+ overflow: hidden;
143
+ &:before {
144
+ content: '';
145
+ @include position(absolute, 0 null null 0);
146
+ display: block;
147
+ height: 100%;
148
+ width: $size-50;
149
+ background-color: var(--mc-notification-color);
150
+ }
151
+
152
+ &__text {
153
+ font-size: $font-size-200;
154
+ line-height: $line-height-200;
155
+ }
156
+
157
+ #{$block-name}__text,
158
+ #{$block-name}__title {
159
+ filter: contrast(59%);
160
+ }
161
+
162
+ &__inner {
163
+ padding: $space-100 $space-150 $space-100 $space-200;
164
+ min-height: $size-700;
165
+ display: flex;
166
+ align-items: center;
167
+ position: relative;
168
+ color: var(--mc-notification-color);
169
+ &:before {
170
+ content: '';
171
+ position: absolute;
172
+ left: 0;
173
+ top: 0;
174
+ width: 100%;
175
+ height: 100%;
176
+ background-color: var(--mc-notification-color);
177
+ opacity: 0.1;
178
+ }
179
+
180
+ .mc-preview {
181
+ width: 100%;
182
+ z-index: 1;
183
+ &__top {
184
+ margin-bottom: $space-50;
185
+ }
186
+ &__left {
187
+ display: flex;
188
+ align-items: center;
189
+ margin-inline-end: $size-150;
190
+ }
191
+ &__right {
192
+ display: flex;
193
+ align-items: center;
194
+ margin-inline-start: auto;
195
+ padding-inline-start: $space-100;
196
+ }
197
+ }
198
+
199
+ @media #{$media-query-m-down} {
200
+ .mc-preview {
201
+ flex-wrap: wrap;
202
+
203
+ &__center {
204
+ flex: 1;
205
+ }
206
+ &__right {
207
+ width: 100%;
208
+ padding-top: $space-100;
209
+ padding-inline-start: $size-400 - 2;
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }
215
+ </style>