@burh/nuxt-core 1.0.340 → 1.0.342

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 (29) hide show
  1. package/assets/sass/burh-ds/_global.scss +323 -323
  2. package/assets/sass/burh-ds/content/_interface-spa.scss +306 -306
  3. package/assets/sass/burh-ds/content/_main-content.scss +25 -25
  4. package/components/argon-core/BaseDropdown.vue +114 -114
  5. package/components/argon-core/LoadingPanel.vue +26 -26
  6. package/components/argon-core/Modal.vue +183 -183
  7. package/components/burh-ds/Cards/BaseCard.vue +190 -188
  8. package/components/burh-ds/Cards/FeatureBusinessCard.vue +74 -74
  9. package/components/burh-ds/Cards/PerformanceCard.vue +81 -81
  10. package/components/burh-ds/Cards/RecruitmentCard.vue +229 -229
  11. package/components/burh-ds/Curriculum/UserCurriculum/index.vue +245 -245
  12. package/components/burh-ds/Dropdown/JobStatusDropdown.vue +153 -146
  13. package/components/burh-ds/Filters/BaseFilterContainer.vue +91 -71
  14. package/components/burh-ds/Filters/FilterWithDropdown.vue +228 -169
  15. package/components/burh-ds/Inputs/SearchInput.vue +64 -64
  16. package/components/burh-ds/Modals/NewUserModal.vue +87 -87
  17. package/components/burh-ds/Modals/SharedModal.vue +270 -270
  18. package/components/burh-ds/Modals/UniversityAccessModal.vue +134 -134
  19. package/components/burh-ds/Skeleton/BaseCardUniversity.vue +79 -79
  20. package/components/burh-ds/Skeleton/BaseCardUser.vue +84 -84
  21. package/components/burh-ds/Skeleton/BaseCourseInfo.vue +71 -71
  22. package/components/burh-ds/Skeleton/Cards.vue +86 -86
  23. package/components/burh-ds/Skeleton/Home.vue +100 -100
  24. package/components/burh-ds/Skeleton/RecruitmentCard.vue +169 -169
  25. package/components/burh-ds/Skeleton/SkeletonAnimate.vue +96 -96
  26. package/environment.js +221 -221
  27. package/nuxt.config.js +207 -207
  28. package/package.json +1 -1
  29. package/plugins/vClickOutside.js +4 -4
@@ -1,169 +1,228 @@
1
- <template>
2
- <div
3
- v-click-outside="dropDownOutsideClick"
4
- class="filter__container"
5
- >
6
- <button
7
- class="filter__item"
8
- :class="{'filter__item--active': (shouldOpenDropdown) ? isDropdownOpen : isActive}"
9
- @click="handleFilterClick()"
10
- >
11
- <div
12
- v-if="status != ''"
13
- class="status"
14
- :class="`status--${status}`"
15
- ></div>
16
- <p>{{ text }}</p>
17
- </button>
18
-
19
- <div
20
- v-if="isDropdownOpen"
21
- class="filter__dropdown"
22
- >
23
- <div class="filter__dropdown__content">
24
- <slot name="dropdown-content" />
25
- </div>
26
- </div>
27
- </div>
28
- </template>
29
-
30
- <script>
31
- export default {
32
- name: 'filter-with-dropdown',
33
- props: {
34
- text: {
35
- type: String,
36
- default: ''
37
- },
38
- isActive: {
39
- type: Boolean,
40
- default: false
41
- },
42
- shouldOpenDropdown: {
43
- type: Boolean,
44
- default: false
45
- },
46
- status: {
47
- type: String,
48
- default: ''
49
- }
50
- },
51
- data() {
52
- return {
53
- isDropdownOpen: false
54
- };
55
- },
56
- methods: {
57
- handleFilterClick() {
58
- if (this.shouldOpenDropdown === true) {
59
- this.toggleDropdown();
60
- } else {
61
- this.$emit('filter-click');
62
- }
63
- },
64
- toggleDropdown() {
65
- this.isDropdownOpen = !this.isDropdownOpen;
66
- },
67
- dropDownOutsideClick() {
68
- if (this.isDropdownOpen) {
69
- this.isDropdownOpen = false;
70
- }
71
- }
72
- },
73
- };
74
- </script>
75
-
76
- <style lang="scss" scoped>
77
- @keyframes dropdownAnimation {
78
- from {
79
- margin-top: -5px;
80
- opacity: 0;
81
- }
82
- to {
83
- margin-top: 5px;
84
- opacity: 1;
85
- }
86
- }
87
-
88
- .filter__container {
89
- position: relative;
90
- z-index: 200;
91
- .filter__dropdown {
92
- position: absolute;
93
- width: 98%;
94
- max-width: 350px;
95
- min-width: 350px;
96
- left: calc(50% + (10px / 2));
97
- transform: translateX(-50%);
98
- margin-top: 10px;
99
- box-shadow: 0 0 20px rgba(0,0,0,0.08);
100
- border-radius: 4px;
101
- background: #fff;
102
- animation: 0.75s dropdownAnimation cubic-bezier(1,0,.09,1.01);
103
- border: 1px solid #e9ecef;
104
- &__content {
105
- padding: 20px;
106
- }
107
- }
108
-
109
- .filter__item {
110
- cursor: pointer;
111
- user-select: none;
112
- padding: 5px 20px;
113
- border-radius: 100px;
114
- margin-right: 10px;
115
- border: 1px solid #E9ECEF;
116
- transition: background 0.5s;
117
- display: flex;
118
- align-items: center;
119
- background: transparent;
120
- &:focus {
121
- outline: none;
122
- background: rgba(31, 140, 235, 0.2);
123
- border-color: transparent;
124
- p {
125
- color: #5865F2;
126
- }
127
- }
128
- &:not(.filter__item--active):hover {
129
- background: rgba(174, 182, 190, 0.2);
130
- p {
131
- color: #1D364B;
132
- }
133
- }
134
- p {
135
- margin: 0;
136
- font-weight: 400;
137
- color: #AEB6BE;
138
- transition: color 0.5s;
139
- }
140
- &--active {
141
- background: rgba(31, 140, 235, 0.2);
142
- border-color: transparent;
143
- p {
144
- color: #5865F2;
145
- }
146
- }
147
- .status {
148
- width: 10px;
149
- height: 10px;
150
- background: #AEB6BE;
151
- display: block;
152
- border-radius: 100px;
153
- margin-right: 10px;
154
- &--open {
155
- background: #3AC089;
156
- }
157
- &--awaiting {
158
- background: #FFCF02;
159
- }
160
- &--paused {
161
- background: #FF539D;
162
- }
163
- &--ended {
164
- background: #0C95FC;
165
- }
166
- }
167
- }
168
- }
169
- </style>
1
+ <template>
2
+ <div>
3
+ <div
4
+ v-if="isDropdownOpen"
5
+ id="backgroundFade"
6
+ ></div>
7
+ <div
8
+ v-click-outside="dropDownOutsideClick"
9
+ class="filter__container"
10
+ :class="{'filter__container__dropdown--open': isDropdownOpen}"
11
+ ref="filterContainer"
12
+ >
13
+ <button
14
+ class="filter__item"
15
+ :class="{'filter__item--active': isDropdownOpen || isActive}"
16
+ @click="handleFilterClick()"
17
+ >
18
+ <div
19
+ v-if="status != ''"
20
+ class="status"
21
+ :class="`status--${status}`"
22
+ ></div>
23
+ <p>{{ text }}</p>
24
+ </button>
25
+
26
+ <div
27
+ v-show="isDropdownOpen"
28
+ class="filter__dropdown"
29
+ ref="dropdownContainer"
30
+ >
31
+ <div class="filter__dropdown__content">
32
+ <slot name="dropdown-content" />
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </template>
38
+
39
+ <script>
40
+ export default {
41
+ name: 'filter-with-dropdown',
42
+ props: {
43
+ text: {
44
+ type: String,
45
+ default: ''
46
+ },
47
+ isActive: {
48
+ type: Boolean,
49
+ default: false
50
+ },
51
+ shouldOpenDropdown: {
52
+ type: Boolean,
53
+ default: false
54
+ },
55
+ status: {
56
+ type: String,
57
+ default: ''
58
+ }
59
+ },
60
+ data() {
61
+ return {
62
+ isDropdownOpen: false
63
+ };
64
+ },
65
+ watch: {
66
+ isDropdownOpen(value) {
67
+ if (value === true) {
68
+ if (this.shouldOpenDropdown) {
69
+ const filterContainer = this.$refs.filterContainer;
70
+ const dropdownContainer = this.$refs.dropdownContainer;
71
+
72
+ dropdownContainer.classList.remove('dropdown-left');
73
+ dropdownContainer.classList.remove('dropdown-right');
74
+
75
+ if (((filterContainer.offsetLeft - (350 / 2)) - 20) < 0) {
76
+ dropdownContainer.classList.add('dropdown-left');
77
+ }
78
+
79
+ if (((window.innerWidth - filterContainer.offsetLeft - filterContainer.offsetWidth) - (350 / 2) - 20) < 0) {
80
+ dropdownContainer.classList.add('dropdown-right');
81
+ }
82
+ }
83
+ }
84
+ },
85
+ },
86
+ methods: {
87
+ handleFilterClick() {
88
+ if (this.shouldOpenDropdown === true) {
89
+ this.toggleDropdown();
90
+ } else {
91
+ this.$emit('filter-click');
92
+ }
93
+ },
94
+ toggleDropdown() {
95
+ this.isDropdownOpen = !this.isDropdownOpen;
96
+ },
97
+ dropDownOutsideClick() {
98
+ if (this.isDropdownOpen) {
99
+ this.isDropdownOpen = false;
100
+ }
101
+ }
102
+ }
103
+ };
104
+ </script>
105
+
106
+ <style lang="scss" scoped>
107
+ @keyframes fadeIn {
108
+ from { opacity: 0; }
109
+ to { opacity: 1; }
110
+ }
111
+
112
+ @keyframes dropdownAnimation {
113
+ from {
114
+ margin-top: -5px;
115
+ opacity: 0;
116
+ }
117
+ to {
118
+ margin-top: 10px;
119
+ opacity: 1;
120
+ }
121
+ }
122
+
123
+ #backgroundFade {
124
+ position: fixed;
125
+ left: 0;
126
+ top: 0;
127
+ width: 100vw;
128
+ height: 100vh;
129
+ background: rgba(255, 255, 255, 0.6);
130
+ z-index: 200;
131
+ animation: 0.5s fadeIn;
132
+ }
133
+
134
+ .filter__container__dropdown--open {
135
+ z-index: 210!important;
136
+ }
137
+
138
+ .filter__container {
139
+ position: relative;
140
+ z-index: 100;
141
+ margin-bottom: 10px;
142
+ .filter__dropdown {
143
+ position: absolute;
144
+ width: 350px;
145
+ left: calc(50% + (10px / 2));
146
+ transform: translateX(-50%);
147
+ margin-top: 10px;
148
+ box-shadow: 0 0 20px rgba(0,0,0,0.08);
149
+ border-radius: 4px;
150
+ background: #fff;
151
+ animation: 0.5s dropdownAnimation cubic-bezier(0.65, 0.05, 0.36, 1);
152
+ border: 1px solid #e9ecef;
153
+ &.dropdown-left {
154
+ transform: none;
155
+ left: 0;
156
+ }
157
+ &.dropdown-right {
158
+ transform: none;
159
+ left: initial;
160
+ right: 10px;
161
+ }
162
+ &__content {
163
+ padding: 20px;
164
+ }
165
+ }
166
+
167
+ .filter__item {
168
+ cursor: pointer;
169
+ user-select: none;
170
+ padding: 5px 20px;
171
+ border-radius: 100px;
172
+ margin-right: 10px;
173
+ border: 1px solid #E9ECEF;
174
+ transition: background 0.5s;
175
+ display: flex;
176
+ align-items: center;
177
+ background: transparent;
178
+ &:focus {
179
+ outline: none;
180
+ background: rgba(31, 140, 235, 0.2);
181
+ border-color: transparent;
182
+ p {
183
+ color: #5865F2;
184
+ }
185
+ }
186
+ &:not(.filter__item--active):hover {
187
+ background: rgba(174, 182, 190, 0.2);
188
+ p {
189
+ color: #1D364B;
190
+ }
191
+ }
192
+ p {
193
+ margin: 0;
194
+ font-weight: 400;
195
+ color: #AEB6BE;
196
+ transition: color 0.5s;
197
+ white-space: nowrap;
198
+ }
199
+ &--active {
200
+ background: rgba(31, 140, 235, 0.2);
201
+ border-color: transparent;
202
+ p {
203
+ color: #5865F2;
204
+ }
205
+ }
206
+ .status {
207
+ width: 10px;
208
+ height: 10px;
209
+ background: #AEB6BE;
210
+ display: block;
211
+ border-radius: 100px;
212
+ margin-right: 10px;
213
+ &--open {
214
+ background: #3AC089;
215
+ }
216
+ &--awaiting {
217
+ background: #FFCF02;
218
+ }
219
+ &--paused {
220
+ background: #FF539D;
221
+ }
222
+ &--ended {
223
+ background: #0C95FC;
224
+ }
225
+ }
226
+ }
227
+ }
228
+ </style>
@@ -1,64 +1,64 @@
1
- <template>
2
- <div class="input__container__icon">
3
- <label for="search">
4
- <i class="fas fa-search"></i>
5
- </label>
6
- <input type="text" name="search" id="search" :placeholder="placeholder" v-model="searchModel" @change="$emit('change')">
7
- </div>
8
- </template>
9
-
10
- <script>
11
- export default {
12
- name: 'search-input',
13
- props: {
14
- search: String,
15
- placeholder: {
16
- type: String,
17
- default: 'Busque por vaga'
18
- }
19
- },
20
- data() {
21
- return {
22
- searchModel: null
23
- };
24
- },
25
- mounted() {
26
- this.searchModel = this.search;
27
- },
28
- watch: {
29
- search(value) {
30
- this.searchModel = value;
31
- },
32
- searchModel(value) {
33
- this.$emit('search', value);
34
- }
35
- }
36
- };
37
- </script>
38
-
39
- <style lang="scss" scoped>
40
- .input__container__icon {
41
- position: relative;
42
- display: flex;
43
- align-items: center;
44
- border-radius: 100px;
45
- max-width: 270px;
46
- overflow: hidden;
47
- border: 1px solid #E9ECEF;
48
- input {
49
- background: transparent;
50
- border: 0;
51
- outline: none;
52
- padding: 5px 0;
53
- width: 100%;
54
- }
55
- label {
56
- margin: 0;
57
- display: block;
58
- }
59
- i {
60
- padding: 0 10px;
61
- color: #AEB6BE;
62
- }
63
- }
64
- </style>
1
+ <template>
2
+ <div class="input__container__icon">
3
+ <label for="search">
4
+ <i class="fas fa-search"></i>
5
+ </label>
6
+ <input type="text" name="search" id="search" :placeholder="placeholder" v-model="searchModel" @change="$emit('change')">
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ name: 'search-input',
13
+ props: {
14
+ search: String,
15
+ placeholder: {
16
+ type: String,
17
+ default: 'Busque por vaga'
18
+ }
19
+ },
20
+ data() {
21
+ return {
22
+ searchModel: null
23
+ };
24
+ },
25
+ mounted() {
26
+ this.searchModel = this.search;
27
+ },
28
+ watch: {
29
+ search(value) {
30
+ this.searchModel = value;
31
+ },
32
+ searchModel(value) {
33
+ this.$emit('search', value);
34
+ }
35
+ }
36
+ };
37
+ </script>
38
+
39
+ <style lang="scss" scoped>
40
+ .input__container__icon {
41
+ position: relative;
42
+ display: flex;
43
+ align-items: center;
44
+ border-radius: 100px;
45
+ max-width: 270px;
46
+ overflow: hidden;
47
+ border: 1px solid #E9ECEF;
48
+ input {
49
+ background: transparent;
50
+ border: 0;
51
+ outline: none;
52
+ padding: 5px 0;
53
+ width: 100%;
54
+ }
55
+ label {
56
+ margin: 0;
57
+ display: block;
58
+ }
59
+ i {
60
+ padding: 0 10px;
61
+ color: #AEB6BE;
62
+ }
63
+ }
64
+ </style>