@bildvitta/quasar-ui-asteroid 3.0.0-beta.4 → 3.0.0-beta.7

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 (110) hide show
  1. package/dist/api/QasActionsMenu.json +15 -15
  2. package/dist/api/QasAppBar.json +4 -4
  3. package/dist/api/QasAppMenu.json +11 -7
  4. package/dist/api/QasBtn.json +1 -1
  5. package/dist/api/QasCard.json +4 -4
  6. package/dist/api/QasCheckboxGroup.json +8 -8
  7. package/dist/api/QasCopy.json +4 -4
  8. package/dist/api/QasDateTimeInput.json +6 -6
  9. package/dist/api/QasDelete.json +17 -17
  10. package/dist/api/QasDialog.json +21 -21
  11. package/dist/api/QasFilters.json +16 -16
  12. package/dist/api/QasFormGenerator.json +31 -31
  13. package/dist/api/QasFormView.json +84 -84
  14. package/dist/api/QasGallery.json +4 -4
  15. package/dist/api/QasGridGenerator.json +39 -39
  16. package/dist/api/QasInput.json +13 -13
  17. package/dist/api/QasListView.json +55 -55
  18. package/dist/api/QasNestedFields.json +32 -32
  19. package/dist/api/QasNumericInput.json +21 -2
  20. package/dist/api/QasPageHeader.json +7 -7
  21. package/dist/api/QasPasswordInput.json +13 -13
  22. package/dist/api/QasPasswordStrengthChecker.json +12 -12
  23. package/dist/api/QasProfile.json +5 -5
  24. package/dist/api/QasResizer.json +11 -11
  25. package/dist/api/QasSearchBox.json +5 -5
  26. package/dist/api/QasSelect.json +14 -14
  27. package/dist/api/QasSelectList.json +6 -6
  28. package/dist/api/QasSignatureUploader.json +9 -9
  29. package/dist/api/QasSingleView.json +40 -40
  30. package/dist/api/QasSortable.json +20 -20
  31. package/dist/api/QasTableGenerator.json +5 -5
  32. package/dist/api/QasTransfer.json +9 -9
  33. package/dist/api/QasUploader.json +17 -17
  34. package/dist/asteroid.cjs.css +1 -1
  35. package/dist/asteroid.cjs.js +93 -58
  36. package/dist/asteroid.cjs.min.js +2 -2
  37. package/dist/asteroid.esm.css +1 -1
  38. package/dist/asteroid.esm.js +94 -59
  39. package/dist/asteroid.esm.min.js +2 -2
  40. package/dist/asteroid.umd.css +1 -1
  41. package/dist/asteroid.umd.js +93 -58
  42. package/dist/asteroid.umd.min.js +2 -2
  43. package/dist/vetur/asteroid-attributes.json +259 -255
  44. package/dist/vetur/asteroid-tags.json +89 -88
  45. package/package.json +1 -1
  46. package/src/assets/gear.svg +27 -0
  47. package/src/components/actions-menu/QasActionsMenu.vue +2 -2
  48. package/src/components/actions-menu/QasActionsMenu.yml +15 -15
  49. package/src/components/app-bar/QasAppBar.vue +2 -2
  50. package/src/components/app-bar/QasAppBar.yml +4 -4
  51. package/src/components/app-menu/QasAppMenu.vue +7 -3
  52. package/src/components/app-menu/QasAppMenu.yml +11 -7
  53. package/src/components/box/QasBox.vue +1 -1
  54. package/src/components/btn/QasBtn.vue +2 -2
  55. package/src/components/btn/QasBtn.yml +1 -1
  56. package/src/components/card/QasCard.vue +1 -1
  57. package/src/components/card/QasCard.yml +4 -4
  58. package/src/components/checkbox-group/QasCheckboxGroup.yml +9 -8
  59. package/src/components/copy/QasCopy.vue +1 -1
  60. package/src/components/copy/QasCopy.yml +4 -3
  61. package/src/components/date-time-input/QasDateTimeInput.yml +6 -5
  62. package/src/components/delete/QasDelete.yml +15 -15
  63. package/src/components/dialog/QasDialog.yml +20 -19
  64. package/src/components/filters/QasFilters.vue +3 -3
  65. package/src/components/filters/QasFilters.yml +16 -16
  66. package/src/components/form-generator/QasFormGenerator.yml +21 -21
  67. package/src/components/form-view/QasFormView.yml +68 -68
  68. package/src/components/gallery/QasGallery.yml +4 -4
  69. package/src/components/grid-generator/QasGridGenerator.yml +28 -27
  70. package/src/components/input/QasInput.yml +13 -13
  71. package/src/components/list-items/QasListItems.vue +1 -1
  72. package/src/components/list-view/QasListView.vue +10 -3
  73. package/src/components/list-view/QasListView.yml +48 -48
  74. package/src/components/nested-fields/QasNestedFields.yml +26 -25
  75. package/src/components/numeric-input/QasNumericInput.vue +31 -13
  76. package/src/components/numeric-input/QasNumericInput.yml +16 -2
  77. package/src/components/page-header/QasPageHeader.yml +4 -4
  78. package/src/components/password-input/QasPasswordInput.vue +1 -1
  79. package/src/components/password-input/QasPasswordInput.yml +11 -11
  80. package/src/components/password-strength-checker/QasPasswordStrengthChecker.yml +10 -10
  81. package/src/components/profile/QasProfile.yml +5 -5
  82. package/src/components/resizer/QasResizer.vue +1 -1
  83. package/src/components/resizer/QasResizer.yml +6 -5
  84. package/src/components/search-box/QasSearchBox.yml +5 -5
  85. package/src/components/select/QasSelect.yml +7 -7
  86. package/src/components/select-list/QasSelectList.yml +6 -6
  87. package/src/components/signature-pad/QasSignaturePad.vue +1 -1
  88. package/src/components/signature-uploader/QasSignatureUploader.yml +9 -9
  89. package/src/components/single-view/QasSingleView.vue +2 -2
  90. package/src/components/single-view/QasSingleView.yml +36 -36
  91. package/src/components/sortable/QasSortable.yml +17 -17
  92. package/src/components/table-generator/QasTableGenerator.yml +5 -5
  93. package/src/components/transfer/QasTransfer.vue +2 -1
  94. package/src/components/transfer/QasTransfer.yml +9 -9
  95. package/src/components/uploader/QasUploader.vue +2 -2
  96. package/src/components/uploader/QasUploader.yml +12 -12
  97. package/src/composables/index.js +1 -1
  98. package/src/composables/{useHistory.js → use-history.js} +0 -0
  99. package/src/css/utils/index.scss +0 -1
  100. package/src/css/variables/index.scss +1 -0
  101. package/src/css/variables/shadow.scss +33 -0
  102. package/src/css/variables/typography.scss +1 -1
  103. package/src/index.scss +1 -0
  104. package/src/pages/ErrorComponent.vue +56 -0
  105. package/src/pages/Forbidden.vue +19 -5
  106. package/src/pages/NotFound.vue +19 -5
  107. package/src/pages/ServerError.vue +23 -0
  108. package/src/assets/logo-modular.svg +0 -1
  109. package/src/composables/useForm.js +0 -3
  110. package/src/css/utils/shadow.scss +0 -7
@@ -7,6 +7,12 @@ meta:
7
7
  desc: Componente para exibir imagem redimensionadas, implementa o "QImg".
8
8
 
9
9
  props:
10
+ resize:
11
+ desc: Formato de ajuste.
12
+ default: cover
13
+ type: String
14
+ examples: [cover, contain, fill, inside, outside]
15
+
10
16
  size:
11
17
  desc: Tamanho da imagem.
12
18
  type: String
@@ -16,8 +22,3 @@ props:
16
22
  type: String
17
23
  examples: [bild-vitta.png]
18
24
 
19
- resize:
20
- desc: Formato de ajuste.
21
- default: cover
22
- type: String
23
- examples: [cover, contain, fill, inside, outside]
@@ -37,11 +37,6 @@ props:
37
37
  default: Pesquisar
38
38
  type: String
39
39
 
40
- use-empty-slot:
41
- desc: Controla o slot "empty-result".
42
- default: true
43
- type: Boolean
44
-
45
40
  results:
46
41
  desc: Model que retorna o resultado filtrado.
47
42
  default: []
@@ -49,6 +44,11 @@ props:
49
44
  examples: [v-model:results="results"]
50
45
  model: true
51
46
 
47
+ use-empty-slot:
48
+ desc: Controla o slot "empty-result".
49
+ default: true
50
+ type: Boolean
51
+
52
52
  slots:
53
53
  default:
54
54
  desc: Acesso ao conteúdo principal, só existe caso a busca retorne algum resultado.
@@ -7,13 +7,6 @@ meta:
7
7
  desc: Componente para select que implementa o "QSelect" repassando propriedades, slots e eventos.
8
8
 
9
9
  props:
10
- model-value:
11
- desc: Model do componente.
12
- default: []
13
- type: [Array, Object, String, Number]
14
- examples: [v-model="value"]
15
- model: true
16
-
17
10
  fuse-options:
18
11
  desc: Opções do Fuse.js (https://fusejs.io/api/options.html).
19
12
  type: Object
@@ -34,6 +27,13 @@ props:
34
27
  type: String
35
28
  examples: [label-key="name"]
36
29
 
30
+ model-value:
31
+ desc: Model do componente.
32
+ default: []
33
+ type: [Array, Object, String, Number]
34
+ examples: [v-model="value"]
35
+ model: true
36
+
37
37
  no-option-label:
38
38
  desc: Rótulo padrão de quando os options estão vazios.
39
39
  default: Nenhum resultado foi encontrado.
@@ -28,9 +28,9 @@ props:
28
28
  examples: [v-model="value"]
29
29
  model: true
30
30
 
31
- to:
32
- desc: 'Configuração do vue-router para enviar no $route.push({ ...to, params: {...} }).'
33
- default: Pesquisar
31
+ param-key:
32
+ desc: Controla qual parâmetro será enviado para rota.
33
+ default: id
34
34
  type: String
35
35
 
36
36
  redirect-key:
@@ -38,9 +38,9 @@ props:
38
38
  default: uuid
39
39
  type: String
40
40
 
41
- param-key:
42
- desc: Controla qual parâmetro será enviado para rota.
43
- default: id
41
+ to:
42
+ desc: 'Configuração do vue-router para enviar no $route.push({ ...to, params: {...} }).'
43
+ default: Pesquisar
44
44
  type: String
45
45
 
46
46
  slots:
@@ -116,7 +116,7 @@ export default {
116
116
  <style lang="scss">
117
117
  .qas-signature-pad {
118
118
  &__canvas {
119
- border: 1px solid $grey-3;
119
+ border: 1px solid $separator-color;
120
120
  }
121
121
  }
122
122
  </style>
@@ -9,8 +9,13 @@ props:
9
9
  type: Object
10
10
  default: { maxWidth: '620px' }
11
11
 
12
- upload-label:
13
- desc: Rótulo do uploader.
12
+ model-value:
13
+ desc: Model do componente, retorna url da imagem upada, usando para v-model.
14
+ type: String
15
+
16
+ readonly:
17
+ desc: Controla se o componente vai ser apenas para visualização ou pode também fazer upload.
18
+ default: image/png
14
19
  type: String
15
20
 
16
21
  signature-label:
@@ -18,18 +23,13 @@ props:
18
23
  default: {}
19
24
  type: Object
20
25
 
21
- model-value:
22
- desc: Model do componente, retorna url da imagem upada, usando para v-model.
23
- type: String
24
-
25
26
  type:
26
27
  desc: Tipo da imagem gerada.
27
28
  default: image/png
28
29
  type: String
29
30
 
30
- readonly:
31
- desc: Controla se o componente vai ser apenas para visualização ou pode também fazer upload.
32
- default: image/png
31
+ upload-label:
32
+ desc: Rótulo do uploader.
33
33
  type: String
34
34
 
35
35
  events:
@@ -9,8 +9,8 @@
9
9
  </template>
10
10
 
11
11
  <div v-else-if="!mx_isFetching" class="q-my-xl text-center">
12
- <q-icon class="q-mb-sm text-center" color="grey-6" name="o_search" size="38px" />
13
- <div class="text-grey-6">Nenhum item encontrado.</div>
12
+ <q-icon class="q-mb-sm text-center" color="grey-7" name="o_search" size="38px" />
13
+ <div class="text-grey-7">Nenhum item encontrado.</div>
14
14
  </div>
15
15
 
16
16
  <footer v-if="mx_hasFooterSlot">
@@ -4,11 +4,6 @@ meta:
4
4
  desc: Componente para C.R.U.D. responsável pela visualização (Read) ou conhecido também como "show".
5
5
 
6
6
  props:
7
- entity:
8
- desc: Entidade da store, por exemplo se tiver que trabalhar com modulo de usuários, teremos o model "users" na store, que vai ser nossa "entity".
9
- required: true
10
- type: String
11
-
12
7
  custom-id:
13
8
  desc: Por padrão, o componente vai pegar o "id" que vem como parâmetro na url, caso queira que o id seja diferente da url, use esta prop.
14
9
  type: String
@@ -18,15 +13,17 @@ props:
18
13
  desc: Este componente pode ser utilizado dentro de um dialog, neste caso o componente pai não pode ser um "QPage" e sim uma "div", esta prop cuida disto.
19
14
  type: Boolean
20
15
 
21
- url:
22
- desc: Envia como parâmetro para a action "fetchSingle" do modulo correspondente a "entity".
16
+ entity:
17
+ desc: Entidade da store, por exemplo se tiver que trabalhar com modulo de usuários, teremos o model "users" na store, que vai ser nossa "entity".
18
+ required: true
23
19
  type: String
24
20
 
25
- result:
21
+ errors:
26
22
  model: true
27
- desc: Model de result, utilizado para recuperar o resultado retornado pelo componente.
23
+ desc: Model de errors, utilizado para recuperar os errors fora do template.
24
+ default: {}
28
25
  type: Object
29
- examples: [v-model:result="result"]
26
+ examples: [v-model:errors="errors"]
30
27
 
31
28
  fields:
32
29
  model: true
@@ -35,12 +32,11 @@ props:
35
32
  type: Object
36
33
  examples: [v-model:fields="fields"]
37
34
 
38
- errors:
35
+ fetching:
39
36
  model: true
40
- desc: Model de errors, utilizado para recuperar os errors fora do template.
41
- default: {}
42
- type: Object
43
- examples: [v-model:errors="errors"]
37
+ desc: Model de fetching, utilizado para saber se o componente está fazendo fetching de dados.
38
+ type: Boolean
39
+ examples: [v-model:fetching="isFetching"]
44
40
 
45
41
  metadata:
46
42
  model: true
@@ -49,23 +45,41 @@ props:
49
45
  type: Object
50
46
  examples: [v-model:metadata="metadata"]
51
47
 
52
- fetching:
48
+ result:
53
49
  model: true
54
- desc: Model de fetching, utilizado para saber se o componente está fazendo fetching de dados.
55
- type: Boolean
56
- examples: [v-model:fetching="isFetching"]
50
+ desc: Model de result, utilizado para recuperar o resultado retornado pelo componente.
51
+ type: Object
52
+ examples: [v-model:result="result"]
57
53
 
58
- slots:
59
- header:
60
- desc: 'Slot para acessar o header.'
54
+ url:
55
+ desc: Envia como parâmetro para a action "fetchSingle" do modulo correspondente a "entity".
56
+ type: String
61
57
 
58
+ slots:
62
59
  default:
63
60
  desc: 'Slot para ter o conteúdo principal (dentro do main).'
64
61
 
65
62
  footer:
66
63
  desc: 'Slot para acessar o footer.'
67
64
 
65
+ header:
66
+ desc: 'Slot para acessar o header.'
67
+
68
68
  events:
69
+ '@fetch-success -> function(value)':
70
+ desc: Dispara quando a action "fetchSingle" é executada com sucesso.
71
+ params:
72
+ value:
73
+ desc: Retorna todos os dados "cru" respondido pelo fetch.
74
+ type: Object
75
+
76
+ '@fetch-error -> function(value)':
77
+ desc: Dispara quando a action "fetchSingle" cai em uma exceção.
78
+ params:
79
+ value:
80
+ desc: Retorna todos os dados "cru" respondido na exceção do fetch.
81
+ type: Object
82
+
69
83
  '@update:result -> function(value)':
70
84
  desc: Dispara quando a action "fetchSingle" é executada com sucesso, é chamado antes do evento "fetch-success".
71
85
  params:
@@ -100,17 +114,3 @@ events:
100
114
  value:
101
115
  desc: Retorna se está ou não fazendo fetching de dados.
102
116
  type: Boolean
103
-
104
- '@fetch-success -> function(value)':
105
- desc: Dispara quando a action "fetchSingle" é executada com sucesso.
106
- params:
107
- value:
108
- desc: Retorna todos os dados "cru" respondido pelo fetch.
109
- type: Object
110
-
111
- '@fetch-error -> function(value)':
112
- desc: Dispara quando a action "fetchSingle" cai em uma exceção.
113
- params:
114
- value:
115
- desc: Retorna todos os dados "cru" respondido na exceção do fetch.
116
- type: Object
@@ -9,15 +9,22 @@ props:
9
9
  required: true
10
10
  type: String
11
11
 
12
+ list:
13
+ desc: Lista que vai ser reordenada.
14
+ default: []
15
+ type: Array
16
+
12
17
  sortable-options:
13
18
  desc: Opções do "sortablejs" (https://github.com/SortableJS/Sortable#options).
14
19
  default: { animation: 500 }
15
20
  type: Object
16
21
 
17
- list:
18
- desc: Lista que vai ser reordenada.
22
+ sorted:
23
+ desc: Model da lista reordenada
19
24
  default: []
20
25
  type: Array
26
+ examples: [v-model:sorted="fields"]
27
+ model: true
21
28
 
22
29
  tag:
23
30
  desc: Tag do componente pai.
@@ -28,24 +35,17 @@ props:
28
35
  desc: Parâmetro enviado para a action "replace".
29
36
  type: String
30
37
 
31
- sorted:
32
- desc: Model da lista reordenada
33
- default: []
34
- type: Array
35
- examples: [v-model:sorted="fields"]
36
- model: true
37
-
38
38
  slots:
39
39
  default:
40
40
  desc: Slot para adicionar os items que serão reordenados.
41
41
 
42
42
  events:
43
- '@update:sorted -> function(value)':
44
- desc: Dispara no created e toda vez que a prop "list" muda, usado para o v-model:sorted.
43
+ '@error -> function(value)':
44
+ desc: Dispara toda vez que acontece algum erro ao salvar a nova ordenação.
45
45
  params:
46
46
  value:
47
- desc: Lista contendo nova ordenação.
48
- type: Array
47
+ desc: fields.
48
+ type: Object
49
49
 
50
50
  '@sort -> function(value)':
51
51
  desc: Dispara toda vez que acontece uma nova ordenação.
@@ -57,9 +57,9 @@ events:
57
57
  desc: fields.
58
58
  type: Object
59
59
 
60
- '@error -> function(value)':
61
- desc: Dispara toda vez que acontece algum erro ao salvar a nova ordenação.
60
+ '@update:sorted -> function(value)':
61
+ desc: Dispara no created e toda vez que a prop "list" muda, usado para o v-model:sorted.
62
62
  params:
63
63
  value:
64
- desc: fields.
65
- type: Object
64
+ desc: Lista contendo nova ordenação.
65
+ type: Array
@@ -9,6 +9,11 @@ props:
9
9
  default: []
10
10
  type: Array
11
11
 
12
+ empty-result-text:
13
+ desc: Quando uma célula da tabela está vazia, esta prop define qual será o valor padrão.
14
+ default: '-'
15
+ type: String
16
+
12
17
  fields:
13
18
  desc: Lista de field contendo informações necessárias para a criação da tabela.
14
19
  default: {}
@@ -26,11 +31,6 @@ props:
26
31
  default: name
27
32
  type: String
28
33
 
29
- empty-result-text:
30
- desc: Quando uma célula da tabela está vazia, esta prop define qual será o valor padrão.
31
- default: '-'
32
- type: String
33
-
34
34
  use-scroll-on-grab:
35
35
  desc: Adiciona scroll pelo mouse ao arrastar tabela em todas as telas (Celular, Desktop).
36
36
  default: true
@@ -144,6 +144,7 @@ export default {
144
144
  options: {
145
145
  handler (value) {
146
146
  this.optionsList = extend(true, [], value)
147
+ this.setSelectedFromValue(true)
147
148
  },
148
149
 
149
150
  immediate: true
@@ -209,7 +210,7 @@ export default {
209
210
  },
210
211
 
211
212
  setSelectedFromValue (isFirst) {
212
- this.modelValue.forEach(item => {
213
+ this.optionsList.length && this.modelValue.forEach(item => {
213
214
  const selected = this.optionsList.find(option => {
214
215
  return option[this.valueKey] === (this.emitValue ? item : item[this.valueKey])
215
216
  })
@@ -8,25 +8,25 @@ props:
8
8
  desc: Controla como sera o retorno do model, se "true" será um array de string, se "false" array de objeto.
9
9
  type: Boolean
10
10
 
11
- model-value:
12
- desc: Model do componente, controla quais itens estão na segunda coluna.
13
- default: []
14
- type: Array
15
-
16
11
  fuse-options:
17
12
  desc: Configurações do [fuse.js](https://fusejs.io/api/options.html).
18
13
  default: { keys: ['label'] }
19
14
  type: Object
20
15
 
16
+ label-key:
17
+ desc: Nos options, você pode passar um array de objeto com qualquer chave/valor, esta prop serve para identificar qual será o equivalente ao "label".
18
+ default: label
19
+ type: String
20
+
21
21
  label:
22
22
  desc: Rotulo que vai ficar em cima da primeira coluna.
23
23
  type: String
24
24
  required: true
25
25
 
26
- label-key:
27
- desc: Nos options, você pode passar um array de objeto com qualquer chave/valor, esta prop serve para identificar qual será o equivalente ao "label".
28
- default: label
29
- type: String
26
+ model-value:
27
+ desc: Model do componente, controla quais itens estão na segunda coluna.
28
+ default: []
29
+ type: Array
30
30
 
31
31
  options:
32
32
  desc: Array de objetos com todos items que serão transferidos
@@ -28,7 +28,7 @@
28
28
  <slot name="list" :scope="scope">
29
29
  <div class="col-12 q-col-gutter-md row">
30
30
  <div v-for="(file, index) in getFilesList(scope.files, scope)" :key="index" class="row" :class="itemClass">
31
- <qas-avatar class="q-mr-sm" color="grey-3" icon="o_attach_file" :image="file.image" rounded :text-color="getColorFileIcon(file)" />
31
+ <qas-avatar class="q-mr-sm" color="contrast-primary" icon="o_attach_file" :image="file.image" rounded :text-color="getColorFileIcon(file)" />
32
32
 
33
33
  <div class="col items-center no-wrap row">
34
34
  <div class="column no-wrap" :class="{ col: isMultiple }">
@@ -328,7 +328,7 @@ export default {
328
328
  },
329
329
 
330
330
  getFileNameClass (isFailed) {
331
- return isFailed ? 'text-negative' : 'text-grey-8'
331
+ return isFailed ? 'text-negative' : 'text-grey-9'
332
332
  },
333
333
 
334
334
  isFailed (file) {
@@ -39,6 +39,13 @@ props:
39
39
  default: undefined
40
40
  type: Number
41
41
 
42
+ model-value:
43
+ desc: Model do componente, caso seja múltiplo, retorna um array de string, senão somente uma string.
44
+ default: true
45
+ type: [Array, String]
46
+ examples: [v-model="value"]
47
+ model: true
48
+
42
49
  pica-resize-options:
43
50
  desc: Opções para a biblioteca "pica" que é responsável por fazer o redimensionamento antes do upload (https://github.com/nodeca/pica).
44
51
  type: Object
@@ -48,6 +55,11 @@ props:
48
55
  unsharpRadius: 0.6
49
56
  unsharpThreshold: 1
50
57
 
58
+ readonly:
59
+ desc: O componente não faz mais upload, apenas exibe.
60
+ default: true
61
+ type: Number
62
+
51
63
  size-limit:
52
64
  desc: Se o tamanho da imagem for menor ou igual ao passado nesta prop, não será feito um redimensionamento.
53
65
  default: 1280
@@ -58,18 +70,6 @@ props:
58
70
  default: true
59
71
  type: Number
60
72
 
61
- readonly:
62
- desc: O componente não faz mais upload, apenas exibe.
63
- default: true
64
- type: Number
65
-
66
- model-value:
67
- desc: Model do componente, caso seja múltiplo, retorna um array de string, senão somente uma string.
68
- default: true
69
- type: [Array, String]
70
- examples: [v-model="value"]
71
- model: true
72
-
73
73
  uploading:
74
74
  desc: Model que retorna se o componente está fazendo algum upload.
75
75
  type: Boolean
@@ -1 +1 @@
1
- export { default as useHistory } from './useHistory.js'
1
+ export { default as useHistory } from './use-history.js'
@@ -5,6 +5,5 @@
5
5
  @import './fonts';
6
6
  @import './line-height';
7
7
  @import './opacity';
8
- @import './shadow';
9
8
  @import './text';
10
9
  @import './unset';
@@ -1,2 +1,3 @@
1
1
  @import './button';
2
+ @import './shadow';
2
3
  @import './typography';
@@ -0,0 +1,33 @@
1
+ $shadow-color: $accent;
2
+
3
+ $elevation-umbra: $shadow-color;
4
+ $elevation-penumbra: $shadow-color;
5
+ $elevation-ambient: $shadow-color;
6
+
7
+ // Embossed
8
+ $shadow-2: (
9
+ 0 1px 5px $elevation-umbra,
10
+ 0 2px 2px $elevation-penumbra,
11
+ 0 3px 1px -2px $elevation-ambient
12
+ );
13
+
14
+ // Shallow
15
+ $shadow-6: (
16
+ 0 3px 5px -1px $elevation-umbra,
17
+ 0 6px 10px $elevation-penumbra,
18
+ 0 1px 18px $elevation-ambient
19
+ );
20
+
21
+ // Overhead
22
+ $shadow-14: (
23
+ 0 7px 9px -4px $elevation-umbra,
24
+ 0 14px 21px 2px $elevation-penumbra,
25
+ 0 5px 26px 4px $elevation-ambient
26
+ );
27
+
28
+ // levite
29
+ $shadow-20: (
30
+ 0 10px 13px -6px $elevation-umbra,
31
+ 0 20px 31px 3px $elevation-penumbra,
32
+ 0 8px 38px 7px $elevation-ambient
33
+ );
@@ -127,7 +127,7 @@ $h-tags: (
127
127
  h6: map.get($headings, 'h6')
128
128
  );
129
129
 
130
- // sobrescreve as tags do css para adicionar "margin"
130
+ // sobrescreve as tags do html para adicionar "margin"
131
131
  @each $heading, $value in $h-tags {
132
132
  #{$heading} {
133
133
  font-size: map.get($value, 'size');
package/src/index.scss CHANGED
@@ -5,6 +5,7 @@ $primary: var(--q-primary);
5
5
  $primary-contrast: var(--q-primary-contrast);
6
6
  $secondary: var(--q-secondary);
7
7
  $secondary-contrast: var(--q-secondary-contrast);
8
+ $accent: var(--q-accent);
8
9
 
9
10
  // Asteroid variables
10
11
  :root {
@@ -0,0 +1,56 @@
1
+ <template>
2
+ <div class="column error-component items-center justify-around q-px-xl">
3
+ <div class="column full-width items-center justify-center q-gutter-md q-py-md row">
4
+ <q-img src="../assets/gear.svg" :width="gearSize" />
5
+ <div class="text-bold text-h1 text-primary">{{ code }}</div>
6
+ <div class="text-bold text-center text-grey-9 text-h6">{{ title }}</div>
7
+ <div v-if="subtitle" class="text-bold text-center text-grey-9 text-subtitle2">{{ subtitle }}</div>
8
+ <qas-btn v-if="hasButtonProps" class="text-bold text-primary" v-bind="buttonProps" />
9
+ </div>
10
+ </div>
11
+ </template>
12
+
13
+ <script>
14
+ export default {
15
+ name: 'ErrorComponent',
16
+
17
+ props: {
18
+ buttonProps: {
19
+ type: Object,
20
+ default: () => ({})
21
+ },
22
+
23
+ code: {
24
+ type: String,
25
+ required: true
26
+ },
27
+
28
+ subtitle: {
29
+ type: String,
30
+ default: ''
31
+ },
32
+
33
+ title: {
34
+ type: String,
35
+ required: true
36
+ }
37
+ },
38
+
39
+ computed: {
40
+ gearSize () {
41
+ return this.$qas.screen.isSmall ? '90px' : '160px'
42
+ },
43
+
44
+ hasButtonProps () {
45
+ return !!Object.keys(this.buttonProps).length
46
+ }
47
+ }
48
+ }
49
+ </script>
50
+
51
+ <style lang="scss">
52
+ .error-component {
53
+ background-color: var(--qas-background-color);
54
+ min-height: 100vh;
55
+ }
56
+ </style>
@@ -1,12 +1,26 @@
1
1
  <template>
2
- <div class="fixed-center text-center">
3
- <p class="q-my-lg text-faded">Ops, você não tem permissão para acessar esta página <strong>(403).</strong></p>
4
- <q-btn color="primary" flat @click="$router.push('/')">Voltar</q-btn>
5
- </div>
2
+ <error-component v-bind="errorProps" />
6
3
  </template>
7
4
 
8
5
  <script>
6
+ import ErrorComponent from './ErrorComponent'
7
+
9
8
  export default {
10
- name: 'Forbidden'
9
+ components: {
10
+ ErrorComponent
11
+ },
12
+
13
+ computed: {
14
+ errorProps () {
15
+ return {
16
+ code: '403',
17
+ title: 'Ops, parece que você não tem acesso para este recurso!',
18
+ buttonProps: {
19
+ to: { path: '/' },
20
+ label: 'Voltar ao início'
21
+ }
22
+ }
23
+ }
24
+ }
11
25
  }
12
26
  </script>