@everchron/ec-shards 2.0.0 → 2.0.2

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 (38) hide show
  1. package/.eslintrc.js +2 -5
  2. package/dist/ec-shards.common.js +880 -310
  3. package/dist/ec-shards.common.js.map +1 -1
  4. package/dist/ec-shards.css +1 -1
  5. package/dist/ec-shards.umd.js +880 -310
  6. package/dist/ec-shards.umd.js.map +1 -1
  7. package/dist/ec-shards.umd.min.js +2 -2
  8. package/dist/ec-shards.umd.min.js.map +1 -1
  9. package/package.json +6 -5
  10. package/src/assets/icons/empty-broken-transcript.svg +1 -0
  11. package/src/assets/icons/sticker-info.svg +1 -0
  12. package/src/components/button-toolbar-icon/button-toolbar-icon.vue +1 -4
  13. package/src/components/data-list-item/data-list-item.vue +34 -28
  14. package/src/components/document-state/document-state.vue +20 -8
  15. package/src/components/index.js +6 -0
  16. package/src/components/legend-item/legend-item.vue +176 -0
  17. package/src/components/log-message/log-message.vue +144 -0
  18. package/src/components/overlay/overlay.vue +68 -18
  19. package/src/components/quicklink/quicklink.vue +1 -1
  20. package/src/components/sticker/sticker.vue +4 -2
  21. package/src/components/switch/switch.vue +102 -11
  22. package/src/components/transcript-state/transcript-state.vue +125 -0
  23. package/src/stories/Changelog.stories.mdx +58 -1
  24. package/src/stories/{data-list-item → data-list}/.DS_Store +0 -0
  25. package/src/stories/{data-list-item → data-list}/data-list-item.stories.js +3 -3
  26. package/src/stories/data-list/data-list.stories.js +17 -0
  27. package/src/stories/legend-item/legend-item.stories.js +50 -0
  28. package/src/stories/log-message/log-message.stories.js +37 -0
  29. package/src/stories/overlay/overlay.stories.js +60 -15
  30. package/src/stories/quicklink/quicklink.stories.js +6 -1
  31. package/src/stories/sidebar/sidebar-content.stories.js +27 -0
  32. package/src/stories/{sidebar-footer → sidebar}/sidebar-footer.stories.js +0 -0
  33. package/src/stories/{sidebar-header → sidebar}/sidebar-header.stories.js +0 -0
  34. package/src/stories/swatches-picker/swatches-picker.stories.js +7 -161
  35. package/src/stories/switch/switch.stories.js +21 -1
  36. package/src/stories/{sidebar-footer → transcript-state}/.DS_Store +0 -0
  37. package/src/stories/transcript-state/transcript-state.stories.js +16 -0
  38. package/src/stories/sidebar-header/.DS_Store +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everchron/ec-shards",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "private": false,
5
5
  "description": "Everchron Shards UI Library",
6
6
  "repository": "https://github.com/everchron/ec-shards.git",
@@ -30,16 +30,17 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@babel/core": "^7.13.15",
33
- "@storybook/addon-actions": "^6.5.9",
34
- "@storybook/addon-essentials": "^6.5.9",
35
- "@storybook/addon-links": "^6.5.9",
36
- "@storybook/vue": "^6.5.9",
33
+ "@storybook/addon-actions": "^6.5.10",
34
+ "@storybook/addon-essentials": "^6.5.10",
35
+ "@storybook/addon-links": "^6.5.10",
36
+ "@storybook/vue": "^6.5.10",
37
37
  "@vue/cli-plugin-babel": "~4.5.0",
38
38
  "@vue/cli-service": "~4.5.0",
39
39
  "babel-eslint": "^10.1.0",
40
40
  "babel-loader": "^8.2.2",
41
41
  "core-js": "^3.6.5",
42
42
  "eslint": "^6.7.2",
43
+ "eslint-plugin-storybook": "^0.6.4",
43
44
  "eslint-plugin-vue": "^6.2.2",
44
45
  "node-sass": "^5.0.0",
45
46
  "sass-loader": "^10.1.1",
@@ -0,0 +1 @@
1
+ <svg width="140" height="140" fill="none" xmlns="http://www.w3.org/2000/svg"><path vector-effect="non-scaling-stroke" d="M31.25 23.333h67.083C104.777 23.333 110 28.557 110 35M61.5 37.77h35M56.5 37.77h-4M61.5 43.77h30M56.5 43.77h-4M61.5 49.77h24M56.5 49.77h-4M61.5 55.77h20M56.5 55.77h-4M61.5 61.77h19M56.5 61.77h-4M61.5 67.77h19M56.5 67.77h-4M61.5 73.77h20M56.5 73.77h-4M61.5 79.77h23M56.5 79.77h-4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path vector-effect="non-scaling-stroke" d="M48.75 116.667h67.083c6.444 0 11.667-5.224 11.667-11.667v-5.833a5.833 5.833 0 0 0-5.833-5.834H63.333a5.833 5.833 0 0 0-5.833 5.834v8.75a8.75 8.75 0 0 1-8.75 8.75Zm0 0a8.75 8.75 0 0 1-8.75-8.75V58.333m0 .648V32.083a8.75 8.75 0 1 0-17.5 0v14.584a5.833 5.833 0 0 0 5.833 5.833H40v6.481ZM101.996 55.49a9.533 9.533 0 0 1 6.042.006 9.99 9.99 0 0 1-4.27 19.433 10.102 10.102 0 0 1-8.277-6.886 9.531 9.531 0 0 1 0-6.047 1 1 0 0 1 1.662-.377l5.614 5.614 4.472-4.472-5.615-5.614a1 1 0 0 1 .372-1.656v0Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path vector-effect="non-scaling-stroke" d="M117.728 77.728c7.029-7.03 7.029-18.426 0-25.456-7.029-7.03-18.426-7.03-25.456 0-7.03 7.03-7.03 18.426 0 25.456 7.03 7.03 18.427 7.03 25.456 0ZM107.581 74.652l6.112 6.112M114.653 67.582l6.111 6.111" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 14.75a6.75 6.75 0 1 0 0-13.5 6.75 6.75 0 0 0 0 13.5Z" fill="#6BAFFF" stroke="#fff" stroke-width="1.5"/><path d="M8.2 11.484v-3.75h-1" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="7.8" cy="4.8" r="1" fill="#fff"/></svg>
@@ -74,10 +74,7 @@
74
74
  &:after{
75
75
  content: "";
76
76
  position: absolute;
77
- top: 0;
78
- left: 0;
79
- bottom: 0;
80
- right: 0;
77
+ inset: 0;
81
78
  background: rgba($color-gray-8, .08);
82
79
  opacity: 0;
83
80
  transform: scale(.6);
@@ -126,6 +126,40 @@
126
126
  }
127
127
  </script>
128
128
 
129
+ <style lang="scss">
130
+ @import "../../tokens/build/scss/tokens.scss";
131
+
132
+ .ecs-data-list-data{
133
+ a:not(.ecs-button){
134
+ color: $color-blue-8;
135
+ cursor: pointer;
136
+
137
+ &:hover{
138
+ color: $color-blue-9;
139
+ }
140
+ }
141
+
142
+ li{
143
+ margin-bottom: 2px;
144
+ }
145
+
146
+ .subtle{
147
+ color: $color-gray-8;
148
+ }
149
+
150
+ li{
151
+ &:last-child{
152
+ margin-bottom: 0;
153
+ }
154
+ }
155
+
156
+ .ecs-button{
157
+ margin-top: -5px;
158
+ margin-bottom: -5px;
159
+ }
160
+ }
161
+ </style>
162
+
129
163
  <style lang="scss" scoped>
130
164
  @import "../../tokens/build/scss/tokens.scss";
131
165
  @import "../mixins/svg-uri";
@@ -221,19 +255,6 @@
221
255
  position: relative;
222
256
  z-index: 0;
223
257
 
224
- a:not(.ecs-button){
225
- color: $color-blue-8;
226
- cursor: pointer;
227
-
228
- &:hover{
229
- color: $color-blue-9;
230
- }
231
- }
232
-
233
- li{
234
- margin-bottom: 2px;
235
- }
236
-
237
258
  &-links{
238
259
  color: $color-gray-8;
239
260
  }
@@ -265,21 +286,6 @@
265
286
  }
266
287
  }
267
288
 
268
- .subtle{
269
- color: $color-gray-8;
270
- }
271
-
272
- li{
273
- &:last-child{
274
- margin-bottom: 0;
275
- }
276
- }
277
-
278
- .ecs-button{
279
- margin-top: -5px;
280
- margin-bottom: -5px;
281
- }
282
-
283
289
  .progress{
284
290
  background: $color-blue-2;
285
291
  position: absolute;
@@ -4,16 +4,20 @@
4
4
  <div v-else class="no-txt" />
5
5
  <div v-if="instantView" class="instant" />
6
6
  <div v-else class="no-instant" />
7
- <div v-if="loading" class="loading" />
7
+ <span v-if="loading" class="loading">
8
+ <ecs-icon type="loading" width="18px" height="18px" color="#202127" />
9
+ </span>
8
10
  </div>
9
11
  </template>
10
12
 
11
13
  <script>
12
14
  import EcsAnimations from '../animations/animations'
15
+ import EcsIcon from '../icon/icon'
13
16
 
14
17
  export default {
15
18
  components: {
16
- EcsAnimations
19
+ EcsAnimations,
20
+ EcsIcon
17
21
  },
18
22
  props: {
19
23
  /** Determines if the document has been processed by OCR. */
@@ -72,12 +76,20 @@
72
76
  }
73
77
 
74
78
  .loading{
75
- width: 16px;
76
- height: 16px;
77
- left: 16px;
78
- top: 16px;
79
- animation: spin 1.5s infinite linear reverse;
80
- background: svg-uri('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><g fill="none" fill-rule="evenodd"><circle cx="8" cy="8" r="8" fill="#FFF"/><path fill="#2F333C" d="M14.0263548,8.16381819 C14.0113782,7.38027913 13.841386,6.59917757 13.5274173,5.88496663 C13.2144798,5.17012288 12.7602845,4.52256819 12.2027063,3.98746663 C11.6454563,3.45196663 10.9846126,3.0286385 10.2693001,2.74935725 C9.55440947,2.46899788 8.78575322,2.335076 8.02635478,2.35131819 C7.2668626,2.36634163 6.51074541,2.53148225 5.81931572,2.83595882 C5.12734697,3.13942757 4.50046416,3.57974788 3.98258916,4.12005257 C3.46433916,4.660076 3.05493291,5.30022444 2.78509697,5.99268538 C2.51422978,6.68481819 2.38515947,7.42846663 2.40135478,8.16381819 C2.4164251,8.89928694 2.57671416,9.63039632 2.8716751,10.2990448 C3.1656751,10.9681854 3.59209697,11.5743729 4.11515166,12.0749979 C4.6379251,12.5760213 5.25740166,12.9715291 5.92703447,13.2318729 C6.59638603,13.4932479 7.31507353,13.6174432 8.02635478,13.6013182 C8.73777666,13.586201 9.44387822,13.4307635 10.0897454,13.1452948 C10.7360345,12.8607401 11.3215735,12.4482635 11.804972,11.9424354 C12.2887454,11.4368885 12.6703313,10.8381073 12.9212298,10.1913026 C13.073972,9.79921663 13.177636,9.38974007 13.2322688,8.97491975 C13.2468704,8.9757635 13.2615423,8.976326 13.2763548,8.976326 C13.6905657,8.976326 14.0263548,8.64056038 14.0263548,8.226326 C14.0263548,8.20527913 14.0252532,8.18446663 14.0235657,8.16384163 L14.0263548,8.16384163 L14.0263548,8.16381819 Z M12.8346282,10.1553963 C12.5595657,10.7788573 12.1609876,11.3436776 11.672386,11.8098494 C11.1840657,12.2763729 10.6059798,12.6440604 9.98202666,12.8855135 C9.35826103,13.1278338 8.68956572,13.2423729 8.02635478,13.2263182 C7.36302666,13.2111073 6.70687041,13.0653494 6.10658916,12.7988885 C5.50600322,12.5332713 4.96185478,12.1486151 4.51290947,11.6772635 C4.06363603,11.2061932 3.70984697,10.6487791 3.47788603,10.0476776 C3.24503447,9.44669319 3.13537041,8.80298225 3.15135478,8.16381819 C3.1666126,7.52453694 3.30754228,6.89336507 3.5644876,6.3158885 C3.82063603,5.73815413 4.19141728,5.21467757 4.64549541,4.78295882 C5.0993626,4.35091194 5.63608135,4.01104475 6.21433135,3.78855257 C6.79251103,3.56519319 7.4112376,3.46035725 8.02635478,3.47631819 C8.64158916,3.49162288 9.24777666,3.627701 9.80247197,3.87515413 C10.3573782,4.12183382 10.8601595,4.47869319 11.2746282,4.91556819 C11.6894251,5.35218538 12.0153704,5.86823225 12.2284173,6.42363069 C12.442261,6.97900569 12.5422688,7.57274788 12.5263548,8.16381819 L12.5291438,8.16381819 C12.5274563,8.18444319 12.5263548,8.20525569 12.5263548,8.22630257 C12.5263548,8.61316194 12.8192298,8.93146663 13.1953313,8.97189632 C13.1223938,9.37996663 13.0016204,9.77835725 12.8346282,10.1553963 L12.8346282,10.1553963 Z"/></g></svg>');
79
+ border-radius: 100%;
80
+ background: #FFF;
81
+ width: 18px;
82
+ height: 18px;
83
+ position: absolute;
84
+ bottom: -3px;
85
+ right: 0;
86
+ display: block;
87
+
88
+ .icon{
89
+ position: absolute;
90
+ inset: 0;
91
+ animation: spin 1.5s infinite linear reverse;
92
+ }
81
93
  }
82
94
  }
83
95
  </style>
@@ -69,6 +69,8 @@ import EcsJumperPage from "./jumper-page/jumper-page.vue"
69
69
  import EcsLayoutIndex from "./layout-index/layout-index.vue"
70
70
  import EcsLayoutDirectory from "./layout-directory/layout-directory.vue"
71
71
  import EcsLayoutDataTable from "./layout-data-table/layout-data-table.vue"
72
+ import EcsLegendItem from "./legend-item/legend-item.vue"
73
+ import EcsLogMessage from "./log-message/log-message.vue"
72
74
  import EcsMap from "./map/map.vue"
73
75
  import EcsModal from "./modal/modal.vue"
74
76
  import EcsModalHeader from "./modal-header/modal-header.vue"
@@ -117,6 +119,7 @@ import EcsText from "./text/text.vue"
117
119
  import EcsToast from "./toast/toast.vue"
118
120
  import EcsToasts from "./toasts/toasts.vue"
119
121
  import EcsToolbar from "./toolbar/toolbar.vue"
122
+ import EcsTranscriptState from "./transcript-state/transcript-state.vue"
120
123
  import EcsTreeList from "./tree-list/tree-list.vue"
121
124
  import EcsTreeListItem from "./tree-list-item/tree-list-item.vue"
122
125
  import EcsVideo from "./video/video.vue"
@@ -190,6 +193,8 @@ const Components = {
190
193
  EcsLayoutIndex,
191
194
  EcsLayoutDirectory,
192
195
  EcsLayoutDataTable,
196
+ EcsLegendItem,
197
+ EcsLogMessage,
193
198
  EcsMap,
194
199
  EcsModal,
195
200
  EcsModalHeader,
@@ -238,6 +243,7 @@ const Components = {
238
243
  EcsToast,
239
244
  EcsToasts,
240
245
  EcsToolbar,
246
+ EcsTranscriptState,
241
247
  EcsTreeList,
242
248
  EcsTreeListItem,
243
249
  EcsVideo
@@ -0,0 +1,176 @@
1
+ <template>
2
+ <ecs-flex-row
3
+ class="ecs-legend-item"
4
+ :gap="8"
5
+ :class="[
6
+ sizeClass,
7
+ hover ? 'hover' : '',
8
+ highlight ? 'highlighted' : ''
9
+ ]">
10
+ <div class="ecs-legend-item-color" :class="type" :style="{backgroundColor: validColor}" />
11
+ <div class="ecs-legend-item-label">{{ label }}</div>
12
+ <div v-if="count" class="ecs-legend-item-count">{{ count }}</div>
13
+ <div v-if="percentage" class="ecs-legend-item-percentage">{{ percentageLabel }}</div>
14
+ <div v-if="highlight || hover" class="ecs-legend-item-highlight" :style="{backgroundColor: validColor}" />
15
+ </ecs-flex-row>
16
+ </template>
17
+
18
+ <script>
19
+ import EcsFlexRow from '../flex/flex-row'
20
+
21
+ export default {
22
+ components: {
23
+ EcsFlexRow
24
+ },
25
+
26
+ props: {
27
+ /** Determines the type of legend message. */
28
+ type: {
29
+ type: String,
30
+ validator: v => ['fill', 'line'].includes(v),
31
+ default: 'fill'
32
+ },
33
+ /** Determines the size of the legend item. */
34
+ size: {
35
+ type: String,
36
+ validator: v => ['sml', 'md'].includes(v),
37
+ default: 'md'
38
+ },
39
+ /** The main legend item label. */
40
+ label: {
41
+ type: String,
42
+ required: true
43
+ },
44
+ /** Determines the color value of the legend item. This should exactly match the color this item represent in data visualization. */
45
+ color: {
46
+ type: String,
47
+ required: true
48
+ },
49
+ /** Displays a count next to the label. */
50
+ count: {
51
+ type: [String, Number]
52
+ },
53
+ /** Displays a percentage value next to the count/label. */
54
+ percentage: {
55
+ type: [String, Number]
56
+ },
57
+ /** Adds a background color to highlight the legend item. */
58
+ highlight: {
59
+ type: Boolean,
60
+ default: false
61
+ },
62
+ /** Determines if the legend item should have a hover state. */
63
+ hover: {
64
+ type: Boolean,
65
+ default: false
66
+ }
67
+ },
68
+
69
+ computed: {
70
+ validColor(){
71
+ if(CSS.supports('color', this.color)){
72
+ return this.color
73
+ } else {
74
+ console.warn('The passed color value is not a valid color.')
75
+ return this.color
76
+ }
77
+ },
78
+
79
+ percentageLabel() {
80
+ if(Number.isInteger(this.percentage)){
81
+ return this.percentage + '%'
82
+ } else {
83
+ return this.percentage
84
+ }
85
+ },
86
+
87
+ sizeClass(){
88
+ return `ecs-legend-item-${this.size}`
89
+ }
90
+ }
91
+ }
92
+ </script>
93
+
94
+ <style lang="scss" scoped>
95
+ @import "../../tokens/build/scss/tokens.scss";
96
+ @import "../mixins/svg-uri";
97
+
98
+ .ecs-legend-item{
99
+ color: $color-gray-15;
100
+ border-radius: $border-radius-small;
101
+ position: relative;
102
+ z-index: 1;
103
+ cursor: default;
104
+
105
+ &-sml{
106
+ font-size: $type-scale-2-font-size;
107
+ line-height: $type-scale-2-line-height;
108
+ padding: $spacing-5;
109
+ }
110
+
111
+ &-md{
112
+ font-size: $type-scale-3-font-size;
113
+ line-height: $type-scale-3-line-height;
114
+ padding: $spacing-10;
115
+ }
116
+
117
+ &-color{
118
+ &.fill{
119
+ width: $spacing-15;
120
+ height: $spacing-15;
121
+ border-radius: 100%;
122
+ }
123
+
124
+ &.line{
125
+ width: $spacing-20;
126
+ height: 3px;
127
+ border-radius: 1px;
128
+ }
129
+ }
130
+
131
+ &-label{
132
+ flex: 1;
133
+ overflow: hidden;
134
+ text-overflow: ellipsis;
135
+ white-space: nowrap;
136
+ }
137
+
138
+ &-count{
139
+ font-weight: $font-weight-medium;
140
+ text-align: right;
141
+ }
142
+
143
+ &-percentage{
144
+ color: $color-gray-10;
145
+ text-align: right;
146
+ min-width: 48px;
147
+ }
148
+
149
+ &-highlight{
150
+ position: absolute;
151
+ inset: 0;
152
+ opacity: 0;
153
+ transform: scale(.6);
154
+ transition: opacity .1s ease-in-out, transform .3s cubic-bezier(0.3, 0.76, 0.27, 1);
155
+ border-radius: $border-radius-small;
156
+ z-index: -1;
157
+ pointer-events: none;
158
+ }
159
+
160
+ &.hover{
161
+ cursor: pointer;
162
+
163
+ &:hover .ecs-legend-item-highlight{
164
+ opacity: .1;
165
+ transform: scale(1);
166
+ }
167
+ }
168
+
169
+ &.highlighted{
170
+ .ecs-legend-item-highlight{
171
+ opacity: .1;
172
+ transform: scale(1);
173
+ }
174
+ }
175
+ }
176
+ </style>
@@ -0,0 +1,144 @@
1
+ <template>
2
+ <ecs-flex-row class="ecs-log-message" :class="[type, highlight ? 'highlighted' : '']" align="start" :style="padding">
3
+ <ecs-sticker v-if="type != 'blank'" :type="type" />
4
+ <div class="ecs-log-message-content">
5
+ <slot></slot>
6
+ </div>
7
+ <div v-if="meta" class="ecs-log-message-meta">
8
+ {{ meta }}
9
+ </div>
10
+ </ecs-flex-row>
11
+ </template>
12
+
13
+ <script>
14
+ import EcsFlexRow from '../flex/flex-row'
15
+ import EcsSticker from '../sticker/sticker'
16
+
17
+ export default {
18
+ components: {
19
+ EcsFlexRow, EcsSticker
20
+ },
21
+
22
+ props: {
23
+ /** Determines the type of log message, which also impacts the styling of it. */
24
+ type: {
25
+ type: String,
26
+ validator: v => ['blank', 'success', 'warning', 'info', 'error'].includes(v),
27
+ default: 'blank'
28
+ },
29
+ /** Adds a background color to highlight the line within the log. */
30
+ highlight: {
31
+ type: Boolean,
32
+ default: false
33
+ },
34
+ /** Meta text like (most usual) a timestamp, a username, etc. Appears as subtle gray text on the right side of the log message. */
35
+ meta: {
36
+ type: String
37
+ },
38
+ /** Allows to customize the left and right inner padding of the log message. */
39
+ verticalPadding: {
40
+ type: String,
41
+ default: '20px'
42
+ },
43
+ },
44
+
45
+ computed: {
46
+ padding() {
47
+ return 'padding-left: ' + this.verticalPadding + '; padding-right: ' + this.verticalPadding + ';'
48
+ }
49
+ }
50
+ }
51
+ </script>
52
+
53
+ <style lang="scss">
54
+ @import "../../tokens/build/scss/tokens.scss";
55
+
56
+ .ecs-log-message-content{
57
+ p, ol, ul, blockquote{
58
+ margin: $spacing-10 0;
59
+ }
60
+
61
+ b, strong{
62
+ font-weight: $font-weight-medium;
63
+ }
64
+
65
+ a{
66
+ font-weight: $font-weight-medium;
67
+
68
+ &:hover{
69
+ text-decoration: underline;
70
+ }
71
+ }
72
+ }
73
+
74
+ .highlighted.error > .ecs-log-message-content a{
75
+ color: $color-red-12;
76
+ }
77
+
78
+ .highlighted.info > .ecs-log-message-content a{
79
+ color: $color-blue-12;
80
+ }
81
+
82
+ .highlighted.warning > .ecs-log-message-content a{
83
+ color: $color-yellow-12;
84
+ }
85
+
86
+ .highlighted.success > .ecs-log-message-content a{
87
+ color: $color-green-12;
88
+ }
89
+ </style>
90
+
91
+ <style lang="scss" scoped>
92
+ @import "../../tokens/build/scss/tokens.scss";
93
+ @import "../mixins/svg-uri";
94
+
95
+ .ecs-log-message{
96
+ column-gap: $spacing-10;
97
+ padding-top: $spacing-10;
98
+ padding-bottom: $spacing-10;
99
+ color: $color-gray-15;
100
+ font-size: $type-scale-2-font-size;
101
+ line-height: $type-scale-2-line-height;
102
+ border-bottom: 1px solid $color-gray-1;
103
+
104
+ &-content{
105
+ flex: 1;
106
+
107
+ > :first-child{
108
+ margin-top: 0;
109
+ }
110
+
111
+ > :last-child{
112
+ margin-bottom: 0;
113
+ }
114
+ }
115
+
116
+ &-meta{
117
+ opacity: .5;
118
+ }
119
+ }
120
+
121
+ .info.highlighted{
122
+ background: $color-blue-1;
123
+ border-color: $color-blue-2;
124
+ color: $color-blue-15;
125
+ }
126
+
127
+ .warning.highlighted{
128
+ background: $color-yellow-1;
129
+ border-color: $color-yellow-2;
130
+ color: $color-yellow-15;
131
+ }
132
+
133
+ .error.highlighted{
134
+ background: $color-red-1;
135
+ border-color: $color-red-2;
136
+ color: $color-red-15;
137
+ }
138
+
139
+ .success.highlighted{
140
+ background: $color-green-1;
141
+ border-color: $color-green-2;
142
+ color: $color-green-15;
143
+ }
144
+ </style>