@vue/language-service 2.1.10 → 2.2.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.
Files changed (49) hide show
  1. package/data/language-blocks/cs.json +29 -930
  2. package/data/language-blocks/en.json +28 -929
  3. package/data/language-blocks/fr.json +28 -929
  4. package/data/language-blocks/it.json +28 -929
  5. package/data/language-blocks/ja.json +28 -929
  6. package/data/language-blocks/ko.json +28 -929
  7. package/data/language-blocks/pt.json +28 -929
  8. package/data/language-blocks/ru.json +28 -929
  9. package/data/language-blocks/zh-cn.json +30 -931
  10. package/data/language-blocks/zh-hk.json +28 -929
  11. package/data/locale.json +54 -0
  12. package/data/model-modifiers/cs.json +6 -165
  13. package/data/model-modifiers/en.json +6 -165
  14. package/data/model-modifiers/fr.json +6 -165
  15. package/data/model-modifiers/it.json +6 -165
  16. package/data/model-modifiers/ja.json +6 -165
  17. package/data/model-modifiers/ko.json +6 -165
  18. package/data/model-modifiers/pt.json +6 -165
  19. package/data/model-modifiers/ru.json +6 -165
  20. package/data/model-modifiers/zh-cn.json +6 -165
  21. package/data/model-modifiers/zh-hk.json +6 -165
  22. package/data/template/cs.json +59 -1429
  23. package/data/template/en.json +52 -1422
  24. package/data/template/fr.json +55 -1425
  25. package/data/template/it.json +44 -1422
  26. package/data/template/ja.json +53 -1423
  27. package/data/template/ko.json +44 -1422
  28. package/data/template/pt.json +44 -1422
  29. package/data/template/ru.json +52 -1422
  30. package/data/template/zh-cn.json +53 -1423
  31. package/data/template/zh-hk.json +44 -1422
  32. package/index.d.ts +2 -2
  33. package/index.js +2 -2
  34. package/lib/ideFeatures/nameCasing.js +14 -16
  35. package/lib/plugins/data.js +47 -20
  36. package/lib/plugins/vue-autoinsert-dotvalue.js +4 -3
  37. package/lib/plugins/vue-autoinsert-space.js +1 -1
  38. package/lib/plugins/vue-complete-define-assignment.js +11 -13
  39. package/lib/plugins/vue-directive-comments.js +10 -8
  40. package/lib/plugins/vue-document-drop.js +15 -12
  41. package/lib/plugins/vue-document-links.js +45 -39
  42. package/lib/plugins/vue-extract-file.js +19 -10
  43. package/lib/plugins/vue-inlayhints.d.ts +1 -1
  44. package/lib/plugins/vue-inlayhints.js +65 -56
  45. package/lib/plugins/vue-sfc.js +29 -27
  46. package/lib/plugins/vue-template.js +194 -162
  47. package/lib/plugins/vue-twoslash-queries.js +9 -4
  48. package/package.json +10 -9
  49. package/scripts/update-html-data.js +74 -70
@@ -8,68 +8,15 @@
8
8
  "name": "src",
9
9
  "description": {
10
10
  "kind": "markdown",
11
- "value": "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
11
+ "value": "Se preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```"
12
12
  },
13
- "references": [
14
- {
15
- "name": "en",
16
- "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
17
- },
18
- {
19
- "name": "zh-cn",
20
- "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
21
- },
22
- {
23
- "name": "zh-hk",
24
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports"
25
- },
26
- {
27
- "name": "ja",
28
- "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
29
- },
30
- {
31
- "name": "ua",
32
- "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
33
- },
34
- {
35
- "name": "fr",
36
- "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
37
- },
38
- {
39
- "name": "ko",
40
- "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
41
- },
42
- {
43
- "name": "pt",
44
- "url": "https://pt.vuejs.org/api/sfc-spec.html#src-imports"
45
- },
46
- {
47
- "name": "bn",
48
- "url": "https://bn.vuejs.org/api/sfc-spec.html#src-imports"
49
- },
50
- {
51
- "name": "it",
52
- "url": "https://it.vuejs.org/api/sfc-spec.html#src-imports"
53
- },
54
- {
55
- "name": "cs",
56
- "url": "https://cs.vuejs.org/api/sfc-spec.html#src-imports"
57
- },
58
- {
59
- "name": "ru",
60
- "url": "https://ru.vuejs.org/api/sfc-spec.html#src-imports"
61
- },
62
- {
63
- "name": "fa",
64
- "url": "https://fa.vuejs.org/api/sfc-spec.html#src-imports"
65
- }
66
- ]
13
+ "references": "api/sfc-spec.html#src-imports"
67
14
  },
68
15
  {
69
16
  "name": "lang",
70
17
  "description": {
71
18
  "kind": "markdown",
72
- "value": "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n"
19
+ "value": "Os blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)"
73
20
  },
74
21
  "values": [
75
22
  {
@@ -79,120 +26,14 @@
79
26
  "name": "pug"
80
27
  }
81
28
  ],
82
- "references": [
83
- {
84
- "name": "en",
85
- "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
86
- },
87
- {
88
- "name": "zh-cn",
89
- "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
90
- },
91
- {
92
- "name": "zh-hk",
93
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors"
94
- },
95
- {
96
- "name": "ja",
97
- "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
98
- },
99
- {
100
- "name": "ua",
101
- "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
102
- },
103
- {
104
- "name": "fr",
105
- "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
106
- },
107
- {
108
- "name": "ko",
109
- "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
110
- },
111
- {
112
- "name": "pt",
113
- "url": "https://pt.vuejs.org/api/sfc-spec.html#pre-processors"
114
- },
115
- {
116
- "name": "bn",
117
- "url": "https://bn.vuejs.org/api/sfc-spec.html#pre-processors"
118
- },
119
- {
120
- "name": "it",
121
- "url": "https://it.vuejs.org/api/sfc-spec.html#pre-processors"
122
- },
123
- {
124
- "name": "cs",
125
- "url": "https://cs.vuejs.org/api/sfc-spec.html#pre-processors"
126
- },
127
- {
128
- "name": "ru",
129
- "url": "https://ru.vuejs.org/api/sfc-spec.html#pre-processors"
130
- },
131
- {
132
- "name": "fa",
133
- "url": "https://fa.vuejs.org/api/sfc-spec.html#pre-processors"
134
- }
135
- ]
29
+ "references": "api/sfc-spec.html#pre-processors"
136
30
  }
137
31
  ],
138
32
  "description": {
139
33
  "kind": "markdown",
140
34
  "value": "\n- Cada ficheiro `*.vue` pode conter no máximo um bloco `<template>` de alto nível.\n\n- O conteúdo será extraído e passado ao `@vuw/compiler-dom`, pré-compilado dentro de funções de interpretação de JavaScript, e anexado ao componente exportado como sua opção `render`.\n"
141
35
  },
142
- "references": [
143
- {
144
- "name": "en",
145
- "url": "https://vuejs.org/api/sfc-spec.html#template"
146
- },
147
- {
148
- "name": "zh-cn",
149
- "url": "https://cn.vuejs.org/api/sfc-spec.html#template"
150
- },
151
- {
152
- "name": "zh-hk",
153
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#template"
154
- },
155
- {
156
- "name": "ja",
157
- "url": "https://ja.vuejs.org/api/sfc-spec.html#template"
158
- },
159
- {
160
- "name": "ua",
161
- "url": "https://ua.vuejs.org/api/sfc-spec.html#template"
162
- },
163
- {
164
- "name": "fr",
165
- "url": "https://fr.vuejs.org/api/sfc-spec.html#template"
166
- },
167
- {
168
- "name": "ko",
169
- "url": "https://ko.vuejs.org/api/sfc-spec.html#template"
170
- },
171
- {
172
- "name": "pt",
173
- "url": "https://pt.vuejs.org/api/sfc-spec.html#template"
174
- },
175
- {
176
- "name": "bn",
177
- "url": "https://bn.vuejs.org/api/sfc-spec.html#template"
178
- },
179
- {
180
- "name": "it",
181
- "url": "https://it.vuejs.org/api/sfc-spec.html#template"
182
- },
183
- {
184
- "name": "cs",
185
- "url": "https://cs.vuejs.org/api/sfc-spec.html#template"
186
- },
187
- {
188
- "name": "ru",
189
- "url": "https://ru.vuejs.org/api/sfc-spec.html#template"
190
- },
191
- {
192
- "name": "fa",
193
- "url": "https://fa.vuejs.org/api/sfc-spec.html#template"
194
- }
195
- ]
36
+ "references": "api/sfc-spec.html#template"
196
37
  },
197
38
  {
198
39
  "name": "script",
@@ -201,68 +42,15 @@
201
42
  "name": "src",
202
43
  "description": {
203
44
  "kind": "markdown",
204
- "value": "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
45
+ "value": "Se preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```"
205
46
  },
206
- "references": [
207
- {
208
- "name": "en",
209
- "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
210
- },
211
- {
212
- "name": "zh-cn",
213
- "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
214
- },
215
- {
216
- "name": "zh-hk",
217
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports"
218
- },
219
- {
220
- "name": "ja",
221
- "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
222
- },
223
- {
224
- "name": "ua",
225
- "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
226
- },
227
- {
228
- "name": "fr",
229
- "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
230
- },
231
- {
232
- "name": "ko",
233
- "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
234
- },
235
- {
236
- "name": "pt",
237
- "url": "https://pt.vuejs.org/api/sfc-spec.html#src-imports"
238
- },
239
- {
240
- "name": "bn",
241
- "url": "https://bn.vuejs.org/api/sfc-spec.html#src-imports"
242
- },
243
- {
244
- "name": "it",
245
- "url": "https://it.vuejs.org/api/sfc-spec.html#src-imports"
246
- },
247
- {
248
- "name": "cs",
249
- "url": "https://cs.vuejs.org/api/sfc-spec.html#src-imports"
250
- },
251
- {
252
- "name": "ru",
253
- "url": "https://ru.vuejs.org/api/sfc-spec.html#src-imports"
254
- },
255
- {
256
- "name": "fa",
257
- "url": "https://fa.vuejs.org/api/sfc-spec.html#src-imports"
258
- }
259
- ]
47
+ "references": "api/sfc-spec.html#src-imports"
260
48
  },
261
49
  {
262
50
  "name": "lang",
263
51
  "description": {
264
52
  "kind": "markdown",
265
- "value": "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n"
53
+ "value": "Os blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)"
266
54
  },
267
55
  "values": [
268
56
  {
@@ -278,60 +66,7 @@
278
66
  "name": "jsx"
279
67
  }
280
68
  ],
281
- "references": [
282
- {
283
- "name": "en",
284
- "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
285
- },
286
- {
287
- "name": "zh-cn",
288
- "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
289
- },
290
- {
291
- "name": "zh-hk",
292
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors"
293
- },
294
- {
295
- "name": "ja",
296
- "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
297
- },
298
- {
299
- "name": "ua",
300
- "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
301
- },
302
- {
303
- "name": "fr",
304
- "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
305
- },
306
- {
307
- "name": "ko",
308
- "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
309
- },
310
- {
311
- "name": "pt",
312
- "url": "https://pt.vuejs.org/api/sfc-spec.html#pre-processors"
313
- },
314
- {
315
- "name": "bn",
316
- "url": "https://bn.vuejs.org/api/sfc-spec.html#pre-processors"
317
- },
318
- {
319
- "name": "it",
320
- "url": "https://it.vuejs.org/api/sfc-spec.html#pre-processors"
321
- },
322
- {
323
- "name": "cs",
324
- "url": "https://cs.vuejs.org/api/sfc-spec.html#pre-processors"
325
- },
326
- {
327
- "name": "ru",
328
- "url": "https://ru.vuejs.org/api/sfc-spec.html#pre-processors"
329
- },
330
- {
331
- "name": "fa",
332
- "url": "https://fa.vuejs.org/api/sfc-spec.html#pre-processors"
333
- }
334
- ]
69
+ "references": "api/sfc-spec.html#pre-processors"
335
70
  },
336
71
  {
337
72
  "name": "generic"
@@ -343,120 +78,14 @@
343
78
  "kind": "markdown",
344
79
  "value": "\n- Cada ficheiro `*.vue` pode conter no máximo um bloco `<script setup>` (excluindo o `<script>` normal).\n\n- O programa é pré-processado e usado como a função `setup()` do componente, o que significa que será executado **para cada instância do componente**. Os vínculos de alto nível no `<script setup>` são automaticamente expostos ao modelo de marcação. Para mais detalhes, consulte a [documentação dedicada ao `<script setup>`](https://pt.vuejs.org/api/sfc-script-setup.html).\n"
345
80
  },
346
- "references": [
347
- {
348
- "name": "en",
349
- "url": "https://vuejs.org/api/sfc-spec.html#script-setup"
350
- },
351
- {
352
- "name": "zh-cn",
353
- "url": "https://cn.vuejs.org/api/sfc-spec.html#script-setup"
354
- },
355
- {
356
- "name": "zh-hk",
357
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup"
358
- },
359
- {
360
- "name": "ja",
361
- "url": "https://ja.vuejs.org/api/sfc-spec.html#script-setup"
362
- },
363
- {
364
- "name": "ua",
365
- "url": "https://ua.vuejs.org/api/sfc-spec.html#script-setup"
366
- },
367
- {
368
- "name": "fr",
369
- "url": "https://fr.vuejs.org/api/sfc-spec.html#script-setup"
370
- },
371
- {
372
- "name": "ko",
373
- "url": "https://ko.vuejs.org/api/sfc-spec.html#script-setup"
374
- },
375
- {
376
- "name": "pt",
377
- "url": "https://pt.vuejs.org/api/sfc-spec.html#script-setup"
378
- },
379
- {
380
- "name": "bn",
381
- "url": "https://bn.vuejs.org/api/sfc-spec.html#script-setup"
382
- },
383
- {
384
- "name": "it",
385
- "url": "https://it.vuejs.org/api/sfc-spec.html#script-setup"
386
- },
387
- {
388
- "name": "cs",
389
- "url": "https://cs.vuejs.org/api/sfc-spec.html#script-setup"
390
- },
391
- {
392
- "name": "ru",
393
- "url": "https://ru.vuejs.org/api/sfc-spec.html#script-setup"
394
- },
395
- {
396
- "name": "fa",
397
- "url": "https://fa.vuejs.org/api/sfc-spec.html#script-setup"
398
- }
399
- ]
81
+ "references": "api/sfc-spec.html#script-setup"
400
82
  }
401
83
  ],
402
84
  "description": {
403
85
  "kind": "markdown",
404
86
  "value": "\n- Cada ficheiro `*.vue` poder conter no máximo um bloco `<script>` de alto nível (excluindo [`<script setup>`](https://pt.vuejs.org/api/sfc-script-setup.html)).\n\n- O programa é executado como um módulo de ECMAScript.\n\n- A **exportação padrão** deve ser um objeto de opções de componente da Vue, ou como um objeto simples ou como valor de retorno da [`defineComponent`](https://pt.vuejs.org/api/general.html#definecomponent).\n"
405
87
  },
406
- "references": [
407
- {
408
- "name": "en",
409
- "url": "https://vuejs.org/api/sfc-spec.html#script"
410
- },
411
- {
412
- "name": "zh-cn",
413
- "url": "https://cn.vuejs.org/api/sfc-spec.html#script"
414
- },
415
- {
416
- "name": "zh-hk",
417
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#script"
418
- },
419
- {
420
- "name": "ja",
421
- "url": "https://ja.vuejs.org/api/sfc-spec.html#script"
422
- },
423
- {
424
- "name": "ua",
425
- "url": "https://ua.vuejs.org/api/sfc-spec.html#script"
426
- },
427
- {
428
- "name": "fr",
429
- "url": "https://fr.vuejs.org/api/sfc-spec.html#script"
430
- },
431
- {
432
- "name": "ko",
433
- "url": "https://ko.vuejs.org/api/sfc-spec.html#script"
434
- },
435
- {
436
- "name": "pt",
437
- "url": "https://pt.vuejs.org/api/sfc-spec.html#script"
438
- },
439
- {
440
- "name": "bn",
441
- "url": "https://bn.vuejs.org/api/sfc-spec.html#script"
442
- },
443
- {
444
- "name": "it",
445
- "url": "https://it.vuejs.org/api/sfc-spec.html#script"
446
- },
447
- {
448
- "name": "cs",
449
- "url": "https://cs.vuejs.org/api/sfc-spec.html#script"
450
- },
451
- {
452
- "name": "ru",
453
- "url": "https://ru.vuejs.org/api/sfc-spec.html#script"
454
- },
455
- {
456
- "name": "fa",
457
- "url": "https://fa.vuejs.org/api/sfc-spec.html#script"
458
- }
459
- ]
88
+ "references": "api/sfc-spec.html#script"
460
89
  },
461
90
  {
462
91
  "name": "script setup",
@@ -465,60 +94,7 @@
465
94
  "kind": "markdown",
466
95
  "value": "\n- Cada ficheiro `*.vue` pode conter no máximo um bloco `<script setup>` (excluindo o `<script>` normal).\n\n- O programa é pré-processado e usado como a função `setup()` do componente, o que significa que será executado **para cada instância do componente**. Os vínculos de alto nível no `<script setup>` são automaticamente expostos ao modelo de marcação. Para mais detalhes, consulte a [documentação dedicada ao `<script setup>`](https://pt.vuejs.org/api/sfc-script-setup.html).\n"
467
96
  },
468
- "references": [
469
- {
470
- "name": "en",
471
- "url": "https://vuejs.org/api/sfc-spec.html#script-setup"
472
- },
473
- {
474
- "name": "zh-cn",
475
- "url": "https://cn.vuejs.org/api/sfc-spec.html#script-setup"
476
- },
477
- {
478
- "name": "zh-hk",
479
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#script-setup"
480
- },
481
- {
482
- "name": "ja",
483
- "url": "https://ja.vuejs.org/api/sfc-spec.html#script-setup"
484
- },
485
- {
486
- "name": "ua",
487
- "url": "https://ua.vuejs.org/api/sfc-spec.html#script-setup"
488
- },
489
- {
490
- "name": "fr",
491
- "url": "https://fr.vuejs.org/api/sfc-spec.html#script-setup"
492
- },
493
- {
494
- "name": "ko",
495
- "url": "https://ko.vuejs.org/api/sfc-spec.html#script-setup"
496
- },
497
- {
498
- "name": "pt",
499
- "url": "https://pt.vuejs.org/api/sfc-spec.html#script-setup"
500
- },
501
- {
502
- "name": "bn",
503
- "url": "https://bn.vuejs.org/api/sfc-spec.html#script-setup"
504
- },
505
- {
506
- "name": "it",
507
- "url": "https://it.vuejs.org/api/sfc-spec.html#script-setup"
508
- },
509
- {
510
- "name": "cs",
511
- "url": "https://cs.vuejs.org/api/sfc-spec.html#script-setup"
512
- },
513
- {
514
- "name": "ru",
515
- "url": "https://ru.vuejs.org/api/sfc-spec.html#script-setup"
516
- },
517
- {
518
- "name": "fa",
519
- "url": "https://fa.vuejs.org/api/sfc-spec.html#script-setup"
520
- }
521
- ]
97
+ "references": "api/sfc-spec.html#script-setup"
522
98
  },
523
99
  {
524
100
  "name": "style",
@@ -527,68 +103,15 @@
527
103
  "name": "src",
528
104
  "description": {
529
105
  "kind": "markdown",
530
- "value": "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
106
+ "value": "Se preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```"
531
107
  },
532
- "references": [
533
- {
534
- "name": "en",
535
- "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
536
- },
537
- {
538
- "name": "zh-cn",
539
- "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
540
- },
541
- {
542
- "name": "zh-hk",
543
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports"
544
- },
545
- {
546
- "name": "ja",
547
- "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
548
- },
549
- {
550
- "name": "ua",
551
- "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
552
- },
553
- {
554
- "name": "fr",
555
- "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
556
- },
557
- {
558
- "name": "ko",
559
- "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
560
- },
561
- {
562
- "name": "pt",
563
- "url": "https://pt.vuejs.org/api/sfc-spec.html#src-imports"
564
- },
565
- {
566
- "name": "bn",
567
- "url": "https://bn.vuejs.org/api/sfc-spec.html#src-imports"
568
- },
569
- {
570
- "name": "it",
571
- "url": "https://it.vuejs.org/api/sfc-spec.html#src-imports"
572
- },
573
- {
574
- "name": "cs",
575
- "url": "https://cs.vuejs.org/api/sfc-spec.html#src-imports"
576
- },
577
- {
578
- "name": "ru",
579
- "url": "https://ru.vuejs.org/api/sfc-spec.html#src-imports"
580
- },
581
- {
582
- "name": "fa",
583
- "url": "https://fa.vuejs.org/api/sfc-spec.html#src-imports"
584
- }
585
- ]
108
+ "references": "api/sfc-spec.html#src-imports"
586
109
  },
587
110
  {
588
111
  "name": "lang",
589
112
  "description": {
590
113
  "kind": "markdown",
591
- "value": "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n"
114
+ "value": "Os blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)"
592
115
  },
593
116
  "values": [
594
117
  {
@@ -610,244 +133,32 @@
610
133
  "name": "sass"
611
134
  }
612
135
  ],
613
- "references": [
614
- {
615
- "name": "en",
616
- "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
617
- },
618
- {
619
- "name": "zh-cn",
620
- "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
621
- },
622
- {
623
- "name": "zh-hk",
624
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors"
625
- },
626
- {
627
- "name": "ja",
628
- "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
629
- },
630
- {
631
- "name": "ua",
632
- "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
633
- },
634
- {
635
- "name": "fr",
636
- "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
637
- },
638
- {
639
- "name": "ko",
640
- "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
641
- },
642
- {
643
- "name": "pt",
644
- "url": "https://pt.vuejs.org/api/sfc-spec.html#pre-processors"
645
- },
646
- {
647
- "name": "bn",
648
- "url": "https://bn.vuejs.org/api/sfc-spec.html#pre-processors"
649
- },
650
- {
651
- "name": "it",
652
- "url": "https://it.vuejs.org/api/sfc-spec.html#pre-processors"
653
- },
654
- {
655
- "name": "cs",
656
- "url": "https://cs.vuejs.org/api/sfc-spec.html#pre-processors"
657
- },
658
- {
659
- "name": "ru",
660
- "url": "https://ru.vuejs.org/api/sfc-spec.html#pre-processors"
661
- },
662
- {
663
- "name": "fa",
664
- "url": "https://fa.vuejs.org/api/sfc-spec.html#pre-processors"
665
- }
666
- ]
136
+ "references": "api/sfc-spec.html#pre-processors"
667
137
  },
668
138
  {
669
139
  "name": "scoped",
670
140
  "valueSet": "v",
671
141
  "description": {
672
142
  "kind": "markdown",
673
- "value": "\nQuando um marcador `<style>` tiver o atributo `scoped`, o seu CSS apenas aplicar-se-á aos elementos do componente atual. Isto é semelhante ao encapsulamento de estilo encontrado no DOM de Sombra. Ele vem com algumas advertências, mas não exige quaisquer preenchimento de funcionalidade. Ele é alcançado usando PostCSS para transformar o seguinte:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\nNo seguinte:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### Elementos de Raiz do Componente Filho \n\nCom `scoped`, os estilos do componente pai não passarão para os componentes filhos. No entanto, um nó de raiz do componente filho será afetado por ambas CSS isolada do pai e a CSS isolada do filho. Isto é de propósito para que o pai possa estilizar o elemento de raiz filho para fins de disposição.\n\n### Seletores Profundos \n\nSe quisermos que um seletor nos estilos `scoped` torne-se \"profundo\", ou seja, afete componentes filho, podemos usar a pseudo-classe `:deep()`:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nO código acima será compilado para:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip DICA\nOs conteúdos do DOM criados com `v-html` não são afetados pelos estilos isolados, mas ainda podemos estilizá-los usando seletores profundos.\n:::\n\n### Seletores Inseridos \n\nPor padrão, os estilos isolados não afetam os conteúdos interpretados pelo `<slot/>`, uma vez que são considerados ser propriedade do componente pai que está a passá-los. Para explicitamente atingir o conteúdo da ranhura, usamos a pseudo-classe `:slotted`:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Seletores Globais \n\nSe quisermos que apenas uma regra aplique-se globalmente, podemos usar a pseudo-classe `:global` ao invés de criar um outro `<style>` (consulte o exemplo abaixo):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Misturando Estilos Locais e Globais \n\nNós também podemos incluir ambos estilos isolados e não isolados no mesmo componente:\n\n```vue\n<style>\n/* estilos globais */\n</style>\n\n<style scoped>\n/* estilos locais */\n</style>\n```\n\n### Dicas de Estilo Isolado \n\n- **Os estilos isolados não eliminam a necessidade de classes**. Por causa da maneira que os navegadores interpretam os vários seletores de CSS, `p { color: red }` será muitas vezes mais lento quando isolado (ou seja, quando combinado com um seletor de atributo). Se usarmos as classes (por exemplo, `.class-name`) ou identificadores (por exemplo, `#id-name`), tal como em `.example { color: red }`, então eliminamos virtualmente este impacto de desempenho.\n\n- **Temos que ter cuidado com os seletores de descendentes nos componentes recursivos!** Para um regara de CSS com o seletor `.a .b`, se o elemento que corresponde `.a` contiver um componente filho recursivo, então todos os `.b` neste componente filho serão correspondidos pela regra.\n"
143
+ "value": "Quando um marcador `<style>` tiver o atributo `scoped`, o seu CSS apenas aplicar-se-á aos elementos do componente atual. Isto é semelhante ao encapsulamento de estilo encontrado no DOM de Sombra. Ele vem com algumas advertências, mas não exige quaisquer preenchimento de funcionalidade. Ele é alcançado usando PostCSS para transformar o seguinte:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">hi</div>\n</template>\n```\n\nNo seguinte:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>hi</div>\n</template>\n```\n\n### Elementos de Raiz do Componente Filho \n\nCom `scoped`, os estilos do componente pai não passarão para os componentes filhos. No entanto, um nó de raiz do componente filho será afetado por ambas CSS isolada do pai e a CSS isolada do filho. Isto é de propósito para que o pai possa estilizar o elemento de raiz filho para fins de disposição.\n\n### Seletores Profundos \n\nSe quisermos que um seletor nos estilos `scoped` torne-se \"profundo\", ou seja, afete componentes filho, podemos usar a pseudo-classe `:deep()`:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\nO código acima será compilado para:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip DICA\nOs conteúdos do DOM criados com `v-html` não são afetados pelos estilos isolados, mas ainda podemos estilizá-los usando seletores profundos.\n:::\n\n### Seletores Inseridos \n\nPor padrão, os estilos isolados não afetam os conteúdos interpretados pelo `<slot/>`, uma vez que são considerados ser propriedade do componente pai que está a passá-los. Para explicitamente atingir o conteúdo da ranhura, usamos a pseudo-classe `:slotted`:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### Seletores Globais \n\nSe quisermos que apenas uma regra aplique-se globalmente, podemos usar a pseudo-classe `:global` ao invés de criar um outro `<style>` (consulte o exemplo abaixo):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### Misturando Estilos Locais e Globais \n\nNós também podemos incluir ambos estilos isolados e não isolados no mesmo componente:\n\n```vue\n<style>\n/* estilos globais */\n</style>\n\n<style scoped>\n/* estilos locais */\n</style>\n```\n\n### Dicas de Estilo Isolado \n\n- **Os estilos isolados não eliminam a necessidade de classes**. Por causa da maneira que os navegadores interpretam os vários seletores de CSS, `p { color: red }` será muitas vezes mais lento quando isolado (ou seja, quando combinado com um seletor de atributo). Se usarmos as classes (por exemplo, `.class-name`) ou identificadores (por exemplo, `#id-name`), tal como em `.example { color: red }`, então eliminamos virtualmente este impacto de desempenho.\n\n- **Temos que ter cuidado com os seletores de descendentes nos componentes recursivos!** Para um regara de CSS com o seletor `.a .b`, se o elemento que corresponde `.a` contiver um componente filho recursivo, então todos os `.b` neste componente filho serão correspondidos pela regra."
674
144
  },
675
- "references": [
676
- {
677
- "name": "en",
678
- "url": "https://vuejs.org/api/sfc-css-features.html#scoped-css"
679
- },
680
- {
681
- "name": "zh-cn",
682
- "url": "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css"
683
- },
684
- {
685
- "name": "zh-hk",
686
- "url": "https://zh-hk.vuejs.org/api/sfc-css-features.html#scoped-css"
687
- },
688
- {
689
- "name": "ja",
690
- "url": "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css"
691
- },
692
- {
693
- "name": "ua",
694
- "url": "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css"
695
- },
696
- {
697
- "name": "fr",
698
- "url": "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css"
699
- },
700
- {
701
- "name": "ko",
702
- "url": "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css"
703
- },
704
- {
705
- "name": "pt",
706
- "url": "https://pt.vuejs.org/api/sfc-css-features.html#scoped-css"
707
- },
708
- {
709
- "name": "bn",
710
- "url": "https://bn.vuejs.org/api/sfc-css-features.html#scoped-css"
711
- },
712
- {
713
- "name": "it",
714
- "url": "https://it.vuejs.org/api/sfc-css-features.html#scoped-css"
715
- },
716
- {
717
- "name": "cs",
718
- "url": "https://cs.vuejs.org/api/sfc-css-features.html#scoped-css"
719
- },
720
- {
721
- "name": "ru",
722
- "url": "https://ru.vuejs.org/api/sfc-css-features.html#scoped-css"
723
- },
724
- {
725
- "name": "fa",
726
- "url": "https://fa.vuejs.org/api/sfc-css-features.html#scoped-css"
727
- }
728
- ]
145
+ "references": "api/sfc-css-features.html#scoped-css"
729
146
  },
730
147
  {
731
148
  "name": "module",
732
149
  "valueSet": "v",
733
150
  "description": {
734
151
  "kind": "markdown",
735
- "value": "\nUm marcador `<style module>` é compilado como [Módulos de CSS](https://github.com/css-modules/css-modules) e expõe as classes de CSS resultantes ao componente como um objeto sob a chave de `$style`:\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nAs classes resultantes têm o seu nome gerados com caracteres embaralhados para evitar colisões, alcançando o mesmo efeito de isolar o CSS apenas ao componente atual.\n\nConsulte a [especificação dos Módulos de CSS](https://github.com/css-modules/css-modules) por mais detalhes, tais como [exceções globais](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) e [composição](https://github.com/css-modules/css-modules#composition).\n\n### Nome de Injeção Personalizado \n\nNós podemos personalizar a chave da propriedade do objeto de classes injetadas dando ao atributo `module` um valor:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Uso com API de Composição \n\nAs classes injetadas podem ser acessadas na `setup()` e no `<script setup>` através da API `useCssModule`. Para os blocos `<style module>` com nomes de injeção personalizados, `useCssModule` aceita o valor do atributo `module` correspondente como primeiro argumento:\n\n```js\nimport { useCssModule } from 'vue'\n\n// dentro do âmbito de setup()...\n// padrão, retorna as classes do marcador `<style module>`\nuseCssModule()\n\n// personalizado, retorna as classes do marcador `<style module=\"classes\">`\nuseCssModule('classes')\n```\n"
152
+ "value": "Um marcador `<style module>` é compilado como [Módulos de CSS](https://github.com/css-modules/css-modules) e expõe as classes de CSS resultantes ao componente como um objeto sob a chave de `$style`:\n\n```vue\n<template>\n <p :class=\"$style.red\">This should be red</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\nAs classes resultantes têm o seu nome gerados com caracteres embaralhados para evitar colisões, alcançando o mesmo efeito de isolar o CSS apenas ao componente atual.\n\nConsulte a [especificação dos Módulos de CSS](https://github.com/css-modules/css-modules) por mais detalhes, tais como [exceções globais](https://github.com/css-modules/css-modules/blob/master/docs/composition.md#exceptions) e [composição](https://github.com/css-modules/css-modules#composition).\n\n### Nome de Injeção Personalizado \n\nNós podemos personalizar a chave da propriedade do objeto de classes injetadas dando ao atributo `module` um valor:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### Uso com API de Composição \n\nAs classes injetadas podem ser acessadas na `setup()` e no `<script setup>` através da API `useCssModule`. Para os blocos `<style module>` com nomes de injeção personalizados, `useCssModule` aceita o valor do atributo `module` correspondente como primeiro argumento:\n\n```js\nimport { useCssModule } from 'vue'\n\n// dentro do âmbito de setup()...\n// padrão, retorna as classes do marcador `<style module>`\nuseCssModule()\n\n// personalizado, retorna as classes do marcador `<style module=\"classes\">`\nuseCssModule('classes')\n```"
736
153
  },
737
- "references": [
738
- {
739
- "name": "en",
740
- "url": "https://vuejs.org/api/sfc-css-features.html#css-modules"
741
- },
742
- {
743
- "name": "zh-cn",
744
- "url": "https://cn.vuejs.org/api/sfc-css-features.html#css-modules"
745
- },
746
- {
747
- "name": "zh-hk",
748
- "url": "https://zh-hk.vuejs.org/api/sfc-css-features.html#css-modules"
749
- },
750
- {
751
- "name": "ja",
752
- "url": "https://ja.vuejs.org/api/sfc-css-features.html#css-modules"
753
- },
754
- {
755
- "name": "ua",
756
- "url": "https://ua.vuejs.org/api/sfc-css-features.html#css-modules"
757
- },
758
- {
759
- "name": "fr",
760
- "url": "https://fr.vuejs.org/api/sfc-css-features.html#css-modules"
761
- },
762
- {
763
- "name": "ko",
764
- "url": "https://ko.vuejs.org/api/sfc-css-features.html#css-modules"
765
- },
766
- {
767
- "name": "pt",
768
- "url": "https://pt.vuejs.org/api/sfc-css-features.html#css-modules"
769
- },
770
- {
771
- "name": "bn",
772
- "url": "https://bn.vuejs.org/api/sfc-css-features.html#css-modules"
773
- },
774
- {
775
- "name": "it",
776
- "url": "https://it.vuejs.org/api/sfc-css-features.html#css-modules"
777
- },
778
- {
779
- "name": "cs",
780
- "url": "https://cs.vuejs.org/api/sfc-css-features.html#css-modules"
781
- },
782
- {
783
- "name": "ru",
784
- "url": "https://ru.vuejs.org/api/sfc-css-features.html#css-modules"
785
- },
786
- {
787
- "name": "fa",
788
- "url": "https://fa.vuejs.org/api/sfc-css-features.html#css-modules"
789
- }
790
- ]
154
+ "references": "api/sfc-css-features.html#css-modules"
791
155
  }
792
156
  ],
793
157
  "description": {
794
158
  "kind": "markdown",
795
159
  "value": "\n- Um único ficheiro `*.vue` pode conter vários marcadores de `<style>`.\n\n- Um marcador `<style>` pode ter os atributos `scoped` ou `module` (consulte [Funcionalidades de Estilo do Componente de Ficheiro Único](https://pt.vuejs.org/api/sfc-css-features.html) por mais detalhes) para ajudar a encapsular os estilos ao componente atual. Vários marcadores de `<style>` com diferentes modos de encapsulamento podem ser misturados no mesmo componente.\n"
796
160
  },
797
- "references": [
798
- {
799
- "name": "en",
800
- "url": "https://vuejs.org/api/sfc-spec.html#style"
801
- },
802
- {
803
- "name": "zh-cn",
804
- "url": "https://cn.vuejs.org/api/sfc-spec.html#style"
805
- },
806
- {
807
- "name": "zh-hk",
808
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#style"
809
- },
810
- {
811
- "name": "ja",
812
- "url": "https://ja.vuejs.org/api/sfc-spec.html#style"
813
- },
814
- {
815
- "name": "ua",
816
- "url": "https://ua.vuejs.org/api/sfc-spec.html#style"
817
- },
818
- {
819
- "name": "fr",
820
- "url": "https://fr.vuejs.org/api/sfc-spec.html#style"
821
- },
822
- {
823
- "name": "ko",
824
- "url": "https://ko.vuejs.org/api/sfc-spec.html#style"
825
- },
826
- {
827
- "name": "pt",
828
- "url": "https://pt.vuejs.org/api/sfc-spec.html#style"
829
- },
830
- {
831
- "name": "bn",
832
- "url": "https://bn.vuejs.org/api/sfc-spec.html#style"
833
- },
834
- {
835
- "name": "it",
836
- "url": "https://it.vuejs.org/api/sfc-spec.html#style"
837
- },
838
- {
839
- "name": "cs",
840
- "url": "https://cs.vuejs.org/api/sfc-spec.html#style"
841
- },
842
- {
843
- "name": "ru",
844
- "url": "https://ru.vuejs.org/api/sfc-spec.html#style"
845
- },
846
- {
847
- "name": "fa",
848
- "url": "https://fa.vuejs.org/api/sfc-spec.html#style"
849
- }
850
- ]
161
+ "references": "api/sfc-spec.html#style"
851
162
  },
852
163
  {
853
164
  "name": "Blocos Personalizados",
@@ -856,122 +167,16 @@
856
167
  "name": "src",
857
168
  "description": {
858
169
  "kind": "markdown",
859
- "value": "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
170
+ "value": "Se preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```"
860
171
  },
861
- "references": [
862
- {
863
- "name": "en",
864
- "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
865
- },
866
- {
867
- "name": "zh-cn",
868
- "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
869
- },
870
- {
871
- "name": "zh-hk",
872
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports"
873
- },
874
- {
875
- "name": "ja",
876
- "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
877
- },
878
- {
879
- "name": "ua",
880
- "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
881
- },
882
- {
883
- "name": "fr",
884
- "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
885
- },
886
- {
887
- "name": "ko",
888
- "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
889
- },
890
- {
891
- "name": "pt",
892
- "url": "https://pt.vuejs.org/api/sfc-spec.html#src-imports"
893
- },
894
- {
895
- "name": "bn",
896
- "url": "https://bn.vuejs.org/api/sfc-spec.html#src-imports"
897
- },
898
- {
899
- "name": "it",
900
- "url": "https://it.vuejs.org/api/sfc-spec.html#src-imports"
901
- },
902
- {
903
- "name": "cs",
904
- "url": "https://cs.vuejs.org/api/sfc-spec.html#src-imports"
905
- },
906
- {
907
- "name": "ru",
908
- "url": "https://ru.vuejs.org/api/sfc-spec.html#src-imports"
909
- },
910
- {
911
- "name": "fa",
912
- "url": "https://fa.vuejs.org/api/sfc-spec.html#src-imports"
913
- }
914
- ]
172
+ "references": "api/sfc-spec.html#src-imports"
915
173
  }
916
174
  ],
917
175
  "description": {
918
176
  "kind": "markdown",
919
177
  "value": "\nOs blocos personalizados podem ser incluídos num ficheiro `*.vue` por qualquer necessidade específica do projeto, por exemplo um bloco `<docs>`. Alguns exemplos do mundo real de blocos personalizados incluem:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n#i18n-custom-block)\n\nA manipulação dos blocos personalizados dependerá do ferramental - se quisermos construir as nossas próprias integrações de bloco personalizado, podemos consultar a [seção de ferramental de integrações de bloco personalizado do Componente de Ficheiro Único](https://pt.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations) por mais detalhes.\n"
920
178
  },
921
- "references": [
922
- {
923
- "name": "en",
924
- "url": "https://vuejs.org/api/sfc-spec.html#blocos-personalizados"
925
- },
926
- {
927
- "name": "zh-cn",
928
- "url": "https://cn.vuejs.org/api/sfc-spec.html#blocos-personalizados"
929
- },
930
- {
931
- "name": "zh-hk",
932
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#blocos-personalizados"
933
- },
934
- {
935
- "name": "ja",
936
- "url": "https://ja.vuejs.org/api/sfc-spec.html#blocos-personalizados"
937
- },
938
- {
939
- "name": "ua",
940
- "url": "https://ua.vuejs.org/api/sfc-spec.html#blocos-personalizados"
941
- },
942
- {
943
- "name": "fr",
944
- "url": "https://fr.vuejs.org/api/sfc-spec.html#blocos-personalizados"
945
- },
946
- {
947
- "name": "ko",
948
- "url": "https://ko.vuejs.org/api/sfc-spec.html#blocos-personalizados"
949
- },
950
- {
951
- "name": "pt",
952
- "url": "https://pt.vuejs.org/api/sfc-spec.html#blocos-personalizados"
953
- },
954
- {
955
- "name": "bn",
956
- "url": "https://bn.vuejs.org/api/sfc-spec.html#blocos-personalizados"
957
- },
958
- {
959
- "name": "it",
960
- "url": "https://it.vuejs.org/api/sfc-spec.html#blocos-personalizados"
961
- },
962
- {
963
- "name": "cs",
964
- "url": "https://cs.vuejs.org/api/sfc-spec.html#blocos-personalizados"
965
- },
966
- {
967
- "name": "ru",
968
- "url": "https://ru.vuejs.org/api/sfc-spec.html#blocos-personalizados"
969
- },
970
- {
971
- "name": "fa",
972
- "url": "https://fa.vuejs.org/api/sfc-spec.html#blocos-personalizados"
973
- }
974
- ]
179
+ "references": "api/sfc-spec.html#blocos-personalizados"
975
180
  }
976
181
  ],
977
182
  "globalAttributes": [
@@ -979,124 +184,18 @@
979
184
  "name": "lang",
980
185
  "description": {
981
186
  "kind": "markdown",
982
- "value": "\nOs blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)\n"
187
+ "value": "Os blocos podem declarar linguagens pré-processadoras usando o atributo `lang`. O caso mais comum é usar TypeScript para o bloco `<script>`:\n\n\n```html\n<script lang=\"ts\">\n // usar TypeScript\n</script>\n```\n\n`lang` pode ser aplicado à qualquer bloco - por exemplo, podemos usar o `<style>` com a [Sass](https://sass-docs-pt.netlify.app/) e o `<template>` com a [Pug](https://pugjs.org/api/getting-started.html):\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\nNota que a integração com os vários pré-processadores pode diferir conforme a cadeia de ferramenta. Consulte a respetiva documentação por exemplos:\n\n- [Vite](https://pt.vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css.html#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors.html#using-pre-processors)"
983
188
  },
984
189
  "values": [],
985
- "references": [
986
- {
987
- "name": "en",
988
- "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
989
- },
990
- {
991
- "name": "zh-cn",
992
- "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
993
- },
994
- {
995
- "name": "zh-hk",
996
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#pre-processors"
997
- },
998
- {
999
- "name": "ja",
1000
- "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
1001
- },
1002
- {
1003
- "name": "ua",
1004
- "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
1005
- },
1006
- {
1007
- "name": "fr",
1008
- "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
1009
- },
1010
- {
1011
- "name": "ko",
1012
- "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
1013
- },
1014
- {
1015
- "name": "pt",
1016
- "url": "https://pt.vuejs.org/api/sfc-spec.html#pre-processors"
1017
- },
1018
- {
1019
- "name": "bn",
1020
- "url": "https://bn.vuejs.org/api/sfc-spec.html#pre-processors"
1021
- },
1022
- {
1023
- "name": "it",
1024
- "url": "https://it.vuejs.org/api/sfc-spec.html#pre-processors"
1025
- },
1026
- {
1027
- "name": "cs",
1028
- "url": "https://cs.vuejs.org/api/sfc-spec.html#pre-processors"
1029
- },
1030
- {
1031
- "name": "ru",
1032
- "url": "https://ru.vuejs.org/api/sfc-spec.html#pre-processors"
1033
- },
1034
- {
1035
- "name": "fa",
1036
- "url": "https://fa.vuejs.org/api/sfc-spec.html#pre-processors"
1037
- }
1038
- ]
190
+ "references": "api/sfc-spec.html#pre-processors"
1039
191
  },
1040
192
  {
1041
193
  "name": "src",
1042
194
  "description": {
1043
195
  "kind": "markdown",
1044
- "value": "\nSe preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
196
+ "value": "Se preferirmos separar os nossos componentes `*.vue` em vários ficheiros, podemos usar o atributo `src` para importar um ficheiro externo para um bloco de linguagem:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\nDevemos estar ciente de que as importações de `src` seguem as mesmas regras de resolução de caminho que as requisições de módulo da Webpack, o que significa que:\n\n- Os caminhos relativos precisam começar com `./`\n- Nós podemos importar recursos a partir das dependências do npm:\n\n```vue\n<!-- importar um ficheiro dum pacote \"todomvc-app-css\" instalado -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\nAs importações de `src` também funcionam com os blocos personalizados, por exemplo:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```"
1045
197
  },
1046
- "references": [
1047
- {
1048
- "name": "en",
1049
- "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
1050
- },
1051
- {
1052
- "name": "zh-cn",
1053
- "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
1054
- },
1055
- {
1056
- "name": "zh-hk",
1057
- "url": "https://zh-hk.vuejs.org/api/sfc-spec.html#src-imports"
1058
- },
1059
- {
1060
- "name": "ja",
1061
- "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
1062
- },
1063
- {
1064
- "name": "ua",
1065
- "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
1066
- },
1067
- {
1068
- "name": "fr",
1069
- "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
1070
- },
1071
- {
1072
- "name": "ko",
1073
- "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
1074
- },
1075
- {
1076
- "name": "pt",
1077
- "url": "https://pt.vuejs.org/api/sfc-spec.html#src-imports"
1078
- },
1079
- {
1080
- "name": "bn",
1081
- "url": "https://bn.vuejs.org/api/sfc-spec.html#src-imports"
1082
- },
1083
- {
1084
- "name": "it",
1085
- "url": "https://it.vuejs.org/api/sfc-spec.html#src-imports"
1086
- },
1087
- {
1088
- "name": "cs",
1089
- "url": "https://cs.vuejs.org/api/sfc-spec.html#src-imports"
1090
- },
1091
- {
1092
- "name": "ru",
1093
- "url": "https://ru.vuejs.org/api/sfc-spec.html#src-imports"
1094
- },
1095
- {
1096
- "name": "fa",
1097
- "url": "https://fa.vuejs.org/api/sfc-spec.html#src-imports"
1098
- }
1099
- ]
198
+ "references": "api/sfc-spec.html#src-imports"
1100
199
  }
1101
200
  ]
1102
201
  }