@eturnity/eturnity_reusable_components 7.39.4-qa-elisee-7.42.0 → 7.39.4-qa-elisee-7.45.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/package.json +1 -1
- package/src/assets/svgIcons/lock.svg +1 -1
- package/src/assets/theme.js +0 -3
- package/src/components/icon/index.vue +2 -2
- package/src/components/infoCard/index.vue +9 -36
- package/src/components/infoText/index.vue +5 -24
- package/src/components/inputs/inputNumber/index.vue +14 -3
- package/src/components/inputs/inputText/InputText.stories.js +54 -60
- package/src/components/inputs/select/index.vue +9 -3
- package/src/assets/svgIcons/compass.svg +0 -1
- package/src/assets/svgIcons/pause.svg +0 -6
- package/src/components/roundTabs/index.vue +0 -107
package/package.json
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
<svg fill="none" height="16" viewbox="14 12 12 16" width="
|
1
|
+
<svg fill="none" height="16" viewbox="14 12 12 16" width="16" xmlns="http://www.w3.org/2000/svg">
|
2
2
|
<path clip-rule="evenodd" d="M16.5 18.25V16.5C16.5 14.567 18.067 13 20 13C21.933 13 23.5 14.567 23.5 16.5V18.25H25.25V27H14.75V18.25H16.5ZM18.25 16.5C18.25 15.5335 19.0335 14.75 20 14.75C20.9665 14.75 21.75 15.5335 21.75 16.5V18.25H18.25V16.5ZM19.125 24.375V20.875H20.875V24.375H19.125Z" fill="#263238" fill-rule="evenodd"></path>
|
3
3
|
</svg>
|
package/src/assets/theme.js
CHANGED
@@ -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 {
|
115
115
|
${({ theme, color }) => color && `fill: ${theme.colors[color] || color};`}
|
116
116
|
}
|
117
|
-
&:hover svg path
|
117
|
+
&:hover svg path {
|
118
118
|
${({ theme, hoveredColor }) =>
|
119
119
|
hoveredColor && `fill: ${theme.colors[hoveredColor] || hoveredColor};`}
|
120
120
|
}
|
@@ -1,10 +1,6 @@
|
|
1
1
|
<template>
|
2
|
-
<InfoContainer
|
3
|
-
|
4
|
-
:border-color="borderColor"
|
5
|
-
:has-dashed-border="hasDashedBorder"
|
6
|
-
>
|
7
|
-
<RCIcon :color="color" name="info" size="24px" />
|
2
|
+
<InfoContainer>
|
3
|
+
<RCIcon name="info" size="24px" :color="color" />
|
8
4
|
<TextContainer>
|
9
5
|
<slot></slot>
|
10
6
|
</TextContainer>
|
@@ -14,24 +10,12 @@
|
|
14
10
|
<script>
|
15
11
|
import styled from 'vue3-styled-components'
|
16
12
|
import RCIcon from '../icon'
|
17
|
-
|
18
|
-
|
19
|
-
hasDashedBorder: Boolean,
|
20
|
-
borderColor: String,
|
21
|
-
}
|
22
|
-
const InfoContainer = styled('div', propsContainer)`
|
13
|
+
|
14
|
+
const InfoContainer = styled.div`
|
23
15
|
display: flex;
|
24
16
|
gap: 15px;
|
25
|
-
padding:
|
26
|
-
border: 1px ${(props) =>
|
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};
|
17
|
+
padding: 20px;
|
18
|
+
border: 1px dashed ${(props) => props.theme.colors.grey4};
|
35
19
|
border-radius: 4px;
|
36
20
|
`
|
37
21
|
|
@@ -49,19 +33,8 @@
|
|
49
33
|
},
|
50
34
|
props: {
|
51
35
|
color: {
|
52
|
-
required: false
|
53
|
-
}
|
54
|
-
|
55
|
-
required: false,
|
56
|
-
},
|
57
|
-
hasDashedBorder: {
|
58
|
-
required: false,
|
59
|
-
default: true,
|
60
|
-
},
|
61
|
-
borderColor: {
|
62
|
-
required: false,
|
63
|
-
default: 'grey4',
|
64
|
-
},
|
65
|
-
},
|
36
|
+
required: false
|
37
|
+
}
|
38
|
+
}
|
66
39
|
}
|
67
40
|
</script>
|
@@ -18,11 +18,10 @@
|
|
18
18
|
:align-arrow="alignArrow"
|
19
19
|
:half-computed-text-info-width="halfComputedTextInfoWidth"
|
20
20
|
:icon-size="size"
|
21
|
-
:info-position="infoPosition"
|
22
21
|
:max-width="maxWidth"
|
23
22
|
:width="width"
|
24
23
|
><slot></slot>
|
25
|
-
<span v-
|
24
|
+
<span v-html="text"></span>
|
26
25
|
</TextOverlay>
|
27
26
|
</IconWrapper>
|
28
27
|
</ComponentWrapper>
|
@@ -45,14 +44,10 @@
|
|
45
44
|
alignArrow: String,
|
46
45
|
width: String,
|
47
46
|
halfComputedTextInfoWidth: Number,
|
48
|
-
infoPosition: String,
|
49
47
|
}
|
50
48
|
const TextOverlay = styled('div', textAttrs)`
|
51
49
|
position: absolute;
|
52
|
-
${(props) =>
|
53
|
-
props.infoPosition == 'top'
|
54
|
-
? 'bottom : calc(' + props.iconSize + ' + 15px)'
|
55
|
-
: 'top : calc(' + props.iconSize + ' + 15px)'};
|
50
|
+
top: ${(props) => 'calc(' + props.iconSize + ' + 15px)'};
|
56
51
|
${(props) =>
|
57
52
|
props.alignArrow === 'left'
|
58
53
|
? 'left: calc(' + props.iconSize + ' /2 - 18px)'
|
@@ -68,17 +63,14 @@
|
|
68
63
|
font-weight: 400;
|
69
64
|
line-height: normal;
|
70
65
|
border-radius: 4px;
|
71
|
-
z-index:
|
66
|
+
z-index: 99;
|
72
67
|
color: ${(props) => props.theme.colors.white};
|
73
68
|
|
74
69
|
:before {
|
75
70
|
content: '';
|
76
71
|
background-color: ${(props) => props.theme.colors.black};
|
77
72
|
position: absolute;
|
78
|
-
|
79
|
-
${(props) =>
|
80
|
-
props.infoPosition == 'top' ? 'bottom : -10px' : 'top: 2px'};
|
81
|
-
|
73
|
+
top: 2px;
|
82
74
|
${(props) =>
|
83
75
|
props.alignArrow === 'left'
|
84
76
|
? 'left:40px;'
|
@@ -122,37 +114,26 @@
|
|
122
114
|
props: {
|
123
115
|
text: {
|
124
116
|
required: false,
|
125
|
-
default: '',
|
126
|
-
type: String,
|
127
117
|
},
|
128
118
|
size: {
|
129
119
|
required: false,
|
130
120
|
default: '14px',
|
131
|
-
type: String,
|
132
|
-
},
|
133
|
-
infoPosition: {
|
134
|
-
required: false,
|
135
|
-
default: 'bottom',
|
136
|
-
type: String,
|
137
121
|
},
|
138
122
|
alignArrow: {
|
139
123
|
required: false,
|
140
124
|
default: 'center',
|
141
|
-
type: String,
|
142
125
|
},
|
143
126
|
openTrigger: {
|
144
127
|
required: false,
|
145
128
|
default: 'onHover', // onHover, onClick
|
146
|
-
type: String,
|
147
129
|
},
|
148
130
|
width: {
|
149
131
|
required: false,
|
150
132
|
default: '200px',
|
151
|
-
type: String,
|
152
133
|
},
|
153
134
|
maxWidth: {
|
154
|
-
default: '400px',
|
155
135
|
type: String,
|
136
|
+
default: '400px',
|
156
137
|
},
|
157
138
|
},
|
158
139
|
data() {
|
@@ -4,6 +4,7 @@
|
|
4
4
|
v-if="hasLabelSlot"
|
5
5
|
:align-items="alignItems"
|
6
6
|
:border-color="borderColor"
|
7
|
+
:is-disabled="disabled"
|
7
8
|
:is-error="isError"
|
8
9
|
:is-interactive="isInteractive"
|
9
10
|
:no-border="noBorder"
|
@@ -273,18 +274,22 @@
|
|
273
274
|
: props.theme.colors.mediumGray};
|
274
275
|
`
|
275
276
|
|
276
|
-
const LabelWrapper = styled('div'
|
277
|
+
const LabelWrapper = styled('div')`
|
277
278
|
display: flex;
|
278
279
|
align-items: center;
|
279
280
|
gap: 10px;
|
280
281
|
margin-bottom: 8px;
|
281
|
-
cursor: ${(props) => (props.isInteractive ? 'ew-resize' : 'auto')};
|
282
282
|
`
|
283
283
|
const LabelSlotWrapper = styled('div', inputProps)`
|
284
284
|
display: flex;
|
285
285
|
gap: 10px;
|
286
286
|
align-items: center;
|
287
|
-
cursor: ${(props) =>
|
287
|
+
cursor: ${(props) =>
|
288
|
+
props.isDisabled
|
289
|
+
? 'not-allowed'
|
290
|
+
: props.isInteractive
|
291
|
+
? 'ew-resize'
|
292
|
+
: 'auto'};
|
288
293
|
border: ${(props) =>
|
289
294
|
props.alignItems == 'vertical'
|
290
295
|
? 'none'
|
@@ -760,12 +765,18 @@
|
|
760
765
|
}
|
761
766
|
},
|
762
767
|
initInteraction(e) {
|
768
|
+
if (this.disabled) {
|
769
|
+
return
|
770
|
+
}
|
763
771
|
this.focusInput()
|
764
772
|
e.preventDefault()
|
765
773
|
window.addEventListener('mousemove', this.interact, false)
|
766
774
|
window.addEventListener('mouseup', this.stopInteract, false)
|
767
775
|
},
|
768
776
|
interact(e) {
|
777
|
+
if (this.disabled) {
|
778
|
+
return
|
779
|
+
}
|
769
780
|
e.preventDefault()
|
770
781
|
let value = parseFloat(this.value || 0)
|
771
782
|
value += parseFloat(this.interactionStep) * parseInt(e.movementX)
|
@@ -4,73 +4,67 @@ export default {
|
|
4
4
|
title: 'InputText',
|
5
5
|
component: InputText,
|
6
6
|
tags: ['autodocs'],
|
7
|
-
// argTypes: {},
|
8
7
|
}
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
9
|
+
// import InputText from "@eturnity/eturnity_reusable_components/src/components/inputs/inputText"
|
10
|
+
// To use:
|
11
|
+
// <input-text
|
12
|
+
// placeholder="Company name"
|
13
|
+
// :value="companyName"
|
14
|
+
// @input-change="onInputChange({ value: $event, type: 'companyName' })"
|
15
|
+
// :isError="checkErrors()"
|
16
|
+
// :errorMessage="This is my error message"
|
17
|
+
// infoTextAlign="right" // left by default
|
18
|
+
// infoTextMessage="My info message"
|
19
|
+
// label="Question 5"
|
20
|
+
// alignItems="horizontal" // horizontal, vertical
|
21
|
+
// inputWidth="250px"
|
22
|
+
// minWidth="100px"
|
23
|
+
// />
|
16
24
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
// alignItems="horizontal" // horizontal, vertical
|
29
|
-
// inputWidth="250px"
|
30
|
-
// minWidth="100px"
|
31
|
-
// />
|
32
|
-
})
|
33
|
-
|
34
|
-
export const Default = Template.bind({})
|
35
|
-
Default.args = {
|
36
|
-
placeholder: 'Company name',
|
37
|
-
disabled: false,
|
38
|
-
value: '',
|
39
|
-
inputWidth: '200px',
|
40
|
-
minWidth: '10ch',
|
41
|
-
unitName: 'pc',
|
42
|
-
isError: false,
|
43
|
-
textAlign: 'left',
|
25
|
+
export const Default = {
|
26
|
+
args: {
|
27
|
+
placeholder: 'Company name',
|
28
|
+
disabled: false,
|
29
|
+
value: '',
|
30
|
+
inputWidth: '200px',
|
31
|
+
minWidth: '10ch',
|
32
|
+
isError: false,
|
33
|
+
label: 'label test',
|
34
|
+
labelOptional: true,
|
35
|
+
},
|
44
36
|
}
|
45
37
|
|
46
|
-
export const HasError =
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
38
|
+
export const HasError = {
|
39
|
+
args: {
|
40
|
+
placeholder: 'Enter Value',
|
41
|
+
errorMessage: 'This field is required',
|
42
|
+
isError: true,
|
43
|
+
disabled: false,
|
44
|
+
inputWidth: '200px',
|
45
|
+
},
|
53
46
|
}
|
54
47
|
|
55
|
-
export const Disabled =
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
48
|
+
export const Disabled = {
|
49
|
+
args: {
|
50
|
+
placeholder: 'Enter Value',
|
51
|
+
disabled: true,
|
52
|
+
value: '',
|
53
|
+
inputWidth: '200px',
|
54
|
+
isError: false,
|
55
|
+
},
|
62
56
|
}
|
63
57
|
|
64
|
-
export const WithLabel =
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
58
|
+
export const WithLabel = {
|
59
|
+
args: {
|
60
|
+
placeholder: 'Company name',
|
61
|
+
disabled: false,
|
62
|
+
label: 'What is the best company in Switzerland?',
|
63
|
+
value: 'Eturnity',
|
64
|
+
inputWidth: '200px',
|
65
|
+
unitName: 'pc',
|
66
|
+
isError: false,
|
67
|
+
errorMessage: 'Maximum 5 characters',
|
68
|
+
alignItems: 'vertical',
|
69
|
+
},
|
76
70
|
}
|
@@ -43,6 +43,7 @@
|
|
43
43
|
buttonBgColor || colorMode == 'dark' ? 'transparentBlack1' : 'white'
|
44
44
|
"
|
45
45
|
class="select-button"
|
46
|
+
:color-mode="colorMode"
|
46
47
|
:data-id="dataId"
|
47
48
|
:disabled="disabled"
|
48
49
|
:font-color="
|
@@ -274,6 +275,7 @@
|
|
274
275
|
noRelative: Boolean,
|
275
276
|
tablePaddingLeft: String,
|
276
277
|
showDisabledBackground: Boolean,
|
278
|
+
colorMode: String,
|
277
279
|
}
|
278
280
|
const SelectButton = styled('div', selectButtonAttrs)`
|
279
281
|
position: ${(props) => (props.noRelative ? 'static' : 'relative')};
|
@@ -311,12 +313,16 @@
|
|
311
313
|
`}
|
312
314
|
background-color:${(props) =>
|
313
315
|
props.disabled && props.showDisabledBackground
|
314
|
-
? props.
|
316
|
+
? props.colorMode == 'dark'
|
317
|
+
? props.theme.transparentBlack1
|
318
|
+
: props.theme.colors.grey5
|
315
319
|
: props.theme.colors[props.bgColor]
|
316
320
|
? props.theme.colors[props.bgColor]
|
317
321
|
: props.bgColor};
|
318
322
|
color: ${(props) =>
|
319
|
-
props.
|
323
|
+
props.disabled
|
324
|
+
? props.theme.colors.grey2
|
325
|
+
: props.theme.colors[props.fontColor]
|
320
326
|
? props.theme.colors[props.fontColor]
|
321
327
|
: props.fontColor};
|
322
328
|
${(props) => (props.disabled ? 'pointer-events: none' : '')};
|
@@ -613,7 +619,7 @@
|
|
613
619
|
if (this.isDropdownOpen) {
|
614
620
|
return this.$refs.dropdown.$el.childElementCount > 1
|
615
621
|
? this.$refs.dropdown.$el.childElementCount
|
616
|
-
:
|
622
|
+
: this.$refs.dropdown.$el.children[0]
|
617
623
|
? this.$refs.dropdown.$el.children[0].childElementCount
|
618
624
|
: 0
|
619
625
|
}
|
@@ -1 +0,0 @@
|
|
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>
|
@@ -1,6 +0,0 @@
|
|
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>
|
@@ -1,107 +0,0 @@
|
|
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>
|