@eturnity/eturnity_reusable_components 7.39.4-qa-elisee-7.42.0 → 7.39.4-qa-elisee-7.45.0

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.39.4-qa-elisee-7.42.0",
3
+ "version": "7.39.4-qa-elisee-7.45.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "src"
@@ -1,3 +1,3 @@
1
- <svg fill="none" height="16" viewbox="14 12 12 16" width="12" xmlns="http://www.w3.org/2000/svg">
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>
@@ -35,9 +35,6 @@ const theme = {
35
35
  tablet: '768px',
36
36
  tabletLarge: '950px',
37
37
  },
38
- fonts: {
39
- mainFont: '"Figtree", sans-serif',
40
- },
41
38
  borderRadius: '4px',
42
39
  }
43
40
 
@@ -111,10 +111,10 @@
111
111
  props.backgroundColor ? props.backgroundColor : 'transparent'};
112
112
  padding: ${(props) => (props.backgroundColor ? '3px' : '0')};
113
113
  }
114
- svg path:not(.fix) {
114
+ svg path {
115
115
  ${({ theme, color }) => color && `fill: ${theme.colors[color] || color};`}
116
116
  }
117
- &:hover svg path:not(.fix) {
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
- background-color="backgrounColor"
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
- const propsContainer = {
18
- backgroundColor: String,
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: 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};
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
- backgrounColor: {
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-if="text.length > 0" v-html="text"></span>
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: 999;
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', inputProps)`
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) => (props.isInteractive ? 'ew-resize' : 'auto')};
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
- const Template = (args, { argTypes }) => ({
11
- // Components used in your story `template` are defined in the `components` object
12
- components: { InputText },
13
- // The story's `args` need to be mapped into the template through the `setup()` method
14
- props: Object.keys(argTypes),
15
- template: '<input-text v-bind="$props" />',
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
- // import InputText from "@eturnity/eturnity_reusable_components/src/components/inputs/inputText"
18
- // To use:
19
- // <input-text
20
- // placeholder="Company name"
21
- // :value="companyName"
22
- // @input-change="onInputChange({ value: $event, type: 'companyName' })"
23
- // :isError="checkErrors()"
24
- // :errorMessage="This is my error message"
25
- // infoTextAlign="right" // left by default
26
- // infoTextMessage="My info message"
27
- // label="Question 5"
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 = Template.bind({})
47
- HasError.args = {
48
- placeholder: 'Enter Value',
49
- errorMessage: 'This field is required',
50
- isError: true,
51
- disabled: false,
52
- inputWidth: '200px',
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 = Template.bind({})
56
- Disabled.args = {
57
- placeholder: 'Enter Value',
58
- disabled: true,
59
- value: '',
60
- inputWidth: '200px',
61
- isError: false,
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 = Template.bind({})
65
- WithLabel.args = {
66
- placeholder: 'Company name',
67
- disabled: false,
68
- label: 'What is the best company in Switzerland?',
69
- value: 'Eturnity',
70
- inputWidth: '200px',
71
- unitName: 'pc',
72
- isError: false,
73
- errorMessage: 'Maximum 5 characters',
74
- textAlign: 'left',
75
- alignItems: 'vertical',
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.theme.colors.grey5
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.theme.colors[props.fontColor]
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
- : !!this.$refs.dropdown.$el.children[0]
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>