@eturnity/eturnity_reusable_components 7.45.2 → 7.45.4

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eturnity/eturnity_reusable_components",
3
- "version": "7.45.2",
3
+ "version": "7.45.4",
4
4
  "files": [
5
5
  "dist",
6
6
  "src"
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="29" height="29" fill="#333" viewBox="0 0 29 29"><path d="m10.5 14 4-8 4 8z"/><path class='fix' fill="#ccc" d="m10.5 16 4 8 4-8z"/></svg>
@@ -0,0 +1,6 @@
1
+ <svg fill="#000000" height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
2
+ viewBox="0 0 512 512" xml:space="preserve">
3
+ <path d="M256,0C114.617,0,0,114.615,0,256s114.617,256,256,256s256-114.615,256-256S397.383,0,256,0z M224,320
4
+ c0,8.836-7.164,16-16,16h-32c-8.836,0-16-7.164-16-16V192c0-8.836,7.164-16,16-16h32c8.836,0,16,7.164,16,16V320z M352,320
5
+ c0,8.836-7.164,16-16,16h-32c-8.836,0-16-7.164-16-16V192c0-8.836,7.164-16,16-16h32c8.836,0,16,7.164,16,16V320z"/>
6
+ </svg>
@@ -35,6 +35,9 @@ const theme = {
35
35
  tablet: '768px',
36
36
  tabletLarge: '950px',
37
37
  },
38
+ fonts: {
39
+ mainFont: '"Figtree", sans-serif',
40
+ },
38
41
  borderRadius: '4px',
39
42
  }
40
43
 
@@ -111,10 +111,10 @@
111
111
  props.backgroundColor ? props.backgroundColor : 'transparent'};
112
112
  padding: ${(props) => (props.backgroundColor ? '3px' : '0')};
113
113
  }
114
- svg path {
114
+ svg path:not(.fix) {
115
115
  ${({ theme, color }) => color && `fill: ${theme.colors[color] || color};`}
116
116
  }
117
- &:hover svg path {
117
+ &:hover svg path:not(.fix) {
118
118
  ${({ theme, hoveredColor }) =>
119
119
  hoveredColor && `fill: ${theme.colors[hoveredColor] || hoveredColor};`}
120
120
  }
@@ -1,6 +1,10 @@
1
1
  <template>
2
- <InfoContainer>
3
- <RCIcon name="info" size="24px" :color="color" />
2
+ <InfoContainer
3
+ background-color="backgrounColor"
4
+ :border-color="borderColor"
5
+ :has-dashed-border="hasDashedBorder"
6
+ >
7
+ <RCIcon :color="color" name="info" size="24px" />
4
8
  <TextContainer>
5
9
  <slot></slot>
6
10
  </TextContainer>
@@ -10,12 +14,24 @@
10
14
  <script>
11
15
  import styled from 'vue3-styled-components'
12
16
  import RCIcon from '../icon'
13
-
14
- const InfoContainer = styled.div`
17
+ const propsContainer = {
18
+ backgroundColor: String,
19
+ hasDashedBorder: Boolean,
20
+ borderColor: String,
21
+ }
22
+ const InfoContainer = styled('div', propsContainer)`
15
23
  display: flex;
16
24
  gap: 15px;
17
- padding: 20px;
18
- border: 1px dashed ${(props) => props.theme.colors.grey4};
25
+ padding: 15px;
26
+ border: 1px ${(props) => (props.hasDashedBorder ? 'dashed' : 'solid')}
27
+ ${(props) =>
28
+ props.theme.colors[props.borderColor]
29
+ ? props.theme.colors[props.borderColor]
30
+ : props.borderColor};
31
+ background-color: ${(props) =>
32
+ props.theme.colors[props.backgroundColor]
33
+ ? props.theme.colors[props.backgroundColor]
34
+ : props.backgroundColor};
19
35
  border-radius: 4px;
20
36
  `
21
37
 
@@ -33,8 +49,19 @@
33
49
  },
34
50
  props: {
35
51
  color: {
36
- required: false
37
- }
38
- }
52
+ required: false,
53
+ },
54
+ backgrounColor: {
55
+ required: false,
56
+ },
57
+ hasDashedBorder: {
58
+ required: false,
59
+ default: true,
60
+ },
61
+ borderColor: {
62
+ required: false,
63
+ default: 'grey4',
64
+ },
65
+ },
39
66
  }
40
67
  </script>
@@ -19,10 +19,11 @@
19
19
  :align-arrow="alignArrow"
20
20
  :half-computed-text-info-width="halfComputedTextInfoWidth"
21
21
  :icon-size="size"
22
+ :info-position="infoPosition"
22
23
  :max-width="maxWidth"
23
24
  :width="width"
24
25
  ><slot></slot>
25
- <span v-html="text"></span>
26
+ <span v-if="text.length > 0" v-html="text"></span>
26
27
  </TextOverlay>
27
28
  </IconWrapper>
28
29
  </ComponentWrapper>
@@ -45,10 +46,14 @@
45
46
  alignArrow: String,
46
47
  width: String,
47
48
  halfComputedTextInfoWidth: Number,
49
+ infoPosition: String,
48
50
  }
49
51
  const TextOverlay = styled('div', textAttrs)`
50
52
  position: absolute;
51
- top: ${(props) => 'calc(' + props.iconSize + ' + 15px)'};
53
+ ${(props) =>
54
+ props.infoPosition == 'top'
55
+ ? 'bottom : calc(' + props.iconSize + ' + 15px)'
56
+ : 'top : calc(' + props.iconSize + ' + 15px)'};
52
57
  ${(props) =>
53
58
  props.alignArrow === 'left'
54
59
  ? 'left: calc(' + props.iconSize + ' /2 - 18px)'
@@ -64,14 +69,17 @@
64
69
  font-weight: 400;
65
70
  line-height: normal;
66
71
  border-radius: 4px;
67
- z-index: 99;
72
+ z-index: 999;
68
73
  color: ${(props) => props.theme.colors.white};
69
74
 
70
75
  :before {
71
76
  content: '';
72
77
  background-color: ${(props) => props.theme.colors.black};
73
78
  position: absolute;
74
- top: 2px;
79
+
80
+ ${(props) =>
81
+ props.infoPosition == 'top' ? 'bottom : -10px' : 'top: 2px'};
82
+
75
83
  ${(props) =>
76
84
  props.alignArrow === 'left'
77
85
  ? 'left:40px;'
@@ -115,26 +123,37 @@
115
123
  props: {
116
124
  text: {
117
125
  required: false,
126
+ default: '',
127
+ type: String,
118
128
  },
119
129
  size: {
120
130
  required: false,
121
131
  default: '14px',
132
+ type: String,
133
+ },
134
+ infoPosition: {
135
+ required: false,
136
+ default: 'bottom',
137
+ type: String,
122
138
  },
123
139
  alignArrow: {
124
140
  required: false,
125
141
  default: 'center',
142
+ type: String,
126
143
  },
127
144
  openTrigger: {
128
145
  required: false,
129
146
  default: 'onHover', // onHover, onClick
147
+ type: String,
130
148
  },
131
149
  width: {
132
150
  required: false,
133
- default: '200px',
151
+ default: '165px',
152
+ type: String,
134
153
  },
135
154
  maxWidth: {
136
- type: String,
137
155
  default: '400px',
156
+ type: String,
138
157
  },
139
158
  },
140
159
  data() {
@@ -0,0 +1,107 @@
1
+ <template>
2
+ <ContainerComponent>
3
+ <RoundedTabLeft
4
+ :background-color="backgroundColor"
5
+ :border-radius="borderRadius"
6
+ />
7
+ <TabComponent
8
+ :background-color="backgroundColor"
9
+ :border-radius="borderRadius"
10
+ :height="height"
11
+ :width="width"
12
+ >
13
+ <slot></slot>
14
+ </TabComponent>
15
+ <RoundedTabRight
16
+ :background-color="backgroundColor"
17
+ :border-radius="borderRadius"
18
+ />
19
+ </ContainerComponent>
20
+ </template>
21
+ <script>
22
+ import styled from 'vue3-styled-components'
23
+
24
+ const ContainerComponent = styled.div`
25
+ position: relative;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ `
30
+ const RoundedTabLeft = styled('div', {
31
+ backgroundColor: String,
32
+ borderRadius: String,
33
+ })`
34
+ position:absolute;
35
+ bottom:0;
36
+ left:-${(prop) => prop.borderRadius}
37
+ background-color: ${(prop) => prop.backgroundColor};
38
+ width: ${(prop) => prop.borderRadius};
39
+ height: ${(prop) => prop.borderRadius};
40
+ -webkit-mask-image: radial-gradient(
41
+ circle at top left,
42
+ transparent 71%,
43
+ black 71%
44
+ );
45
+ `
46
+ const RoundedTabRight = styled('div', {
47
+ backgroundColor: String,
48
+ borderRadius: String,
49
+ })`
50
+ position:absolute;
51
+ bottom:0;
52
+ right:-${(prop) => prop.borderRadius}
53
+ background-color: ${(prop) => prop.backgroundColor};
54
+ width: ${(prop) => prop.borderRadius};
55
+ height: ${(prop) => prop.borderRadius};
56
+ -webkit-mask-image: radial-gradient(
57
+ circle at top right,
58
+ transparent 71%,
59
+ black 71%
60
+ );`
61
+ const TabComponent = styled('div', {
62
+ width: String,
63
+ height: String,
64
+ backgroundColor: String,
65
+ borderRadius: String,
66
+ })`
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ background-color: ${(prop) => prop.backgroundColor};
71
+ width: ${(prop) => prop.width};
72
+ height: ${(prop) => prop.height};
73
+ border-radius: ${(prop) => prop.borderRadius} ${(prop) => prop.borderRadius}
74
+ 0 0;
75
+ `
76
+ export default {
77
+ name: 'RoundTabs',
78
+ components: {
79
+ ContainerComponent,
80
+ TabComponent,
81
+ RoundedTabLeft,
82
+ RoundedTabRight,
83
+ },
84
+ props: {
85
+ height: {
86
+ required: false,
87
+ default: '40px',
88
+ type: String,
89
+ },
90
+ width: {
91
+ required: false,
92
+ default: '200px',
93
+ type: String,
94
+ },
95
+ backgroundColor: {
96
+ required: false,
97
+ default: 'white',
98
+ type: String,
99
+ },
100
+ borderRadius: {
101
+ required: false,
102
+ default: '20px',
103
+ type: String,
104
+ },
105
+ },
106
+ }
107
+ </script>