@everchron/ec-shards 6.2.1 → 6.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everchron/ec-shards",
3
- "version": "6.2.1",
3
+ "version": "6.2.2",
4
4
  "private": false,
5
5
  "description": "Everchron Shards UI Library",
6
6
  "repository": "https://github.com/everchron/ec-shards.git",
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <div class="ecs-directory-entry">
3
- <ecs-icon :type="icon" color="#A1A6B0" />
3
+ <ecs-icon v-if="icon" :type="icon" color="#A1A6B0" />
4
+ <ecs-favicon v-else-if="favicon" :website="favicon" />
4
5
  <div v-if="indicator" class="indicator" :style="`background-color:`+indicator" />
5
6
  <div class="items">
6
7
  <slot></slot>
@@ -10,21 +11,33 @@
10
11
 
11
12
  <script>
12
13
  import EcsIcon from '../icon/icon'
14
+ import EcsFavicon from '../favicon/favicon'
13
15
 
14
16
  export default {
15
17
  components: {
16
- EcsIcon
18
+ EcsIcon,
19
+ EcsFavicon
17
20
  },
21
+
18
22
  props: {
19
23
  /** Adds an icon to the list item. The prop value must match a specific icons name. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
20
24
  icon: {
21
- type: String,
22
- required: true
25
+ type: String
26
+ },
27
+ /** Adds a website favicon to the list item. The prop value must match a specific icons name. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/images/favicons). */
28
+ favicon: {
29
+ type: String
23
30
  },
24
31
  /** Adds a small badge to the directory entry icon. Used to indicate online, or status states. The value must a color value (HEX, RGB, or shards variable). */
25
32
  indicator: {
26
33
  type: String,
27
34
  }
35
+ },
36
+
37
+ mounted(){
38
+ if(!this.icon && !this.favicon){
39
+ console.warn('Icon or Favicon prop is required for ecs-directory-entry component')
40
+ }
28
41
  }
29
42
  }
30
43
  </script>
@@ -41,6 +54,10 @@
41
54
  margin-bottom: 0;
42
55
  }
43
56
 
57
+ .ecs-favicon{
58
+ margin: 5px;
59
+ }
60
+
44
61
  .indicator{
45
62
  position: absolute;
46
63
  top: 16px;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="ecs-state-icon" role="presentation" :class="[type, iconColor]" />
2
+ <div class="ecs-state-icon" role="presentation" :class="[type, iconColor]" :style="iconStyle" />
3
3
  </template>
4
4
 
5
5
  <script>
@@ -15,6 +15,20 @@ export default {
15
15
  type: String,
16
16
  validator: v => ['vibrant', 'danger', 'neutral'].includes(v),
17
17
  default: 'neutral'
18
+ },
19
+ /** The size of the icon, in pixels. */
20
+ size: {
21
+ type: Number,
22
+ default: 60
23
+ }
24
+ },
25
+
26
+ computed: {
27
+ iconStyle(){
28
+ return {
29
+ width: `${this.size}px`,
30
+ height: `${this.size}px`
31
+ }
18
32
  }
19
33
  }
20
34
  }
@@ -25,10 +39,9 @@ export default {
25
39
  @import "../mixins/svg-uri";
26
40
 
27
41
  .ecs-state-icon{
28
- width: 60px;
29
- height: 60px;
30
42
  background: $color-gray-6;
31
43
  border-radius: 100%;
44
+ position: relative;
32
45
 
33
46
  &.vibrant{
34
47
  background: $color-blue-8;
@@ -41,115 +54,113 @@ export default {
41
54
  &:before{
42
55
  content: '';
43
56
  display: block;
44
- width: 60px;
45
- height: 60px;
46
- position: relative;
47
- left: 0;
48
- top: 0;
57
+ position: absolute;
58
+ inset: 0;
59
+ background-size: cover;
49
60
  }
50
61
 
51
62
  &.archive:before{
52
- background: url('../../assets/images/dialog-icons/dialog-archive.svg');
63
+ background-image: url('../../assets/images/dialog-icons/dialog-archive.svg');
53
64
  }
54
65
 
55
66
  &.annotation:before{
56
- background: url('../../assets/images/dialog-icons/dialog-annotation.svg');
67
+ background-image: url('../../assets/images/dialog-icons/dialog-annotation.svg');
57
68
  }
58
69
 
59
70
  &.comment:before{
60
- background: url('../../assets/images/dialog-icons/dialog-comment.svg');
71
+ background-image: url('../../assets/images/dialog-icons/dialog-comment.svg');
61
72
  }
62
73
 
63
74
  &.command:before{
64
- background: url('../../assets/images/dialog-icons/dialog-command.svg');
75
+ background-image: url('../../assets/images/dialog-icons/dialog-command.svg');
65
76
  }
66
77
 
67
78
  &.document:before{
68
- background: url('../../assets/images/dialog-icons/dialog-document.svg');
79
+ background-image: url('../../assets/images/dialog-icons/dialog-document.svg');
69
80
  }
70
81
 
71
82
  &.download:before{
72
- background: url('../../assets/images/dialog-icons/dialog-download.svg');
83
+ background-image: url('../../assets/images/dialog-icons/dialog-download.svg');
73
84
  }
74
85
 
75
86
  &.edit:before{
76
- background: url('../../assets/images/dialog-icons/dialog-edit.svg');
87
+ background-image: url('../../assets/images/dialog-icons/dialog-edit.svg');
77
88
  }
78
89
 
79
90
  &.entry-add:before{
80
- background: url('../../assets/images/dialog-icons/dialog-entry-add.svg');
91
+ background-image: url('../../assets/images/dialog-icons/dialog-entry-add.svg');
81
92
  }
82
93
 
83
94
  &.error:before{
84
- background: url('../../assets/images/dialog-icons/dialog-error.svg');
95
+ background-image: url('../../assets/images/dialog-icons/dialog-error.svg');
85
96
  }
86
97
 
87
98
  &.folder-add:before{
88
- background: url('../../assets/images/dialog-icons/dialog-folder-add.svg');
99
+ background-image: url('../../assets/images/dialog-icons/dialog-folder-add.svg');
89
100
  }
90
101
 
91
102
  &.folder-remove:before{
92
- background: url('../../assets/images/dialog-icons/dialog-folder-remove.svg');
103
+ background-image: url('../../assets/images/dialog-icons/dialog-folder-remove.svg');
93
104
  }
94
105
 
95
106
  &.organization:before{
96
- background: url('../../assets/images/dialog-icons/dialog-organization.svg');
107
+ background-image: url('../../assets/images/dialog-icons/dialog-organization.svg');
97
108
  }
98
109
 
99
110
  &.security:before{
100
- background: url('../../assets/images/dialog-icons/dialog-security.svg');
111
+ background-image: url('../../assets/images/dialog-icons/dialog-security.svg');
101
112
  }
102
113
 
103
114
  &.tag:before{
104
- background: url('../../assets/images/dialog-icons/dialog-tag.svg');
115
+ background-image: url('../../assets/images/dialog-icons/dialog-tag.svg');
105
116
  }
106
117
 
107
118
  &.translation:before{
108
- background: url('../../assets/images/dialog-icons/dialog-translation.svg');
119
+ background-image: url('../../assets/images/dialog-icons/dialog-translation.svg');
109
120
  }
110
121
 
111
122
  &.upload:before{
112
- background: url('../../assets/images/dialog-icons/dialog-upload.svg');
123
+ background-image: url('../../assets/images/dialog-icons/dialog-upload.svg');
113
124
  }
114
125
 
115
126
  &.user:before{
116
- background: url('../../assets/images/dialog-icons/dialog-user.svg');
127
+ background-image: url('../../assets/images/dialog-icons/dialog-user.svg');
117
128
  }
118
129
 
119
130
  &.video:before{
120
- background: url('../../assets/images/dialog-icons/dialog-video.svg');
131
+ background-image: url('../../assets/images/dialog-icons/dialog-video.svg');
121
132
  }
122
133
 
123
134
  &.flag:before{
124
- background: url('../../assets/images/dialog-icons/dialog-flag.svg');
135
+ background-image: url('../../assets/images/dialog-icons/dialog-flag.svg');
125
136
  }
126
137
 
127
138
  &.rate:before{
128
- background: url('../../assets/images/dialog-icons/dialog-rate.svg');
139
+ background-image: url('../../assets/images/dialog-icons/dialog-rate.svg');
129
140
  }
130
141
 
131
142
  &.search:before{
132
- background: url('../../assets/images/dialog-icons/dialog-search.svg');
143
+ background-image: url('../../assets/images/dialog-icons/dialog-search.svg');
133
144
  }
134
145
 
135
146
  &.merge:before{
136
- background: url('../../assets/images/dialog-icons/dialog-merge.svg');
147
+ background-image: url('../../assets/images/dialog-icons/dialog-merge.svg');
137
148
  }
138
149
 
139
150
  &.sync:before{
140
- background: url('../../assets/images/dialog-icons/dialog-sync.svg');
151
+ background-image: url('../../assets/images/dialog-icons/dialog-sync.svg');
141
152
  }
142
153
 
143
154
  &.link:before{
144
- background: url('../../assets/images/dialog-icons/dialog-link.svg');
155
+ background-image: url('../../assets/images/dialog-icons/dialog-link.svg');
145
156
  }
146
157
 
147
158
  &.field:before{
148
- background: url('../../assets/images/dialog-icons/dialog-field.svg');
159
+ background-image: url('../../assets/images/dialog-icons/dialog-field.svg');
149
160
  }
150
161
 
151
162
  &.table:before{
152
- background: url('../../assets/images/dialog-icons/dialog-table.svg');
163
+ background-image: url('../../assets/images/dialog-icons/dialog-table.svg');
153
164
  }
154
165
  }
155
166
 
@@ -6,6 +6,20 @@ import { Meta } from '@storybook/addon-docs/blocks';
6
6
  Changelog
7
7
  </h1>
8
8
 
9
+ ## Version 6.2.2 (15 May 2023)
10
+
11
+ ### Features
12
+
13
+ - Added new EcsStateIcon component
14
+ - Refactored EcsDialogHeader component to use new EcsStateIcon component for icons
15
+ - Allow favicons to be used in EcsDirectoryEntry component
16
+
17
+ ### Fixes
18
+
19
+ - Added missing command icons to EcsStateIcon component
20
+ - Removed legacy Relativity illustration
21
+ - Fixed the EcsDialog content overflow bug
22
+
9
23
  ## Version 6.1.3 (8 May 2023)
10
24
 
11
25
  ### Fixes
@@ -28,3 +28,12 @@ export const directoryEntryIndicator = () => ({
28
28
  Active
29
29
  </ecs-directory-entry>`,
30
30
  });
31
+
32
+ export const directoryEntryFavicon = () => ({
33
+ components: { EcsDirectoryEntry },
34
+ template: `
35
+ <ecs-directory-entry favicon="twitter">
36
+ <a href="https://twitter.com">@twitteruser</a>
37
+ </ecs-directory-entry>
38
+ `
39
+ });
@@ -19,3 +19,12 @@ export const StateIconColors = () => ({
19
19
  <ecs-state-icon type="table" icon-color="danger" />
20
20
  </main>`,
21
21
  });
22
+
23
+ export const StateIconSize = () => ({
24
+ components: { EcsStateIcon },
25
+ template: `
26
+ <main>
27
+ <ecs-state-icon type="table" :size="30" />
28
+ <ecs-state-icon type="table" :size="100" />
29
+ </main>`,
30
+ });