@burh/nuxt-core 1.0.208 → 1.0.210

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.
@@ -0,0 +1,175 @@
1
+ <template>
2
+ <article class="recruitment__card" @click="$emit('card-click')">
3
+ <header class="recruitment__card__header">
4
+ <div class="recruitment__card__header__status">
5
+ <p>SELECT</p>
6
+ </div>
7
+ <div class="recruitment__card__header__actions">
8
+ <button
9
+ class="action__item"
10
+ @click.stop.prevent="$emit('notes-click')"
11
+ >
12
+ <i class="far fa-comment-alt"></i>
13
+ </button>
14
+ <button
15
+ class="action__item"
16
+ @click.stop.prevent="$emit('share-click')"
17
+ >
18
+ <i class="fas fa-share-alt"></i>
19
+ </button>
20
+ </div>
21
+ </header>
22
+
23
+ <section class="recruitment__card__content">
24
+ <span class="recruitment__card__content__date">Publicada {{fromNow(job.published_at)}}</span>
25
+ <h2 class="recruitment__card__content__title">{{ job.title }}</h2>
26
+ <span class="recruitment__card__content__id">{{ job.id }}</span>
27
+
28
+ <div class="recruitment__card__info">
29
+ <p class="recruitment__card__info__text"><span>{{ job.info.applieds }}</span>Inscritos</p>
30
+ <p class="recruitment__card__info__text"><span>{{ job.info.positions }}</span>Posição</p>
31
+ <p class="recruitment__card__info__text"><span>{{ job.info.hireds }}</span>Contratados</p>
32
+ </div>
33
+ </section>
34
+
35
+ <footer class="recruitment__card__footer">
36
+ <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
37
+ <div class="recruitment__card__footer__images">
38
+ <img
39
+ v-for="(user, index) in job.team"
40
+ :key="index"
41
+ :src="user.image"
42
+ :alt="user.name"
43
+ >
44
+ </div>
45
+ </footer>
46
+
47
+ </article>
48
+ </template>
49
+
50
+ <script>
51
+ import moment from 'moment';
52
+ import 'moment/locale/pt-br';
53
+
54
+ export default {
55
+ name: 'recruitment-card',
56
+ props: {
57
+ job: {
58
+ type: Object,
59
+ default: () => []
60
+ }
61
+ },
62
+ methods: {
63
+ fromNow(date, format = 'YYYYMMDD') {
64
+ return moment(date, format).fromNow();
65
+ }
66
+ }
67
+ };
68
+ </script>
69
+
70
+ <style lang="scss" scoped>
71
+ .recruitment__card {
72
+ cursor: pointer;
73
+ background: #fff;
74
+ box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
75
+ padding: 20px;
76
+ border-radius: 4px;
77
+ transition: transform 0.25s;
78
+ &:hover {
79
+ transform: translateY(-5px);
80
+ }
81
+
82
+ &__header {
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: space-between;
86
+ padding: 5px 0;
87
+ &__actions {
88
+ display: flex;
89
+ align-items: center;
90
+ .action__item {
91
+ cursor: pointer;
92
+ width: 42px;
93
+ height: 42px;
94
+ border-radius: 100px;
95
+ transition: background 0.5s;
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ background: transparent;
100
+ border: 0;
101
+ position: relative;
102
+ &:hover {
103
+ background: rgba(0, 0, 0, 0.08);
104
+ }
105
+ &:focus {
106
+ outline: none;
107
+ box-shadow: none;
108
+ }
109
+ &:not(:first-child) {
110
+ margin-left: 5px;
111
+ }
112
+ }
113
+ }
114
+ }
115
+
116
+ &__content {
117
+ &__date {
118
+ font-size: 0.875rem;
119
+ font-weight: 400;
120
+ color: #AEB6BE;
121
+ }
122
+ &__title {
123
+ font-size: 1.275rem;
124
+ color: #1D364B;
125
+ margin-bottom: 0;
126
+ }
127
+ &__id {
128
+ font-size: 0.875rem;
129
+ font-weight: 600;
130
+ color: #525F7F;
131
+ }
132
+ }
133
+
134
+ &__info {
135
+ padding: 20px 0;
136
+ &__text {
137
+ margin-bottom: 0;
138
+ font-size: 1rem;
139
+ font-weight: 500;
140
+ span {
141
+ margin-right: 5px;
142
+ color: #1F8CEB;
143
+ }
144
+ }
145
+ }
146
+
147
+ &__footer {
148
+ border-top: 1px solid #E9E9E9;
149
+ padding-top: 10px;
150
+ &__title {
151
+ color: #525F7F;
152
+ font-size: 0.875rem;
153
+ font-weight: 600;
154
+ margin-bottom: 0;
155
+ }
156
+ &__images {
157
+ display: flex;
158
+ align-items: center;
159
+ user-select: none;
160
+ img {
161
+ $size: 32px;
162
+ display: block;
163
+ width: $size;
164
+ height: $size;
165
+ object-fit: cover;
166
+ border-radius: 100px;
167
+ border: 2px solid #fff;
168
+ &:not(:first-child) {
169
+ margin-left: -10px;
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
175
+ </style>
@@ -1,11 +1,29 @@
1
1
  <template>
2
2
  <base-header class="app-header" :type="'white'">
3
3
  <div class="row justify-content-center">
4
- <div class="col-6 my-auto">
5
- <h2 class="font-weight-bold display-3">{{name}}</h2>
4
+ <div
5
+ :class="{ 'images__container': images.length }"
6
+ class="col-6 my-auto header__container"
7
+ >
8
+ <slot name="header-top" />
9
+
10
+ <div class="header__content">
11
+ <h2 class="font-weight-bold display-3">{{name}}</h2>
12
+ <div class="images" v-if="images.length">
13
+ <img
14
+ v-for="(image, index) in images"
15
+ :key="index"
16
+ :src="image.src"
17
+ :alt="image.name"
18
+ >
19
+ </div>
20
+ </div>
21
+
6
22
  <span id="credits-amount" v-if="subheader">
7
23
  {{ subheader }} Créditos
8
24
  </span>
25
+
26
+ <slot name="header-bottom" />
9
27
  </div>
10
28
 
11
29
  <div class="col-6 d-flex justify-content-end align-items-center">
@@ -18,7 +36,7 @@
18
36
  </base-button>
19
37
  </el-tooltip>
20
38
 
21
- <slot name="buttons"></slot>
39
+ <slot name="buttons" />
22
40
  </div>
23
41
 
24
42
  <slot/>
@@ -44,12 +62,17 @@ export default {
44
62
  subheader: {
45
63
  type: Number,
46
64
  default: null
65
+ },
66
+ images: {
67
+ type: Array,
68
+ default: () => []
47
69
  }
48
70
  },
49
71
  };
50
72
  </script>
51
73
  <style lang="scss" scoped>
52
74
  #credits-amount {
75
+ margin: 0!important;
53
76
  min-width: 8em;
54
77
  margin: 1rem 1rem 1rem 0;
55
78
  padding: 0.25em 1em;
@@ -69,4 +92,42 @@ export default {
69
92
  padding-top: 1.25rem;
70
93
  box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15);
71
94
  }
95
+
96
+ .header__container {
97
+ display: flex;
98
+ flex-direction: column;
99
+ justify-content: center;
100
+ align-items: flex-start;
101
+ }
102
+
103
+ .images__container {
104
+ display: flex;
105
+ align-items: flex-start;
106
+ justify-content: center;
107
+ .header__content {
108
+ display: flex;
109
+ flex-direction: row;
110
+ h2 {
111
+ margin-bottom: 0;
112
+ }
113
+ .images {
114
+ margin-left: 10px;
115
+ display: flex;
116
+ align-items: center;
117
+ user-select: none;
118
+ img {
119
+ $size: 32px;
120
+ display: block;
121
+ width: $size;
122
+ height: $size;
123
+ object-fit: cover;
124
+ border-radius: 100px;
125
+ border: 2px solid #fff;
126
+ &:not(:first-child) {
127
+ margin-left: -10px;
128
+ }
129
+ }
130
+ }
131
+ }
132
+ }
72
133
  </style>
@@ -1,64 +1,64 @@
1
- <template>
2
- <client-only>
3
- <text-editor
4
- ref="editor"
5
- v-model="value"
6
- :config="editorConfig"
7
- />
8
- </client-only>
9
- </template>
10
-
11
- <script>
12
- export default {
13
- name: 'html-editor',
14
- components: {
15
- 'text-editor': () => { if (process.client) { return import('@blowstack/ckeditor-nuxt') } }
16
- },
17
- props: {
18
- value: {
19
- type: String,
20
- default: ''
21
- }
22
- },
23
- mounted() {
24
- import('@ckeditor/ckeditor5-build-classic/build/translations/pt-br')
25
- },
26
- data() {
27
- return {
28
- editorConfig: {
29
- language: 'pt-br',
30
- removePlugins: [
31
- 'Title',
32
- 'FontBackgroundColor',
33
- 'FontColor',
34
- 'FontFamily',
35
- 'FontSize',
36
- 'Subscript',
37
- 'Superscript',
38
- 'BlockQuote',
39
- 'PageBreak'
40
- ],
41
- mediaEmbed: {
42
- previewsInData: true
43
- }
44
- }
45
- }
46
- },
47
- watch: {
48
- value() {
49
- this.$emit("input", this.value)
50
- }
51
- }
52
- };
53
- </script>
54
-
55
- <style lang="scss">
56
- .ck-editor {
57
- margin-bottom: 20px!important;
58
- }
59
- .ck-content {
60
- min-height: 200px;
61
- max-height: 500px;
62
- overflow-y: auto;
63
- }
64
- </style>
1
+ <template>
2
+ <client-only>
3
+ <text-editor
4
+ ref="editor"
5
+ v-model="value"
6
+ :config="editorConfig"
7
+ />
8
+ </client-only>
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ name: 'html-editor',
14
+ components: {
15
+ 'text-editor': () => { if (process.client) { return import('@blowstack/ckeditor-nuxt') } }
16
+ },
17
+ props: {
18
+ value: {
19
+ type: String,
20
+ default: ''
21
+ }
22
+ },
23
+ mounted() {
24
+ import('@ckeditor/ckeditor5-build-classic/build/translations/pt-br')
25
+ },
26
+ data() {
27
+ return {
28
+ editorConfig: {
29
+ language: 'pt-br',
30
+ removePlugins: [
31
+ 'Title',
32
+ 'FontBackgroundColor',
33
+ 'FontColor',
34
+ 'FontFamily',
35
+ 'FontSize',
36
+ 'Subscript',
37
+ 'Superscript',
38
+ 'BlockQuote',
39
+ 'PageBreak'
40
+ ],
41
+ mediaEmbed: {
42
+ previewsInData: true
43
+ }
44
+ }
45
+ }
46
+ },
47
+ watch: {
48
+ value() {
49
+ this.$emit("input", this.value)
50
+ }
51
+ }
52
+ };
53
+ </script>
54
+
55
+ <style lang="scss">
56
+ .ck-editor {
57
+ margin-bottom: 20px!important;
58
+ }
59
+ .ck-content {
60
+ min-height: 200px;
61
+ max-height: 500px;
62
+ overflow-y: auto;
63
+ }
64
+ </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.208",
3
+ "version": "1.0.210",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {