@eturnity/eturnity_reusable_components 7.24.1 → 7.24.3

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.
Files changed (34) hide show
  1. package/babel.config.js +3 -1
  2. package/package.json +2 -1
  3. package/src/assets/svgIcons/anchor.svg +18 -0
  4. package/src/assets/svgIcons/consumption_tariffs.svg +43 -0
  5. package/src/assets/svgIcons/electricity_tariff.svg +3 -0
  6. package/src/assets/svgIcons/flatten_roof.svg +20 -0
  7. package/src/assets/svgIcons/handle.svg +5 -0
  8. package/src/assets/svgIcons/house_3d-1.svg +8 -0
  9. package/src/assets/svgIcons/house_3d.svg +8 -0
  10. package/src/assets/svgIcons/split.svg +6 -88
  11. package/src/assets/svgIcons/summer.svg +3 -0
  12. package/src/components/banner/actionBanner/index.vue +65 -0
  13. package/src/components/banner/banner/banner.stories.js +31 -0
  14. package/src/components/banner/banner/index.vue +188 -0
  15. package/src/components/banner/infoBanner/index.vue +69 -0
  16. package/src/components/buttons/mainButton/index.vue +30 -2
  17. package/src/components/collapsableInfoText/index.vue +125 -0
  18. package/src/components/filter/filterSettings.vue +2 -0
  19. package/src/components/icon/index.vue +1 -1
  20. package/src/components/iconWrapper/index.vue +23 -3
  21. package/src/components/inputs/checkbox/index.vue +5 -0
  22. package/src/components/inputs/inputText/index.vue +20 -4
  23. package/src/components/inputs/radioButton/index.vue +5 -2
  24. package/src/components/inputs/select/index.vue +34 -11
  25. package/src/components/modals/actionModal/index.vue +64 -0
  26. package/src/components/modals/infoModal/index.vue +49 -0
  27. package/src/components/modals/modal/index.vue +1 -1
  28. package/src/components/rangeSlider/Slider.vue +547 -0
  29. package/src/components/rangeSlider/index.vue +517 -0
  30. package/src/components/rangeSlider/utils/dom.js +49 -0
  31. package/src/components/rangeSlider/utils/fns.js +26 -0
  32. package/src/components/threeDots/index.vue +22 -8
  33. package/src/helpers/currencyMapping.js +28 -0
  34. package/src/mixins/inputValidations.js +97 -0
@@ -8,8 +8,12 @@
8
8
  :customColor="customColor"
9
9
  :noWrap="noWrap"
10
10
  :data-id="dataId"
11
+ :fontColor="fontColor"
11
12
  >
12
- {{ text }}
13
+ <Label :hasIcon="Boolean(icon)">
14
+ <icon v-if="icon" :name="icon" size="14px" />
15
+ {{ text }}
16
+ </Label>
13
17
  </button-container>
14
18
  </page-container>
15
19
  </template>
@@ -21,12 +25,14 @@
21
25
  // text="Click Me"
22
26
  // customColor="#ab5348"
23
27
  // type="secondary" // primary, secondary, cancel
28
+ // icon="icon-name" // icon name from icon component
24
29
  // :isDisabled="true"
25
30
  // :minWidth="minWidth"
26
31
  // :data-id="test_data_id"
27
32
  // />
28
33
 
29
34
  import styled from 'vue3-styled-components'
35
+ import Icon from '../../icon'
30
36
 
31
37
  const PageContainer = styled.div``
32
38
 
@@ -35,12 +41,14 @@ const ButtonAttrs = {
35
41
  isDisabled: Boolean,
36
42
  minWidth: String,
37
43
  customColor: String,
44
+ fontColor: String,
38
45
  noWrap: Boolean
39
46
  }
40
47
  const ButtonContainer = styled('div', ButtonAttrs)`
41
48
  padding: 7px 15px;
42
49
  font-size: 13px;
43
- color: ${(props) => props.theme.colors.white};
50
+ color: ${(props) =>
51
+ props.fontColor ? props.fontColor : props.theme.colors.white};
44
52
  background-color: ${(props) =>
45
53
  props.isDisabled
46
54
  ? props.theme.colors.disabled
@@ -69,9 +77,22 @@ const ButtonContainer = styled('div', ButtonAttrs)`
69
77
  }
70
78
  `
71
79
 
80
+ const LabelAttrs = {
81
+ hasIcon: Boolean
82
+ }
83
+
84
+ const Label = styled('span', LabelAttrs)`
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ gap: ${(props) => (props.hasIcon ? '5px' : '0')};
89
+ `
90
+
72
91
  export default {
73
92
  name: 'main-button',
74
93
  components: {
94
+ Icon,
95
+ Label,
75
96
  PageContainer,
76
97
  ButtonContainer
77
98
  },
@@ -84,6 +105,10 @@ export default {
84
105
  required: false,
85
106
  default: false
86
107
  },
108
+ icon: {
109
+ required: false,
110
+ default: null
111
+ },
87
112
  text: {
88
113
  required: true
89
114
  },
@@ -91,6 +116,9 @@ export default {
91
116
  required: false,
92
117
  default: null
93
118
  },
119
+ fontColor: {
120
+ required: false
121
+ },
94
122
  noWrap: {
95
123
  required: false,
96
124
  default: false
@@ -0,0 +1,125 @@
1
+ <template>
2
+ <div>
3
+ <Text :expand="showButton && showAll" :fontSize="fontSize">{{ text }}</Text>
4
+ <ToggleContainer>
5
+ <ToggleButton
6
+ @click="toggleHandler"
7
+ v-if="showButton && !showAll"
8
+ :fontSize="fontSize"
9
+ >
10
+ {{ $gettext('Show more') }}
11
+ </ToggleButton>
12
+ <ToggleButton
13
+ @click="toggleHandler"
14
+ v-if="showButton && showAll"
15
+ :fontSize="fontSize"
16
+ >
17
+ {{ $gettext('Show less') }}
18
+ </ToggleButton>
19
+ </ToggleContainer>
20
+ </div>
21
+ </template>
22
+
23
+ <script>
24
+ import styled from 'vue3-styled-components'
25
+ import theme from '@/assets/theme.js'
26
+
27
+ const TextAttrs = {
28
+ expand: Boolean,
29
+ fontSize: String
30
+ }
31
+ const Text = styled('p', TextAttrs)`
32
+ display: block;
33
+ display: -webkit-box;
34
+ line-height: 1.3em;
35
+ -webkit-line-clamp: ${(props) => (props.expand ? 'unset' : '4')};
36
+ -webkit-box-orient: vertical;
37
+ overflow: hidden;
38
+ font-size: ${(props) => props.fontSize}px;
39
+ text-overflow: ellipsis;
40
+ `
41
+
42
+ const ToggleContainer = styled.div`
43
+ display: flex;
44
+ width: 100%;
45
+ `
46
+
47
+ const ToggleButton = styled('p', TextAttrs)`
48
+ font-size: ${(props) => props.fontSize}px;
49
+ cursor: pointer;
50
+ color: ${(props) => props.theme.colors.blue};
51
+ `
52
+
53
+ export default {
54
+ name: 'collapsable-info-text',
55
+ props: {
56
+ text: {
57
+ type: String,
58
+ required: true
59
+ },
60
+ fontSize: {
61
+ type: String,
62
+ default: '16px'
63
+ },
64
+ lineCount: {
65
+ type: Number,
66
+ default: 3
67
+ },
68
+ minWidth: {
69
+ type: String,
70
+ default: '100%'
71
+ }
72
+ },
73
+ components: {
74
+ Text,
75
+ ToggleButton,
76
+ ToggleContainer
77
+ },
78
+ data() {
79
+ return {
80
+ showButton: true,
81
+ showAll: false,
82
+ lineBreaks: []
83
+ }
84
+ },
85
+ computed: {
86
+ theme() {
87
+ return theme
88
+ }
89
+ },
90
+ methods: {
91
+ displayText() {
92
+ if (!this.showButton) {
93
+ return this.text
94
+ }
95
+ if (!this.showAll) {
96
+ let countIndex = 0
97
+ this.lineBreaks.forEach((el, index) => {
98
+ if (index < this.lineCount) {
99
+ countIndex += el.length
100
+ }
101
+ })
102
+
103
+ return this.text.slice(0, countIndex + 2) + '...'
104
+ } else {
105
+ return this.text
106
+ }
107
+ },
108
+ toggleHandler() {
109
+ this.showAll = !this.showAll
110
+ }
111
+ },
112
+ created() {
113
+ // TODO: this should divide the text into lines based on with. Currently it's just splitting by line breaks
114
+ // this.lineBreaks = this.text.split('\n')
115
+
116
+ // if (this.lineBreaks.length <= this.lineCount) {
117
+ // this.showButton = false
118
+ // }
119
+
120
+ if (this.text.length <= 170) {
121
+ this.showButton = false
122
+ }
123
+ }
124
+ }
125
+ </script>
@@ -92,6 +92,7 @@
92
92
  fontSize="13px"
93
93
  :label="filter.label"
94
94
  :labelDataId="filter.dataId"
95
+ :isSearchable="filter.choices.length > 7"
95
96
  alignItems="vertical"
96
97
  :disabled="!filter.choices.length"
97
98
  :minOptionLength="1"
@@ -225,6 +226,7 @@
225
226
  fontSize="13px"
226
227
  :label="filter.label"
227
228
  alignItems="vertical"
229
+ :isSearchable="filter.choices.length > 7"
228
230
  :disabled="!filter.choices.length"
229
231
  >
230
232
  <template #selector="{ selectedValue }">
@@ -115,7 +115,7 @@ const IconImage = styled('div', {
115
115
  ${({ theme, color }) => color && `fill: ${theme.colors[color] || color};`}
116
116
  }
117
117
  &:hover > svg path {
118
- ${(props) => props.hoveredColor && `fill: ${props.hoveredColor};`}
118
+ ${props.hoveredColor && `fill: ${props.hoveredColor};`}
119
119
  }
120
120
  &:hover + div {
121
121
  background-color: ${(props) => props.hoveredColor};
@@ -9,6 +9,7 @@
9
9
  :hoveredBackgroundColor="hoveredBackgroundColor"
10
10
  :isHovered="isHovered"
11
11
  :data-id="dataId"
12
+ :noCursor="noCursor"
12
13
  >
13
14
  <icon
14
15
  :disabled="disabled"
@@ -30,6 +31,9 @@
30
31
  borderRadius="1px"
31
32
  />
32
33
  </caret>
34
+ <lockContainer v-if="hasLock">
35
+ <icon size="9px" name="lock" color="yellow" />
36
+ </lockContainer>
33
37
  </Wrapper>
34
38
  </template>
35
39
 
@@ -54,8 +58,14 @@ const wrapperAttrs = {
54
58
  size: String,
55
59
  backgroundColor: String,
56
60
  hoveredBackgroundColor: String,
57
- hasBorder: Boolean
61
+ hasBorder: Boolean,
62
+ noCursor: Boolean
58
63
  }
64
+ const lockContainer = styled.div`
65
+ position: absolute;
66
+ bottom: 6px;
67
+ right: 6px;
68
+ `
59
69
  const Wrapper = styled('div', wrapperAttrs)`
60
70
  position: relative;
61
71
  display: inline-flex;
@@ -67,7 +77,8 @@ const Wrapper = styled('div', wrapperAttrs)`
67
77
  : ''};
68
78
  justify-content: center;
69
79
  align-items: center;
70
- cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};
80
+ cursor: ${(props) =>
81
+ props.noCursor ? 'auto' : props.disabled ? 'not-allowed' : 'pointer'};
71
82
  background-color: ${(props) =>
72
83
  props.theme.colors[props.backgroundColor] || props.backgroundColor};
73
84
  border-radius: ${(props) => props.borderRadius};
@@ -95,7 +106,8 @@ export default {
95
106
  components: {
96
107
  Wrapper,
97
108
  icon,
98
- caret
109
+ caret,
110
+ lockContainer
99
111
  },
100
112
  props: {
101
113
  disabled: {
@@ -153,6 +165,14 @@ export default {
153
165
  isLoading: {
154
166
  required: false,
155
167
  default: false
168
+ },
169
+ noCursor: {
170
+ required: false,
171
+ default: false
172
+ },
173
+ hasLock: {
174
+ required: false,
175
+ default: false
156
176
  }
157
177
  }
158
178
  }
@@ -197,6 +197,11 @@ export default {
197
197
  return !!this.label.length
198
198
  }
199
199
  },
200
+ computed: {
201
+ hasLabel() {
202
+ return !!this.label.length
203
+ }
204
+ },
200
205
  methods: {
201
206
  onChangeHandler(value) {
202
207
  if (this.isDisabled) {
@@ -26,7 +26,7 @@
26
26
  <input-container
27
27
  ref="inputElement"
28
28
  :placeholder="placeholder"
29
- :isError="isError"
29
+ :isError="hasError"
30
30
  :inputWidth="inputWidth"
31
31
  :minWidth="minWidth"
32
32
  :inputHeight="inputHeight"
@@ -53,12 +53,12 @@
53
53
  >
54
54
  <icon name="current_variant" size="20px" />
55
55
  </icon-wrapper>
56
- <icon-wrapper v-if="isError" size="16px">
56
+ <icon-wrapper v-if="hasError" size="16px">
57
57
  <icon name="warning" size="16px" cursor="default" />
58
58
  </icon-wrapper>
59
59
  </icon-container>
60
- <error-message v-if="isError && errorMessage">{{
61
- errorMessage
60
+ <error-message v-if="hasError && hasErrorMessage">{{
61
+ dynamicErrorMessage
62
62
  }}</error-message>
63
63
  </input-error-wrapper>
64
64
  </input-wrapper>
@@ -70,6 +70,7 @@ import styled from 'vue3-styled-components'
70
70
  import InfoText from '../../infoText'
71
71
  import Icon from '../../icon'
72
72
  import ErrorMessage from '../../errorMessage'
73
+ import InputValidations from '../../../mixins/inputValidations.js'
73
74
 
74
75
  const Container = styled.div`
75
76
  width: 100%;
@@ -229,11 +230,25 @@ export default {
229
230
  InputErrorWrapper,
230
231
  optionalLabel
231
232
  },
233
+ mixins: [InputValidations],
232
234
  data() {
233
235
  return {
234
236
  inputTypeData: 'text'
235
237
  }
236
238
  },
239
+ computed: {
240
+ hasError() {
241
+ return this.isError || this.error
242
+ },
243
+ hasErrorMessage() {
244
+ return (
245
+ (this.errorMessage && this.errorMessage.length > 0) || this.errMessage
246
+ )
247
+ },
248
+ dynamicErrorMessage() {
249
+ return this.errMessage || this.errorMessage
250
+ }
251
+ },
237
252
  props: {
238
253
  placeholder: {
239
254
  required: false,
@@ -336,6 +351,7 @@ export default {
336
351
  this.$emit('input-change', event.target.value)
337
352
  },
338
353
  onInputBlur($event) {
354
+ this.validateInput($event.target.value)
339
355
  this.$emit('input-blur', $event.target.value)
340
356
  },
341
357
  toggleShowPassword() {
@@ -3,6 +3,7 @@
3
3
  <radio-wrapper v-for="(item, index) in options" :key="item.value">
4
4
  <label-container
5
5
  :size="size"
6
+ :hasLabel="item.label"
6
7
  :isDisabled="item.disabled"
7
8
  :isChecked="selectedOption === item.value"
8
9
  :checkmarkColor="checkmarkColor"
@@ -17,7 +18,7 @@
17
18
  :data-id="`radio_button_${dataId}_option_${item.value}`"
18
19
  />
19
20
  <span class="checkmark"></span>
20
- <label-text :isDisabled="item.disabled">{{ item.label }}</label-text>
21
+ <label-text :isDisabled="item.disabled" v-if="item.label">{{ item.label }}</label-text>
21
22
  <info-text v-if="item.infoText" :text="item.infoText" size="16px" />
22
23
  </label-container>
23
24
  <image-container v-if="item.img">
@@ -98,7 +99,9 @@ const containerProps = {
98
99
  const LabelContainer = styled('label', containerProps)`
99
100
  display: grid;
100
101
  grid-template-columns: auto 1fr auto;
101
- grid-gap: 15px;
102
+ grid-gap: ${(props) =>
103
+ props.hasLabel
104
+ ? '15px' : 0 };
102
105
  align-items: center;
103
106
  color: ${(props) =>
104
107
  props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.black};
@@ -42,6 +42,7 @@
42
42
  :fontColor="
43
43
  buttonFontColor || colorMode == 'dark' ? 'white' : 'black'
44
44
  "
45
+ :fontSize="fontSize"
45
46
  :hasError="hasError"
46
47
  :hasNoPadding="isSearchBarVisible || !hasSelectButtonPadding"
47
48
  :disabled="disabled"
@@ -69,6 +70,7 @@
69
70
  buttonFontColor || colorMode == 'dark' ? 'white' : 'black'
70
71
  "
71
72
  :value="textSearch"
73
+ :inputWidth="computedWidth"
72
74
  @keydown.stop="onKeyDown"
73
75
  @input-change="searchChange"
74
76
  @click.stop
@@ -145,6 +147,7 @@
145
147
  // <Select
146
148
  // hoverDropdown="true"
147
149
  // selectWidth="100%"
150
+ // minWidth="220px"
148
151
  // optionWidth="50%"
149
152
  // label="that is a label"
150
153
  // alignItems="vertical"
@@ -376,6 +379,8 @@ const inputAttrs = {
376
379
  const InputWrapper = styled('div', inputAttrs)`
377
380
  position: ${(props) => (props.noRelative ? 'static' : 'relative')};
378
381
  display: grid;
382
+ width: 100%;
383
+ min-width: ${(props) => (props.minWidth ? props.minWidth : '150px')};
379
384
  align-items: center;
380
385
  gap: 8px;
381
386
  grid-template-columns: ${(props) =>
@@ -426,6 +431,12 @@ export default {
426
431
  required: false,
427
432
  default: '100%'
428
433
  },
434
+ minWidth: {
435
+ required: false
436
+ },
437
+ maxWidth: {
438
+ required: false
439
+ },
429
440
  selectHeight: {
430
441
  type: String,
431
442
  required: false,
@@ -439,9 +450,6 @@ export default {
439
450
  required: false,
440
451
  default: '36px'
441
452
  },
442
- minWidth: {
443
- required: false
444
- },
445
453
  optionWidth: {
446
454
  required: false,
447
455
  default: null
@@ -471,6 +479,10 @@ export default {
471
479
  dropdownFontColor: {
472
480
  required: false
473
481
  },
482
+ dropDownArrowVisible: {
483
+ required: false,
484
+ default: true
485
+ },
474
486
  caretColor: {
475
487
  required: false
476
488
  },
@@ -517,6 +529,10 @@ export default {
517
529
  type: Boolean,
518
530
  default: false
519
531
  },
532
+ leftPadding: {
533
+ type: String,
534
+ default: '15px'
535
+ },
520
536
  tablePaddingLeft: {
521
537
  required: false
522
538
  },
@@ -556,7 +572,7 @@ export default {
556
572
  data() {
557
573
  return {
558
574
  selectedValue: null,
559
- paddingLeft: this.isDraggable ? '30px' : '15px',
575
+ paddingLeft: this.isDraggable ? '30px' : this.leftPadding,
560
576
  isDropdownOpen: false,
561
577
  isActive: false,
562
578
  textSearch: '',
@@ -600,16 +616,14 @@ export default {
600
616
  toggleCaretDropdown() {
601
617
  this.isDropdownOpen = !this.isDropdownOpen
602
618
  },
603
- openDropdown() {
604
- this.focus()
605
- this.isDropdownOpen = true
606
- },
607
619
  closeDropdown() {
608
620
  this.blur()
621
+ this.clearSearch()
609
622
  this.isDropdownOpen = false
610
623
  },
611
624
  clearSearch() {
612
625
  this.textSearch = ''
626
+ this.searchChange('')
613
627
  },
614
628
  optionSelected(e) {
615
629
  this.selectedValue = e
@@ -646,6 +660,7 @@ export default {
646
660
 
647
661
  return
648
662
  }
663
+
649
664
  el.style.display = 'inherit'
650
665
  })
651
666
  },
@@ -757,6 +772,7 @@ export default {
757
772
  observeSelectWidth() {
758
773
  if (!this.$refs.select) return
759
774
  this.selectResizeObserver = new ResizeObserver(() =>
775
+ // eslint-disable-next-line vue/valid-next-tick
760
776
  this.$nextTick(() => this.getDropdownWidth())
761
777
  )
762
778
  this.selectResizeObserver.observe(this.$refs.dropdown.$el)
@@ -783,9 +799,6 @@ export default {
783
799
  this.$refs.dropdown.$el.scrollTop = topPos
784
800
  }
785
801
  }
786
- },
787
- clearSearch() {
788
- this.textSearch = ''
789
802
  }
790
803
  },
791
804
  computed: {
@@ -805,6 +818,15 @@ export default {
805
818
  this.isDropdownOpen
806
819
  )
807
820
  },
821
+ computedWidth() {
822
+ function removePX(item) {
823
+ return Number(item.replace('px', ''))
824
+ }
825
+
826
+ return this.selectWidth === '100%'
827
+ ? '100%'
828
+ : removePX(this.selectWidth) - removePX(CARET_WIDTH) + 'px'
829
+ },
808
830
  getOptionWidth() {
809
831
  if (this.optionWidth) return this.optionWidth
810
832
 
@@ -838,6 +860,7 @@ export default {
838
860
  },
839
861
  async isDropdownOpen(val) {
840
862
  if (val) {
863
+ this.$emit('on-dropdown-open')
841
864
  setTimeout(() => {
842
865
  this.isClickOutsideActive = true
843
866
  }, 10)
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <Modal :is-open="isOpen" @on-close="closeModal">
3
+ <modalContainer>
4
+ <modalTitle v-if="$slots.title">
5
+ <slot name="title"></slot>
6
+ </modalTitle>
7
+ <textContainer v-if="$slots.body">
8
+ <slot name="body"></slot>
9
+ </textContainer>
10
+ <buttonContainer v-if="$slots.buttons">
11
+ <slot name="buttons"></slot>
12
+ </buttonContainer>
13
+ </modalContainer>
14
+ </Modal>
15
+ </template>
16
+ <script>
17
+ import styled from 'vue3-styled-components'
18
+ import Modal from '../modal'
19
+ const modalContainer = styled.div`
20
+ width: 450px;
21
+ min-height: 205px;
22
+ padding: 40px 40px 30px 40px;
23
+ `
24
+ const modalTitle = styled.div`
25
+ color: ${(props) => props.theme.colors.black};
26
+ font-family: ${(props) => props.theme.fonts.mainFont};
27
+ font-size: 18px;
28
+ font-style: normal;
29
+ font-weight: 700;
30
+ line-height: 120%;
31
+ text-transform: uppercase;
32
+ `
33
+ const buttonContainer = styled.div`
34
+ display: inline-flex;
35
+ align-items: flex-start;
36
+ gap: 20px;
37
+ `
38
+ const textContainer = styled.div`
39
+ color: ${(props) => props.theme.colors.black};
40
+ font-family: ${(props) => props.theme.fonts.mainFont};
41
+ font-size: 13px;
42
+ font-style: normal;
43
+ font-weight: 400;
44
+ line-height: normal;
45
+ padding: 30px 0px;
46
+ white-space: pre-wrap;
47
+ `
48
+ export default {
49
+ name: 'actionModal',
50
+ props: ['isOpen'],
51
+ components: {
52
+ Modal,
53
+ modalContainer,
54
+ modalTitle,
55
+ buttonContainer,
56
+ textContainer
57
+ },
58
+ methods: {
59
+ closeModal() {
60
+ this.$emit('on-close')
61
+ }
62
+ }
63
+ }
64
+ </script>
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <ActionModal :is-open="isOpen" @on-close="closeModal">
3
+ <modalContainer>
4
+ <template #title>
5
+ <slot name="title" />
6
+ </template>
7
+ <template #body>
8
+ <slot name="body" />
9
+ </template>
10
+ <template #buttons>
11
+ <buttonContainer>
12
+ <Button type="primary" :text="$gettext('Got it')" minWidth="150px" @click="closeModal" />
13
+ </buttonContainer>
14
+ </template>
15
+
16
+ </modalContainer>
17
+ </ActionModal>
18
+ </template>
19
+ <script>
20
+
21
+ import styled from 'vue3-styled-components'
22
+ import ActionModal from '../actionModal'
23
+ import Button from '../../buttons/mainButton'
24
+ const modalContainer = styled.div`
25
+ width: 450px;
26
+ min-height: 205px;
27
+ padding: 40px 40px 30px 40px;
28
+ `
29
+ const buttonContainer = styled.div`
30
+ display: inline-flex;
31
+ align-items: flex-start;
32
+ gap: 20px;
33
+ `
34
+ export default {
35
+ name: 'InfoModal',
36
+ props: ['isOpen'],
37
+ components: {
38
+ modalContainer,
39
+ buttonContainer,
40
+ ActionModal,
41
+ Button
42
+ },
43
+ methods: {
44
+ closeModal() {
45
+ this.$emit('on-close')
46
+ }
47
+ }
48
+ }
49
+ </script>
@@ -119,7 +119,7 @@ const ModalContainer = styled.div`
119
119
  `
120
120
 
121
121
  export default {
122
- name: 'modal',
122
+ name: 'Modal',
123
123
  components: {
124
124
  PageWrapper,
125
125
  ModalContainer,