@nodaro/shared 3.10.0 → 3.12.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 (72) hide show
  1. package/dist/index.cjs +2242 -86
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +1779 -32
  4. package/dist/index.d.ts +1779 -32
  5. package/dist/index.js +2041 -87
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/__tests__/caption-styles.test.ts +207 -0
  9. package/src/__tests__/edl-multicam.test.ts +304 -0
  10. package/src/__tests__/edl.test.ts +822 -0
  11. package/src/__tests__/fan-out-rows.test.ts +208 -0
  12. package/src/__tests__/instagram-scrape.test.ts +66 -0
  13. package/src/__tests__/llm-models.test.ts +48 -11
  14. package/src/__tests__/meta-ads-scrape.test.ts +284 -0
  15. package/src/__tests__/node-runtime-keys.test.ts +15 -0
  16. package/src/__tests__/parameter-node-value.test.ts +13 -1
  17. package/src/__tests__/presentation-utils.test.ts +67 -0
  18. package/src/__tests__/producer-types.test.ts +19 -0
  19. package/src/__tests__/schedule-rules.test.ts +265 -0
  20. package/src/__tests__/speaker-layouts.test.ts +203 -0
  21. package/src/__tests__/transcribe-capabilities.test.ts +104 -0
  22. package/src/__tests__/transcribe-preflight.test.ts +60 -0
  23. package/src/__tests__/trigger-feeds.test.ts +39 -0
  24. package/src/__tests__/video-analysis.test.ts +15 -0
  25. package/src/__tests__/video-duration-auto.test.ts +65 -0
  26. package/src/__tests__/video-duration.test.ts +56 -0
  27. package/src/__tests__/video-frame-fit.test.ts +189 -0
  28. package/src/__tests__/video-link.test.ts +137 -0
  29. package/src/__tests__/workflow-export-strip.test.ts +59 -1
  30. package/src/caption-styles.ts +240 -0
  31. package/src/catalog-projection.ts +3 -0
  32. package/src/character-motion-metadata.ts +19 -0
  33. package/src/credit-identifiers.ts +31 -0
  34. package/src/edit-plan-contract.ts +96 -0
  35. package/src/edl-multicam.ts +185 -0
  36. package/src/edl.ts +747 -0
  37. package/src/entity-image-handle.ts +24 -1
  38. package/src/fan-out-rows.ts +213 -0
  39. package/src/i18n/character-motion.ar.ts +126 -75
  40. package/src/i18n/character-motion.de.ts +126 -75
  41. package/src/i18n/character-motion.es.ts +126 -75
  42. package/src/i18n/character-motion.fr.ts +126 -75
  43. package/src/i18n/character-motion.he.ts +126 -75
  44. package/src/i18n/character-motion.hi.ts +126 -75
  45. package/src/i18n/character-motion.ja.ts +126 -75
  46. package/src/i18n/character-motion.ko.ts +126 -75
  47. package/src/i18n/character-motion.pt-BR.ts +126 -75
  48. package/src/i18n/character-motion.ru.ts +126 -75
  49. package/src/i18n/character-motion.zh-CN.ts +126 -75
  50. package/src/index.ts +211 -3
  51. package/src/instagram-scrape.ts +204 -0
  52. package/src/llm-models.ts +80 -3
  53. package/src/meta-ads-scrape.ts +463 -0
  54. package/src/model-catalog.ts +48 -5
  55. package/src/model-constants.ts +148 -5
  56. package/src/node-mappable-fields.ts +2 -0
  57. package/src/node-runtime-keys.ts +28 -0
  58. package/src/parameter-node-value.ts +31 -5
  59. package/src/presentation-utils.ts +49 -0
  60. package/src/producer-types.ts +20 -0
  61. package/src/schedule-rules.ts +484 -0
  62. package/src/speaker-layouts.ts +220 -0
  63. package/src/transcribe-preflight.ts +101 -0
  64. package/src/trigger-feeds.ts +59 -0
  65. package/src/trigger-node-types.ts +20 -0
  66. package/src/video-analysis.ts +15 -0
  67. package/src/video-duration-auto.ts +18 -0
  68. package/src/video-duration.ts +32 -0
  69. package/src/video-frame-fit.ts +228 -0
  70. package/src/video-link.ts +167 -0
  71. package/src/video-output-canvas.ts +119 -0
  72. package/src/workflow-export.ts +37 -1
@@ -10,36 +10,36 @@ const map: LocaleCatalogMap = {
10
10
  "approach-from-background": { label: "Vir do Fundo", description: "Figura distante caminha até o meio do quadro" },
11
11
  "walk-up-to-camera": { label: "Andar até a Câmera", description: "Aproxima-se até o rosto preencher o quadro" },
12
12
  "run-toward-camera": { label: "Correr até a Câmera", description: "Dispara direto para a lente e freia de repente" },
13
- "run-in-and-stop": { label: "Entrar Correndo e Parar", description: "Entra correndo pela esquerda e freia no centro" },
13
+ "run-in-and-stop": { label: "Entrar correndo pela esquerda e parar", description: "Entra correndo pela esquerda do quadro e para perto do centro." },
14
14
  "burst-in-through-doorway": { label: "Irromper pela Porta", description: "Arromba uma porta e finca os dois pés no chão" },
15
15
  "kick-open-door": { label: "Chutar a Porta", description: "Abre a porta com um chute por trás e entra a passos largos" },
16
16
  "dive-through-window": { label: "Mergulhar pela Janela", description: "Salta de cabeça pela janela e rola até ficar de pé" },
17
17
  "climb-through-window": { label: "Entrar pela Janela", description: "Iça-se sobre o parapeito e desce até o chão" },
18
- "stumble-in": { label: "Entrar Tropeçando", description: "Entra tropeçando pela direita e recupera o equilíbrio" },
19
- "sneak-in": { label: "Entrar Sorrateiramente", description: "Entra rente ao chão pela esquerda, depois se levanta" },
20
- "dash-across-frame": { label: "Atravessar o Quadro Correndo", description: "Dispara pela esquerda e sai pela borda direita" },
21
- "slide-in-on-knees": { label: "Entrar Deslizando de Joelhos", description: "Entra deslizando de joelhos, braços abertos" },
18
+ "stumble-in": { label: "Entrar tropeçando — direita", description: "Entra tropeçando pela direita e recupera o equilíbrio (direita do quadro)." },
19
+ "sneak-in": { label: "Entrar de fininho — esquerda", description: "Entra agachado de fininho pela esquerda e depois fica de pé (esquerda do quadro)." },
20
+ "dash-across-frame": { label: "Atravessar o quadro em disparada — da esquerda para a direita", description: "Entra em disparada pela esquerda e sai pela borda direita (da esquerda para a direita do quadro)." },
21
+ "slide-in-on-knees": { label: "Entrar deslizando de joelhos pela esquerda", description: "Entra deslizando sobre os dois joelhos pela esquerda do quadro e para." },
22
22
  "sock-slide-into-frame": { label: "Deslizar de Meias", description: "Entra derrapando de meias e se equilibra" },
23
23
  "drop-in-from-above": { label: "Cair do Alto", description: "Aterrissa vindo de cima, amortece nos joelhos e se levanta" },
24
24
  "rise-into-frame": { label: "Surgir de Baixo", description: "Levanta-se e entra em quadro pela borda inferior" },
25
25
  "pop-up-from-cover": { label: "Surgir do Esconderijo", description: "Salta à vista por trás de um anteparo em primeiro plano" },
26
- "lean-into-frame": { label: "Inclinar-se no Quadro", description: "Cabeça e ombros entram inclinados e depois recuam" },
27
- "peek-into-frame": { label: "Espiar no Quadro", description: "A cabeça surge pela borda direita, olhos na lente" },
26
+ "lean-into-frame": { label: "Inclinar-se para dentro do quadro — esquerda", description: "Cabeça e ombros se inclinam para dentro e depois voltam para fora (esquerda do quadro)." },
27
+ "peek-into-frame": { label: "Espiar pela direita do quadro", description: "Inclina a cabeça para dentro do quadro pela direita e mantém a espiada." },
28
28
  "enter-through-doorway": { label: "Entrar pela Porta", description: "Cruza a soleira e entra em quadro caminhando" },
29
29
  "step-out-of-shadow": { label: "Sair das Sombras", description: "Emerge de um canto escuro para plena vista" },
30
30
  "emerge-from-crowd": { label: "Surgir da Multidão", description: "Atravessa a massa de gente até um espaço aberto" },
31
31
  "step-around-corner": { label: "Surgir da Esquina", description: "Primeiro o ombro, depois o corpo gira à vista" },
32
- "walk-out-left": { label: "Sair Andando pela Esquerda", description: "Atravessa a partir do centro e sai pela borda esquerda" },
33
- "walk-out-right": { label: "Sair Andando pela Direita", description: "Atravessa a partir do centro e sai pela borda direita" },
34
- "run-out-of-frame": { label: "Sair Correndo do Quadro", description: "Arranca do centro numa corrida e sai pela borda direita" },
32
+ "walk-out-left": { label: "Sair do quadro pela esquerda", description: "Sai andando pela borda esquerda do quadro." },
33
+ "walk-out-right": { label: "Sair do quadro pela direita", description: "Sai andando pela borda direita do quadro." },
34
+ "run-out-of-frame": { label: "Sair correndo pela direita do quadro", description: "Sai correndo de cena pela borda direita." },
35
35
  "walk-away-into-distance": { label: "Andar para Longe", description: "De costas para a câmera, some encolhendo ao fundo" },
36
36
  "run-away-into-distance": { label: "Correr para Longe", description: "De costas para a câmera, dispara rumo ao fundo" },
37
37
  "turn-and-walk-away": { label: "Virar e Sair Andando", description: "Gira de costas para a câmera e sai andando" },
38
- "back-out-of-frame": { label: "Sair de Costas", description: "Recua de costas até sair do quadro" },
38
+ "back-out-of-frame": { label: "Recuar para fora do quadro pela esquerda", description: "Recua na diagonal até sair pela borda esquerda." },
39
39
  "dragged-out-of-frame": { label: "Arrastado(a) para Fora", description: "Puxado(a) de costas para fora do plano, mãos arranhando o chão" },
40
- "exit-past-camera": { label: "Sair Passando pela Câmera", description: "Caminha até a lente e passa por ela" },
41
- "duck-out-of-frame": { label: "Sair Agachando", description: "Agacha-se e sai pela borda inferior" },
42
- "exit-through-doorway": { label: "Sair pela Porta", description: "Abre uma porta, passa por ela e a fecha" },
40
+ "exit-past-camera": { label: "Sair passando pela câmera", description: "Passa pela câmera e sai de cena." },
41
+ "duck-out-of-frame": { label: "Abaixar-se para fora do quadro", description: "Abaixa o corpo até sumir abaixo do quadro." },
42
+ "exit-through-doorway": { label: "Sair por uma porta", description: "Atravessa uma porta e sai de cena." },
43
43
  // ── Turns & Looks ──
44
44
  "turn-to-camera": { label: "Virar-se para a Câmera", description: "O corpo inteiro gira de costas até ficar de frente para a câmera" },
45
45
  "turn-away-from-camera": { label: "Virar-se de Costas", description: "O corpo inteiro gira até ficar de costas para a câmera" },
@@ -157,12 +157,12 @@ const map: LocaleCatalogMap = {
157
157
  "pivot-mid-stride": { label: "Giro em Plena Passada", description: "Meia-volta contínua na planta do pé, sem pausa" },
158
158
  "stomp-editorial-walk": { label: "Pisada Editorial", description: "Passadas pesadas com o calcanhar primeiro, joelhos subindo, braços rígidos" },
159
159
  "sway-hips-walk": { label: "Balanço de Quadril", description: "Balanço exagerado do quadril a cada passo" },
160
- "stalk-high-fashion-walk": { label: "Andar de Alta-Costura", description: "Tronco rígido, braços colados, passadas longas e duras, rosto neutro" },
161
- "stop-and-pose": { label: "Parar e Posar", description: "Firma os pés, joga o peso para trás, queixo erguido, segura e segue" },
160
+ "stalk-high-fashion-walk": { label: "Andar com os braços rígidos", description: "Tronco rígido, braços colados, passadas longas e duras, rosto inexpressivo" },
161
+ "stop-and-pose": { label: "Parar e posar", description: "Para de andar, passa o peso para uma perna e mantém uma pose." },
162
162
  "land-hand-on-hip": { label: "Parada com Mão na Cintura", description: "Chega, uma mão sobe à cintura, cotovelo para fora" },
163
163
  "flip-the-hair": { label: "Jogada de Cabelo", description: "A cabeça desce e chicoteia, o cabelo faz um arco e assenta" },
164
164
  "sweep-hair-back": { label: "Afastar o Cabelo", description: "Uma mão afasta o cabelo do rosto enquanto caminha" },
165
- "drop-coat-off-shoulders": { label: "Casaco ao Chão", description: "Tira o casaco dos ombros e o deixa cair, revelando o visual" },
165
+ "drop-coat-off-shoulders": { label: "Deixar o casaco cair dos ombros", description: "Desliza um casaco pelos ombros mantendo a roupa de baixo." },
166
166
  "hook-jacket-over-shoulder": { label: "Paletó no Ombro", description: "Tira o paletó e o pendura sobre um ombro" },
167
167
  "pause-look-over-shoulder": { label: "Pausa com Olhar pelo Ombro", description: "Afasta-se, para, olha por cima do ombro e segura" },
168
168
  "sultry-look-back": { label: "Olhar Sensual para Trás", description: "Queixo no ombro, olhar de pálpebras baixas de volta à lente" },
@@ -173,8 +173,8 @@ const map: LocaleCatalogMap = {
173
173
  "campaign-walk-to-camera": { label: "Caminhada de Campanha", description: "Anda direto até a lente, de longe para perto, olhar fixo" },
174
174
  "walk-away-from-camera": { label: "Afastar-se Andando", description: "De costas para a câmera, caminha para longe" },
175
175
  "sweep-the-gown": { label: "Cauda do Vestido", description: "Passadas longas com a barra arrastando; um giro abre a cauda" },
176
- "bounce-streetwear-walk": { label: "Balanço Streetwear", description: "Andar solto e saltitante, ombros gingando, mãos nos bolsos" },
177
- "stride-menswear-walk": { label: "Passada de Alfaiataria", description: "Passada longa e regular, ombros alinhados, uma mão no bolso" },
176
+ "bounce-streetwear-walk": { label: "Andar com gingado ritmado", description: "Andar solto e saltitante, ombros rolando, mãos nos bolsos" },
177
+ "stride-menswear-walk": { label: "Andar a passos largos com uma mão no bolso", description: "Passada longa e uniforme, ombros alinhados, uma mão no bolso" },
178
178
  "twirl-the-skirt": { label: "Giro de Saia", description: "Sobe na ponta dos pés e gira para a saia se abrir" },
179
179
  "adjust-the-cuff": { label: "Ajustar o Punho", description: "Puxa o punho da camisa rente sob a manga em plena passada" },
180
180
  "adjust-lapels": { label: "Ajustar as Lapelas", description: "As duas mãos seguram as lapelas e as puxam alinhadas" },
@@ -182,8 +182,8 @@ const map: LocaleCatalogMap = {
182
182
  "unbutton-jacket-walking": { label: "Desabotoar o Paletó", description: "Abre o botão do paletó em plena passada, as frentes caem soltas" },
183
183
  "pop-the-collar": { label: "Levantar a Gola", description: "As duas mãos erguem a gola rente ao pescoço" },
184
184
  "throw-open-coat": { label: "Abrir o Casaco", description: "Segura as frentes do casaco e as abre bem, visual à mostra" },
185
- "cycle-through-three-poses": { label: "Sequência de Três Poses", description: "Faz três poses seguidas, mudando peso e braços a cada tempo" },
186
- "walk-with-partner": { label: "Caminhada em Dupla", description: "Anda lado a lado com o(a) parceiro(a) em passada sincronizada" },
185
+ "cycle-through-three-poses": { label: "Improvisar três poses", description: "Faz três poses em sequência, mudando o peso e os braços a cada tempo. A coreografia é escolhida pelo modelo de geração." },
186
+ "walk-with-partner": { label: "Andar lado a lado", description: "Anda ao lado do parceiro no mesmo ritmo." },
187
187
  // ── Dance ──
188
188
  "groove-hip-hop": { label: "Groove de Hip-Hop", description: "Balança e quica na batida, braços soltos" },
189
189
  "sway-to-music": { label: "Balançar com a Música", description: "Balança de um lado para o outro no ritmo, braços relaxados" },
@@ -197,7 +197,7 @@ const map: LocaleCatalogMap = {
197
197
  "do-toprock": { label: "Toprock", description: "Passos de breaking em pé antes de descer ao chão" },
198
198
  "spin-into-windmill": { label: "Moinho de Vento", description: "Giro no chão sobre os ombros, pernas chicoteando" },
199
199
  "spin-on-the-head": { label: "Giro de Cabeça", description: "Giro invertido no topo da cabeça, pernas abertas em V" },
200
- "hit-a-freeze": { label: "Freeze de Breaking", description: "Trava num freeze de breaking equilibrado" },
200
+ "hit-a-freeze": { label: "Manter um freeze de breakdance improvisado", description: "Mantém um equilíbrio de breakdance escolhido pelo modelo de geração; a coreografia exata não é especificada." },
201
201
  "do-the-worm": { label: "Minhoca", description: "Ondulação de bruços avançando pelo chão" },
202
202
  "hit-pops": { label: "Popping", description: "Contrações musculares secas que dão trancos no corpo" },
203
203
  "roll-an-arm-wave": { label: "Onda nos Braços", description: "A onda rola de uma mão até a outra" },
@@ -227,7 +227,7 @@ const map: LocaleCatalogMap = {
227
227
  "do-bhangra": { label: "Bhangra", description: "Braços para cima, ombros quicando, joelhos subindo em saltos" },
228
228
  "dance-afrobeats-legwork": { label: "Passos de Afrobeats", description: "Joelhos bombeando, pés torcendo, tronco inclinado" },
229
229
  "sway-capoeira-ginga": { label: "Ginga de Capoeira", description: "Passo em triângulo balançado, braço guardando o peito" },
230
- "hit-kpop-point-move": { label: "Point Move de K-Pop", description: "Braços travam num gesto marcante na batida" },
230
+ "hit-kpop-point-move": { label: "Improvisar um point move de K-pop", description: "Os braços travam de repente em uma forma marcante no tempo da batida. A coreografia é escolhida pelo modelo de geração." },
231
231
  "moonwalk-backward": { label: "Moonwalk", description: "Desliza para trás enquanto os pés parecem andar para frente" },
232
232
  "do-the-robot": { label: "Dança do Robô", description: "Segmentos rígidos e mecânicos, parando nas articulações" },
233
233
  "do-the-twist": { label: "Twist", description: "Pés fixos, quadril girando contra os ombros" },
@@ -255,7 +255,7 @@ const map: LocaleCatalogMap = {
255
255
  "break-down-sobbing": { label: "Cair em Prantos", description: "O rosto desmorona em soluços intensos" },
256
256
  "gasp-in-shock": { label: "Arquejo de Espanto", description: "Inspiração brusca, boca e olhos se arregalam" },
257
257
  "drop-jaw-in-astonishment": { label: "Queixo Caído", description: "O queixo cai, boquiaberto(a) de espanto" },
258
- "register-dawning-realization": { label: "Ficha Caindo", description: "Imobilidade, depois os olhos se arregalam ao entender" },
258
+ "register-dawning-realization": { label: "Demonstrar que se deu conta", description: "Os olhos se arregalam levemente quando a compreensão surge." },
259
259
  "startle-then-relax": { label: "Susto e Alívio", description: "Sobressalto que se dissolve num alívio" },
260
260
  "wink-one-eye": { label: "Piscadela", description: "Um olho se fecha num aperto rápido e reabre" },
261
261
  "roll-eyes-exasperated": { label: "Revirar os Olhos", description: "O olhar gira para cima e para o lado, exasperado" },
@@ -286,7 +286,7 @@ const map: LocaleCatalogMap = {
286
286
  "bite-lip-teasingly": { label: "Morder o Lábio", description: "Prende o lábio inferior, segura e solta com um sorriso" },
287
287
  "lick-lips-suggestively": { label: "Lamber os Lábios", description: "A língua percorre o lábio inferior de ponta a ponta" },
288
288
  "smolder-heavy-lidded": { label: "Olhar Sedutor", description: "Olhar de pálpebras pesadas, lábios entreabertos, queixo baixo" },
289
- "break-into-blush": { label: "Corar", description: "As bochechas ficam coradas, olhar baixa, sorriso tímido" },
289
+ "break-into-blush": { label: "Corar de leve", description: "Mostra um rubor condizente com o tom de pele e uma mudança tímida no olhar." },
290
290
  "cringe-and-recoil": { label: "Encolher-se Constrangido(a)", description: "Rosto se contrai, ombros sobem, cabeça recua" },
291
291
  "cough-into-fist": { label: "Tossir", description: "Duas ou três tossidas secas no punho erguido" },
292
292
  "laugh-nervously": { label: "Riso Nervoso", description: "Riso curto e ofegante que trava, olhos desviam" },
@@ -437,7 +437,7 @@ const map: LocaleCatalogMap = {
437
437
  "bow-to-camera": { label: "Reverência para a Câmera", description: "Reverência formal pela cintura em direção à lente" },
438
438
  "shield-face-from-camera": { label: "Esconder o Rosto", description: "Tímido(a) diante da câmera, o antebraço tapa o rosto e vira" },
439
439
  "smolder-at-camera": { label: "Olhar Sedutor à Câmera", description: "Olha por entre os cílios com um meio sorriso sensual" },
440
- "sing-to-camera": { label: "Cantar para a Câmera", description: "Canta em playback direto para o espectador" },
440
+ "sing-to-camera": { label: "Cantar para a câmera", description: "Canta de forma visível para a lente com o rosto expressivo." },
441
441
  "point-up-at-caption": { label: "Apontar para a Legenda", description: "Aponta acima da cabeça para uma legenda na tela" },
442
442
  "punch-at-camera": { label: "Soco na Câmera", description: "O punho avança direto na lente e preenche o quadro" },
443
443
  "lunge-at-camera": { label: "Avançar na Câmera", description: "O corpo inteiro salta na lente, o rosto se aproxima" },
@@ -534,7 +534,7 @@ const map: LocaleCatalogMap = {
534
534
  "skid-to-stop": { label: "Derrapar e Parar", description: "Corrida a toda velocidade freada numa derrapada de calcanhar" },
535
535
  "hurdle-jump": { label: "Salto de Barreira", description: "Passa a barreira em plena corrida, perna de ataque por cima, a de trás rente" },
536
536
  "lean-across-finish-line": { label: "Cruzar Linha de Chegada", description: "Últimas passadas, peito lançado à frente contra a fita" },
537
- "run-celebrating-arms-out": { label: "Comemorar de Braços Abertos", description: "Corrida de comemoração de gol, braços bem abertos, cabeça para trás" },
537
+ "run-celebrating-arms-out": { label: "Correr de braços abertos", description: "Corre para a frente com os dois braços abertos em comemoração." },
538
538
  "soccer-dribble": { label: "Drible de Futebol", description: "Drible com a bola colada, fintas e um corte para dentro" },
539
539
  "kick-ball": { label: "Chutar a Bola", description: "Apoia o pé, balança a perna, bate com o peito do pé e completa" },
540
540
  "header": { label: "Cabeceio", description: "Salta, arqueia as costas e golpeia a bola com a testa" },
@@ -572,7 +572,7 @@ const map: LocaleCatalogMap = {
572
572
  "dive-into-water": { label: "Mergulho na Água", description: "Salta da borda num arco de cabeça" },
573
573
  "cannonball-into-water": { label: "Pulo Bomba", description: "Corre, salta, abraça os joelhos e cai sentado espirrando água" },
574
574
  "surface-and-flick-hair": { label: "Emergir Jogando o Cabelo", description: "Sai da água, joga a cabeça para trás, o cabelo desenha um arco" },
575
- "pour-water-over-head": { label: "Despejar Água na Cabeça", description: "Garrafa erguida, água escorre pela cabeça, sacode para secar" },
575
+ "pour-water-over-head": { label: "Jogar água na cabeça", description: "Despeja água de uma garrafa na cabeça e continua segurando a garrafa." },
576
576
  "skateboard-push": { label: "Remada de Skate", description: "Duas remadas no chão, pé de trás no tail e desliza" },
577
577
  "surf-pop-up": { label: "Levantar na Prancha", description: "Rema deitado, empurra o corpo, pés embaixo, base de surfe" },
578
578
  "ski-carve-turn": { label: "Curva Carving no Esqui", description: "Inclina as bordas numa curva carving, depois na seguinte" },
@@ -598,7 +598,7 @@ const map: LocaleCatalogMap = {
598
598
  "duck-behind-cover": { label: "Abaixar-se na Cobertura", description: "Se abaixa atrás da cobertura e se encosta nela" },
599
599
  "evasive-roll": { label: "Rolamento Evasivo", description: "Mergulha num rolamento de ombro e levanta fora de perigo" },
600
600
  "hurdle-low-obstacle": { label: "Saltar Obstáculo", description: "Salta algo baixo sem perder a passada" },
601
- "spin-away-from-danger": { label: "Girar e Escapar", description: "Gira uma volta completa para longe e se afasta" },
601
+ "spin-away-from-danger": { label: "Dar meia-volta e se afastar", description: "Dá meia-volta e se afasta na nova direção." },
602
602
  "hit-the-deck": { label: "Jogar-se no Chão", description: "Se atira reto no chão com os braços sobre a cabeça" },
603
603
  "drop-to-ground": { label: "Cair de Bruços", description: "Desce direto e fica estendido rente ao chão" },
604
604
  "stumble-and-recover": { label: "Tropeçar e Recuperar", description: "Perde o apoio no meio do passo e recupera o equilíbrio" },
@@ -653,13 +653,13 @@ const map: LocaleCatalogMap = {
653
653
  "prop-up-on-elbow": { label: "Apoiar no Cotovelo", description: "Da posição deitada, ergue cabeça e ombros sobre um cotovelo" },
654
654
  "get-up-from-lying": { label: "Levantar da Posição Deitada", description: "Sai da posição deitada até ficar totalmente de pé" },
655
655
  "sit-up-in-bed": { label: "Sentar na Cama", description: "Sai da posição deitada e senta encostado nos travesseiros" },
656
- "swing-legs-out-of-bed": { label: "Sair da Cama", description: "Senta e gira as pernas até os pés tocarem o chão" },
656
+ "swing-legs-out-of-bed": { label: "Sentar e tirar as pernas da cama", description: "Senta-se a partir da posição deitada e passa as duas pernas pela beira da cama." },
657
657
  "wake-and-stretch": { label: "Acordar e Espreguiçar", description: "Ao acordar, estica os braços acima da cabeça bocejando" },
658
658
  "flop-onto-bed": { label: "Jogar-se na Cama", description: "Cai de costas na cama, braços lançados para os lados" },
659
659
  "lean-back-in-chair": { label: "Recostar na Cadeira", description: "Leva o tronco para trás contra o encosto da cadeira" },
660
660
  "plant-elbows-on-knees": { label: "Cotovelos nos Joelhos", description: "Inclina à frente, antebraços apoiados nas coxas" },
661
661
  "shift-to-edge-of-seat": { label: "Na Beira do Assento", description: "Chega para a frente do assento, com atenção" },
662
- "cross-legs-seated": { label: "Cruzar as Pernas", description: "Na cadeira, passa uma perna sobre a outra" },
662
+ "cross-legs-seated": { label: "Cruzar os joelhos sentado", description: "Coloca um joelho sobre o outro sem deixar de estar sentado." },
663
663
  "uncross-and-stand": { label: "Descruzar e Levantar", description: "Descruza as pernas e fica de pé" },
664
664
  "put-feet-up": { label: "Pés para Cima", description: "Levanta os pés sobre uma mesa ou pufe" },
665
665
  "recline-back": { label: "Reclinar", description: "Recosta até quase deitar, pernas esticadas" },
@@ -674,7 +674,7 @@ const map: LocaleCatalogMap = {
674
674
  "lean-on-counter": { label: "Apoiar no Balcão", description: "Apoia os dois antebraços num balcão ou bar" },
675
675
  "brace-hands-on-knees": { label: "Mãos nos Joelhos", description: "Curva-se e apoia as mãos nos joelhos" },
676
676
  "snap-to-attention": { label: "Posição de Sentido", description: "Endireita-se de repente, calcanhares juntos, braços ao lado do corpo" },
677
- "rise-on-tiptoes": { label: "Na Ponta dos Pés", description: "Sobe na ponta dos pés para ver por cima da multidão" },
677
+ "rise-on-tiptoes": { label: "Ficar na ponta dos pés", description: "Levanta os dois calcanhares e se equilibra na parte da frente dos pés." },
678
678
  "lean-on-railing": { label: "Apoiar no Parapeito", description: "Apoia os antebraços no parapeito, olhando ao longe" },
679
679
  "settle-into-meditation": { label: "Entrar em Meditação", description: "Senta de pernas cruzadas, coluna ereta, olhos se fechando" },
680
680
  "lace-hands-behind-head": { label: "Mãos Atrás da Cabeça", description: "Recosta com os dedos entrelaçados atrás da cabeça" },
@@ -682,7 +682,7 @@ const map: LocaleCatalogMap = {
682
682
  // ── Everyday Actions ──
683
683
  "take-a-sip": { label: "Dar um Gole", description: "Leva a xícara aos lábios, bebe um gole e abaixa" },
684
684
  "drink-from-bottle": { label: "Beber da Garrafa", description: "Inclina a garrafa, cabeça para trás, e bebe" },
685
- "cradle-mug-and-sip": { label: "Caneca nas Mãos", description: "Segura uma caneca quente com as duas mãos e bebe um gole" },
685
+ "cradle-mug-and-sip": { label: "Beber de uma caneca segura com as duas mãos", description: "Segura uma caneca com as duas mãos, dá um gole e a abaixa." },
686
686
  "take-a-bite": { label: "Dar uma Mordida", description: "Morde a comida, abaixa, mastiga e engole" },
687
687
  "put-on-jacket": { label: "Vestir a Jaqueta", description: "Passa os dois braços e ajeita a gola" },
688
688
  "take-off-jacket": { label: "Tirar a Jaqueta", description: "Tira a jaqueta de um ombro de cada vez" },
@@ -695,7 +695,7 @@ const map: LocaleCatalogMap = {
695
695
  "pull-up-hood": { label: "Pôr o Capuz", description: "Puxa o capuz para cima e para a frente sobre a cabeça" },
696
696
  "wrap-scarf": { label: "Enrolar o Cachecol", description: "Passa o cachecol ao redor do pescoço e prende as pontas" },
697
697
  "loosen-tie": { label: "Afrouxar a Gravata", description: "Puxa o nó para baixo e abre o botão de cima" },
698
- "open-door": { label: "Abrir a Porta", description: "Gira a maçaneta, abre e passa" },
698
+ "open-door": { label: "Abrir uma porta", description: "Gira a maçaneta e escancara a porta." },
699
699
  "close-door": { label: "Fechar a Porta", description: "Vira-se e fecha a porta" },
700
700
  "knock-on-door": { label: "Bater na Porta", description: "Bate com os nós dos dedos na porta e espera" },
701
701
  "pound-on-door": { label: "Esmurrar a Porta", description: "Martela a porta com o punho e o peso do corpo" },
@@ -718,7 +718,7 @@ const map: LocaleCatalogMap = {
718
718
  "unwrap-gift": { label: "Abrir Presente", description: "Puxa a fita, rasga o papel e ergue a tampa" },
719
719
  "pull-item-from-bag": { label: "Tirar Item da Bolsa", description: "Enfia a mão na bolsa e tira um item" },
720
720
  "open-letter": { label: "Abrir Carta", description: "Rasga um envelope e lê a carta" },
721
- "tear-paper-in-half": { label: "Rasgar Papel ao Meio", description: "Rasga uma folha pelo meio e solta os pedaços" },
721
+ "tear-paper-in-half": { label: "Rasgar papel ao meio", description: "Rasga uma folha em dois pedaços e os segura." },
722
722
  "pull-phone-from-pocket": { label: "Tirar Celular do Bolso", description: "Tira o celular e olha para a tela" },
723
723
  "answer-phone": { label: "Atender o Celular", description: "Pega o celular tocando e leva ao ouvido" },
724
724
  "hang-up-phone": { label: "Desligar o Celular", description: "Abaixa o celular, encerra a ligação e guarda no bolso" },
@@ -726,7 +726,7 @@ const map: LocaleCatalogMap = {
726
726
  "scroll-on-phone": { label: "Rolar Tela do Celular", description: "O polegar desliza a tela em rolagens repetidas" },
727
727
  "take-a-selfie": { label: "Tirar uma Selfie", description: "Braço estendido, faz pose, toca e abaixa para conferir" },
728
728
  "take-a-photo": { label: "Tirar uma Foto", description: "Ergue o celular, enquadra e aperta o obturador" },
729
- "tap-to-pay": { label: "Pagar por Aproximação", description: "Encosta o cartão ou o celular na maquininha" },
729
+ "tap-to-pay": { label: "Pagar por aproximação", description: "Encosta o cartão ou o celular que está segurando em um terminal de pagamento." },
730
730
  "type-on-laptop": { label: "Digitar no Notebook", description: "Abre a tampa e digita, olhando teclas e tela" },
731
731
  "write-in-notebook": { label: "Escrever no Caderno", description: "Abre um caderno, destampa a caneta e escreve uma linha" },
732
732
  "write-on-whiteboard": { label: "Escrever no Quadro Branco", description: "Escreve uma linha no quadro branco e se vira para a sala" },
@@ -755,15 +755,15 @@ const map: LocaleCatalogMap = {
755
755
  "blow-out-candle": { label: "Apagar a Vela", description: "Inclina-se, puxa o ar e sopra a chama" },
756
756
  "cut-cake": { label: "Cortar o Bolo", description: "Enfia a faca no bolo e ergue uma fatia" },
757
757
  "toss-bouquet": { label: "Jogar o Buquê", description: "Vira de costas e joga o buquê por cima do ombro" },
758
- "lick-ice-cream": { label: "Tomar Sorvete", description: "Gira a casquinha, lambe a borda e morde o topo" },
758
+ "lick-ice-cream": { label: "Lamber sorvete", description: "Lambe o sorvete sem mordê-lo." },
759
759
  "stir-a-pot": { label: "Mexer a Panela", description: "Mexe em círculos e ergue a colher para provar" },
760
- "taste-from-spoon": { label: "Provar na Colher", description: "Mergulha a colher, assopra, prova e assente com a cabeça" },
760
+ "taste-from-spoon": { label: "Provar da colher", description: "Prova uma colherada sem que uma opinião seja prescrita." },
761
761
  "chop-vegetables": { label: "Picar Legumes", description: "Balança a faca picando legumes na tábua" },
762
762
  "toss-food-in-pan": { label: "Saltear na Frigideira", description: "Sacode a frigideira e a comida vira no ar e volta" },
763
763
  "sprinkle-salt-flourish": { label: "Salpicar Sal com Estilo", description: "Braço erguido, o sal escorre das pontas dos dedos" },
764
- "open-fridge": { label: "Abrir a Geladeira", description: "Abre a geladeira, pega algo e fecha" },
764
+ "open-fridge": { label: "Abrir a geladeira", description: "Abre a porta da geladeira e a mantém aberta." },
765
765
  "water-plants": { label: "Regar as Plantas", description: "Inclina o regador sobre cada planta" },
766
- "cradle-and-rock-baby": { label: "Ninar o Bebê", description: "Segura o bebê junto ao peito e balança de um lado a outro" },
766
+ "cradle-and-rock-baby": { label: "Ninar o bebê no colo", description: "Apoia a cabeça e o corpo do bebê enquanto o balança suavemente." },
767
767
  "slap-alarm-clock": { label: "Desligar o Despertador", description: "Estica o braço e dá um tapa no despertador" },
768
768
  "pull-covers-over-head": { label: "Cobrir a Cabeça", description: "Puxa as cobertas sobre a cabeça e se encolhe" },
769
769
  "put-on-seatbelt": { label: "Pôr o Cinto", description: "Puxa o cinto de segurança e encaixa a fivela" },
@@ -772,11 +772,11 @@ const map: LocaleCatalogMap = {
772
772
  "shuffle-cards": { label: "Embaralhar Cartas", description: "Divide o baralho, intercala as metades e alinha" },
773
773
  "sweep-flashlight": { label: "Varrer com Lanterna", description: "Passa a lanterna num arco, a cabeça acompanha" },
774
774
  // ── Vehicles & Mounts ──
775
- "get-into-car": { label: "Entrar no Carro", description: "Abre a porta do motorista e se acomoda no banco" },
775
+ "get-into-car": { label: "Entrar no banco do motorista", description: "Abre a porta do motorista e entra no banco do motorista." },
776
776
  "get-out-of-car": { label: "Sair do Carro", description: "Gira as duas pernas para fora e levanta do banco" },
777
777
  "slide-across-hood": { label: "Deslizar pelo Capô", description: "Desliza de lado sobre o capô e cai do outro lado" },
778
778
  "drive-off": { label: "Arrancar com o Carro", description: "Assume o volante e sai com o carro" },
779
- "shift-gears": { label: "Trocar a Marcha", description: "Leva a mão ao câmbio e troca a marcha" },
779
+ "shift-gears": { label: "Trocar marcha manual", description: "Move uma alavanca de câmbio manual com a mão mais próxima." },
780
780
  "check-mirror-and-turn": { label: "Checar Retrovisor e Virar", description: "Olha o retrovisor, o ponto cego e então vira o volante" },
781
781
  "lean-out-car-window": { label: "Debruçar na Janela", description: "Cabeça e ombros para fora, no vento do movimento" },
782
782
  "sit-on-car-hood": { label: "Sentar no Capô", description: "Apoia as palmas e se impulsiona para sentar no capô" },
@@ -784,23 +784,23 @@ const map: LocaleCatalogMap = {
784
784
  "put-on-helmet": { label: "Pôr o Capacete", description: "Encaixa o capacete e aperta a fivela do queixo" },
785
785
  "mount-motorcycle": { label: "Montar na Moto", description: "Passa a perna sobre o banco e se acomoda" },
786
786
  "kick-start-engine": { label: "Dar Partida no Pedal", description: "Pisa com força no pedal de partida e gira o acelerador" },
787
- "lean-into-turn": { label: "Inclinar na Curva", description: "Abaixa o ombro e o joelho de dentro na curva" },
787
+ "lean-into-turn": { label: "Inclinar a moto na curva", description: "Baixa o ombro e o joelho internos para dentro da curva" },
788
788
  "dismount-motorcycle": { label: "Descer da Moto", description: "Passa a perna de trás de volta por cima e desce" },
789
- "hop-on-bike": { label: "Subir na Bicicleta", description: "Monta no selim e empurra os pedais para baixo" },
789
+ "hop-on-bike": { label: "Montar na bicicleta e sair pedalando", description: "Monta na bicicleta com um impulso e sai pedalando." },
790
790
  "brake-and-hop-off": { label: "Frear e Descer", description: "Aperta os freios e desce da bicicleta" },
791
791
  "push-scooter": { label: "Andar de Patinete", description: "Dá impulso no chão e desliza sobre um pé" },
792
- "mount-horse": { label: "Montar no Cavalo", description: "Impulsiona-se no estribo e sobe para a sela" },
792
+ "mount-horse": { label: "Montar no cavalo pela esquerda", description: "Apoia o pé no estribo esquerdo e passa a perna direita por cima da sela." },
793
793
  "ride-at-walk": { label: "Cavalgar ao Passo", description: "Postura ereta, quadril embalado pelo passo em quatro tempos" },
794
794
  "gallop-on-horseback": { label: "Galopar", description: "Ergue-se em meio assento, baixo sobre o pescoço do cavalo" },
795
795
  "rein-in-horse": { label: "Puxar as Rédeas", description: "Senta fundo e recolhe as rédeas até parar" },
796
- "dismount-horse": { label: "Desmontar do Cavalo", description: "Passa a perna sobre a garupa e desce ao chão" },
796
+ "dismount-horse": { label: "Desmontar do cavalo pela esquerda", description: "Solta os dois pés dos estribos e desce ao chão pelo lado esquerdo." },
797
797
  "board-train": { label: "Embarcar no Trem", description: "Cruza o vão enquanto as portas se fecham" },
798
798
  "hold-train-strap": { label: "Segurar a Alça", description: "Segura uma alça no alto e balança com o vagão" },
799
799
  "step-off-bus": { label: "Descer do Ônibus", description: "Segura o corrimão e desce os degraus até a calçada" },
800
- "row-boat": { label: "Remar um Barco", description: "Empurra com as pernas e tira as pás da água" },
800
+ "row-boat": { label: "Remar barco de assento fixo", description: "Puxa os remos com braços e tronco a partir de um assento fixo." },
801
801
  "paddle-kayak": { label: "Remar de Caiaque", description: "Alterna remadas com rotação do tronco" },
802
- "hail-taxi": { label: "Chamar um Táxi", description: "Braço esticado para o trânsito, depois a mão na maçaneta" },
803
- "climb-into-cab": { label: "Subir na Cabine", description: "Puxa-se pela alça até o banco alto do caminhão" },
802
+ "hail-taxi": { label: "Chamar um táxi", description: "Levanta um braço na direção dos táxis que se aproximam e depois o abaixa." },
803
+ "climb-into-cab": { label: "Subir na cabine do caminhão", description: "Puxa-se pela alça de apoio até o banco alto de um caminhão" },
804
804
  "jump-onto-moving-vehicle": { label: "Pular em Veículo Andando", description: "Corre ao lado e se lança para o estribo" },
805
805
  "grip-armrests": { label: "Agarrar Apoios de Braço", description: "Mãos cravam nos apoios de braço enquanto o assento empurra para trás" },
806
806
  "stretch-in-aisle": { label: "Alongar no Corredor", description: "Levanta do assento e estica os braços acima da cabeça" },
@@ -810,27 +810,27 @@ const map: LocaleCatalogMap = {
810
810
  "ruffle-dog-fur": { label: "Bagunçar o Pelo", description: "Dedos esfregam o pelo espesso do pescoço" },
811
811
  "scoop-up-pet": { label: "Pegar o Pet", description: "Abaixa-se, passa as mãos por baixo e ergue até o peito" },
812
812
  "offer-hand-to-sniff": { label: "Oferecer Mão para Cheirar", description: "Braço estendido, nós dos dedos para baixo, mão parada" },
813
- "offer-a-treat": { label: "Oferecer um Petisco", description: "Palma aberta estendida à distância do braço" },
813
+ "offer-a-treat": { label: "Oferecer petisco ao cachorro", description: "Estende um petisco para o cachorro sem exigir que ele pegue." },
814
814
  "get-pulled-by-leash": { label: "Puxado(a) pela Guia", description: "A guia estica de repente e arrasta o braço para frente" },
815
815
  "reel-in-leash": { label: "Recolher a Guia", description: "Mão sobre mão, vai encurtando a guia" },
816
- "throw-ball-for-dog": { label: "Bola para o Cachorro", description: "Braço por cima: prepara, solta e completa o movimento" },
816
+ "throw-ball-for-dog": { label: "Jogar bola para o cachorro", description: "Joga uma bola à frente do cachorro sem acrescentar que ele a traga de volta." },
817
817
  "kneel-to-greet": { label: "Ajoelhar para Saudar", description: "Apoia um joelho no chão e abre os dois braços" },
818
- "signal-dog-to-sit": { label: "Mandar o Cachorro Sentar", description: "Palma erguida, depois pressionada para baixo e mantida" },
819
- "call-dog-over": { label: "Chamar o Cachorro", description: "Bate nas coxas, assobia e agacha de braços abertos" },
818
+ "signal-dog-to-sit": { label: "Sinalizar para o cachorro sentar", description: "Faz para o cachorro um sinal de mão para baixo sem exigir resposta." },
819
+ "call-dog-over": { label: "Chamar o cachorro", description: "Agacha-se, chama o cachorro com um gesto e depois espera." },
820
820
  "cuddle-pet-on-lap": { label: "Pet Aninhado no Colo", description: "Curva-se sobre o pet no colo e acaricia suas costas" },
821
821
  "hold-cat-to-chest": { label: "Gato Junto ao Peito", description: "Recolhe um gato e o aconchega contra o peito" },
822
822
  "lift-cat-up": { label: "Erguer o Gato", description: "Apoiando peito e traseiro, ergue até a altura dos olhos" },
823
823
  "lift-puppy-to-face": { label: "Filhote até o Rosto", description: "Ergue um filhote até ficarem nariz com focinho" },
824
824
  "let-bird-perch": { label: "Pássaro no Dedo", description: "Dedo indicador estendido, nivelado e firme" },
825
- "feed-the-ducks": { label: "Alimentar os Patos", description: "Parte pedaços e os joga com a mão por baixo" },
825
+ "feed-the-ducks": { label: "Alimentar os patos", description: "Joga pedacinhos de comida na direção dos patos." },
826
826
  "stroke-horse-neck": { label: "Acariciar Pescoço do Cavalo", description: "Longas passadas de palma aberta descendo pelo pescoço" },
827
827
  "brush-the-horse": { label: "Escovar o Cavalo", description: "Longas escovadas no sentido do pelo" },
828
828
  "pat-horse-flank": { label: "Tapinhas no Flanco", description: "Dois tapinhas firmes de palma aberta, depois pousa a mão" },
829
829
  "mount-the-horse": { label: "Montar o Cavalo", description: "Pé no estribo, passa a perna por cima" },
830
- "back-away-slowly": { label: "Recuar Devagar", description: "Pequenos passos para trás pelo calcanhar, palmas erguidas" },
830
+ "back-away-slowly": { label: "Afastar-se devagar do animal", description: "Dá passos pequenos e cautelosos para trás, de frente para o animal." },
831
831
  "let-it-approach": { label: "Deixar Aproximar", description: "Fica totalmente imóvel e espera passar" },
832
832
  "crouch-to-photograph": { label: "Agachar para Fotografar", description: "Abaixa-se e enquadra o animal com o celular" },
833
- "tug-the-toy": { label: "Puxar o Brinquedo", description: "Punhos numa corda de brinquedo, inclina para trás e puxa" },
833
+ "tug-the-toy": { label: "Puxar o brinquedo com o cachorro", description: "Puxa uma ponta de um brinquedo de corda enquanto o cachorro segura a outra." },
834
834
  "wipe-muddy-paws": { label: "Limpar Patas Enlameadas", description: "Ajoelha e seca uma pata de cada vez com a toalha" },
835
835
  "brace-for-jump": { label: "Firmar para o Pulo", description: "Firma o pé de trás para aguentar o cachorro pulando" },
836
836
  // ── Two-Person ──
@@ -839,7 +839,7 @@ const map: LocaleCatalogMap = {
839
839
  "hug-partner-from-behind": { label: "Abraço por Trás", description: "Braços em volta da cintura, queixo no ombro" },
840
840
  "bro-hug": { label: "Abraço de Amigo", description: "Aperto de mão que vira meio abraço com tapinha" },
841
841
  "run-into-partner-arms": { label: "Correr para os Braços", description: "Corre, salta e é pego(a) num abraço no alto" },
842
- "bury-face-in-partner-shoulder": { label: "Rosto Afundado no Ombro", description: "Rosto afundado no ombro do(a) parceiro(a), agarrando" },
842
+ "bury-face-in-partner-shoulder": { label: "Esconder o rosto no ombro do parceiro", description: "Rosto pressionado no ombro do parceiro, agarrando-se" },
843
843
  "shake-partner-hand": { label: "Aperto de Mão", description: "Estende a mão, aperta, sacode duas vezes e solta" },
844
844
  "high-five-partner": { label: "Toca Aqui", description: "Palmas erguidas batem uma na outra e ricocheteiam" },
845
845
  "fist-bump-partner": { label: "Soquinho", description: "Nós dos dedos se tocam de leve na altura do peito" },
@@ -852,12 +852,12 @@ const map: LocaleCatalogMap = {
852
852
  "lean-in-almost-kiss": { label: "Quase Beijo", description: "Inclina-se até os lábios quase se tocarem e para ali" },
853
853
  "kiss-partner": { label: "Beijo", description: "Inclina-se, beija o(a) parceiro(a) nos lábios e se afasta" },
854
854
  "rise-on-tiptoes-to-kiss-partner": { label: "Beijo na Ponta dos Pés", description: "Fica na ponta dos pés para alcançar o(a) parceiro(a) mais alto(a)" },
855
- "cup-partner-face": { label: "Segurar o Rosto", description: "As palmas envolvem as bochechas do(a) parceiro(a), olhar fixo" },
856
- "lift-partner-chin": { label: "Erguer o Queixo", description: "Um dedo dobrado ergue o rosto abaixado do(a) parceiro(a)" },
855
+ "cup-partner-face": { label: "Segurar o rosto do parceiro com as mãos", description: "As duas palmas envolvem as bochechas do parceiro, sustentando o olhar" },
856
+ "lift-partner-chin": { label: "Levantar o queixo do parceiro", description: "Um dedo curvado ergue o rosto abaixado do parceiro" },
857
857
  "tuck-partner-hair-behind-ear": { label: "Ajeitar Cabelo do(a) Parceiro(a)", description: "Pega uma mecha solta e a coloca atrás da orelha" },
858
858
  "wipe-partner-tear": { label: "Enxugar uma Lágrima", description: "O polegar tira uma lágrima da bochecha do(a) parceiro(a)" },
859
859
  "touch-foreheads-with-partner": { label: "Testas Encostadas", description: "Testas unidas, olhos fechados, sem se mexer" },
860
- "rest-head-on-partner-shoulder": { label: "Cabeça no Ombro", description: "Inclina-se de lado e apoia a cabeça no ombro do(a) parceiro(a)" },
860
+ "rest-head-on-partner-shoulder": { label: "Apoiar a cabeça no ombro do parceiro", description: "Inclina-se de lado, e a cabeça se acomoda no ombro do parceiro" },
861
861
  "rest-head-in-partner-lap": { label: "Cabeça no Colo", description: "Deita e apoia a cabeça no colo do(a) parceiro(a)" },
862
862
  "hold-partner-hand": { label: "De Mãos Dadas", description: "Encontra a mão do(a) parceiro(a) e entrelaça os dedos" },
863
863
  "walk-hand-in-hand": { label: "Andar de Mãos Dadas", description: "Anda ao lado do(a) parceiro(a) de mãos dadas" },
@@ -874,7 +874,7 @@ const map: LocaleCatalogMap = {
874
874
  "receive-object": { label: "Receber Objeto", description: "Pega um objeto oferecido e o traz para si" },
875
875
  "slide-ring-onto-partner-finger": { label: "Colocar o Anel", description: "Desliza um anel no dedo anelar do(a) parceiro(a)" },
876
876
  "lift-partner-veil": { label: "Erguer o Véu", description: "Levanta o véu para trás e revela o rosto" },
877
- "kneel-before-partner": { label: "Ajoelhar Diante do(a) Parceiro(a)", description: "Apoia um joelho no chão e segura a mão do(a) parceiro(a)" },
877
+ "kneel-before-partner": { label: "Ajoelhar-se diante do parceiro", description: "Apoia um joelho no chão de frente para o parceiro." },
878
878
  "kneel-to-partner-eye-level": { label: "Ajoelhar na Altura dos Olhos", description: "Desce a um joelho para olhar nos olhos do(a) parceiro(a) mais baixo(a)" },
879
879
  "tap-partner-shoulder": { label: "Tapinha no Ombro", description: "Dois toques por trás, e o(a) parceiro(a) se vira" },
880
880
  "put-hand-on-partner-shoulder": { label: "Mão no Ombro", description: "Pousa a mão no ombro do(a) parceiro(a) e dá um aperto" },
@@ -885,18 +885,18 @@ const map: LocaleCatalogMap = {
885
885
  "ruffle-partner-hair": { label: "Bagunçar o Cabelo", description: "Esfrega a mão na cabeça do(a) parceiro(a), despenteando" },
886
886
  "tickle-partner": { label: "Fazer Cócegas", description: "Dedos agitam nas costelas e o(a) parceiro(a) se contorce" },
887
887
  "shake-partner-awake": { label: "Sacudir para Acordar", description: "Segura e sacode o ombro do(a) parceiro(a) adormecido(a)" },
888
- "lift-partner": { label: "Erguer", description: "Mãos na cintura, ergue direto para cima e põe no chão" },
889
- "swing-partner-around": { label: "Girar no Ar", description: "Ergue o(a) parceiro(a) e dá uma volta completa" },
890
- "lift-partner-overhead-airplane": { label: "Aviãozinho", description: "Ergue o(a) parceiro(a) pequeno(a) acima da cabeça, na horizontal, braços abertos" },
888
+ "lift-partner": { label: "Levantar o parceiro", description: "Mãos na cintura, levanta em linha reta, coloca no chão" },
889
+ "swing-partner-around": { label: "Levantar e girar o parceiro", description: "Levanta o parceiro e dá uma volta completa" },
890
+ "lift-partner-overhead-airplane": { label: "Segurar parceiro pequeno acima da cabeça", description: "Segura um parceiro menor na horizontal acima da cabeça, com tronco e pelve apoiados." },
891
891
  "carry-partner-bridal": { label: "Carregar no Colo", description: "Pega o(a) parceiro(a) no colo e caminha para frente" },
892
892
  "piggyback-partner": { label: "Cavalinho", description: "Agacha, o(a) parceiro(a) sobe nas costas, levanta e anda" },
893
893
  "carry-partner-on-shoulders": { label: "Carregar nos Ombros", description: "O(a) parceiro(a) vai montado(a) no pescoço, levado(a) para frente" },
894
- "fireman-carry-partner": { label: "Carregar como Bombeiro", description: "Joga o(a) parceiro(a) sobre os ombros e anda" },
894
+ "fireman-carry-partner": { label: "Carregar o parceiro sobre os ombros", description: "Carrega o parceiro apoiado sobre os dois ombros." },
895
895
  "help-partner-up": { label: "Ajudar a Levantar", description: "Puxa o(a) parceiro(a) do chão até ficar de pé" },
896
896
  "catch-partner-falling": { label: "Amparar a Queda", description: "Avança e segura o(a) parceiro(a) enquanto cai" },
897
897
  "support-injured-partner-walking": { label: "Apoiar Quem Manca", description: "Sustenta o peso do(a) parceiro(a) que manca, braço sobre o ombro" },
898
898
  "drag-partner-to-safety": { label: "Arrastar para Segurança", description: "Puxa o(a) parceiro(a) para trás pelas axilas" },
899
- "shield-partner-with-body": { label: "Proteger com o Corpo", description: "Puxa o(a) parceiro(a) para trás de si e bloqueia com o corpo" },
899
+ "shield-partner-with-body": { label: "Proteger o parceiro com o corpo", description: "Puxa o parceiro para trás de si e bloqueia com o corpo" },
900
900
  "pull-partner-close": { label: "Puxar para Perto", description: "Traz o(a) parceiro(a) até ficarem peito com peito" },
901
901
  "catch-partner-wrist": { label: "Segurar o Pulso", description: "Impede o(a) parceiro(a) de sair segurando o pulso" },
902
902
  "chase-partner": { label: "Perseguir", description: "Corre atrás do(a) parceiro(a), diminuindo a distância" },
@@ -905,11 +905,11 @@ const map: LocaleCatalogMap = {
905
905
  "push-partner-away": { label: "Empurrar para Longe", description: "As duas palmas no peito, e o(a) parceiro(a) recua" },
906
906
  "shove-partner": { label: "Empurrar o(a) Parceiro(a)", description: "Empurrão com as duas mãos, o(a) parceiro(a) cambaleia para trás" },
907
907
  "shake-partner-shoulders": { label: "Sacudir pelos Ombros", description: "Agarra os dois ombros e sacode para frente e para trás" },
908
- "grab-partner-collar": { label: "Agarrar pela Gola", description: "Agarra a gola com os dois punhos e puxa para perto" },
908
+ "grab-partner-collar": { label: "Agarrar o parceiro pelo colarinho", description: "Agarra o colarinho enquanto as duas pessoas continuam firmes no chão." },
909
909
  "pin-partner-against-wall": { label: "Prensar na Parede", description: "Encurrala o(a) parceiro(a) na parede, antebraço no peito" },
910
910
  "slap-partner": { label: "Tapa", description: "Mão aberta na bochecha, a cabeça vira de lado" },
911
- "arm-wrestle-partner": { label: "Queda de Braço", description: "Cotovelos apoiados, mãos travadas, fazendo força para vencer" },
912
- "restrain-partner": { label: "Conter", description: "Segura por trás o(a) parceiro(a) que tenta avançar" },
911
+ "arm-wrestle-partner": { label: "Fazer queda de braço com o parceiro", description: "Disputa a pegada de mãos com os dois cotovelos apoiados na mesa." },
912
+ "restrain-partner": { label: "Segurar o parceiro", description: "Puxa para trás, por trás, o parceiro que tenta avançar" },
913
913
  // ── Idle & Ambient ──
914
914
  "breathe-visibly": { label: "Respiração Visível", description: "O peito sobe e desce num ritmo calmo e constante" },
915
915
  "sway-subtly": { label: "Balanço Sutil", description: "Oscilação quase imperceptível de lado a lado, de pé" },
@@ -973,17 +973,17 @@ const map: LocaleCatalogMap = {
973
973
  "walk-to-center-stage": { label: "Ao Centro do Palco", description: "Anda da coxia até a marca, abrindo os braços" },
974
974
  "strut-down-runway": { label: "Desfilar na Passarela", description: "Desfile confiante em linha reta pela passarela do palco" },
975
975
  "step-up-to-podium": { label: "Subir ao Púlpito", description: "Posiciona-se atrás do púlpito e segura os dois lados" },
976
- "sit-on-stage-edge": { label: "Na Beira do Palco", description: "Senta na borda do palco para cantar a estrofe" },
976
+ "sit-on-stage-edge": { label: "Sentar na beira do palco", description: "Senta na beira de um palco com as pernas penduradas." },
977
977
  "raise-hands-to-crowd": { label: "Mãos para a Plateia", description: "Os dois braços esticados para cima, palmas abertas" },
978
978
  "hype-the-crowd": { label: "Animar a Plateia", description: "Bate palmas acima da cabeça no ritmo, incitando o público" },
979
979
  "point-to-crowd": { label: "Apontar para a Plateia", description: "Aponta firme para a plateia e varre com o dedo" },
980
980
  "wave-to-crowd": { label: "Acenar para a Plateia", description: "Aceno amplo acima da cabeça para todo o público" },
981
981
  "blow-kisses-to-crowd": { label: "Mandar Beijos", description: "Dedos nos lábios, beijos jogados para cada lado" },
982
- "hold-phone-light-aloft": { label: "Celular Aceso no Alto", description: "Celular erguido, tela para fora, o corpo todo balançando" },
982
+ "hold-phone-light-aloft": { label: "Erguer a tela acesa do celular", description: "Ergue acima da cabeça a tela acesa de um celular." },
983
983
  "jump-on-the-beat": { label: "Pular no Ritmo", description: "Os dois pés saem do palco a cada tempo forte" },
984
984
  "headbang-on-beat": { label: "Bater Cabeça no Ritmo", description: "A cabeça desce e sobe a cada batida, cabelo voando" },
985
985
  "knee-slide-across-stage": { label: "Deslizar de Joelhos", description: "Corre e desliza de joelhos pelo palco" },
986
- "hit-dance-break": { label: "Pausa para Dança", description: "Deixa o microfone e manda uma sequência de oito tempos" },
986
+ "hit-dance-break": { label: "Improvisar um break de dança de oito tempos", description: "Planta o microfone e manda oito tempos para a plateia. A coreografia é escolhida pelo modelo de geração." },
987
987
  "freeze-on-the-drop": { label: "Congelar no Drop", description: "Trava numa pose no drop e fica totalmente imóvel" },
988
988
  "spin-mic-stand": { label: "Girar o Pedestal", description: "Gira o pedestal numa volta completa e o pega de volta" },
989
989
  "drop-the-mic": { label: "Soltar o Microfone", description: "Estende o microfone, abre a mão e deixa cair" },
@@ -991,13 +991,13 @@ const map: LocaleCatalogMap = {
991
991
  "stage-dive": { label: "Mergulho do Palco", description: "Mergulho horizontal sobre as mãos erguidas do público" },
992
992
  "crowd-surf": { label: "Surfar na Plateia", description: "Levado(a) de costas, de mão em mão, sobre o público" },
993
993
  "bow-to-audience": { label: "Reverência ao Público", description: "Reverência profunda pela cintura na frente do palco" },
994
- "take-curtain-call": { label: "Agradecimento Final", description: "Volta pela cortina, faz reverência e homenageia a banda" },
994
+ "take-curtain-call": { label: "Agradecer ao final do espetáculo", description: "Dá um passo à frente e se curva para a plateia." },
995
995
  "walk-off-waving": { label: "Sair Acenando", description: "Segue para a coxia acenando por cima do ombro" },
996
996
  "share-mic-duet": { label: "Dividir o Microfone", description: "Dois cantores se inclinam num só microfone no refrão" },
997
997
  "shred-back-to-back": { label: "Solo Costas com Costas", description: "Dois guitarristas encostam as costas e detonam no solo" },
998
998
  // ── Unnatural & Horror ──
999
999
  "twitch-head-sideways": { label: "Espasmo de Cabeça", description: "Tranco brusco da cabeça para um lado, e volta" },
1000
- "tilt-head-too-far": { label: "Inclinar Demais a Cabeça", description: "A cabeça tomba de lado além do limite natural" },
1000
+ "tilt-head-too-far": { label: "Inclinar a cabeça em direção ao ombro", description: "Inclina a cabeça em direção a um ombro dentro de uma amplitude comum." },
1001
1001
  "snap-head-sideways": { label: "Cabeça Vira de Estalo", description: "A cabeça chicoteia para um lado e para de uma vez" },
1002
1002
  "backbend-into-crawl": { label: "Rastejar em Ponte", description: "Arqueia para trás até o chão e rasteja de barriga para cima" },
1003
1003
  "crawl-head-raised": { label: "Rastejar de Cabeça Erguida", description: "Avança de quatro com a cabeça levantada" },
@@ -1006,7 +1006,7 @@ const map: LocaleCatalogMap = {
1006
1006
  "jerk-like-marionette": { label: "Tranco de Marionete", description: "Membros são puxados para cima como se por fios" },
1007
1007
  "drag-self-forward": { label: "Arrastar-se para Frente", description: "Puxa-se pelos antebraços, pernas se arrastando" },
1008
1008
  "claw-at-the-air": { label: "Arranhar o Ar", description: "Mãos arranham o ar vazio perto do rosto" },
1009
- "press-hands-to-neck": { label: "Mãos no Pescoço", description: "As duas mãos voam até a clavícula" },
1009
+ "press-hands-to-neck": { label: "Apoiar as mãos na clavícula", description: "Apoia as duas mãos de leve na clavícula e mantém a posição." },
1010
1010
  "scratch-at-door": { label: "Arranhar a Porta", description: "Unhas se arrastam pela porta em riscos" },
1011
1011
  "roll-eyes-back": { label: "Olhos Revirados", description: "Os olhos reviram até só aparecer o branco" },
1012
1012
  "stand-still-then-lunge": { label: "Imóvel, Depois o Bote", description: "Totalmente parado(a), depois um passo explosivo à frente" },
@@ -1026,6 +1026,57 @@ const map: LocaleCatalogMap = {
1026
1026
  "shake-head-into-blur": { label: "Cabeça Tremendo em Borrão", description: "A cabeça vibra de lado a lado, o rosto borrado" },
1027
1027
  "rock-back-and-forth": { label: "Balançar no Lugar", description: "Balança o tronco num ritmo repetitivo" },
1028
1028
  "let-the-jaw-drop": { label: "Mandíbula Cai", description: "A boca se abre e fica frouxa" },
1029
+ "release-partner-and-step-back": { label: "Soltar o parceiro e recuar", description: "Solta o parceiro e dá um passo para trás." },
1030
+ "offer-object-and-wait": { label: "Oferecer um objeto e esperar", description: "Oferece um objeto e espera." },
1031
+ "decline-offered-object": { label: "Recusar o objeto oferecido", description: "Recusa o objeto oferecido." },
1032
+ "pass-object-to-partner": { label: "Passar um objeto ao parceiro", description: "Passa um objeto ao parceiro." },
1033
+ "seated-wave": { label: "Acenar sentado", description: "Acena enquanto está sentado." },
1034
+ "tread-water": { label: "Boiar em pé na água", description: "Boia em pé na água." },
1035
+ "swim-breaststroke": { label: "Nadar peito", description: "Nada peito." },
1036
+ "swim-backstroke": { label: "Nadar costas", description: "Nada costas." },
1037
+ "turn-wheelchair-left": { label: "Virar a cadeira de rodas para a esquerda", description: "Vira a cadeira de rodas para a esquerda." },
1038
+ "turn-wheelchair-right": { label: "Virar a cadeira de rodas para a direita", description: "Vira a cadeira de rodas para a direita." },
1039
+ "drive-powered-wheelchair": { label: "Dirigir cadeira de rodas motorizada", description: "Dirige uma cadeira de rodas motorizada." },
1040
+ "stop-powered-wheelchair": { label: "Parar a cadeira de rodas motorizada", description: "Para a cadeira de rodas motorizada." },
1041
+ "ride-bicycle-continuously": { label: "Pedalar continuamente", description: "Anda de bicicleta continuamente." },
1042
+ "brake-bicycle": { label: "Frear a bicicleta até parar", description: "Freia a bicicleta até parar." },
1043
+ "park-bicycle": { label: "Estacionar a bicicleta", description: "Estaciona a bicicleta." },
1044
+ "enter-car-passenger-seat": { label: "Entrar no banco do passageiro", description: "Entra no banco do passageiro do carro." },
1045
+ "unbuckle-seatbelt": { label: "Soltar o cinto de segurança", description: "Solta o cinto de segurança." },
1046
+ "step-left": { label: "Passo para a esquerda do sujeito", description: "Dá um passo para a esquerda do próprio sujeito." },
1047
+ "step-right": { label: "Passo para a direita do sujeito", description: "Dá um passo para a direita do próprio sujeito." },
1048
+ "walk-with-crutches": { label: "Andar com muletas", description: "Anda com muletas." },
1049
+ "walk-with-walker": { label: "Andar com andador", description: "Anda com andador." },
1050
+ "stop-and-hold": { label: "Parar e manter a posição", description: "Para e mantém a posição." },
1051
+ "hold-current-pose": { label: "Manter a pose atual", description: "Mantém a pose atual." },
1052
+ "seated-reach": { label: "Esticar o braço sentado", description: "Estica o braço enquanto está sentado." },
1053
+ "rise-from-floor": { label: "Levantar do chão", description: "Levanta-se do chão até ficar de pé." },
1054
+ "dog-subject-sit": { label: "Cachorro senta", description: "O cachorro senta." },
1055
+ "dog-subject-lie-down": { label: "Cachorro deita", description: "O cachorro deita." },
1056
+ "dog-subject-wag-tail": { label: "Cachorro abana o rabo", description: "O cachorro abana o rabo." },
1057
+ "dog-subject-shake": { label: "Cachorro sacode o corpo", description: "O cachorro sacode o corpo." },
1058
+ "cat-subject-stretch": { label: "Gato se espreguiça", description: "O gato se espreguiça." },
1059
+ "horse-subject-walk": { label: "Cavalo anda a passo", description: "O cavalo anda a passo." },
1060
+ "horse-subject-trot": { label: "Cavalo trota", description: "O cavalo trota." },
1061
+ "horse-subject-canter": { label: "Cavalo vai a meio galope", description: "O cavalo vai a meio galope." },
1062
+ "bird-subject-hop": { label: "Pássaro dá pulinhos", description: "O pássaro dá pulinhos." },
1063
+ "bird-subject-takeoff": { label: "Pássaro alça voo", description: "O pássaro alça voo." },
1064
+ "gaze-frame-left": { label: "Olhar para a esquerda do quadro", description: "Olha para a esquerda do quadro." },
1065
+ "gaze-frame-right": { label: "Olhar para a direita do quadro", description: "Olha para a direita do quadro." },
1066
+ "look-at-counterpart": { label: "Olhar para a contraparte conectada", description: "Olha para a contraparte conectada." },
1067
+ "set-object-down": { label: "Colocar o objeto no lugar", description: "Coloca o objeto no lugar." },
1068
+ "hold-object-still": { label: "Segurar o objeto parado", description: "Segura o objeto parado." },
1069
+ "wash-hands": { label: "Lavar as mãos", description: "Lava as mãos." },
1070
+ "wipe-table": { label: "Limpar a mesa", description: "Limpa a mesa." },
1071
+ "sweep-floor": { label: "Varrer o chão", description: "Varre o chão." },
1072
+ "read-book-continuously": { label: "Ler um livro", description: "Lê um livro." },
1073
+ "listen-attentively": { label: "Ouvir com atenção", description: "Ouve com atenção." },
1074
+ "type-continuously": { label: "Digitar continuamente", description: "Digita continuamente." },
1075
+ "send-phone-message": { label: "Enviar mensagem pelo celular", description: "Envia uma mensagem pelo celular." },
1076
+ "move-computer-mouse": { label: "Usar o mouse do computador", description: "Usa o mouse do computador." },
1077
+ "sort-documents": { label: "Organizar documentos", description: "Organiza documentos." },
1078
+ "serve-plate": { label: "Servir um prato", description: "Serve um prato." },
1079
+ "tighten-screw": { label: "Apertar um parafuso", description: "Aperta um parafuso." },
1029
1080
  }
1030
1081
 
1031
1082
  export default map