@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.
- package/dist/ec-shards.common.js +2863 -1674
- package/dist/ec-shards.common.js.map +1 -1
- package/dist/ec-shards.css +1 -1
- package/dist/ec-shards.umd.js +2863 -1674
- package/dist/ec-shards.umd.js.map +1 -1
- package/dist/ec-shards.umd.min.js +2 -2
- package/dist/ec-shards.umd.min.js.map +1 -1
- package/dist/img/EU.d180ac2d.svg +1 -0
- package/dist/img/login-email-mfa.33936706.svg +1 -0
- package/dist/img/login-email.4b81db3a.svg +1 -0
- package/dist/img/login-sso-azure.a49f3fe4.svg +1 -0
- package/dist/img/login-sso-okta.55de1bbd.svg +1 -0
- package/package.json +4 -2
- package/src/assets/icons/login-key.svg +7 -0
- package/src/assets/images/fill-icons/login-email-mfa.svg +1 -0
- package/src/assets/images/fill-icons/login-email.svg +1 -0
- package/src/assets/images/fill-icons/login-sso-azure.svg +1 -0
- package/src/assets/images/fill-icons/login-sso-okta.svg +1 -0
- package/src/assets/images/flags/EU.svg +1 -0
- package/src/components/alert/alert.vue +2 -2
- package/src/components/breadcrumb-button/breadcrumb-button.vue +2 -2
- package/src/components/button/button.vue +2 -2
- package/src/components/button-context/button-context.vue +1 -1
- package/src/components/button-more/button-more.vue +1 -1
- package/src/components/button-table/button-table.vue +1 -1
- package/src/components/button-toolbar/button-toolbar.vue +4 -4
- package/src/components/button-toolbar-icon/button-toolbar-icon.vue +1 -1
- package/src/components/collection-control/collection-control.vue +1 -1
- package/src/components/context-menu/context-menu.vue +215 -0
- package/src/components/data-card/data-card.vue +1 -1
- package/src/components/data-grid/data-grid-cell.vue +27 -7
- package/src/components/data-grid/data-grid-head-cell.vue +108 -4
- package/src/components/data-grid/data-grid-row.vue +25 -1
- package/src/components/dialog/dialog.vue +24 -46
- package/src/components/document-state/document-state.vue +1 -1
- package/src/components/empty-state/empty-state.vue +1 -1
- package/src/components/excerpt-snippet/excerpt-snippet.vue +1 -1
- package/src/components/fill-icon/fill-icon.vue +59 -0
- package/src/components/flag/flag.vue +5 -0
- package/src/components/formatted/formatted.vue +4 -15
- package/src/components/index.js +4 -0
- package/src/components/info-tooltip/info-tooltip.vue +1 -1
- package/src/components/input/input.vue +6 -4
- package/src/components/input-addon/input-addon.vue +1 -1
- package/src/components/input-clear/input-clear.vue +1 -1
- package/src/components/input-search/input-search.vue +1 -1
- package/src/components/multiselect-option/multiselect-option.vue +1 -1
- package/src/components/multiselect-search-token/multiselect-search-token.vue +2 -2
- package/src/components/multiselect-token/multiselect-token.vue +1 -1
- package/src/components/overlay/overlay.vue +1 -1
- package/src/components/pagination/pagination.vue +138 -105
- package/src/components/party-entry/party-entry.vue +2 -2
- package/src/components/popover-header/popover-header.vue +1 -1
- package/src/components/segment/segment.vue +1 -1
- package/src/components/select/select.vue +24 -3
- package/src/components/separator/separator.vue +93 -0
- package/src/components/sequence-map-button/sequence-map-button.vue +1 -1
- package/src/components/tab-button/tab-button.vue +16 -5
- package/src/components/transcript-state/transcript-state.vue +1 -1
- package/src/components/tree-list-item/tree-list-item.vue +1 -1
- package/src/stories/Changelog.stories.mdx +36 -0
- package/src/stories/context-menu/context-menu.stories.js +69 -0
- package/src/stories/data-grid/data-grid.stories.js +12 -6
- package/src/stories/fill-icon/fill-icon.stories.js +24 -0
- package/src/stories/flag/flag.stories.js +6 -1
- package/src/stories/input/input.stories.js +5 -4
- package/src/stories/pagination/pagination.stories.js +0 -15
- package/src/stories/select/select.stories.js +16 -0
- package/src/stories/separator/.DS_Store +0 -0
- package/src/stories/separator/separator.stories.js +33 -0
- 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
|
-
<
|
|
4
|
-
<
|
|
5
|
-
<ecs-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
</ecs-
|
|
20
|
-
</
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
50
|
-
import
|
|
51
|
-
import
|
|
52
|
-
import
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
132
|
+
.ecs-toolbar-button-group{
|
|
133
|
+
margin-right: 32px;
|
|
141
134
|
}
|
|
142
135
|
|
|
143
|
-
|
|
144
|
-
|
|
136
|
+
.ecs-toolbar-button-icon{
|
|
137
|
+
font-size: $type-scale-2-font-size;
|
|
145
138
|
}
|
|
146
139
|
|
|
147
|
-
&-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
|
|
156
|
-
|
|
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
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
|
|
166
|
-
|
|
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
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
.
|
|
176
|
-
|
|
206
|
+
.dropdown-enter-active,
|
|
207
|
+
.dropdown-leave-active {
|
|
208
|
+
transition: all .3s;
|
|
177
209
|
}
|
|
178
210
|
|
|
179
|
-
.
|
|
211
|
+
.dropdown-enter,
|
|
212
|
+
.dropdown-leave-to {
|
|
180
213
|
opacity: 0;
|
|
181
|
-
transform:
|
|
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" :
|
|
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" :
|
|
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"
|
|
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"
|
|
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"
|
|
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"
|
|
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
|
|
319
|
+
border-radius: 0 0 $border-radius-small $border-radius-small;
|
|
320
320
|
color: $color-gray-14;
|
|
321
321
|
height: 38px;
|
|
322
|
-
padding: 0
|
|
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
|
-
|
|
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
|
-
&:
|
|
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"
|
|
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" :
|
|
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
|