@bildvitta/quasar-ui-asteroid 3.5.0 → 3.6.0-beta.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 +1 -1
- package/src/components/app-menu/QasAppMenu.vue +1 -1
- package/src/components/badge/QasBadge.vue +34 -0
- package/src/components/badge/QasBadge.yml +28 -0
- package/src/components/date-time-input/QasDateTimeInput.vue +27 -6
- package/src/components/filters/QasFilters.vue +80 -65
- package/src/components/search-box/QasSearchBox.vue +0 -1
- package/src/components/search-box/QasSearchBox.yml +1 -1
- package/src/components/select/QasSelect.vue +0 -1
- package/src/components/select/QasSelect.yml +1 -1
- package/src/components/{tabs-generator/private/PvTabsGeneratorStatus.vue → status/QasStatus.vue} +4 -4
- package/src/components/status/QasStatus.yml +10 -0
- package/src/components/tabs-generator/QasTabsGenerator.vue +3 -3
- package/src/components/text-truncate/QasTextTruncate.vue +24 -9
- package/src/css/variables/typography.scss +11 -11
- package/src/index.scss +1 -1
- package/src/vue-plugin.js +6 -0
package/package.json
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<q-badge v-bind="$props" :aria-multiline="multiLine" class="q-px-sm q-py-xs text-caption">
|
|
3
|
+
<slot />
|
|
4
|
+
</q-badge>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script>
|
|
8
|
+
export default {
|
|
9
|
+
name: 'QasBadge',
|
|
10
|
+
|
|
11
|
+
inheritAttrs: false,
|
|
12
|
+
|
|
13
|
+
props: {
|
|
14
|
+
color: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: 'light-blue-2'
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
label: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: ''
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
multiLine: {
|
|
25
|
+
type: Boolean
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
textColor: {
|
|
29
|
+
type: String,
|
|
30
|
+
default: 'grey-9'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
</script>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type: component
|
|
2
|
+
|
|
3
|
+
meta:
|
|
4
|
+
desc: Componente wrapper do QBadge do quasar.
|
|
5
|
+
|
|
6
|
+
props:
|
|
7
|
+
color:
|
|
8
|
+
desc: Cor da badge.
|
|
9
|
+
default: light-blue-2
|
|
10
|
+
type: String
|
|
11
|
+
|
|
12
|
+
label:
|
|
13
|
+
desc: Texto do badge.
|
|
14
|
+
type: String
|
|
15
|
+
|
|
16
|
+
multi-line:
|
|
17
|
+
desc: Habilita o texto a quebrar.
|
|
18
|
+
default: false
|
|
19
|
+
type: Boolean
|
|
20
|
+
|
|
21
|
+
text-color:
|
|
22
|
+
desc: Cor do texto.
|
|
23
|
+
default: grey-9
|
|
24
|
+
type: String
|
|
25
|
+
|
|
26
|
+
slots:
|
|
27
|
+
default:
|
|
28
|
+
desc: Slot do conteúdo do badge.
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<qas-input ref="input" v-bind="attributes" v-model="currentValue" :unmasked-value="false" @blur="validateDateTimeOnBlur" @focus="resetError" @update:model-value="updateModelValue">
|
|
3
3
|
<template #append>
|
|
4
|
-
<
|
|
4
|
+
<qas-btn v-if="!useTimeOnly" color="grey-9" dense :disable="$attrs.readonly" flat icon="sym_r_event" rounded>
|
|
5
5
|
<q-popup-proxy ref="dateProxy" transition-hide="scale" transition-show="scale">
|
|
6
|
-
<q-date v-model="currentValue" v-bind="
|
|
6
|
+
<q-date v-model="currentValue" v-bind="defaultDateProps" :mask="maskDate" @update:model-value="updateModelValue" />
|
|
7
7
|
</q-popup-proxy>
|
|
8
|
-
</
|
|
8
|
+
</qas-btn>
|
|
9
9
|
|
|
10
|
-
<
|
|
10
|
+
<qas-btn v-if="!useDateOnly" class="q-ml-sm" color="grey-9" dense :disable="$attrs.readonly" flat icon="sym_r_access_time" rounded>
|
|
11
11
|
<q-popup-proxy ref="timeProxy" transition-hide="scale" transition-show="scale">
|
|
12
|
-
<q-time v-model="currentValue" v-bind="
|
|
12
|
+
<q-time v-model="currentValue" v-bind="defaultTimeProps" format24h :mask="maskDate" @update:model-value="updateModelValue" />
|
|
13
13
|
</q-popup-proxy>
|
|
14
|
-
</
|
|
14
|
+
</qas-btn>
|
|
15
15
|
</template>
|
|
16
16
|
</qas-input>
|
|
17
17
|
</template>
|
|
@@ -88,6 +88,27 @@ export default {
|
|
|
88
88
|
}
|
|
89
89
|
},
|
|
90
90
|
|
|
91
|
+
defaultDateProps () {
|
|
92
|
+
return {
|
|
93
|
+
...this.defaultDateTimeProps,
|
|
94
|
+
...this.dateProps
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
defaultTimeProps () {
|
|
99
|
+
return {
|
|
100
|
+
...this.defaultDateTimeProps,
|
|
101
|
+
...this.timeProps
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
defaultDateTimeProps () {
|
|
106
|
+
return {
|
|
107
|
+
readonly: this.$attrs.readonly,
|
|
108
|
+
disable: this.$attrs.disable
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
|
|
91
112
|
inputElement () {
|
|
92
113
|
return this.$refs.input
|
|
93
114
|
},
|
|
@@ -4,44 +4,46 @@
|
|
|
4
4
|
<div v-if="showSearch" class="col-12 col-md-6">
|
|
5
5
|
<slot :filter="filter" name="search">
|
|
6
6
|
<q-form v-if="useSearch" @submit.prevent="filter()">
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<div v-else-if="hasFetchError" class="q-pa-xl text-center">
|
|
23
|
-
<q-icon color="negative" name="sym_r_warning" size="2em" />
|
|
24
|
-
</div>
|
|
25
|
-
|
|
26
|
-
<q-form v-else class="q-gutter-y-md q-pa-md" @submit.prevent="filter()">
|
|
27
|
-
<div v-for="(field, index) in fields" :key="index">
|
|
28
|
-
<qas-field v-model="filters[field.name]" :data-cy="`filters-${field.name}-field`" :field="field" v-bind="fieldsProps[field.name]" />
|
|
7
|
+
<div class="qas-filters__input-content">
|
|
8
|
+
<qas-input v-model="search" class="bg-white q-px-sm rounded-borders-sm shadow-2" data-cy="filters-search-input" :debounce="debounce" dense hide-bottom-space input-class="ellipsis text-grey-8" :outlined="false" :placeholder="searchPlaceholder" type="search">
|
|
9
|
+
<template #prepend>
|
|
10
|
+
<q-icon v-if="useSearchOnType" color="grey-8" name="sym_r_search" />
|
|
11
|
+
<qas-btn v-else color="grey-9" flat icon="sym_r_search" padding="0" @click="filter()" />
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<template #append>
|
|
15
|
+
<qas-btn v-if="hasSearch" class="q-mr-sm" color="grey-9" flat icon="sym_r_clear" padding="0" size="sm" @click="clearSearch" />
|
|
16
|
+
|
|
17
|
+
<qas-btn v-if="useFilterButton" :color="filterButtonColor" data-cy="filters-btn" flat icon="sym_r_tune" padding="0">
|
|
18
|
+
<q-menu anchor="center right" class="full-width" max-width="270px" self="top right">
|
|
19
|
+
<div v-if="isFetching" class="q-pa-xl text-center">
|
|
20
|
+
<q-spinner color="grey" size="2em" />
|
|
29
21
|
</div>
|
|
30
22
|
|
|
31
|
-
<div class="q-
|
|
32
|
-
<
|
|
33
|
-
|
|
23
|
+
<div v-else-if="hasFetchError" class="q-pa-xl text-center">
|
|
24
|
+
<q-icon color="negative" name="sym_r_warning" size="2em" />
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<q-form v-else class="q-gutter-y-md q-pa-md" @submit.prevent="filter()">
|
|
28
|
+
<div v-for="(field, index) in fields" :key="index">
|
|
29
|
+
<qas-field v-model="filters[field.name]" :data-cy="`filters-${field.name}-field`" :field="field" v-bind="fieldsProps[field.name]" />
|
|
34
30
|
</div>
|
|
35
31
|
|
|
36
|
-
<div class="col-
|
|
37
|
-
<
|
|
32
|
+
<div class="q-col-gutter-x-md q-mt-xl row">
|
|
33
|
+
<div class="col-6">
|
|
34
|
+
<qas-btn class="full-width" data-cy="filters-clear-btn" label="Limpar" outline size="12px" @click="clearFilters" />
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<div class="col-6">
|
|
38
|
+
<qas-btn class="full-width" color="primary" data-cy="filters-submit-btn" label="Filtrar" size="12px" type="submit" />
|
|
39
|
+
</div>
|
|
38
40
|
</div>
|
|
39
|
-
</
|
|
40
|
-
</q-
|
|
41
|
-
</
|
|
42
|
-
</
|
|
43
|
-
</
|
|
44
|
-
</
|
|
41
|
+
</q-form>
|
|
42
|
+
</q-menu>
|
|
43
|
+
</qas-btn>
|
|
44
|
+
</template>
|
|
45
|
+
</qas-input>
|
|
46
|
+
</div>
|
|
45
47
|
</q-form>
|
|
46
48
|
</slot>
|
|
47
49
|
</div>
|
|
@@ -225,6 +227,7 @@ export default {
|
|
|
225
227
|
created () {
|
|
226
228
|
this.fetchFilters()
|
|
227
229
|
this.watchOnceFields()
|
|
230
|
+
this.handleSearchModelOnCreate()
|
|
228
231
|
},
|
|
229
232
|
|
|
230
233
|
methods: {
|
|
@@ -322,8 +325,9 @@ export default {
|
|
|
322
325
|
},
|
|
323
326
|
|
|
324
327
|
updateValues () {
|
|
325
|
-
|
|
326
|
-
|
|
328
|
+
this.setSearch()
|
|
329
|
+
|
|
330
|
+
const { filters } = this.mx_context
|
|
327
331
|
|
|
328
332
|
for (const key in filters) {
|
|
329
333
|
this.filters[key] = parseValue(this.normalizeValues(filters[key], this.fields[key]?.multiple))
|
|
@@ -343,6 +347,15 @@ export default {
|
|
|
343
347
|
watchOnce()
|
|
344
348
|
}
|
|
345
349
|
})
|
|
350
|
+
},
|
|
351
|
+
|
|
352
|
+
handleSearchModelOnCreate () {
|
|
353
|
+
!this.useFilterButton && this.setSearch()
|
|
354
|
+
},
|
|
355
|
+
|
|
356
|
+
setSearch () {
|
|
357
|
+
const { search } = this.mx_context
|
|
358
|
+
this.search = search || ''
|
|
346
359
|
}
|
|
347
360
|
}
|
|
348
361
|
}
|
|
@@ -351,41 +364,43 @@ export default {
|
|
|
351
364
|
<style lang="scss">
|
|
352
365
|
// TODO rever
|
|
353
366
|
.qas-filters {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
367
|
+
&__input-content {
|
|
368
|
+
.q-field {
|
|
369
|
+
&::before {
|
|
370
|
+
border: 2px solid transparent;
|
|
371
|
+
border-radius: var(--qas-generic-border-radius);
|
|
372
|
+
bottom: 0;
|
|
373
|
+
content: '';
|
|
374
|
+
left: 0;
|
|
375
|
+
pointer-events: none;
|
|
376
|
+
position: absolute;
|
|
377
|
+
right: 0;
|
|
378
|
+
top: 0;
|
|
379
|
+
transition: border-color var(--qas-generic-transition);
|
|
380
|
+
}
|
|
366
381
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}
|
|
382
|
+
&--dense .q-field__prepend {
|
|
383
|
+
padding-right: var(--qas-spacing-xs);
|
|
384
|
+
}
|
|
371
385
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
386
|
+
&--dense .q-field__append {
|
|
387
|
+
padding-left: var(--qas-spacing-sm);
|
|
388
|
+
}
|
|
375
389
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
390
|
+
&--focused::before {
|
|
391
|
+
border-color: var(--q-primary);
|
|
392
|
+
color: var(--q-primary);
|
|
393
|
+
}
|
|
379
394
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}
|
|
395
|
+
&__control::after,
|
|
396
|
+
&__control::before {
|
|
397
|
+
display: none !important;
|
|
398
|
+
}
|
|
385
399
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
400
|
+
&__native {
|
|
401
|
+
padding-bottom: var(--qas-spacing-sm);
|
|
402
|
+
padding-top: var(--qas-spacing-sm);
|
|
403
|
+
}
|
|
389
404
|
}
|
|
390
405
|
}
|
|
391
406
|
}
|
|
@@ -27,7 +27,7 @@ props:
|
|
|
27
27
|
default:
|
|
28
28
|
ignoreLocation: true
|
|
29
29
|
keys: [label, value]
|
|
30
|
-
threshold: 0.
|
|
30
|
+
threshold: 0.6
|
|
31
31
|
|
|
32
32
|
label-key:
|
|
33
33
|
desc: O componente internamente espera receber na propriedade "options" um array de objeto contendo "label" e "value", caso o seu objeto não tenha "label" mas um "name" por exemplo, você pode definir esta prop "label-key" como "name".
|
package/src/components/{tabs-generator/private/PvTabsGeneratorStatus.vue → status/QasStatus.vue}
RENAMED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="
|
|
2
|
+
<div aria-live="polite" class="qas-status" :class="backgroundClass" role="status" />
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script>
|
|
6
6
|
export default {
|
|
7
|
-
name: '
|
|
7
|
+
name: 'QasStatus',
|
|
8
8
|
|
|
9
9
|
inheritAttrs: false,
|
|
10
10
|
|
|
11
11
|
props: {
|
|
12
12
|
color: {
|
|
13
13
|
type: String,
|
|
14
|
-
default: ''
|
|
14
|
+
default: 'light-blue-2'
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
|
|
@@ -24,7 +24,7 @@ export default {
|
|
|
24
24
|
</script>
|
|
25
25
|
|
|
26
26
|
<style lang="scss">
|
|
27
|
-
.
|
|
27
|
+
.qas-status {
|
|
28
28
|
border-radius: 100%;
|
|
29
29
|
height: 16px;
|
|
30
30
|
width: 16px;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<slot :item="tab" :name="`tab-after-${tab.value}`">
|
|
7
7
|
<q-icon v-if="tab.icon" :name="tab.icon" size="sm" />
|
|
8
8
|
|
|
9
|
-
<
|
|
9
|
+
<qas-status v-if="tab.status" :color="tab.status" />
|
|
10
10
|
|
|
11
11
|
<div class="q-ml-xs">
|
|
12
12
|
{{ getFormattedLabel(tab) }}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
</template>
|
|
20
20
|
|
|
21
21
|
<script>
|
|
22
|
-
import
|
|
22
|
+
import QasStatus from '../status/QasStatus.vue'
|
|
23
23
|
|
|
24
24
|
import { extend } from 'quasar'
|
|
25
25
|
|
|
@@ -27,7 +27,7 @@ export default {
|
|
|
27
27
|
name: 'QasTabsGenerator',
|
|
28
28
|
|
|
29
29
|
components: {
|
|
30
|
-
|
|
30
|
+
QasStatus
|
|
31
31
|
},
|
|
32
32
|
|
|
33
33
|
props: {
|
|
@@ -4,16 +4,13 @@
|
|
|
4
4
|
<div ref="truncate" :class="truncateTextClass">
|
|
5
5
|
<slot>{{ text }}</slot>
|
|
6
6
|
</div>
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
<div v-if="isTruncated" class="cursor-pointer text-primary" @click.stop="toggleDialog">
|
|
9
|
+
{{ seeMoreLabel }}
|
|
10
|
+
</div>
|
|
8
11
|
</div>
|
|
9
12
|
|
|
10
|
-
<qas-dialog v-model="showDialog" v-bind="defaultDialogProps"
|
|
11
|
-
<template #description>
|
|
12
|
-
<slot>
|
|
13
|
-
<div>{{ text }}</div>
|
|
14
|
-
</slot>
|
|
15
|
-
</template>
|
|
16
|
-
</qas-dialog>
|
|
13
|
+
<qas-dialog v-model="showDialog" v-bind="defaultDialogProps" aria-label="Diálogo de texto completo" role="dialog" />
|
|
17
14
|
</div>
|
|
18
15
|
</template>
|
|
19
16
|
|
|
@@ -60,7 +57,8 @@ export default {
|
|
|
60
57
|
return {
|
|
61
58
|
maxPossibleWidth: '',
|
|
62
59
|
showDialog: false,
|
|
63
|
-
textWidth: ''
|
|
60
|
+
textWidth: '',
|
|
61
|
+
observer: null
|
|
64
62
|
}
|
|
65
63
|
},
|
|
66
64
|
|
|
@@ -98,6 +96,11 @@ export default {
|
|
|
98
96
|
|
|
99
97
|
mounted () {
|
|
100
98
|
this.truncateText()
|
|
99
|
+
this.observeContentChange()
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
unmounted () {
|
|
103
|
+
this.observer.disconnect()
|
|
101
104
|
},
|
|
102
105
|
|
|
103
106
|
methods: {
|
|
@@ -110,6 +113,18 @@ export default {
|
|
|
110
113
|
|
|
111
114
|
toggleDialog () {
|
|
112
115
|
this.showDialog = !this.showDialog
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
observeContentChange () {
|
|
119
|
+
const element = this.$refs.truncate
|
|
120
|
+
const config = { childList: true, subtree: true, characterData: true }
|
|
121
|
+
|
|
122
|
+
const callback = mutationList => {
|
|
123
|
+
mutationList.forEach(() => this.truncateText())
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
this.observer = new MutationObserver(callback)
|
|
127
|
+
this.observer.observe(element, config)
|
|
113
128
|
}
|
|
114
129
|
}
|
|
115
130
|
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// headings
|
|
11
11
|
$h1: (
|
|
12
12
|
size: 3rem,
|
|
13
|
-
line-height:
|
|
13
|
+
line-height: 3rem,
|
|
14
14
|
letter-spacing: 0,
|
|
15
15
|
weight: 800,
|
|
16
16
|
margin: 0
|
|
@@ -18,7 +18,7 @@ $h1: (
|
|
|
18
18
|
|
|
19
19
|
$h2: (
|
|
20
20
|
size: 2rem,
|
|
21
|
-
line-height:
|
|
21
|
+
line-height: 2rem,
|
|
22
22
|
letter-spacing: 0,
|
|
23
23
|
weight: 700,
|
|
24
24
|
margin: 0
|
|
@@ -34,7 +34,7 @@ $h3: (
|
|
|
34
34
|
|
|
35
35
|
$h4: (
|
|
36
36
|
size: 1.125rem,
|
|
37
|
-
line-height: 1.
|
|
37
|
+
line-height: 1.125rem,
|
|
38
38
|
letter-spacing: 0,
|
|
39
39
|
weight: 600,
|
|
40
40
|
margin: 0
|
|
@@ -42,7 +42,7 @@ $h4: (
|
|
|
42
42
|
|
|
43
43
|
$h5: (
|
|
44
44
|
size: 1rem,
|
|
45
|
-
line-height:
|
|
45
|
+
line-height: 1rem,
|
|
46
46
|
letter-spacing: 0,
|
|
47
47
|
weight: 600,
|
|
48
48
|
margin: 0
|
|
@@ -50,7 +50,7 @@ $h5: (
|
|
|
50
50
|
|
|
51
51
|
$h6: (
|
|
52
52
|
size: 0.875rem,
|
|
53
|
-
line-height:
|
|
53
|
+
line-height: 0.875rem,
|
|
54
54
|
letter-spacing: 0,
|
|
55
55
|
weight: 600,
|
|
56
56
|
margin: 0
|
|
@@ -59,14 +59,14 @@ $h6: (
|
|
|
59
59
|
// subtitles
|
|
60
60
|
$subtitle1: (
|
|
61
61
|
size: 1rem,
|
|
62
|
-
line-height:
|
|
62
|
+
line-height: 1rem,
|
|
63
63
|
letter-spacing: 0,
|
|
64
64
|
weight: 600
|
|
65
65
|
);
|
|
66
66
|
|
|
67
67
|
$subtitle2: (
|
|
68
68
|
size: 0.875rem,
|
|
69
|
-
line-height:
|
|
69
|
+
line-height: 0.875rem,
|
|
70
70
|
letter-spacing: 0,
|
|
71
71
|
weight: 600
|
|
72
72
|
);
|
|
@@ -74,14 +74,14 @@ $subtitle2: (
|
|
|
74
74
|
// body
|
|
75
75
|
$body1: (
|
|
76
76
|
size: 1rem,
|
|
77
|
-
line-height:
|
|
77
|
+
line-height: 1rem,
|
|
78
78
|
letter-spacing: 0,
|
|
79
79
|
weight: 400
|
|
80
80
|
);
|
|
81
81
|
|
|
82
82
|
$body2: (
|
|
83
83
|
size: 0.875rem,
|
|
84
|
-
line-height:
|
|
84
|
+
line-height: 0.875rem,
|
|
85
85
|
letter-spacing: 0,
|
|
86
86
|
weight: 400
|
|
87
87
|
);
|
|
@@ -89,7 +89,7 @@ $body2: (
|
|
|
89
89
|
// overline
|
|
90
90
|
$overline: (
|
|
91
91
|
size: 0.875rem,
|
|
92
|
-
line-height:
|
|
92
|
+
line-height: 0.875rem,
|
|
93
93
|
letter-spacing: 0.25rem,
|
|
94
94
|
weight: 600
|
|
95
95
|
);
|
|
@@ -97,7 +97,7 @@ $overline: (
|
|
|
97
97
|
// caption
|
|
98
98
|
$caption: (
|
|
99
99
|
size: 0.75rem,
|
|
100
|
-
line-height:
|
|
100
|
+
line-height: 0.75rem,
|
|
101
101
|
letter-spacing: 0,
|
|
102
102
|
weight: 400
|
|
103
103
|
);
|
package/src/index.scss
CHANGED
package/src/vue-plugin.js
CHANGED
|
@@ -5,6 +5,7 @@ import QasAppBar from './components/app-bar/QasAppBar.vue'
|
|
|
5
5
|
import QasAppMenu from './components/app-menu/QasAppMenu.vue'
|
|
6
6
|
import QasAppUser from './components/app-user/QasAppUser.vue'
|
|
7
7
|
import QasAvatar from './components/avatar/QasAvatar.vue'
|
|
8
|
+
import QasBadge from './components/badge/QasBadge.vue'
|
|
8
9
|
import QasBox from './components/box/QasBox.vue'
|
|
9
10
|
import QasBreakline from './components/breakline/QasBreakline.vue'
|
|
10
11
|
import QasBtn from './components/btn/QasBtn.vue'
|
|
@@ -45,6 +46,7 @@ import QasSignaturePad from './components/signature-pad/QasSignaturePad.vue'
|
|
|
45
46
|
import QasSignatureUploader from './components/signature-uploader/QasSignatureUploader.vue'
|
|
46
47
|
import QasSingleView from './components/single-view/QasSingleView.vue'
|
|
47
48
|
import QasSortable from './components/sortable/QasSortable.vue'
|
|
49
|
+
import QasStatus from './components/status/QasStatus.vue'
|
|
48
50
|
import QasTableGenerator from './components/table-generator/QasTableGenerator.vue'
|
|
49
51
|
import QasTabsGenerator from './components/tabs-generator/QasTabsGenerator.vue'
|
|
50
52
|
import QasTextTruncate from './components/text-truncate/QasTextTruncate.vue'
|
|
@@ -80,6 +82,7 @@ function install (app) {
|
|
|
80
82
|
app.component('QasAppMenu', QasAppMenu)
|
|
81
83
|
app.component('QasAppUser', QasAppUser)
|
|
82
84
|
app.component('QasAvatar', QasAvatar)
|
|
85
|
+
app.component('QasBadge', QasBadge)
|
|
83
86
|
app.component('QasBox', QasBox)
|
|
84
87
|
app.component('QasBreakline', QasBreakline)
|
|
85
88
|
app.component('QasBtn', QasBtn)
|
|
@@ -120,6 +123,7 @@ function install (app) {
|
|
|
120
123
|
app.component('QasSignatureUploader', QasSignatureUploader)
|
|
121
124
|
app.component('QasSingleView', QasSingleView)
|
|
122
125
|
app.component('QasSortable', QasSortable)
|
|
126
|
+
app.component('QasStatus', QasStatus)
|
|
123
127
|
app.component('QasTableGenerator', QasTableGenerator)
|
|
124
128
|
app.component('QasTabsGenerator', QasTabsGenerator)
|
|
125
129
|
app.component('QasTextTruncate', QasTextTruncate)
|
|
@@ -156,6 +160,7 @@ export {
|
|
|
156
160
|
QasAppMenu,
|
|
157
161
|
QasAppUser,
|
|
158
162
|
QasAvatar,
|
|
163
|
+
QasBadge,
|
|
159
164
|
QasBox,
|
|
160
165
|
QasBreakline,
|
|
161
166
|
QasBtn,
|
|
@@ -196,6 +201,7 @@ export {
|
|
|
196
201
|
QasSignatureUploader,
|
|
197
202
|
QasSingleView,
|
|
198
203
|
QasSortable,
|
|
204
|
+
QasStatus,
|
|
199
205
|
QasTableGenerator,
|
|
200
206
|
QasTabsGenerator,
|
|
201
207
|
QasTextTruncate,
|