mediacube-ui 0.1.345 → 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 (109) hide show
  1. package/CHANGELOG.md +4 -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/icons.svg +1 -1
  9. package/src/assets/tokens/tokens.json +5 -0
  10. package/dist/mediacube-ui.common.js +0 -378
  11. package/src/elements/McAvatar/McAvatar.vue +0 -274
  12. package/src/elements/McBadge/McBadge.vue +0 -148
  13. package/src/elements/McButton/McButton.vue +0 -841
  14. package/src/elements/McChip/McChip.vue +0 -300
  15. package/src/elements/McCropper/McCropper.vue +0 -133
  16. package/src/elements/McDate/McDate.vue +0 -105
  17. package/src/elements/McDatePicker/McDatePicker.vue +0 -902
  18. package/src/elements/McField/McFieldCheckbox/McFieldCheckbox.vue +0 -332
  19. package/src/elements/McField/McFieldRadio/McFieldRadioButton/McFieldRadioButton.vue +0 -201
  20. package/src/elements/McField/McFieldRadio/McFieldRadioGroup/McFieldRadioGroup.vue +0 -194
  21. package/src/elements/McField/McFieldSelect/McFieldSelect.vue +0 -1087
  22. package/src/elements/McField/McFieldText/McFieldText.vue +0 -969
  23. package/src/elements/McField/McFieldToggle/McFieldToggle.vue +0 -268
  24. package/src/elements/McInfinityLoadingIndicator/McInfinityLoadingIndicator.vue +0 -97
  25. package/src/elements/McNotification/McNotification.vue +0 -209
  26. package/src/elements/McProgress/McProgress.vue +0 -218
  27. package/src/elements/McRangeSlider/McRangeSlider.vue +0 -195
  28. package/src/elements/McSeparator/McSeparator.vue +0 -143
  29. package/src/elements/McSlideUpDown/McSlideUpDown.vue +0 -157
  30. package/src/elements/McSvgIcon/McSvgIcon.vue +0 -127
  31. package/src/elements/McTabs/McTab/McTab.vue +0 -187
  32. package/src/elements/McTabs/McTabs/McTabs.vue +0 -531
  33. package/src/elements/McTitle/McTitle.vue +0 -365
  34. package/src/elements/McTooltip/McTooltip.vue +0 -334
  35. package/src/helpers/consts.js +0 -3
  36. package/src/helpers/delayedAction.js +0 -26
  37. package/src/helpers/storybookFunctions.js +0 -20
  38. package/src/helpers/storybookVariables.js +0 -24
  39. package/src/mixins/equalFieldHeight.js +0 -59
  40. package/src/mixins/fieldErrors.js +0 -28
  41. package/src/patterns/McAccordion/McAccordion.vue +0 -53
  42. package/src/patterns/McCells/McCell/McCell.vue +0 -101
  43. package/src/patterns/McChat/McChat.vue +0 -305
  44. package/src/patterns/McChat/McChatComment/McChatComment.vue +0 -265
  45. package/src/patterns/McChat/McChatForm/McChatForm.vue +0 -147
  46. package/src/patterns/McCollapse/McCollapse.vue +0 -280
  47. package/src/patterns/McDrawer/McDrawer.vue +0 -146
  48. package/src/patterns/McDropdown/McDropdown.vue +0 -247
  49. package/src/patterns/McDropdown/McDropdownPanel/McDropdownPanel.vue +0 -40
  50. package/src/patterns/McFakeScroll/McFakeScroll.vue +0 -277
  51. package/src/patterns/McFilter/McFilter.vue +0 -847
  52. package/src/patterns/McFilter/McFilterChip/McFilterChip.vue +0 -83
  53. package/src/patterns/McFilter/McFilterTags/McFilterTags.vue +0 -374
  54. package/src/patterns/McFilter/McFilterTypeDate/McFilterTypeDate.vue +0 -70
  55. package/src/patterns/McFilter/McFilterTypeRange/McFilterTypeRange.vue +0 -132
  56. package/src/patterns/McFilter/McFilterTypeRelation/McFilterTypeRelation.vue +0 -221
  57. package/src/patterns/McFilter/McFilterTypeSimple/McFilterTypeSimple.vue +0 -161
  58. package/src/patterns/McFilter/McFilterTypeText/McFilterTypeText.vue +0 -62
  59. package/src/patterns/McGrid/McGridCol/McGridCol.vue +0 -165
  60. package/src/patterns/McGrid/McGridRow/McGridRow.vue +0 -158
  61. package/src/patterns/McModal/McModal.vue +0 -680
  62. package/src/patterns/McOverlay/McOverlay.vue +0 -78
  63. package/src/patterns/McPreview/McPreview.vue +0 -118
  64. package/src/patterns/McSideBar/McSideBar/McSideBar.vue +0 -387
  65. package/src/patterns/McSideBar/McSideBarBottom/McSideBarBottom.vue +0 -125
  66. package/src/patterns/McSideBar/McSideBarButton/McSideBarButton.vue +0 -252
  67. package/src/patterns/McSideBar/McSideBarCenter/McSideBarCenter.vue +0 -367
  68. package/src/patterns/McSideBar/McSideBarTop/McSideBarTop.vue +0 -238
  69. package/src/patterns/McStack/McStack.vue +0 -158
  70. package/src/patterns/McTable/McTable/McTable.vue +0 -854
  71. package/src/patterns/McTable/McTableCol/McTableCol.vue +0 -296
  72. package/src/patterns/McTableCard/McTableCard.vue +0 -135
  73. package/src/patterns/McTableCard/McTableCardHeader/McTableCardHeader.vue +0 -74
  74. package/src/patterns/McTopBar/McTopBar.vue +0 -153
  75. package/src/patterns/McWrapScroll/McWrapScroll.vue +0 -291
  76. package/src/styles/_functions.scss +0 -187
  77. package/src/styles/_mixins.scss +0 -612
  78. package/src/styles/_spacing.scss +0 -33
  79. package/src/styles/_variables.scss +0 -23
  80. package/src/styles/global.scss +0 -308
  81. package/src/styles/main.scss +0 -4
  82. package/src/styles/table.scss +0 -10
  83. package/src/styles/toast.scss +0 -55
  84. package/src/templates/layouts/McContentFixed/McContentFixed.vue +0 -60
  85. package/src/templates/layouts/McMain/McMain.vue +0 -115
  86. package/src/templates/layouts/McRoot/McRoot.vue +0 -45
  87. package/src/tokens/animations.scss +0 -9
  88. package/src/tokens/border-radius.scss +0 -26
  89. package/src/tokens/box-shadows.scss +0 -28
  90. package/src/tokens/colors.scss +0 -82
  91. package/src/tokens/durations.scss +0 -7
  92. package/src/tokens/easings.scss +0 -6
  93. package/src/tokens/font-families.scss +0 -8
  94. package/src/tokens/font-sizes.scss +0 -23
  95. package/src/tokens/font-weights.scss +0 -9
  96. package/src/tokens/gradients.scss +0 -18
  97. package/src/tokens/letter-spacings.scss +0 -6
  98. package/src/tokens/line-heights.scss +0 -22
  99. package/src/tokens/media-queries.scss +0 -32
  100. package/src/tokens/opacities.scss +0 -8
  101. package/src/tokens/sizes.scss +0 -47
  102. package/src/tokens/spacings.scss +0 -38
  103. package/src/tokens/z-indexes.scss +0 -14
  104. package/src/utils/dayjs.js +0 -19
  105. package/src/utils/filters.js +0 -11
  106. package/src/utils/getTokens.js +0 -41
  107. package/src/utils/load-icons.js +0 -3
  108. package/src/utils/treeSearch.js +0 -30
  109. package/src/utils/webFontLoader.js +0 -12
@@ -1,268 +0,0 @@
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
- .mc-field-toggle {
159
- $block-name: &;
160
- $toggle-indent: calc(#{$space-50} / 2);
161
- --mc-field-toggle-color: initial;
162
- --mc-field-disabled-color: initial;
163
- --mc-field-toggle-saturate-value: initial;
164
- display: flex;
165
- align-items: center;
166
- cursor: pointer;
167
-
168
- &__text {
169
- color: $color-black;
170
- transition: color $duration-m;
171
- line-height: $line-height-200;
172
- font-size: $font-size-200;
173
- margin-inline-end: $space-100;
174
- text-align: right;
175
-
176
- &:empty {
177
- margin-inline-end: 0;
178
- }
179
- }
180
-
181
- &--colored-text {
182
- #{$block-name}__text {
183
- color: $color-gray;
184
- }
185
-
186
- @at-root #{$block-name}--checked#{$block-name}--colored-text {
187
- #{$block-name}__text {
188
- color: $color-purple;
189
- }
190
- }
191
- @at-root #{$block-name}--disabled#{$block-name}--colored-text {
192
- #{$block-name}__text {
193
- color: $color-outline-gray;
194
- }
195
- }
196
- @at-root #{$block-name}--checked#{$block-name}--disabled#{$block-name}--colored-text {
197
- #{$block-name}__text {
198
- color: $color-light-purple;
199
- }
200
- }
201
- }
202
-
203
- &--text-position-right {
204
- #{$block-name}__text {
205
- order: 2;
206
- margin-inline: $space-100 0;
207
- text-align: left;
208
- }
209
- }
210
- &__content {
211
- @include child-indent-bottom($space-50);
212
- }
213
-
214
- &__wrapper {
215
- position: relative;
216
- display: inline-block;
217
- @include size($size-550, $size-250);
218
- flex-shrink: 0;
219
- & > #{$block-name}__field {
220
- opacity: 0;
221
- @include size(0);
222
-
223
- &:checked + #{$block-name}__slider {
224
- background-color: $color-purple;
225
-
226
- &:before {
227
- inset-inline-start: calc(#{$space-300} + #{$toggle-indent});
228
- }
229
- }
230
- }
231
-
232
- #{$block-name}__slider {
233
- @include position(absolute, 0 0 0 0);
234
- background-color: $color-gray;
235
- transition: $duration-m;
236
- border-radius: 100px;
237
-
238
- &::before {
239
- @include pseudo();
240
- @include size($size-200);
241
- @include position(null, null null $toggle-indent $toggle-indent);
242
- background-color: $color-white;
243
- transition: $duration-m;
244
- border-radius: $radius-circle;
245
- }
246
- }
247
- }
248
-
249
- &--disabled {
250
- cursor: auto;
251
- #{$block-name}__slider {
252
- background-color: $color-outline-gray !important;
253
- &::before {
254
- background-color: $color-hover-gray;
255
- }
256
- }
257
- }
258
- #{$block-name}__wrapper > #{$block-name}__field:checked + #{$block-name}__slider {
259
- background-color: var(--mc-field-toggle-color);
260
- }
261
- &#{$block-name}--disabled {
262
- &#{$block-name}--checked #{$block-name}__slider {
263
- background-color: var(--mc-field-toggle-disabled-color) !important;
264
- filter: saturate(var(--mc-field-toggle-saturate-value));
265
- }
266
- }
267
- }
268
- </style>
@@ -1,97 +0,0 @@
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>
@@ -1,209 +0,0 @@
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
- .mc-notification {
131
- $block-name: &;
132
- --mc-notification-color: #{$color-orange};
133
- position: relative;
134
- background-color: $color-white;
135
- border-radius: $radius-150;
136
- overflow: hidden;
137
- &:before {
138
- content: '';
139
- @include position(absolute, 0 null null 0);
140
- display: block;
141
- height: 100%;
142
- width: $size-50;
143
- background-color: var(--mc-notification-color);
144
- }
145
-
146
- &__text {
147
- font-size: $font-size-200;
148
- line-height: $line-height-200;
149
- }
150
-
151
- #{$block-name}__text,
152
- #{$block-name}__title {
153
- filter: contrast(59%);
154
- }
155
-
156
- &__inner {
157
- padding: $space-100 $space-150 $space-100 $space-200;
158
- min-height: $size-700;
159
- display: flex;
160
- align-items: center;
161
- position: relative;
162
- color: var(--mc-notification-color);
163
- &:before {
164
- content: '';
165
- position: absolute;
166
- left: 0;
167
- top: 0;
168
- width: 100%;
169
- height: 100%;
170
- background-color: var(--mc-notification-color);
171
- opacity: 0.1;
172
- }
173
-
174
- .mc-preview {
175
- width: 100%;
176
- z-index: 1;
177
- &__top {
178
- margin-bottom: $space-50;
179
- }
180
- &__left {
181
- display: flex;
182
- align-items: center;
183
- margin-inline-end: $size-150;
184
- }
185
- &__right {
186
- display: flex;
187
- align-items: center;
188
- margin-inline-start: auto;
189
- padding-inline-start: $space-100;
190
- }
191
- }
192
-
193
- @media #{$media-query-m-down} {
194
- .mc-preview {
195
- flex-wrap: wrap;
196
-
197
- &__center {
198
- flex: 1;
199
- }
200
- &__right {
201
- width: 100%;
202
- padding-top: $space-100;
203
- padding-inline-start: $size-400 - 2;
204
- }
205
- }
206
- }
207
- }
208
- }
209
- </style>