@everchron/ec-shards 4.1.2 → 4.3.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 (71) hide show
  1. package/dist/ec-shards.common.js +2863 -1674
  2. package/dist/ec-shards.common.js.map +1 -1
  3. package/dist/ec-shards.css +1 -1
  4. package/dist/ec-shards.umd.js +2863 -1674
  5. package/dist/ec-shards.umd.js.map +1 -1
  6. package/dist/ec-shards.umd.min.js +2 -2
  7. package/dist/ec-shards.umd.min.js.map +1 -1
  8. package/dist/img/EU.d180ac2d.svg +1 -0
  9. package/dist/img/login-email-mfa.33936706.svg +1 -0
  10. package/dist/img/login-email.4b81db3a.svg +1 -0
  11. package/dist/img/login-sso-azure.a49f3fe4.svg +1 -0
  12. package/dist/img/login-sso-okta.55de1bbd.svg +1 -0
  13. package/package.json +4 -2
  14. package/src/assets/icons/login-key.svg +7 -0
  15. package/src/assets/images/fill-icons/login-email-mfa.svg +1 -0
  16. package/src/assets/images/fill-icons/login-email.svg +1 -0
  17. package/src/assets/images/fill-icons/login-sso-azure.svg +1 -0
  18. package/src/assets/images/fill-icons/login-sso-okta.svg +1 -0
  19. package/src/assets/images/flags/EU.svg +1 -0
  20. package/src/components/alert/alert.vue +2 -2
  21. package/src/components/breadcrumb-button/breadcrumb-button.vue +2 -2
  22. package/src/components/button/button.vue +2 -2
  23. package/src/components/button-context/button-context.vue +1 -1
  24. package/src/components/button-more/button-more.vue +1 -1
  25. package/src/components/button-table/button-table.vue +1 -1
  26. package/src/components/button-toolbar/button-toolbar.vue +4 -4
  27. package/src/components/button-toolbar-icon/button-toolbar-icon.vue +1 -1
  28. package/src/components/collection-control/collection-control.vue +1 -1
  29. package/src/components/context-menu/context-menu.vue +215 -0
  30. package/src/components/data-card/data-card.vue +1 -1
  31. package/src/components/data-grid/data-grid-cell.vue +27 -7
  32. package/src/components/data-grid/data-grid-head-cell.vue +108 -4
  33. package/src/components/data-grid/data-grid-row.vue +25 -1
  34. package/src/components/dialog/dialog.vue +24 -46
  35. package/src/components/document-state/document-state.vue +1 -1
  36. package/src/components/empty-state/empty-state.vue +1 -1
  37. package/src/components/excerpt-snippet/excerpt-snippet.vue +1 -1
  38. package/src/components/fill-icon/fill-icon.vue +59 -0
  39. package/src/components/flag/flag.vue +5 -0
  40. package/src/components/formatted/formatted.vue +4 -15
  41. package/src/components/index.js +4 -0
  42. package/src/components/info-tooltip/info-tooltip.vue +1 -1
  43. package/src/components/input/input.vue +6 -4
  44. package/src/components/input-addon/input-addon.vue +1 -1
  45. package/src/components/input-clear/input-clear.vue +1 -1
  46. package/src/components/input-search/input-search.vue +1 -1
  47. package/src/components/multiselect-option/multiselect-option.vue +1 -1
  48. package/src/components/multiselect-search-token/multiselect-search-token.vue +2 -2
  49. package/src/components/multiselect-token/multiselect-token.vue +1 -1
  50. package/src/components/overlay/overlay.vue +1 -1
  51. package/src/components/pagination/pagination.vue +138 -105
  52. package/src/components/party-entry/party-entry.vue +2 -2
  53. package/src/components/popover-header/popover-header.vue +1 -1
  54. package/src/components/segment/segment.vue +1 -1
  55. package/src/components/select/select.vue +24 -3
  56. package/src/components/separator/separator.vue +93 -0
  57. package/src/components/sequence-map-button/sequence-map-button.vue +1 -1
  58. package/src/components/tab-button/tab-button.vue +16 -5
  59. package/src/components/transcript-state/transcript-state.vue +1 -1
  60. package/src/components/tree-list-item/tree-list-item.vue +1 -1
  61. package/src/stories/Changelog.stories.mdx +36 -0
  62. package/src/stories/context-menu/context-menu.stories.js +69 -0
  63. package/src/stories/data-grid/data-grid.stories.js +12 -6
  64. package/src/stories/fill-icon/fill-icon.stories.js +24 -0
  65. package/src/stories/flag/flag.stories.js +6 -1
  66. package/src/stories/input/input.stories.js +5 -4
  67. package/src/stories/pagination/pagination.stories.js +0 -15
  68. package/src/stories/select/select.stories.js +16 -0
  69. package/src/stories/separator/.DS_Store +0 -0
  70. package/src/stories/separator/separator.stories.js +33 -0
  71. package/src/components/tiptap/tiptap.vue +0 -246
@@ -1,62 +1,66 @@
1
1
  <template>
2
2
  <div class="ecs-pagination" :class="[ floating ? 'ecs-pagination-floating' : '' ]">
3
- <ecs-flex-row :gap="8" class="ecs-pagination-nav" :style="{minWidth: tabsSpacing - 4 + 'px'}">
4
- <template v-if="type == 'paginated'">
5
- <ecs-flex-row>
6
- <ecs-button @click="$emit('firstPage', $event)" :disabled="loading || currentPage === 1" icon="chevron-double-left" icon-only type="secondary" title="First Page" data-test="pagination-first-button" />
7
- <ecs-button @click="$emit('prevPage', $event)" :disabled="loading || currentPage === 1" icon="chevron-left" icon-only type="secondary" title="Previous Page" data-test="pagination-previous-button" />
8
- </ecs-flex-row>
9
- <ecs-flex-row :gap="4">
10
- <span>Page</span>
11
- <ecs-select @change="$emit('updatePage', $event.target.value)" :disabled="!totalPages" size="sml">
12
- <option v-for="n in totalPages" :key="n" :value="n" :selected="n === currentPage">{{ n }}</option>
13
- </ecs-select>
14
- <span v-if="totalPages" class="total">of {{ totalPages }}</span>
15
- </ecs-flex-row>
16
- <ecs-flex-row>
17
- <ecs-button @click="$emit('nextPage', $event)" :disabled="loading || currentPage === totalPages" icon="chevron-right" icon-only type="secondary" title="Next Page" data-test="pagination-next-button" />
18
- <ecs-button @click="$emit('lastPage', $event)" :disabled="loading || currentPage === totalPages" icon="chevron-double-right" icon-only type="secondary" title="Last Page" data-test="pagination-last-button" />
19
- </ecs-flex-row>
20
- </template>
21
- <transition name="fade">
22
- <ecs-flex-row v-if="loading" :gap="4" :class="$slots.tabs && type =='paginated' ? 'push-right' : ''">
23
- <div v-if="!$slots.tabs && type =='paginated'" class="separator" />
24
- <ecs-icon type="loading" spinning size="24" color="#858E9E" />
25
- </ecs-flex-row>
26
- </transition>
27
- </ecs-flex-row>
28
-
29
- <div class="ecs-pagination-tabs">
3
+ <div class="ecs-pagination-nav">
4
+ <ecs-button-toolbar-group>
5
+ <ecs-button-toolbar
6
+ @click="$emit('prevPage', $event)"
7
+ :disabled="loading || currentPage === 1"
8
+ icon="back"
9
+ data-test="pagination-previous-button">
10
+ Previous Page
11
+ </ecs-button-toolbar>
12
+ <ecs-button-toolbar
13
+ @click="$emit('nextPage', $event)"
14
+ :disabled="loading || currentPage === totalPages"
15
+ icon="next"
16
+ icon-position="right"
17
+ data-test="pagination-next-button">
18
+ Next Page
19
+ </ecs-button-toolbar>
20
+ </ecs-button-toolbar-group>
21
+
22
+ <div class="ecs-pagination-dropdown">
23
+ <span>Page</span>
24
+ <div @click="toggleDropdown" class="ecs-pagination-dropdown-button" :class="[dropdownShown ? 'active' : '', totalPages ? '' : 'disabled']">
25
+ <template v-if="currentPage">{{ currentPage }}</template>
26
+ <template v-else>-</template>
27
+
28
+ <transition name="dropdown">
29
+ <div v-if="dropdownShown && totalPages" class="ecs-pagination-select scrollbar scrollbar-sml">
30
+ <ecs-popover-list>
31
+ <ecs-popover-list-item
32
+ @click="$emit('update:page', n), hideDropdown"
33
+ v-for="n in totalPages"
34
+ :key="n"
35
+ :selected="n === currentPage">
36
+ {{ n }}
37
+ </ecs-popover-list-item>
38
+ </ecs-popover-list>
39
+ </div>
40
+ </transition>
41
+ </div>
42
+ <span v-if="totalPages" class="total">of {{ totalPages }}</span>
43
+ </div>
44
+ </div>
45
+ <div>
30
46
  <!-- @slot Slot for a sheet tab bar. -->
31
47
  <slot name="tabs"></slot>
32
48
  </div>
33
-
34
- <ecs-flex-row v-if="showItemsPerPage && type == 'paginated'" :gap="4" class="ecs-pagination-items">
35
- <span>Items per page</span>
36
- <ecs-select @change="$emit('itemsPerPage', $event.target.value)" :disabled="loading" size="sml">
37
- <option v-for="n in itemsPerPage" :key="n" :value="n" :selected="n === itemsPerPageSelected">{{ n }}</option>
38
- </ecs-select>
39
- </ecs-flex-row>
40
-
41
- <ecs-flex-row v-if="$slots.controls" :gap="4" class="ecs-pagination-controls">
42
- <!-- @slot Slot for a additional controls, such as a settings button. -->
43
- <slot name="controls"></slot>
44
- </ecs-flex-row>
45
49
  </div>
46
50
  </template>
47
51
 
48
52
  <script>
49
- import EcsButton from '../button/button'
50
- import EcsSelect from '../select/select'
51
- import EcsFlexRow from '../flex/flex-row'
52
- import EcsIcon from '../icon/icon'
53
+ import EcsButtonToolbarGroup from '../button-toolbar-group/button-toolbar-group'
54
+ import EcsButtonToolbar from '../button-toolbar/button-toolbar'
55
+ import EcsPopoverList from '../popover-list/popover-list'
56
+ import EcsPopoverListItem from '../popover-list-item/popover-list-item'
53
57
 
54
58
  export default {
55
59
  components: {
56
- EcsButton,
57
- EcsSelect,
58
- EcsFlexRow,
59
- EcsIcon
60
+ EcsButtonToolbarGroup,
61
+ EcsButtonToolbar,
62
+ EcsPopoverList,
63
+ EcsPopoverListItem
60
64
  },
61
65
 
62
66
  props: {
@@ -65,12 +69,6 @@
65
69
  type: Boolean,
66
70
  default: false
67
71
  },
68
- /** Determines which elements are visible in the pagination component. */
69
- type: {
70
- type: String,
71
- validator: v => ['paginated', 'infinite'].includes(v),
72
- default: 'paginated'
73
- },
74
72
  /** Briefly disables all controls while ongoing navigation. */
75
73
  loading: {
76
74
  type: Boolean,
@@ -83,28 +81,23 @@
83
81
  /** The total pages of the index. */
84
82
  totalPages: {
85
83
  type: Number,
84
+ }
85
+ },
86
+
87
+ data() {
88
+ return {
89
+ dropdownShown: false
90
+ }
91
+ },
92
+
93
+ methods: {
94
+ toggleDropdown(){
95
+ if(this.totalPages)
96
+ this.dropdownShown = !this.dropdownShown
86
97
  },
87
- /** The width of the area left to the tab area in pixels. This is used to align the tab bar with a column in the table. Not needed when tabs aren't in use. */
88
- tabsSpacing: {
89
- type: Number,
90
- default: 400
91
- },
92
- /** Determines if the selector for items per page should be shown. */
93
- showItemsPerPage: {
94
- type: Boolean,
95
- default: true
96
- },
97
- /** The options to be show as selectable in the items per page dropdown. Requires an array with Numbers. Default: `[25, 50, 100]` */
98
- itemsPerPage: {
99
- type: Array,
100
- default() {
101
- return [25, 50, 100]
102
- }
103
- },
104
- /** The selected option in the items per page dropdown. */
105
- itemsPerPageSelected: {
106
- type: Number,
107
- default: 100
98
+
99
+ hideDropdown(){
100
+ this.dropdownShown = false
108
101
  }
109
102
  }
110
103
  }
@@ -123,9 +116,6 @@
123
116
  box-shadow: 0 -1px 0 $color-gray-4;
124
117
  position: relative;
125
118
  z-index: 2;
126
- font-size: $type-scale-2-font-size;
127
- line-height: $type-scale-2-line-height;
128
- color: $color-gray-15;
129
119
 
130
120
  &-floating{
131
121
  border-radius: $border-radius-small;
@@ -133,51 +123,94 @@
133
123
  }
134
124
 
135
125
  &-nav{
126
+ display: flex;
127
+ align-items: center;
136
128
  height: 40px;
129
+ margin-right: 24px;
130
+ }
137
131
 
138
- .ecs-form-select{
139
- width: 52px;
140
- }
132
+ .ecs-toolbar-button-group{
133
+ margin-right: 32px;
141
134
  }
142
135
 
143
- &-tabs{
144
- flex: 1;
136
+ .ecs-toolbar-button-icon{
137
+ font-size: $type-scale-2-font-size;
145
138
  }
146
139
 
147
- &-items{
148
- padding-right: $spacing-5;
149
-
150
- .ecs-form-select{
151
- width: 52px;
140
+ &-dropdown{
141
+ display: flex;
142
+ align-items: center;
143
+ font-size: $type-scale-2-font-size;
144
+ color: $color-gray-9;
145
+
146
+ .total{
147
+ color: $color-gray-15;
152
148
  }
153
- }
154
149
 
155
- &-controls{
156
- margin-left: $spacing-10;
157
- }
150
+ &-button{
151
+ background: #FFF;
152
+ display: flex;
153
+ align-items: center;
154
+ border: 1px solid $color-gray-3;
155
+ padding: 0 8px;
156
+ height: 32px;
157
+ transition: .2s;
158
+ border-radius: $border-radius-small;
159
+ margin: 0 6px;
160
+ cursor: pointer;
161
+ position: relative;
162
+ color: $color-gray-15;
163
+
164
+ &:after{
165
+ content: "";
166
+ background: svg-uri('<svg xmlns="http://www.w3.org/2000/svg" width="8" height="5" viewBox="0 0 8 5"><polyline fill="none" stroke="#858E9E" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" points="0 0 3 3 6 0" transform="translate(1 .8)"/></svg>');
167
+ width: 8px;
168
+ height: 5px;
169
+ margin-left: 6px;
170
+ }
158
171
 
159
- .separator{
160
- width: 1px;
161
- background: $color-gray-4;
162
- height: $spacing-20;
163
- }
172
+ &:hover{
173
+ border: 1px solid $color-gray-4;
174
+ box-shadow: 0 1px 1px rgba($color-gray-4, .25);
175
+ }
176
+
177
+ &.active{
178
+ border: 1px solid $color-gray-5;
179
+ box-shadow: 0 1px 0 rgba($color-gray-2, .1) inset;
180
+ background: rgba($color-gray-5, .1);
181
+ }
164
182
 
165
- .ecs-spinner{
166
- margin-left: $spacing-5;
183
+ &.disabled{
184
+ border: 1px solid $color-gray-3;
185
+ box-shadow: none;
186
+ cursor: not-allowed;
187
+ color: $color-gray-7;
188
+ }
189
+ }
167
190
  }
168
191
 
169
- .push-right{
170
- margin-left: auto;
171
- padding-right: $spacing-10;
192
+ &-select{
193
+ position: absolute;
194
+ left: 0;
195
+ right: auto;
196
+ bottom: 34px;
197
+ z-index: 1000;
198
+ background-color: #fff;
199
+ box-shadow: 0 0 0 1px rgba($color-gray-15, .08), 0 1px 3px 0 rgba($color-gray-15, 0.15);
200
+ border-radius: $border-radius-small;
201
+ max-height: 30vh;
202
+ overflow: auto;
172
203
  }
173
204
  }
174
205
 
175
- .fade-enter-active, .fade-leave-active {
176
- transition: all .15s;
206
+ .dropdown-enter-active,
207
+ .dropdown-leave-active {
208
+ transition: all .3s;
177
209
  }
178
210
 
179
- .fade-enter, .fade-leave-to {
211
+ .dropdown-enter,
212
+ .dropdown-leave-to {
180
213
  opacity: 0;
181
- transform: scale(.2);
214
+ transform: translateY(10px);
182
215
  }
183
216
  </style>
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <div class="ecs-party-entry" :class="[ party, shared ? 'shared' : '', (color && background) ? 'ecs-party-entry-colored' : '']" :style="{ color: color }">
3
- <ecs-icon v-if="icon && iconPosition == 'left'" :type="iconType" :color="iconColor" :style="'margin-right:'+iconSpacing" :width="iconSize" :height="iconSize" />
3
+ <ecs-icon v-if="icon && iconPosition == 'left'" :type="iconType" :color="iconColor" :style="'margin-right:'+iconSpacing" :size="iconSize" />
4
4
  <span>
5
5
  <slot></slot>
6
6
  </span>
7
- <ecs-icon v-if="icon && iconPosition == 'right'" :type="iconType" :color="iconColor" :style="'margin-left:'+iconSpacing" :width="iconSize" :height="iconSize" />
7
+ <ecs-icon v-if="icon && iconPosition == 'right'" :type="iconType" :color="iconColor" :style="'margin-left:'+iconSpacing" :size="iconSize" />
8
8
  <div v-if="background" class="ecs-party-entry-background" />
9
9
  </div>
10
10
  </template>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <header class="ecs-popover-header">
3
3
  <div class="ecs-popover-header-title">
4
- <ecs-icon v-if="icon" :type="icon" width="36" height="36" class="icon" color="#B4B9BE" />
4
+ <ecs-icon v-if="icon" :type="icon" size="36" class="icon" color="#B4B9BE" />
5
5
  <h2 class="ecs-headline-2">{{title}}</h2>
6
6
  </div>
7
7
  <div v-if="hasControls" class="ecs-popover-header-actions">
@@ -3,7 +3,7 @@
3
3
  <label v-for="option in options" :key="option.id" :for="option.id">
4
4
  <input type="radio" :name="name" :value="option.id" :id="option.id" :checked="value==option.id" :disabled="option.disabled" @click="$emit('click', option.id)">
5
5
  <span class="ecs-segment" :title="option.title">
6
- <ecs-icon v-if="option.icon" :class="[option.icon && option.label ? 'icon-spacing' : '']" :type="option.icon" width="20" height="20" color="#2F333C" />
6
+ <ecs-icon v-if="option.icon" :class="[option.icon && option.label ? 'icon-spacing' : '']" :type="option.icon" size="20" color="#2F333C" />
7
7
  {{ option.label }}
8
8
  </span>
9
9
  </label>
@@ -1,10 +1,11 @@
1
1
  <template>
2
2
  <div class="ecs-form-select" :class="[sizeClass, typeClass, disabled ? `disabled` : null]">
3
- <select @change="$emit('change', $event)"
3
+ <select @change="$emit('change', $event); hasPlaceholder = false"
4
4
  @focus="$emit('focus', $event)"
5
5
  @blur="$emit('blur', $event)"
6
- v-bind="{ id, name, disabled, required }" >
7
-
6
+ v-bind="{ id, name, disabled, required }"
7
+ :class="hasPlaceholder? 'placeholder' : ''" >
8
+ <option v-if="placeholder" selected hidden disabled>{{placeholder}}</option>
8
9
  <slot></slot>
9
10
  </select>
10
11
  </div>
@@ -35,20 +36,36 @@ export default {
35
36
  type: Boolean,
36
37
  default: false
37
38
  },
39
+ placeholder: {
40
+ type: String
41
+ },
38
42
  id: String,
39
43
  name: String
40
44
  },
45
+
46
+ data() {
47
+ return {
48
+ hasPlaceholder: false
49
+ }
50
+ },
51
+
41
52
  computed: {
42
53
  sizeClass() {
43
54
  if (this.size && this.size !== '')
44
55
  return `ecs-form-select-${this.size}`
45
56
  return this.size
46
57
  },
58
+
47
59
  typeClass() {
48
60
  if (this.type && this.type !== '')
49
61
  return `ecs-form-select-${this.type}`
50
62
  return this.type
51
63
  }
64
+ },
65
+
66
+ mounted: function () {
67
+ if (this.placeholder && this.placeholder !== '')
68
+ this.hasPlaceholder = true
52
69
  }
53
70
  }
54
71
  </script>
@@ -118,6 +135,10 @@ export default {
118
135
  option[value=""][disabled] {
119
136
  display: none;
120
137
  }
138
+
139
+ &.placeholder{
140
+ color: $color-gray-9;
141
+ }
121
142
  }
122
143
 
123
144
  &-subtle{
@@ -0,0 +1,93 @@
1
+ <template>
2
+ <div class="ecs-separator" :class="classes" :style="{margin: marginStyles, width: width, height: height}" />
3
+ </template>
4
+
5
+ <script>
6
+ export default {
7
+ props: {
8
+ /** Determines if the separator line is horinzontally or vertically shown. */
9
+ type: {
10
+ type: String,
11
+ default: 'horizontal',
12
+ validator: v => ['horizontal', 'vertical'].includes(v)
13
+ },
14
+ /** Determines the color strength of the line. */
15
+ strength: {
16
+ type: String,
17
+ default: 'medium',
18
+ validator: v => ['soft', 'medium', 'strong'].includes(v)
19
+ },
20
+ /** Determines to margin (top/bottom for horizontal, left/right for vertical). If a `Number` is passed, the margin will used for both top/bottom or left/right. If an `Array` is passed (eg. `[8, 16]`), you can set individual margins for each side (CSS shorthand syntax). */
21
+ margin: {
22
+ type: [Number, Array],
23
+ default: 0
24
+ },
25
+ /** Determines the width of the separator. Any valid css (px, %) value possible. */
26
+ width: {
27
+ type: String
28
+ },
29
+ /** Determines the height of the separator. Any valid css (px, %) value possible. Vertical separators typically require a pixel value height. */
30
+ height: {
31
+ type: String
32
+ }
33
+ },
34
+
35
+ computed: {
36
+ classes(){
37
+ return 'ecs-separator-' + this.type + ' ecs-separator-' + this.strength
38
+ },
39
+
40
+ marginStyles(){
41
+ if(typeof(this.margin) === 'number') {
42
+ if(this.type === 'horizontal')
43
+ return this.margin + 'px 0 ' + this.margin + 'px 0'
44
+ else
45
+ return '0 ' + this.margin + 'px 0 ' + this.margin + 'px'
46
+ } else if(typeof(this.margin) === 'object') {
47
+ const iterator = this.margin.values()
48
+ let margins
49
+ let iteration = 0
50
+ for (const value of iterator) {
51
+ if(iteration == 0)
52
+ margins = value + 'px '
53
+ else
54
+ margins = margins + value + 'px '
55
+ iteration++
56
+ }
57
+ return margins
58
+ }
59
+ }
60
+ }
61
+ };
62
+ </script>
63
+
64
+ <style lang="scss" scoped>
65
+ @import "../../tokens/build/scss/tokens.scss";
66
+
67
+ .ecs-separator{
68
+ border-radius: 1px;
69
+
70
+ &-soft{
71
+ background-color: $color-gray-2;
72
+ }
73
+
74
+ &-medium{
75
+ background-color: $color-gray-3;
76
+ }
77
+
78
+ &-strong{
79
+ background-color: $color-gray-4;
80
+ }
81
+
82
+ &-horizontal{
83
+ width: 100%;
84
+ height: 1px;
85
+ }
86
+
87
+ &-vertical{
88
+ height: 100%;
89
+ width: 1px;
90
+ }
91
+ }
92
+ </style>
93
+
@@ -4,7 +4,7 @@
4
4
  :class="[active ? 'active' : '', loading ? 'loading' : '', disabled ? 'disabled' : '', completed ? 'completed' : '']">
5
5
  <span class="count">
6
6
  {{ step }}
7
- <ecs-icon v-if="loading" type="loading" class="loading" width="34" height="34" />
7
+ <ecs-icon v-if="loading" type="loading" class="loading" size="34" />
8
8
  </span>
9
9
  <slot></slot>
10
10
  <div class="step-indicator" />
@@ -8,7 +8,7 @@
8
8
  @click="handleClick">
9
9
 
10
10
  <ecs-icon v-if="icon" :type="icon" />
11
- <ecs-icon v-if="icon && sticker" :type="`sticker-${sticker}`" class="sticker" width="16" height="16" />
11
+ <ecs-icon v-if="icon && sticker" :type="`sticker-${sticker}`" class="sticker" size="16" />
12
12
  <slot></slot>
13
13
  <span v-if="shortcut" class="shortcut">{{ shortcut }}</span>
14
14
  <span class="hover" />
@@ -316,10 +316,10 @@
316
316
  padding-left: 1px;
317
317
 
318
318
  .ecs-tab-button{
319
- border-radius: 0 0 3px 3px;
319
+ border-radius: 0 0 $border-radius-small $border-radius-small;
320
320
  color: $color-gray-14;
321
321
  height: 38px;
322
- padding: 0 20px;
322
+ padding: 0 $spacing-25;
323
323
  text-align: center;
324
324
  font-size: $type-scale-3-font-size;
325
325
  line-height: 26px;
@@ -330,6 +330,11 @@
330
330
  border-top-color: $color-gray-4;
331
331
  position: relative;
332
332
  margin-left: -1px;
333
+ transition: .2s background-color, .2s border-color, .2s color;
334
+
335
+ &:hover{
336
+ background-color: $color-gray-3;
337
+ }
333
338
 
334
339
  &:before{
335
340
  content: "";
@@ -338,7 +343,7 @@
338
343
  background: $color-gray-4;
339
344
  border-radius: 1px;
340
345
  position: absolute;
341
- right: 0;
346
+ left: 0;
342
347
  }
343
348
 
344
349
  &:after{
@@ -354,18 +359,24 @@
354
359
  &.show{
355
360
  color: $color-blue-10;
356
361
  font-weight: $font-weight-medium;
362
+ letter-spacing: -.015em;
357
363
  background: #FFFFFF;
358
364
  border: 1px solid $color-gray-4;
359
365
  border-top-color: #FFF;
366
+ z-index: 1;
360
367
 
361
368
  &:after{
362
369
  transform: scale(1);
363
370
  opacity: 1;
364
371
  }
372
+
373
+ + .ecs-tab-button:before{
374
+ opacity: 0;
375
+ }
365
376
  }
366
377
 
367
378
  &.show:before,
368
- &:last-child:before{
379
+ &:first-child:before{
369
380
  opacity: 0;
370
381
  }
371
382
  }
@@ -5,7 +5,7 @@
5
5
  <div v-if="state =='repairing'" class="repairing" />
6
6
  <div v-if="state =='corrupted'" class="corrupted" />
7
7
  <span v-if="state == 'loading'" class="loading">
8
- <ecs-icon type="loading" width="18px" height="18px" color="#202127" />
8
+ <ecs-icon type="loading" size="18px" color="#202127" />
9
9
  </span>
10
10
  </div>
11
11
  </template>
@@ -15,7 +15,7 @@
15
15
  :collapsed="!isVisible"
16
16
  @click="toggleCollapse" />
17
17
 
18
- <ecs-icon v-if="icon" :type="icon" :color="iconColor" :width="iconSize" :height="iconSize" />
18
+ <ecs-icon v-if="icon" :type="icon" :color="iconColor" :size="iconSize" />
19
19
 
20
20
  <div v-if="$slots.control" class="ecs-tree-view-entry-control">
21
21
  <!-- @slot Slot for a selection control, such as a checkbox or radiobutton. -->
@@ -6,6 +6,42 @@ import { Meta } from '@storybook/addon-docs/blocks';
6
6
  Changelog
7
7
  </h1>
8
8
 
9
+ ## Version 3.3.0 (12 January 2023)
10
+
11
+ ### Features
12
+
13
+ - Added new EcsFillIcon component
14
+ - Added `login-key` icon
15
+ - Added EU flag icon
16
+ - Added new `placeholder` prop support for EcsSelect component
17
+ - Added new EcsSeparator component
18
+
19
+ ## Version 3.2.0 (11 January 2023)
20
+
21
+ ### Fixes
22
+
23
+ Reverted all EcsPagination updates and moved these changes to the @next branch, until infinite scroll feature can be implemented. This means 3.2.0 can be used again as a stable release for current application development.
24
+
25
+ ## Version 3.1.5 (undefined)
26
+
27
+ ### Features
28
+
29
+ - Added item range indicator to EcsPagination component
30
+
31
+ ### Fixes
32
+
33
+ - Overwrite margins of dialog
34
+ - Only add EcsDialog to the DOM when it's being shown
35
+ - Fix subtle layout shift on EcsTabButton of type `sheet`.
36
+ - Replaced soon to be deprecated `width` and `height` props of EcsIcon with `size`.
37
+
38
+ ## Version 3.1.2 (15 December 2022)
39
+
40
+ ### Fixes
41
+
42
+ - Fixed readonly state styles of EcsInput
43
+ - Fixed line height scales of EcsFormatted
44
+
9
45
  ## Version 3.1.1 (29 November 2022)
10
46
 
11
47
  ### Fixes