@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 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>