mediacube-ui 0.1.346 → 0.1.347

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 (108) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/0.mediacube-ui.umd.js +50 -0
  3. package/dist/assets/img/icons.3b7d59b2f49c67a2a3a4566b8ab233fd.svg +1 -0
  4. package/dist/assets/img/no_table_data.236cd56f46cfb71fc363b008d4ca70d5.png +0 -0
  5. package/dist/assets/img/no_user.e0030d6e54e2400e1181fd22b83cf8ae.png +0 -0
  6. package/dist/mediacube-ui.umd.js +1 -0
  7. package/package.json +14 -16
  8. package/src/assets/tokens/tokens.json +5 -0
  9. package/dist/mediacube-ui.common.js +0 -378
  10. package/src/elements/McAvatar/McAvatar.vue +0 -274
  11. package/src/elements/McBadge/McBadge.vue +0 -148
  12. package/src/elements/McButton/McButton.vue +0 -841
  13. package/src/elements/McChip/McChip.vue +0 -300
  14. package/src/elements/McCropper/McCropper.vue +0 -133
  15. package/src/elements/McDate/McDate.vue +0 -105
  16. package/src/elements/McDatePicker/McDatePicker.vue +0 -902
  17. package/src/elements/McField/McFieldCheckbox/McFieldCheckbox.vue +0 -332
  18. package/src/elements/McField/McFieldRadio/McFieldRadioButton/McFieldRadioButton.vue +0 -201
  19. package/src/elements/McField/McFieldRadio/McFieldRadioGroup/McFieldRadioGroup.vue +0 -194
  20. package/src/elements/McField/McFieldSelect/McFieldSelect.vue +0 -1087
  21. package/src/elements/McField/McFieldText/McFieldText.vue +0 -969
  22. package/src/elements/McField/McFieldToggle/McFieldToggle.vue +0 -268
  23. package/src/elements/McInfinityLoadingIndicator/McInfinityLoadingIndicator.vue +0 -97
  24. package/src/elements/McNotification/McNotification.vue +0 -209
  25. package/src/elements/McProgress/McProgress.vue +0 -218
  26. package/src/elements/McRangeSlider/McRangeSlider.vue +0 -195
  27. package/src/elements/McSeparator/McSeparator.vue +0 -143
  28. package/src/elements/McSlideUpDown/McSlideUpDown.vue +0 -157
  29. package/src/elements/McSvgIcon/McSvgIcon.vue +0 -127
  30. package/src/elements/McTabs/McTab/McTab.vue +0 -187
  31. package/src/elements/McTabs/McTabs/McTabs.vue +0 -531
  32. package/src/elements/McTitle/McTitle.vue +0 -365
  33. package/src/elements/McTooltip/McTooltip.vue +0 -334
  34. package/src/helpers/consts.js +0 -3
  35. package/src/helpers/delayedAction.js +0 -26
  36. package/src/helpers/storybookFunctions.js +0 -20
  37. package/src/helpers/storybookVariables.js +0 -24
  38. package/src/mixins/equalFieldHeight.js +0 -59
  39. package/src/mixins/fieldErrors.js +0 -28
  40. package/src/patterns/McAccordion/McAccordion.vue +0 -53
  41. package/src/patterns/McCells/McCell/McCell.vue +0 -101
  42. package/src/patterns/McChat/McChat.vue +0 -305
  43. package/src/patterns/McChat/McChatComment/McChatComment.vue +0 -265
  44. package/src/patterns/McChat/McChatForm/McChatForm.vue +0 -147
  45. package/src/patterns/McCollapse/McCollapse.vue +0 -280
  46. package/src/patterns/McDrawer/McDrawer.vue +0 -146
  47. package/src/patterns/McDropdown/McDropdown.vue +0 -247
  48. package/src/patterns/McDropdown/McDropdownPanel/McDropdownPanel.vue +0 -40
  49. package/src/patterns/McFakeScroll/McFakeScroll.vue +0 -277
  50. package/src/patterns/McFilter/McFilter.vue +0 -847
  51. package/src/patterns/McFilter/McFilterChip/McFilterChip.vue +0 -83
  52. package/src/patterns/McFilter/McFilterTags/McFilterTags.vue +0 -374
  53. package/src/patterns/McFilter/McFilterTypeDate/McFilterTypeDate.vue +0 -70
  54. package/src/patterns/McFilter/McFilterTypeRange/McFilterTypeRange.vue +0 -132
  55. package/src/patterns/McFilter/McFilterTypeRelation/McFilterTypeRelation.vue +0 -221
  56. package/src/patterns/McFilter/McFilterTypeSimple/McFilterTypeSimple.vue +0 -161
  57. package/src/patterns/McFilter/McFilterTypeText/McFilterTypeText.vue +0 -62
  58. package/src/patterns/McGrid/McGridCol/McGridCol.vue +0 -165
  59. package/src/patterns/McGrid/McGridRow/McGridRow.vue +0 -158
  60. package/src/patterns/McModal/McModal.vue +0 -680
  61. package/src/patterns/McOverlay/McOverlay.vue +0 -78
  62. package/src/patterns/McPreview/McPreview.vue +0 -118
  63. package/src/patterns/McSideBar/McSideBar/McSideBar.vue +0 -387
  64. package/src/patterns/McSideBar/McSideBarBottom/McSideBarBottom.vue +0 -125
  65. package/src/patterns/McSideBar/McSideBarButton/McSideBarButton.vue +0 -252
  66. package/src/patterns/McSideBar/McSideBarCenter/McSideBarCenter.vue +0 -367
  67. package/src/patterns/McSideBar/McSideBarTop/McSideBarTop.vue +0 -238
  68. package/src/patterns/McStack/McStack.vue +0 -158
  69. package/src/patterns/McTable/McTable/McTable.vue +0 -854
  70. package/src/patterns/McTable/McTableCol/McTableCol.vue +0 -296
  71. package/src/patterns/McTableCard/McTableCard.vue +0 -135
  72. package/src/patterns/McTableCard/McTableCardHeader/McTableCardHeader.vue +0 -74
  73. package/src/patterns/McTopBar/McTopBar.vue +0 -153
  74. package/src/patterns/McWrapScroll/McWrapScroll.vue +0 -291
  75. package/src/styles/_functions.scss +0 -187
  76. package/src/styles/_mixins.scss +0 -612
  77. package/src/styles/_spacing.scss +0 -33
  78. package/src/styles/_variables.scss +0 -23
  79. package/src/styles/global.scss +0 -308
  80. package/src/styles/main.scss +0 -4
  81. package/src/styles/table.scss +0 -10
  82. package/src/styles/toast.scss +0 -55
  83. package/src/templates/layouts/McContentFixed/McContentFixed.vue +0 -60
  84. package/src/templates/layouts/McMain/McMain.vue +0 -115
  85. package/src/templates/layouts/McRoot/McRoot.vue +0 -45
  86. package/src/tokens/animations.scss +0 -9
  87. package/src/tokens/border-radius.scss +0 -26
  88. package/src/tokens/box-shadows.scss +0 -28
  89. package/src/tokens/colors.scss +0 -82
  90. package/src/tokens/durations.scss +0 -7
  91. package/src/tokens/easings.scss +0 -6
  92. package/src/tokens/font-families.scss +0 -8
  93. package/src/tokens/font-sizes.scss +0 -23
  94. package/src/tokens/font-weights.scss +0 -9
  95. package/src/tokens/gradients.scss +0 -19
  96. package/src/tokens/letter-spacings.scss +0 -6
  97. package/src/tokens/line-heights.scss +0 -22
  98. package/src/tokens/media-queries.scss +0 -32
  99. package/src/tokens/opacities.scss +0 -8
  100. package/src/tokens/sizes.scss +0 -47
  101. package/src/tokens/spacings.scss +0 -38
  102. package/src/tokens/z-indexes.scss +0 -14
  103. package/src/utils/dayjs.js +0 -19
  104. package/src/utils/filters.js +0 -11
  105. package/src/utils/getTokens.js +0 -41
  106. package/src/utils/load-icons.js +0 -3
  107. package/src/utils/treeSearch.js +0 -30
  108. package/src/utils/webFontLoader.js +0 -12
@@ -1,680 +0,0 @@
1
- <template>
2
- <modal
3
- :class="classes"
4
- :name="name"
5
- :style="styles"
6
- :max-width="maxWidth"
7
- :click-to-close="clickToClose"
8
- class="mc-modal"
9
- adaptive
10
- scrollable
11
- height="auto"
12
- width="100%"
13
- @before-open="handleBeforeOpen"
14
- @before-close="handleBeforeClose"
15
- @closed="handleClosed"
16
- @opened="handleOpened"
17
- >
18
- <div ref="modalInner" class="mc-modal__inner">
19
- <div v-if="$slots.title" class="mc-modal__header">
20
- <div class="mc-modal__title">
21
- <!-- @slot Слот заголовка -->
22
- <slot name="title" />
23
- </div>
24
- </div>
25
- <div ref="mcModalBody" class="mc-modal__body">
26
- <!-- @slot Слот контента -->
27
- <slot />
28
- </div>
29
- <!-- @slot Слот футера -->
30
- <div class="mc-modal__control"><slot name="footer" /><portal-target name="mcModalFooter" slim /></div>
31
- </div>
32
- <button v-if="arrowVisible" type="button" class="mc-modal__btn-back" @click.prevent="handleBack">
33
- <mc-svg-icon name="arrow_leftward" class="mc-modal__icon-back" />
34
- </button>
35
- <button v-if="closeVisible" type="button" class="mc-modal__btn-close" @click.prevent="close">
36
- <mc-svg-icon class="mc-modal__icon-close" width="24" height="24" name="close" />
37
- </button>
38
- </modal>
39
- </template>
40
-
41
- <script>
42
- import McSvgIcon from '../../elements/McSvgIcon/McSvgIcon'
43
-
44
- export default {
45
- name: 'McModal',
46
- components: {
47
- McSvgIcon,
48
- },
49
- props: {
50
- name: {
51
- type: String,
52
- },
53
- maxWidth: {
54
- type: Number,
55
- default: 510,
56
- },
57
- closeVisible: {
58
- type: Boolean,
59
- default: true,
60
- },
61
- /**
62
- * Нужно ли закрывать попап
63
- * кликом вне окна
64
- */
65
- clickToClose: {
66
- type: Boolean,
67
- default: true,
68
- },
69
- /**
70
- * Стрелка в хедере
71
- */
72
- arrowVisible: {
73
- type: Boolean,
74
- default: false,
75
- },
76
- /**
77
- * Кастомное модальное окно
78
- */
79
- secondaryModal: {
80
- type: Boolean,
81
- default: false,
82
- },
83
- /**
84
- * Должен ли контент внутри модалки скроллится с фиксированной шапкой и футером
85
- * Отключать, когда внутри есть селекты
86
- * */
87
- scrollableContent: {
88
- type: Boolean,
89
- default: true,
90
- },
91
- /**
92
- * Показывать сепараторы у хедера и футера при скролле.
93
- */
94
- separators: {
95
- type: Boolean,
96
- default: true,
97
- },
98
- /**
99
- * Выравнивание заголовка в шапке,
100
- * если centered добавляются отступы слева и справа, чтобы текст не наезжал на кнопки
101
- * centered || left || right
102
- * */
103
- headerAlign: {
104
- type: String,
105
- default: 'center',
106
- },
107
- /**
108
- * Отступ от верхнего края модального окна до контента.
109
- * Для "красивой" обрезки картинки при скролле в ситуациях, когда нет хедера
110
- */
111
- topPadding: {
112
- type: Boolean,
113
- default: false,
114
- },
115
- /**
116
- * Вариация модалки default || info
117
- * info модалки имеют меньшие размеры паддингов
118
- * */
119
- variation: {
120
- type: String,
121
- default: 'default',
122
- },
123
- },
124
- status: 'ready',
125
- release: '1.0.0',
126
- data: () => ({
127
- scrolled_top: false,
128
- scrolled_bottom: false,
129
- resize_observer: null,
130
- small_indents: false,
131
- can_shorten_modal: false,
132
- modal_params: {},
133
- indent: {
134
- regular: 400,
135
- small: 150,
136
- },
137
- footer: {
138
- button: {
139
- regular: 600,
140
- small: 500,
141
- },
142
- },
143
- header: {
144
- title: {
145
- line_height: {
146
- regular: 300,
147
- small: 250,
148
- },
149
- },
150
- },
151
- }),
152
- computed: {
153
- classes() {
154
- return {
155
- 'mc-modal--arrow-visible': this.arrowVisible,
156
- 'mc-modal--secondary': this.secondaryModal,
157
- 'mc-modal--scrolled-top': this.scrolled_top,
158
- 'mc-modal--scrolled-bottom': this.scrolled_bottom,
159
- 'mc-modal--scrollable': this.scrollableContent,
160
- 'mc-modal--top-padding': this.topPadding,
161
- 'mc-modal--small-indents': this.small_indents,
162
- [`mc-modal--variation-${this.variation}`]: !!this.variation,
163
- [`mc-modal--header-align-${this.headerAlign}`]:
164
- (this.closeVisible || this.arrowVisible) && !!this.headerAlign,
165
- }
166
- },
167
- styles() {
168
- return {
169
- '--mc-modal-padding': `var(--space-${this.indent.regular})`,
170
- '--mc-modal-padding-small': `var(--space-${this.indent.small})`,
171
- '--mc-modal-header-line-height': `var(--line-height-${this.header.title.line_height.regular})`,
172
- '--mc-modal-header-line-height-small': `var(--line-height-${this.header.title.line_height.small})`,
173
- '--mc-modal-button-height': `var(--size-${this.footer.button.regular})`,
174
- '--mc-modal-button-height-small': `var(--size-${this.footer.button.small})`,
175
- }
176
- },
177
- },
178
- methods: {
179
- handleBeforeOpen(event) {
180
- /**
181
- * Событие перед открытием
182
- * @property {Object}
183
- */
184
- this.$emit('beforeOpen', event)
185
- },
186
- handleBeforeClose(event) {
187
- /**
188
- * Событие перед закрытием
189
- * @property {Object}
190
- */
191
- this.$emit('beforeClose', event)
192
- if (this.$refs.mcModalBody) {
193
- this.resize_observer?.unobserve(this.$refs.mcModalBody)
194
- this.$refs.mcModalBody.removeEventListener('scroll', this.calculateSeparators)
195
- }
196
- },
197
- handleOpened(event) {
198
- if (this.separators) {
199
- this.getParams()
200
- this.$refs.mcModalBody.addEventListener('scroll', this.calculateSeparators, {
201
- passive: true,
202
- })
203
- this.resize_observer = new ResizeObserver(() => this.resizeHandler())
204
- this.resize_observer?.observe(this.$refs.mcModalBody)
205
- this.calculateSeparators()
206
- }
207
-
208
- /**
209
- * Событие после открытия
210
- * @property {Object}
211
- */
212
- this.$emit('opened', event)
213
- },
214
- handleClosed(event) {
215
- /**
216
- * Событие после закрытия
217
- * @property {Object}
218
- */
219
- this.$emit('closed', event)
220
- },
221
- close() {
222
- this.$modal.hide(this.name)
223
- },
224
- handleBack(event) {
225
- this.$emit('back', event)
226
- },
227
- getParams() {
228
- try {
229
- Object.keys(this.styles).forEach(attr => {
230
- const param = parseInt(getComputedStyle(this.$refs.modalInner)?.getPropertyValue(attr))
231
- param && (this.modal_params[attr] = param)
232
- })
233
- } catch (e) {
234
- console.error(e)
235
- }
236
- },
237
-
238
- calculateIndents() {
239
- /* Если шапка уже маленькая, то отключаем при отключении сепаратора
240
- * Иначе смотрим, чтобы отступ был > чем убираемые отступы, т.к. нет смысла сжимать шапку, если <
241
- */
242
- const indentDifferences =
243
- (this.modal_params?.['--mc-modal-padding'] - this.modal_params?.['--mc-modal-padding-small']) * 3 +
244
- this.modal_params?.['--mc-modal-padding-small']
245
- const lineHeightDifferences =
246
- this.modal_params?.['--mc-modal-header-line-height'] -
247
- this.modal_params?.['--mc-modal-header-line-height-small']
248
- const buttonDifferences =
249
- this.modal_params?.['--mc-modal-button-height'] - this.modal_params?.['--mc-modal-button-height-small']
250
- const sizeDifferences = indentDifferences + lineHeightDifferences + buttonDifferences
251
- if (!this.small_indents) {
252
- const body = this.$refs.mcModalBody
253
- this.can_shorten_modal = body?.scrollHeight - body?.clientHeight > sizeDifferences
254
- }
255
- },
256
- resizeHandler() {
257
- this.calculateIndents()
258
- this.calculateSeparators()
259
- },
260
- /**
261
- * Устанавливаем сепараторы, если есть скролл
262
- * @param {Boolean} scrolled - если метод вызван скроллом
263
- */
264
- calculateSeparators(scrolled = true) {
265
- if (!scrolled) {
266
- this.scrolled_top = false
267
- this.scrolled_bottom = false
268
- this.small_indents = false
269
- }
270
-
271
- setTimeout(
272
- () => {
273
- const { scrollTop, scrollHeight, clientHeight } = this.$refs.mcModalBody || {}
274
- // Сепаратор появится если высота скролла будет > 2px
275
- const offset = 2
276
- this.scrolled_top = scrollTop > offset
277
- this.small_indents = this.scrolled_top && this.can_shorten_modal
278
- this.scrolled_bottom = scrollTop + clientHeight < scrollHeight - offset
279
- },
280
- scrolled ? 0 : 300,
281
- )
282
- },
283
- },
284
- }
285
- </script>
286
-
287
- <style lang="scss">
288
- @import '../../styles/mixins';
289
- @import '../../tokens/z-indexes';
290
- @import '../../tokens/durations';
291
- @import '../../tokens/font-families';
292
- .v--modal-block-scroll {
293
- width: 100%;
294
- }
295
-
296
- .mc-modal {
297
- $block-name: &;
298
- $border-color: #dee1e9;
299
- $box-shadow-color: #20008c28;
300
- $border-color: $color-hover-gray;
301
- --mc-modal-padding: #{$space-400};
302
- --mc-modal-padding-small: #{$space-150};
303
- --mc-modal-header-line-height: #{$line-height-300};
304
- --mc-modal-header-line-height-small: #{$line-height-250};
305
- --mc-modal-button-height: #{$size-600};
306
- --mc-modal-button-height-small: #{$size-500};
307
-
308
- @media #{$media-query-s} {
309
- padding: 12px 0;
310
- }
311
-
312
- .vm--modal {
313
- border-radius: $radius-200;
314
- }
315
- &__btn-close,
316
- &__btn-back {
317
- @include reset-btn();
318
- @include close-link();
319
- transition: $duration-s all;
320
- }
321
- &__btn-close {
322
- @include position(absolute, var(--mc-modal-padding) $space-200 null null);
323
- @media #{$media-query-s} {
324
- @include position(absolute, var(--mc-modal-padding) $space-600 null null);
325
- }
326
- }
327
- &__btn-back {
328
- @include position(absolute, var(--mc-modal-padding) null null $space-200);
329
- @media #{$media-query-s} {
330
- @include position(absolute, var(--mc-modal-padding) null null $space-600);
331
- }
332
- }
333
-
334
- &__icon-close {
335
- @include size($size-300);
336
- transition: color $duration-s;
337
- }
338
-
339
- &.overlay-fade-enter-active,
340
- &.overlay-fade-leave-active {
341
- .mc-modal__inner {
342
- transition: all $duration-s;
343
- transform: translate3d(0, 0, 0);
344
- }
345
- }
346
-
347
- &.overlay-fade-enter,
348
- &.overlay-fade-leave-active {
349
- .mc-modal__inner {
350
- transform: translate3d(0, -20px, 0);
351
- }
352
- }
353
-
354
- &.mc-modal--secondary {
355
- .mc-modal {
356
- &__inner {
357
- border-radius: 32px;
358
- box-shadow: 0px 15px 30px $box-shadow-color;
359
- padding: $space-400;
360
- }
361
- &__btn-close,
362
- &__btn-back {
363
- top: 27px;
364
- }
365
- &__btn-close {
366
- inset-inline-end: $space-400;
367
- }
368
- &__btn-back {
369
- inset-inline-start: $space-400;
370
- }
371
- &__header {
372
- padding-bottom: 9px;
373
- border-bottom: 2px solid $border-color;
374
- margin-bottom: var(--mc-modal-padding);
375
- }
376
- &__control {
377
- display: flex;
378
- justify-content: space-between;
379
- align-items: center;
380
- .mc-button {
381
- border-radius: $radius-150;
382
- }
383
- }
384
- }
385
- }
386
-
387
- &.v--modal-overlay {
388
- z-index: $z-index-overlay;
389
- background-color: fade-out($color-black, 0.5);
390
- position: fixed;
391
- top: 0;
392
- inset-inline-start: 0;
393
- inset-inline-end: 0;
394
- bottom: 0;
395
- width: 100% !important;
396
- height: 100% !important;
397
- max-height: -webkit-fill-available !important;
398
- min-height: 100% !important;
399
-
400
- .v--modal-background-click {
401
- padding-bottom: 0;
402
- height: 100%;
403
- @media #{$media-query-s} {
404
- height: auto;
405
- display: flex;
406
- align-items: center;
407
- justify-content: center;
408
- }
409
- }
410
-
411
- .v--modal-box {
412
- overflow: visible;
413
- top: auto !important;
414
- left: auto !important;
415
- }
416
-
417
- &.scrollable {
418
- .v--modal-box {
419
- margin-bottom: 0;
420
- }
421
- }
422
- }
423
-
424
- .v--modal-box {
425
- min-width: 320px;
426
- height: 100% !important;
427
- @media #{$media-query-s-down} {
428
- width: 100% !important;
429
- }
430
- }
431
-
432
- .v--modal,
433
- .vm--modal {
434
- background-color: transparent;
435
- border-radius: 0;
436
- box-shadow: none;
437
- padding: 0;
438
- }
439
-
440
- &__header {
441
- flex-shrink: 0;
442
- transition: $duration-s all;
443
- padding: var(--mc-modal-padding) $space-200 $space-350;
444
- border-color: $border-color;
445
- @media #{$media-query-s} {
446
- padding: $space-350;
447
- .mc-title {
448
- transition: $duration-s all;
449
- line-height: var(--mc-modal-header-line-height);
450
- }
451
- }
452
- &:has(#{$block-name}__title:empty) {
453
- display: none;
454
- & + #{$block-name}__body {
455
- padding-top: $space-400;
456
- }
457
- }
458
- }
459
-
460
- &__title {
461
- margin-top: 0;
462
- margin-bottom: 0;
463
- color: hsl(0, 0%, 13%);
464
- font-family: $font-family-main;
465
- @include reset-text-indents();
466
- }
467
-
468
- &__body {
469
- padding: $space-50 $space-200 $space-200;
470
- flex-grow: 1;
471
- min-height: 0;
472
- overflow-x: hidden;
473
- > *:only-child {
474
- min-height: 100%;
475
- }
476
- @media #{$media-query-s} {
477
- padding: $space-50 $space-400 $space-200;
478
- overflow: visible;
479
- }
480
- }
481
- &__inner {
482
- box-shadow: 0 6px 12px rgba(110, 110, 110, 0.61);
483
- background-color: $color-white;
484
- display: flex;
485
- flex-direction: column;
486
- overflow: hidden;
487
- height: 100% !important;
488
- > *:first-child {
489
- padding-top: var(--mc-modal-padding);
490
- }
491
- > *:last-child {
492
- padding-bottom: var(--mc-modal-padding);
493
- }
494
- @media #{$media-query-s} {
495
- overflow: visible;
496
- /* прячет рандомный скроллбар при включении модалки */
497
- -ms-overflow-style: none;
498
- scrollbar-width: none;
499
- &::-webkit-scrollbar {
500
- display: none;
501
- }
502
- border-radius: $radius-100;
503
- margin: 0 $space-150 0 $space-150;
504
- }
505
- }
506
- &--scrollable {
507
- overflow: hidden !important;
508
- #{$block-name} {
509
- &__body {
510
- overflow-y: auto;
511
- overflow-x: hidden;
512
- }
513
- &__inner {
514
- overflow-x: hidden;
515
- @media #{$media-query-s} {
516
- max-height: 80vh;
517
- }
518
- }
519
- }
520
- }
521
- &--header-align {
522
- &-center {
523
- #{$block-name} {
524
- &__header {
525
- padding-inline: $space-500;
526
- @media #{$media-query-s} {
527
- padding-inline: $space-700;
528
- }
529
- }
530
- }
531
- }
532
- &-left {
533
- #{$block-name} {
534
- &__header {
535
- padding-bottom: $space-150;
536
- }
537
- }
538
- }
539
- }
540
- &--small-indents {
541
- @media #{$media-query-s} {
542
- #{$block-name} {
543
- &__control {
544
- padding-block: var(--mc-modal-padding-small) !important;
545
- .mc-button {
546
- height: var(--mc-modal-button-height-small);
547
- }
548
- }
549
- &__header {
550
- padding-block: var(--mc-modal-padding-small) !important;
551
- .mc-title {
552
- font-weight: $font-weight-semi-bold;
553
- font-size: $font-size-300;
554
- line-height: var(--mc-modal-header-line-height-small);
555
- align-items: center;
556
- }
557
- }
558
- &__body {
559
- padding-bottom: $space-50;
560
- }
561
- &__btn {
562
- &-back,
563
- &-close {
564
- top: var(--mc-modal-padding-small) !important;
565
- }
566
- }
567
- }
568
- }
569
- }
570
-
571
- &--scrolled {
572
- $separator-border: 1px solid $border-color;
573
- &-top {
574
- #{$block-name} {
575
- &__header {
576
- border-bottom: $separator-border;
577
- }
578
- }
579
- }
580
- &-bottom {
581
- #{$block-name} {
582
- &__control:not(:empty) {
583
- border-top: $separator-border;
584
- }
585
- }
586
- }
587
- }
588
- &--top-padding {
589
- #{$block-name}__inner:before {
590
- content: '';
591
- height: $space-400;
592
- min-height: $space-400;
593
- }
594
- }
595
- &__control {
596
- flex-shrink: 0;
597
- display: flex;
598
- justify-content: center;
599
- padding: $space-200 $space-200 $space-400;
600
- transition: $duration-s all;
601
- @media #{$media-query-s} {
602
- padding: $space-200 $space-300 $space-400;
603
- }
604
- .mc-button {
605
- width: 100%;
606
- }
607
- @media #{$media-query-s} {
608
- .mc-button {
609
- min-width: 100px;
610
- height: var(--mc-modal-button-height);
611
- transition: $duration-s all;
612
- width: unset;
613
- }
614
- }
615
- &:empty {
616
- position: relative;
617
- padding: $space-350 0 0;
618
- }
619
- &:not(:empty) {
620
- border-color: $border-color;
621
- }
622
- }
623
- &:has(&__control:empty) {
624
- #{$block-name} {
625
- &__body {
626
- padding-bottom: $space-50;
627
- }
628
- }
629
- }
630
- &--variation {
631
- &-info {
632
- #{$block-name} {
633
- &__header {
634
- @media #{$media-query-s} {
635
- padding: $space-300 $space-300 $space-150;
636
- }
637
- }
638
- &__btn-close {
639
- @media #{$media-query-s} {
640
- top: $space-300;
641
- }
642
- }
643
- &__inner {
644
- & > *:first-child {
645
- @media #{$media-query-s} {
646
- padding-top: $space-300;
647
- }
648
- }
649
- & > *:last-child {
650
- @media #{$media-query-s} {
651
- padding-bottom: $space-300;
652
- }
653
- }
654
- }
655
- &__body {
656
- padding-bottom: $space-50;
657
- @media #{$media-query-s} {
658
- padding-inline: $space-300;
659
- }
660
- }
661
- &__control {
662
- padding-top: $space-250;
663
- @media #{$media-query-s} {
664
- padding-top: $space-150;
665
- }
666
- }
667
- }
668
- }
669
- }
670
- @at-root {
671
- html[dir='rtl'] {
672
- #{$block-name} {
673
- &__btn-back {
674
- transform: rotate(180deg);
675
- }
676
- }
677
- }
678
- }
679
- }
680
- </style>